var allCount = 0;
var doneCount = 0;

var formChecker = null;
function swfUploadLoaded() {
	var btnSubmit = document.getElementById("btnSubmit");
	btnSubmit.onclick = doSubmit;
}


// Called by the submit button to start the upload
function doSubmit(e) {
	if (formChecker != null) {
		clearInterval(formChecker);
		formChecker = null;
	}
	
	e = e || window.event;
	if (e.stopPropagation) {
		e.stopPropagation();
	}
	e.cancelBubble = true;
	
	try { upload1.startUpload(); } catch (ex) { alert(ex); }
	try { upload2.startUpload(); } catch (ex) { alert(ex); }
	try { upload3.startUpload(); } catch (ex) { alert(ex); }
	try { upload4.startUpload(); } catch (ex) { alert(ex); }
	try { upload5.startUpload(); } catch (ex) { alert(ex); }
	
	return false;
}

 

 // Called by the queue complete handler to submit the form
function uploadDone() {
	doneCount++;
	try {
		if (doneCount == allCount)
			document.forms[0].submit();
	} catch (ex) {
		alert("Error submitting form");
	}
}

function fileDialogStart(id) {
	var txtFileName = document.getElementById("txtFileName"+id);
	txtFileName.value = "";
	//this.cancelUpload();
}

function fileDialogStart1() { fileDialogStart(1); }
function fileDialogStart2() { fileDialogStart(2); }
function fileDialogStart3() { fileDialogStart(3); }
function fileDialogStart4() { fileDialogStart(4); }
function fileDialogStart5() { fileDialogStart(5); }



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.QUEUE_LIMIT_EXCEEDED:
			alert("Túl sok fájlt akar feltölteni!\n" + (message === 0 ? "Elérte a feltöltési limitet." : "Csak " + (message > 1 ? "" + message + " fájlt tölthet fel." : "egy fájlt tölthet fel.")));
			return;
		case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
			alert("A fájl túl nagy!");
			this.debug("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			return;
		case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
			alert("A fájl üres. Kérjünk, válasszon egy másikat!");
			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("Nem megengedett fájl formátum!");
			this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			return;
		default:
			alert("Hiba történt a feltöltés során, kérjük, próbálja meg később!");
			this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			return;
		}
	} catch (e) {
	}
}

function fileQueued(id, file) {
	try {
		var txtFileName = document.getElementById("txtFileName"+id);
		txtFileName.value = file.name;
	} catch (e) {
	}
}

function fileQueued1(file) { fileQueued(1, file); }
function fileQueued2(file) { fileQueued(2, file); }
function fileQueued3(file) { fileQueued(3, file); }
function fileQueued4(file) { fileQueued(4, file); }
function fileQueued5(file) { fileQueued(5, file); }


function fileDialogComplete(numFilesSelected, numFilesQueued) {
	allCount++;
	//validateForm();
}

function uploadProgress(file, bytesLoaded, bytesTotal) {

	try {
		var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);

		//file.id = "singlefile";	// This makes it so FileProgress only makes a single UI element, instead of one for each file
		var progress = new FileProgress(file, this.customSettings.progress_target);
		progress.setProgress(percent);
		progress.setStatus("Feltöltés...");
	} catch (e) {
	}
}

function uploadSuccess(id, file, serverData) {
	try {
		//file.id = "singlefile";	// This makes it so FileProgress only makes a single UI element, instead of one for each file
		var progress = new FileProgress(file, this.customSettings.progress_target);
		progress.setComplete();
		progress.setStatus("Kész.");
		progress.toggleCancel(false);
		
		//if (serverData === " ") {
		//	this.customSettings.upload_successful = false;
		//} else {
			this.customSettings.upload_successful = true;
			document.getElementById("hidFileID"+id).value = serverData;
		//}
		
	} catch (e) {
	}
}

function uploadSuccess1(file, serverData) { uploadSuccess(1, file, serverData); }
function uploadSuccess2(file, serverData) { uploadSuccess(2, file, serverData); }
function uploadSuccess3(file, serverData) { uploadSuccess(3, file, serverData); }
function uploadSuccess4(file, serverData) { uploadSuccess(4, file, serverData); }
function uploadSuccess5(file, serverData) { uploadSuccess(5, file, serverData); }

function uploadComplete(file) {
	try {
		//if (this.customSettings.upload_successful) {
			this.setButtonDisabled(true);
			uploadDone();
		/*} else {
			//file.id = "singlefile";	// This makes it so FileProgress only makes a single UI element, instead of one for each file
			var progress = new FileProgress(file, this.customSettings.progress_target);
			progress.setError();
			progress.setStatus("Fájl elutasítva");
			progress.toggleCancel(false);
			
			var txtFileName = document.getElementById("txtFileName");
			txtFileName.value = "";
			//validateForm();

			alert("Probléma történt a feltöltés során.\nA szerver elutasította a fájlt.");
		}*/
	} catch (e) {
	}
}

function uploadError(id, file, errorCode, message) {
	try {
		
		if (errorCode === SWFUpload.UPLOAD_ERROR.FILE_CANCELLED) {
			// Don't show cancelled error boxes
			return;
		}
		
		var txtFileName = document.getElementById("txtFileName"+id);
		txtFileName.value = "";
		//validateForm();
		
		// 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("Konfigurációs hiba!");
			this.debug("Error Code: No backend file, File name: " + file.name + ", Message: " + message);
			return;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
			alert("Csak egy fájlt tölthet fel!.");
			this.debug("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			return;
		case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
		case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
			break;
		default:
			alert("Hiba történt a feltöltés során, kérjük, próbálja meg később!");
			this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			return;
		}

		//file.id = "singlefile";	// This makes it so FileProgress only makes a single UI element, instead of one for each file
		var progress = new FileProgress(file, this.customSettings.progress_target);
		progress.setError();
		progress.toggleCancel(false);

		switch (errorCode) {
		case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
			progress.setStatus("Feltöltési hiba");
			this.debug("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
			progress.setStatus("A feltöltés sikertelen.");
			this.debug("Error Code: Upload Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.IO_ERROR:
			progress.setStatus("Szerver (IO) hiba");
			this.debug("Error Code: IO Error, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
			progress.setStatus("Biztosnági hiba");
			this.debug("Error Code: Security Error, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
			progress.setStatus("Feltöltés megszakítva");
			this.debug("Error Code: Upload Cancelled, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
			progress.setStatus("Feltöltés megállítva");
			this.debug("Error Code: Upload Stopped, File name: " + file.name + ", Message: " + message);
			break;
		}
	} catch (ex) {
	}
}


function uploadError1(file, errorCode, message) { uploadError(1, file, errorCode, message); }
function uploadError2(file, errorCode, message) { uploadError(2, file, errorCode, message); }
function uploadError3(file, errorCode, message) { uploadError(3, file, errorCode, message); }
function uploadError4(file, errorCode, message) { uploadError(4, file, errorCode, message); }
function uploadError5(file, errorCode, message) { uploadError(5, file, errorCode, message); }


