function validate_required(field,alerttxt) {
	with (field) {
		if (value==null || value=="") {
			alert(alerttxt);
			return false;
		} else {
			return true;
		}
	}
}

function validate_select(field,alerttxt) {
	with (field) {
		if (field.selectedIndex==0) {
			alert(alerttxt);
			return false;
		} else {
			return true;
		}
	}
}

function validate_other(field,alerttxt,field2) {
	if ((field.options[field.selectedIndex].value)=="Other" && (field2.value==null || field2.value=="")) {
		alert(alerttxt);
		return false;
	} else {
		return true;
	}
}

function validate_zip(field,alerttxt) {
	with (field) {
		var zipExp = /^\d{5}(-\d{4})?$/;
		if (!(value.match(zipExp))) {
			alert(alerttxt);
			return false;
		} else {
			return true;
		}
	}
}


function validate_phone(field,alerttxt) {
	with (field) {
		var phoneExp = /^\(?\d{3}\)?[-\s.]?\d{3}[-.]\d{4}$/;
		if (!(value.match(phoneExp))) {
			alert(alerttxt);
			return false;
		} else {
			return true;
		}
	}
}

function validate_email(field,alerttxt) {
	with (field) {
		var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,6}$/;
		if (!(value.match(emailExp))) {
			alert(alerttxt);
			return false;
		} else {
			return true;
		}
	}
}

function validate_radio(field,alerttxt) {
	myOption = -1;
	for (i=field.length-1; i > -1; i--) {
		if (field[i].checked) {
			myOption = i; i = -1;
		}
	}
	if (myOption == -1) {
		alert(alerttxt);
		return false;
	}
}

function validate_form(thisform) {
	with (thisform) {
		if (validate_required(first_name,"Please enter your first name.  (This is a required field.)")==false) {
			first_name.focus();return false;
		} else if (validate_required(last_name,"Please enter your last name.  (This is a required field.)")==false) {
			last_name.focus();return false
		} else if (validate_select(role,"Please specify your organizational role.  (This is a required field.)")==false) {
			role.focus();return false;
		} else if (zip.value!=null && zip.value!="" && validate_zip(zip,"Please verify that you have correctly entered your 5- or 9-digit ZIP code in the form \"XXXXX\" or \"XXXXX-XXXX\"")==false) {
			zip.focus();return false;
		} else if (validate_phone(phone,"Please verify that you have correctly entered your 10-digit phone number.  Valid formats include \"(XXX) XXX-XXXX\", \"XXX-XXX-XXXX\", and \"XXX.XXX.XXXX\".  (This is a required field.)")==false) {
			phone.focus();return false;
		} else if (fax.value!=null && fax.value!="" && validate_phone(fax,"Please verify that you have correctly entered your 10-digit fax number.  Valid formats include \"(XXX) XXX-XXXX\", \"XXX-XXX-XXXX\", and \"XXX.XXX.XXXX\".")==false) {
			fax.focus();return false;
		} else if (email.value!=null && email.value!="" && validate_email(email,"Please verify that you have correctly entered your email address.")==false) {
			email.focus();return false;
		} else if (validate_radio(number_of_docs,"Please indicate the number of physicians in your organization.  (This is a required field.)")==false) {
			number_of_docs[0].focus();return false;
		} else if (validate_select(found_via,"Please let us know how you heard about us.  (This is a required field.)")==false) {
			found_via.focus();return false;
		} else if (validate_other(found_via,"Please specify how you heard about us in the \"Questions\/Comments\" Section.",comments)==false) {
			comments.focus();return false;
		} else {
			return true;
		}
	}
}
