//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// PHP CONTEST ENGINE - GENERIC CONTEST ENTRY VALIDATION SCRIPT
// INTENDED TO BE REUSED FOR FUTURE CONTESTS FOR SONOTAMODEL OR ANY OTHER PHP W49 COMPANION SITE 
// JON C. MARSELLA - JASPER CONSULTING - AUGUST 2008
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function validateEntry(formObj) {
var didAgree							= formObj.AGREETOTERMS;
var F1									= formObj.FIRSTNAME;
var F2									= formObj.LASTNAME;
var F3									= formObj.PROVINCE;
var F4									= formObj.AGE;
var F5 									= formObj.EMAIL;
var F6									= formObj.PHONENUMBER;

	if (!didAgree.checked) {
	alert("You must read our rules & regulations before you can submit an entry.");
	return false;
	}

var fieldSet							= new Array(F1,F2,F3,F5,F6);
	// ALL FIELDS ARE REQUIRED
	for (var i=0; i<fieldSet.length; i++) {
		if (fieldSet[i].value.length == 0) {
		alert("Please complete each field before proceeding.");
		fieldSet[i].focus();
		return false;
		}
	}
	// ALPHA TEST THE FIRSTNAME
	if(!ValidateAlpha(F1)) {
	alert("Please ensure you only use letters (upper or lowercase) for your firstname.");
	F1.focus();
	return false;
	}
	// ALPHA TEST THE LASTNAME
	if(!ValidateAlpha(F2)) {
	alert("Please ensure you only use letters (upper or lowercase) for your lastname.");
	F2.focus();
	return false;
	}
	// TEST PROVINCE
	if (F3.value.length == 0) {
	alert("Please enter your province before proceeding.");
	F3.focus();
	return false;
	}
	// TEST AGE
	if (F4.options[F4.options.selectedIndex].value == '-1') {
	alert("Please select your age before proceeding.");
	F4.focus();
	return false;
	}
	
	// TEST FOR VALID EMAIL ADDRESS
	if (!ValidateEmail(F5)) {
	alert("Please enter a valid email address before proceeding.");
	F5.focus();
	return false;
	}
	// TEST PHONE NUMBER
	if(!ValidatePhoneNumber(F6)) {
	alert("Please enter a valid phone number before proceeding. (ex. 555-123-4567)");
	F6.focus();
	return false;
	}
return true;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// WE'LL USE THIS VALIDATION FUNCTION onSubmit FOR THE DC PRODUCT MINI CONTEST ENGINE SINCE IT CONTAINS TWO
// ADDITIONAL REQUIRED FIELDS
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function validateEntryEx(formObj) {
var ok							= validateEntry(formObj);
	if (!ok) {
	return false;
	}
var codeLen						= 7;
var F1							= formObj.TRANSACTNO;
var F2							= formObj.PRODUCTSKU;
var errMessage1					= 'Please enter your receipt transaction number correctly before proceeding. It must be exactly '+codeLen+' digits long (numbers 0-9 only).';
var errMessage2					= 'Please enter your DC Product SKU number correctly before proceeding. It must be exactly '+codeLen+' digits long (numbers 0-9 only).';

	if (F1.value.length < codeLen || !ValidateNumber(F1)) {
	alert(errMessage1);
	F1.focus();
	return false;
	}
	if (F2.value.length < codeLen || !ValidateNumber(F2)) {
	alert(errMessage2);
	F2.focus();
	return false;
	}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function ValidateAlpha(textObj1) {
var testStr=/^[a-zA-Z ]+$/;
	if (!(testStr.test(textObj1.value))) {
    return false;
	}
return true;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function ValidateNumber(textObj1) {
var testStr=/^[0-9]+$/;
	if (!(testStr.test(textObj1.value))) {
    return false;
	}
return true;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function ValidatePhoneNumber(textObj1) {
var testStr=/^[\(]?(\d{0,3})[\)]?[\s]?[\-.]?(\d{3})[\s]?[\-.]?(\d{4})[\s]?[x]?(\d*)$/;
	if (!(testStr.test(textObj1.value))) {
    return false;
	}
return true;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function ValidateEmail(textObj1) {
var testStr=/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
	if (!(testStr.test(textObj1.value))) {
    return false;
	}
return true;
}