// Javascript
    var chkAlpha       = /^[A-Z a-z]{2,50}$/;
	var chkAddress     = /^[A-Za-z 0-9\.-]{4,50}$/; //check for min of 4 and max of 50 alphanumeric characters, a period, and a dash only.
	var chkCity        = /^[A-Za-z ]{4,50}$/;      //check for min of 4 and max of 50 alpha characters.
	var chkZip         = /(^\d{5}$)|(^\d{5}-\d{4}$)/;		 		//check for exactly 5-4 numeric characters.
	var chkAccount     = /^\d{8}$/;		 		//check for exactly 8 numeric characters.
	var chkPhone3      = /^\d{3}$/; 	
	var chkPhone4      = /^\d{4}$/; 		
	var chkEmail       = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; 
	var chkCC          = /^[0-9]{0,2}$/;			//check for min of 0 and max of 2 numeric characters
	

function validateFormHTLDSignup(form) {
	var errmsg		= "";
	var errmsgStart = "The following error(s) have been found in your form submission.\n";
	var errmsgEnd	= "\n\nPlease click OK to go back and correct these form field error(s).\n";
	var arrErrField  = new Array();
	var error = true;
	if (form.customerName.value.search(chkAlpha) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Customer Name must be between 2-50 letters.";
		arrErrField[arrErrField.length] = "customerName";
	}
	if (form.address.value.search(chkAddress) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Address must be between 4-50 letters.";
		arrErrField[arrErrField.length] = "address";
	}	
	if (form.city.value.search(chkCity) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". City must be between 4-50 letters.";
		arrErrField[arrErrField.length] = "city";
	}		
	if (form.state.options[form.state.selectedIndex].value == "")  {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". State: Please select a state from the list.";
		arrErrField[arrErrField.length] = "state";
	}		
	if (form.zipCode.value.search(chkZip) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Zip code must be 5 digit or zip+4  format (99999 or 99999-9999).";
		arrErrField[arrErrField.length] = "zipCode";
	}	
	if (form.phoneNbr_AC.value.search(chkPhone3) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number area code.";
		arrErrField[arrErrField.length] = "phoneNbr_AC";
	}
	if (form.phoneNbr_PRE.value.search(chkPhone3) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number prefix.";
		arrErrField[arrErrField.length] = "phoneNbr_PRE";
	}
	if (form.phoneNbr_POST.value.search(chkPhone4) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number postfix.";
		arrErrField[arrErrField.length] = "phoneNbr_POST";
	}
	if (form.phoneNbr_POST.value.search(chkPhone4) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number postfix.";
		arrErrField[arrErrField.length] = "phoneNbr_POST";
	}
	if ((form.emailAddress.value.length < 6 ) || (chkEmail.test(form.emailAddress.value) == false)) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Email Address: Please use a valid email address format.";
		arrErrField[arrErrField.length] = "emailAddress";
	}
	if (form.last4SSN.value.search(chkPhone4) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Please enter the last four digits of your ssn.";
		arrErrField[arrErrField.length] = "last4SSN";
	}
	if (form.newHTLDPlan.options[form.newHTLDPlan.selectedIndex].value == "") {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". New HTLD Plan: Please select a new HTLD plan from the list.";
		arrErrField[arrErrField.length] = "newHTLDPlan";
	}
	if (form.callingCards.value.search(chkCC) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Number of Calling Cards: Please enter a number between 0 and 99.";
		arrErrField[arrErrField.length] = "callingCards";
	}

	if (arrErrField.length > 0) {
			alert(errmsgStart+errmsg+errmsgEnd);
			for (var i=0; i<arrErrField.length; i++){     
				eval("form."+arrErrField[i]).style.background = "#F4F4F4";
			}
			eval("form."+arrErrField[0]).focus();
			return false;
	}
	return true;
return true;
}
	
