﻿var fileDialogStart = function() {
	if (this.getFile(0))
		this.cancelUpload();
}

var fileQueued = function (file) {
	var filename = document.getElementById(this.getSetting("button_placeholder_id").replace("button", "") + "filename");
	if (filename) 
		filename.innerHTML = file.name;
}

function uploadProgress(file, bytesLoaded, bytesTotal) {

	try {

		var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);
		var width = Math.round(-119 + percent * 1.2);
		var percentage = document.getElementById(this.getSetting("button_placeholder_id").replace("button", "") + "percentage");
		if (percentage)
			percentage.style.backgroundPosition = width + "px 0";
		
	} catch (e) {
	}
}

function uploadSuccess(file, serverData) {
	try {	

		var filename = document.getElementById(this.getSetting("button_placeholder_id").replace("button", "") + "filename");
		if (filename) 
			filename.innerHTML = file.name;
		var hidden = document.getElementById(this.getSetting("button_placeholder_id").replace("_button", ""));
		if (hidden)
			hidden.value = serverData;

		if(swfus && swfus.length) {
			swfus[currentswfu].done = true;
			uploadAllFilesAndCallFunction(swfufunction);
		}
		
					
	} catch (e) {
	}
}

function fileQueueError(file, errorCode, message)  {
	try {
		// Handle this error separately because we don't want to create a FileProgress element for it.
		switch (errorCode) {
		case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
			alert("Die Datei ist zu groß. (Maximum " + this.getSetting("file_size_limit") + ")");
			return;
		case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
			alert("Die Datei ist leer.");
			this.debug("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			return;
		case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
			alert("Nur Bilder (" + this.getSetting("file_types") + ") sind erlaubt.");
			this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			return;
		default:
			alert("Ein Fehler ist aufgetretten. Bitte versuchen Sie es später.");
			this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			return;
		}
	} catch (e) {
	}
}

function uploadError(file, errorCode, message) {
	try {
		
		if (errorCode === SWFUpload.UPLOAD_ERROR.FILE_CANCELLED) {
			// Don't show cancelled error boxes
			return;
		}
		// Handle this error separately because we don't want to create a FileProgress element for it.
		switch (errorCode) {
		case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
			alert("There was a configuration error.  You will not be able to upload an image at this time.");
			return;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
			alert("You may only upload 1 file.");
			return;
		case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
		case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
			break;
		default:
			alert("An error occurred in the upload. Try again later." + message + this.upload_url);
			return;
		}
	} catch (ex) {
	}
}

var uploadAllFilesAndCallFunction = function ( callfunction ) {
	swfufunction = callfunction;
	if(swfus && swfus.length) {
		for( var key in swfus ) {
			try {
				if (!swfus[key].done && swfus[key].getFile(0) ) {
					currentswfu = key;
					swfus[key].startUpload();
					return false;
				}
			} catch (ex) {
			}
		}
	}
	swfufunction();
}

var swfus = new Array();
var swfufunction = null;
var currentswfu = 0;
