var formChecker = null;
/*function swfUploadLoaded() {
	var btnSubmit = document.getElementById("btnSubmit");

	btnSubmit.onclick = doSubmit;
	btnSubmit.disabled = true;

	/*txtLastName.onchange = validateForm;
	txtFirstName.onchange = validateForm;
	txtEducation.onchange = validateForm;
	txtReferences.onchange = validateForm;
	*/
	/*formChecker = window.setInterval(validateForm, 1000);

	validateForm();
}*/


var swfUploadPreLoad = function() {

	var fOK0 = document.getElementById('flashcheck_0');
	var fDEG0 = document.getElementById('flashdegrade_0');
	var fOK1 = document.getElementById('flashcheck_1');
	var fDEG1 = document.getElementById('flashdegrade_1');
	var fOK2 = document.getElementById('flashcheck_2');
	var fDEG2 = document.getElementById('flashdegrade_2');
	var fOK3 = document.getElementById('flashcheck_3');
	var fDEG3 = document.getElementById('flashdegrade_3');
	var fOK = document.getElementById('flashcheck_1');
	var fDEG = document.getElementById('flashdegrade_1');

	fOK0.style.display = '';
	fDEG0.style.display = 'none';
	fOK1.style.display = '';
	fDEG1.style.display = 'none';
	fOK2.style.display = '';
	fDEG2.style.display = 'none';
	fOK3.style.display = '';
	fDEG3.style.display = 'none';
}

var swfUploadLoaded = function() {
	var btnSubmit = document.getElementById("btnSubmit");
	btnSubmit.onclick = doSubmit;

	//var fileinput = document.getElementById
	/*

	CODE IN HERE IS WHAT SHOWS WHEN ALL IS GOOD,
	MAYBE SHOW THE DIV THAT THE UPLOAD STUFF IS IN

	*/


}

var swfUploadLoadFailed = function() {
	var fOK0 = document.getElementById('flashcheck_0');
	var fDEG0 = document.getElementById('flashdegrade_0');
	var fOK1 = document.getElementById('flashcheck_1');
	var fDEG1 = document.getElementById('flashdegrade_1');
	var fOK2 = document.getElementById('flashcheck_2');
	var fDEG2 = document.getElementById('flashdegrade_2');
	var fOK3 = document.getElementById('flashcheck_3');
	var fDEG3 = document.getElementById('flashdegrade_3');

	fOK0.style.display = 'none';
	fDEG0.style.display = '';
	fOK1.style.display = 'none';
	fDEG1.style.display = '';
	fOK2.style.display = 'none';
	fDEG2.style.display = '';
	fOK3.style.display = 'none';
	fDEG3.style.display = '';
	/*

	CODE IN HERE IS WHAT SHOWS WHEN ALL IS WHEN FLASH IS OLD OR BUNK,
	IN THIS CASE SHOW JUST THE FILE UPLOAD STUFF

	POSSIBLE HAVE THE <INPUT TYPE="FILE" ID="ASDF1" NAME="ASDF2" /> BY DEFAULT SHOWING
	THEN IN THE SWFUPLOADPRELOAD HIDES THE FILEINPUT AND SHOWS THAT FLASH STUFF.

	THEY ARE GOING TO NEED TO HAVE TWO DIFFERENT NAMES, WILL WANT TO FIRST CHECK AND
	SEE IF THE FILE BEING UPLOADED IS A TEXT FILE OR A FILE INPUT.  PROCESS FILE INPUT
	FIRST AND THEN IF THERE IS NO FILE TO PROCESS THEN HANDLE THE FILE NAMES AS COMING IN FROM TEXT FILE

	*/
}

function validateForm2() {
	//var txtLastName = document.getElementById("lastname");
	//var txtFirstName = document.getElementById("firstname");
	//var txtEducation = document.getElementById("education");
	//var txtFileName = document.getElementById("txtFileName_0");
	//var txtReferences = document.getElementById("references");

	var isValid = true;
	//if (txtLastName.value === "") {
	//	isValid = false;
	//}
	//if (txtFirstName.value === "") {
	//	isValid = false;
	//}
	//if (txtEducation.value === "") {
	//	isValid = false;
	//}
	//if (txtFileName.value === "") {
	//	isValid = false;
	//}
	//if (txtReferences.value === "") {
	//	isValid = false;
	//}

	//document.getElementById("btnSubmit").disabled = !isValid;

}

