function partitaIVA(sz_Codice)
{
var n_Val,n_Som1=0,n_Som2=0,lcv;
if (sz_Codice.length!=11 || isNaN(parseFloat(sz_Codice)) || parseFloat(sz_Codice)<parseFloat(0))
{ alert("Partita IVA errata"); return false}

for (lcv=0;lcv<9;lcv+=2)
{
  n_Val=parseInt(sz_Codice.charAt(lcv));
  n_Som1+=n_Val;
  n_Val=parseInt(sz_Codice.charAt(lcv+1));
  n_Som1+=Math.floor(n_Val/5) + (n_Val<<1) % 10;
}
n_Som2 = 10 - (n_Som1 % 10);
n_Val=parseInt(sz_Codice.charAt(10));
if (n_Som2==n_Val)
  return true;
  return false;
}


// VERIFICA NOME,COGNOME,CITTA
function isName(what,fname)
{
   var i=new RegExp("([a-zA-Z\ ]{3,})");
   if(!i.test(what)) { alert("Il campo "+fname+" non è valido."); return false}
   return true;
}

// VERIFICA EMAIL
function isEmail(what)
{
   var i=new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
   if(!i.test(what)) { alert("Il campo EMAIL non è valido."); return false}
   return true;
}

// VERIFICA PASSWORD
function isPassword(what,fname)
{
   var i=new RegExp("([a-zA-Z0-9]{4,20})");
   if(!i.test(what)) { alert("Il campo "+fname+" non è valido."); return false}
   return true;
}

// VERIFICA RETYPE PASSWORD
function isRetypePassword(what,retype, fname)
{
   if(what != retype) { alert("Le due Password non sono uguali. Cancella e ridigita le Password"); return false}
   return true;
}

// VERIFICA URL
function isURL(what)
{
   var i=new RegExp("HTTP:\/\/([a-zA-Z\.0-9]{2,})\.([a-zA-Z\.0-9]{2,})");
   if(!i.test(what)) { alert("Il campo SITO WEB non è valido."); return false}
   return true;
}

// VERIFICA TEL/FAX
function isTelFax(what,fname)
{
   var i=new RegExp("([0-9]{5,})");
   if(!i.test(what)) { alert("Il campo "+fname+" non è valido."); return false}
   return true;
}

// VERIFICA Partita IVA
function isPIVA(what)
{
   if(what.length>0)
   {
	var i=new RegExp("[0-9]{11}");
	if(!i.test(what)) { alert("Il campo PARTITA IVA non è valido."); }
   }
   return true;
}


// VERIFICA CAP
function isCAP(what)
{
   var i=new RegExp("^[0-9]{5}$");
   if(!i.test(what)) { alert("Il campo CAP non è corretto."); return false }
   return true;
}

// VERIFICA CF
function isCF(what)
{
   var i=new RegExp("([a-zA-Z0-9]{16})");
   if(!i.test(what)) { alert("Il campo CODICE FISCALE non è valido."); return false }
   return true;
}

// VERIFICA Indirizzo
function isAddress(what,fname)
{
   var i=new RegExp("([a-zA-Z0-9\ ]{3,})");
   if(!i.test(what)) { alert("Il campo "+fname+" non è valido."); return false }
   return true;
}

// VERIFICA Data di nascita
function isDate(what,fname)
{
   var i=new RegExp("^([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})$");
   if(i.test(what))
   {
	datePart=what.split("/");
	giorno=(datePart[0]>=1) && (datePart[0]<=31);
	mese=(datePart[1]>=1) && (datePart[1]<=12);
	anno=(datePart[2]>=1900) && (datePart[2]<=9999);

	if(!giorno || !mese || !anno) { alert("Il campo "+fname+" non è valido."); return false }

   }
   else
   {
	alert("Il campo "+fname+" non è valido"); return false
   }
   return true;
}

// VERIFICA Titolare carta di credito
function isCCOwner(what)
{
   var i=new RegExp("([a-zA-Z\. ])");
   if(!i.test(what)) { alert("Il campo TITOLARE non è valido."); return false }
   return true;
}

// VERIFICA Numero carta di credito
function isCCNumber(what)
{
   var i=new RegExp("([0-9]{16,20})");
   if(!i.test(what)) { alert("Il campo NUMERO CARTA non è valido."); return false }
   return true;
}

// VERIFICA Scadenza carta di credito
function isCCExpiration(what)
{
   var i=new RegExp("([0-9]{1,2})/([0-9]{4})$");
   if(i.test(what))
   {
	datePart=what.split("/");
	mese=(datePart[0]>=1) && (datePart[0]<=12);
	anno=(datePart[1]>=1900) && (datePart[1]<=9999);

	if(!mese || !anno) { alert("Il campo SCADENZA CARTA non è valido."); return false }

   }
   else
   {
	alert("Il campo SCADENZA CARTA non è valido"); return false
   }
   return true;
}
