



//-------------SCRIPT PER VALIDAZIONE FORM------------------





//controlla che i due campi passord siano uguali e non uguali alla login
function checkPWD(idcampo1, idcampo2,login) {
  var campo1 = document.getElementById(idcampo1);
  var campo2 = document.getElementById(idcampo2);
  var login = document.getElementById(login);
  if ( campo1.value!=campo2.value ) {
    alert("Le password inserite non sono uguali!")
    campo1.value = "";
    campo2.value = "";
    campo2.focus();
    return false;
  } else {
    if(campo1.value.toUpperCase()==login.value.toUpperCase()){
      alert("Per la tua sicurezza, il 'nome utente' dev'essere DIVERSO dalla 'password'")
      campo1.value = "";
      campo2.value = "";
      campo1.focus();
      return false;
    }
    return true;
  }
}

//controlla che tutti i campi obbligatori non siano vuoti
function checkForm(nomeform) {
  //I CAMPI OBBLIGATORI DEVONO AVERE ID="required(n)"


  var regexp = /^(required)[0-9]*$/gi
  var error= 0;
  var myform= document.forms[nomeform];
  var campi= myform.elements;
  var ncampi= myform.length;


  for (var i = 0; i < ncampi; i++){
    var obj = campi[i];
    idcampo= obj.id;
    if (idcampo.search(regexp)!=-1) {
      if (obj){
        if (obj.type == "radio"){
          var blnchecked = false;
          for (var j=0; j< myform.elements[obj.name].length; j++){
            if (myform.elements[obj.name][j].checked){
              blnchecked = true;
            }
          }

          if (!blnchecked){
            error=1;
            break;
          }
        }



        switch(obj.type){
           case "checkbox":
            if (myform.elements[obj.name].length) {
              var atleastone = false;
              for(j = 0; j < myform.elements[obj.name].length; j++) {
                if(myform.elements[obj.name][j].checked) atleastone = true;
              }
              if(!atleastone) {
                error = 1;

              }
            } else {
              if(!myform.elements[obj.name].checked) {
                error = 1;

              }
            }
            break;



          case "select-one":
            if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].value == ""){
              error=1;
            }
            break;
          case "select-multiple":
            if (obj.selectedIndex == -1){
              error=1;
            }
            break;
          case "file":
            if (trimString(obj.value) == "" || obj.value == null){
              error=1;
            }
            break;
          case "text":
          case "password":
          case "textarea":
            if (trimString(obj.value) == "" || obj.value == null){
              error=1;
            }
            break;
          default:
        }
      }
    }
  }

  if (error==1) {
    alert("Inserire tutti i campi obbligatori!!");
    return false;
  } else {
    return true;
  }
}

function checkPIVA(campo){
 // var campo = document.getElementById(idcampo);
  var sc=trimString(campo.value);
  if (sc == '' ) {
    return true;
  } else {
    if (isNaN(sc)) {
        alert("La partita iva deve essere numerica");
        campo.value = "";
        campo.focus();
        return false;

    } else {
      if(sc.length <11 || sc.length >11) {
        alert("La partita iva deve essere di 11 cifre!");
        campo.value = "";
        campo.focus();
        return false;
      } else return true;
    }
  }
}