// Called by the submit button to start the upload
function doSubmit(e) {
    if (!validateForm()) {
        return false;
    }
    
	if (formChecker != null) {
		clearInterval(formChecker);
		formChecker = null;
	}

	e = e || window.event;
	if (e.stopPropagation) {
		e.stopPropagation();
	}
	e.cancelBubble = true;

	try {
		swfu.startUpload();
		swfu1.startUpload();
		swfu2.startUpload();
		swfu3.startUpload();
	} catch (ex) {

	}
	return false;
}

 // Called by the queue complete handler to submit the form
function uploadDone() {
	try {
        var up0 = document.getElementById('uploadDone_0').value;
        var up1 = document.getElementById('uploadDone_1').value;
        var up2 = document.getElementById('uploadDone_2').value;
        var up3 = document.getElementById('uploadDone_3').value;
        
        if(up0 != 'que' && up1 != 'que' && up2 != 'que' && up3 != 'que') { 
            document.forms[0].submit();
        }
   
		//document.forms[0].submit();
	} catch (ex) {
		alert("Error submitting form");
	}
}

function fileDialogStart() {
	var txtFileName = document.getElementById("txtFileName_0");
	txtFileName.value = "";

	this.cancelUpload();
}

function fileDialogStart1() {
	var txtFileName1 = document.getElementById('txtFileName_1');
	txtFileName1.value = '';

	this.cancelUpload();
}

function fileDialogStart2() {
	var txtFileName2 = document.getElementById('txtFileName_2');
	txtFileName2.value = '';

	this.cancelUpload();
}

function fileDialogStart3() {
	var txtFileName3 = document.getElementById('txtFileName_3');
	txtFileName3.value = '';

	this.cancelUpload();
}

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("You have attempted to queue too many files.\n" + (message === 0 ? "You have reached the upload limit." : "You may select " + (message > 1 ? "up to " + message + " files." : "one file.")));
			return;
		case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
			alert("The file you selected is too big.");
			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("The file you selected is empty.  Please select another file.");
			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("The file you choose is not an allowed file type.");
			this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			return;
		default:
			alert("An error occurred in the upload. Try again later.");
			this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			return;
		}
	} catch (e) {
	}
}

function fileQueued(file) {
	try {
		var txtFileName = document.getElementById("txtFileName_0");
		txtFileName.value = file.name;
        document.getElementById('uploadDone_0').value = 'que';
	} catch (e) {
	}

}

function fileQueued1(file) {
	try {
		var txtFileName1 = document.getElementById('txtFileName_1');
		txtFileName1.value = file.name;
        document.getElementById('uploadDone_1').value = 'que';
	} catch(e) {
	}
}

function fileQueued2(file) {
	try {
		var txtFileName2 = document.getElementById('txtFileName_2');
		txtFileName2.value = file.name;
        document.getElementById('uploadDone_2').value = 'que';
	} catch(e) {
	}
}

function fileQueued3(file) {
	try {
		var txtFileName3 = document.getElementById('txtFileName_3');
		txtFileName3.value = file.name;
        document.getElementById('uploadDone_3').value = 'que';
	} catch(e) {
	}
}

function fileDialogComplete(numFilesSelected, numFilesQueued) {
	//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("Uploading...");
	} catch (e) {
	}
}

function uploadProgress1(file, bytesLoaded, bytesTotal) {

	try {
		var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);

		file.id = "singlefile1";	// 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("Uploading...");
	} catch (e) {
	}
}

function uploadProgress2(file, bytesLoaded, bytesTotal) {

	try {
		var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);

		file.id = "singlefile2";	// 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("Uploading...");
	} catch (e) {
	}
}

function uploadProgress3(file, bytesLoaded, bytesTotal) {

	try {
		var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);

		file.id = "singlefile3";	// 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("Uploading...");
	} catch (e) {
	}
}

function uploadSuccess(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("Complete.");
		progress.toggleCancel(false);

		if (serverData === " ") {
			this.customSettings.upload_successful = false;
		} else {
			this.customSettings.upload_successful = true;
			document.getElementById("hidFileID_0").value = serverData;
            document.getElementById('uploadDone_0').value = document.getElementById('txtFileName_0').value;
		}

	} catch (e) {
	}
}

