function VerificaEmail(percorso){
   var cont1=0;
   var cont2=0;
   var dom=""
   var mail=percorso.value;
   if (mail != ""){

      // controlla che vengano inseriti i caratteri @ e .
      if ((mail.indexOf('@', 0) == -1) || (mail.indexOf('.', 0) == -1)){
         alert("L'indirizzo e-mail č errato");
         percorso.select();
         percorso.focus();
         return false
      } else {
	  //controlla che dopo il carattere @ ci sia un punto
          for (var i=0; i<mail.length; i++){
            var ch=mail.substring(i, i+1);
	    //controlla che non vengano inseriti spazi
            if (ch == " "){cont2++}

            if (ch == "@"){
	       //controllo per verificare la presenza di almeno un carattere prima di @
	       if (i<1){cont2++}
               cont2++;
	       for (var n=i; n<mail.length; n++){
                 var ch2=mail.substring(n, n+1);
		 dom+=ch2;
                 if (ch2 == "."){
		    //almeno un carattere prima del punto
		    if (n==(i+1)){cont2++}
		    cont1=1;
		    dom="";
		 }
              }
            }
          }
          if ((cont1==1) && (cont2==1) && (dom.length>1) && (dom.length<=4)) {return true}
          else {
             alert("L'indirizzo e-mail č errato");
             percorso.select();
             percorso.focus();
             return false
          }
        }
     } else {
        alert("La scheda personale di registrazione non č corretta\ncompleta il campo Indirizzo e-mail");
        percorso.select();
        percorso.focus();
	return false
    }
}

function VerificaPrefisso(percorso){
   var pref=percorso.value;
   // controlla che la stringa non sia vuota
   if (pref == ""){
      alert("La scheda personale di registrazione non č corretta\ncompleta il campo Prefisso telefonico");
      percorso.select();
      percorso.focus();
      return false;
   }
   // controlla che la stringa sia di almeno 2 caratteri
   if ((pref.length < 2) || (pref.length >5)){
      alert("Prefisso errato");
      percorso.select();
      percorso.focus();
      return false;
   }
   // controlla che vengano inseriti solo numeri
   for (var i=0; i<pref.length; i++){
      var ch=pref.substring(i, i+1);
      if ((ch < "0") || (ch > "9")){
         alert("Prefisso errato");
         percorso.select();
         percorso.focus();
         return false;
      }
   }
   return true;
}

function VerificaTelefono(percorso){
   var tel=percorso.value;
   // controlla che la stringa non sia vuota
   if (tel == ""){
      alert("La scheda personale di registrazione non č corretta\ncompleta il campo Numero telefonico");
      percorso.select();
      percorso.focus();
      return false;

   }
   // controlla che la stringa sia maggiore di 3 caratteri e minore di 9
   if ((tel.length < 4) || (tel.length > 9)) {
      alert("Numero di telefono errato");
      percorso.select();
      percorso.focus();
      return false;
   }
   // controlla che vengano inseriti solo numeri
   for (var i=0; i<tel.length; i++){
      var ch=tel.substring(i, li+1);
      if ((ch < "0") || (ch > "9")){
         alert("Numero di telefono errato");
         percorso.select();
         percorso.focus();
         return false;
      }
   }
   return true;
}

function VerProv(percorso){
   Prov=percorso.value;
   if (Prov == ""){
      alert("Completa il campo Provincia");
      percorso.focus();
      return false;
   } else
   if (Prov.length != 2 ){
      alert("Inserire la sigla della provincia");
      percorso.select();
      percorso.focus();
      return false;
   } else {
      for (var i=0; i<Prov.length; i++){
         var ch=Prov.substring(i, i+1);
         if ((ch < "a") || (ch > "z")){
            if ((ch < "A") || (ch > "Z")){
              alert("La sigla della provincia č errata");
              percorso.select();
              percorso.focus();
              return false;
            }
         }
      }
      return true
   }

}

function VerCap(percorso){
   var Cap=percorso.value;
   // controlla che la stringa non sia vuota
   if (Cap == ""){
      alert("Completa il campo CAP");
      percorso.select();
      percorso.focus();
      return false;
   }  else
   // controlla che la stringa sia di almeno 2 caratteri
   if ((Cap.length > 5 ) || (Cap.length < 4)){
      alert("Il CAP č errato");
      percorso.select();
      percorso.focus();
      return false;
   }
   // controlla che vengano inseriti solo numeri
   for (var i=0; i<Cap.length; i++){
      var ch=Cap.substring(i, i+1);
      if ((ch < "0") || (ch > "9")){
         alert("Il CAP deve contenere solo numeri");
         percorso.select();
         percorso.focus();
         return false;
      }
   }
   return true
}

