function nif(nif)
{
	try{
		var s_nif=nif;
		s_nif=s_nif.toUpperCase();
		var longitud_nif=s_nif.length;
		var s_dni=s_nif.substring(0,longitud_nif-1);
		var s_letra=s_nif.substring(longitud_nif-1,longitud_nif);
		var ASC;
		var respuesta=false;
		
		// El campo nif no puede estar en blanco
		if (s_nif == "")
		{
			nif.focus();
			return (false);
		}
		// El dni solo puede contener caracteres numericos
		var digitos = "0123456789";
		var correcto = true;
		for (i = 0;  i < s_dni.length;  i++)
		{
			ch = s_dni.charAt(i);
			for (j = 0;  j < digitos.length;  j++)
				if (ch == digitos.charAt(j))
					break;
			if (j == digitos.length)
			{
				nif.focus();
		  			return (false);
			}
		}
	
		// Comprovamos que la letra corresponda con la que tiene
		if (letraNIF(s_dni)==s_letra)
		{
			return (true);
		} 
			else
		{
			nif.focus();
			return (false);
		}
	
	}catch(e)
	{
		respuesta = false;
	}
return (respuesta);
}

function letraNIF(n){
var d =(n/23);
d = Math.floor(d);
var e=d*23;
var r=n-e;

if (r==0)
	return "T";
if (r==1)
	return "R";
if (r==2)
	return "W";
if (r==3)
	return "A";
if (r==4)
	return "G";
if (r==5)
	return "M";
if (r==6)
	return "Y";
if (r==7)
	return "F";
if (r==8)
	return "P";
if (r==9)
	return "D";
if (r==10)
	return "X";
if (r==11)
	return "B";
if (r==12)
	return "N";
if (r==13)
	return "J";
if (r==14)
	return "Z";
if (r==15)
	return "S";
if (r==16)
	return "Q";
if (r==17)
	return "V";
if (r==18)
	return "H";
if (r==19)
	return "L";
if (r==20)
	return "C";
if (r==21)
	return "K";
if (r==22)
	return "E";
} //fin funcion DNI
