function controlla_form(dati){
   //controllo se i campi obbligatori sono riempiti
   var numero=dati.length;
   obbligo=new Array('0','1','2','4','5','8');
   nome_campo=new Array ('Cognome','Nome','Indirizzo','Località','Telefono','E-mail')
   limite=obbligo.length   
   for (i=0; i<limite; i++) {
     campo=dati[obbligo[i]]
     if (testBlank(campo)==true){
         nome="<"+nome_campo[i]+">"         
         alert ("il campo "+nome+" è obbligatorio.")
         campo.focus()
         return false;
      }   
   }  
   
   //controllo se i campi definiti come sole lettere sono conformi
   obbligo_l=new Array('0','1','4');
   nome_campo_l=new Array ('Cognome','Nome','Località');
     limite=obbligo_l.length    
     for (i=0; i<limite; i++) {
        campo_l=dati[obbligo_l[i]]     
        /*siccome i campi obbligatori sono stati controllati se un campo è vuoto non è obbligatorio
         per cui và controllato solo se non è vuoto*/
        if (testBlank(campo_l)==false){  
           if (isLegal(campo_l.value,LETTERE)==false){
              nome="<"+nome_campo_l[i]+">"
              alert ("il campo "+nome+" può contentere solo i seguenti caratteri:<"+LETTERE+">")
              campo_l.focus()
              return false;
           }   
        }
    }  
   //controllo se i campi definiti come lettere , numeri, simboli  sono conformi
   obbligo_lns=new Array('2','8');
   nome_campo_lns=new Array ('Indirizzo','E-mail');
     limite=obbligo_lns.length
     for (i=0; i<limite; i++) {
        campo_lns=dati[obbligo_lns[i]]     
        /*siccome i campi obbligatori sono stati controllati se un campo  è vuoto non è obbligatorio
         per cui và controllato solo se non è vuoto*/
        if (testBlank(campo_lns)==false){  
           if (isLegal(campo_lns.value,LETTERE_NUMERI_SIMBOLI)==false){
              nome="<"+nome_campo_lns[i]+">"
              alert ("il campo "+nome+" può contentere solo i seguenti caratteri:<"+LETTERE_NUMERI_SIMBOLI+">")
              campo_lns.focus()
              return false;
           }   
        }
    }  
   //controllo se i campi definiti come numeri sono conformi
   obbligo_n=new Array('3');
   nome_campo_n=new Array ('C.a.p.');
     limite=obbligo_n.length
     for (i=0; i<limite; i++) {
        campo_n=dati[obbligo_n[i]]     
        /*siccome i campi obbligatori sono stati controllati se un campo  è vuoto non è obbligatorio
         per cui và controllato solo se non è vuoto*/
        if (testBlank(campo_n)==false){  
           if (isLegal(campo_n.value,NUMERI)==false){
              nome="<"+nome_campo_n[i]+">"
              alert ("il campo "+nome+" può contentere solo i seguenti caratteri:<"+NUMERI+">")
              campo_n.focus()
              return false;
           }   
        }
    }
   //controllo se i campi definiti come telefono  sono conformi
   obbligo_t=new Array('5','6','7');
   nome_campo_t=new Array ('Telefono','Fax','Cellulare');
     limite=obbligo_t.length    
     for (i=0; i<limite; i++) {
        campo_t=dati[obbligo_t[i]]     
        /*siccome i campi obbligatori sono stati controllati se un campo  è vuoto non è obbligatorio
         per cui và controllato solo se non è vuoto*/
        if (testBlank(campo_t)==false){  
           if (isLegal(campo_t.value,TELEFONO)==false){
              nome="<"+nome_campo_t[i]+">"
              alert ("il campo "+nome+" può contentere solo i seguenti caratteri:<"+TELEFONO+">")
              campo_t.focus()
              return false;
           }   
        }
    }
  /*siccome i campi obbligatori sono stati controllati se un campo  è vuoto non è obbligatorio
  per cui và controllato solo se non è vuoto*/
  if (testBlank(dati.email)==false){  
     if (controllaMail(dati.email)==false){
        dati.email.focus()
        return false;
     }
   }  
}

