

function validaFormV2(nomeform,listacontrolli) 
{
		//ogni elemento del vettore è così formato (es:"id,nome,testo,dato,");
		//0 = id (univoco)
		//1 = nome del controllo (descrittivo)
		//2 = testo da mostrare in caso di non validazione 
		//3 = tipo di validazione (data, mail etc.) 
		//4 = parametri del validatore (possono essere tanti)
		/*
		valori ritornati :
		false = il dato non è valido 
		true  = il dato è valido 
		
		descrizione algoritmo (base) :
		1-ciclo il vettore di controlli 
		2-per ogni controllo verifico 
			2.1- se è vuoto 
			2.2- se è  un tipo particolare 
				 delega alle altre funzioni che controllano il formato 
				 (data, mail ecc.) 
			
		*/
		var pos_id,pos_nome,pos_testo,pos_tipodato;
		var bret,salert;
		pos_id = 0;
		pos_nome = 1;
		pos_testo = 2;
		pos_tipodato = 3;
		pos_extra = 4;

    /*
    server per avere compatibilità verso le altre
    versioni
    se listacontrolli == null 
    siggnifica che non è stato passato nomeform
    (codice vecchio)
    quindi il form non ha nome do per scontato
    che sia solo uno e lo metto a zero.
    */
		if (listacontrolli == null)
		{
      listacontrolli = nomeform;
      nomeform = 0;
    }
					

			
			for (var i=0; i<listacontrolli.length; i++) {
					var obj = 	listacontrolli[i].split(",");
					
					var ctrl = document.forms[nomeform].elements[obj[pos_id]];
          		
           		
					salert = obj[pos_testo]; //testo di alert
          
					if (ctrl.value == "")  bret = false;
          else
					if (ctrl.value != "") { //non è vuoto verifico che tipo di dato è 

							if (obj[pos_tipodato] != "") 
              {  //se è un tipo particolare delega ...
								switch (obj[pos_tipodato]) 
                {
									case 'data': 
									bret = validaData(ctrl.value);
									break;
									
									case 'mail':
									bret = validaMail(ctrl.value);
									break;
									
									case 'radio':
									bret = validaRadioBtn(ctrl,obj[pos_extra]);
									break;
									
									case 'validaUPE':
									//User - Password - Email
									//recupero tutti i parametri (parte da pos_extra  )
									url_userid =  obj[pos_extra];
                  userid =  document.forms[nomeform].elements[obj[pos_extra+1]];
									
									url_password =  obj[pos_extra+2];
									password =  document.forms[nomeform].elements[obj[pos_extra+3]];

                  url_email =  obj[pos_extra+4];
									email =  document.forms[nomeform].elements[obj[pos_extra+5]];
                  
                  file = obj[pos_extra+6];
                  alertUser = obj[pos_extra+7];
                  alertMail = obj[pos_extra+8];

									ret = validaUserPassEmail(url_userid,userid.value,url_password,password.value,url_email,email.value,file,alertUser,alertMail);
									return ret;
                  break;

									case 'validaUserPass':
									//User - Password - 
									//recupero tutti i parametri (parte da pos_extra  )
									url_userid =  obj[pos_extra];
                  userid =  document.forms[nomeform].elements[obj[pos_extra+1]];
									
									url_password =  obj[pos_extra+2];
									password =  document.forms[nomeform].elements[obj[pos_extra+3]];

                  url_id =  obj[pos_extra+4];
									id =  document.forms[nomeform].elements[obj[pos_extra+5]];
                  
                  file = obj[pos_extra+6];
                  alertUser = obj[pos_extra+7];

									ret = validaUserPass(url_userid,userid.value,url_password,password.value,url_id,id.value,file,alertUser);
									return ret;
                  break;



								}
							}
					}
					
				  	
					if (bret == false) //mostra il messaggio
          {  
						alert(salert);
						return bret;
					}
					
			  }// for 
		return true;
}
