
function validateDefaultForm1(){

	var errs=0;
	if (validateField('defaultForm1', 'firstName', 'input', 'noNumbers', '3') != "proceed") {
		 errs += 1;
	}
	if (validateField('defaultForm1', 'lastName', 'input', 'noNumbers', '3') != "proceed")	{
		 errs += 1;
	}
	if (validateField('defaultForm1', 'emailAddress', 'input') != "proceed") {
		 errs += 1;
	}
	if (validateField('defaultForm1', 'companyName', 'input', 'length', '2') != "proceed") {
		 errs += 1;
	}
	if (validateField('defaultForm1', 'businessPhone', 'input') != "proceed") {
		 errs += 1;
	}
	if (validateField('defaultForm1', 'city', 'input', 'noNumbers', '2') != "proceed") {
		 errs += 1;
	}
	if (validateField('defaultForm1', 'state', 'select') != "proceed") {
		 errs += 1;
	}
	if (validateField('defaultForm1', 'zipCode', 'input', 'onlyNumbers', '5') != "proceed") {
		 errs += 1;
	}
	if (validateField('defaultForm1', 'fleetSize', 'input', 'onlyNumbers') != "proceed") {
		 errs += 1;
	}
	if (validateField('defaultForm1', 'jobrole', 'select') != "proceed") {
		 errs += 1;
	}
	if (errs>=1)
	{
	  	alert('Please correct any field highlighted in yellow.');
	}

    	return (errs==0);
}

function validateShortForm1(){

	var errs=0;
	if (validateField('shortForm1', 'firstName', 'input', 'noNumbers', '3') != "proceed") {
		 errs += 1;
	}
	if (validateField('shortForm1', 'lastName', 'input', 'noNumbers', '3') != "proceed")	{
		 errs += 1;
	}
	if (validateField('shortForm1', 'emailAddress', 'input') != "proceed") {
		 errs += 1;
	}
	if (errs>=1)
	{
	  	alert('Please correct any field highlighted in yellow.');
	}

    	return (errs==0);
}

function validateDefaultForm2(){

	var errs=0;
	if (validateField('defaultForm2', 'firstName', 'input', 'noNumbers', '3') != "proceed") {
		 errs += 1;
	}
	if (validateField('defaultForm2', 'lastName', 'input', 'noNumbers', '3') != "proceed")	{
		 errs += 1;
	}
	if (validateField('defaultForm2', 'industry', 'select') != "proceed") {
		 errs += 1;
	}
	if (errs>=1)
	{
	  	alert('Please correct any field highlighted in yellow.');
	}

    	return (errs==0);
}
function validateNotifyJobs(){

	var errs=0;
	if (validateField('NotifyJobs', 'firstName', 'input', 'noNumbers', '3') != "proceed") {
		 errs += 1;
	}
	if (validateField('NotifyJobs', 'lastName', 'input', 'noNumbers', '3') != "proceed")	{
		 errs += 1;
	}
	if (validateField('NotifyJobs', 'emailAddress', 'input') != "proceed") {
		 errs += 1;
	}
	if (validateField('NotifyJobs', 'companyName', 'input', 'length', '2') != "proceed") {
		 errs += 1;
	}
	if (validateField('NotifyJobs', 'businessPhone', 'input') != "proceed") {
		 errs += 1;
	}
	if (errs>=1)
	{
	  	alert('Please correct any field highlighted in yellow.');
	}

    	return (errs==0);
}
function validateNewsletterSignUpForm1(){

	var errs=0;
	if (validateField('news-subscribe', 'enewsletterSubscribe', 'input') != "proceed") {
		 errs += 1;
	}
	if (errs>=1)
	{
	  	alert('Please submit a valid email address.');
	}

    	return (errs==0);
}

function removeValue(formName, fieldName, fieldType) {
	var theField = retrieveField(document.getElementById(formName), fieldName, fieldType);
	theField.value = "";
}


//------------------------------------------
// Validate Fields
// 1. Has value?
//------------------------------------------

function validateField(formName, fieldName, fieldType, valType, valLength) {
	var theField = retrieveField(document.getElementById(formName), fieldName, fieldType);
	if(fieldName == "emailAddress") {
		var theValidation = validateEmailStructure(formName, fieldName, fieldType, valType, valLength);
	} else if(fieldName == "enewsletterSubscribe") {
		var theValidation = validateEmailStructure(formName, fieldName, fieldType, valType, valLength);
	} else if(fieldName == "businessPhone") {
		var theValidation = validatePhoneStructure(formName, fieldName, fieldType, valType, valLength);
	} else {
		var theValidation = validateTextStructure(formName, fieldName, fieldType, valType, valLength);
	}
	if(theField != undefined)
	{
		if (theField.value == "" || theValidation != "valid") {
			theField.style.backgroundColor  = '#FFE79B';
			theField.style.borderColor  = '#959595';
			return false;
		}
	}
	else
	{
		return false;
	}
	theField.style.backgroundColor  = '#fff';
	theField.style.borderColor  = '#c4c4c4';
	return "proceed";
}
function retrieveField(theForm, fieldName, fieldType)
{
	var returnval = undefined;
	try
	{
		var elems = theForm.getElementsByTagName(fieldType);
		for(var i =0; i < elems.length; i++)
		{
			if(elems[i].name == fieldName)
			{
				returnval = elems[i];
				break;
			}
		}
	}
	catch(e)
	{
	}
	return returnval;
}