function checkCF(campo){
  var campcf=campo;
  var sc=trimString(campcf.value);
  var validi, i, s, set1, set2, setpari, setdisp;
  sc = sc.toUpperCase();

 var set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 var set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
 var setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 var setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
 var s = 0;


  var re = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
  if (sc != '' ) {
     if (isNaN(sc)) {
       if(sc.length!=16) {
         alert('Il codice fiscale è errato.\nSe non lo ricordi, usa la funziona "calcola".');
         campcf.value = "";
         campcf.focus();
         return false;
        } else {
         if(re.test(sc.toUpperCase())){
            for( i = 1; i <= 13; i += 2 )
              s += setpari.indexOf( set2.charAt( set1.indexOf( sc.charAt(i) )));
            for( i = 0; i <= 14; i += 2 )
              s += setdisp.indexOf( set2.charAt( set1.indexOf( sc.charAt(i) )));
            if( s%26 != sc.charCodeAt(15)-'A'.charCodeAt(0) ){
              alert("Il codice fiscale non e' corretto:\n"+
              "il codice di controllo non corrisponde.\n");
              campcf.value = "";
              campcf.focus();
              return false;
          }  else return true;
         }
          else {
            alert('Il codice fiscale è errato.\nSe non lo ricordi, usa la funziona "calcola.');
            campcf.value = "";
            campcf.focus();
            return false;
          }
      }
    } else {
       if(sc.length <11 || sc.length >11) {
        alert("Se stai inserendo un codice fiscale per persone giuridiche,\n questo deve essere di 11 cifre!");
        campo.value = "";
        campo.focus();
        return false;
      } else {
        // document.getElementById("piva").id="required20";
        // document.getElementById("piva").readonly=true;
         return true;
      }
     }
  } else {
     return true;
  }

}


function checkCF2(campo){
  var campcf=campo;
  var sc=trimString(campcf.value);
  var re = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
  if (sc != '' ) {
     if (isNaN(sc)) {
       if(sc.length!=16) {
         alert('Il codice fiscale è errato.\nSe non lo ricordi, usa la funziona "calcola".');
         campcf.value = "";
         campcf.focus();
         return false;
        } else {
         if(re.test(sc.toUpperCase()))
          return true;
          else {
            alert('Il codice fiscale è errato.\nSe non lo ricordi, usa la funziona "calcola.');
            campcf.value = "";
            campcf.focus();
          }
      }
    } else {
       if(sc.length <11 || sc.length >11) {
         alert("Se stai inserendo un codice fiscale per persone giuridiche,\n questo deve essere di 11 cifre!");
        campo.value = "";
        campo.focus();
        return false;
      } else {
         var piva=trimString(document.getElementById("piva").value);
		 if (piva == '' ) {
		   alert("Hai inserito un codice fiscale per persone giuridiche,\n deve essere compilata anche la partita iva!");
		   return false;
		 } else {
		    return checkPIVA(document.getElementById("piva"));
		 }
      }
     }
  } else {
     return true;
  }

}

function checkCapDestinazione(campo) {
  if (isNaN(campo.value) && trimString(campo.value)!="") {
    alert("Il CAP deve essere un valore numerico!!");
    campo.value = "";
    campo.focus();
    return false;
  } else {
    if((trimString(campo.value)).length<5) {
     alert("Il CAP deve essere di 5 cifre!!");
     campo.focus();
     return false;
    }
    else {
      if(checkCapGenerici(campo)){
        return true;
      }
      else return false;
  }
  }
}

function checkCap(campo) {
  if (isNaN(campo.value) && trimString(campo.value)!="") {
    alert("Il CAP deve essere un valore numerico!!");
    campo.value = "";
    campo.focus();
    return false;
  }
  if((trimString(campo.value)).length<5 && trimString(campo.value)!="") {
     alert("Il CAP deve essere di 5 cifre!!");
     campo.focus();
     return false;
  }
  return true;
}

function checkCapGenerici(campo){
  var cap_generici = new Array();
  cap_generici[0] = "00100";
  cap_generici[1] ="06100";
  cap_generici[2] ="09100";
  cap_generici[3] ="10100";
  cap_generici[4] ="16100";
  cap_generici[5] ="19100";
  cap_generici[6] ="20100";
  cap_generici[7] ="24100";
  cap_generici[8] ="25100";
  cap_generici[9] ="28900";
  cap_generici[10] ="30100";
  cap_generici[11] ="34100";
  cap_generici[12] ="35100";
  cap_generici[13] ="37100";
  cap_generici[14] ="40100";
  cap_generici[15] ="50100";
  cap_generici[16] ="56100";
  cap_generici[17] ="57100";
  cap_generici[18] ="60100";
  cap_generici[19] ="65100";
  cap_generici[20] ="70100";
  cap_generici[21] ="80100";
  cap_generici[22] ="84100";
  cap_generici[23] ="89100";
  cap_generici[24] ="90100";
  cap_generici[25] ="95100";
  cap_generici[26] ="98100";

  var s=cap_generici.join(" | ");
  if(s.indexOf(campo.value)>=0){
    alert('ATTENZIONE: CAP generico.\nIl CAP inserito non è corretto: ricordati di inserire il \nCAP relativo alla zona esatta della tua città.');
    campo.value = "";
    campo.focus();
    return false;
  }
  else return true;
}



