// validar solo numeros 0-9
function validarEntero(e){
	tecla = e.keyCode;
	if (tecla==13)
		return false;
	if  ((tecla<48)||(tecla>57)){
			alert ("La tecla pulsada no es número");
			return false;
	}
	return true;
}

function validarDecimal(campo,e){
	tecla = e.keyCode;
	if (tecla==13)
		return false;
	if ((tecla==46 || tecla==44) && campo.value.indexOf(",")>-1){
			return false;
	}
	if (tecla==46) {
		cadena = campo.value + "\x2C";
		campo.value = cadena;
		return false;
	}
	if  ((tecla!=44)  && ((tecla<48)||(tecla>57))){
			alert ("La tecla pulsada no es número o una coma");
			return false;
	}
	return true;
}

// validar solo letras a-z / A-Z
function validarLetra(e){
	tecla = e.keyCode;
	if (tecla==13)
		return false;
	if  ( ((tecla<65)&&(tecla!=32)) ||((tecla>90)&&(tecla<97))||(tecla>122)){
			alert ("La tecla pulsada no es una letra");
			return false;
	}
	return true;
}

function validarLetraNumero(e){
	tecla = e.keyCode;
	if (tecla == 13)
		return false;
	if ((tecla<48)&&(tecla!=32) || ((tecla>57)&&(tecla<65)) || ((tecla>90)&&(tecla<97)) || (tecla>122)){
		alert("La tecla pulsada no es un número ni una letra");
		return false;
	}
	return true;
}

function validarLetraNumeroGuion(e){
	tecla = e.keyCode;
	if (tecla == 13)
		return false;
	if (tecla == 45)
		return true;
	if (tecla == 95)
		return true;
	if ((tecla<48)&&(tecla!=32) || ((tecla>57)&&(tecla<65)) || ((tecla>90)&&(tecla<97)) || (tecla>122)){
		alert("La tecla pulsada no es un número ni una letra");
		return false;
	}
	return true;
}

// FECHAS
function esFechaValida(ele)
{ 
	caja = ele.value;
   if (caja)
   {  
      borrar = caja;
      if ((caja.substr(2,1) == "/") && (caja.substr(5,1) == "/"))
      {      
         for (i=0; i<10; i++)
	     {	
            if (((caja.substr(i,1)<"0") || (caja.substr(i,1)>"9")) && (i != 2) && (i != 5))
			{
               borrar = '';
               break;  
			}  
         }
	     if (borrar)
	     { 
	        a = caja.substr(6,4);
		    m = caja.substr(3,2);
		    d = caja.substr(0,2);
		    if((a < 1900) || (a > 2050) || (m < 1) || (m > 12) || (d < 1) || (d > 31))
		       borrar = '';
		    else
		    {
		       if((a%4 != 0) && (m == 2) && (d > 28))	   
		          borrar = ''; // Año no viciesto y es febrero y el dia es mayor a 28
			   else	
			   {
		          if ((((m == 4) || (m == 6) || (m == 9) || (m==11)) && (d>30)) || ((m==2) && (d>29)))
			         borrar = '';	      				  	 
			   }  // else
		    } // fin else
         } // if (error)
      } // if ((caja.substr(2,1) == "/") && (caja.substr(5,1) == "/"))			    			
	  else
	     borrar = '';
	  if (borrar == ''){
	     return false
	  }
	  else
	  	return true;
   
   } // if (caja)   
} // FUNCION

function esHoraValida(cmp)
{
	hora=cmp.value;
	a=hora.charAt(0);
	b=hora.charAt(1);
	c=hora.charAt(2);
	if (a>="2" && b>"3") {
		cmp.focus();
		cmp.select();
		return false;
	}
	if (a<"0" || b<"0"){
		cmp.focus();
		cmp.select();
		return false;
	}
	if (c>"5") {
		cmp.focus();
		cmp.select();
		return false;
	}
	return true;
}

function horaQuitarPuntos(b){
	var res = b.value.replace(/:/g,"");
	b.value = res;
	b.select();
}

function validarHora(b){
	var v = b.value;
	if (v.length==0)
		return false;
	if (v.length!=4){
		alert("Hora Errónea. Formatp permitido HHMM");
		b.focus();
		b.select();
		return false;
	}
	if (!esHoraValida(b)){
			alert("Hora errónea. Formato permitido HHMM");
			b.select();
			return false;
		}
	var vFormateado = v.substring(0,2)+":"+v.substring(2,4);
	b.value = vFormateado;
	return false;
}

