
jQuery.validator.addMethod("email", function(value, element) { 
        return this.optional(element) || /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/.test(value);
}, "Invalid E-mail");

jQuery.validator.addMethod("pattern", function(value, element, param) {
        return this.optional(element) || param.test(value);
}, "Invalid pattern");


jQuery(function($){
  
  $('#altaUsuarios_username').parents('form').validate({
    rules: {
        'altaUsuarios[username]': {
            pattern: /^[a-zA-Z0-9_]*$/, required: true, maxlength: 24, minlength: 4
        },
        'altaUsuarios[email]': {
            email: true, required: true
        },
        'altaUsuarios[email2]': {
            required: true
        },
        'altaUsuarios[captcha]': {
            required: true, 
        },
        'altaUsuarios[aviso]': {
            required: true, 
        }
    },
    messages: {
        'altaUsuarios[username]': {
            required: '*Error - Tienes que introducir un nombre', maxlength: '*Error - La longitud máxima es de 24 caracteres', minlength: '*Error - La longitud mínima es de 4 caracteres'
        },
        'altaUsuarios[email]': {
            required: '*Error - Tienes que introducir un email', email: '*Error - La direcci&oacute;n de email no es v&aacute;lida', maxlength: '"%value%" is too long (%max_length% characters max).', minlength: '"%value%" is too short (%min_length% characters min).'
        },
        'altaUsuarios[email2]': {
            required: '*Error - Por favor repite el email', maxlength: '"%value%" is too long (%max_length% characters max).', minlength: '"%value%" is too short (%min_length% characters min).'
        },
        'altaUsuarios[captcha]': {
            required: '*Error - c&oacute;digo de seguridad requerido'
        },
        'altaUsuarios[aviso]': {
            required: '*Error - Tienes que aceptar el Aviso Legal.'
        }
    },
   
   errorElement: 'p',
   errorClass: 'erroraco',
   errorPlacement: function(error, element) {  
  
                /* Error placement */  
                element.next().replaceWith(error);
            }
  
  });
  
        $("#altaUsuarios_email2").rules("add", {
       equalTo: "#altaUsuarios_email",
       messages: {
         equalTo: "*Error - Los dos emails deben ser iguales"
       }
      });
        
        $("#altaUsuarios_username").rules("add", {
  
      remote: {
        url: "/perfil/ajaxAltaUsuarios.html",
        type: "post",
        data: {
          username: function() { return $("#altaUsuarios_username").val() }
        }
      },
       messages: {
         remote: "*Error - Ya existe un usuario con este nombre"
       }
    });
    
    $("#altaUsuarios_email").rules("add", {
  
      remote: {
        url: "/perfil/ajaxAltaUsuarios.html",
        type: "post",
        data: {
          email: function() { return $("#altaUsuarios_email").val() }
        }
      },
       messages: {
         remote: "*Error - Ya existe un usuario con este email"
       }
    });
  
});
