function trimString(str) {
  str = this != window? this : str;
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}
function validateform() {
	var form = document.moreInfoForm;
	var noneselected = true;
	for(i=0;i<form.title.length;i++) { if(form.title[i].checked) noneselected = false; }
	if(noneselected) {
		alert("Please select your Title");
		form.title[0].focus(); return false;
	}
	if(trimString(form.firstname.value) == "") {
		alert("Please enter your First Name");
		form.firstname.select(); return false;
	}
	if(trimString(form.surname.value) == "") {
		alert("Please enter your Surname");
		form.surname.select(); return false;
	}
	if(trimString(form.address.value) == "") {
		alert("Please enter your Address");
		form.address.select(); return false;
	}
	if(trimString(form.suburb.value) == "") {
		alert("Please enter your Suburb or Town");
		form.suburb.select(); return false;
	}
	if((form.state.options[0].selected)&&(trimString(form.stateother.value) =="")){
		alert("Please select your State");
		form.state.focus(); return false;
	}
	if(trimString(form.postcode.value) == "") {
		alert("Please enter your Postcode");
		form.postcode.select(); return false;
	}
	if(trimString(form.phone.value) == "") {
		alert("Please enter your Home Phone Number");
		form.phone.select(); return false;
	}
	if(trimString(form.email.value) == "") {
		alert("Please enter your Email Address");
		form.email.select(); return false;
	}
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
	if (reg1.test(form.email.value) || !reg2.test(form.email.value)) { // if syntax is invalid
		alert("Please enter a valid Email Address");
		form.email.select(); return false;
	}
	var noneselected = true;
	for(i=0;i<form.PreferredContactTime.length;i++) { if(form.PreferredContactTime[i].checked) noneselected = false; }
	if(noneselected) {
		alert("Please select a Preferred Contact Time");
		form.PreferredContactTime[0].focus(); return false;
	}
	if(!form.privacy.checked) {
		alert("Please indicate you've read and agreed to the privacy policy."); 
		form.privacy.focus(); return false;
	}
	return true;
}

function clearform() {
	var form = document.moreInfoForm;
	for(i=0;i<form.title.length;i++) { form.title[i].checked = false; }
	form.firstname.value = "";
	form.surname.value = "";
	form.address.value = "";
	form.address2.value = "";
	form.suburb.value = "";
	form.state.options[0].selected = true;
	form.stateother.value = "";
	form.postcode.value = "";
	form.country.value = "";
	form.Paddress.value = "";
	form.Paddress2.value = "";
	form.Psuburb.value = "";
	form.Pstate.options[0].selected = true;
	form.Pstateother.value = "";
	form.Ppostcode.value = "";
	form.Pcountry.value = "";
	form.phonec.value = "";
	form.phonea.value = "";
	form.phone.value = "";
	form.businessphonec.value = "";
	form.businessphonea.value = "";
	form.businessphone.value = "";
	form.mobilephonec.value = "";
	form.mobilephonea.value = "";
	form.mobilephone.value = "";
	form.faxc.value = "";
	form.faxa.value = "";
	form.fax.value = "";
	form.email.value = "";
	for(i=0;i<form.PreferredContactTime.length;i++) { form.PreferredContactTime[i].checked = false; }
	form.EstimatedBudget.options[0].selected = true;
	for(i=0;i<form.OwnerTypes.length;i++) { form.OwnerTypes[i].checked = false; }
	for(i=0;i<form.PackageTypes.length;i++) { form.PackageTypes[i].checked = false; }
	form.SpecificInfo.value = "";
	form.privacy.checked = false;
}

function fv_textRequired(form,fieldname,displayname) {
	if(fv_isBlank(form[fieldname].value)) { return displayname + " cannot be left blank\n"; }
	else { return ""; }
}