jQuery(document).ready(function(){
});

/* Perform javascript form validation */
function validate_form() {
	var error=0;

	/* Define Error Messages */
	messageNAME = "Please enter a valid name";
	messageEMAIL = "Please enter a valid email address";
	messageAGE = "Please select a valid age";
	messageTITLE = "Please enter a title";
	messageDESCRIPTION = "Please enter a description";
	messageFILE = "Please select a file you would like to submit<br />";
	messageTYPE = "Please submit a valid file type";
	messageTOC = "You must accept the terms and conditions to enter";

	/* Check for valid name */
	value = jQuery('input[name=name]').val();
	if (value == "") {
		jQuery('.form-name .message').html(messageNAME);
		jQuery('.form-name input').css("borderColor","#ff0000");
		error = 1;
	} else {
		jQuery('.form-name .message').html("");
		jQuery('.form-name input').css("borderColor","#000000");
	}

	/* Check for valid email */
	value = jQuery('input[name=email]').val();
	if (value == "" || !isValidEmailAddress(value)) {
		jQuery('.form-email .message').html(messageEMAIL);
		jQuery('.form-email input').css("borderColor","#ff0000");
		error = 1;
	} else {
		jQuery('.form-email .message').html("");
		jQuery('.form-email input').css("borderColor","#000000");
	}

	/* Check for valid age */
	value = jQuery('select[name=age]').val();
	if (value == "0") {
		jQuery('.form-age .message').html(messageAGE);
		jQuery('.form-age select').css("borderColor","#ff0000");
		error = 1;
	} else {
		jQuery('.form-age .message').html("");
		jQuery('.form-age select').css("borderColor","#000000");
	}

	/* Check for valid title */
	value = jQuery('input[name=title]').val();
	if (value == "") {
		jQuery('.form-title .message').html(messageTITLE);
		jQuery('.form-title input').css("borderColor","#ff0000");
		error = 1;
	} else {
		jQuery('.form-title .message').html("");
		jQuery('.form-title input').css("borderColor","#000000");
	}

	/* Check for valid description */
/*
	value = jQuery('textarea[name=description]').val();
	if (value == "") {
		jQuery('.form-description .message').html(messageDESCRIPTION);
		jQuery('.form-description textarea').css("borderColor","#ff0000");
		error = 1;
	} else {
		jQuery('.form-description .message').html("");
		jQuery('.form-description textarea').css("borderColor","#000000");
	}
*/

	/* Check for valid title */
	value = jQuery('input[name=uploadedfile]').val();
	filename = value;
	if (value == "") {
		jQuery('.form-uploadedfile .message').html(messageFILE);
		jQuery('.form-uploadedfile input').css("borderColor","#ff0000");
		error = 1;
	} else {
		jQuery('.form-uploadedfile .message').html("");
		jQuery('.form-uploadedfile input').css("borderColor","#000000");
	}

	/* Check for valid file type */
	value = jQuery('input[name=type]').val();
	if (value == "video") {
		valid = checkVideoExtension(filename);
	} else {
		valid = checkImageExtension(filename);
	}
	if (!valid) {
		jQuery('.form-uploadedfile .message').append(messageTYPE);
		error = 1;
	}

	/* Check for valid toc */
	value = jQuery('input[name=toc]:checked').val();
	if (value == undefined) {
		jQuery('.form-toc .message').html(messageTOC);
		error = 1;
	} else {
		jQuery('.form-toc .message').html("");
	}

	/* Check the error flag, and return true if form entries are valid */
	if (error) {
		return false;
	} else {
/*
		jQuery('.form-submit').css("display","none");
*/
		jQuery('.form-submitted').css("display","block");
		return true;
	}
}

/* Check for valide email (emailAddress) - returns true or false */
function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}

function checkVideoExtension(filename) {

	var extension = new Array();
	extension[0] = ".3g2";
	extension[1] = ".3pp";
	extension[2] = ".asf";
	extension[3] = ".asx";
	extension[4] = ".avi";
	extension[5] = ".mov";
	extension[6] = ".mp4";
	extension[7] = ".m4v";
	extension[8] = ".mpeg";
	extension[9] = ".mpg";
	extension[10] = ".wmv";

	var thisext = filename.substr(filename.lastIndexOf('.'));
	for(var i = 0; i < extension.length; i++) {
		if(thisext == extension[i]) { return true; }
	}
	return false;
}

function checkImageExtension(filename) {

	var extension = new Array();
	extension[0] = ".jpg";
	extension[1] = ".jpeg";
	extension[2] = ".eps";
	extension[3] = ".gif";
	extension[4] = ".pdf";
	extension[5] = ".png";

	var thisext = filename.substr(filename.lastIndexOf('.'));
	for(var i = 0; i < extension.length; i++) {
		if(thisext == extension[i]) { return true; }
	}
	return false;
}

