/*
$.validator.setDefaults( {
 submitHandler: function() {
   var toLoad = $(this).attr('href')+' #content';
   $('#content').hide('fast',loadContent);
   $('#load').remove();
   $('#wrapper').append('<span id="load">LOADING...</span>');
   $('#load').fadeIn('normal');
   window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-4);
   function loadContent() {
    $('#content').load(toLoad,'',showNewContent())
   }
   function showNewContent() {
    $('#content').show('normal',hideLoader());
   }
   function hideLoader() {
    $('#load').fadeOut('normal');
   }
  }
});
*/

$().ready(function() {
  cache: false,
 // validate the login form when it is submitted
 /*
 $('#loginFORM').validate();
 $('#addFORM1').validate();
 $('#addFORM2').validate();
*/

jQuery.validator.messages.required = "";

$('#loginFORM').validate({
 invalidHandler: function(e, validator) {
  var errors = validator.numberOfInvalids();
  if (errors) {
   var message = errors == 1
    ? ' You missed 1 field. It has been highlighted below.'
    : ' You missed ' + errors + ' fields.<br />They have been highlighted below.';
   $("div.errorlogin span").html(message);
   $("div.errorlogin").show();
  } else {
   $("div.errorlogin").hide();
  }
 }
});

$('#contactFORM').validate({
 invalidHandler: function(e, validator) {
  var errors = validator.numberOfInvalids();
  if (errors) {
   var message = errors == 1
    ? ' You missed 1 field. It has been highlighted.'
    : ' You missed ' + errors + ' fields.<br />They have been highlighted.';
   $("div.error span").html(message);
   $("div.error").show();
  } else {
   $("div.error").hide();
  }
 }
});

 // validate the account form on keyup and submit
$('#accountFORM').validate({
 invalidHandler: function(e, validator) {
  var errors = validator.numberOfInvalids();
  if (errors) {
   var message = errors == 1
    ? ' You missed 1 field. It has been highlighted below.'
    : ' You missed ' + errors + ' fields.  They have been highlighted below.';
   $("div.error span").html(message);
   $("div.error").show();
  } else {
   $("div.error").hide();
  }
 }
});

  // validate free account form on keyup and submit
$('#freeFORM').validate({
 invalidHandler: function(e, validator) {
  var errors = validator.numberOfInvalids();
  if (errors) {
   var message = errors == 1
    ? ' You missed 1 field. It has been highlighted below.'
    : ' You missed ' + errors + ' fields.  They have been highlighted below.';
   $("div.error span").html(message);
   $("div.error").show();
  } else {
   $("div.error").hide();
  }
 }
});

 // validate the edit form on keyup and submit
$('#editFORM').validate({
 invalidHandler: function(e, validator) {
  var errors = validator.numberOfInvalids();
  if (errors) {
   var message = errors == 1
    ? ' You must enter a value for at least the first field. It has been highlighted below.'
    : ' You missed ' + errors + ' fields. They have been highlighted below.';
   $("div.error span").html(message);
   $("div.error").show();
  } else {
   $("div.error").hide();
  }
 }
});

 // validate the account form on keyup and submit
$('#registrationFORM').validate({
 invalidHandler: function(e, validator) {
  var errors = validator.numberOfInvalids();
  if (errors) {
   var message = errors == 1
    ? ' You missed 1 field. It has been highlighted below.'
    : ' You missed ' + errors + ' fields.  They have been highlighted below.';
   $("div.error span").html(message);
   $("div.error").show();
  } else {
   $("div.error").hide();
  }
 }
});

// TODO 1 -o TAO -c Consistancy: Possibly put first focus in here

/* Samples of other ways to handle it
  // validate account form on keyup and submit
 $('#accountFORM').validate( {
  rules: {
   fname: {
    required: true,
    minlength: 2
   },
   lname: {
    required: true,
    minlength: 2
   },
   address1: {
    required: true,
    minlength: 2
   },
   city: {
    required: true,
    minlength: 2
   },
   state: {
    required: true,
    minlength: 2
   },
   zip: {
    required: true,
    minlength: 2
   },
   areacode: {
    required: true,
    minlength: 2
   },
   phone1: {
    required: true,
    minlength: 2
   },
   phone2: {
    required: true,
    minlength: 2
   },
   email: {
    required: true,
    email: true
   },
   username: {
    required: true,
    minlength: 2
   },
   password: {
    required: true,
    minlength: 2
   },
   ekey: {
    required: true,
    minlength: 2
   },
  },
  messages: {
   fname: ' Please enter your first name.',
   lname: ' Please enter your last name.',
   address1: ' Please enter your address.',
   city: ' Please enter your city.',
   state: ' Please enter your 2 character state.',
   zip: ' Please enter your zip code.',
   areacode: ' Please enter your area code.',
   phone1: ' Please complete your phone number.',
   phone2: ' Please complete your phone number.',
   email: ' Please enter a valid email address.',
   username: ' Please enter your desired username.',
   password: ' Please enter your password.',
   ekey: ' Please enter your personal encryption key.'
  }
 });
*/

/*
  // validate contact form on keyup and submit
 $('#contactFORM').validate( {
  rules: {
   realname: {
    required: true,
    minlength: 2
   },
   email: {
    required: true,
    email: true
   },
   subject: {
    required: true,
    minlength: 2
   },
   comment: {
    required: true,
    minlength: 2
   },
   code: {
    required: true,
    minlength: 2
   },
  },
  messages: {
   realname: ' Please enter your full name.',
   email: ' Please enter a valid email address.',
   subject: ' Please enter a subject title.',
   comment: ' Please enter your comment.',
   code: ' Please enter the code exactly as it appears.',
  }
 });

 /* This was the default routine
$.validator.setDefaults({
 // submitHandler: function() { alert('submitted!'); }
 submitHandler: $('#content').load('vbj_index.php')
});

// validate signup form on keyup and submit
 $('#xxxxFormname').validate({
  rules: {
   firstname: 'required',
   lastname: 'required',
   username: {
    required: true,
    minlength: 2
   },
   password: {
    required: true,
    minlength: 5
   },
   confirm_password: {
    required: true,
    minlength: 5,
    equalTo: '#password'
   },
   email: {
    required: true,
    email: true
   },
   topic: {
    required: '#newsletter:checked',
    minlength: 2
   },
   agree: 'required'
  },
  messages: {
   firstname: 'Please enter your firstname',
   lastname: 'Please enter your lastname',
   username: {
    required: 'Please enter a username',
    minlength: 'Your username must consist of at least 2 characters'
   },
   password: {
    required: 'Please provide a password',
    minlength: 'Your password must be at least 5 characters long'
   },
   confirm_password: {
    required: 'Please provide a password',
    minlength: 'Your password must be at least 5 characters long',
    equalTo: 'Please enter the same password as above'
   },
   email: 'Please enter a valid email address',
   agree: 'Please accept our policy'
  }
 });

 // propose username by combining first- and lastname
 $('#username').focus(function() {
  var firstname = $('#firstname').val();
  var lastname = $('#lastname').val();
  if(firstname && lastname && !this.value) {
   this.value = firstname + '.' + lastname;
  }
 });

 //code to hide topic selection, disable for demo
 var newsletter = $('#newsletter');
 // newsletter topics are optional, hide at first
 var inital = newsletter.is(':checked');
 var topics = $('#newsletter_topics')[inital ? 'removeClass' : 'addClass']('gray');
 var topicInputs = topics.find('input').attr('disabled', !inital);
 // show when newsletter is checked
 newsletter.click(function() {
  topics[this.checked ? 'removeClass' : 'addClass']('gray');
  topicInputs.attr('disabled', !this.checked);
 });
*/

});

