
	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.year.value == "" || doc.year.value == null) {
			alert("You must provide year home built");
			doc.year.focus();
			return false;
		} else {
			if (! validateYear(doc.year.value)) {
				alert("Year home built must use all 4 digits.\n\rLike 1980 or 2001");
				return false;
				doc.year.focus();
			}
		}	
****/
		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();
			}
		}

		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);
		}
	}


