function closeLoading(documento, idvalueloadind, idvalueloaded)
{
  rowstylevalue = 'block';
  if(isNetscape())
  {
    rowstylevalue = 'table-row';
  }
  elemento = documento.getElementById(idvalueloadind);
  if((elemento != null) && (elemento != undefined))
  {
    elemento.style.display = 'none';
  }
  elemento = documento.getElementById(idvalueloaded);
  if((elemento != null) && (elemento != undefined))
  {
    elemento.style.display = rowstylevalue;
  }
}

function selectRegioneOperativaFromMap(regioneoperativaObj, value, eventname)
{
  selectOptionNoCase(regioneoperativaObj, value);
  fireElementEvent(regioneoperativaObj, eventname);
}

function changeRegioneOperativa(documento, provincie, citta, selectedIndex, spryObj)
{      
  removeSelectOptions(documento.getElementById(provincie), 1);
  removeSelectOptions(documento.getElementById(citta), 1);
  spryObj.setCurrentRowNumber(selectedIndex);
}

function changeProvinciaOperativa(documento, citta, selectedIndex, spryObj)
{
  removeSelectOptions(documento.getElementById(citta), 1);
  spryObj.setCurrentRowNumber(selectedIndex);
}

function initSpryValues(formDati)
{
  formDati.regioneoperativa.selectedIndex = 0;  
}

function ricercaFiliali(formDatiSrc, formDatiDst, dataSet, request, dataSets, formRiep, tabObj)
{    
  message = "";
  datainizio = null;
  datafine = null;
  MIN_GIORNI = 2;
  MAX_GIORNI = 20;
  MILLIS_IN_DAY = 86400000; 
  
  if(
    formDatiSrc && formDatiSrc.datainizio$day && formDatiSrc.datainizio$month && formDatiSrc.datainizio$year &&
    formDatiSrc.datafine$day && formDatiSrc.datafine$month && formDatiSrc.datafine$year &&
    formDatiSrc.regioneoperativa && formDatiSrc.provinciaoperativa && formDatiSrc.cittaoperativa &&
    formDatiSrc.tipoveicolo
  )
  {
    if (
      (isEmpty(formDatiSrc.datainizio$day.value)) ||
      (isEmpty(formDatiSrc.datainizio$month.value)) ||
      (isEmpty(formDatiSrc.datainizio$year.value))
    )
    {
      message += "-  'Data Inizio' è un campo obbligatorio.\n";
    }
    else if (!isValidDate(formDatiSrc.datainizio$day.value, formDatiSrc.datainizio$month.value, formDatiSrc.datainizio$year.value))
    {
      message += "-  'Data Inizio' non è corretta.\n";
    }
    else
    {
      datainizio = getValidDate(formDatiSrc.datainizio$day.value, formDatiSrc.datainizio$month.value, formDatiSrc.datainizio$year.value, formDatiSrc.datainizio$hour.value, formDatiSrc.datainizio$minute.value, formDatiSrc.datainizio$second.value, formDatiSrc.datainizio$millisecond.value);
    }  
    if (
      (isEmpty(formDatiSrc.datafine$day.value)) ||
      (isEmpty(formDatiSrc.datafine$month.value)) ||
      (isEmpty(formDatiSrc.datafine$year.value))
    )
    {
      message += "-  'Data Fine' è un campo obbligatorio.\n";
    }
    else if (!isValidDate(formDatiSrc.datafine$day.value, formDatiSrc.datafine$month.value, formDatiSrc.datafine$year.value))
    {
      message += "-  'Data Fine' non è corretta.\n";
    }
    else
    {
      datafine = getValidDate(formDatiSrc.datafine$day.value, formDatiSrc.datafine$month.value, formDatiSrc.datafine$year.value, formDatiSrc.datafine$hour.value, formDatiSrc.datafine$minute.value, formDatiSrc.datafine$second.value, formDatiSrc.datafine$millisecond.value);    
    }
    if((datainizio != null) && (datafine != null))
    {
      now = new Date();
      if(datainizio.getTime() < now.getTime())
      {
        message += "-  'Data Inizio' non corretta.\n";
      }
      if((datainizio.getTime() - (MIN_GIORNI * MILLIS_IN_DAY)) < now.getTime())
      {
        message += "-  E' possibile prenotare online almeno con " + MIN_GIORNI + " giorni di preavviso.\n";
      }
      else if(datafine.getTime() <= datainizio.getTime())
      {
        message += "-  'Data Fine' deve essere successiva a 'Data Inizio'.\n";
      }
      else if((datafine.getTime() - datainizio.getTime()) > (MAX_GIORNI * MILLIS_IN_DAY))
      {
        message += "-  Per noleggi più lunghi di giorni " + MAX_GIORNI + " rivolgersi al numero verde gratuito 800.92 92 23.\n";
      }
    }
    if (isEmpty(formDatiSrc.regioneoperativa.value))
    {
      message += "-  'Regione' è un campo obbligatorio.\n";
    }
    if (isEmpty(formDatiSrc.tipoveicolo.value))
    {
      message += "-  'Tipo Veicolo' è un campo obbligatorio.\n";
    }
  }
  else
  {
    message += "-  ERRORE DI SISTEMA.\n";
    message += "-  CONTATTARE L'HELP DESK AL NUMERO 800.929223.\n";
  }
  if(isEmpty(message))
  {    
    clearRicercaFilialiData(formDatiDst);
    toggleSetupDatiNoleggio(formDatiSrc, dataSets, false, 0, null, null);
    formDatiDst.regioneoperativa.value = formDatiSrc.regioneoperativa.value;
    formDatiDst.provinciaoperativa.value = formDatiSrc.provinciaoperativa.value;
    formDatiDst.cittaoperativa.value = formDatiSrc.cittaoperativa.value;
    formDatiDst.datainizio$day.value = formDatiSrc.datainizio$day.value;
    formDatiDst.datainizio$month.value = formDatiSrc.datainizio$month.value;
    formDatiDst.datainizio$year.value = formDatiSrc.datainizio$year.value;
    formDatiDst.datainizio$hour.value = formDatiSrc.datainizio$hour.value;
    formDatiDst.datainizio$minute.value = formDatiSrc.datainizio$minute.value;
    formDatiDst.datainizio$second.value = formDatiSrc.datainizio$second.value;
    formDatiDst.datainizio$millisecond.value = formDatiSrc.datainizio$millisecond.value;
    formDatiDst.datafine$day.value = formDatiSrc.datafine$day.value;
    formDatiDst.datafine$month.value = formDatiSrc.datafine$month.value;
    formDatiDst.datafine$year.value = formDatiSrc.datafine$year.value;
    formDatiDst.datafine$hour.value = formDatiSrc.datafine$hour.value;
    formDatiDst.datafine$minute.value = formDatiSrc.datafine$minute.value;
    formDatiDst.datafine$second.value = formDatiSrc.datafine$second.value;
    formDatiDst.datafine$millisecond.value = formDatiSrc.datafine$millisecond.value;
    formDatiDst.tipoveicolo.value = formDatiSrc.tipoveicolo.value;       
    setupRiepilogoStep1(formRiep, formDatiDst, formDatiSrc);    
    navigateTab(tabObj, true, formDatiSrc);
    loadDatiXMLSimple(formDatiDst, dataSet, request);
  }
  else
  {
    alert("Si sono verificati i seguenti errori:\n\n" + message);
  }
}

