function validarFecha(dia, mes, anyo) {
    
    if (!anyo) return false;
    if (anyo<1850) return false;
    if (!mes) return false;
    if (!dia) return false;
    var test = new Date(anyo, mes-1, dia);
    if ( (test.getFullYear() != anyo) || (mes-1 != test.getMonth()) || (dia != test.getDate()) ) return false;
    return true;
}

function ValidacionFecha(fecha, sep) {
    var numeros = "0123456789";
    var pos1 = fecha.indexOf(sep);
    var pos2 = fecha.indexOf(sep, pos1+1);
    var dia, mes, ano;
    var i;
    
    if ((pos1 == -1)||(pos2 == -1)) {
        return "";
    }
    dia = fecha.substring(0, pos1);
    mes = fecha.substring(pos1+1, pos2);
    ano = fecha.substring(pos2+1, fecha.length);
    
    if ((dia.length < 1)||(dia.length > 2)) {
        return "";
    }
    for(i=0;i<dia.length;i++) {
        if (numeros.indexOf(dia.charAt(i)) == -1) {
            return "";
        }
    }
    
    if (dia < 1) {
        return "";
    }

    if ((mes.length < 1)||(mes.length > 2)) {
        return "";
    }
    for(i=0;i<mes.length;i++) {
        if (numeros.indexOf(mes.charAt(i)) == -1) {
            return "";
        }
    }

    if (ano.length != 4) {
        return "";
    }
    for(i=0;i<ano.length;i++) {
        if (numeros.indexOf(ano.charAt(i)) == -1) {
            return "";
        }
    } 

    if (parseInt(ano,10) < 1880) {
        return "";
    }
    
    if (validarFecha(parseInt(dia,10), parseInt(mes,10), parseInt(ano,10))) {
        if (dia.length == 1) dia = "0" + dia;
        if (mes.length == 1) mes = "0" + mes;
        return dia + "/" + mes + "/" + ano
    }
}


function ValidarTelefono(numero) {
	var NUMEROS="1234567890";
	for (var i=0;i<numero.length;i++) {
		if (numero.charAt(0)!='9' || numero.charAt(1)=='0' ){
			return false;
		}
		
		if (NUMEROS.indexOf(numero.charAt(i))<0) {
			return false;
		}
		
	}
	return true;	
}



function ValidarDirCorreoElectronico(email) {
    var caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-.";
    var i;
    var valido = true;
    var pos_arroba = email.indexOf("@");
    var pos_ultimo_punto = email.lastIndexOf(".");
    var email_minus = email.toLowerCase();
    var trozo;
    
    if (pos_arroba == -1) {
        return false;
    }
    if (email_minus.indexOf("login@yaonline.es") != -1){
        return false;
    }
    if (pos_ultimo_punto == -1) {
        return false;
    }
    trozo = email.substring(0, pos_arroba);
    for(i=0;i<trozo.length;i++) {
        if (caracteres.indexOf(trozo.charAt(i)) == -1) {
            valido = false;
            break;
        }
    }    
    if (!valido) {
        return false;
    }
    valido = true;
    trozo = email.substring(1+pos_arroba, pos_ultimo_punto);
    for(i=0;i<trozo.length;i++) {
        if (caracteres.indexOf(trozo.charAt(i)) == -1) {
            valido = false;
            break;
        }
    }    
    if (!valido) {
        return false;
    }
    valido = true;
    trozo = email.substring(1+pos_ultimo_punto, email.length);    
    if ((trozo.length >= 2)&&(trozo.length <= 3)) {
        for(i=0;i<trozo.length;i++) {
            if (caracteres.indexOf(trozo.charAt(i)) == -1) {
                valido = false;
                break;
            }
        }    
        if (!valido) {
            return false;
        }
    } else {
        return false;
    }
    return true;
}    


function validaCP(f)
{
	if (!esDigito(f.DIR_CP.value)){
		alert("El Código Postal debe ser numérico");
		f.DIR_CP.focus();
		return false;
	}
    
    if (f.DIR_CP.value.length!=5){ 
		alert("El Código Postal debe tener 5 dígitos");	
		f.DIR_CP.focus();
		return false;
	}
	var provinciaSeleccionada = f.PRO_ID_PROVINCIA.options[f.PRO_ID_PROVINCIA.selectedIndex].value;
	while (provinciaSeleccionada.length<2) provinciaSeleccionada = "0" + provinciaSeleccionada;
	
	if (f.DIR_CP.value.substring(0,2)!=provinciaSeleccionada){ 
		alert("El Código Postal introducido no se corresponde con la provincia seleccionada.");	
		f.DIR_CP.focus();
		return false;
	}

	return true;
}


function esTexto(cadenaEntrada) {
    var caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

	for (i=0;i<cadenaEntrada.length;i++){
		var c = cadenaEntrada.charAt(i);
		if (caracteres.indexOf(c)==-1) {
			return false;
		}
	}
	return (true);
}	

function esLetra(cadenaEntrada) {
    var caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

	for (i=0;i<cadenaEntrada.length;i++){
		var c = cadenaEntrada.charAt(i);
		if (caracteres.indexOf(c)==-1) {
			return false;
		}
	}
	return (true);
}
function esTextoMinusculas(cadenaEntrada) {
    var caracteres = "abcdefghijklmnopqrstuvwxyz0123456789";

	for (i=0;i<cadenaEntrada.length;i++){
		var c = cadenaEntrada.charAt(i);
		if (caracteres.indexOf(c)==-1) {
			return false;
		}
	}
	return (true);
}	

function esTextoCompleto(cadenaEntrada) {
    var caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ -.,?!¿¡;:()ºª$[]{}áÁéÉíÍóÓúÚñÑçÇ";

	for (i=0;i<cadenaEntrada.length;i++){
		var c = cadenaEntrada.charAt(i);
		if (caracteres.indexOf(c)==-1) {
			return false;
		}
	}
	return (true);
}	