function fechaQuitarBarras(b){
	var res = b.value.replace(/\//g,"");
	b.value = res;
	b.select();
}


function fechaValidarNumeros(b){
	var v = b.value;
	if (v.length==0)
		return false;
	if (v.length != 8){
		alert('Inserte 8 dígitos en la fecha');
		b.focus();
		return false;
	}
	else {
		var vFormateado = v.substring(0,2)+"/"+v.substring(2,4)+"/"+v.substring(4,8);
		b.value= vFormateado;
		if (!esFechaValida(b)){
			alert("Fecha errónea. Formato permitido ddmmaaaa")
			b.select();
			return false;
		}
	}
	return true;
}

// compara si fecha fin es menor que fecha inicio (formato fechas dd/mm/yyyy)
function isLowerDate(inicio, fin) {
  f1 = new Date(inicio.substr(6,4), parseInt(inicio.substr(3,2))-1, inicio.substr(0,2));
  f2 = new Date(fin.substr(6,4), parseInt(fin.substr(3,2))-1, fin.substr(0,2));
  return f2 < f1;
}

//devuelve true si un texto recibido solo contiene digitos, es decir, es numero entero
function esNumero(val)
{
	var re = new RegExp("^\\d+$","i");
	if (!re.test(val))
	{
		return false;
	}

	return true;
}

/* valida el NIF */
function esValidoNIF(nif){
	nif = nif.toUpperCase();
  txtError = "";
  ok = true;

	letras = new Array();
  letras[0]  = "T";
  letras[1]  = "R";
  letras[2]  = "W";
  letras[3]  = "A";
  letras[4]  = "G";
  letras[5]  = "M";
  letras[6]  = "Y";
  letras[7]  = "F";
  letras[8]  = "P";
  letras[9]  = "D";
  letras[10] = "X";
  letras[11] = "B";
  letras[12] = "N";
  letras[13] = "J";
  letras[14] = "Z";
  letras[15] = "S";
  letras[16] = "Q";
  letras[17] = "V";
  letras[18] = "H";
  letras[19] = "L";
  letras[20] = "C";
  letras[21] = "K";
  letras[22] = "E";
  
  dni=nif.substring(0,nif.length-1);
  while (dni.charAt(0)=='0'){
  	dni = dni.substring(1,dni.length);
  }
  dni=parseInt(dni);
  letra=nif.charAt(nif.length-1);
  letraCorrecta = letras[ dni % 23];
  if (dni > 99999999){ 
    ok = false;
  } else if(letra<"A" || letra>"Z"){
    ok = false;
  } else if(letra!=letraCorrecta) {
    ok = false;
  }

  if (ok) {
    return true;
  }else{
    //alert(txtError);
    return false;
  }
}

// La función recibe el CIF completo: A58818501
function esValidoCIF(obj) 
{
  var temp = obj.toUpperCase(); // pasar a mayúsculas
  if (!/^[A-Za-z0-9]{9}$/.test(temp))  // Son 9 dígitos? 
		return false
  else if (!/^[ABCDEFGHKLMNPQS]/.test(temp)) // Es una letra de las admitidas ?
		return false
	
	var letras = new Array("J","A","B","C","D","E","F","G","H","I")
  var v1 = new Array(0,2,4,6,8,1,3,5,7,9); 
  var temp = 0; 
  var temp1;

  
  for( i = 2; i <= 6; i += 2 ) 
    {
      temp = temp + v1[ parseInt(obj.substr(i-1,1)) ];
      temp = temp + parseInt(obj.substr(i,1));
    };

  temp = temp + v1[ parseInt(obj.substr(7,1)) ];

  temp = (10 - ( temp % 10));

  if( temp == 10 )
  	temp = 0

  var ult = obj.substr(8,1);
  if ( isNaN (parseInt(ult))){
  	if (ult != letras[temp])
  		return false;
  } else {
  	if (ult != temp)
  		return false;
  }
  
  return true;
}

// Validar el NIE

function esValidoNIE(obj) {
	obj = obj.toUpperCase();
	letra = obj.substr(0,1);
	dni = obj.substr(1,9);
	if ((letra!='X') || !esValidoNIF(dni)){
		return false;
	}
	return true;
}