$(document).ready(function() {  
  $('form').each(function() {
    if($(this).attr('url')) {
      $(this).attr('action', $(this).attr('url'));
    }
  });
  
  $('form.validate').submit(function() {
    var error_fields = new Array;
    $(this).find(':input.required').each(function() {
      var val = $(this).val();
      if(val.length < 2) {
        error_fields.push($(this).attr('data-description'));
      }
      else if($(this).hasClass('email') && !isEmail(val)) {
        error_fields.push($(this).attr('data-description'));
      }
    });
    
    $(this).find('.require_checkboxes').each(function() {
      var description = $(this).attr('data-description');
      var checked = $(this).find(':checkbox:checked');
      if(checked.length == 0) {
        error_fields.push(description);
      }
    });
    
    if(error_fields.length > 0) {
      var msg = "Please fill make sure the following fields are filled out correctly: ";
      for(var i = 0; i < error_fields.length; i++) {
        msg += "\n" + error_fields[i];
      }
      alert(msg);
      return (false);
    }
  });
});

function isEmail(email) {
  var re = /.+@.+\..+/;
  return re.test(email);
}
