<!--

  
   numeros="0123456789";
   mayusculas="ABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
   minusculas="abcdefghijklmnñopqrstuvwxyz";
   errorNif= new creaerrorNif();  
   erroresNif= new Array();
  
   erroresNif[1]="Campo obligatorio (8 números + 1 letra). Falta su valor";
   erroresNif[2]="Faltan caracteres: 8 números + 1 letra.";
   erroresNif[3]="Faltan caracteres 8 números + 1 letra (opcional).";
   erroresNif[4]="Carácter ilegal: los 8 primeros caracteres deben ser números";
   erroresNif[5]="Carácter ilegal: el último caracter debe ser una letra";
   erroresNif[6]="Letra del NIF incorrecta";

  
   // Crea un objeto que guarda un indice a la posición y al mensaje de error
   function creaerrorNif()
   {
   this.valor=0;
   this.posicion=0;
   return this
   }
  
   // Determina si un caracter es un número
   function numero(car)
   {
   return (numeros.indexOf(car)>=0)
   }

  // Determina si un caracter es un número
   function esletra(car)
   {
   if (mayusculas.indexOf(car)>=0) return (mayusculas.indexOf(car)>=0); return(-1);
   }


  // No se comprueba si el DNI es correcto (8 numeros)
   function CalculaLetraNIF(Dni) 
   {

     var clave=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("El NIF es : ".concat(Number(Dni) , clave[Dni%23]));
     return(clave[Dni%23]);
   }

	function CalculaNIF(Dni) 
	{

     var clave=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("El NIF es : ".concat(Number(Dni) , clave[Dni%23]));
     return("".concat(Number(Dni) , clave[Dni%23]));
	}
	
   // Comprueba si el contenido corresponde a un NIF (8 numeros + 1 letra)
   // letra = 1 obliga a que exista la letra, 
   // obligatorio = 1, da error si contenido está vacío
   function compruebanif(contenido,letra, obligatorio)
   {
   var letraCalculada;
   if ((contenido.length == 0) && (obligatorio ==1))
      {
      errorNif.valor=1;
      errorNif.posicion=1;
      alert(erroresNif[errorNif.valor]); 
      return false;
      }  

	
   if (letra ==1) 
   {
	if (contenido.length != 9)
	{
	    errorNif.valor=2;
            errorNif.posicion=1; 
	    alert(erroresNif[errorNif.valor]);
            return false;
	}
   }
   else 
   {
	if (contenido.length != 8)
	{
	     errorNif.valor=3;
             errorNif.posicion=1; 
	     alert(erroresNif[errorNif.valor]);
             return false;
	}
   }
	   

   for (var i=0; i<8;i++)
   {
      if (!numero(contenido.charAt(i)))
         {
         errorNif.valor=4;
         errorNif.posicion=i+1;
	 alert(erroresNif[errorNif.valor]);
         return false;
         } 
   }
   if (contenido.length==9)
   {
	if (!esletra(contenido.charAt(8)))
        {
	  errorNif.valor=5;
          errorNif.posicion=8;
	  alert(erroresNif[errorNif.valor]);
          return false;
        } 
	else
	{
	  letraCalculada= CalculaLetraNIF(contenido.substring(0,8));
	  if (contenido.charAt(8) != letraCalculada)
	  {
	    errorNif.valor=6;
            errorNif.posicion=8;
            alert(erroresNif[errorNif.valor] +". Su letra del NIF es: " + letraCalculada);
            return false;
	  }
	}
   }
   return true;
   }
//-->
