



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

function isEmail(idcampo) {
  campo = document.getElementById(idcampo);
  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);
  Filtro1 = /^([a-zA-Z0-9_\.\-\@])+$/;
  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;
}



//controlla che i due campi passord siano uguali
function checkPWD(idcampo1, idcampo2) {
  campo1 = document.getElementById(idcampo1);
  campo2 = document.getElementById(idcampo2);
  if ( campo1.value!=campo2.value ) {
    alert("Le password inserite non sono uguali!")
    campo1.value = "";
    campo2.value = "";
    campo2.focus();
    return false;
  } else 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;
          }
          continue;
        }

        if (obj.type == "checkbox"){
          if (obj.checked){
            continue;
          } else error=1;
        }

        switch(obj.type){
          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 (obj.value == "" || obj.value == null){
              error=1;
            }
            break;
          case "text":
          case "password":
          case "textarea":
            if (obj.value == "" || obj.value == null){
              error=1;
            }
            break;
          default:
        }
      }
    }
  }

  if (error==1) {
    alert("Inserire tutti i campi obbligatori!!");
    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);
  Filtro1 = /^([a-zA-Z0-9_\.\-\@])+$/;
  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 (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 = "";
  } else return true;

}


//(funzione da inserire nel onkeyup del campo ricerca)
//in base alla parola inserita nel campo,
//lo script cerca il valore all'interno del campo select
function searchCombo(idricerca, idcombo) {
  ricerca = document.getElementById(idricerca);
  combo = document.getElementById(idcombo);

  trovato = -1;
  entry = ricerca.value;
  entryLength = entry.length;
  if (entryLength>0)
    for (i=0;i<combo.options.length;i++)
      trovato==-1&&combo.options[i].text.toLowerCase().substring(0, entryLength)==entry.toLowerCase()?trovato=i:null;
  else
    trovato=0;
  combo.selectedIndex=trovato;
}




//aggiunge il parametro specificato alla querystring
function addParameter(nome,valore) {
  for (var l=0; l<document.links.length; l++) {
    var abslink = document.links[l].href.indexOf("http://");
    var intlink = document.links[l].href.indexOf("#");
    var jslink = document.links[l].href.indexOf("javascript:");  //forse va trattato!!!!
    var jwmlink = document.links[l].href.indexOf("http://");   //forse è meglio aggiungere il nome dell'applicazione
    var isjsp = (document.links[l].href.indexOf(".jsp")!=-1)?true:false;
    var separatore = (document.links[l].href.indexOf("?")!=-1)?"&":"?";

    if (intlink==-1 && jslink==-1 && jwmlink!=-1 && isjsp)
      document.links[l].href += separatore+nome+"="+valore;
  }
}

//ritorna undefined se il parametro non è definito
function getParameter(nome) {

   var url = window.location.href;
   var paramsStart = url.indexOf("?");
   if (paramsStart != -1) {
      var paramString = url.substr(paramsStart + 1);
      var tokenStart = paramString.indexOf(nome);

      if (tokenStart != -1) {
         paramToEnd = paramString.substr(tokenStart + nome.length + 1);
         var delimiterPos = paramToEnd.indexOf("&");

         if (delimiterPos == -1) {
            return paramToEnd;
         } else {
            return paramToEnd.substr(0, delimiterPos);
         }
      }
   }
}

function getParameters() {
   var params = new Array();
   var url = window.location.href;
   var paramsStart = url.indexOf("?");
   var hasMoreParams = true;

   if (paramsStart != -1) {
     var paramString = url.substr(paramsStart + 1);
     var params = paramString.split("&");
     for (var i = 0 ; i < params.length ; i++) {
       var pairArray = params[i].split("=");
       if (pairArray.length == 2) {
         params[pairArray[0]] = pairArray[1];
       }
     }
     return params;
   }
}










