function confirmApplicantEmail() {
  if ($("#application-email").val() == $("#application-confirm-email").val()) {
    $("#confirm-email").hide();
//    $("#application-atty-name").focus();
    $("#application-phone").focus();
  } else {
    alert('Email addresses do not match!');
    $("#application-confirm-email").val('').focus();
  }
}

function confirmAttyEmail() {
  if ($("#application-atty-email").val() == $("#application-confirm-atty-email").val()) {
    $("#confirm-atty-email").hide();
    $("#application-case-type").focus();
  } else {
    alert('Email addresses do not match!');
    $("#application-confirm-atty-email").val('').focus();
  }
}

// pre-submit callback
function showRequest(formData, jqForm, options) {
    $('#application-loader').show();
    return true;
}

// post-submit callback
function showResponse(responseText, statusText)  {
    $('#application-loader').hide();
}

function isValidEmailAddress(emailAddress) {
  var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
  return pattern.test(emailAddress);
}

function isValidFaxNumber(faxNumber) {
  if (faxNumber == null) {
    return false;
  }
  var stripped = faxNumber.replace(/[\s()+-]|ext\.?/gi, "");
  return ((/\d{10,}/i).test(stripped));
}

jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
  phone_number = phone_number.replace(/\s+/g, "");
  return this.optional(element) || phone_number.length > 9 && phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");

$(document).ready(function(){
  jQuery.validator.messages.required = "";
  $("#application-create-form").validate({
    rules: {
      name: "required",
      email: {
//       required: true
       email: true
      },
      phone: {
        required: true,
        phoneUS: true
      },
      atty_name: "required",
	  atty_phone: {
        phoneUS: true
      },
      atty_email: {
       required: true
//       email: true
      },
      case_type: "required",
      agree: "required"
    },
    highlight: function(element, errorClass) {
       $(element).addClass(errorClass);
       $(element).parent().addClass(errorClass);
    },
    unhighlight: function(element, errorClass) {
       $(element).removeClass(errorClass);
       $(element).parent().removeClass(errorClass);
    },
    errorPlacement: function(error, element){},
    invalidHandler: function(form, validator) {
      var errors = validator.numberOfInvalids();
      if (errors) {
        var message = errors == 1
          ? 'You missed 1 field.'
          : 'You missed ' + errors + ' fields.';
        alert(message);
      }
    },
    submitHandler: function(form) {
//      var options = {
//        target:       "#application > .content",
//        beforeSubmit: showRequest,
//        success:      showResponse
//      };
//
//      $(form).ajaxSubmit(options);
	document.getElementById('new_application_form').style.display='none';
      form.submit();
    },
		debug: false
  });

  // double check applicant email
  $("#application-email").blur(function(){
    if ($("#application-email").val() != '') {
      $("#confirm-email").show();
      $("#application-confirm-email").focus();
    }
  });

  $("#confirm-email").keypress(function(e){
    if (e.which == 13) {
      confirmApplicantEmail();
      return false;
    }
  });

  $("#confirm-email-ok").click(function(){
    confirmApplicantEmail();
  });

  // double check atty email
  $("#application-atty-email").blur(function(){
    if (($("#application-atty-email").val() != '') && (isValidEmailAddress($("#application-atty-email").val()))) {
      $("#confirm-atty-email").show();
      $("#application-confirm-atty-email").focus();
    } else {
      // this must be a valid fax number
      if (!isValidFaxNumber($("#application-atty-email").val()))
      {
        alert("Please provide either the email or fax number of attorney.\nFax number format: 111-222-3333");
        return false;
      }
    }
  });

  $("#confirm-atty-email").keypress(function(e){
    if (e.which == 13) {
      confirmAttyEmail();
      return false;
    }
  });

  $("#confirm-atty-email-ok").click(function(){
    confirmAttyEmail();
  });

  // expand injuries input
  $("#application-injuries").focus(function(){
    $("#application .content").append('<div id="dummy-injuries"><label>Input any injuries that occured:</label><textarea class="text"></textarea><input type="button" value="OK" /></div>');
    $("#dummy-injuries textarea").val($("#application-injuries").val()).focus();

    $("#dummy-injuries input").bind('click', function(){
      $("#application-injuries").val($("#dummy-injuries textarea").val());
      $("#dummy-injuries").remove();
      $("#application-terms").focus();
    });
  });

});