/* Usage in registration form and "edit profile" */

jQuery.validator.addMethod("dw_name", function(value, element) {
    return this.optional(element) || /^[^@!_\$%&]{2,20}$/i.test(value);
});

jQuery.validator.addMethod("dw_password", function(value, element) {
    return this.optional(element) || /^[a-z0-9]{5,20}$/i.test(value);
});

jQuery.validator.addMethod("dw_email", function(value, element) {
    return this.optional(element) || /^[a-z0-9_\-]+(\.[_a-z0-9\-\.]+)*@([a-z0-9\-]+\.)+([a-z]{2,})$/i.test(value);
});

jQuery.validator.addMethod("dw_birthdate", function(value, element) {
    var boolValid = !this.optional(jQuery("#BirthDay")[0]) && !this.optional(jQuery("#BirthMonth")[0]) && !this.optional(jQuery("#BirthYear")[0]);

    if (true === boolValid) {
        jQuery("td.birthdate label.error").hide();
    } else {
        jQuery("td.birthdate label[for='BirthYear']").show();
    }

    return boolValid;
});

jQuery.validator.addMethod("dw_gender", function(value, element) {
    return !this.optional(jQuery("#gender")[0]) && "Male" == jQuery("#gender").val();
});