function Controlla() {

var re_emptyall = new RegExp("^[ ]*$");
var re_not_number = new RegExp("[^0-9]");

alert1 = "Devi inserire il nome";
alert2 = "Devi inserire il cognome";
alert3 = "Devi inserire il prefisso";
alert4 = "Devi inserire il telefono";
alert5 = "Devi inserire la richiesta";
alert6 = "Devi acconsentire all'informativa sulla privacy";
alert7 = "L'etā deve essere un numero";

alert8 = "Devi inserire l'indirizzo";
alert9 = "Devi inserire il numero civico";
alert10 = "Devi inserire il CAP";
alert11 = "Devi inserire la cittā";
alert12 = "Devi inserire la provincia";
alert13 = "Devi selezionare almeno un Catalogo";

alertMailing = "Per iscriverti alla newsletter\n devi inserire l'indirizzo e-mail";

	// Controllo il campo e-mail
	if (document.forms[1].email.value != "") {
		if (! VerificaEmail(document.forms[1].email)) {
			return false;
		}
	}
	
	// Controllo il campo del prefisso
	if ( (document.forms[1].pref.value == "") || (re_emptyall.test(document.forms[1].pref.value)) ) {
		alert(alert3);
		document.forms[1].pref.focus();
		return false;
	}

	// Controllo il campo del telefono
	if ( (document.forms[1].tel.value == "") || (re_emptyall.test(document.forms[1].tel.value)) ) {
		alert(alert4);
		document.forms[1].tel.focus();
		return false;
	}
	
	// Controllo il campo nome
	if ( (document.forms[1].nome.value == "") || (re_emptyall.test(document.forms[1].nome.value)) ) {
		alert(alert1);
		document.forms[1].nome.focus();
		return false;
	} 

	// Controllo il cognome
	if ( (document.forms[1].cognome.value == "") || (re_emptyall.test(document.forms[1].cognome.value)) ){
		alert(alert2);
		document.forms[1].cognome.focus();
		return false;
	}

	// Controllo etā se compilato
	if (document.forms[1].eta.value != "") {
		if (re_not_number.test(document.forms[1].eta.value)) {
			document.forms[1].eta.focus();
			alert(alert7);
			return false;
		}
	}

// SEZIONE INDIRIZZO...
// Controllo del campo via
  if ( (document.forms[1].via.value == "") || (re_emptyall.test(document.forms[1].via.value)) )
  {
    alert(alert8);
    document.forms[1].via.focus();
	return false;
  }
// Fine controllo del campo via

// Controllo campo civico
  if ( (document.forms[1].num.value == "") || (re_emptyall.test(document.forms[1].num.value)) )
  {
    alert(alert9);
    document.forms[1].num.focus();
	return false;
  }
// Fine controllo campo civico

// Controllo campo CAP
  if (! VerCap(document.forms[1].cap)) {
	  return false;
  }
// Fine campo CAP

// Controllo campo localitā
  if ( (document.forms[1].citta.value == "") || (re_emptyall.test(document.forms[1].citta.value)) )
  {
    alert(alert11);
    document.forms[1].citta.focus();
    return false;
  }
// Fine controllo campo localitā


// Controllo campo provincia
  if (document.forms[1].prov.value == "") {
      alert(alert12);
      document.forms[1].prov.focus();
	  return false;
  }
// Fine controllo campo provincia
	
	// Controllo il CAP
/*	if (document.forms[1].cap.value != "") {
		if (! VerCap(document.forms[1].cap) )  {
			document.forms[1].cap.focus();
			return false;
		}
	}
*/
// Controllo dei cataloghi
	if ( (document.forms[1].cat_bofrost.checked != 1) && (document.forms[1].cat_vinali.checked != 1) ) {
		alert(alert13);
		return false;
	}
// Fine controllo dei cataloghi

	// Se ho segnato anche il checkbox della mailing list.. 
	// devo controllare che il campo mail sia compilato
	if (document.forms[1].mailing.checked == 1)	{
		if ( (document.forms[1].email.value == "") || (re_emptyall.test(document.forms[1].email.value)) ) {
			alert(alertMailing);
			document.forms[1].email.focus();
			return false;
		}
	
		if (! VerificaEmail(document.forms[1].email)) {
			return false;
		}
	} // end if check mailing list


	if (document.forms[1].accetto.checked != 1) {
		alert(alert6);
		return false;
	}
	
}
