function validarNIE(texto) {
	texto=texto.replace(/ |-|[.]/g,"");
	texto=texto.toUpperCase();
	var validarNIE=new String("TRWAGMYFPDXBNJZSQVHLCKEF");
	var reNIE=/X\d{7}[A-Z]$/;
	if (!reNIE.exec(texto)) return false;
	if(validarNIE.substring(Number(texto.substring(1,8))%23,(Number(texto.substring(1,8))%23)+1) != texto.substring(8,9)) return false;
	return true;
}
function validarNIF(texto) {
	while(texto.length <= 8) texto="0"+texto;
	texto=texto.replace(/ |-|[.]/g,"");
	texto=texto.toUpperCase();
	var validarNIF=new String("TRWAGMYFPDXBNJZSQVHLCKEF");
	var reNIF=/\d{8}[A-Z]$/;
	if (!reNIF.exec(texto)) return false;

	return !(validarNIF.substring(Number(texto.substring(0,8))%23,(Number(texto.substring(0,8))%23)+1) != texto.substring(8,9));
}

// Comprueba la entrada de datos
function CompruebaDatos(texto) {
	var texto = texto.toUpperCase();

	return ((/^[A-Za-z0-9]{9}$/.test(texto)) && (/^[ABCDEFGHKLMNPQS]/.test(texto)));
}
// La función recibe el CIF completo: A58818501
function validarCIF(texto) {
	texto=texto.replace(/ |-|[.]/g,"");
	if (!CompruebaDatos(texto)) return false;
	
	var v1 = new Array(0,2,4,6,8,1,3,5,7,9);
	var temp = 0;

	for( i = 2; i <= 6; i += 2 ) {
		temp = temp + v1[ parseInt(texto.substr(i-1,1)) ];
  		temp = temp + parseInt(texto.substr(i,1));
	}
	temp = temp + v1[ parseInt(texto.substr(7,1)) ];
	temp = (10 - ( temp % 10));
	return (temp % 10 == Number(texto.substr(texto.length-1,1)));
}

function validarMail(texto) {
	var reMail=/^\w+([-.]\w+)*@\w{1,}([-.]\w{1,})*\.\w{2,}([-.]\w{2,})*$/;
	if(!reMail.exec(texto)) return false;
	return true;
}
function validarEmailDominio(email) {
	$.ajax({
		url: "/ajax/comprobarDominio.cfm",
		data: "email="+email,
		dataType: "text",
		cache: false,
		async: false,
		success: function(response) {correcto = response.substring(0,response.search(/;/));}
	 });
	 return eval(unescape(escape(correcto).replace(/(%0A)+/g,"")));
}
function validarDominio(texto) {
	$.ajax({
		url: "/ajax/comprobarDominio.cfm",
		data: "dominio="+texto,
		dataType: "text",
		cache: false,
		async: false,
		success: function(response) {correcto = response.substring(0,response.search(/;/));}
	 });
	 return eval(unescape(escape(correcto).replace(/(%0A)+/g,"")));
}
function validarUsuario(e, p) {
	$.ajax({
		url: "/ajax/checkUser.cfm",
		data: "e="+e+"&p="+p,
		dataType: "text",
		cache: false,
		async: false,
		success: function(response) {correcto = response.substring(0,response.search(/;/));}
	});
	return eval(unescape(escape(correcto).replace(/(%0A)+/g,"")));
}
function validarURL(texto) {
	var reURL=/^http:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?$/;
	return reURL.exec(texto);
}
function limpiarTelf(sTelf) {
	erSeparador=/[.]|[,]|[(]|[)]|[-]| /g;
	sTelf.value=sTelf.value.replace(erSeparador,"");
}
function validarTelefono(Prefijo,Telefono) {
	var rePreTelf=/\d{2,3}$/; // Reg Exp para prefijo telefono
	var reTelf=/\d{6,15}$/; // Reg Exp para teléfono correcto
	var reTelfMal=/\D/; // Reg Exp para teléfono incorrecto
	if (Prefijo != "" && !rePreTelf.exec(Prefijo)) return false;
	if (Telefono != "" && !reTelf.exec(Telefono)) return false;
	if (Telefono != "" && reTelfMal.exec(Telefono)) return false;
	return true;
}
function tieneErrores(sMail) {
	bOk=false;
	for(j=0;j<MAIL.length && !bOk;j++){
		if(sMail.indexOf(MAIL[j]) != -1) bOk=bOk || true;
	}
	return bOk;
}
function validarPersonaContacto(sPersonacontacto) {
	var txt = sPersonacontacto.replace(/^\s*|\s*$/g,"");
	var rePatron=/^[a-zA-Z ªºàáèéìíòóùúäëïöüñ]+$/; //Permitimos letras, espacios y ªº para abreviaciones. Ej: Mª Carmen
    // Si la cadena está vacía o no coincide con el patron 
	return  !((txt == "") || !rePatron.exec(sPersonacontacto));
}
function validarTextos(sTexto) {
	var rePatron=/^([a-zA-Z0-9 àáèéìíòóùúäëïöüñ]+[.,-]{0,1})+$/; //Permitimos letras, números y espacios
    // Si la cadena está vacía o no coincide con el patron 
	return !(($.trim(sTexto) == "") || !rePatron.exec(sTexto))
}
function validarLocalidad(sLocalidad) {
	// Si la cadena está vacía o contiene un número entonces no es correcto 
	return !((sLocalidad == "") || !isNaN(sLocalidad))
}
function validarCodigoPostal(sCP, codPais) {
    // si la cadena está vacía no es correcto
    if (sCP == "") {
    	return false;
    }
    if (codPais != 67) {
    	return true;
    }
    else {
    	// Si la cadena no contiene un número o su longitud es distinto a 5, entonces no es correcto
		return !((isNaN(sCP)) || (sCP.length != 5));
	}
}

function verificarNif(nif, pais) {
	var verificarNif=false;
	if ((pais==67) && (nif!="")) {
		$.ajax({
			type: "GET",
			url: "/ajax/verificarNif.cfm",
			cache: false,
			async: false,
			dataType: "html",
			data: "q="+nif+"&r="+pais,
			success: function(response) {
				resultado=response.substring(0,response.search(/;/));
				resultado=unescape(escape(resultado).replace(/(%0A)+/g,""));
				verificarNif = (resultado=="1");
			},
			error: function(xmlRequest, error) {}
		});
	} 
	else {
		verificarNif=true;
	}
	return verificarNif;
}