function checkForm() {
	if (document.frmHome.FirstName.value=='') {
		alert('Please enter your First Name.');
		document.frmHome.FirstName.focus();
		return false;
	}
	else if (document.frmHome.LastName.value=='') {
		alert('Please enter your Last Name.');
		document.frmHome.LastName.focus();
		return false;
	}
	else if (document.frmHome.HomePhone.value=='') {
		alert('Please enter your Home Phone so our buyer can contact you.');
		document.frmHome.HomePhone.focus();
		return false;
	}
	else if (!isValidPhone(document.frmHome.HomePhone.value)) {
		alert('Please enter a ten-digit Home Phone number.');
		document.frmHome.HomePhone.focus();
		return false;
	}
	else if (document.frmHome.WorkPhone.value!='' && !isValidPhone(document.frmHome.WorkPhone.value)) {
		alert('Please enter a ten-digit Work Phone number.');
		document.frmHome.WorkPhone.focus();
		return false;
	}
	else if (document.frmHome.EMailAddress.value=='') {
		alert('Please enter your Email Address so we can confirm your submission.');
		document.frmHome.EMailAddress.focus();
		return false;
	}
	else if (document.frmHome.Address.value=='') {
		alert('Please enter the Address of the property you are selling.');
		document.frmHome.Address.focus();
		return false;
	}
	else if (document.frmHome.City.value=='') {
		alert('Please enter the City where the property you are selling is located.');
		document.frmHome.City.focus();
		return false;
	}
	else if (document.frmHome.County.value=='') {
		alert('Please enter the County where the property you are selling is located.');
		document.frmHome.County.focus();
		return false;
	}
	else if (document.frmHome.County.value.toLowerCase()=='us' || document.frmHome.County.value.toLowerCase()=='usa' || document.frmHome.County.value.toLowerCase()=='u.s.' || document.frmHome.County.value.toLowerCase()=='u.s.a.' || document.frmHome.County.value.toLowerCase()=='united states') {
		alert('Please enter the County where the property you are selling is located, not the Country.');
		document.frmHome.County.value='';
		document.frmHome.County.focus();
		return false;
	}
	else if (document.frmHome.State.value=='') {
		alert('Please enter the State or Province where the property you are selling is located.');
		document.frmHome.State.focus();
		return false;
	}
	else if (!isValidStateAbbr(document.frmHome.State.value)) {
		alert('"' + document.frmHome.State.value + '" is not a valid State or Province abbreviation.');
		document.frmHome.State.focus();
		return false;
	}
	else if (document.frmHome.ZipCode.value=='') {
		alert('Please enter the ZIP or Postal Code where the property you are selling is located.');
		document.frmHome.ZipCode.focus();
		return false;
	}
	else if (!isValidZIP(document.frmHome.ZipCode.value)) {
		alert('Please enter a ZIP or Postal Code.');
		document.frmHome.ZipCode.focus();
		return false;
	
	}
	else if (document.frmHome.EstimatedHomeValue.value.indexOf('-') > -1) {
		alert('Please enter a single Home Value instead a range.');
		document.frmHome.EstimatedHomeValue.focus();
		return false;
	}
	else if (scrubNumber(document.frmHome.EstimatedHomeValue.value)=='' || scrubNumber(document.frmHome.EstimatedHomeValue.value) < 10000 || scrubNumber(document.frmHome.EstimatedHomeValue.value) > 20000000) {
		alert('Please enter a Home Value between $10,000 and $20,000,000.');
		document.frmHome.EstimatedHomeValue.value = scrubNumber(document.frmHome.EstimatedHomeValue.value);
		document.frmHome.EstimatedHomeValue.focus();
		return false;
	}
	else if (document.frmHome.SquareFootage.value=='') {
		alert('Please select the Approximate Square Footage of the property you are selling.');
		document.frmHome.SquareFootage.focus();
		return false;
	}
	else if (document.frmHome.NumberOfBedrooms.value=='') {
		alert('Please select the Number of Bedrooms of the property you are selling.');
		document.frmHome.NumberOfBedrooms.focus();
		return false;
	}
	else if (document.frmHome.NumberOfBathrooms.value=='') {
		alert('Please select the Number of Bathrooms of the property you are selling.');
		document.frmHome.NumberOfBathrooms.focus();
		return false;
	}
	else
		document.frmHome.EstimatedHomeValue.value = scrubNumber(document.frmHome.EstimatedHomeValue.value);
}

function isValidPhone(sPhoneNumber) {
	sPhoneNumber = sPhoneNumber.replace(/[\(\)-\.\s]/g, '') // Remove all these characters: ( ) . - <space>
	if (sPhoneNumber.length!=10)
		return false
	else if (sPhoneNumber.match(/^\d+$/)) // See if the remainder is all numbers
		return true
	else
		return false
}

function isValidZIP(sZIP) {
	sStateAbbrev = document.frmHome.State.value.toUpperCase()
	if (sStateAbbrev.match(/^BC$|^AB$|^MB$|^NB$|^NF$|^NT$|^NS$|^ON$|^PE$|^QC$|^SK$|^YK$|^NU$$/)) 
		return true
	else if (sZIP.length!=5)
		return false
	else if (sZIP.match(/^\d+$/)) // See if it's numeric
		return true
	else
		return false
}

function isValidStateAbbr(sStateAbbr) {
	sStateAbbr = sStateAbbr.toUpperCase()
	if (sStateAbbr.length!=2)
		return false
	else if (sStateAbbr.match(/^AL$|^AK$|^AZ$|^AR$|^CA$|^CO$|^CT$|^DC$|^DE$|^FL$|^GA$|^HI$|^ID$|^IL$|^IN$|^IA$|^KS$|^KY$|^LA$|^ME$|^MD$|^MA$|^MI$|^MN$|^MS$|^MO$|^MT$|^NE$|^NV$|^NH$|^NJ$|^NM$|^NY$|^NC$|^ND$|^OH$|^OK$|^OR$|^PA$|^RI$|^SC$|^SD$|^TN$|^TX$|^UT$|^VT$|^VA$|^WA$|^WV$|^WI$|^WY$|^BC$|^AB$|^MB$|^NB$|^NF$|^NT$|^NS$|^ON$|^PE$|^QC$|^SK$|^YK$|^NU$/)) // See if it's in the list
		return true
	else
		return false
}

function scrubNumber(sNumber) {
	sNumber = sNumber.replace(/[.,]..$/, '');   // Remove any cents from the end (matches '.00' '.01' etc.)
	sNumber = sNumber.replace(/[Kk]/g, '000'); // Replaces all K's with 000
	sNumber = sNumber.replace(/[^0-9]/g, '');  // Removes any remaining non-numeric characters
	return sNumber;
}