/* Init trasferimenti */

function init_trasf () {

  /* Controllo sul totale del trasferimento */
  var tabs = document.getElementsByClassName('trasferimenti');

  for (var i = 0; i < tabs.length; i++) {

    $(tabs[i].id).onblur   = function () {
                               getData_trasf(this.id);
                             }

    $(tabs[i].id).onfocus  = function () {
                               getData_trasf(this.id);
                             }

    $(tabs[i].id).onchange = function () {
                               getData_trasf(this.id);
                             }

  }
 /* Controllo sul box */
 $('trasferimento[tipo]').onchange            = function() {
                                                  swapBox(this.id);
                                                }

 /* Reset del Form */
 $('reset_form').onclick		      = function() {
						  fullyReset();
 					        }

 /* Controllo dropdown (Andata e Ritorno) */
 $('trasferimento[partenza]').onchange        = function() {
                                                  verificaDropDown('trasferimento[arrivo]', 'trasferimento[partenza]','trasferimento[andata][volo_provdest]');
						  verificaDropDown('trasferimento[partenza]', 'trasferimento[arrivo]','trasferimento[ritorno][volo_provdest]');
                                                }
 $('trasferimento[arrivo]').onchange          = function() {
                                                  verificaDropDown('trasferimento[arrivo]', 'trasferimento[partenza]','trasferimento[andata][volo_provdest]');
						  verificaDropDown('trasferimento[partenza]', 'trasferimento[arrivo]','trasferimento[ritorno][volo_provdest]');
                                                }
 /* ANDATA - Controllo shuttle */
 $('trasferimento[andata][data]').onblur    = function() {
                                                  checkShuttle(this.id, 'trasferimento[partenza]','trasferimento[andata][veicolo]');
						  enableVeicoloAndata();
                                                }
 /* ANDATA - COntrollo Pickup */
 $('trasferimento[andata][veicolo]').onchange = function() {
                                                  changePickup(this.id, 'trasferimento[partenza]', 'trasferimento[arrivo]', 'container_trasferimento[andata][pickup_ora]', 'trasferimento[andata][pickup_luogo]', 'trasferimento[andata][dropoff]', 'trasferimento[andata][data]', 'container_trasferimento[andata][pickup_luogo]','container_trasferimento[andata][dropoff]','container_trasferimento[andata][durata_trasferimento]');          
                                                }

 /* ------- */

 /* RITORNO - Controllo shuttle */
 $('trasferimento[ritorno][data]').onblur    = function() {
                                                  checkShuttle(this.id, 'trasferimento[arrivo]','trasferimento[ritorno][veicolo]');
						  enableVeicoloRitorno();
                                                }
 /* RITORNO - COntrollo Pickup */
 $('trasferimento[ritorno][veicolo]').onchange = function() {
                                                  changePickup(this.id, 'trasferimento[arrivo]', 'trasferimento[partenza]', 'container_trasferimento[ritorno][pickup_ora]', 'trasferimento[ritorno][pickup_luogo]', 'trasferimento[ritorno][dropoff]', 'trasferimento[ritorno][data]', 'container_trasferimento[ritorno][pickup_luogo]','container_trasferimento[ritorno][dropoff]','container_trasferimento[ritorno][durata_trasferimento]');
                                                }
 

}

/* Funzioni */

/* reset del form */

function fullyReset() {
  $('andata_container').setStyle({display: 'none'});
  $('ritorno_container').setStyle({display: 'none'});

  $('trasferimento[partenza]').enable();
  $('trasferimento[arrivo]').enable();
  $('trasferimento[tipo]').enable(); 
  $('trasferimento[andata][veicolo]').disable();
  $('trasferimento[ritorno][veicolo]').disable();
}

function enableVeicoloAndata() {
  $('trasferimento[andata][veicolo]').enable();

}

function enableVeicoloRitorno() {
  $('trasferimento[ritorno][veicolo]').enable();
}


/* Controlla disponibilita shuttle */


