jQuery.validator.addMethod("phone", function(pnumber) { 
    var stripped = pnumber.replace(/\[\(\)\.- \]/g, ''); 
    if (isNaN(parseInt(stripped)) || stripped.length < 8) { 
        return false; 
    }else{ 
        return true; 
    } 
}, "Please specify a valid phone number");

jQuery.validator.addMethod("login", function(login) { 
  	var response = $.ajax({
  		type:"GET",
  		url: base_url + "public/india/checkLogin.php",
  		data: "login="+login,
  		async: false
 	}).responseText;
 	if(response == 1){
 		return false;
 	}
 	return true;
}, "the username you have chosen is already used.");

jQuery.validator.addMethod("validChars", function(login) { 
  	var exp=new RegExp("^[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+$","g");

  	if ( !exp.test(login) || login.indexOf(" ") != -1) {
    	return false;
    }
 	return true;
}, "username contains characters that are not allowed.");

jQuery.validator.addMethod("validCharsPass", function(password) { 
  	var exp=new RegExp("^[a-zA-Z0-9_-]+$","g");

  	if ( !exp.test(password) || password.indexOf(" ") != -1) {
    	return false;
    }
 	return true;
}, "The password you have entered contains illegal characters");


$().ready(function() {

	$('form input.text').each(function(){
		if($(this).val() != ''){
			$(this).prev('label').addClass('hidden');
		}
	});
	
	$('form input').focus(function(){
		$(this).parent().addClass('focus');
	})
	.blur(function(){
		$(this).parent().removeClass('focus');
	})
	.bind('keyup mouseup change', function(){
		if($(this).val() != ''){
			$(this).prev('label').addClass('hidden');
		}
		else{
			$(this).prev('label').removeClass('hidden');
		}
	});
	
	// validate signup form on keyup and submit
	$("#registration_form").validate({
		rules: {
			UserName: {
				required: true,
				minlength: 3,
				login:true,
				validChars:true
			},
			Password: {
				required: true,
				minlength: 5,
				validCharsPass:true
			},
			Password1: {
				required: true,
				minlength: 5,
				equalTo: "#Password"
			},
			FirstName: "required",
			LastName: "required",
			PhoneNumber: {
				required: true,
				phone:true
			},
			MailId: {
				required: true,
				email: true
			}
		},
		messages: {
			UserName: {
				required: "Please enter a username",
				minLength: "Your username must consist of at least 2 characters",
				validChars: "Only letters and numbers are allowed.",
				login: "Username already used. Please choose another one."
			},
			Password: {
				required: "Please provide a password",
				minLength: "Your password must be at least 5 characters long",
				validCharsPass: "The password contains illegal characters"
			},
			Password1: {
				required: "Please retype the password",
				minLength: "Your password must be at least 5 characters long",
				equalTo: "Please enter the same password as before"
			},
			FirstName: "Please enter your first name",
			LastName: "Please enter your last name",
			PhoneNumber:{
				required : "Please enter your phone number",
				phone : "Please enter a valid phone number"
			},
			MailId: {
				required: "Please enter your email id",
				email: "Please enter a valid email id"
			}
		},
		success: function(label) {
		     label.parent().animate({'height':'30px'});
		},
		highlight: function(element, errorClass) {
		     $(element).parent().animate({'height':'45px'});
		 }
	});
	
});