// SCRIPT JFORM

 /* ======================================================= */
function checkEmail(campo) {
  var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
  var val = campo.value
  var ok = val.search(email_reg_exp);
  var Filtro1 = /^([a-zA-Z0-9_\.\-\@])+$/;
  var Filtro2 = /^((.)+\.)+(.)+$/;
  if( ok == -1 && val != "" ) {

   if (campo.value.search("@") == -1) {
         alert("ATTENZIONE !!! - Indirizzo di e-mail non corretto\n\n( l'indirizzo deve contenere il simbolo @ )");
         campo.focus();
         return false;
   }
   if (campo.value.search(" ") != -1) {
       alert("ATTENZIONE !!! - Indirizzo di e-mail non corretto\n\n( non devono essere presenti spazi )");
       campo.focus();
       return false;
   }

   s=val.substring(val.indexOf("@")+1);
   if (!Filtro2.test(s)) {
         alert("ATTENZIONE !!! - Indirizzo di e-mail non corretto\n\n(l'indirizzo deve terminare con '.IT', '.COM.',...)");
         campo.focus();
        return false;
   }
   alert("ATTENZIONE !!! - Indirizzo di e-mail non corretto\n\n( sono presenti caratteri non consentiti )");
   campo.focus();
   return false;

  } else return true;
}
/* ======================================================= */

/* ======================================================= */
function checkDate(campo) {

  var date_reg_exp
  var lingua='ita';

  if (lingua=="ita") {  //gg/mm/aaaa
    date_reg_exp = /^((3[01])|([12][0-9])|(0[1-9]))[\/]((1[0-2])|(0[1-9]))[\/]((19|20)\d{2})$/;
  } else if (lingua=="eng") {  //mm/dd/yyyy
    date_reg_exp = /^((1[0-2])|(0[1-9]))[\/]((3[01])|([12][0-9])|(0[1-9]))[\/]((19|20)\d{2})$/;
  } else {
    date_reg_exp = /^((1[0-2])|(0[1-9]))[\/]((3[01])|([12][0-9])|(0[1-9]))[\/]((19|20)\d{2})$/;
  }

  var error = 0;

  if (trimString(campo.value)!="") {

    var giorno
    var mese
    if (lingua=="ita") {
      giorno = campo.value.substr(0, 2);
      mese = campo.value.substr(3, 2) - 1; //in js i mesi partono da 0
    } else if (lingua=="eng") {
      mese = campo.value.substr(0,2) - 1;
      giorno = campo.value.substr(3, 2);
    } else {
      giorno = campo.value.substr(0, 2);
      mese = campo.value.substr(3, 2) - 1;
    }
    var anno = campo.value.substr(6, 4);

    var ok = campo.value.search(date_reg_exp);
    if (ok==-1) {
      error = 1;
    } else {
      //controllo sui mesi che non hanno 31 giorni e sull'anno bisestile
      var mese_tmp = mese.toString();
      if( mese_tmp.substr(0, 1) == 0 ) { mese_tmp = mese_tmp.substr(1,1) } //tolgo l'eventuale 0 davanti al mese
      gm = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
      if ( ( ( anno % 4 == 0 ) && ( anno % 100 != 0 ) ) || ( anno % 400 == 0 ) ) { gm[1] = 29; } //anno bisestile
      if( giorno > gm[mese_tmp] ) { error = 1; }
      //30 giorni ha novembre con april giugno e settembre di ventotto ce n'è uno tutti gli altri ne han trentuno
    }
  }

  if (error==1) {

    if (lingua=="ita")
      alert("Formato data non valido (gg/mm/aaaa)");
    else if (lingua=="eng")
      alert("Non-valid date format (mm/dd/yyyy)");
    else
      alert("Formato data non valido (gg/mm/aaaa)");

    campo.value = "";
    campo.focus();
    return false;
  }
   return true;
}


