function clearDefVal(obj){if(obj.value.length>0 && obj.value==obj.title){obj.value='';}}
function restoreDefVal(obj){if(trim(obj.value)=='') obj.value=obj.defaultValue;}
var errorObject=new Object();
function showError(myForm){document.getElementById("findHomeError").className="displayError";document.getElementById("findHomeError").innerHTML=errorObject.message;errorObject=new Object();}
function doSubmit(myForm){if(!validateForm(myForm)){showError(myForm);return false;}return true;}
function validateForm(myForm){var formLen=myForm.elements.length;var myElement;for (var myLoops=0; myLoops<(formLen); myLoops++){myElement = myForm.elements[myLoops];if (myElement.className.toLowerCase().match(/^req$|^req\s+|\s+req\s+|\s+req$/)){if(myElement.type=="text"){if(!isValidText(myElement)){return false;}}else if(myElement.type=="select-one"){if(!isValidSelection(myElement)){return false;}}}}return true;}
function isFieldEmpty(field){if(field.value.length>0){field.value=trim(field.value);}if(field.value.length==0 || field.value==null){setError(loadErrorTitle(field));return true;}return false;}
function isTitleValue(field){if(field.value==field.title){setError(loadErrorTitle(field));return true;}return false;}
function loadErrorTitle(field){var objTitle=field.title;if(typeof objTitle == "undefined"){if(field.type=="text"){objTitle="complete the required field";}else if(field.type=="select-one"){objTitle="make the required selection";}}return objTitle;}
function setError(mess){errorObject.message="ERROR: Please "+mess.toLowerCase();}
function NaE(field){if(typeof errorObject.message == "string"){if(errorObject.message.length>0){field.focus();return false;}}return true;}
function NaZ(field){if(field.value.length!=5 || isNaN(field.value)){setError("enter a valid 5-digit Zip Code");return true;}if(field.value.length>5){field.value=field.value.substring(0,4);}return false;}
function isState(field){var s="";var state=trim(field.value.split(',')[1]);var ab=state.length==2?true:false;var states=[{a:"AL",n:"Alabama"},{a:"AK",n:"Alaska"},{a:"AZ",n:"Arizona"},{a:"AR",n:"Arkansas"},{a:"CA",n:"California"},{a:"CO",n:"Colorado"},{a:"CT",n:"Connecticut"},{a:"DE",n:"Delaware"},{a:"DC",n:"District of Columbia"},{a:"FL",n:"Florida"},{a:"GA",n:"Georgia"},{a:"HI",n:"Hawaii"},{a:"ID",n:"Idaho"},{a:"IL",n:"Illinois"},{a:"IN",n:"Indiana"},{a:"IA",n:"Iowa"},{a:"KS",n:"Kansas"},{a:"KY",n:"Kentucky"},{a:"LA",n:"Louisiana"},{a:"ME",n:"Maine"},{a:"MD",n:"Maryland"},{a:"MA",n:"Massachusetts"},{a:"MI",n:"Michigan"},{a:"MN",n:"Minnesota"},{a:"MS",n:"Mississippi"},{a:"MO",n:"Missouri"},{a:"MT",n:"Montana"},{a:"NE",n:"Nebraska"},{a:"NV",n:"Nevada"},{a:"NH",n:"New Hampshire"},{a:"NJ",n:"New Jersey"},{a:"NM",n:"New Mexico"},{a:"NY",n:"New York"},{a:"NC",n:"North Carolina"},{a:"ND",n:"North Dakota"},{a:"OH",n:"Ohio"},{a:"OK",n:"Oklahoma"},{a:"OR",n:"Oregon"},{a:"PA",n:"Pennsylvania"},{a:"RI",n:"Rhode Island"},{a:"SC",n:"South Carolina"},{a:"SD",n:"South Dakota"},{a:"TN",n:"Tennessee"},{a:"TX",n:"Texas"},{a:"UT",n:"Utah"},{a:"VT",n:"Vermont"},{a:"VA",n:"Virginia"},{a:"WA",n:"Washington"},{a:"WV",n:"West Virginia"},{a:"WI",n:"Wisconsin"},{a:"WY",n:"Wyoming"}];var c=states.length;for(var i=0;i<c;i++){if(ab){s=states[i].a;}else{s=states[i].n;}if(state.toUpperCase()==s.toUpperCase()){if(!ab){field.value=trim(field.value.split(',')[0])+", "+states[i].a;}return true;}}return false;}
function isValidText(field){field.value=field.value.replace(/[^a-zA-Z0-9\$\,\.\#\s]/g,"");if(!isFieldEmpty(field)){if(!isTitleValue(field)){var c=field.className.toLowerCase();if(typeof c!="undefined"){if (c.match(/^citystatezip$|^citystatezip\s+|\s+citystatezip\s+|\s+citystatezip$/)){checkCityStateZip(field);}else if(c.match(/^citystate$|^citystate\s+|\s+citystate\s+|\s+citystate$/)){checkCityState(field)}else if(c.match(/^city$|^city\s+|\s+city\s+|\s+city$/)){checkCity(field)}else if(c.match(/^state$|^state\s+|\s+state\s+|\s+state$/)){checkState(field)}else if(c.match(/^zip$|^zip\s+|\s+zip\s+|\s+zip$/)){checkZip(field);}else if(c.match(/^street$|^street\s+|\s+street\s+|\s+street$/)){checkStreet(field);}else if (c.match(/^name$|^name\s+|\s+name\s+|\s+name$/)){checkName(field);}else if (c.match(/^amount$|^amount\s+|\s+amount\s+|\s+amount$/)){checkAmount(field);}else if (c.match(/^rate$|^rate\s+|\s+rate\s+|\s+rate$/)){checkRate(field);}else if (c.match(/^term$|^term\s+|\s+term\s+|\s+term$/)){checkTerm(field);}}}}return NaE(field);}
function checkCityStateZip(field){if(isNaN(field.value)){if(field.value.match(/\d+/)){field.value=field.value.replace(/\D/g,"");NaZ(field);}else{checkCityState(field);}}else{NaZ(field);}return NaE(field);}
function checkCityState(field){if (field.value.match(/^\,|\,$/)){setError("enter a city, state combination");}else if(field.value.indexOf(",")<0){setError("include a comma between the city and state");}else{if(trim(field.value.split(',')[1]).length<2){setError("use a two letter state abbreviation");}else if(! isState(field)){setError("use a two letter state abbreviation");}}return NaE(field);}
function checkCity(field){checkName(field);return NaE(field);}
function checkState(field){if(! isState(field)){setError("use a two letter state abbreviation");}return NaE(field);}
function checkZip(field){NaZ(field);return NaE(field);}
function checkStreet(field){if(isNaN(field.value)){if(field.value.match(/\d/)==null){setError("enter a street address with a number");}}else{setError("enter a street address with a street name");}return NaE(field);}
function isValidSelection(field){if(field.options[field.selectedIndex].value == ""){setError(loadErrorTitle(field));field.focus();return false;}return true;}
function onMap(obj){if(obj.value=="Find Listings"){obj.value="Map Listings";}else{obj.value="Find Listings";}}
function loadErrorTitle(field){var objTitle=field.title;if(typeof objTitle == "undefined"){if(field.type=="text"){objTitle="complete the required field";}else if(field.type=="select-one"){objTitle="make the required selection";}}return objTitle;}
function trim(myStr){myStr = myStr.replace(/^\s+|\s+$/g, '');return (myStr);}
