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("Devi inserire l'indirizzo e-mail");
        percorso.select();
        percorso.focus();
	return false
    }
}

function VerCap(percorso){
   var Cap=percorso.value;
   // controlla che la stringa non sia vuota
   if (Cap == ""){
      alert("Devi inserire il 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 campo Cap deve essere numerico");
         percorso.select();
         percorso.focus();
         return false;
      }
   }
   return true
}

function actionAj() {
	var pars = '';
		pars +=	'nome=' + $F('nome') + '&cognome=' + $F('cognome') + '&indirizzo=' + $F('indirizzo') + '&citta=' + $F('citta');
		pars += '&cap=' + $F('cap') + '&provincia=' + $F('provincia') + '&email=' + $F('email');
	if ($F('telefono') != '') {
		pars += '&telefono=' + $F('telefono');
	}
	if ($F('note') != '') {
		pars += '&note=' + $F('note');
	}
	/* Tipi di richiesta */
	/*if ($F('catalogo') != '') {
		pars += '&catalogo=' + $F('catalogo');
	}
	if ($F('rivenditore') != '') {
		pars += '&rivenditore=' + $F('rivenditore');
	}
	if ($F('altro') != '') {
		pars += '&altro=' + $F('altro');
	}
	*/
	new Ajax.Updater('contacts', './invia_mail.php', {method: 'post', parameters: pars, asynchronous:true});
}	

function Controlla() {

var re_emptyall = new RegExp("^[ ]*$");
var re_not_number = new RegExp("[^0-9]");

alert0 = "Devi selezionare almeno un tipo di richiesta";
alert1 = "Devi inserire il nome";
alert2 = "Devi inserire il cognome";
alert3 = "Devi inserire l'indirizzo";
alert4 = "Devi inserire la citta'";
alert5 = "Devi inserire il cap";
alert6 = "Devi inserire la provincia";
alert7 = "Devi inserire l'indirizzo e-mail";
alert8 = "Il campo telefono deve essere numerico";
alert9 = "Devi acconsentire all'informativa sulla privacy";
alert10 = "Devi inserire le note";

	// Controllo i valori dei checkbox (almeno uno deve essere selezionato...)
	/*
	if ( (document.forms[0].catalogo.checked != 1) && (document.forms[0].rivenditore.checked != 1) && (document.forms[0].altro.checked != 1) ) {
		alert(alert0);
		return false;
	}
	*/
	
	// Controllo il campo nome
	if ( (document.forms[0].nome.value == "") || (re_emptyall.test(document.forms[0].nome.value)) ) {
		alert(alert1);
		document.forms[0].nome.focus();
		return false;
	} 

	// Controllo il cognome
	if ( (document.forms[0].cognome.value == "") || (re_emptyall.test(document.forms[0].cognome.value)) ){
		alert(alert2);
		document.forms[0].cognome.focus();
		return false;
	}

	// Controllo l'indirizzo
	if ( (document.forms[0].indirizzo.value == "") || (re_emptyall.test(document.forms[0].indirizzo.value)) ){
		alert(alert3);
		document.forms[0].indirizzo.focus();
		return false;
	}
	
	// Controllo la cittā
	if ( (document.forms[0].citta.value == "") || (re_emptyall.test(document.forms[0].citta.value)) ){
		alert(alert4);
		document.forms[0].citta.focus();
		return false;
	}
	
	// Controllo il CAP
	if ( (document.forms[0].cap.value == "") || (re_emptyall.test(document.forms[0].cap.value)) ) {
		alert(alert5);
		document.forms[0].cap.focus();
		return false;
	}

	if (! VerCap(document.forms[0].cap) )  {
		document.forms[0].cap.focus();
		return false;
	}
	
	// Controllo la provincia
	if ( (document.forms[0].provincia.value == "") || (re_emptyall.test(document.forms[0].provincia.value)) ){
		alert(alert6);
		document.forms[0].provincia.focus();
		return false;
	}
	
	// Controllo il campo e-mail
	if ( (document.forms[0].email.value == "") || (re_emptyall.test(document.forms[0].email.value)) ) {
		alert(alert7);
		document.forms[0].email.focus();
		return false;
	}
	
	if (! VerificaEmail(document.forms[0].email)) {
		document.forms[0].email.focus();
		return false;
	}
	
	// Controllo il campo telefono nel caso in cui siano stati inseriti dei valori
	if (document.forms[0].telefono.value != "") {
		if (re_not_number.test(document.forms[0].telefono.value)) {
			alert(alert8);
			document.forms[0].telefono.focus();
			return false;
		}
	}
/*
	// Controllo il campo del prefisso
	if ( (document.forms[0].pref.value == "") || (re_emptyall.test(document.forms[0].pref.value)) ) {
		alert(alert3);
		document.forms[0].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;
	}


*/
	
	if ( (document.forms[0].note.value == "") || (re_emptyall.test(document.forms[0].note.value)) || (document.forms[0].note.value == "Tipo di richiesta") ) {
		alert(alert10);
		document.forms[0].note.focus();
		return false;
	}
	
	if (document.forms[0].accetto.checked != 1) {
		alert(alert9);
		return false;
	}
	
	actionAj();
}