function checkShuttle(id,destinazione,container){

  cod_destinazione=$(destinazione).value;
  tmp_destinazione=cod_destinazione.split("-");
  id_part_dest=tmp_destinazione[0];
  mydata=$(id).value;

  var url = 'ajax/ajx-check-shuttle.php';
  var pars = 'data='+ mydata +'&id_pacchetto=' + $('id_pacchetto').value + '&id_part_dest=' + id_part_dest + '&container=' + container;

  var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: showLoad_checkShuttle, 
                                       onComplete: function(response) {
                                                     showResponse_checkShuttle(response,pars);
                                                   }
                                      } 
                               );
}

function showLoad_checkShuttle(){

}

function showResponse_checkShuttle(originalRequest,pars){
  var newData = originalRequest.responseText;

  /*param=pars.split("&");*/
  if ( pars.search("&") == -1 ){
    param=pars.split(",");
  }else{
    param=pars.split("&");
  }
  
  spazio_container2=param[3].replace('container=','');

  if (newData == "0"){
    //Non c'e' lo shuttle allora lo tolgo dalla tendina veicolo
    removeSelectOption(spazio_container2, 'shuttle');
  }else{
    addSelectOption(spazio_container2,'shuttle','Shuttle');
  }

}

/***/

/* Aggiunge o rimuove valori da una select */

function removeSelectOption(selectId, value) {
 var select = document.getElementById(selectId);
 var kids = select.childNodes; 
 var numkids = kids.length; 
 for (var i = 0; i < numkids; i++) {
   if (kids[i].value == value) {
     select.removeChild(kids[i]);
     break;
   }
 }
}

function addSelectOption(selectId, value, display) {
  if (display == null) {
    display = value;
  }

  // Aggiungo Controllo che se gia presente non lo aggiungo di nuovo
  var select = document.getElementById(selectId);
  var kids = select.childNodes; 
  var numkids = kids.length; 
  for (var i = 0; i < numkids; i++) {
    if (kids[i].value == value) {
      return false;
    }
  }

  var anOption = document.createElement('option');
  anOption.value = value;
  anOption.innerHTML = display;
  document.getElementById(selectId).appendChild(anOption);
  return anOption;
}

/* ANDATA - Cambia il valore di pickup */

