function validazione(nomeform)
{ 
 //imposto la variabile che segnalerą l'errore
 var error=0;
 var msgError = "";
 //prendo il contenuto html compreso nel mio form
 var form_html=document.forms[nomeform].innerHTML;
 
 //controllo che il browser supporti questo tipo di funzione
 if(document.getElementsByTagName)
 {
   //predispongo un array con tutti i possibili elementi che conterrą la form
   var tipo_dati=new Array('select','textarea','input');

   for(j=0; j < tipo_dati.length; j++)
   {
        var x=document.getElementsByTagName(tipo_dati[j]);
        
        for(i=0; i <x.length; i++)
        {
            var campo=x.item(i).name;
            
            //controllo che il nome del campo sia impostato
            if (campo!='')
            {
                //istruzione uguale per entrambi i browser
                var valore=x.item(i).value;
             
                if(navigator.appName.indexOf("Netscape")>=0 || navigator.appName.indexOf("Opera")>=0)
                {
                    var test=x.item(i).attributes;
                    for(var a=test.length-1; a>=0; a--) 
                    {
                        switch(test[a].name)
                        {
                            case "obbligatorio":  
                                obbligatorio=test[a].value; 
        	                break;
        	                case "msg_errore":
        	                    var msg=test[a].value;       	             
        	                break;
        	                case "dato":
        	                    var tipo_dato=test[a].value;
        	                break;
        	                case "regex":
        	                    var regex=test[a].value;
        	                break;
        	            }
        	        }
                }
                else
                {
                    var obbligatorio=x.item(i).obbligatorio;
                    var msg=x.item(i).msg_errore;
                    var tipo_dato=x.item(i).dato;
                    var regex=x.item(i).regex;
                }
               
                if(obbligatorio==1 && valore=='')
                {
                    //alert(campo + '-> ' + msg);
				    msgError += msg+"\n";
                    error=1;
                }
                else if(obbligatorio==1 && valore=='none') 
                {
                    //alert(campo + '-> ' + msg);
				    msgError += msg+"\n";
                    error=1;
                }

                if(obbligatorio==1 && valore!='' && regex!='')
                {
                    //prendo il pattern passato dal mio elemento HTML
                    var pattern=new RegExp(regex);
                    var result=valore.search(pattern);

                    if(result!=0)
                    {
                        //alert(campo + '-> ' +msg);
				        msgError += msg+"\n";
                        error=1;
                    }
                }

           }//campo

       }//for i

     }//for j

  }
 else
  {
    alert('Il tuo browser non supporta questo tipo di funzione');
    return false;
  }

  //Se tutto č andato a buon fine invia la form
  if(error==0)
   {
     document.forms[nomeform].submit();
   } else {
	alert("ATTENZIONE CONTROLLARE I SEGUENTI CAMPI:\n\n"+msgError);
   }

}//END
