// JavaScript Document


/*This function lets you open links in an external window without using target.  Put rel="external" in the anchor tag.*/
function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}
window.onload = externalLinks;

function isEmpty(str) {
	var empty = (str == null || str == "") ? true : false
	return empty
}

function validEmail(email) {
	var emailRegExp = /^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$/
	if (emailRegExp.test(email)) {
		return true
	} else {
		return false
	}
}
/*This function takes a string, min length, and maximum length as parameters.  It verifies that the string meets the specified minimum and maximum length*/
function validLength(str, minLen, maxLen) {
	if(typeof(str) != "string") {
		str = str.toString()
	}
	if (str.length < minLen || str.length > maxLen) {
		return false
	} else {
		return true
	}
}

/*This function takes a string as a parameter, checks if it is a valid  number, and returns false if it is not.*/
function validPhone(str) {
	var phoneRegExp = /\d/
	if (phoneRegExp.test(str)) {
		return true
	} else {
		return false
	}
}

 function validate(formId){
 if (isEmpty(formId.customerName.value)) {  //validates the customer name
		alert ("Error!  Please enter your name.")
		formId.customerName.focus()
		return false
	    } 
		
 if (validEmail(formId.customerEmail.value) == false) { //validates the customer email
		alert ("Error!  That is not a valid email address.")
		formId.customerEmail.focus()
		return false
	    }
 
	 if (validPhone(formId.areaCode.value) == false) { //validates phone number
	 alert ("Error! That is not a valid phone number.")
	 formId.areaCode.focus()
	 return false
	 }
     if (validPhone(formId.phonePre.value) == false) { //validates phone number
	 alert ("Error! That is not a valid phone number.")
	 formId.phonePre.focus()
	 return false
	 }
	 if (validPhone(formId.phonePost.value) == false) {//validates phone number
	 alert ("Error! That is not a valid phone number.")
	 formId.phonePost.focus()
	 return false
	 }
	 if (validLength(formId.areaCode.value, 3 , 3) == false) { //validates length of area code
	 alert ("Error! That is not a valid phone number.")
	 formId.areaCode.focus()
	 return false
	 }
     if (validLength(formId.phonePre.value, 3, 3) == false) { //validates length of phone entry
	 alert ("Error! That is not a valid phone number.")
	 formId.phonePre.focus()
	 return false
	 }
	 if (validLength(formId.phonePost.value, 4, 4) == false) { //validates length of phone entry
	 alert ("Error! That is not a valid phone number.")
	 formId.phonePost.focus()
	 return false
	 }	 
}   