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

// pre-submit callback 
function gm_formvalidate0(formData, jqForm) {
   var error = false;
   var error_message = '';
   
   var fcontact_left_eye = $("#contact_left_eye").fieldValue();
   if (!validateRequired(fcontact_left_eye,"")) { 
      $("#contact_left_eye").addClass("gm_err_field"); 
      if (error == false) { $("#contact_left_eye").focus(); error = true; }
      error_message = error_message + "Left Eye field must be filled out. \n\n";
   } else { $("#contact_left_eye").removeClass("gm_err_field"); }
   var fcontact_right_eye = $("#contact_right_eye").fieldValue();
   if (!validateRequired(fcontact_right_eye,"")) { 
      $("#contact_right_eye").addClass("gm_err_field"); 
      if (error == false) { $("#contact_right_eye").focus(); error = true; }
      error_message = error_message + "Right Eye field must be filled out. \n\n";
   } else { $("#contact_right_eye").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 + "Name field must be filled out. \n\n";
   } else { $("#contact_name").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 + "E-mail Address field must be filled out, please enter a valid email. .\n\n";
   } else { $("#contact_email").removeClass("gm_err_field"); }
   var fcontact_phone = $("#contact_phone").fieldValue();
   if (!validateRequired(fcontact_phone,"")) { 
      $("#contact_phone").addClass("gm_err_field"); 
      if (error == false) { $("#contact_phone").focus(); error = true; }
      error_message = error_message + "Phone field must be filled out. \n\n";
   } else { $("#contact_phone").removeClass("gm_err_field"); }
   var fcontact_address1 = $("#contact_address1").fieldValue();
   if (!validateRequired(fcontact_address1,"")) { 
      $("#contact_address1").addClass("gm_err_field"); 
      if (error == false) { $("#contact_address1").focus(); error = true; }
      error_message = error_message + "Shipping Address field must be filled out. \n\n";
   } else { $("#contact_address1").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 + "State field must be filled out. \n\n";
   } else { $("#contact_city").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_boxes_left = $("#contact_boxes_left").fieldValue();
   if (!validateRequired(fcontact_boxes_left,"")) { 
      $("#contact_boxes_left").addClass("gm_err_field"); 
      if (error == false) { $("#contact_boxes_left").focus(); error = true; }
      error_message = error_message + "Number of boxes (Left Eye): field must be filled out. \n\n";
   } else { $("#contact_boxes_left").removeClass("gm_err_field"); }
   var fcontact_boxes_right = $("#contact_boxes_right").fieldValue();
   if (!validateRequired(fcontact_boxes_right,"")) { 
      $("#contact_boxes_right").addClass("gm_err_field"); 
      if (error == false) { $("#contact_boxes_right").focus(); error = true; }
      error_message = error_message + "Number of boxes (Right Eye) field must be filled out. \n\n";
   } else { $("#contact_boxes_right").removeClass("gm_err_field"); }

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