function validateFormContactUs(form) {
	var errmsg       = "";
	var errmsgStart  = "The following error(s) have been found in your form submission.\n"; 
	var errmsgEnd    = "\n\nPlease click OK to go back and correct these form field error(s).\n";
	var arrErrField  = new Array();
	var error = true;
	if (form.customerName.value.search(chkAlpha) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Customer Name must be between 2-50 letters.";
		arrErrField[arrErrField.length] = "customerName";
	}
	if (form.address.value.search(chkAddress) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Address must be between 4-50 letters.";
		arrErrField[arrErrField.length] = "address";
	}	
	if (form.city.value.search(chkCity) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". City must be between 4-50 letters.";
		arrErrField[arrErrField.length] = "city";
	}		
	if (form.state.options[form.state.selectedIndex].value == "")  {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". State: Please select a state from the list.";
		arrErrField[arrErrField.length] = "state";
	}		
	if (form.zipCode.value.search(chkZip) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Zip code must be 5 digit or zip+4  format (99999 or 99999-9999).";
		arrErrField[arrErrField.length] = "zipCode";
	}	
	if (form.phoneNbr_AC.value.search(chkPhone3) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number area code.";
		arrErrField[arrErrField.length] = "phoneNbr_AC";
	}
	if (form.phoneNbr_PRE.value.search(chkPhone3) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number prefix.";
		arrErrField[arrErrField.length] = "phoneNbr_PRE";
	}
	if (form.phoneNbr_POST.value.search(chkPhone4) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number postfix.";
		arrErrField[arrErrField.length] = "phoneNbr_POST";
	}
	if ((form.emailAddress.value.length < 6 ) || (chkEmail.test(form.emailAddress.value) == false)) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Email Address: Please use a valid email address format.";
		arrErrField[arrErrField.length] = "emailAddress";
	}	
	if (form.last4SSN.value.search(chkPhone4) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Last 4 Digits SSN must be exactly 4 numbers.";
		arrErrField[arrErrField.length] = "last4SSN";
	}		
	if (form.deptListID.options[form.deptListID.selectedIndex].value == "") {
			errmsg = errmsg+"\n"+(arrErrField.length+1)+". Department to Email: Please select a department from the list.";
			arrErrField[arrErrField.length] = "deptListID";
	}	
    if (form.botQuestion.value != "<cfoutput>#key#</cfoutput>") {
			errmsg = errmsg+"\n"+(arrErrField.length+1)+". Please type the correct letters in the field.";
			arrErrField[arrErrField.length] = "botQuestion";
	}	
	if (arrErrField.length > 0) {
			alert(errmsgStart+errmsg+errmsgEnd);
			for (var i=0; i<arrErrField.length; i++){     
				eval("form."+arrErrField[i]).style.background = "#F4F4F4";
			}
			eval("form."+arrErrField[0]).focus();
			return false;
	}
return true;
} 
function validateFormHTCContactUs(form) {
	var errmsg       = "";
	var errmsgStart  = "The following error(s) have been found in your form submission.\n"; 
	var errmsgEnd    = "\n\nPlease click OK to go back and correct these form field error(s).\n";
	var arrErrField  = new Array();
	var error = true;
	if (form.customerName.value.search(chkAlpha) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Customer Name must be between 2-50 letters.";
		arrErrField[arrErrField.length] = "customerName";
	}
	if (form.address.value.search(chkAddress) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Address must be between 4-50 letters.";
		arrErrField[arrErrField.length] = "address";
	}	
	if (form.city.value.search(chkCity) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". City must be between 4-50 letters.";
		arrErrField[arrErrField.length] = "city";
	}		
	if (form.state.options[form.state.selectedIndex].value == "")  {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". State: Please select a state from the list.";
		arrErrField[arrErrField.length] = "state";
	}		
	if (form.zipCode.value.search(chkZip) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Zip code must be 5 digit or zip+4  format (99999 or 99999-9999).";
		arrErrField[arrErrField.length] = "zipCode";
	}	
	if (form.phoneNbr_AC.value.search(chkPhone3) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number area code.";
		arrErrField[arrErrField.length] = "phoneNbr_AC";
	}
	if (form.phoneNbr_PRE.value.search(chkPhone3) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number prefix.";
		arrErrField[arrErrField.length] = "phoneNbr_PRE";
	}
	if (form.phoneNbr_POST.value.search(chkPhone4) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number postfix.";
		arrErrField[arrErrField.length] = "phoneNbr_POST";
	}
	if ((form.emailAddress.value.length < 6 ) || (chkEmail.test(form.emailAddress.value) == false)) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Email Address: Please use a valid email address format.";
		arrErrField[arrErrField.length] = "emailAddress";
	}	

	if (arrErrField.length > 0) {
			alert(errmsgStart+errmsg+errmsgEnd);
			for (var i=0; i<arrErrField.length; i++){     
				eval("form."+arrErrField[i]).style.background = "#F4F4F4";
			}
			eval("form."+arrErrField[0]).focus();
			return false;
	}



   return true;
