// 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
   };
   $('#quick_contact_form').ajaxForm(options2);

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

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

   var options5 = { 
      beforeSubmit: gm_formvalidate5,  
      success:      gm_showResponse
   };
   $('#currentstudies_form').ajaxForm(options5);
}); 

// 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_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 faddress_providedIsOk = false;
/*
$("input[@name='address_provided']").each(
   function() { if ($(this).attr('checked')) { faddress_providedIsOk = true; } }
);
*/
$(":checked").each(function () { 
	if($(this).attr('name') == "address_provided" || $(this).attr('name') == "address_provided[]") { faddress_providedIsOk = true; }
   }
);
    if(!faddress_providedIsOk){
    	$("#address_provided").addClass("gm_err_field"); 
      if (error == false) { $("#address_provided").focus(); error = true; }
      error_message = error_message + "By submitting this form, I acknowledge that I am the authorized party (or an authorized representative), and hereby agree that Discover Vision Centers can send information to the address provided. field must be filled out. ..\n\n";
   } else { $("#address_provided").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"); }
   var ftest_email = $("#test_email").fieldValue();
   if (!validateRequired(ftest_email,"") || !validateEmail(ftest_email)) { 
      $("#test_email").addClass("gm_err_field"); 
      if (error == false) { $("#test_email").focus(); error = true; }
      error_message = error_message + "E-Mail field must be filled out, please enter a valid email. .\n\n";
   } else { $("#test_email").removeClass("gm_err_field"); }
   var fhear_about_us = $("#hear_about_us").fieldValue();
   if (!validateRequired(fhear_about_us,"")) { 
      $("#hear_about_us").addClass("gm_err_field"); 
      if (error == false) { $("#hear_about_us").focus(); error = true; }
      error_message = error_message + "How did you hear about us? field must be filled out. \n\n";
   } else { $("#hear_about_us").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 fqc_name = $("#qc_name").fieldValue();
   if (!validateRequired(fqc_name,"Name:")) { 
      $("#qc_name").addClass("gm_err_field"); 
      if (error == false) { $("#qc_name").focus(); error = true; }
      error_message = error_message + "Name field must be filled out. \n\n";
   } else { $("#qc_name").removeClass("gm_err_field"); }
   var fqc_email = $("#qc_email").fieldValue();
   if (!validateRequired(fqc_email,"Email:") || !validateEmail(fqc_email)) { 
      $("#qc_email").addClass("gm_err_field"); 
      if (error == false) { $("#qc_email").focus(); error = true; }
      error_message = error_message + "Email field must be filled out, please enter a valid email. .\n\n";
   } else { $("#qc_email").removeClass("gm_err_field"); }

	if($("#quick_contact_form_captcha").fieldValue().length > 0) {
		var captcha_result = 0;
		var captcha_result = check_gm_captcha("quick_contact_form");
		if(captcha_result == "0" || captcha_result == 0 ) {
			$("#quick_contact_form_captcha").addClass("gm_err_field"); 
	      	if (error == false) { $("#quick_contact_form_captcha").focus(); error = true; }
			error_message = error_message + "Invalid Captcha.\n\n"; 
		} else { $("#quick_contact_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 ffl_name = $("#fl_name").fieldValue();
   if (!validateRequired(ffl_name,"")) { 
      $("#fl_name").addClass("gm_err_field"); 
      if (error == false) { $("#fl_name").focus(); error = true; }
      error_message = error_message + "First & Last Name field must be filled out. \n\n";
   } else { $("#fl_name").removeClass("gm_err_field"); }
   var fdob_month = $("#dob_month").fieldValue();
   if (!validateRequired(fdob_month,"")) { 
      $("#dob_month").addClass("gm_err_field"); 
      if (error == false) { $("#dob_month").focus(); error = true; }
      error_message = error_message + "Date of Birth (Mounth) field must be filled out. \n\n";
   } else { $("#dob_month").removeClass("gm_err_field"); }
   var fdob_day = $("#dob_day").fieldValue();
   if (!validateRequired(fdob_day,"")) { 
      $("#dob_day").addClass("gm_err_field"); 
      if (error == false) { $("#dob_day").focus(); error = true; }
      error_message = error_message + "Date of Birth (Day) field must be filled out. \n\n";
   } else { $("#dob_day").removeClass("gm_err_field"); }
   var fdob_year = $("#dob_year").fieldValue();
   if (!validateRequired(fdob_year,"")) { 
      $("#dob_year").addClass("gm_err_field"); 
      if (error == false) { $("#dob_year").focus(); error = true; }
      error_message = error_message + "Date of Birth (Year) field must be filled out. \n\n";
   } else { $("#dob_year").removeClass("gm_err_field"); }
   var fare_you_new_patientIsOk = false;
/*
$("input[@name='are_you_new_patient']").each(
   function() { if ($(this).attr('checked')) { fare_you_new_patientIsOk = true; } }
);
*/
$(":checked").each(function () { 
	if($(this).attr('name') == "are_you_new_patient" || $(this).attr('name') == "are_you_new_patient[]") { fare_you_new_patientIsOk = true; }
   }
);
    if(!fare_you_new_patientIsOk){
    	$("#are_you_new_patient").addClass("gm_err_field"); 
      if (error == false) { $("#are_you_new_patient").focus(); error = true; }
      error_message = error_message + "Are you a new patient? field must be filled out. ..\n\n";
   } else { $("#are_you_new_patient").removeClass("gm_err_field"); }
   var fhear_about_us = $("#hear_about_us").fieldValue();
   if (!validateRequired(fhear_about_us,"")) { 
      $("#hear_about_us").addClass("gm_err_field"); 
      if (error == false) { $("#hear_about_us").focus(); error = true; }
      error_message = error_message + "How did you hear about us? field must be filled out. \n\n";
   } else { $("#hear_about_us").removeClass("gm_err_field"); }
   var fappt_type = $("#appt_type").fieldValue();
   if (!validateRequired(fappt_type,"")) { 
      $("#appt_type").addClass("gm_err_field"); 
      if (error == false) { $("#appt_type").focus(); error = true; }
      error_message = error_message + "Type of Appointment field must be filled out. \n\n";
   } else { $("#appt_type").removeClass("gm_err_field"); }
   var flens_type = $("#lens_type").fieldValue();
   if (!validateRequired(flens_type,"")) { 
      $("#lens_type").addClass("gm_err_field"); 
      if (error == false) { $("#lens_type").focus(); error = true; }
      error_message = error_message + "What type of corrective lenses do you use? field must be filled out. \n\n";
   } else { $("#lens_type").removeClass("gm_err_field"); }
   var fformmail_mail_email = $("#formmail_mail_email").fieldValue();
   if (!validateRequired(fformmail_mail_email,"") || !validateEmail(fformmail_mail_email)) { 
      $("#formmail_mail_email").addClass("gm_err_field"); 
      if (error == false) { $("#formmail_mail_email").focus(); error = true; }
      error_message = error_message + "Your E-Mail address: field must be filled out, please enter a valid email. .\n\n";
   } else { $("#formmail_mail_email").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 Number: field must be filled out. \n\n";
   } else { $("#phone").removeClass("gm_err_field"); }
   var faddress_providedIsOk = false;
/*
$("input[@name='address_provided']").each(
   function() { if ($(this).attr('checked')) { faddress_providedIsOk = true; } }
);
*/
$(":checked").each(function () { 
	if($(this).attr('name') == "address_provided" || $(this).attr('name') == "address_provided[]") { faddress_providedIsOk = true; }
   }
);
    if(!faddress_providedIsOk){
    	$("#address_provided").addClass("gm_err_field"); 
      if (error == false) { $("#address_provided").focus(); error = true; }
      error_message = error_message + "By submitting this form, I acknowledge that I am the authorized party (or an authorized representative), and hereby agree that Discover Vision Centers can send information to the address provided. field must be filled out. ..\n\n";
   } else { $("#address_provided").removeClass("gm_err_field"); }

	if($("#appointment_form_captcha").fieldValue().length > 0) {
		var captcha_result = 0;
		var captcha_result = check_gm_captcha("appointment_form");
		if(captcha_result == "0" || captcha_result == 0 ) {
			$("#appointment_form_captcha").addClass("gm_err_field"); 
	      	if (error == false) { $("#appointment_form_captcha").focus(); error = true; }
			error_message = error_message + "Invalid Captcha.\n\n"; 
		} else { $("#appointment_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 ffirst_last_name = $("#first_last_name").fieldValue();
   if (!validateRequired(ffirst_last_name,"")) { 
      $("#first_last_name").addClass("gm_err_field"); 
      if (error == false) { $("#first_last_name").focus(); error = true; }
      error_message = error_message + "First &amp; Last Name field must be filled out. \n\n";
   } else { $("#first_last_name").removeClass("gm_err_field"); }
   var fdate_of_birth = $("#date_of_birth").fieldValue();
   if (!validateRequired(fdate_of_birth,"")) { 
      $("#date_of_birth").addClass("gm_err_field"); 
      if (error == false) { $("#date_of_birth").focus(); error = true; }
      error_message = error_message + "Date of Birth field must be filled out. \n\n";
   } else { $("#date_of_birth").removeClass("gm_err_field"); }
   var fphone_number = $("#phone_number").fieldValue();
   if (!validateRequired(fphone_number,"")) { 
      $("#phone_number").addClass("gm_err_field"); 
      if (error == false) { $("#phone_number").focus(); error = true; }
      error_message = error_message + "Phone field must be filled out. \n\n";
   } else { $("#phone_number").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 fare_you_dvc_patientIsOk = false;
/*
$("input[@name='are_you_dvc_patient']").each(
   function() { if ($(this).attr('checked')) { fare_you_dvc_patientIsOk = true; } }
);
*/
$(":checked").each(function () { 
	if($(this).attr('name') == "are_you_dvc_patient" || $(this).attr('name') == "are_you_dvc_patient[]") { fare_you_dvc_patientIsOk = true; }
   }
);
    if(!fare_you_dvc_patientIsOk){
    	$("#are_you_dvc_patient").addClass("gm_err_field"); 
      if (error == false) { $("#are_you_dvc_patient").focus(); error = true; }
      error_message = error_message + "Are you a DVC patient? field must be filled out. ..\n\n";
   } else { $("#are_you_dvc_patient").removeClass("gm_err_field"); }

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

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

}function gm_formvalidate5(formData, jqForm) {
   var error = false;
   var error_message = '';
   
   var ffirstlast_name = $("#firstlast_name").fieldValue();
   if (!validateRequired(ffirstlast_name,"")) { 
      $("#firstlast_name").addClass("gm_err_field"); 
      if (error == false) { $("#firstlast_name").focus(); error = true; }
      error_message = error_message + "First & Last Name: field must be filled out. \n\n";
   } else { $("#firstlast_name").removeClass("gm_err_field"); }
   var fdateof_birth = $("#dateof_birth").fieldValue();
   if (!validateRequired(fdateof_birth,"")) { 
      $("#dateof_birth").addClass("gm_err_field"); 
      if (error == false) { $("#dateof_birth").focus(); error = true; }
      error_message = error_message + "Date of Birth: field must be filled out. \n\n";
   } else { $("#dateof_birth").removeClass("gm_err_field"); }
   var fstreet_address = $("#street_address").fieldValue();
   if (!validateRequired(fstreet_address,"")) { 
      $("#street_address").addClass("gm_err_field"); 
      if (error == false) { $("#street_address").focus(); error = true; }
      error_message = error_message + "Street Address: field must be filled out. \n\n";
   } else { $("#street_address").removeClass("gm_err_field"); }
   var fphone_number = $("#phone_number").fieldValue();
   if (!validateRequired(fphone_number,"")) { 
      $("#phone_number").addClass("gm_err_field"); 
      if (error == false) { $("#phone_number").focus(); error = true; }
      error_message = error_message + "Phone: field must be filled out. \n\n";
   } else { $("#phone_number").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 fquestions_comment = $("#questions_comment").fieldValue();
   if (!validateRequired(fquestions_comment,"")) { 
      $("#questions_comment").addClass("gm_err_field"); 
      if (error == false) { $("#questions_comment").focus(); error = true; }
      error_message = error_message + "Questions or Comments: field must be filled out. \n\n";
   } else { $("#questions_comment").removeClass("gm_err_field"); }

	if($("#currentstudies_form_captcha").fieldValue().length > 0) {
		var captcha_result = 0;
		var captcha_result = check_gm_captcha("currentstudies_form");
		if(captcha_result == "0" || captcha_result == 0 ) {
			$("#currentstudies_form_captcha").addClass("gm_err_field"); 
	      	if (error == false) { $("#currentstudies_form_captcha").focus(); error = true; }
			error_message = error_message + "Invalid Captcha.\n\n"; 
		} else { $("#currentstudies_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);

