
jQuery(function($){
  
  $('#contact_id').parents('form').validate({
    rules: {"contact[name]":{"required":true,"maxlength":100},"contact[email]":{"required":true,"maxlength":255,"email":true},"contact[subject]":{"required":true},"contact[message]":{"required":true,"maxlength":40000}},
    messages: {"contact[name]":{"required":"Please provide a Name","maxlength":function(a, elem){ return '\"' + $(elem).val() + '\" is too long (100 characters max).';}},"contact[email]":{"required":"Please provide an Email","maxlength":function(a, elem){ return '\"' + $(elem).val() + '\" is too long (255 characters max).';},"email":"Please provide a valid Email"},"contact[subject]":{"required":"Please choose a Subject"},"contact[message]":{"required":"Please type your Message","maxlength":function(a, elem){ return '\"' + $(elem).val() + '\" is too long (40000 characters max).';}}},
    wrapper: 'ul class=error_list',
    errorElement: 'li',
    errorPlacement: function(error, element) 
    {
     if(element.parents('.radio_list').is('*') || element.parents('.checkbox_list').is('*'))
     {
       error.prependTo( element.parent().parent().parent() );
     }
     else
     {
       error.prependTo( element.parent() );
     }
   }
  
  });
  
  
});

/* for some reason the jQuery Validate plugin does not incluce a generic regex method */
jQuery.validator.addMethod(
  "regex",
  function(value, element, regexp) {
      if (regexp.constructor != RegExp)
          regexp = new RegExp(regexp);
      else if (regexp.global)
          regexp.lastIndex = 0;
      return this.optional(element) || regexp.test(value);
  },
  "Invalid."
);