function uploadSuccess1(file, serverData) {
	try {
		file.id = "singlefile1";	// 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("Complete.");
		progress.toggleCancel(false);

		if (serverData === " ") {
			this.customSettings.upload_successful = false;
		} else {
			this.customSettings.upload_successful = true;
			document.getElementById("hidFileID_1").value = serverData;
            document.getElementById('uploadDone_1').value = document.getElementById('txtFileName_1').value;
		}

	} catch (e) {
	}
}

function uploadSuccess2(file, serverData) {
	try {
		file.id = "singlefile2";	// 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("Complete.");
		progress.toggleCancel(false);

		if (serverData === " ") {
			this.customSettings.upload_successful = false;
		} else {
			this.customSettings.upload_successful = true;
			document.getElementById("hidFileID_2").value = serverData;
            document.getElementById('uploadDone_2').value = document.getElementById('txtFileName_2').value;
		}

	} catch (e) {
	}
}

function uploadSuccess3(file, serverData) {
	try {
		file.id = "singlefile3";	// 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("Complete.");
		progress.toggleCancel(false);

		if (serverData === " ") {
			this.customSettings.upload_successful = false;
		} else {
			this.customSettings.upload_successful = true;
			document.getElementById("hidFileID_3").value = serverData;
            document.getElementById('uploadDone_3').value = document.getElementById('txtFileName_3').value;
		}

	} catch (e) {
	}
}

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("File rejected");
			progress.toggleCancel(false);

			var txtFileName = document.getElementById("txtFileName_0");
			txtFileName.value = "";
			validateForm();

			alert("There was a problem with the upload.\nThe server did not accept it.");
		}
	} catch (e) {
	}
}

function uploadComplete1(file) {
	try {
		if (this.customSettings.upload_successful) {
			this.setButtonDisabled(true);
			uploadDone();
		} else {
			file.id = "singlefile1";	// 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("File rejected");
			progress.toggleCancel(false);

			var txtFileName = document.getElementById("txtFileName_1");
			txtFileName.value = "";
			validateForm();

			alert("There was a problem with the upload.\nThe server did not accept it.");
		}
	} catch (e) {
	}
}

function uploadComplete2(file) {
	try {
		if (this.customSettings.upload_successful) {
			this.setButtonDisabled(true);
			uploadDone();
		} else {
			file.id = "singlefile2";	// 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("File rejected");
			progress.toggleCancel(false);

			var txtFileName = document.getElementById("txtFileName_2");
			txtFileName.value = "";
			validateForm();

			alert("There was a problem with the upload.\nThe server did not accept it.");
		}
	} catch (e) {
	}
}

function uploadComplete3(file) {
	try {
		if (this.customSettings.upload_successful) {
			this.setButtonDisabled(true);
			uploadDone();
		} else {
			file.id = "singlefile3";	// 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("File rejected");
			progress.toggleCancel(false);

			var txtFileName = document.getElementById("txtFileName_3");
			txtFileName.value = "";
			validateForm();

			alert("There was a problem with the upload.\nThe server did not accept it.");
		}
	} catch (e) {
	}
}

function uploadError(file, errorCode, message) {
	try {

		if (errorCode === SWFUpload.UPLOAD_ERROR.FILE_CANCELLED) {
			// Don't show cancelled error boxes
			return;
		}

		var txtFileName = document.getElementById("txtFileName");
		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("There was a configuration error.  You will not be able to upload a resume at this time.");
			this.debug("Error Code: No backend file, File name: " + file.name + ", Message: " + message);
			return;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
			alert("You may only upload 1 file.");
			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("An error occurred in the upload. Try again later.");
			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("Upload Error");
			this.debug("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
			progress.setStatus("Upload Failed.");
			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("Server (IO) Error");
			this.debug("Error Code: IO Error, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
			progress.setStatus("Security Error");
			this.debug("Error Code: Security Error, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
			progress.setStatus("Upload Cancelled");
			this.debug("Error Code: Upload Cancelled, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
			progress.setStatus("Upload Stopped");
			this.debug("Error Code: Upload Stopped, File name: " + file.name + ", Message: " + message);
			break;
		}
	} catch (ex) {
	}
}
