// 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)
  {

// 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 pattern_cf = /^[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$/;
				if (cf.search(pattern_cf) == -1)
				  {
				    window.alert ("Il Codice Fiscale non e' corretto.");
					return false;
				  }
				else
				  {
					document.registrazione.codice_fiscale.value=cf.toUpperCase();
				  }
			  }
		  }
		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

// Controllo CAPTCHA
   var check_code=document.registrazione.check_code.value;
   if (check_code=="")
	{
		window.alert ("Inserisci il codice di controllo che vedi nell'immagine.");
		return false;
	}
// Controllo checkbox Privacy
   if (!document.registrazione.privacy.checked)
	{
		window.alert ("Per effettuare la registrazione e' necessario acconsentire al trattamento dei dati personali");
		return false;
	}

  return true;
  }