return true;
}
function validateFormRepair(form) {
	var errmsg       = "";
	var errmsgStart  = "The following error(s) have been found in your form submission.\n"; 
	var errmsgEnd    = "\n\nPlease click OK to go back and correct these form field error(s).\n";
	var arrErrField  = new Array();
	var error = true;

	if (form.customerName.value.search(chkAlpha) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Customer Name must be between 2-50 letters.";
		arrErrField[arrErrField.length] = "customerName";
	}
	if (form.accountNbr.value == "" || 
			(form.phoneNbr_AC.value == "" && form.phoneNbr_PRE.value == "" && form.phoneNbr_POST.value == "")) {
		if (form.accountNbr.value == "" && form.phoneNbr_AC.value == "" && form.phoneNbr_PRE.value == "" && form.phoneNbr_POST.value == ""){
			errmsg = errmsg+"\n"+(arrErrField.length+1)+". Account/Phone Number: An account or phone number is required.";
			arrErrField[arrErrField.length] = "accountNbr";		
		}
		if (form.accountNbr.value != "") {
			if (form.accountNbr.value.search(chkAccount) == -1) {
			errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Account Number: Please enter your 8 digit account number.";
			arrErrField[arrErrField.length] = "accountNbr";		
			}
		}
		if (form.phoneNbr_AC.value != "" && form.phoneNbr_PRE.value != "" &&form.phoneNbr_POST.value != "") {
			if (form.phoneNbr_AC.value != "") {
				if (form.phoneNbr_AC.value.search(chkPhone3) == -1) {
					errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number area code.";
					arrErrField[arrErrField.length] = "phoneNbr_AC";
				}
			}
			if (form.phoneNbr_PRE.value != "") {
				if (form.phoneNbr_PRE.value.search(chkPhone3) == -1) {
					errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number prefix.";
					arrErrField[arrErrField.length] = "phoneNbr_PRE";
				}
			}
			if (form.phoneNbr_POST.value != "") {
				if (form.phoneNbr_POST.value.search(chkPhone4) == -1) {
					errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number postfix.";
					arrErrField[arrErrField.length] = "phoneNbr_POST";
				}
			}
		}
	}
	if (form.altContactNbr_AC.value.search(chkPhone3) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Alternate Contact Number: Please correct the phone number area code.";
		arrErrField[arrErrField.length] = "altContactNbr_AC";
	}
	if (form.altContactNbr_PRE.value.search(chkPhone3) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Alternate Contact Number: Please correct the phone number prefix.";
		arrErrField[arrErrField.length] = "altContactNbr_PRE";
	}
	if (form.altContactNbr_POST.value.search(chkPhone4) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Alternate Contact Number: Please correct the phone number postfix.";
		arrErrField[arrErrField.length] = "altContactNbr_POST";
	}		
	if ((form.emailAddress.value.length < 6 ) || (chkEmail.test(form.emailAddress.value) == false)) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Email Address: Please use a valid email address format.";
		arrErrField[arrErrField.length] = "emailAddress";
	}	
	if (form.lobType.options[form.lobType.selectedIndex].value == "") {
			errmsg = errmsg+"\n"+(arrErrField.length+1)+". Line Of Business: Please select the the line of business from the list.";
			arrErrField[arrErrField.length] = "lobType";		
	}
	if (form.typeOfProblem.options[form.typeOfProblem.selectedIndex].value == "") {
			errmsg = errmsg+"\n"+(arrErrField.length+1)+". Type Of Problem: Please select the type of problem from the list.";
			arrErrField[arrErrField.length] = "typeOfProblem";
	}		
    if (form.botQuestion.value != "<cfoutput>#key#</cfoutput>") {
			errmsg = errmsg+"\n"+(arrErrField.length+1)+". Please type the correct letters in the field.";
			arrErrField[arrErrField.length] = "botQuestion";
	}	
	if (arrErrField.length > 0) {
			alert(errmsgStart+errmsg+errmsgEnd);
			for (var i=0; i<arrErrField.length; i++){     
				eval("form."+arrErrField[i]).style.background = "#F4F4F4";
			}
			eval("form."+arrErrField[0]).focus();
			return false;
	}
