// prepare the form when the DOM is ready 
$(document).ready(function() { 
	
   var options0 = { 
      beforeSubmit: gm_formvalidate0,  
      success:      gm_showResponse
   };
   $('#contactus_form').ajaxForm(options0);

   var options1 = { 
      beforeSubmit: gm_formvalidate1,  
      success:      gm_showResponse
   };
   $('#lasik_self_candidacy_test').ajaxForm(options1);

   var options2 = { 
      beforeSubmit: gm_formvalidate2,  
      success:      gm_showResponse
   };
   $('#make_appointment_form').ajaxForm(options2);

   var options3 = { 
      beforeSubmit: gm_formvalidate3,  
      success:      gm_showResponse
   };
   $('#corporate_form').ajaxForm(options3);

   var options4 = { 
      beforeSubmit: gm_formvalidate4,  
      success:      gm_showResponse
   };
   $('#seminar_reg_form').ajaxForm(options4);
}); 

// pre-submit callback 
function gm_formvalidate0(formData, jqForm) {
   var error = false;
   var error_message = '';
   
   var fcontact_firstname = $("#contact_firstname").fieldValue();
   if (!validateRequired(fcontact_firstname,"")) { 
      $("#contact_firstname").addClass("gm_err_field"); 
      if (error == false) { $("#contact_firstname").focus(); error = true; }
      error_message = error_message + "First Name field must be filled out.\n\n";
   } else { $("#contact_firstname").removeClass("gm_err_field"); }
   var fcontact_lastname = $("#contact_lastname").fieldValue();
   if (!validateRequired(fcontact_lastname,"")) { 
      $("#contact_lastname").addClass("gm_err_field"); 
      if (error == false) { $("#contact_lastname").focus(); error = true; }
      error_message = error_message + "Last Name field must be filled out.\n\n";
   } else { $("#contact_lastname").removeClass("gm_err_field"); }
   var fcontact_address = $("#contact_address").fieldValue();
   if (!validateRequired(fcontact_address,"")) { 
      $("#contact_address").addClass("gm_err_field"); 
      if (error == false) { $("#contact_address").focus(); error = true; }
      error_message = error_message + "Address field must be filled out.\n\n";
   } else { $("#contact_address").removeClass("gm_err_field"); }
   var fcontact_city = $("#contact_city").fieldValue();
   if (!validateRequired(fcontact_city,"")) { 
      $("#contact_city").addClass("gm_err_field"); 
      if (error == false) { $("#contact_city").focus(); error = true; }
      error_message = error_message + "City field must be filled out.\n\n";
   } else { $("#contact_city").removeClass("gm_err_field"); }
   var fcontact_state = $("#contact_state").fieldValue();
   if (!validateRequired(fcontact_state,"")) { 
      $("#contact_state").addClass("gm_err_field"); 
      if (error == false) { $("#contact_state").focus(); error = true; }
      error_message = error_message + "State field must be filled out.\n\n";
   } else { $("#contact_state").removeClass("gm_err_field"); }
   var fcontact_zip = $("#contact_zip").fieldValue();
   if (!validateRequired(fcontact_zip,"")) { 
      $("#contact_zip").addClass("gm_err_field"); 
      if (error == false) { $("#contact_zip").focus(); error = true; }
      error_message = error_message + "Zip field must be filled out.\n\n";
   } else { $("#contact_zip").removeClass("gm_err_field"); }
   var fcontact_email = $("#contact_email").fieldValue();
   if (!validateRequired(fcontact_email,"") || !validateEmail(fcontact_email)) { 
      $("#contact_email").addClass("gm_err_field"); 
      if (error == false) { $("#contact_email").focus(); error = true; }
      error_message = error_message + "Email Address field must be filled out, please enter a valid email.\n\n";
   } else { $("#contact_email").removeClass("gm_err_field"); }

	if($("#contactus_form_captcha").fieldValue().length > 0) {
		var captcha_result = 0;
		var captcha_result = check_gm_captcha("contactus_form");
		if(captcha_result == "0" || captcha_result == 0 ) {
			$("#contactus_form_captcha").addClass("gm_err_field"); 
	      	if (error == false) { $("#contactus_form_captcha").focus(); error = true; }
			error_message = error_message + "Invalid Captcha.\n\n"; 
		} else { $("#contactus_form_captcha").removeClass("gm_err_field"); }
	}

	if (error == true) { alert(error_message); return false; } else { return true; }

}function gm_formvalidate1(formData, jqForm) {
   var error = false;
   var error_message = '';
   
   var ftest_name = $("#test_name").fieldValue();
   if (!validateRequired(ftest_name,"")) { 
      $("#test_name").addClass("gm_err_field"); 
      if (error == false) { $("#test_name").focus(); error = true; }
      error_message = error_message + "Name field must be filled out.\n\n";
   } else { $("#test_name").removeClass("gm_err_field"); }

	if($("#lasik_self_candidacy_test_captcha").fieldValue().length > 0) {
		var captcha_result = 0;
		var captcha_result = check_gm_captcha("lasik_self_candidacy_test");
		if(captcha_result == "0" || captcha_result == 0 ) {
			$("#lasik_self_candidacy_test_captcha").addClass("gm_err_field"); 
	      	if (error == false) { $("#lasik_self_candidacy_test_captcha").focus(); error = true; }
			error_message = error_message + "Invalid Captcha.\n\n"; 
		} else { $("#lasik_self_candidacy_test_captcha").removeClass("gm_err_field"); }
	}

	if (error == true) { alert(error_message); return false; } else { return true; }

}function gm_formvalidate2(formData, jqForm) {
   var error = false;
   var error_message = '';
   
   var fcontact_firstname = $("#contact_firstname").fieldValue();
   if (!validateRequired(fcontact_firstname,"")) { 
      $("#contact_firstname").addClass("gm_err_field"); 
      if (error == false) { $("#contact_firstname").focus(); error = true; }
      error_message = error_message + "First Name field must be filled out.\n\n";
   } else { $("#contact_firstname").removeClass("gm_err_field"); }
   var fcontact_lastname = $("#contact_lastname").fieldValue();
   if (!validateRequired(fcontact_lastname,"")) { 
      $("#contact_lastname").addClass("gm_err_field"); 
      if (error == false) { $("#contact_lastname").focus(); error = true; }
      error_message = error_message + "Last Name field must be filled out.\n\n";
   } else { $("#contact_lastname").removeClass("gm_err_field"); }
   var fcontact_state = $("#contact_state").fieldValue();
   if (!validateRequired(fcontact_state,"")) { 
      $("#contact_state").addClass("gm_err_field"); 
      if (error == false) { $("#contact_state").focus(); error = true; }
      error_message = error_message + "State field must be filled out.\n\n";
   } else { $("#contact_state").removeClass("gm_err_field"); }
   var fcontact_dayphone = $("#contact_dayphone").fieldValue();
   if (!validateRequired(fcontact_dayphone,"")) { 
      $("#contact_dayphone").addClass("gm_err_field"); 
      if (error == false) { $("#contact_dayphone").focus(); error = true; }
      error_message = error_message + "Day Phone field must be filled out.\n\n";
   } else { $("#contact_dayphone").removeClass("gm_err_field"); }
   var fcontact_email = $("#contact_email").fieldValue();
   if (!validateRequired(fcontact_email,"") || !validateEmail(fcontact_email)) { 
      $("#contact_email").addClass("gm_err_field"); 
      if (error == false) { $("#contact_email").focus(); error = true; }
      error_message = error_message + "Email Address field must be filled out, please enter a valid email.\n\n";
   } else { $("#contact_email").removeClass("gm_err_field"); }
   var fage = $("#age").fieldValue();
   if (!validateRequired(fage,"")) { 
      $("#age").addClass("gm_err_field"); 
      if (error == false) { $("#age").focus(); error = true; }
      error_message = error_message + "Age field must be filled out.\n\n";
   } else { $("#age").removeClass("gm_err_field"); }
   var fappointment_best_days = $("#appointment_best_days").fieldValue();
   if (!validateRequired(fappointment_best_days,"")) { 
      $("#appointment_best_days").addClass("gm_err_field"); 
      if (error == false) { $("#appointment_best_days").focus(); error = true; }
      error_message = error_message + "Days that are best for me field must be filled out.\n\n";
   } else { $("#appointment_best_days").removeClass("gm_err_field"); }
   var fappointment_reach_by = $("#appointment_reach_by").fieldValue();
   if (!validateRequired(fappointment_reach_by,"")) { 
      $("#appointment_reach_by").addClass("gm_err_field"); 
      if (error == false) { $("#appointment_reach_by").focus(); error = true; }
      error_message = error_message + "Best way to reach me field must be filled out.\n\n";
   } else { $("#appointment_reach_by").removeClass("gm_err_field"); }

	if($("#make_appointment_form_captcha").fieldValue().length > 0) {
		var captcha_result = 0;
		var captcha_result = check_gm_captcha("make_appointment_form");
		if(captcha_result == "0" || captcha_result == 0 ) {
			$("#make_appointment_form_captcha").addClass("gm_err_field"); 
	      	if (error == false) { $("#make_appointment_form_captcha").focus(); error = true; }
			error_message = error_message + "Invalid Captcha.\n\n"; 
		} else { $("#make_appointment_form_captcha").removeClass("gm_err_field"); }
	}

	if (error == true) { alert(error_message); return false; } else { return true; }

}function gm_formvalidate3(formData, jqForm) {
   var error = false;
   var error_message = '';
   
   var fcompany_name = $("#company_name").fieldValue();
   if (!validateRequired(fcompany_name,"")) { 
      $("#company_name").addClass("gm_err_field"); 
      if (error == false) { $("#company_name").focus(); error = true; }
      error_message = error_message + "Company Name field must be filled out.\n\n";
   } else { $("#company_name").removeClass("gm_err_field"); }
   var fcontact_name = $("#contact_name").fieldValue();
   if (!validateRequired(fcontact_name,"")) { 
      $("#contact_name").addClass("gm_err_field"); 
      if (error == false) { $("#contact_name").focus(); error = true; }
      error_message = error_message + "Contact Name field must be filled out.\n\n";
   } else { $("#contact_name").removeClass("gm_err_field"); }
   var fphone = $("#phone").fieldValue();
   if (!validateRequired(fphone,"")) { 
      $("#phone").addClass("gm_err_field"); 
      if (error == false) { $("#phone").focus(); error = true; }
      error_message = error_message + "Phone field must be filled out.\n\n";
   } else { $("#phone").removeClass("gm_err_field"); }
   var femail = $("#email").fieldValue();
   if (!validateRequired(femail,"") || !validateEmail(femail)) { 
      $("#email").addClass("gm_err_field"); 
      if (error == false) { $("#email").focus(); error = true; }
      error_message = error_message + "Email field must be filled out, please enter a valid email.\n\n";
   } else { $("#email").removeClass("gm_err_field"); }

	if($("#corporate_form_captcha").fieldValue().length > 0) {
		var captcha_result = 0;
		var captcha_result = check_gm_captcha("corporate_form");
		if(captcha_result == "0" || captcha_result == 0 ) {
			$("#corporate_form_captcha").addClass("gm_err_field"); 
	      	if (error == false) { $("#corporate_form_captcha").focus(); error = true; }
			error_message = error_message + "Invalid Captcha.\n\n"; 
		} else { $("#corporate_form_captcha").removeClass("gm_err_field"); }
	}

	if (error == true) { alert(error_message); return false; } else { return true; }

}function gm_formvalidate4(formData, jqForm) {
   var error = false;
   var error_message = '';
   
   var fseminar_firstname = $("#seminar_firstname").fieldValue();
   if (!validateRequired(fseminar_firstname,"")) { 
      $("#seminar_firstname").addClass("gm_err_field"); 
      if (error == false) { $("#seminar_firstname").focus(); error = true; }
      error_message = error_message + "First Name field must be filled out.\n\n";
   } else { $("#seminar_firstname").removeClass("gm_err_field"); }
   var fseminar_lastname = $("#seminar_lastname").fieldValue();
   if (!validateRequired(fseminar_lastname,"")) { 
      $("#seminar_lastname").addClass("gm_err_field"); 
      if (error == false) { $("#seminar_lastname").focus(); error = true; }
      error_message = error_message + "Last Name field must be filled out.\n\n";
   } else { $("#seminar_lastname").removeClass("gm_err_field"); }
   var fseminar_address = $("#seminar_address").fieldValue();
   if (!validateRequired(fseminar_address,"")) { 
      $("#seminar_address").addClass("gm_err_field"); 
      if (error == false) { $("#seminar_address").focus(); error = true; }
      error_message = error_message + "Address field must be filled out.\n\n";
   } else { $("#seminar_address").removeClass("gm_err_field"); }
   var fseminar_city = $("#seminar_city").fieldValue();
   if (!validateRequired(fseminar_city,"")) { 
      $("#seminar_city").addClass("gm_err_field"); 
      if (error == false) { $("#seminar_city").focus(); error = true; }
      error_message = error_message + "City field must be filled out.\n\n";
   } else { $("#seminar_city").removeClass("gm_err_field"); }
   var fseminar_state = $("#seminar_state").fieldValue();
   if (!validateRequired(fseminar_state,"")) { 
      $("#seminar_state").addClass("gm_err_field"); 
      if (error == false) { $("#seminar_state").focus(); error = true; }
      error_message = error_message + "State field must be filled out.\n\n";
   } else { $("#seminar_state").removeClass("gm_err_field"); }
   var fseminar_zip = $("#seminar_zip").fieldValue();
   if (!validateRequired(fseminar_zip,"")) { 
      $("#seminar_zip").addClass("gm_err_field"); 
      if (error == false) { $("#seminar_zip").focus(); error = true; }
      error_message = error_message + "Zip field must be filled out.\n\n";
   } else { $("#seminar_zip").removeClass("gm_err_field"); }
   var fseminar_email = $("#seminar_email").fieldValue();
   if (!validateRequired(fseminar_email,"") || !validateEmail(fseminar_email)) { 
      $("#seminar_email").addClass("gm_err_field"); 
      if (error == false) { $("#seminar_email").focus(); error = true; }
      error_message = error_message + "Email Address field must be filled out, please enter a valid email.\n\n";
   } else { $("#seminar_email").removeClass("gm_err_field"); }
   var fseminar_date_of_birth = $("#seminar_date_of_birth").fieldValue();
   if (!validateRequired(fseminar_date_of_birth,"")) { 
      $("#seminar_date_of_birth").addClass("gm_err_field"); 
      if (error == false) { $("#seminar_date_of_birth").focus(); error = true; }
      error_message = error_message + "Date of Birth field must be filled out.\n\n";
   } else { $("#seminar_date_of_birth").removeClass("gm_err_field"); }

	if($("#seminar_reg_form_captcha").fieldValue().length > 0) {
		var captcha_result = 0;
		var captcha_result = check_gm_captcha("seminar_reg_form");
		if(captcha_result == "0" || captcha_result == 0 ) {
			$("#seminar_reg_form_captcha").addClass("gm_err_field"); 
	      	if (error == false) { $("#seminar_reg_form_captcha").focus(); error = true; }
			error_message = error_message + "Invalid Captcha.\n\n"; 
		} else { $("#seminar_reg_form_captcha").removeClass("gm_err_field"); }
	}

	if (error == true) { alert(error_message); return false; } else { return true; }

} 
// post-submit callback 
function gm_showResponse(responseText, statusText)  { eval(responseText); } 


/* VALIDATION FUNCTIONS */
function validateRequired(fieldValue,ignoreValue) { if (fieldValue == "" || fieldValue == ignoreValue ) { return false; } else { return true; }}
		
function validateEmail(fieldValue, fieldObj) {
	if (fieldValue == "") return true;
	return /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(fieldValue);
}
function validateNumber(fieldValue, fieldObj) {
	if (fieldValue == "") return true;
	/*
	return (parseFloat(val,10)==(fieldValue*1));
	return (!isNaN(fieldValue) && !/^\s+$/.test(fieldValue));
	*/
	return /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(fieldValue);
}	
function validateDigit(fieldValue, fieldObj) {
	if (fieldValue == "") return true;
	return !/[^\d]/.test(fieldValue);
}	
function validateAlphanum(fieldValue, fieldObj) {
	if (fieldValue == "") return true;
	return !/\W/.test(fieldValue);
}

$().ajaxSend($.blockUI).ajaxStop($.unblockUI);