function clearRicercaFilialiData(formDati)
{
  formDati.regioneoperativa.value = "";
  formDati.provinciaoperativa.value = "";
  formDati.cittaoperativa.value = "";
  formDati.datainizio$day.value = "";
  formDati.datainizio$month.value = "";
  formDati.datainizio$year.value = "";
  formDati.datainizio$hour.value = "";
  formDati.datainizio$minute.value = "";
  formDati.datainizio$second.value = "";
  formDati.datainizio$millisecond.value = "";
  formDati.datafine$day.value = "";
  formDati.datafine$month.value = "";
  formDati.datafine$year.value = "";
  formDati.datafine$hour.value = "";
  formDati.datafine$minute.value = "";
  formDati.datafine$second.value = "";
  formDati.datafine$millisecond.value = "";
  formDati.tipoveicolo.value = "";
}

function setupRiepilogoStep1(formRiep, formDatiDst, formDatiSrc)
{
  aus = formDatiDst.regioneoperativa.value;
  aus += " - "
  if(isEmpty(formDatiDst.provinciaoperativa.value))
  {
    aus += "Tutte";
  }
  else
  {
    aus += formDatiDst.provinciaoperativa.value;
  }
  formRiep.regione.value = aus;
  
  if(isEmpty(formDatiDst.cittaoperativa.value))
  {
    formRiep.citta.value = "Tutte";
  }
  else
  {
    formRiep.citta.value = formDatiDst.cittaoperativa.value;
  }
  formRiep.datainizio.value = formDatiDst.datainizio$day.value + "-" + formDatiDst.datainizio$month.value + "-" + formDatiDst.datainizio$year.value + "  " + formDatiDst.datainizio$hour.value + ":" + formDatiDst.datainizio$minute.value;     
  formRiep.datafine.value = formDatiDst.datafine$day.value + "-" + formDatiDst.datafine$month.value + "-" + formDatiDst.datafine$year.value + "  " + formDatiDst.datafine$hour.value + ":" + formDatiDst.datafine$minute.value;     
  formRiep.tipoveicolo.value = formDatiSrc.tipoveicolo.options[formDatiSrc.tipoveicolo.selectedIndex].innerHTML;
  formRiep.filiale.value = "";
  formRiep.tariffa.value = "";
  formRiep.gruppoveicolo.value = "";
}

