var letraDNI = 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","T");


function validateNif(nif) 
{
	var isValid = true;
    var i = 0;

   	if (nif == '') return true;
        
	if (nif.length < 9) return  false;

	return validacionNifTrad(nif);
}

function validacionNifTrad(nif) 
{
    var isValid = false;

    if (validacionNumeroNif(nif.substring(0,8),nif.substring(8,9))) return true;
    else if (validacionNumeroNif(nif.substring(1,8),nif.substring(8,9)))
    {
        var primeraLetra = nif.substring(0,1);
        if( (primeraLetra !="K") &&
            (primeraLetra !="L") &&
            (primeraLetra !="M") &&
            (primeraLetra !="X")){
            return false;
        }
        else
        {
            return true;
        }
    }
    else return false;
    
}

function validacionNumeroNif(num,letra)
{
    var isValid = true;

    if (isNaN(num)) 
    {
       isValid = false;    
    }
    else
    {
       var pos = num % 23;
       if (letra != letraDNI[pos]) 
       {
          isValid = false;
       }
    }
    return isValid;
}