// JavaScript Document
// Global vars
var ERR_BGCOLOR = "#fcc65e";
// END GLOBAL VARS

function PreSubmit() {
	var errorMsg = "";
	errorMsg += CheckForValue('location', 'Event Location');
	errorMsg += CheckForValue('personName', 'Name' );
	errorMsg += CheckForValue('organization', 'Organization' );
	errorMsg += CheckForValue('personTitle', 'Title' );
	errorMsg += CheckForValue('phone', 'US' );
	errorMsg += CheckForValue('address1', 'Address 1' );

	var isValidEmail = ValidEmail('email');
	if (isValidEmail.length > 0)
		errorMsg += isValidEmail;

	errorMsg += CheckForValue('city', 'City' );
	errorMsg += CheckForValue('state', 'State' );
	errorMsg += CheckForValue('zip', 'Zip' );
	
	var numAttending = CheckForValue('numAttending', 'Number Attending' );
	if (numAttending.length == 0) {
		if (IsNumeric('numAttending') == false) {
			errorMsg += '\tPlease enter a \'NUMBER\' attending.\n';
		}
	}else {
		errorMsg += numAttending;	
	}

	// errorMsg += CheckForValue('total', 'Tuition Total' ); 
	
	// errorMsg += ValidCreditCard('CCNumber');
		
	if( errorMsg.length == 0 ) {
		return true;
	} else {
		alert("Please fix the following:\n" + errorMsg);
		return false;
	}
}

function CheckForValue(iIDName, iErrorMSGName )
{
	var ObjectToCheck = document.getElementById(iIDName);
	var ValToCheck = ObjectToCheck.value;
	
	//	alert(iIDName + ': ' + ValToCheck);
	
	// iIDName is the name of the id to check
		
	if( ValToCheck.length == 0 )
	{
		errorMsg = "\t" + iErrorMSGName +  " is required.\n";
		SetNewBGColor(ObjectToCheck, ERR_BGCOLOR);
	} else {
	//	alert("got here");
		var valReg = '[a-zA-Z0-9]';
		var regex = new RegExp(valReg);
		if ( regex.test(ValToCheck) ) {
			SetOldBGColor(ObjectToCheck);
		//	alert (iIDName + ": " + ValToCheck);
			errorMsg = "";
		} else {
			errorMsg = "\tThere is a problem with " + iErrorMSGName + ".\n";
			SetNewBGColor(ObjectToCheck, ERR_BGCOLOR);
		}
	}
	
	return errorMsg;
}

function ValidEmail(iIDName) {
	var ObjectToCheck = document.getElementById(iIDName);
	var email = ObjectToCheck.value;
	
	errorMsg = CheckForValue(iIDName, 'Email' );
	if (errorMsg.length == 0) {
		
    
		var emailReg = "^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+([.])+(\.[a-zA-Z0-9_-]+)+$";
		var regex = new RegExp(emailReg);
    
		if ( regex.test(email) ) {
			errorMsg = "";
			SetOldBGColor(ObjectToCheck);
		} else {
			errorMsg = "\tYour email is not in a valid format.\n";
			SetNewBGColor(ObjectToCheck, ERR_BGCOLOR);
		}
	}
	return errorMsg;
}

function IsNumeric(iIDName) {
	var ObjectToCheck = document.getElementById(iIDName);
	var ValToCheck = ObjectToCheck.value;
	
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;

 
	for (i = 0; i < ValToCheck.length && IsNumber == true; i++) 
		{ 
		Char = ValToCheck.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
			IsNumber = false;
			SetNewBGColor(ObjectToCheck, ERR_BGCOLOR);
		}
	}
	if (IsNumber == true)
		SetOldBGColor(ObjectToCheck);
	return IsNumber;
}

function CheckUSZip(iId, iValue) {
	
	var ObjectToCheck = document.getElementById(iId);
	var zipcode = (ObjectToCheck.value);
	
	if (zipcode.lenth == 0) {
		errorMsg = "\tPlease enter your zip code\n";
		SetNewBGColor(ObjectToCheck, ERR_BGCOLOR);
	} else {
		
		var zipReg = "";
		var zipReg = "^[0-9]{5}(-[0-9]{4})?$";
		
		var regex = new RegExp(zipReg);
		
		if ( regex.test(zipcode) ) {
			errorMsg = "";
			SetOldBGColor(ObjectToCheck);
		} else {
			errorMsg = "\t Your zipcode is not a valid US ZipCode.\n";
			SetNewBGColor(ObjectToCheck, ERR_BGCOLOR);
		}
	}
	return errorMsg;
}

function CheckPhoneNumber(iPhoneId, iCountryValue) {
	
	var ObjectToCheck = document.getElementById(iPhoneId);
	
	var number = (ObjectToCheck.value);
//	alert (number);
	if (number.length == 0) {
		errorMsg = "\tPlease enter your phone number\n";
		SetNewBGColor(ObjectToCheck, ERR_BGCOLOR);
	} else {
		
		var numReg = "";
		
		if (iCountryValue == 'US') {
			var numReg = "^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$";
			//	var numReg = "[0-9]{10}";
	//	else
	//		var numReg = "[0-9]{10, 12}";
		
			var regex = new RegExp(numReg);
	    
			if ( regex.test(number) ) {
				errorMsg = "";
				SetOldBGColor(ObjectToCheck);
			} else {
				errorMsg = "\t Your phone number is not valid.\n";
				SetNewBGColor(ObjectToCheck, ERR_BGCOLOR);
			}
		} else {
				errorMsg = "";
		}
	}
	return errorMsg;
}

function ValidCreditCard(iIDName) {
	var ObjectToCheck = document.getElementById(iIDName);
	var cardnumber = ObjectToCheck.value;
	
	errorMsg = CheckForValue(iIDName, 'Credit Card Number' );
	if (errorMsg.length == 0) {
		if (errorMsg.length == 0) {
			
    	
			var ccnumberReg = "[0-9]{15,16}";
			var regex = new RegExp(ccnumberReg);
    
			if ( regex.test(cardnumber) ) {
				errorMsg = "";
				SetOldBGColor(ObjectToCheck);
			} else {
				errorMsg = "\t Your credit card is not in a valid format.\n";
				SetNewBGColor(ObjectToCheck, ERR_BGCOLOR);
			}
		}
	}
	return errorMsg;
}

function SetNewBGColor( iObject, iNewColorValue )
{
	if( iObject && iObject.style ) {
		
		// set the old color for retrieval later.
		if( iObject.style.backgroundColor.length > 0 )
			iObject.oldBG = iObject.style.backgroundColor;
		else
			iObject.oldBG = "#ffffff";
		// set the new color.
		iObject.style.backgroundColor = iNewColorValue;
	}
}
	
function SetOldBGColor( iObject )
{
    if( iObject && iObject.oldBG && iObject.oldBG.length > 0 ) {
    	iObject.style.backgroundColor = iObject.oldBG;
	} else {
		iObject.style.backgroundColor = "#ffffff";
	}
}