$(document).ready(function(){
	$('#ProvinciaId').change( function() {
		$('#PoblacionId').html("");
		$.ajax( {
			url : globalUrl + "/asp/proxyflash.asp?cmd=get_address_city&address_province_id=" + $(this).val(),
			success : function(data) {
				$(data).find('record').each(function() {
					var thisOpt = document.createElement('option');

					thisOpt.value = $(this).find('value').text();
					$(thisOpt).text($(this).find('text').text());

					$("#PoblacionId").append(thisOpt);
				});	
				$("#PoblacionId").removeAttr('disabled');
			} 
		});		
	});
});
 
$(document).ready(function(){
	$("#formcontacta").validate({
		groups: {
    		borndate: "DiaNacimiento MesNacimiento AnyoNacimiento",
			numerocp: "CodigoPostal ViaNumero"
  		},
		errorPlacement: function(error, element) {
     		if (element.attr("name") == "DiaNacimiento" || element.attr("name") == "MesNacimiento" || element.attr("name") == "AnyoNacimiento")
				error.insertAfter("#AnyoNacimiento");
     		else if (element.attr("name") == "wants_info")
				error.insertAfter("#lwants_info");
			else
       			error.insertAfter(element);
		},
		rules: {
			Email2: {
				equalTo: "#Email"
			},
			Telefono: {
				min: 900000000,
				max: 999999999
			},
			TelefonoMovil: {
       			min: 600000000,
				max: 699999999
     		}
		},
		messages: {
			DiaNacimiento: "La fecha de nacimiento es obligatoria",
			MesNacimiento: "La fecha de nacimiento es obligatoria",
			AnyoNacimiento: "La fecha de nacimiento es obligatoria",
			
			CodigoPostal: "El número y el código postal son obligatorios",
			ViaNumero: "El número y el código postal son obligatorios",
			wants_info : "Has de aceptar el aviso legal",
			
			ProvinciaId : "Por favor, haz una selección",
			PoblacionId : "Por favor, haz una selección",
			
			TelefonoMovil: {
       			min: "El móvil ha de empezar por 6 y tener 9 dígitos"
     		},
			Telefono: {
       			min: "El teléfono ha de empezar por 9 y tener 9 dígitos"
     		}
		}
	});
	
	// check if confirm password is still valid after password changed
	$("#Email").blur(function() {
		$("#Email2").valid();
	});
	
});

jQuery.validator.addMethod("isZipCode", function(zipcode, element) {
    zipcode = zipcode.replace(/\s+/g, ""); 
	return this.optional(element) || zipcode <= 52006 &&
		zipcode.match(/^([1-9]{2}|[0-9][1-9]|[0-9][0-9])([1-9][1-9][1-9]|[1-9][1-9][0-9]|[1-9][0-9][1-9]|[0-9][1-9][1-9]|[1-9][0-9][0-9]|[0-9][0-9][1-9]|[0-9][1-9][0-9])$/);
}, "El código postal introducido es incorrecto");

jQuery.validator.addMethod("isDNI", function(dni, element) {
    dni = dni.replace(/\s+/g, ""); 
	return isnif(dni)},
	"El código introducido no es correcto");

function IsNIF(YourNIF){
		var ControlValue = 0 //Control de calculos segun el criterio de correccion
		var NIFCharIndex = 0 //Almacenara la posicion de la letra correpondiente a la parte numerica del DNI con respecto al array "NIFChars"
		//El siguiente array "NIFChars" contiene las letras de DNI ordenadas segun el criterio de correccion
		var MaxLen = YourNIF.length
		var NIFChars = new Array('T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E')
		var FirstDigit = YourNIF.substring(0,1)//Almacenamos el primer digito para ver si es NIF o NIE
		FirstDigit = FirstDigit.toUpperCase() //Pasamos la letra del NIE a mayusculas por si acaso estaba en minusculas
		if(FirstDigit=='X'){
			var NIFNumber = '0'+(YourNIF.substring(1, MaxLen-1)) //Almacenanos la parte numerica del NIE en "NIFNumber"
		}
		else{
			var NIFNumber = YourNIF.substring(0, MaxLen-1) //Almacenanos la parte numerica del DNI en "NIFNumber"
		}
		var NIFChar = YourNIF.substring(MaxLen-1, MaxLen) //Almacenamos la letra del DNI en "NIFChar"
		NIFChar = NIFChar.toUpperCase() //Pasamos la letra del DNI a mayusculas por si acaso estaba en minusculas
		//Los siguientes 4 calculos sirven para calcular la posicion de la letra correspondiente al la parte numerica del DNI "NIFNumber" en en array "NIFChars"
		ControlValue = NIFNumber / NIFChars.length
		ControlValue = Math.floor(ControlValue);
		ControlValue = ControlValue * NIFChars.length
		NIFCharIndex = NIFNumber - ControlValue
		return (NIFChar == NIFChars[NIFCharIndex]) ? 1 : 0 //Si la letra coincide con la letra dada devuelve verdadero si no devuelve falso
}
