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))
      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;
   }
function codiceFISCALE(cfins)
   {
   var cf = cfins.toUpperCase();
   var cfReg = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
   if (!cfReg.test(cf))
      return false;
   var set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
   var set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
   var setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
   var setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
   var s = 0;
   for( i = 1; i <= 13; i += 2 )
      s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
   for( i = 0; i <= 14; i += 2 )
      s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
   if ( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
      return false;
   return true;
   }
function ControllaMail(MailToCheck)
   {
   Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
   return Filtro.test(MailToCheck)
   }
function Valida(tipo)
   {
      if ( !ControllaMail(document.registerform.mail.value) )
      {
      alert("L'indirizzo e-mail inserito non e' esatto");
      return false;
      }
	  if (tipo == 1) {
		  if (document.registerform.username.value.length<6)
		  {
		  alert("Il campo user deve essere almeno di 6 caratteri");
		  return false;
		  }    
		  if ((document.registerform.psw.value.length<6) || (document.registerform.psw1.value.length<6))
		 {
		  alert("Il campo password deve essere almeno di 6 caratteri");
		  return false;
		  }
	  }
	  if (document.registerform.nome.value.length<3)
	  {
      alert("Il campo nome deve essere almeno di 3 caratteri");
      return false;
      }  
	  if (document.registerform.cognome.value.length<3)
	  {
      alert("Il campo cognome deve essere almeno di 3 caratteri");
      return false;
      }  
	  if (document.registerform.via.value.length<6)
	  {
      alert("Il campo indirizzo deve essere almeno di 6 caratteri");
      return false;
     }
	   if (document.registerform.cap.value.length!=5)
	  {
      alert("Il campo CAP deve essere di 5 caratteri");
      return false;
      }  
	  if (document.registerform.citta.value.length<3)
	  {
      alert("Il campo citta' deve essere almeno di 3 caratteri");
      return false;
      }  
	  if (document.registerform.provincia.value.length!=2)
	  {
      alert("Il campo provincia deve essere di 2 caratteri");
      return false;
      }  
	  if (document.registerform.tel.value.length<6)
   	  {
      alert("Il recapito telefonico deve essere almeno di 6 caratteri");
      return false;
      }
	  var CFok=codiceFISCALE(document.registerform.codicefiscale.value)
  	  if (CFok==false)
      {
      alert("Il campo Codice Fiscale e' errato");
      return false;
      }
	  if (document.registerform.piva.value.length>0)
	  {
		  if (document.registerform.ragionesociale.value.length<3)
		  {
		  alert("Il campo ragione sociale deve essere almeno di 3 caratteri");
		  return false;
		  }
		  if (document.registerform.sedelegale.value.length<3)
		  {
		  alert("Il campo sede legale deve essere almeno di 3 caratteri");
		  return false;
		  }
		  var PIvaOk=partitaIVA(document.registerform.piva.value)
		  if (PIvaOk==false)
		  {
		  alert("Il campo Partita IVA e' errato");
		  return false;
		  }
	  }
	  var numero = document.registerform.chk.value;
      if (numero.search(/^\d+$/)==-1)
   	  {
      alert("Non hai inserito un numero intero positivo nel campo ANTISPAM");
      return false;
      }
	  if (tipo == 1) {
		  if (document.registerform.informativa.checked==false)
		  {
		  alert('Non hai preso visione della nota informativa');
		  return false;
		  }
	  }
   return true;
}