function checkUnicaFiliale(formDati, forward)
{   
  //alert("checkUnicaFiliale");
  //alert("checkUnicaFiliale::formDati = " + formDati);
  if(formDati)
  {
    //alert("checkUnicaFiliale::formDati.codicefiliale = " + formDati.codicefiliale);
    if(formDati.codicefiliale)
    {
      //alert("checkUnicaFiliale::formDati.codicefiliale.value = " + formDati.codicefiliale.value);
      if(formDati.codicefiliale.value)
      {
        //alert("checkUnicaFiliale::eNumero(formDati.codicefiliale.value)= " + eNumero(formDati.codicefiliale.value));
        if(eNumero(formDati.codicefiliale.value))
        {          
          formDati.codicefiliale.checked = true;
          buttonObj = formDati.indietro;
          if(forward)
          {
            buttonObj = formDati.ricercatariffe;
          }
          //alert("checkUnicaFiliale::buttonObj= " + buttonObj);
          //alert("checkUnicaFiliale::buttonObj.name= " + buttonObj.name);  
          fireElementEvent(buttonObj, "onclick");
        }
      }
    } 
  }
}

function ricercaTariffe(formDatiSrc, formDatiSrc2, formDatiDst, dataSet, request, dataSets, formRiep, tabObj)
{  
  message = "";
  datainizio = null;
  datafine = null;
  radioselected = null;
  MIN_GIORNI = 2;
  MAX_GIORNI = 20;
  MILLIS_IN_DAY = 86400000;   
  if (
    (isEmpty(formDatiSrc.datainizio$day.value)) ||
    (isEmpty(formDatiSrc.datainizio$month.value)) ||
    (isEmpty(formDatiSrc.datainizio$year.value))
  )
  {
    message += "-  'Data Inizio' è un campo obbligatorio.\n";
  }
  else if (!isValidDate(formDatiSrc.datainizio$day.value, formDatiSrc.datainizio$month.value, formDatiSrc.datainizio$year.value))
  {
    message += "-  'Data Inizio' non è corretta.\n";
  }
  else
  {
    datainizio = getValidDate(formDatiSrc.datainizio$day.value, formDatiSrc.datainizio$month.value, formDatiSrc.datainizio$year.value, formDatiSrc.datainizio$hour.value, formDatiSrc.datainizio$minute.value, formDatiSrc.datainizio$second.value, formDatiSrc.datainizio$millisecond.value);
  }
  if (
    (isEmpty(formDatiSrc.datafine$day.value)) ||
    (isEmpty(formDatiSrc.datafine$month.value)) ||
    (isEmpty(formDatiSrc.datafine$year.value))
  )
  {
    message += "-  'Data Fine' è un campo obbligatorio.\n";
  }
  else if (!isValidDate(formDatiSrc.datafine$day.value, formDatiSrc.datafine$month.value, formDatiSrc.datafine$year.value))
  {
    message += "-  'Data Fine' non è corretta.\n";
  }
  else
  {
    datafine = getValidDate(formDatiSrc.datafine$day.value, formDatiSrc.datafine$month.value, formDatiSrc.datafine$year.value, formDatiSrc.datafine$hour.value, formDatiSrc.datafine$minute.value, formDatiSrc.datafine$second.value, formDatiSrc.datafine$millisecond.value);
  }
  if((datainizio != null) && (datafine != null))
  {
    now = new Date();
    if(datainizio.getTime() < now.getTime())
    {
      message += "-  'Data Inizio' non corretta.\n";
    }
    if((datainizio.getTime() - (MIN_GIORNI * MILLIS_IN_DAY)) < now.getTime())
    {
      message += "-  E' possibile prenotare online almeno con " + MIN_GIORNI + " giorni di preavviso.\n";
    }
    else if(datafine.getTime() <= datainizio.getTime())
    {
      message += "-  'Data Fine' deve essere successiva a 'Data Inizio'.\n";
    }
    else if((datafine.getTime() - datainizio.getTime()) > (MAX_GIORNI * MILLIS_IN_DAY))
    {
      message += "-  Per noleggi più lunghi di giorni " + MAX_GIORNI + " rivolgersi al numero verde gratuito 800.92 92 23.\n";
    }
  }  
  if(!formDatiSrc2.codicefiliale)
  {
    message += "-  E' obbligatorio selezionare una filiale.\n";
  }
  else 
  {
    radioselected = getSelectedRadio(formDatiSrc2.codicefiliale);
    if(!radioselected)
    {
      message += "-  E' obbligatorio selezionare una filiale.\n";
    }
  }
  if(isEmpty(message))
  {
    toggleSetupDatiTariffe(formDatiSrc2, dataSets, false, 1, null, null);
    formDatiDst.codicefiliale.value = radioselected.value;    
    formDatiDst.datainizio$day.value = formDatiSrc.datainizio$day.value;
    formDatiDst.datainizio$month.value = formDatiSrc.datainizio$month.value;
    formDatiDst.datainizio$year.value = formDatiSrc.datainizio$year.value;
    formDatiDst.datainizio$hour.value = formDatiSrc.datainizio$hour.value;
    formDatiDst.datainizio$minute.value = formDatiSrc.datainizio$minute.value;
    formDatiDst.datainizio$second.value = formDatiSrc.datainizio$second.value;
    formDatiDst.datainizio$millisecond.value = formDatiSrc.datainizio$millisecond.value;
    formDatiDst.datafine$day.value = formDatiSrc.datafine$day.value;
    formDatiDst.datafine$month.value = formDatiSrc.datafine$month.value;
    formDatiDst.datafine$year.value = formDatiSrc.datafine$year.value;
    formDatiDst.datafine$hour.value = formDatiSrc.datafine$hour.value;
    formDatiDst.datafine$minute.value = formDatiSrc.datafine$minute.value;
    formDatiDst.datafine$second.value = formDatiSrc.datafine$second.value;
    formDatiDst.datafine$millisecond.value = formDatiSrc.datafine$millisecond.value;
    formDatiDst.tipoveicolo.value = formDatiSrc.tipoveicolo.value;    
    formDatiDst.listino.value = formDatiSrc.listino.value; 
    setupRiepilogoStep2(formRiep, formDatiSrc2);
    navigateTab(tabObj, true, formDatiSrc2);
    loadDatiXMLSimple(formDatiDst, dataSet, request);    
  }
  else
  {
    alert("Si sono verificati i seguenti errori:\n\n" + message);
  }
}

