function formValidator(){
	// Make quick references to our fields
	
	var first_name = document.getElementById('firstname');
	var last_name = document.getElementById('lastname');
	var email_address = document.getElementById('email');
	var cphone1 = document.getElementById('cphone1');
	var cphone2 = document.getElementById('cphone2');
	var cphone3 = document.getElementById('cphone3');
	var phone = cphone1.value + cphone2.value + cphone3.value;
	
	document.getElementById("cphone").value = phone;
	
	var phone2 = cphone1.value + '-' + cphone2.value + '-' + cphone3.value;
    if(phone2.search(/\d{3}\-\d{3}\-\d{4}/)==-1)
    {
       alert("The phone number you entered is not valid.\r\nPlease enter a phone number with the format xxx-xxx-xxxx.");
       return false;
    }
   
    var zip = document.getElementById('zip').value;
    if(zip.length != 0){
		 if(!validateZIP(zip)) return false;
	}
	
	
	// Check each input in the order that it appears in the form!
	if(isEmpty(first_name, "Please enter your first name")){
		if(isEmpty(last_name, "Please enter your last name")){
			if(isEmpty(cphone1, "Please enter a valid cell phone number")){
				if(isEmpty(cphone2, "Please enter a valid cell phone number")){
					if(isEmpty(cphone3, "Please enter a valid cell phone number")){
							if(emailValidator(email_address, "Please enter a valid email address")){
							
								setTimeout("SubmitNow()", 1000);
								return false;
							}
						
					}
				}
			}
		}
	}
	
	return false;
}





function validateZIP(field) {
    var valid = "0123456789-";
    var hyphencount = 0;

    if (field.length!=5 && field.length!=10) {
        alert("Please enter your 5 digit or 5 digit+4 zip code.");
        return false;
    }
    for (var i=0; i < field.length; i++) {
        temp = "" + field.substring(i, i+1);
         if (temp == "-") hyphencount++;
             if (valid.indexOf(temp) == "-1") {
                 alert("Invalid characters in your zip code.  Please try again.");
                 return false;
             }
             if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
                 alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
                 return false;
             }
    }
    return true;
}






function SubmitNow() {
	document.registerform.submit();
	return true;
}


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

function issuffix(elem, helperMsg){
	var numericExpression = /^[0-9]+$/;
	var onedigit = /^[0-9]{1}$/;
	var twodigit = /^[0-9]{2}$/;
	var threedigit = /^[0-9]{3}$/;
	if(elem.value.match(onedigit)){	
			alert(helperMsg);
		elem.focus();
			return false;
	}else if(elem.value.match(twodigit)){	
			alert(helperMsg);
		elem.focus();
			return false;
	}else if(elem.value.match(threedigit)){	
			alert(helperMsg);
		elem.focus();
			return false;
	}else if(elem.value.match(numericExpression)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isprefix(elem, helperMsg){
	var checkone = /^[0]{3}$/;
	var checktwo = /^[1]{3}$/;
	var checkthree = /^[5]{3}$/;
	var checkfour = /^[9]{3}$/;
	var finalcheck = /^[0-9]+$/;
	var onedigit = /^[0-9]{1}$/;
	var twodigit = /^[0-9]{2}$/;
	if(elem.value.match(checkone)){	
			alert(helperMsg);
		elem.focus();
			return false;
	}else if(elem.value.match(checktwo)){	
			alert(helperMsg);
		elem.focus();
			return false;
	}else if(elem.value.match(checkthree)){	
			alert(helperMsg);
		elem.focus();
			return false;
	}else if(elem.value.match(checkfour)){	
			alert(helperMsg);
		elem.focus();
			return false;
	}else if(elem.value.match(onedigit)){	
			alert(helperMsg);
		elem.focus();
			return false;
	}else if(elem.value.match(twodigit)){	
			alert(helperMsg);
		elem.focus();
			return false;
	}else if(elem.value == "123"){	
			alert(helperMsg);
		elem.focus();
			return false;
	}else if(elem.value.match(finalcheck)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isareacode(elem, helperMsg){
	var numericExpression = /^([0-9])\1+$/;
	var finalcheck = /^[0-9]+$/;
	var onedigit = /^[0-9]{1}$/;
	var twodigit = /^[0-9]{2}$/;
	if(elem.value.match(numericExpression)){	
			alert(helperMsg);
		elem.focus();
			return false;
	}else if(elem.value.match(onedigit)){	
			alert(helperMsg);
		elem.focus();
			return false;
	}else if(elem.value.match(twodigit)){	
			alert(helperMsg);
		elem.focus();
			return false;
	}else if(elem.value == "123"){	
			alert(helperMsg);
		elem.focus();
			return false;
	}else if(elem.value.match(finalcheck)){
		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 between " +min+ " and " +max+ " characters");
		elem.focus();
		return false;
	}
}

function madeSelection(elem, helperMsg){
	if(elem.value == "-- Select --"){
		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;
	}
}