function changePickup(id,partenza,arrivo,container_pickup_ora,pickup_luogo,dropoff,data,container_pickup_luogo,container_dropoff_luogo,container_durata_trasferimento){
  if ( ($(id).value) == "privato" ) {
     
    if ( ($(partenza).value) == "1-FER" ){
      $(container_pickup_ora).replace('<span id="' +container_pickup_ora+ '">Circa 2h45m prima</span>');
      $(container_pickup_luogo).replace('<span id="' +container_pickup_luogo+ '"><input type="text" size="16" name="' +pickup_luogo+ '" id="' +pickup_luogo+ '" value=""></span>');
      $(pickup_luogo).value="Tuo/Your Hotel";
      $(container_dropoff_luogo).replace('<span id="' +container_dropoff_luogo+ '"><input type="text" size="16" name="' +dropoff+ '" id="' +dropoff+ '" value=""></span>');
      $(dropoff).value=$(arrivo).value;
    }else{
      $(container_pickup_ora).replace('<span id="' +container_pickup_ora+ '">Circa 30m dall\'arrivo</span>');
      $(container_pickup_luogo).replace('<span id="' +container_pickup_luogo+ '"><input type="text" size="16" name="' +pickup_luogo+'" id="' +pickup_luogo+ '" value=""></span>');
      $(container_dropoff_luogo).replace('<span id="' +container_dropoff_luogo+ '"><input type="text" size="16" name="' +dropoff+'" id="' +dropoff+ '" value=""></span>');
      $(pickup_luogo).value=$(partenza).value;
      $(dropoff).value="Tuo/Your Hotel";
    }
  }

  if ( ($(id).value) == "shuttle" ) {

    cod_partenza=$(partenza).value;
    tmp_partenza=cod_partenza.split("-");
    id_part_dest=tmp_partenza[0];
    mydata= $(data).value;

    if ( ($(partenza).value) == "1-FER" ){
      /*
      $(pickup_luogo).value="Link + mappa";
      */

      $(container_pickup_luogo).replace('<span id="' +container_pickup_luogo+ '"><a href="maps/carta_ferrara.pdf" target="_blank">Maps/Mappa</a><select name="' +pickup_luogo+ '"><option value="">Zone</option><option value="Zona A">Zona A</option><option value="Zona B">Zona B</option><option value="Zona C">Zona C</option><option value="Zona D">Zona D</option><option value="Zona E">Zona E</option><option value="Zona F">Zona F</option><option value="Zona G">Zona G</option><option value="Zona H">Zona H</option></select></span>');
      $(dropoff).value=$(arrivo).value;

    }else{

      $(pickup_luogo).value=$(partenza).value;
      /* $(dropoff).value='Link + mappa'; */
      $(container_dropoff_luogo).replace('<span id="' +container_dropoff_luogo+ '"><a href="maps/carta_ferrara.pdf" target="_blank">Maps/Mappa</a><select name="' +dropoff+ '"><option value="">Zone</option><option value="Zona A">Zona A</option><option value="Zona B">Zona B</option><option value="Zona C">Zona C</option><option value="Zona D">Zona D</option><option value="Zona E">Zona E</option><option value="Zona F">Zona F</option><option value="Zona G">Zona G</option><option value="Zona H">Zona H</option></select></span>');

    }

    var url = 'ajax/ajx-orari-shuttle.php';
    var pars = 'data='+ mydata +'&id_pacchetto=' + $('id_pacchetto').value + '&id_part_dest=' + id_part_dest + '&container='+ container_pickup_ora;

    var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: showLoad_orariShuttle,
                                       onComplete: function(response) {
                                                     showResponse_orariShuttle(response,pars);
                                                   }
                                      }
                               );

  }

  // Scrivo il valore della durata del viaggio
  var url = 'ajax/ajx-get-durata-trasferimento.php';
  var pars = 'trasferimento_tipo='+ $(id).value +'&trasferimento_partenza=' + $('trasferimento[partenza]').value +'&trasferimento_arrivo=' + $('trasferimento[arrivo]').value +'&container='+container_durata_trasferimento;

  var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: showLoad_tipo_trasferimento,
                                       onComplete: function(response) {
                                                     showResponse_tipo_trasferimento(response,pars);
                                                   }
                                      }
                               );


}

function showLoad_tipo_trasferimento(){
}

function showResponse_tipo_trasferimento(originalRequest,pars){
 var newData = originalRequest.responseText;

  if ( pars.search("&") == -1 ){
    param=pars.split(",");
  }else{
    param=pars.split("&");
  }

  spazio_contenitore=param[3].replace('container=','');
  $(spazio_contenitore).replace('<span id="' + spazio_contenitore + '">' + newData + '</span>');
}


function showLoad_orariShuttle(){

}

function showResponse_orariShuttle(originalRequest,pars){
  var newData = originalRequest.responseText;

  if ( pars.search("&") == -1 ){
    param=pars.split(",");
  }else{
    param=pars.split("&");
  }

  spazio_contenitore=param[3].replace('container=','');
  $(spazio_contenitore).replace('<span id="' + spazio_contenitore + '">' + newData + '</span>');

}

/***/

/* Verifica che la partenza differisca dall'arrivo */

function verificaDropDown(id_arrivo,id_partenza,volo_provdest) {
  if ( ($(id_arrivo).value) == ($(id_partenza).value) ){
    alert("Attenzione: non e' possibile scegliere un arrivo uguale alla partenza / Pay attention, select two different from/to");
    return false;
  }
/*  if ( ($(id_partenza).value) == "1-FER" ){
    $(volo_provdest).value="Destinazione Volo / Flight Destination";
  }else{
    $(volo_provdest).value="Provenienza Volo / Flight Arriving from";
  }*/
}