function setupRiepilogoStep2(formRiep, formDatiSrc)
{
radioselected = getSelectedRadio(formDatiSrc.codicefiliale);
  if(radioselected)
  {
    formRiep.filiale.value = radioselected.alt;
  }
}


function openDettaglioGruppo(iTop, iLeft, width, height, nomegruppo, codicetariffa, formDati)
{
  if(formDati && codicetariffa)
  {
    if(formDati.gruppoveicolo)
    {
      selectMultipleRadioByAlt(formDati.gruppoveicolo, codicetariffa);
    }
  }
  page =  globalContexRoot + "/webservices/gruppi/dettagliogruppo_" + nomegruppo.toLowerCase() + ".html";
  openPopupAtPositionScrollbarNoResizable(iTop, iLeft, width, height, page);
}

function openDettaglioTariffa(iTop, iLeft, width, height, 
  codicefiliale, puntorentsegnalante, codicegruppo, codicelistino, codicetariffa, importotariffa,
  importoassicurazione, importototale, importoiva, importoallinclusive, formDati, datainizioname, 
  datafinename, assicurazioniincluse, aliquotaiva
)  
{
  datainizio = getDataToString(formDati, datainizioname);
  datafine = getDataToString(formDati, datafinename);
  page = formDati.urlDettaglioTariffa.value;
  page += ("?httpConn=true");
  page += ("&codicefiliale=" + codicefiliale);
  page += ("&puntorentsegnalante=" + puntorentsegnalante);
  page += ("&codicegruppo=" + codicegruppo);
  page += ("&codicelistino=" + codicelistino);
  page += ("&codicetariffa=" + codicetariffa);
  page += ("&importotariffa=" + importotariffa);
  page += ("&importoassicurazione=" + importoassicurazione);
  page += ("&importototale=" + importototale);
  page += ("&importoallinclusive=" + importoallinclusive);
  page += ("&importoiva=" + importoiva);
  page += ("&datainizio=" + datainizio);
  page += ("&datafine=" + datafine);
  page += ("&assicurazioniincluse=" + assicurazioniincluse);
  page += ("&aliquotaiva=" + aliquotaiva);
  openPopupAtPositionNoScrollbarResizable(iTop, iLeft, width, height, page);
}

function openDettaglioPreventivo(iTop, iLeft, width, height, formDati, codicepreventivo, gruppodisponibile)  
{
  page = formDati.urlDettaglioPreventivo.value;
  page += ("?httpConn=true");
  page += ("&stampaabilitata=true");
  page += ("&codice=" + codicepreventivo);
  page += ("&gruppodisponibile=" + gruppodisponibile);
  openPopupAtPositionScrollbarNoResizable(iTop, iLeft, width, height, page);
}

function openDettaglioPrenotazione(iTop, iLeft, width, height, formDati, codiceprevenotazione)  
{
  page = formDati.urlDettaglioPrenotazione.value;
  page += ("?httpConn=true");
  page += ("&stampaabilitata=true");
  page += ("&codice=" + codiceprevenotazione);  
  openPopupAtPositionScrollbarNoResizable(iTop, iLeft, width, height, page);
}

