function validate(form){
	if(form.s_AppDOB_m.value.trim()=="" || form.s_AppDOB_d.value.trim()=="" || form.s_AppDOB_y.value.trim()==""){
		alert("You must provide your date of birth.");
		return false;
	}

	if(!form.AppGender[0].checked && !form.AppGender[1].checked){
		alert("We need to know your gender.");
		return false;
	}

	if(form.s_AppHeight_f.value.trim()=="" || form.s_AppHeight_i.value.trim()==""){
		alert("We need to know your height.");
		return false;
	}

	if(form.AppWeight.value.trim()==""){
		alert("We need to know your weight.");
		return false;
	}

	if(!isNumeric(form.AppWeight.value)){
		alert("Your weight must contain only numbers.");
		return false;
	}

	if(form.AppFirstName.value.length<3){
		alert("The first name you provided appears to be missing or imcomplete.");
		form.AppFirstName.focus();
		form.AppFirstName.select();
		return false;
	}

	if(form.AppLastName.value.length<3){
		alert("The last name you provided appears to be missing or imcomplete.");
		form.AppLastName.focus();
		form.AppLastName.select();
		return false;
	}

	if(form.AddressStreet.value.trim()==""){
		alert("We need to know your address.");
		form.AddressStreet.focus();
		form.AddressStreet.select();
		return false;
	}

	if(form.AddressCity.value.trim()==""){
		alert("We need to know your city.");
		form.AddressCity.focus();
		form.AddressCity.select();
		return false;
	}

	if(form.AddressState.value.trim()==""){
		alert("We need to know your state.");
		form.AddressState.focus();
		return false;
	}

	if(form.AddressZipcode.value.trim()==""){
		alert("We need to know your zipcode.");
		form.AddressZipcode.focus();
		form.AddressZipcode.select();
		return false;
	}

	if(form.AddressZipcode.value.replace(/[^\d]/g,"").length<5){
		alert("The zipcode you provided is incomplete.");
		form.AddressZipcode.focus();
		form.AddressZipcode.select();
		return false;
	}

	if(form.AddressZipcode.value.replace(/[^\d]/g,"").length>5 && form.AddressZipcode.value.replace(/[^\d]/g,"").length<9){
		alert("The zipcode you provided is incomplete.");
		form.AddressZipcode.focus();
		form.AddressZipcode.select();
		return false;
	}

	if(form.Email.value.trim()==""){
		alert("We need to know your e-mail address.");
		form.Email.focus();
		form.Email.select();
		return false;
	}

	if(!isEmail(form.Email)){
		alert("The e-mail address you provided does not appear to be a welformed e-mail address.");
		form.Email.focus();
		form.Email.select();
		return false;
	}

	if(form.PhoneHome.value.replace(/[^\d]/g,"")==""){
		alert("We need to know your home phone number.");
		form.PhoneHome.focus();
		form.PhoneHome.select();
		return false;
	}

	if(form.PhoneHome.value.replace(/[^\d]/g,"").length<10){
		alert("The home phone number is not complete.");
		form.PhoneHome.focus();
		form.PhoneHome.select();
		return false;
	}

	if(form.PhoneDay.value.length>0 && form.PhoneDay.value.replace(/[^\d]/g,"").length<10){
		alert("The daytime phone number is not complete.");
		form.PhoneDay.focus();
		form.PhoneDay.select();
		return false;
	}

	if(form.PhoneCell.value.length>0 && form.PhoneCell.value.replace(/[^\d]/g,"").length<10){
		alert("The cell phone number is not complete.");
		form.PhoneCell.focus();
		form.PhoneCell.select();
		return false;
	}

	return true;
}
