/*
  Ceams Autoform 1.0 written by Caleb Loffer, 2009.
  http://www.ceagon.com/ceams/
*/

function validateForm(target) {
  //The function return value
  var r=true;
  
  var RegExpEmail=/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9])+(\.[a-zA-Z0-9_-]+)+$/;
  
  //The required objects
  //var required=$(".required",target);
  var required=new Array();
  var requiredInput=$("input[name='_required']",target);
  if(requiredInput.length>0) {
    var r=requiredInput.val().split(",");
    $(r).each(function(i,val) {
      if($("input[name='"+r[i]+"']").length>0)
        required.push($("input[name='"+r[i]+"']",target));
      else if($("textarea[name='"+r[i]+"']").length>0)
        required.push($("textarea[name='"+r[i]+"']",target));
      else if($("select[name='"+r[i]+"']").length>0)
        required.push($("select[name='"+r[i]+"']",target));
    });
  }

  //Check each required field to see if it has been filled
  $(required).each(function(i,item) {
    var type="text";
    if($(item).attr("name").match("email"))
      type="email"
    else if($(item).attr("name").match("phone"))
      type="phone";
    else if($(item).attr("name").match("checkbox"))
      type="checkbox";
    
    if(r) {
      if(type=="email" && !RegExpEmail.test($(item).val())) {
        alert("A valid email address must be entered. I.e., joe@mail.com");
        $(item).focus();
        return r=false;
      }
      else if(type=="phone" && $(item).val().length<14) {
        alert("A valid phone number must be entered. I.e., (555) 555-5555");
        $(item).focus();
        return r=false;
      }
      else if(type=="text" && trim($(item).val()).length<=0 || $(item).val()=="_invalidchoice") {
        alert("One or more required fields was not filled. Please revise your information and try again.");
        $(item).focus();
        return r=false;
      }
      else if(type=="checkbox" && !$(item).attr("checked")) {
        alert("One or more required checkboxes were not checked. Please revise your information and try again.");
        $(item).focus();
        return r=false;
      }
    }
  });
  
  return r;
}

//Trim a string's whitespace
function trim(str) {
  return str.replace(/^\s+|\s+$/g,'');
}

$(document).ready(function() {
  $(".phone").mask("(999) 999-9999",{placeholder:"  "});
  $(".dob").mask("99/99/9999",{placeholder:"  "});
  $("form input:first").focus();
});