function openVoucherPrenotazione(iTop, iLeft, width, height, formDati, codiceprevenotazione)  
{
  page = formDati.urlDettaglioVoucherPrenotazione.value;
  page += ("?httpConn=true");
  page += ("&stampaabilitata=true");
  page += ("&codice=" + codiceprevenotazione);
  openPopupAtPositionScrollbarNoResizable(iTop, iLeft, width, height, page);
}

function prenotazioneNonDisponibile()
{
  msg = "La prenotazione potrà essere effettuata esclusivamente attraverso il numero verde gratuito 800 92 92 23.";
  alert(msg);
}

function toggleSetupDatiNoleggio(formDati, dataSets, value, idxStart, formDatiSrc, tabObj)
{  
  navigateTab(tabObj, false, formDatiSrc);
  if(dataSets)
  {
    regione = null; 
    if(!eNumero(idxStart))
    {
      idxStart = 0;
    }
    for(i = idxStart; i < dataSets.length; i++)
    { 
      regione = Spry.Data.getRegion(dataSets[i]);      
      if(regione)
      {
        regione.clearContent();
      }
    }
  }  
  formDati.pickdateenabled.value = "" + value;
  formDati.datainizio$hour.disabled = (!value);
  formDati.datafine$hour.disabled = (!value);
  formDati.tipoveicolo.disabled = (!value);
  formDati.regioneoperativa.disabled = (!value);
  formDati.provinciaoperativa.disabled = (!value);
  formDati.cittaoperativa.disabled = (!value);
  formDati.avanti.disabled = (!value);  
}

function toggleSetupDatiTariffe(formDati, dataSets, value, idxStart, formDatiSrc, tabObj)
{  
  navigateTab(tabObj, false, formDatiSrc);
  if(dataSets)
  {
    regione = null; 
    if(!eNumero(idxStart))
    {
      idxStart = 0;
    }
    for(i = idxStart; i < dataSets.length; i++)
    { 
      regione = Spry.Data.getRegion(dataSets[i]);      
      if(regione)
      {
        regione.clearContent();
      }
    }
  }   
  radios = formDati.codicefiliale;
  if(radios)
  {
    if(radios.disabled)
    {
      radios.disabled = (!value);
    }
    else if((radios.length) && (radios.length > 0))
    {
      for(i = 0; i < radios.length; i++)
      { 
        radios[i].disabled = (!value);
      }
    }
  }
  formDati.ricercatariffe.disabled = (!value);
  formDati.indietro.disabled = (!value);
  if(tabObj != null)
  {
    checkUnicaFiliale(formDati, false);
  }
}