return true;
}
function validateFormTechSupport(form) {
	var errmsg       = "";
	var errmsgStart  = "The following error(s) have been found in your form submission.\n"; 
	var errmsgEnd    = "\n\nPlease click OK to go back and correct these form field error(s).\n";
	var arrErrField  = new Array();
	var error = true;

	if (form.customerName.value.search(chkAlpha) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Customer Name must be between 2-50 letters.";
		arrErrField[arrErrField.length] = "customerName";
	}
	if (form.accountNbr.value == "" || 
			(form.phoneNbr_AC.value == "" && form.phoneNbr_PRE.value == "" && form.phoneNbr_POST.value == "")) {
		if (form.accountNbr.value == "" && form.phoneNbr_AC.value == "" && form.phoneNbr_PRE.value == "" && form.phoneNbr_POST.value == ""){
			errmsg = errmsg+"\n"+(arrErrField.length+1)+". Account/Phone Number: An account or phone number is required.";
			arrErrField[arrErrField.length] = "accountNbr";		
		}
		if (form.accountNbr.value != "") {
			if (form.accountNbr.value.search(chkAccount) == -1) {
			errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Account Number: Please enter your 8 digit account number.";
			arrErrField[arrErrField.length] = "accountNbr";		
			}
		}
		if (form.phoneNbr_AC.value != "" && form.phoneNbr_PRE.value != "" &&form.phoneNbr_POST.value != "") {
			if (form.phoneNbr_AC.value != "") {
				if (form.phoneNbr_AC.value.search(chkPhone3) == -1) {
					errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number area code.";
					arrErrField[arrErrField.length] = "phoneNbr_AC";
				}
			}
			if (form.phoneNbr_PRE.value != "") {
				if (form.phoneNbr_PRE.value.search(chkPhone3) == -1) {
					errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number prefix.";
					arrErrField[arrErrField.length] = "phoneNbr_PRE";
				}
			}
			if (form.phoneNbr_POST.value != "") {
				if (form.phoneNbr_POST.value.search(chkPhone4) == -1) {
					errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number postfix.";
					arrErrField[arrErrField.length] = "phoneNbr_POST";
				}
			}
		}
	}
	if (form.altContactNbr_AC.value.search(chkPhone3) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Alternate Contact Number: Please correct the phone number area code.";
		arrErrField[arrErrField.length] = "altContactNbr_AC";
	}
	if (form.altContactNbr_PRE.value.search(chkPhone3) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Alternate Contact Number: Please correct the phone number prefix.";
		arrErrField[arrErrField.length] = "altContactNbr_PRE";
	}
	if (form.altContactNbr_POST.value.search(chkPhone4) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Alternate Contact Number: Please correct the phone number postfix.";
		arrErrField[arrErrField.length] = "altContactNbr_POST";
	}		
	if (form.category.options[form.category.selectedIndex].value == "") {
			errmsg = errmsg+"\n"+(arrErrField.length+1)+". Category: Please select a category from the list.";
			arrErrField[arrErrField.length] = "category";
	}		
	if (form.typeOfService.options[form.typeOfService.selectedIndex].value == "") {
			errmsg = errmsg+"\n"+(arrErrField.length+1)+". Type Of Service: Please select the type of service from the list.";
			arrErrField[arrErrField.length] = "typeOfService";
	}		
	
	if (form.typeOfService.options[form.typeOfService.selectedIndex].value == "DSL") {
		if (form.typeOfModem.options[form.typeOfModem.selectedIndex].value == "") {
				errmsg = errmsg+"\n"+(arrErrField.length+1)+". Type Of Modem: Please select the type of modem from the list.";
				arrErrField[arrErrField.length] = "typeOfModem";
		}		
		if (form.router.options[form.router.selectedIndex].value == "") {
				errmsg = errmsg+"\n"+(arrErrField.length+1)+". Router: Please select yes or no from the list.";
				arrErrField[arrErrField.length] = "router";
		}
	}
	if (form.typeOfService.options[form.typeOfService.selectedIndex].value == "Cable Modem" ) {
		if (form.router.options[form.router.selectedIndex].value == "") {
				errmsg = errmsg+"\n"+(arrErrField.length+1)+". Router: Please select yes or no from the list.";
				arrErrField[arrErrField.length] = "router";
		}		
	}
if ((form.emailAddress.value.length < 6 ) || (chkEmail.test(form.emailAddress.value) == false)) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Email Address: Please use a valid email address format.";
		arrErrField[arrErrField.length] = "emailAddress";
	}	

	if (arrErrField.length > 0) {
			alert(errmsgStart+errmsg+errmsgEnd);
			for (var i=0; i<arrErrField.length; i++){     
				eval("form."+arrErrField[i]).style.background = "#F4F4F4";
			}
			eval("form."+arrErrField[0]).focus();
			return false;
	}
