
	function checkForm() {
	    var doc = document.submit_form;
		if (doc.first_name.value == "") {
			alert("You must provide your First Name");
			doc.first_name.focus();
			return false;
		}
		if (doc.last_name.value == "") {
			alert("You must provide your Last Name");
			doc.last_name.focus();
			return false;
		}
		if (doc.street.value == "" || doc.street.value == null) {
			alert("You must provide your Address");
			doc.street.focus();
			return false;
		}
		if (doc.city.value == "" || doc.city.value == null) {
			alert("You must provide your City");
			doc.city.focus();
			return false;
		}
		var state = document.getElementById('state');
		if (state.selectedIndex == 0) {
			alert("You must provide your State");
			state.focus();
			return false;
		}
		var info = document.getElementById('00N3000000181oW');
		if (info.selectedIndex == 0) {
			alert("You must select if you want Info or a Quote");
			info.focus();
			return false;
		}
		info = document.getElementById('00N50000001yB68');
		if (info.checked == false) {
			alert("You must check the box to give us permission to provide you an estimate request");
			info.focus();
			return false;
		}

		if (doc.zip.value == "" || doc.zip.value == null) {
			alert("You must provide your Zip Code");
			doc.zip.focus();
			return false;
		} else {
			if (! validateZIP(doc.zip.value)) {
				alert("Your zipcode does not appear to be in the correct format.\n\rPlease try either of the following formats: xxxxx or xxxxx-xxxx");
				return false;
				doc.zip.focus();
			}
		}	
		if (doc.phone.value == "" || doc.phone.value == null) {
			alert("You must provide your Phone number");
			doc.phone.focus();
			return false;
		} else {
			var phoneNumberDelimiters = "()- ";
			var validWorldPhoneChars = phoneNumberDelimiters + "+";
			var minDigitsInIPhoneNumber = 10;
			if (checkInternationalPhone(doc.phone.value)==false){
				alert("Please enter a valid phone number - 10 digits long");
				doc.phone.focus();
				return false;
			}
		}		
		if (doc.email.value == "") {
			alert("You must provide your eMail address");
			doc.email.focus();
			return false;
		}
		if (doc.email.value == "" || doc.email.value == null) {
			alert("You must provide your email address");
			doc.email.value.focus();
			return false;
		} else {
			if ( ! echeck(doc.email.value)) {
				alert("Invalid email address, please try again.");
				return false;
				doc.email.value.focus();
			}
		}

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

		if (field.length!=5 && field.length!=10) {
			return false;
		}
		for (var i=0; i < field.length; i++) {
			temp = "" + field.substring(i, i+1);
			if (temp == "-") hyphencount++;
			if (valid.indexOf(temp) == "-1") {
				return false;
			}
			if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
				return false;
			}
		}
		return true;
	}
		
	function validateYear(field) {
		var valid = "0123456789";

		if (field.length != 4) {
			return false;
		}
		for (var i=0; i < field.length; i++) {
			temp = "" + field.substring(i, i+1);
			if (valid.indexOf(temp) == "-1") {
				return false;
			}
		}
		return true;
	}

	function echeck(str) {
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
			return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
			return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
			return false
		}

		if (str.indexOf(at,(lat+1))!=-1){
			return false
		}

		if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
			return false
		}

		if (str.indexOf(dot,(lat+2))==-1){
			return false
		}

		if (str.indexOf(" ")!=-1){
			return false
		}

		return true
	}

	function isInteger(s) {   
		var i;
		for (i = 0; i < s.length; i++) {   
			var c = s.charAt(i);
		    if (((c < "0") || (c > "9"))) return false;
		}
	    return true;
	}	

	function stripCharsInBag(s, bag) {   
		var i;
	  	var returnString = "";
	   	for (i = 0; i < s.length; i++) {   
			var c = s.charAt(i);
		    if (bag.indexOf(c) == -1) returnString += c;
		}
	    return returnString;
	}

	function checkInternationalPhone(strPhone){
		s=stripCharsInBag(strPhone,validWorldPhoneChars);
		return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
	}