function checkPreventivoOnline(formDatiSrc, formDatiDst, dataSet, request, dataSetEmittenti, formRiep, tabObj)
{
  message = "";
  datainizio = null;
  datafine = null;
  radioselected = null;  
  MIN_GIORNI = 2;
  MAX_GIORNI = 20;
  MILLIS_IN_DAY = 86400000;   
  if(formDatiDst.privacycheckpreventivo && (formDatiDst.privacycheckpreventivo.checked == false))
  {
    message += "-  E' obbligatorio prendere visione dell'informativa privacy e delle norme generali di noleggio.\n";
  }
  if (
    (isEmpty(formDatiSrc.datainizio$day.value)) ||
    (isEmpty(formDatiSrc.datainizio$month.value)) ||
    (isEmpty(formDatiSrc.datainizio$year.value))
  )
  {
    message += "-  'Data Inizio' è un campo obbligatorio.\n";
  }
  else if (!isValidDate(formDatiSrc.datainizio$day.value, formDatiSrc.datainizio$month.value, formDatiSrc.datainizio$year.value))
  {
    message += "-  'Data Inizio' non è corretta.\n";
  }
  else
  {
    datainizio = getValidDate(formDatiSrc.datainizio$day.value, formDatiSrc.datainizio$month.value, formDatiSrc.datainizio$year.value, formDatiSrc.datainizio$hour.value, formDatiSrc.datainizio$minute.value, formDatiSrc.datainizio$second.value, formDatiSrc.datainizio$millisecond.value);
  }
  if (
    (isEmpty(formDatiSrc.datafine$day.value)) ||
    (isEmpty(formDatiSrc.datafine$month.value)) ||
    (isEmpty(formDatiSrc.datafine$year.value))
  )
  {
    message += "-  'Data Fine' è un campo obbligatorio.\n";
  }
  else if (!isValidDate(formDatiSrc.datafine$day.value, formDatiSrc.datafine$month.value, formDatiSrc.datafine$year.value))
  {
    message += "-  'Data Fine' non è corretta.\n";
  }
  else
  {
    datafine = getValidDate(formDatiSrc.datafine$day.value, formDatiSrc.datafine$month.value, formDatiSrc.datafine$year.value, formDatiSrc.datafine$hour.value, formDatiSrc.datafine$minute.value, formDatiSrc.datafine$second.value, formDatiSrc.datafine$millisecond.value);
  }
  if((datainizio != null) && (datafine != null))
  {
    now = new Date();
    if(datainizio.getTime() < now.getTime())
    {
      message += "-  'Data Inizio' non corretta.\n";
    }
    if((datainizio.getTime() - (MIN_GIORNI * MILLIS_IN_DAY)) < now.getTime())
    {
      message += "-  E' possibile prenotare online almeno con " + MIN_GIORNI + " giorni di preavviso.\n";
    }
    else if(datafine.getTime() <= datainizio.getTime())
    {
      message += "-  'Data Fine' deve essere successiva a 'Data Inizio'.\n";
    }
    else if((datafine.getTime() - datainizio.getTime()) > (MAX_GIORNI * MILLIS_IN_DAY))
    {
      message += "-  Per noleggi più lunghi di giorni " + MAX_GIORNI + " rivolgersi al numero verde gratuito 800.92 92 23.\n";
    }
  }  
  if(!formDatiDst.gruppoveicolo)
  {
    message += "-  E' obbligatorio selezionare una tariffa.\n";
  }
  else 
  {
    radioselected = getSelectedRadio(formDatiDst.gruppoveicolo);
    if(!radioselected)
    {
      message += "-  E' obbligatorio selezionare una tariffa.\n";
    }
  }
  if(isEmpty(formDatiDst.nome.value))
  {
    message += "-  'Nome' è un campo obbligatorio.\n";
  }
  if(isEmpty(formDatiDst.cognome.value))
  {
    message += "-  'Cognome' è un campo obbligatorio.\n";
  }
  if(isEmpty(formDatiDst.telefono.value))
  {
    message += "-  'Telefono/Cellulare' è un campo obbligatorio.\n";
  }
  if((!isEmpty(formDatiDst.email.value)) && (!isValidEmailAddress(formDatiDst.email.value)))
  {
    message += "-  'E-Mail' non è valida.\n";
  }  

  if(isEmpty(message))
  {   
    toggleSetupDatiGruppo(formDatiDst, false, 2);    
    formDatiDst.codicefiliale.value = formDatiSrc.codicefiliale.value;     
    formDatiDst.datainizio$day.value = formDatiSrc.datainizio$day.value;
    formDatiDst.datainizio$month.value = formDatiSrc.datainizio$month.value;
    formDatiDst.datainizio$year.value = formDatiSrc.datainizio$year.value;
    formDatiDst.datainizio$hour.value = formDatiSrc.datainizio$hour.value;
    formDatiDst.datainizio$minute.value = formDatiSrc.datainizio$minute.value;
    formDatiDst.datainizio$second.value = formDatiSrc.datainizio$second.value;
    formDatiDst.datainizio$millisecond.value = formDatiSrc.datainizio$millisecond.value;
    formDatiDst.datafine$day.value = formDatiSrc.datafine$day.value;
    formDatiDst.datafine$month.value = formDatiSrc.datafine$month.value;
    formDatiDst.datafine$year.value = formDatiSrc.datafine$year.value;
    formDatiDst.datafine$hour.value = formDatiSrc.datafine$hour.value;
    formDatiDst.datafine$minute.value = formDatiSrc.datafine$minute.value;
    formDatiDst.datafine$second.value = formDatiSrc.datafine$second.value;
    formDatiDst.datafine$millisecond.value = formDatiSrc.datafine$millisecond.value;
    formDatiDst.puntorentsegnalante.value = formDatiSrc.puntorentsegnalante.value;
    formDatiDst.codicelistino.value = radioselected.lang;
    formDatiDst.codicetariffa.value = radioselected.alt;    
    formDatiDst.codicegruppo.value = radioselected.value;
    formDatiDst.gruppodisponibile.value = radioselected.title;
    setupRiepilogoStep3(formRiep, formDatiDst);
    navigateTab(tabObj, true, formDatiDst);
    loadDatiXMLSimple(formDatiDst, dataSet, request);    
  }
  else
  {
    alert("Si sono verificati i seguenti errori:\n\n" + message);
  }    
}

function setupRiepilogoStep3(formRiep, formDatiDst)
{
  radioselected = getSelectedRadio(formDatiDst.gruppoveicolo);
  if(radioselected)
  {
    aus = radioselected.accept;
    if(!isEmpty(aus))
    {
      index = aus.indexOf("@@@");
      if(index > 0)
      {
        formRiep.tariffa.value = aus.substring(0, index);
        if(aus.length > (index + 3))
        {
          formRiep.gruppoveicolo.value = aus.substring(index + 3);
        }
      }      
    }
  }
}

