  function controllaPartitaIVA(laForm, nomecampo) {
    var esito=true;
    lungpiva=11;
    if(nomecampo.value.length == 11) {
      controllaSoloNumerico(laForm,nomecampo);
    }
    else esito = false;
    if(!esito){
      alert('Attenzione la '+estraiEtichettaCampo(nomecampo)+' deve essere lunga '+lungpiva+' cifre!!');
      setFocus(laForm, nomecampo);
      nomecampo.value="";      
    }
    return esito;
  }

  function controlloCodiceFiscale (laForm, nomecampo) {
    var carattericonsentiti = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    var esito=true;
    var trovato=false;
    var codfisc = nomecampo.value;
    etichettacampo = estraiEtichettaCampo(nomecampo);
    if(codfisc.length == 16) {

      // controlo la validità dei caratteri relativi al cognome e nome
      for (i=0;i<6;i++)  {
        for (j=0;j < carattericonsentiti.length;j++){
          if (codfisc.charAt(i) == carattericonsentiti.charAt(j)) {trovato=true;}
          if(trovato){j=carattericonsentiti.length;}
        }
        if(!trovato){
          esito=trovato;
          i=6;
        }
        trovato=false;
      }

      // controllo la validità dei caratteri relativi all'anno di nascita
      if(isNaN(codfisc.substring(6, 8))) esito=false;
      else if(!( ((codfisc.substring(6, 8))>=0) && ((codfisc.substring(6, 8))<=99) )) esito = false;

      // controllo il carattere relativo al mese di nascita

      trovato=false;
      for (j=0;j < carattericonsentiti.length;j++){
        if (codfisc.charAt(8) == carattericonsentiti.charAt(j)) {trovato = true;}
        if(trovato){j=carattericonsentiti.length;}
      }
      if(!trovato) esito=trovato;

      // controllo del giorno di nascita
      if(isNaN(codfisc.substring(9, 11))) esito=false;
      else if(!( ((codfisc.substring(9, 11))>=0) && ((codfisc.substring(9, 11))<=71) )) esito = false;

      // controllo il 12° carattere
      trovato=false;
      for (j=0;j < carattericonsentiti.length;j++){
        if (codfisc.charAt(11) == carattericonsentiti.charAt(j)) {trovato = true;}
        if(trovato){j=carattericonsentiti.length;}
      }
      if(!trovato) esito=trovato;

      // controllo i penultimi 3 numeri
      if(isNaN(codfisc.substring(12, 15))) esito=false;

      // controllo l'utlimo carattere
      trovato=false;
      for (j=0;j < carattericonsentiti.length;j++){
        if (codfisc.charAt(15) == carattericonsentiti.charAt(j)) {trovato = true;}
        if(trovato){j=carattericonsentiti.length;}
      }
      if(!trovato) esito=trovato;
    }
    else esito = false;
    if(!esito){
      alert('Attenzione!!\n\n\''+codfisc+'\' come valore del campo '+etichettacampo+' non è corretto');
      setFocus(laForm, nomecampo);
      nomecampo.value="";
    }
    return esito;
  }

  function concatenaData(giorno,mese,anno,laForm,hiddendata){
    separatore="/";
    if((!(giorno.value.length==0)) && (!(giorno.value.length==0)) && (!(giorno.value.length==0))){
        laForm.elements[estraiIndiceCampo(laForm, hiddendata)].value=giorno.value+separatore+mese.value+separatore+anno.value;
    }
    else{
        if((giorno.value.length==0) || (giorno.value.length==0) || (giorno.value.length==0)){
            laForm.elements[estraiIndiceCampo(laForm, hiddendata)].value="";
        }
    } 
  }

  function controllaAnnoBisesto(laForm, nomecampogiorno, nomecampomese, nomecampoanno) {
    var esito=true;
    var year = 0;
    if((!(nomecampogiorno.value.length==0)) && (!(nomecampomese.value.length==0)) && (!(nomecampoanno.value.length==0))){
        if(nomecampomese.value == 2) {
          var year = eval(nomecampoanno.value);
          var resto = (year-(400*(parseInt(year/400))));
          var resto1 = (year-(100*(parseInt(year/100))));
          var resto2 = (year-(4*(parseInt(year/4))));

          if ( resto==0 || (resto1!=0 && resto2==0)) {
            if (!(nomecampogiorno.value<=29)) esito=false;
          } else if (!(nomecampogiorno.value<=28)) esito=false;
        }

        if(nomecampomese.value == "01" ||
          nomecampomese.value == "03" ||
          nomecampomese.value == "05" ||
          nomecampomese.value == "07" ||
          nomecampomese.value == "08" ||
          nomecampomese.value == "10" ||
          nomecampomese.value == "12")
        {
          if (!(nomecampogiorno.value<=31)) esito=false;
        }

        if(nomecampomese.value == "04" ||
          nomecampomese.value == "06" ||
          nomecampomese.value == "09" ||
          nomecampomese.value == "11")
        {
          if (!(nomecampogiorno.value<=31)) esito=false;
        }
    }
    return esito;
  }

  function controllaAnno(laForm, nomecampo) {
    var esito=true;
    if(isNaN(nomecampo.value)) {esito=false;}
    else {
      if(!(nomecampo.value>=1870)){esito=false;}
    }
    if(!esito){
      alert('Attenzione: anno non corretto:'+nomecampo.value+'\n\nSuggerimento: inserire un valore numerico più realistico!!');
      setFocus(laForm, nomecampo);
      nomecampo.value="";
    }
    return esito;
  }

  function controllaMese(laForm, nomecampo){
    var esito=true;
    if(isNaN(nomecampo.value)) {esito=false;}
    else {
      if(!((nomecampo.value<=12) && (nomecampo.value>=1))){esito=false;}
    }
    if(!esito){
      alert('Attenzione: mese non corretto:'+nomecampo.value+'\n\nSuggerimento: inserire un valore numerico tra 1 e 12!!');
      setFocus(laForm, nomecampo);
      nomecampo.value="";
    }
    return esito;
  }

  function controllaGiorno(laForm, nomecampo){
    var esito=true;
    if(isNaN(nomecampo.value)) {esito=false;}
    else {
      if(!((nomecampo.value<=31) && (nomecampo.value>=1))) { esito=false;}
    }
    if(!esito){
      alert('Attenzione: giorno non corretto:'+nomecampo.value+'\n\nSuggerimento: inserire un valore numerico tra 1 e 31!!');
      setFocus(laForm, nomecampo);
      nomecampo.value="";
    }
    return esito;
  }

  function inserisciImmagine(imgfile, dimwlogo, dimhlogo){
    document.write("<img src="+imgfile+" width="+dimwlogo+" height="+dimhlogo+">");
  }

  function proiettaIMGSito(){
    inserisciImmagine(logo, "70", "25");
  }

  function proiettaIMGObbligatoria(nomecampo){
    var i=0;
    if(nomecampo!=null){
      while(i<numerocampi){
        if(nomecampo==campi[i][0]){
          if(campi[i][1]=='S'){inserisciImmagine(imgobbligat, dimwlogo, dimhlogo);}
        }
        i++;
      }
    }else{inserisciImmagine(imgobbligat, dimwlogo, dimhlogo);}
  }

  function proiettaErrore(nomecampo){
    alert('              Attenzione!!\n\nIl campo '+nomecampo+' è obbligatorio');
  }

  function estraiIndiceCampo(laForm, nomecampo){
    var i=0;
    var trovato=false;
    while((i<laForm.elements.length) && (!trovato)){
      if(laForm.elements[i].name==nomecampo.name) trovato=true;
      else i++;
    }
    return i--;
  }

  function estraiEtichettaCampo(nomecampo){
    var i=0;
    var trovato=false;
    while((i<numerocampi) && (!trovato)){
      if(campi[i][0]==nomecampo.name) trovato=true;
      else i++;
    }
    etichetta = campi[i][2];
    return etichetta;
  }

  function estraiIndicePrimoCampoText(laForm){
    var i=0;
    var trovato=false;
    while((i<laForm.elements.length) && (!trovato)){
      if(laForm.elements[i].type=='text') trovato=true;
      else i++;
    }
    return i;    
  }

  function controllaSoloAlfabetico(nomecampo){
    var esito=true;
    var appoggio=nomecampo.value;
    var carattere="";
    for(i=0;i<appoggio.length;i++){
      carattere=appoggio.substring(i,i+1);
      if(!(isNaN(carattere)) && (carattere!=' ')) {esito=false;}
    }
    if(controllaNoSinboli(nomecampo)) esito=false;
    return esito;
  }

  function controllaNoSinboli(nome){
    var esito=true;
    if ((nome.value.indexOf("%")==-1) &&
      (nome.value.indexOf("$")==-1) &&
      (nome.value.indexOf("!")==-1))
    {
      esito=false;
    }
    return esito;
  }

  function controllaTestoAlfa(laForm, nomecampo){
    var errore=false;
    etichettacampo = estraiEtichettaCampo(nomecampo);
    if((errore==false) && ((nomecampo.value.length==0) || (nomecampo.value==msginserisci) || (nomecampo.value==msgcorreggi))){
      proiettaErrore(etichettacampo);
      nomecampo.value=msginserisci;
      setFocus(laForm, nomecampo);
      errore=true;
    } else {
      if(!(nomecampo.value.length==0)){
        if(!(controllaSoloAlfabetico(nomecampo))) {
          errore=true;
          alert('Attenzione!!\n\n\''+nomecampo.value+'\' come valore del campo '+etichettacampo+' non è corretto');
          nomecampo.value=msgcorreggi;
          setFocus(laForm, nomecampo);
        }
      }
    }
  }

  function controllaSoloNumerico(laForm, nomecampo){
    var esito=true;
    if(isNaN(nomecampo.value)) {
      alert('Spiacenti, il valore \''+nomecampo.value+'\' non è accettato');
      //nomecampo.value=msgcorreggi;
      setFocus(laForm, nomecampo);
      esito=false;
    }
    return esito;
  }

  function controllaTelefono(laForm, nomecampo){
    var esito=true;
    return esito;
  }

  function verificaSimboliInCampiNumerici(laForm, nomecampo){
    var esito = true;    
    var simboliconsentiti = "./+-()";
    var nome = nomecampo.value;
    var lunghezzaesatta = nomecampo.value.length;
    for(i=0; i<lunghezzaesatta; i++){
       esito=false;
       var num = nome.charAt(i);
       if(isNaN(num)) {
            if (simboliconsentiti.indexOf(nome.charAt(i))>=0)
                    esito=true;
            }
        else
            esito=true;
        if (!esito) {                        
                alert('Spiacenti, il valore \''+nomecampo.value+'\' non è accettato');
                nomecampo.value="";
                setFocus(laForm, nomecampo);  
                i=lunghezzaesatta;                
            }            
         }
    
    return esito;
  }

  function controllaEsistenzaSpazi(laForm, nomecampo){
    var esito = true;
    var ingresso = nomecampo.value;
    var lendecr=0;
    
    while((lendecr<ingresso.length) && esito){
      if((ingresso.charAt(lendecr))== " ")esito=false;
      lendecr++;
    }
    if(!esito) {
      alert('Spiacenti, ma non possiamo accettare gli spazi !!');
      nomecampo.value=msgcorreggi;
      setFocus(laForm, nomecampo);
    }
    return esito;
  }

  function controllaNickNameNeri(laForm, nomecampo) {
    var esito = true;
    var ingresso = nomecampo.value;
    spazio =" ";
    var posizione=0;
    var i=0;
    while((i<nNeri) && esito){
      if(ingresso == nicknamenero[i]) esito = false;
      i++;
    }
    if(!esito) {
      alert('Spiacenti, ma non possiamo accettare certi vocaboli come \''+nicknamenero[i-1]+'\'!!!\n\n Prego, sostituisci tale parola con un vocabolo diverso.');
      setFocus(laForm, nomecampo);
      nomecampo.value=msgcorreggi;
    }
    return esito;
  }

  function controllaEmail(laForm, nomecampo) {
    var txt= nomecampo.value;
    var errore=false;
    if (txt.indexOf("@")<1){
      alert("Spiacenti, l'indirizzo e-mail inserito e' sbagliato!!\n\nPer favore, controlla di aver inserito un indirizzo di questo tipo:\n\n     'username@dominio.estensione'");
      errore=true;
      nomecampo.value=msgcorreggi;
      setFocus(laForm, nomecampo);
    }
    return errore;
  }

  function verificaSelect(laForm, elemento){
    var i=0;
    var trovato=false;
    vuota="";
    while((i<numerocampi) && (!trovato) ){
        if(campi[i][0]==laForm.elements[elemento].name){
            if(campi[i][1]=='S'){
                indice =laForm.elements[elemento].selectedIndex;
                if(laForm.elements[elemento].options[indice].value == vuota){
                    trovato = true;
                    alert('Attenzione!!\n\nScegliere un valore per '+estraiEtichettaCampo(laForm.elements[elemento]));
                }
            }
        }
      i++;
    }
    return trovato;
  }

  function verificaRadio(laForm, elemento){
    var i=0;
    var j=0;
    var trovato=false;
    var obbligatorio=false;
    vuota="";
    while((i<numerocampi) && (!trovato) ){
        if(campi[i][0]==laForm.elements[elemento].name){
            if(campi[i][1]=='S'){
                obbligatorio=true;
                j=0;
                while ( laForm.elements[j] && (!trovato) ) {
                    if (laForm.elements[j].name==laForm.elements[elemento].name) {
                        trovato = laForm.elements[j].checked;
                    }
                    j++;
                }
            }
        }
      i++;
    }
    if (!trovato && obbligatorio)
        alert('Attenzione!!\n\nScegliere un valore per '+estraiEtichettaCampo(laForm.elements[elemento]));
    return (!trovato && obbligatorio);
  }


  function verificaElementoTipato(laForm, elemento, tipo){
    var i=0;
    var trovato=false;
    while((i<numerocampi) && (!trovato) ){
      if(campi[i][1]=='S'){
        if(campi[i][0]==laForm.elements[elemento].name){
          if( ((laForm.elements[elemento].value.length==0) ||
             (laForm.elements[elemento].value==msginserisci) ||
             (laForm.elements[elemento].value==msgcorreggi)
             )
            ){
            proiettaErrore(campi[i][2]);
            laForm.elements[elemento].value=msginserisci;
            laForm.elements[elemento].focus();
            trovato = true;
          }
        }
      }
      i++;
    }
    return trovato;
  }

  function controllaCaratteriPassword(laForm, nomecampo){
    var esito=true;
    if(nomecampo.value.length!=0){
        esito=controllaEsistenzaSpazi(laForm, nomecampo);
       
            if((nomecampo.value.length<=5) || (nomecampo.value.length>=15)){
                alert('Attenzione Password non corretta!!');
                alert('La Password deve essere una parola compresa tra 6 e 14 caratteri alfanumerici');
                nomecampo.value="";
                setFocus(laForm, nomecampo);
                esito=false;
            }
        
     }return esito;
  }

  function controllaConfirmPassword(laForm){    
    esito = true;
    if(laForm.confermaPwd!=null){
        if(laForm.pwd!=null){
            if((laForm.pwd.value.length!=0) && (laForm.confermaPwd.value.length!=0)){
                if(laForm.pwd.value!=laForm.confermaPwd.value){
                    alert('Attenzione la Password e la ConfirmPassword non coincidono!!');
                    setFocus(laForm, laForm.pwd);
                    laForm.pwd.value="";
                    laForm.confermaPwd.value="";
                    esito = false;
                }
            }else{
                alert('Attenzione la Password e la ConfirmPassword non coincidono!!');
                setFocus(laForm, laForm.pwd);
                laForm.pwd.value="";
            laForm.confermaPwd.value="";
            esito = false;
            }
        }
    }
    return esito;
  }

  function controllaCampiObbligatori(laForm){
    for(i=0;i<laForm.elements.length;i++){
    }
    var esito=true;
    var i=0;
    var trovato=false;
    var appo ="";
    var ippo=0;
    var elemento=0;
    while((elemento<laForm.elements.length) && (!trovato)){
     if((laForm.elements[elemento].type=='text') && (!trovato)){
       trovato=verificaElementoTipato(laForm, elemento, 'text');
     }
     if((laForm.elements[elemento].type=='password') && (!trovato)){
       trovato=verificaElementoTipato(laForm, elemento, 'password');
     }
     if((laForm.elements[elemento].type=='textarea') && (!trovato)){
       trovato=verificaElementoTipato(laForm, elemento, 'textarea');
     }
     if(((laForm.elements[elemento].type=='select') || (laForm.elements[elemento].type=='select-one')) && (!trovato)){
       trovato=verificaSelect(laForm, elemento);
     }
     if((laForm.elements[elemento].type=='radio') && (!trovato)){
       trovato=verificaRadio(laForm, elemento);
     }
     if((laForm.elements[elemento].type=='checkbox') && (!trovato)){
       trovato=verificaRadio(laForm, elemento);
     }

     if(trovato){elemento=numerocampi;esito=false}
     else elemento++;
    }
    return esito;
  }

 
