function formValidator(){
	// Make quick references to our fields
	var FirstName = document.getElementById('FirstName');
	var LastName = document.getElementById('LastName');
	var Address1 = document.getElementById('Address1');
	var City = document.getElementById('City');
	var State = document.getElementById('State');
	var ZipCode = document.getElementById('ZipCode');
	var Email = document.getElementById('Email');
	var DaytimePhone = document.getElementById('DaytimePhone');
	var EveningPhone = document.getElementById('EveningPhone');
	var EventDate = document.getElementById('EventDate');
	var EventType = document.getElementById('EventType');
	var EventAddress = document.getElementById('EventAddress');
	var StartTime = document.getElementById('StartTime');
	var Hours = document.getElementById('Hours');
	var Package = document.getElementById('Package');
	
	// Check each input in the order that it appears in the form!
	
	if(isNOTNumeric(FirstName, "Do not enter a number for your First Name")){
	if(notEmpty(FirstName, "Please enter your first name")){
	if(isNOTNumeric(LastName, "Do not enter a number for your Last Name")){
	if(notEmpty(LastName, "Please enter your last name")){
	if(notEmpty(Address1, "Enter an Address")){
	
	if(isNOTNumeric(City, "Do not enter a number for your City")){
	if(notEmpty(City, "Please enter your city")){
	if(madeSelection(State, "Please enter your state")){
	if(isNumeric(ZipCode, "Please enter a valid zip code")){
	if(ZiplengthRestriction(ZipCode,5,5)){
	
	if(EmailValidator(Email, "Please enter a valid email address")){
	if(DayPhonelengthRestriction(DaytimePhone,10,10)){
	if(isNumeric(DaytimePhone, "Please enter a valid daytime phone number")){
	if(EveningPhonelengthRestriction(EveningPhone,10,10)){
	if(isNumeric(EveningPhone, "Please enter a valid evening phone number")){
	
	if(notEmpty(EventDate, "Please select an Event Date")){
	if(lengthRestriction(EventDate,8,10)){
	if(madeSelection(EventType, "What Type of Event?")){
	if(notEmpty(EventAddress, "Enter an Event Address")){
	if(madeSelection(StartTime, "Please select a Start Time")){
	
	if(madeSelection(Hours, "Please select hours requested")){
	if(madeSelection(Package, "Please Choose a Package")){
	
	
	return true;
	
	}
	}
	}
	}
	}
	
	}
	}
	}
	}
	}
	
	}
	}
	}
	}
	}
	
	}
	}
	}
	}
	}
	
	}
	}
	
	return false;
	
}

function notEmpty(elem, helperMsg){
	if(elem.value.length == 0){
		alert(helperMsg);
		elem.focus(); // set the focus to this input
		return false;
	}
	return true;
}	
		

function isNumeric(elem, helperMsg){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}


function isAlphabet(elem, helperMsg){
	var alphaExp = /^[a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphanumeric(elem, helperMsg){
	var alphaExp = /^[0-9a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function lengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert("Please enter a valid date");
		elem.focus();
		return false;
	}
}

/*---Emergency copy! - RDM
function lengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert("Please enter between " +min+ " and " +max+ " characters");
		elem.focus();
		return false;
	}
}
*/

//RDM added
function isNOTNumeric(elem, helperMsg){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		alert(helperMsg);
		elem.focus();
		return false;
	}else{
		
		return true;
	}


//END RDM
}


//RDM added new function here
function ZiplengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert("Please enter a 5 digit Zip Code");
		elem.focus();
		return false;
	}
}

function DayPhonelengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert("Please enter a daytime 10 digit phone number with NO DASHES e.g. 1112223333");
		elem.focus();
		return false;
	}
}

function EveningPhonelengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert("Please enter an evening 10 digit phone number with NO DASHES e.g. 1112223333");
		elem.focus();
		return false;
	}
}


function ZipRestrictionMin(elem, min){
	var uInput = elem.value;
	if(uInput.length >= min){
		return true;
	}else{
		alert("Please enter a " +min+ "digit Zip Code");
		elem.focus();
		return false;
	}
}

function YearlengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert("Please enter a 4 digit number for the year");
		elem.focus();
		return false;
	}
}

//END RDM

function madeSelection(elem, helperMsg){
	if(elem.value == "Please Choose"){
		alert(helperMsg);
		elem.focus();
		return false;
	}else{
		return true;
	}
}

function EmailValidator(elem, helperMsg){
	var EmailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(elem.value.match(EmailExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}