function copiaDatiPreventivo(formDatiSrc, formDatiDst)
{
  if(formDatiSrc && formDatiDst)
  {
    if(formDatiSrc.nome && formDatiDst.nomeidentificativo)
    {
      formDatiDst.nomeidentificativo.value = formDatiSrc.nome.value;           
    }
    if(formDatiSrc.cognome && formDatiDst.cognomeidentificativo)
    {      
      formDatiDst.cognomeidentificativo.value = formDatiSrc.cognome.value;      
    }
    if(formDatiSrc.telefono && formDatiDst.telefono)
    {
      formDatiDst.telefono.value = formDatiSrc.telefono.value;      
    }
    if(formDatiSrc.email && formDatiDst.emailidentificativo)
    {
      formDatiDst.emailidentificativo.value = formDatiSrc.email.value;      
    }
  }
}

function checkDisplayMappa(iTop, iLeft, width, height)
{  
  page = "./webservices/certificatiSSL.jsp";
  openPopupAtPositionNoScrollbar(iTop, iLeft, width, height, page);  
}

function openPrivacy(iTop, iLeft, width, height, page)
{  
  openPopupAtPositionScrollbarNoResizable(iTop, iLeft, width, height, page);  
}

function checkAltroPreventivo(formDati, callbackFunction, tabObj)
{
  message = "";  
  if(isEmpty(message))
  {   
    formDati.operation.value = "annullapreventivoonline";
    disableElements(formDati, "notsendinrequest", true);
    navigateTab(tabObj, false, formDati);
    submitFormAndCallFunction(formDati, callbackFunction);
  }
  else
  {
    alert("Si sono verificati i seguenti errori:\n\n" + message);
  }
}

function selezionaAltroPreventivo(response)
{
  toggleSetupDatiGruppo(document.formpreventivo3, true, 2);
}

function annullaPreventivoOnline(formDati, callbackFunction, tabObj)
{
  message = "";  
  if(isEmpty(message))
  {   
    formDati.operation.value = "annullapreventivoonline";
    disableElements(formDati, "notsendinrequest", true);
    //navigateTab(tabObj, false, formDati);
    submitFormAndCallFunction(formDati, callbackFunction);
  }
  else
  {
    alert("Si sono verificati i seguenti errori:\n\n" + message);
  }  
}

function annullaPreventivoOnlineCallback(response)
{
  checkChiudiPreventivo(document.formannullapreventivo, tabbedPanelContainer, document.formpreventivo1);  
}

function checkPrenotazioneOnline(formDati, dataSet, request, tabObj)
{
  message = "";
  if(formDati.privacycheckprenotazione && (formDati.privacycheckprenotazione.checked == false))
  {
    message += "-  E' obbligatorio prendere visione dell'informativa privacy e delle norme generali di noleggio.\n";
  }
  if((formDati.gruppodisponibile.value != "1") && (formDati.gruppodisponibile.value != "true"))
  {
    message += "-  Non risulta disponibilità di veicoli in filiale per il gruppo richiesto.\nContattare il numero verde gratuito 800.929223\n";
  }
  if((formDati.posfilialeattivo.value != "1") && (formDati.posfilialeattivo.value != "true"))
  {
    message += "-  La prenotazione può essere effettuata esclusivamente contattando il numero verde gratuito 800.929223\n";
  }
  if(isEmpty(formDati.numeroidentificativo.value))
  {
    message += "-  'Numero Carta' è un campo obbligatorio.\n";
  }
  if(isEmpty(formDati.numeroconfermativo.value))
  {
    message += "-  'Codice Conferma' è un campo obbligatorio.\n";
  }  
  if (!isValidDate('1', rendiNumero(formDati.meseidentificativo.value), formDati.annoidentificativo.value))
  {
    message += "-  'Data Scadenza' non è corretta.\n";
  }
  else
  {
    datascadenza = fineMese(getValidDate('1', rendiNumero(formDati.meseidentificativo.value), formDati.annoidentificativo.value, '23', '59', '59', '59'));
    now = new Date();
    if(now.getTime() > datascadenza.getTime())
    {
      message += "-  'Data Scadenza' non è valida.\n";
    }
  }
  if(isEmpty(formDati.cognomeidentificativo.value))
  {
    message += "-  'Cognome Intestatario Carta è un campo obbligatorio.\n";
  }
  if(isEmpty(formDati.nomeidentificativo.value))
  {
    message += "-  'Nome Intestatario Carta' è un campo obbligatorio.\n";
  } 
  if(isEmpty(formDati.telefono.value))
  {
    message += "-  'Telefono' è un campo obbligatorio.\n";
  } 
  if((!isEmpty(formDati.emailidentificativo.value)) && (!isValidEmailAddress(formDati.emailidentificativo.value)))
  {
    message += "-  'E-Mail' non è valida.\n";
  }
  if(isEmpty(message))
  {   
    togglePrenotazioneOnline(formDati, false);
    formDati.operation.value = "checkprenotazioneonline";  
    formDati.nome.value = formDati.nomeidentificativo.value;     
    formDati.cognome.value = formDati.cognomeidentificativo.value;    
    formDati.email.value = formDati.emailidentificativo.value;    
    if((!eNumero(formDati.importoPOSWEB.value)) || (parseFloat(formDati.importoPOSWEB.value) <= 0))
    {
      formDati.importo.value = rendiNumero(formDati.importostringa.value);
    }
    else
    {
      formDati.importo.value = rendiNumero(formDati.importoPOSWEB.value);
    }
    navigateTab(tabObj, true, formDati);
    loadDatiXMLSimple(formDati, dataSet, request);    
  }
  else
  {
    alert("Si sono verificati i seguenti errori:\n\n" + message);
  }    
}