/***/

/* Mostra solo Box Andata, solo Box Ritorno oppure entrambi */

function swapBox(id){

  if ( $('trasferimento[partenza]').value == "" ) { 
    alert("Attenzione, selezionare partenza e arrivo prima / Pay attention, select the from/to before");
    $('trasferimento[tipo]').value="";
    return false;
  }

  if ( $('trasferimento[arrivo]').value == "" ) { 
    alert("Attenzione, selezionare partenza e arrivo prima / Pay attention, select the from/to before");
    $('trasferimento[tipo]').value="";
    return false;
  }

  /* Seleziono il box giusto */

  if ( ($(id).value) == "" ){
    $('andata_container').setStyle({display: 'none'});
    $('ritorno_container').setStyle({display: 'none'});
  }

  if ( ($(id).value) == "a" ){
    $('andata_container').setStyle({display: 'block'});
    $('ritorno_container').setStyle({display: 'none'});
  }

  if ( ($(id).value) == "r" ){
    $('andata_container').setStyle({display: 'none'});
    $('ritorno_container').setStyle({display: 'block'});
  }

  if ( ($(id).value) == "ar" ){
    $('andata_container').setStyle({display: 'block'});
    $('ritorno_container').setStyle({display: 'block'});
  }

  /* Disabilito partenza e arrivo */ 
  $('trasferimento[partenza]').disable();
  $('trasferimento[arrivo]').disable();
  $('trasferimento[tipo]').disable();

}

/* Calcolo somma totale del trassporto */

function getData_trasf(id) {

  /* Per accedere ad un elemento di un form, in formato array, usare .elements[nome array[][]] */

  var trasferimento_tipo	=		$('trasferimento[tipo]').value;

  /* Andata */

  /* Ritorno */


  var url = 'ajax/ajx-gettrasferimento.php';
  var pars = 'id_pacchetto=' + $('id_pacchetto').value + 
             '&id_manifestazione=' + $('id_manifestazione_passato').value +
             '&trasferimento[partenza]=' + $('trasferimento[partenza]').value +
             '&trasferimento[arrivo]=' + $('trasferimento[arrivo]').value +
             '&trasferimento[tipo]=' + $('trasferimento[tipo]').value +
             '&trasferimento[andata][n_adulti]=' + $('trasferimento[andata][n_adulti]').value + 
             '&trasferimento[andata][n_bambini]=' + $('trasferimento[andata][n_bambini]').value + 
             '&trasferimento[andata][veicolo]='+ $('trasferimento[andata][veicolo]').value +
             '&trasferimento[ritorno][n_adulti]=' + $('trasferimento[ritorno][n_adulti]').value + 
             '&trasferimento[ritorno][n_bambini]=' + $('trasferimento[ritorno][n_bambini]').value + 
             '&trasferimento[ritorno][veicolo]='+ $('trasferimento[ritorno][veicolo]').value;

  var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: showLoad_trasf, 
                                       onComplete: function(response) {
                                                     showResponse_trasf(response,pars);
                                                   }
                                      } 
                               );
}

function showLoad_trasf () {
}

function showResponse_trasf (originalRequest,pars) {
  var newData = originalRequest.responseText;

  /* estraggo l'id dai dati passati */

  var apars=pars.split("&");

  /* apars[1] -> id_extra=nn */

  var aid=apars[1].split("=");
  var myid=aid[1];

  /* splitto la risposta per avere importo_adulto | importo_bambino | importo_totale*/

  importo=newData.split("|");

  // Importo Totale
  if (importo[3]>=0){
    document.prenotazione.elements['importo_totale_trasferimento'].value = importo[3];
    document.getElementById("cont_importo_totale_trasferimento").style.display = 'block';
  }

}

/***/

/*
 * Per usare questa chiamata ajax, richiama init_trasf() dentro alla pagina in cui occorre
 *  
 */