return true;
}
function validateCustomerComments(form) {
	var errmsg       = "";
	var errmsgStart  = "The following error(s) have been found in your form submission.\n"; 
	var errmsgEnd    = "\n\nPlease click OK to go back and correct these form field error(s).\n";
	var arrErrField  = new Array();
	var error = true;

	if (form.customerName.value.search(chkAlpha) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Customer Name must be between 2-50 letters.";
		arrErrField[arrErrField.length] = "customerName";
	}
	if (form.address.value.search(chkAddress) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Address must be between 4-50 letters.";
		arrErrField[arrErrField.length] = "address";
	}	
	if (form.city.value.search(chkCity) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". City must be between 4-50 letters.";
		arrErrField[arrErrField.length] = "city";
	}		
	if (form.state.options[form.state.selectedIndex].value == "")  {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". State: Please select a state from the list.";
		arrErrField[arrErrField.length] = "state";
	}		
	if (form.zipCode.value.search(chkZip) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Zip code must be 5 digit or zip+4  format (99999 or 99999-9999).";
		arrErrField[arrErrField.length] = "zipCode";
	}	
	if ((form.emailAddress.value.length < 6 ) || (chkEmail.test(form.emailAddress.value) == false)) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Email Address: Please use a valid email address format.";
		arrErrField[arrErrField.length] = "emailAddress";
	}	
    if (form.botQuestion.value != "<cfoutput>#key#</cfoutput>") {
			errmsg = errmsg+"\n"+(arrErrField.length+1)+". Please type the correct etters in the field.";
			arrErrField[arrErrField.length] = "botQuestion";
	}		
	if (arrErrField.length > 0) {
			alert(errmsgStart+errmsg+errmsgEnd);
			eval("form."+arrErrField[0]).focus();
			return false;
	}
return true;
}
function autofocus(field, limit, next, evt) {
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
	if (charCode > 31 && field.value.length == limit) {
		field.form.elements[next].focus();
	}
}
function numeralsOnly(evt) {
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
	if (charCode > 31 && (charCode < 48 || charCode > 57)) {
		alert("Enter numerals only in this field.");
		return false;
	}
	return true;
}

function showHideFields(formfield) {
	if (formfield == 'DSL') {
		document.getElementById('modemLayer1').style.display = "inline";
		document.getElementById('modemLayer2').style.display = "inline";
		document.getElementById('routerLayer1').style.display = "inline"; 
		document.getElementById('routerLayer2').style.display = "inline"; 
	} else
	if (formfield == "Cable Modem") {
		document.getElementById('modemLayer1').style.display = "none";
		document.getElementById('modemLayer2').style.display = "none";
		document.getElementById('routerLayer1').style.display = "inline"; 
		document.getElementById('routerLayer2').style.display = "inline"; 
	} else {
		document.getElementById('modemLayer1').style.display = "none";
		document.getElementById('modemLayer2').style.display = "none";
		document.getElementById('routerLayer1').style.display = "none"; 
		document.getElementById('routerLayer2').style.display = "none"; 
	}
}

// Count the number of characters in a textarea field. 
function textCounter(field, maxlimit) {
	if (field.value.length > maxlimit) // if too long...trim it!
            field.value = field.value.substring(0, maxlimit);
}

