function esFecha(cadena){//Comprueba que el campo tiene formato dd/mm/aaaa
if (cadena.search(/^[0-3][0-9]\/[0-1][0-9]\/(19|20)[0-9][0-9]$/) !=-1)
	return true;
else
	return false;
}
function esExtension(cadena,extension){ //comprueba la extension de un archivo formato .xxx
	if(cadena!=""){
		cadena_extension=cadena.substring(cadena.length-extension.length,cadena.length);
		if(cadena_extension.toLowerCase()==extension.toLowerCase()){
			return true;
		}else{
			return false;
		}
	}
}
function esEmail(strEmail) { //Comprueba el formato de una dirección de email
	if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
		return true;
	else
		return false;
}
function esLetras(strLetras){ //Comprueba que un campo solo tenga letras
	if (strLetras.search(/^[a-zA-Z]+[a-zA-Z-_,\. ]+$/) != -1)
		return true;
	else
		return false;
}
function esNombre(strNombres){ //Comprueba que un campo solo nombres
	if (strNombres.search(/^[a-zA-ZÁÉÍÓÚáéíóúÑñ'´`àèìòùÀÈÌÒÙÇçäëïöüÄËÏÖÜâêîôûÂÊÎÔÛ]+[a-zA-Z-_,\.ÁÉÍÓÚáéíóúÑñ'´`àèìòùÀÈÌÒÙÇçäëïöüÄËÏÖÜâêîôûÂÊÎÔÛ ]+$/) != -1)
		return true;
	else
		return false;
}



function esNumero(strNumero){ //Comprueba que el campo tiene un valor numerico
	if (strNumero.search(/^[0-9]+$/) != -1)
		return true;
	else
		return false;
}
function noCorto(strCadena,maximo,minimo){//Comprueba la longitud de un campo para ver si está entre max y el minimo
	if (strCadena.length>=minimo && strCadena.length<=maximo)
		return true;
	else
		return false;
}
function esMovil(strNumero){
if (esNumero(strNumero)==true && parseInt(strNumero.charAt(0))==6 && noCorto(strNumero,9,9)==true)
	return true;
else 
	return false;
}
function esFijo(strNumero){
if (esNumero(strNumero)==true && (parseInt(strNumero.charAt(0))==9 || parseInt(strNumero.charAt(0))==8) && noCorto(strNumero,9,9)==true)
	return true;
else 
	return false;
}
function noVacio(strVacio){//Comprueba que un campo no esté vacio
	if (strVacio!="" && strVacio!=" ")
		return true;
	else
		return false;
}

function estaCheck(campo){//Comprueba el valor de un checkbox
	if (campo.checked==true)
		return true;
	else
		return false;
}

/*function esNif(valor) {
	valido=true;
	letras = ["T", "R", "W", "A", "G", "M", "Y", "F", "P", "D", "X", "B", "N", "J", "Z", "S", "Q", "V", "H", "L", "C", "K", "E"];
	miNumero= valor.substr(0, valor.length-1);
	miLetra = valor.substr(valor.length-1,valor.length).toUpperCase();
	
	Q = (miNumero%23);
	laLetra = (letras[Q]);
	if (!esNumero(miNumero) || miLetra!=laLetra){ //Comprobar Numero
		valido=false;
	}
	return valido;
}*/

function esMayorEdad(fecha) {
	if (esFecha(fecha)){
		bits = fecha.split("/");
		days = parseInt(bits[0]);
		month = parseInt(bits[1]);
		year = parseInt(bits[2]);
		hoy = new Date();
		nac = new Date(year, month, days);
		if (((hoy-nac)/(1000*60*60*24*365))<18) {
			return false;
		} else {
		return true;
		}
	} else {
		return false;
	}
}
function valorRadio(radio){
	aux_radio="";
	for (j=0;j<radio.length;j++){
		if (radio[j].checked==true) aux_radio=radio[j].value;
	}
	return aux_radio;
}
function valorCombo(combo){
	return combo[combo.selectedIndex].value;
}

function validarCIF(texto){ 
         
        var pares = 0; 
        var impares = 0; 
        var suma; 
        var ultima; 
        var unumero; 
        var uletra = new Array("J", "A", "B", "C", "D", "E", "F", "G", "H", "I"); 
        var xxx; 
         
        texto = texto.toUpperCase(); 
         
        var regular = new RegExp(/^[ABCDEFGHKLMNPQS]\d\d\d\d\d\d\d[0-9,A-J]$/g); 
         if (!regular.exec(texto)) return false; 
              
         ultima = texto.substr(8,1); 

         for (var cont = 1 ; cont < 7 ; cont ++){ 
             xxx = (2 * parseInt(texto.substr(cont++,1))).toString() + "0"; 
             impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1)); 
             pares += parseInt(texto.substr(cont,1)); 
         } 
         xxx = (2 * parseInt(texto.substr(cont,1))).toString() + "0"; 
         impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1)); 
          
         suma = (pares + impares).toString(); 
         unumero = parseInt(suma.substr(suma.length - 1, 1)); 
         unumero = (10 - unumero).toString(); 
         if(unumero == 10) unumero = 0; 
          
         if ((ultima == unumero) || (ultima == uletra[unumero])) 
             return true; 
         else 
             return false; 

    } 
  
  
function esNif(abc)
{
	abc = abc.toUpperCase();
	if (abc.length > 4)
	{
		if ((abc.charAt(0,abc.length-1) == 'X') || (abc.charAt(0,abc.length-1) == 'x'))
		{
			dni=abc;	
			var dniValid	=	true;
			var nifLetter	=	dni.substring(dni.length-1,dni.length);		// Get last character
			var dnino	 	=	dni.substring(0,dni.length-1);		// Get the Numbers (1st Part)
			var nifNo		=	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");

			// alert("DNIno=" + dnino);
			// alert("nifLetter=" + nifLetter);

		
			if(dnino.substring(0,1)=="X") {		// First 'X' if not Spanish
				dnino = dnino.substring(1);		// Ignore the X
			}
			else { // X Missing
				//errmsg += "\n- Nº de documento. Verifique que su número de tarjeta de residencia sea correcto.";
				dniValid = false;
				return false
			}
		
			if(dniValid) {
				if(isNaN(dnino)) {	// No. format invalid
					//errmsg += "\n- Nº de documento. Por favor verifique que su NIF sea correcto.";
					return false
				}
				else {
					var tmp = parseInt(dnino / 23);

					// alert("Reminder="+tmp + "|NIF="+nifNo[ dnino - (tmp*23) ]);
					if(nifLetter != nifNo[ dnino - (tmp*23) ] ) {	// NIF-Letter Invalid
						//errmsg += "\n- Nº de documento. Introduzca correctamente los 8 números y la letra.";
						return false
					}
				}
			}
			return true
		}
		dni=abc.substring(0,abc.length-1)
		let=abc.charAt(abc.length-1)
		if (!isNaN(let))
		{
			//alert('Falta la letra')
			//document.formulario.nif.focus()
			return false
		}
		else
		{
			cadena="TRWAGMYFPDXBNJZSQVHLCKET"
			posicion = dni % 23
			letra = cadena.substring(posicion,posicion+1)
			if (letra!=let.toUpperCase())
			{
				//alert("Nif no válido")
				//document.formulario.nif.focus()
				return false
			}
		}
		return true
	} else {
		return false
	}
}

function coincidecp_provincia(cod_postal,valorcombo) {
	var provarray= new Array ('','Alava','Albacete','Alicante','Almeria','Avila','Badajoz','Baleares','Barcelona','Burgos','Caceres','Cadiz','Castellon','Ciudad Real','Cordoba','La Coruna','Cuenca','Girona','Granada','Guadalajara','Guipuzcoa','Huelva','Huesca','Jaen','Leon','Lleida','La Rioja','Lugo','Madrid','Malaga','Murcia','Navarra','Ourense','Asturias','Palencia','Las Palmas','Pontevedra','Salamanca','S.C. Tenerife','Cantabria','Segovia','Sevilla','Soria','Tarragona','Teruel','Toledo','Valencia','Valladolid','Vizcaya','Zamora','Zaragoza','Ceuta','Melilla')	
	cp=cod_postal.substring(0,2);
	if (cp.substring(0,1)=="0")
	cp=cp.substring(1,2);
	cp=parseInt(cp);
	//alert(cp)
	//alert(valorcombo)
	if (provarray[cp]==valorcombo) return true;
	else return false;
}

function esMatricula(texto) {
 		var regular = new RegExp(/^\d\d\d\d+[A-Za-z]{3}$/g); 
		 var regular2 = new RegExp(/^[A-Za-z]{1,2}\d\d\d\d+[A-Za-z]{1,2}$/g); 
         if (regular.exec(texto) || regular2.exec(texto) ) return true; 
		else return false;
	}
	
	
function esCCC(entidad,oficina,dc,nc)
{
    
	
	// Habría que comprobar que sólo se han escrito números.
    if (entidad.length != 4 || !esNumero(entidad))
    {
        return false;
    }
    if (oficina.length != 4 || !esNumero(oficina))
    {
        return false;
    }
    if (nc.length != 10 || !esNumero(nc))
    {
        return false;
    }
    // Todo correcto, calculamos el dígito de control
    var numeroCuenta = entidad + "" + oficina + "--" + nc; 
    
    valores = new Array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6); 
    var controlCS = 0;
    var controlCC = 0; 
    for (k=0; k<=7; k++) 
    {controlCS += parseInt(numeroCuenta.charAt(k)) * valores[k+2]; 
    }
    controlCS = 11 - (controlCS % 11); 
    if (controlCS == 11) controlCS = 0; 
    else if (controlCS == 10) controlCS = 1; 
    
    for (k=10; k<=19; k++) 
    controlCC += parseInt(numeroCuenta.charAt(k)) * valores[k-10]; 
    controlCC = 11 - (controlCC % 11); 
    if (controlCC == 11) controlCC = 0; 
    else if (controlCC == 10) controlCC = 1; 
    
    digitocontrol = controlCS + "" + controlCC;
	if (parseInt(digitocontrol)==parseInt(dc)) {
		return true;
		}
	else return false;
    if (isNaN(controlCS) || isNaN(controlCC))
    {
        return false;
    }
    
    return false; // para que no envíe el formulario
}
function esCodigoPostal(texto){
	valido1=false;
	valido2=false;
	var regular = new RegExp(/^[0-5][0-9][0-9][0-9][0-9]$/g); 
	if (regular.exec(texto)) valido1=true; 
	if (texto>1000 && texto<53000) valido2=true;
	if (valido1 && valido2) return true;
	else return false;
}