jQuery.validator.addMethod("username", function(value){
  return /^[a-z0-9]+$/i.test(value);
});

jQuery(document).ready(
  function()
  {
    jQuery("#user-form").validate({
      errorClass: "error",
      errorElement: "span",
      errorPlacement: function(error, element) {
        element.parent().append(error);
      },
      success: function(label) {
        label.html("&nbsp;").addClass("success");
      },
      messages: {
        password1: {
          minlength: jQuery.format("Enter at least {0} characters"),
          required: "This field is required."
        },
        password2: {
          equalTo: "Please enter the same password as above",
          minlength: jQuery.format("Enter at least {0} characters"),
          required: "This field is required."
        },
        username: {
          required: "Please provide a username",
          username: "No spaces or non-alphanumeric characters allowed",
          remote: jQuery.format("{0} is already taken.")
        },
        firstname: {
          required: "Please provide your first name",
          remote: jQuery.format("{0} is already taken.")
        },
        lastname: {
          required: "Please provide your last name",
          remote: jQuery.format("{0} is already taken.")
        },
        email: {
          required: "Please enter a valid email address",
          email: "Please enter a valid email address",
          remote: jQuery.format("{0} is already taken.")
        }
      }
    });
  }
);