// Validate textarea fields onKeyPress – ALL charCodes listed are prohibited.  To allow a specific character listed just remove it from the if statement
function textareaCheck(evt) {
 	errmsg1 = "Please use alphanumeric characters in this field.\n\n";
 	errmsg3 = "Please click OK to continue.";
 	evt = (evt) ? evt : event;
 	var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
 	if ((charCode > 96 && charCode < 123) || //alphabetic(a-z)
   		(charCode > 64 && charCode < 91) || //alphabetic(A-Z)
   		(charCode > 47 && charCode < 58) || //numerals(0-9)
   		(charCode == 45) || //dash
   		(charCode == 32) || //space
   		(charCode == 33) || //exclamation
   		(charCode == 44) || //comma
   		(charCode == 35) || //pound
   		(charCode == 36) || //dollar
   		(charCode == 38) || //ampersand
   		(charCode == 40) || //open parenthesis
   		(charCode == 41) || //closed parenthesis
   		(charCode == 63) || //question
   		(charCode == 58) || //colon
   		(charCode == 34) || //quote
   		(charCode == 39) || //single quote
   		(charCode == 47) || //forward slash
   		(charCode == 59) || //semi-colon
   		(charCode == 43) || //plus
   		(charCode == 61) || //equals
   		(charCode == 46))   //period
 		{
  		return true;
 		} 
 	else {
  		alert(errmsg1+errmsg3);
  		return false;
 	}
}

function validatePSAForm(form) {
	var errmsg       = "";
	var errmsgStart  = "The following error(s) have been found in your form submission.\n"; 
	var errmsgEnd    = "\n\nPlease click OK to go back and correct these form field error(s).\n";
	var arrErrField  = new Array();
	var error = true;
	if (form.EventName.value == '') {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Event Name is required.";
		arrErrField[arrErrField.length] = "EventName";
	}
	if (form.organization.value == '') {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Organization is required.";
		arrErrField[arrErrField.length] = "organization";
	}	
	if (form.date.value == '') {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Date is required.";
		arrErrField[arrErrField.length] = "date";
	}	
    if (form.time.value == '') {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Time is required.";
		arrErrField[arrErrField.length] = "time";
	}	
	if (form.location.value == '') {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Location is required.";
		arrErrField[arrErrField.length] = "location";
	}	
	if (form.contact.value == '') {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Contact is required.";
		arrErrField[arrErrField.length] = "contact";
	}	
	if (form.altContactNbr_AC.value.search(chkPhone3) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Alternate Phone Number: Please correct the alternate phone number area code.";
		arrErrField[arrErrField.length] = "altContactNbr_AC";
	}
	if (form.altContactNbr_PRE.value.search(chkPhone3) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Alternate Phone Number: Please correct the alternate phone number prefix.";
		arrErrField[arrErrField.length] = "altContactNbr_PRE";
	}
	if (form.altContactNbr_POST.value.search(chkPhone4) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Alternate Phone Number: Please correct the alternate phone number postfix.";
		arrErrField[arrErrField.length] = "altContactNbr_POST";
	}		
	if (form.phoneNbr_AC.value.search(chkPhone3) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number area code.";
		arrErrField[arrErrField.length] = "phoneNbr_AC";
	}
	if (form.phoneNbr_PRE.value.search(chkPhone3) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number prefix.";
		arrErrField[arrErrField.length] = "phoneNbr_PRE";
	}
	if (form.phoneNbr_POST.value.search(chkPhone4) == -1) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Phone Number: Please correct the phone number postfix.";
		arrErrField[arrErrField.length] = "phoneNbr_POST";
	}
	if ((form.emailAddress.value.length < 6 ) || (chkEmail.test(form.emailAddress.value) == false)) {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Invalid Email Address: Please use a valid email address format.";
		arrErrField[arrErrField.length] = "emailAddress";
	}	
	if (form.startdate.value == '') {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Start date is required.";
		arrErrField[arrErrField.length] = "startdate";
	}		
	if (form.comments.value == '') {
		errmsg = errmsg+"\n"+(arrErrField.length+1)+". Comments is required.";
		arrErrField[arrErrField.length] = "comments";
	}		
	if (arrErrField.length > 0) {
			alert(errmsgStart+errmsg+errmsgEnd);
			for (var i=0; i<arrErrField.length; i++){     
				eval("form."+arrErrField[i]).style.background = "#F4F4F4";
			}
			eval("form."+arrErrField[0]).focus();
			return false;
	}
return true;
} 






