
	function checkForm() {
	    var doc = document.submit_form;
		if (doc.fname.value == "") {
			alert("You must provide your first name");
			doc.fname.focus();
			return false;
		}
		if (doc.lname.value == "") {
			alert("You must provide your last name");
			doc.lname.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();
			}
		}
		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.address.value == "" || doc.address.value == null) {
			alert("You must provide your address");
			doc.address.focus();
			return false;
		}
		if (doc.city.value == "" || doc.city.value == null) {
			alert("You must provide your city");
			doc.city.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( ! checkZip(doc.zip.value)) {
				alert( doc.zip.value + " is not a valid zip code for this offer.  It is only valid in selected Denver areas");
				doc.zip.focus();
				return false;
			}
			***/
			if (! validateZIP(doc.zip.value)) {
				alert("Your zip code 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.lead_source.value == "") {
			alert("You must choose how you heard about us");
			doc.lead_source.focus();
			return false;
		}

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