function esDigito(cadenaEntrada)
{

	for (i=0;i<cadenaEntrada.length;i++)
	{

		if  ( isNaN(parseInt(cadenaEntrada.substring(i,i+1),10)) ) return (false);	//Netscape

		if ((cadenaEntrada.substring(i,i+1))!=(parseInt(cadenaEntrada.substring(i,i+1),10))) return (false);	//Explorer


	}
	return (true);

}

function validaNif(cadenaNif)
{
	var valoresNif= new Array ("0","1","2","3","4","5","6","7","8","9","K","L","X");
	var valoresCif= new Array ("A","B","C","D","E","F","G","H","N","P","Q","S");
	var controlNif = 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 controlCifLetras = new Array ("A","B","C","D","E","F","G","H","I","J");
	while (cadenaNif.length<9) cadenaNif = "0" + cadenaNif;	
	caracterControl=cadenaNif.substring(8,9).toUpperCase();
	//TIPO DE NIF	
	primerCaracter=cadenaNif.substring(0,1).toUpperCase();
	var tipo="desconocido";	
	
	for (i=0;i<valoresNif.length;i++) { if (valoresNif[i]==primerCaracter) tipo="NIF";  }	
	if (tipo=="desconocido"){
		for (i=0;i<valoresCif.length;i++) {  if (valoresCif[i]==primerCaracter) tipo="CIF";  }
	}
	if (tipo=="desconocido") return (5);		//El primer caracter del nif no es válido.
	if (tipo=="NIF") {	
		var provincia="";
		if ((primerCaracter=="K") || (primerCaracter=="L")){		
			provincia=cadenaNif.substring(1,3);
			if (!esDigito(provincia)) return 2;   //Codigo de provincia no válido			
			numero=cadenaNif.substring(3,8);			
		} else if (primerCaracter=="X"){	
			numero=cadenaNif.substring(1,8);		
		} else {		
			numero=cadenaNif.substring(0,8);		
		}
		if (!esDigito(numero)) return 3;   //Parte numérica del Nif no válida		
		caracterControlCalculado=controlNif [((parseFloat(numero)%23))];  //El algoritmo dice que al resto hay que 
																		  //sumarle 1, eso lo hacemos al indexar el 
																		  //array ya que los indices empiezan en 0				
		if (caracterControl != caracterControlCalculado) return 4;   //Carácter Control incorrecto
	}else if (tipo=="CIF"){
		if (primerCaracter=="N") {
			pais=cadenaNif.substring(1,4);
			if (!esDigito(pais)) return 6;   //Codigo de pais no válido
			numero=cadenaNif.substring(4,8);
		}else {
			numero=cadenaNif.substring(1,8);		
		}		
		if (!esDigito(numero)) return 3;   //Parte numérica del Nif no válida				
		caracterControlCalculado = 10 - ( (
							 Math.floor( 0.2*parseInt(cadenaNif.substring(1,2),10) ) +
							 ( 2*parseInt(cadenaNif.substring(1,2),10) %10) +						 
							  Math.floor( 0.2*parseInt(cadenaNif.substring(3,4),10) ) +
							 ( 2*parseInt(cadenaNif.substring(3,4),10) %10) +							 
							  Math.floor( 0.2*parseInt(cadenaNif.substring(5,6),10) ) +
							 ( 2*parseInt(cadenaNif.substring(5,6),10) %10) +
							  Math.floor( 0.2*parseInt(cadenaNif.substring(7,8),10) ) +
							 ( 2*parseInt(cadenaNif.substring(7,8),10) %10) +
							 parseInt(cadenaNif.substring(2,3),10) +
							 parseInt(cadenaNif.substring(4,5),10) +
							 parseInt(cadenaNif.substring(6,7),10) 
							 )% 10);		
		if ((primerCaracter=="N") ||(primerCaracter=="P") || (primerCaracter=="Q") || (primerCaracter=="S") ) {
			caracterControlCalculado = valoresCif[caracterControlCalculado-1];
		}
		if (caracterControlCalculado==10) caracterControlCalculado=0;
		if (caracterControl != caracterControlCalculado) return 4;   //Carácter Control incorrecto
	} 
	return true;  //todo bien.
}


function validaCC(e,o,d,n) {
	var pesos = new Array (6,3,7,9,10,5,8,4,2,1);
	
	var total=e*10000+o*1;
	
	var acc=0;
	for (var i=0;i<8;i++){
		var c = total%10;
		acc	= acc + c*pesos[i];
		total=(total-c)/10;
	}
	var dig1=acc%11;
	dig1=11-dig1;
	if (dig1==10) dig1=1;
	if (dig1==11) dig1=0;


	total=n;
	acc=0;
	
	for (var i=0;i<10;i++){
		var c = total%10;
		acc	= acc + c*pesos[i];
		total=(total-c)/10;
	}
	var dig2=acc%11;
	dig2=11-dig2;
	if (dig2==10) dig2=1;
	if (dig2==11) dig2=0;

	
	var dig=dig1*10+dig2;
	
	if (d!=dig) return false;
	return true;
}


function ignoreSpaces(string) {
	var temp = "";
	string = '' + string;
	splitstring = string.split(" ");
	for(i = 0; i < splitstring.length; i++)
	temp += splitstring[i];
	return temp;
}



function esCadenaValida(cadenaEntrada) {
	var caracteresMal = "\'\%\"\^\*\\";
	for (i=0;i<cadenaEntrada.length;i++){
		var c = cadenaEntrada.charAt(i);
		if (caracteresMal.indexOf(c)!=-1) {
			return false;
		}
	}
	return (true);
}	




//-->