// function controlliSito(laForm) {
//  var esito=true;
//	var j=0;
//	while ( laForm.elements[j] ) {
//	    if (laForm.elements[j].name=='consenso')
//	    	if (laForm.elements[j].value=='S')
//	        	esito = laForm.elements[j].checked;
//	    j++;
//	}
//    if (esito) 
//       esito=(controllaCampiObbligatori(laForm) && controllaConfirmPassword(laForm));    
//    else
//       alert (laForm.consensoErrore.value);
//    return (esito);
//  }

 function controlliSito(laForm) {
    var esito=true;
    esito=(controllaCampiObbligatori(laForm) && controllaConfirmPassword(laForm));    
    return (esito);
  }




  function setFocusIniziale(laForm){
    var i=0;
    i = estraiIndicePrimoCampoText(laForm);
    laForm.elements[i].focus();
  }

  function setFocus(laForm, nomecampo){
    var i=0;
    i = estraiIndiceCampo(laForm, nomecampo);
    laForm.elements[i].focus();
  }

  function inizializzaPaginaSito(laForm){   
    setFocusIniziale(laForm);
  }

  function controllaCampoVuoto(laForm, nomecampo) {
    var esito=true;
    if(nomecampo.value.length == 0) {
	esito = true;
    }
    else {
	esito = false;
    }
   return esito;
  }
