/* author: Enric Tremps */
/* creation date: 19/05/2009 */

function cifCheck(cifStr)
{
 var S1, S2, L2, C3, DS, count, ls; 

ls = new Array("J","A","B","C","D","E","F","G","H","I");

if (cifStr.length == 9) {

S1 =  Math.floor(cifStr.charAt(2)) + Math.floor(cifStr.charAt(4)) + Math.floor(cifStr.charAt(6));

L2 = "";

L2 = L2 + (cifStr.charAt(1) * 2) + (cifStr.charAt(3) * 2) + (cifStr.charAt(5) * 2) + (cifStr.charAt(7) * 2);

S2 = 0;
for  (count = 0; count < L2.length; count++)
 {S2 = S2 + Math.floor(L2.charAt(count));}

S1 = S1 + S2;
C3 = "";
C3 = C3 + S1;

if (C3.charAt(C3.length - 1) == '0')  DS = 0;
else DS = 10 - C3.charAt(C3.length - 1);

if ((cifStr.charAt(8) == DS) || (cifStr.charAt(8) == ls[Math.floor(DS)]))  
return true ; else return false
 }
else return false  
 }