function checkIndirizzo(indirizzo,nomecognome) {
  var ind=indirizzo;
  var nc=nomecognome;
  var re = /\w*[0-9]+\w*/;
  if(trimString(ind.value).length>0){
  if (ind.value.search(re)<0 && ind.value.toLowerCase().indexOf('snc')<0) {
  alert("I dati utente sono INCOMPLETI:\n-inserisci COGNOME E NOME nel primo spazio;\n-inserisci VIA e/o NUMERO CIVICO in 'indirizzo1'.\nSe NON hai numero civico, scrivi 'snc'.")
  nc.focus();
  return false;
  }
  }

  return true;
}


function checkIndirizzoDest(indirizzo,nomecognome) {
  var ind=indirizzo;
  var nc=nomecognome;
  var re = /\w*[0-9]+\w*/;
  if(trimString(ind.value).length>0){
    if ( ind.value.search(re)<0 && ind.value.toLowerCase().indexOf('snc')<0) {
    alert("I dati di destinazione sono INCOMPLETI:\n-inserisci VIA e/o NUMERO CIVICO in 'indirizzo1'.\nSe NON hai numero civico, scrivi 'snc'.")
    nc.focus();
    return false;
    }
  }
  return true;
}


function checkTelefono(telefono) {
      if((trimString(telefono.value)).length>=0) {

        if ((trimString(telefono.value)).length <8) {
          alert("Il telefono deve essere lungo almeno 8\n e NON deve contenere spazi")
              telefono.focus();
          return false;
        } else return true;
        // Ciclo tra caratteri della stringa
       // for (i = 0, r = 0; i < telefono.value.length; i++ )
        //{
          // Estrae il prossimo carattere c
         // c = telefono.value.charCodeAt(i);

          //if ((48 <= c && c <= 57) || (65 <= c && c <= 90) || (97 <= c && c <= 122)) // per cifra 0-9 e lettere
          //{

         // }

         // else
         // {
           // alert("Sono ammesse solo cifre e lettere nel telefono");
            //telefono.focus();
            //return false;
          //}

       // }
    } else
        return true;

}
/* ======================================================= */

/* ==========GESTISCE STATI PER USA E CANADA ===========*/
 function visstate(){
    var obj = document.getElementById('nazione');
     if(obj.options[obj.selectedIndex].value=='US'){
       if(IE)
         document.getElementById('visusastate').style.display='block';
       else
         document.getElementById('visusastate').style.display='table-row';
      document.getElementById('viscanadastate').style.display='none';
     } else {
       if(obj.options[obj.selectedIndex].value=='CA'){
         document.getElementById('visusastate').style.display='none';
         if(IE)
           document.getElementById('viscanadastate').style.display='block';
         else
          document.getElementById('viscanadastate').style.display='table-row';
        } else {
         document.getElementById('visusastate').style.display='none';
         document.getElementById('viscanadastate').style.display='none';
       }
     }
   }

  function setstate(){
    var obj = document.getElementById('nazione');
     if(obj.options[obj.selectedIndex].value=='US'){
       var objUS = document.getElementById('usaStateUS');
       document.getElementById('usaState').value=objUS.options[objUS.selectedIndex].value;
     }
     if(obj.options[obj.selectedIndex].value=='CA'){
       var objCA = document.getElementById('usaStateCA');
       document.getElementById('usaState').value=objCA.options[objCA.selectedIndex].value;
     }
  }

   function setstatedest(){
    var obj = document.getElementById('nazione');
     if(obj.value=='US'){
       var objUS = document.getElementById('usaStateUS');
       document.getElementById('usaState').value=objUS.options[objUS.selectedIndex].value;
     }
     if(obj.value=='CA'){
       var objCA = document.getElementById('usaStateCA');
       document.getElementById('usaState').value=objCA.options[objCA.selectedIndex].value;
     }
  }

/* ======================================================= */