//------------------------------------------
// Validate Email Fields
// 1. Correct format?
//------------------------------------------
function validateEmailStructure(formName, fieldName, fieldType) {
	var theField = retrieveField(document.getElementById(formName), fieldName, fieldType);
	var invalidChars = " /:,;";
	for(i=0; i<invalidChars.length;i++) {
		var badChar = invalidChars.charAt(i);
		if(theField.value.indexOf(badChar,0) > -1) {
			return false;
		}
	}
	var atPos = theField.value.indexOf("@",1);
	if(atPos == -1) {
		return false;
	}
	if(theField.value.indexOf("@",atPos+1) > -1) {
		return false;
	}
	var periodPos = theField.value.indexOf(".",atPos);
	if(periodPos == -1) {
		return false;
	}
	if(periodPos+3 > theField.value.length) {
		return false;
	}
	return "valid";
}

function validateEmailAddress(formName, fieldName, fieldType) {
	var theField = retrieveField(document.getElementById(formName), fieldName, fieldType);
	if(validateEmailStructure(formName, fieldName, fieldType) != "valid") {
		alert("Please provide a valid email address.");
		theField.style.backgroundColor  = '#FFE79B';
		theField.style.borderColor  = '#959595';
		return false;
	}
	theField.style.backgroundColor  = '#fff';
	theField.style.borderColor  = '#c4c4c4';
	return "proceed";
}

//------------------------------------------
// Validate Phone Number Fields
// 1. Correct format?
//------------------------------------------
function validatePhoneStructure(formName, fieldName, fieldType) {
	var theField = retrieveField(document.getElementById(formName), fieldName, fieldType);
	var stripped = theField.value.replace(/[\(\)\.\-\ ]/g, '');
	if (isNaN(stripped)) {
		return false;
	}
	if (!(stripped.length == 10)) {
		return false;
	}
//	if(theField.value.search(/\d{3}\-\d{3}\-\d{4}/)==-1) {
//		return false;
//	}
	return "valid";
}
	
function validatePhoneNumber(formName, fieldName, fieldType) {
	var theField = retrieveField(document.getElementById(formName), fieldName, fieldType);
	if(validatePhoneStructure(formName, fieldName, fieldType) != "valid") {
		alert("Please provide a valid phone number.");
		theField.style.backgroundColor  = '#FFE79B';
		theField.style.borderColor  = '#959595';
		return false;
	}
	theField.style.backgroundColor  = '#fff';
	theField.style.borderColor  = '#c4c4c4';
	return "proceed";
}



//------------------------------------------
// Validate Text Fields
// 1. Is not numbers
// 2. Is longer than 2 characters
//------------------------------------------
function validateTextStructure(formName, fieldName, fieldType, valType, valLength) {
	var theField = retrieveField(document.getElementById(formName), fieldName, fieldType);
	if(valType == 'noNumbers') {
		var invalidChars = "1234567890";
		for(i=0; i<invalidChars.length;i++) {
			var badChar = invalidChars.charAt(i);
			if(theField.value.indexOf(badChar,0) > -1) {
				return "error1";
			}
		}
	} else if(valType == 'onlyNumbers') {
		if(isNaN(theField.value) == true) {
			return "error2";
		} else if(isNaN(theField.value) == false) {
			var invalidChars = "-+/*";
			for(i=0; i<invalidChars.length;i++) {
				var badChar = invalidChars.charAt(i);
				if(theField.value.indexOf(badChar,0) > -1) {
					return "error2";
				}
			}
		}
	} 
	if(fieldName == 'firstName') {
		if(theField.value == document.getElementById(formName).lastName.value) {
			return "error3";
		}
	}
	if(fieldName == 'lastName') {
		if(theField.value == document.getElementById(formName).firstName.value) {
			return "error3";
		}
	}
	if(theField.value.length < valLength) {
		return "error4";
	}
	var Field = (theField.value).replace(/^\s*|\s*$/g,'');
	if(Field.length < valLength) {
		return "error4";
	}
	return "valid";
}
function validateText(formName, fieldName, fieldType, valType, valLength) {

	var theField = retrieveField(document.getElementById(formName), fieldName, fieldType);
	var theValidation = validateTextStructure(formName, fieldName, fieldType, valType, valLength);

	if(theValidation != "valid") {
		if(theValidation == "error1") {
			alert("Numbers are not allowed in " +fieldName+ ".");
		} else if(theValidation == "error2") {
			alert("Provide numbers only in " +fieldName+ ".");
		} else if(theValidation == "error3") {
			alert("Please correct your first or last name.");
		} else if(theValidation == "error4") {
			alert("Please provide a valid " +fieldName+".");
		}
		theField.style.backgroundColor  = '#FFE79B';
		theField.style.borderColor  = '#959595';
		return false;
	}
	theField.style.backgroundColor  = '#fff';
	theField.style.borderColor  = '#c4c4c4';
	return "proceed";
}