function toggleSetupDatiGruppo(formDati, value, idxStart)
{  
  if(dataSets)
  {
    regione = null; 
    if(!eNumero(idxStart))
    {
      idxStart = 0;
    }
    for(i = idxStart; i < dataSets.length; i++)
    { 
      regione = Spry.Data.getRegion(dataSets[i]);      
      if(regione)
      {
        regione.clearContent();
      }
    }
  }
  formDati.preventivo.disabled = (!value);
  formDati.indietro1.disabled = (!value);
}

function togglePrenotazioneOnline(formDati, value)
{    
  formDati.prenota.disabled = (!value);
  formDati.annullapreventivo.disabled = (!value);
  formDati.indietro2.disabled = (!value);
}

function checkDisplayCalendarSelectBox(formDati, prefissonomeelemento, prefissodatacalendario, contextPath)
{
  if((formDati.pickdateenabled) && (formDati.pickdateenabled.value) && (formDati.pickdateenabled.value == 'true'))
  {
    elementi = formDati.elements;
    if(elementi && elementi.length > 0)
    {
      datainizio = null;
      if(prefissodatacalendario && (!isEmpty(prefissodatacalendario)))
      {
        datainizio = getDataToString(formDati, prefissodatacalendario);
      }
      if(datainizio && (!isEmpty(datainizio)))
      {
        datainizio = Trim(datainizio.substring(0, datainizio.indexOf(" ")));        
      }
      else
      {
        datainizio = null;
      }
      if(datainizio != null)
      {
        day = parseInt(rendiNumero(datainizio.substring(0, 2)));
        month = parseInt(rendiNumero(datainizio.substring(3, 5))) - 1;
        year = parseInt(rendiNumero(datainizio.substring(6, 10)));        
        aus = new Date();
        aus.setDate(day);
        aus.setMonth(month);
        aus.setYear(year);        
        day = aus.getTime() + 86400000;
        aus.setTime(day);        
        day = aus.getDate();
        datainizio = ((day < 10) ? ("0" + day) : ("" + day));
        datainizio += "-";
        month = (aus.getMonth() + 1);
        datainizio += ((month < 10) ? ("0" + month) : ("" + month));
        datainizio += "-";
        datainizio += aus.getFullYear();        
      }  
      displayCalendarSelectBox(
        elementi.namedItem(prefissonomeelemento + '$year'), 
        elementi.namedItem(prefissonomeelemento + '$month'),
        elementi.namedItem(prefissonomeelemento + '$day'),
        null,
        null,
        elementi.namedItem(prefissonomeelemento + '$day'),          
        datainizio,
        contextPath
      );
    }
  }
}

function checkDisplayMappa(iTop, iLeft, width, height, formDati, nomecampodati, eventName, contextPath)
{
  if(formDati)
  {
    if((formDati.pickdateenabled) && (formDati.pickdateenabled.value) && (formDati.pickdateenabled.value == 'true'))
    {
      if(formDati.namedItem(nomecampodati))
      {
        if(isEmpty(contextPath))
        {
          page = "./webservices/mappaitalia.jsp";
        }
        else
        {
          page = contextPath + "/webservices/mappaitalia.jsp";
        }
        page += ("?openerFormName=" + formDati.name);
        page += ("&openerFieldName=" + nomecampodati);
        page += ("&openerFieldEventName=" + eventName);
        openPopupAtPositionNoScrollbar(iTop, iLeft, width, height, page);
      }
    }
  }
}

function checkChiudiPrenotazione(formDati, tabObj, formDst)
{    
  if(formDati)
  {
    formDati.submit();
  }
  else 
  {
    enableFirstTab(formDst, true);
    tabObj.showPanel(0);
  }
}

function checkChiudiPreventivo(formDati, tabObj, formDst)
{    
  if(formDati)
  {
    formDati.submit();
  }
  else if(tabObj)
  {    
    enableFirstTab(formDst, true);
    tabObj.showPanel(0);
  }
}

function enableFirstTab(formDati, value)
{
  formDati.pickdateenabled.value = "" + value;
  formDati.datainizio$hour.disabled = (!value);
  formDati.datafine$hour.disabled = (!value);
  formDati.tipoveicolo.disabled = (!value);
  formDati.regioneoperativa.disabled = (!value);
  formDati.provinciaoperativa.disabled = (!value);
  formDati.cittaoperativa.disabled = (!value);
  formDati.avanti.disabled = (!value);
}
