jQuery.validator.addMethod(
	"only_a", 
	function(value, element){
		return !/[0-9\!\@\#\$\%\^\&\*\(\)\-\+\_\=\}\{\]\[\\\|\"\'\?\/\>\<\~\`\:\;]/.test(value);    
	}, 
	"Only alphabets please"
);

jQuery.validator.addMethod(
	"only_a_n_u", 
	function(value, element){
		return !/\W/.test(value);    
	}, 
	"Sorry, a username can contain only letters, digits or underscores."
);

$(document).ready(function(){
    $(".formContainer input").focus(function(){
        // check if it's already showing a validation error
        if ($(this).parent().find("label.error").length == 0) 
            $(this).parent().find(".tooltip").show();
        else 
            if ($(this).parent().find("label.error").is(':hidden')) 
                $(this).parent().find(".tooltip").show();
    }).blur(function(){
        $(this).parent().find(".tooltip").hide();
    });
	
    $("#regform").validate({
        rules: {
            username: {
                required: true,
                minlength: 2,
                remote: "../register/check_username/", 
				only_a_n_u: true
            },
            password: {
                required: true,
                minlength: 4
            },
            password_confirm: {
                required: true,
				equalTo: "#id_reg_password"

            },
            full_name: {
                required: true,
                minlength: 2,
				only_a: true
            },
            email: {
                required: true,
                email: true,
                remote: "../register/check_email/"
            }
        },
        messages: {
 			username: {
                required: "A username is required for registration.",
                minlength: jQuery.format("Please enter at least {0} characters."),
                remote: "Sorry, that username is already taken. Please try again.",
				only_a_n_u: "Sorry, a username can contain only letters, digits or underscores."
            },
           	password: {
                required: "A password is required for registration.",
                rangelength: jQuery.format("Please enter at least {0} characters for the password - we recommend 6-8 characters.")
            },
            password_confirm: {
                required: "Please confirm your password by re-typing it here.",
                equalTo: "The password entered here doesn't match the one entered earlier. Please re-type the exact password from the field above."
            },
            full_name: {
                required: "A real world name is required for registration.",
                minlength: jQuery.format("Please enter at least {0} characters."), 
				only_a: "Sorry, no special characters or numbers. Only alphabets please."
            },
            email: {
                required: "A valid email address is required for registration.",
                minlength: "This doesn't look like valid email address. We need a valid email address for registration.",
                remote: "It seems this email address is already registered on our site. <a href='"+url_password_reset+"'>Forgot your password</a>?"
            }
        }
    });
});
