// CONTROLLO FORM DI REGISTRAZIONE
// (C) Matteo Gattei 12/2001
function InizialeMaiuscola(stringa)
  {
	stringa=stringa.toLowerCase();
	var l=stringa.length;
	var car="";
	var maiuscolo=true;
	var risultato="";
	for (var i=0;i<l+1;i++)
		{
		car=stringa.charAt(i);	
		if (maiuscolo)
			{
			car=car.toUpperCase();
			maiuscolo=false;
			}
		if (car==" " || car=="'") maiuscolo=true;
		risultato+=car;
		}
	stringa=risultato;			
	return stringa;
  }

function check_registrazione(bnome,bnome_r,bcognome,bcognome_r,bindirizzo,bindirizzo_r,bcap,bcap_r,bcitta,bcitta_r,bprovincia,bprovincia_r,btelefono,btelefono_r,bemail,bemail_r,bpa,bcf_r,bragsoc_r,bpiva_r)
  {
   if (!document.registrazione.privacy.checked)
	{
		window.alert ("Per effettuare la registrazione e' necessario acconsentire al trattamento dei dati personali");
		return false;
	}

// Controllo Nome
   if (bnome=="T")
     {
		var nome=document.registrazione.nome.value;
		document.registrazione.nome.value=InizialeMaiuscola(nome)
		if (bnome_r=="T")
		  {
		   if (nome=="")
			{
			  window.alert ("Il campo NOME deve essere compilato !");
			  return false;
			}
		   if (nome.length<2 || nome.length>30)
			{
			  window.alert ("Il campo NOME deve essere di min. 2 e max. 30 caratteri !");
			  return false;
			}
		  }
	   }

// Controllo Cognome
   if (bcognome=="T")
     {
		var cognome=document.registrazione.cognome.value;
		document.registrazione.cognome.value=InizialeMaiuscola(cognome);
		if (bcognome_r=="T")
		  {
		   if (cognome=="")
			{
			  window.alert ("Il campo COGNOME deve essere compilato !");
			  return false;
			}
		   if (cognome.length<2 || cognome.length>30)
			{
			  window.alert ("Il campo COGNOME deve essere di min. 2 e max. 30 caratteri !");
			  return false;
			}
		  }
	  }
	   
// Controllo Indirizzo
   if (bindirizzo=="T")
     {
		var indirizzo=document.registrazione.indirizzo.value;
		document.registrazione.indirizzo.value=InizialeMaiuscola(indirizzo);
		if (bindirizzo_r=="T")
		  {
		   if (indirizzo=="")
			{
			  window.alert ("Il campo INDIRIZZO deve essere compilato !");
			  return false;
			}
		   if (indirizzo.length<6 || indirizzo.length>50)
			{
			  window.alert ("Il campo INDIRIZZO deve essere di min. 6 e max. 50 caratteri !");
			  return false;
			}
		  }
	  }
		   
// Controllo CAP
   if (bcap=="T" && bcap_r=="T")
     {
	   var cap=document.registrazione.cap.value;
	   if (cap=="")
		{
		  window.alert ("Il campo CAP deve essere compilato !");
		  return false;
		}
	   if (cap.length!=5)
		{
		  window.alert ("Il campo CAP deve essere di 5 numeri !");
		  return false;
		}
	   for (var i=0;i<6;i++)
		{
		  if (cap.charCodeAt(i)<48 || cap.charCodeAt(i)>57)
			{
			  window.alert ("Il campo CAP deve essere numerico !");
			  return false;
			}
		}
	  }

// Controllo Citta
   if (bcitta=="T")
     {
	   var citta=document.registrazione.citta.value;
	   document.registrazione.citta.value=InizialeMaiuscola(citta);
	   if (bcitta_r=="T")
	     {
		   if (citta=="")
			{
			  window.alert ("Il campo CITTA deve essere compilato !");
			  return false;
			}
		   if (citta.length<2 || citta.length>30)
			{
			  window.alert ("Il campo CITTA' dever essere di min. 2 e max. 30 caratteri !");
			  return false;
			}
		 }
	  }
	     
// Controllo Provincia
   if (bprovincia=="T")
     {
	   var provincia=document.registrazione.provincia.value;
	   document.registrazione.provincia.value=provincia.toUpperCase();
	   if (bprovincia_r=="T")
	     {
		   if (provincia=="")
			{
			  window.alert ("Il campo PROVINCIA deve essere compilato !");
			  return false;
			}
		   if (provincia.length!=2)
			{
			  window.alert ("Il campo PROVINCIA deve essere di 2 caratteri !");
			  return false;
			}
		   for (var i=0;i<3;i++)
			{
			  if (provincia.charCodeAt(i)<65 || provincia.charCodeAt(i)>90 && provincia.charCodeAt(i)<97 || provincia.charCodeAt(i)>122)
				{
				  window.alert ("Il campo PROVINCIA deve essere letterale !");
				  return false;
				}
			}
		 }
	 }
   
// Controllo TELEFONO
   if (btelefono=="T" && btelefono_r=="T")
     {
	   var telefono=document.registrazione.telefono.value;
	   if (telefono=="")
		{
			window.alert ("Il campo TELEFONO deve essere compilato !");
		return false;
		}
	   for (var i=0;i<6;i++)
		{
			if (telefono.charCodeAt(i)<48 || telefono.charCodeAt(i)>57)
			{
				window.alert ("Il campo TELEFONO deve essere numerico !");
				return false;
			}
		}
     }

// Controllo Email	 
   if (bemail=="T" || bemail_r=="T")
     {
	   var email=document.registrazione.email.value;
	   var flag_at,flag_dot;
	   if (email=="")
		{
			window.alert ("Il campo E-MAIL deve essere compilato !");
		return false;
		}
	   if (email.length<7 || email.length>50)
		{
			window.alert ("Il campo E-MAIL non &egrave; valido !");
		return false;
		}
	   flag_at=false;
	   flag_dot=false;
	   for (var j=0;j<51;j++)
		{
			if (email.charAt(j)=="@")
			{
			flag_at=true;
			}
			if (email.charAt(j)==".")
			{
			flag_dot=true;
					}
			}
	   if (flag_at==false || flag_dot==false)
		{
			window.alert ("Il campo E-MAIL deve contenere i caratteri @ e .");
		return false;
		}
	   document.registrazione.email.value=email.toLowerCase();
     }
	 
// Controllo se Privato o Azienda
   if (bpa=="T")
     {
		if (document.registrazione.tipo[0].checked)
		  {
			var privato=true;
		  }
		else    
		  {
			var privato=false;
		  }

		if (privato)
		  {
			// window.alert ("Tipo utente PRIVATO");
			// return false;
			if (bcf_r=="T")
			  {
				var cf=document.registrazione.codice_fiscale.value;
				var posizionelettera=false;
				var posizionenumero=false;
				var ok=0;
				if (cf.length!==16)
					{
					if (cf=="") window.alert ("Inserire il Codice Fiscale !")
					else window.alert ("Il Codice Fiscale deve essere di 16 caratteri !");
					return false;
					}
				for (i=1;i<17;i++)
					{
					var lettera=false;
					if (cf.charCodeAt(i-1)>64 && cf.charCodeAt(i-1)<91 || cf.charCodeAt(i-1)>96 && cf.charCodeAt(i-1)<123) lettera=true;
					var numero=false;
					if (cf.charCodeAt(i-1)>47 && cf.charCodeAt(i-1)<58) numero=true;
					if (lettera)
						{
						posizionelettera=false;
						if (i<7 || i==9 || i==12 || i==16) posizionelettera=true;
						}
					if (numero)
						{
						posizionenumero=false;
						if (i>6 && i<9 || i>9 && i<12 || i>12 && i<16) posizionenumero=true;
						}
					if (lettera && posizionelettera || numero && posizionenumero) ++ok;
					if (ok==16) {
								document.registrazione.codice_fiscale.value=cf.toUpperCase();
								return true;
								}
					}
				window.alert ("Il Codice Fiscale &egrave; errato !");
				return false;
			  }
		  }
		else  // tipo azeinda
		  {
			if (bragsoc_r=="T")
			  {
				// Controllo Ragione sociale
				var ragione_sociale=document.registrazione.ragione_sociale.value;
				if (ragione_sociale=="")
				  {
					window.alert ("Il campo RAGIONE SOCIALE deve essere compilato !");
					return false;
				  }
				if (ragione_sociale!="")
				  {
					document.registrazione.ragione_sociale.value=InizialeMaiuscola(ragione_sociale)
					if (ragione_sociale.length<2 || ragione_sociale.length>30)
					  {
						window.alert ("Il campo RAGIONE SOCIALE' deve essere di min. 2 e max. 30 caratteri !");
						return false;
					  }
				  }
			  }
			  
			if (bpiva_r=="T")
			  {
				// Controllo Partita Iva
				var partita_iva=document.registrazione.partita_iva.value;
				if (partita_iva=="")
				  {
					window.alert ("Il campo PARTITA IVA deve essere compilato !");
					return false;
				  }
				if (partita_iva.length!=11)
				  {
					window.alert ("Il campo PARTITA IVA deve essere di 11 numeri !");
					return false;
				  }
				for (var i=0;i<6;i++)
				  {
					if (partita_iva.charCodeAt(i)<48 || partita_iva.charCodeAt(i)>57)
					  {
						window.alert ("Il campo PARTITA IVA deve essere numerico !");
						return false;

					  }
				  }
			  }
		  }  // fine tipo privato o azienda
	  }  // fine if bpa
  return true;
  }
