 function ConvalidaIva(cod) { /*
   cod e' il codice da controllare.
   La funzione restituisce:
   - 0 : codice errato
   - 1 : Partita IVA corretta
   - 2 : Codice Fiscale corretto
   */
   risultato=0
   nTotPari=0
   nTotDispari=0
   if (cod.length==11) // caso PI
    { for (i=0;i<10;i+=2) // dispari
       { nTotDispari+=parseInt(cod.charAt(i))
       }
      for (i=1;i<10;i+=2)  // pari
       { b=parseInt(cod.charAt(i))
         if (b!=9) b=(2*b)%9
         nTotPari+=b
       }
      nTotPari=(nTotPari+nTotDispari)%10
      if (nTotPari==0) nTotPari=10
      if ((10-nTotPari)==parseInt(cod.charAt(10))) risultato=1
    }
   if (cod.length==16) // caso CF 
    { arr1="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
      arr2=new Array(1,0,5,7,9,13,15,17,19,21,2,4,18,20,11,3,6,8,12,14,16,10,22,25,24,23)
      for (i=0;i<15;i+=2)  // dispari
       { if (isNaN(cod.charAt(i))) b=arr2[arr1.indexOf(cod.charAt(i))]
         else b=arr2[parseInt(cod.charAt(i))]
         nTotDispari+=b
       }
      for (i=1;i<15;i+=2) // pari
       { if (isNaN(cod.charAt(i))) b=arr1.indexOf(cod.charAt(i))
         else b=parseInt(cod.charAt(i))
         nTotPari+=b
       }
      nTotPari=(nTotPari+nTotDispari)%26
      if (arr1.charAt(nTotPari)==cod.charAt(15)) risultato=2
    }
   return risultato
 }
