// Project: Natural Sensia
// Author: Moisés Martínez Muñoz
// Mail: moisesm83@gmail.com

jQuery(function() 
{
	var path = '';
	
	jQuery('#field_username').example('Email');
	jQuery('#field_password').example('Password');

	jQuery('#field_cmt_name').example('Nombre');
	jQuery('#field_cmt_email').example('Email');

	$(document).ready(function()
	{
		jQuery.validator.addMethod("correctEmail", function(value, element) 
		{		
			jQuery.ajax({
	  			type: 'POST',
  				url: path + '/suscribete/get_email/',
				data: 'data[Email] =' + value,
				success: function(data) 
				{
				    if (data == '0')
						return true;
					else
						return false;
  				}
			});
		});		
		
		jQuery.validator.addMethod("defaultInvalid", function(value, element) 
		{
    		if (element.value == element.defaultValue)
		    {
    		    return false;
	    	}
	    	return true;
		});				
		
		jQuery.validator.addMethod("correctDni", function(value, element)
		{
			
			if(/^([0-9])*[a-zA-Z]+$/.test(value))
			{
				var numero 	= value.substr(0,value.length-1);
				var let 	= value.substr(value.length-1,1);
				
				numero 		= numero % 23;
				var letra	= 'TRWAGMYFPDXBNJZSQVHLCKET';
				letra		= letra.substring(numero,numero+1);
			
				if (letra == let)
					return true;
			}
			
			return false;	
		});
		
		jQuery.validator.addMethod("province", function(value, element)
		{
			if (value != -1)		
				return true;
			return false;
		});	
		
		
    	jQuery("#suscripcion").validate(
		{
			rules: {
				 'data[User][email]': {
					 required: true,
					 email: true,
				 },
				 'data[User][password]': {
					 required: true,
					 minlength: 14,
					 minlength: 6,
				 },
 				 'data[User][password_2]': {
					 required: true,
					 equalTo: "#UserPassword",
				 },
				 'data[User][name]': {
 					 required: true,
				 },
 				 'data[User][surname]': {
					 required: true,
				 },
				 'data[User][dni]': {
 					 required: true,
					 correctDni: true
				 },
				 'data[User][name]': {
 					 required: true,
				 },
				 'data[User][day]': {
 					 required: true,
					 number: true,
				 },
				 'data[User][year]': {
 					 required: true,
					 number: true,
					 minlength: 4,
					 maxlength: 4,
				 },
				 'data[User][phone_1]': {
  					 required: true,
					 number: true,
					 minlength: 9,				 					 
				 },
				 'data[User][phone_2]': {
					 number: true,
					 minlength: 9,
				 },
 				 'data[Address][street]': {
					 required: true,
				 },
				 'data[Address][number]': {
					 required: true,
					 number: true,
				 },
 				 'data[Address][postal_code]': {
					 required: true,
					 number: true,
					 maxlength: 5,
					 minlength: 5,	
				 },
 				 'data[Address][town]': {
					 required: true,
				 },
				 'data[Address][province_id]': {
					 province: true,
				 },				 
				 'data[User][name]': {
 					 required: true,
				 },
			},
	    	messages: {
				'data[User][email]': {
					 required: "Campo obligatorio.",				
					 email: "Debe introducir un email válido.",
				},
				'data[User][password]': {
					 required: "Campo obligatorio.",
					 minlength: "La contraseña debe tener entre 6 y 14 caracteres",
					 minlength: "La contraseña debe tener entre 6 y 14 caracteres",
				 },
				 'data[User][password_2]': {
					 required: "Campo obligatorio.",
					 equalTo: "El password no coincide.",
				 },				 
				 'data[User][name]': {
 					 required: "Campo obligatorio.",
				 },
 				 'data[User][surname]': {
 					 required: "Campo obligatorio.",
				 },
				 'data[User][dni]': {
 					 required: "Campo obligatorio.",
					 correctDni: "DNI incorrecto.",
				 },
				 'data[User][phone_1]': {
 					 required: "Campo obligatorio.",
					 number: "Campo númerico.",
					 minlength: "Logitud mínima de 9.",
				 },
				 'data[User][phone_2]': {
 					 number: "Campo númerico",
					 minlength: "Logitud mínima de 9.",
				 },
				 'data[User][day]': {
 					 required: "Campo obligatorio",
					 number: "Campo numérico",
				 },
				 'data[User][year]': {
 					 required: "Campo obligatorio",
					 number: "Campo numérico",
					 minlength: "Logitud mínima de 4.",
					 maxlength: "Logitud máxima de 4.",
				 },
 				 'data[Address][street]': {
					 required: "Campo obligatorio.",
				 },				 
				 'data[Address][number]': {
 					 required: "Campo obligatorio.",
					 number: "Campo numérico",
				 },
 				 'data[Address][postal_code]': {
 					 required: "Campo obligatorio.",
					 number: "Campo numérico",
					 maxlength: "Logitud mínima de 5.",
					 minlength: "Logitud máxima de 5.",
				 },
 				 'data[Address][town]': {
 					 required: "Campo obligatorio.",
				 },	
				 'data[Address][province_id]': {
					 province: "Seleccione una provincia.",
				 },			 
			}
		}
		);
  	});
});
