// JavaScript Document
function validazione(nomeform)
{

 //imposto la variabile che segnalerą l'errore
 var error=0;
 //prendo il contenuto html compreso nel mio form
 //var form_html=document.form1.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('input','textarea','select');

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

                 var test=x.item(i).attributes;
              
                 for(var a=test.length-1; a>=0; a--) 
                  {
        	       switch(test[a].name)
        	        {
        	          case "obbligatorio":  
        	            var 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;
               }


              //alert(campo + '<-->' + valore + '<-->' + obbligatorio + '<-->' + msg + '<-->' + tipo_dato + '<-->' + regex);

              if(obbligatorio==1 && valore=='')
               {
                   //alert(campo + '-> ' +msg);
				   alert(msg);
				   campo.focus();
                	error=1;
               }

              if(obbligatorio==1 && valore!='' && regex=='')
               {

                if(tipo_dato=='int' && isNaN(valore))
                  {
                   //alert(campo + '-> ' +msg);
				   alert(msg);
				   campo.focus();
                   error=1;
                  }
                if(tipo_dato=='char' && !isNaN(valore))
                  {
                   //alert(campo + '-> ' +msg);
				   alert(msg);
				   campo.focus();
                   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(msg);
				   campo.focus();
                   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();
   }

}//END