﻿var return_field;
var multipleSelectionDest = new Array();
var multipleSelectionAero = new Array();


/*
 * Funzione per mostrare e nascondere i div
 * 
 * @author Paolo Pascarelli <pablo@erweb.it>
 * @version 0.1
 * 
 * @param string  $id campo 		id del div da mostrare o nascondere
 * @param boolean $open 			specifica se mostrare o nascondere il div
 * @param string  $ret_field_val 	se si specifica di aprire un div bisogna specificare l'id del campo di ritorno
 * 									se si specifica di chiudere il div bisogna specificare il valore di ritorno
 *                                  se restituisce il valore di ritorno è composto da nome#id
 * 
 */
function OpenCloseDiv(id, open, ret_field_val){
	
	var boolExistHidden = false;
	
	//alert('ret_field_val: ' + ret_field_val);
	
	if (ret_field_val.indexOf('#') >= 0) {
	
	    boolExistHidden = true;
	    
	    splitString = ret_field_val.split("#");
	    ret_field_val = splitString[0];

	    //Ricreo tutta la stringa creata dalle schede città per passarla alla pagina succcessiva.
        //Mi serve per riempire i parametri di ricerca della pagina Risultato
        //Può essere di due tipi:
        // Ibiza#5412
        // SelezionaMultipla#82_23_241
	    ret_field_hidden = splitString[0] + "*" + splitString[1];
	    //alert(ret_field_hidden)
        
        //Vecchia versione
        //ret_field_hidden = splitString[1];
	} 
	
	elenco 		= document.getElementById(id);
   				
	if (open == true){
	    
		elenco.style.display 	= 'block';
		return_field 			= ret_field_val;				
	}else{
	    //alert('ret_field_val: ' + ret_field_val);
	    
	    //alert('chiudo: ');
	    if(ret_field_val=="return_aero")
	    {
	        if(document.getElementById(ret_field_val)!=null)
	        {
	            //alert('entro: ');
	            //alert("pippo: " + document.getElementById(ret_field_val).value);
	            if(document.getElementById(ret_field_val).value.indexOf('#') == -1)
	            {
	                ret_field_val =document.getElementById(ret_field_val).value;
	                //ret_field_hidden=document.getElementById(ret_field_val+ "_hidden").value; 
	                //alert(ret_field_val);
	                //alert(ret_field_hidden);
	            }
	        }
	    }
		elenco.style.display = 'none';
	
		if (return_field != ''){
			if (ret_field_val != ''){
			    //alert(return_field);
				document.getElementById(return_field).value = ret_field_val;
				//alert(document.getElementById(return_field).value);
				if (boolExistHidden) {
				    document.getElementById(return_field + "_hidden").value = ret_field_hidden;
				    //Devo svuotare il multipleSelection altrimenti mi potrebbe tenere le selezioni delle textbox
				    /* Da un errore!
				    if (return_field.indexOf("aero")>=0) {
				        multipleSelectionAero = new Array();
				    } else {
				        multipleSelectionDest = new Array();
				    }
				    */
			    }
			} else {
			    document.getElementById(return_field).value = "";
			    document.getElementById(return_field + "_hidden").value = "";
			}						
		}					
	}
	//alert(document.getElementById(return_field + "_hidden").value);				
}

// MT 13/05/2009
// metodo aggiunto per rimuovere un item dall'array
function removeItem(originalArray, itemToRemove) {
	var j = 0;	
	while (j < originalArray.length) {	
		//alert(originalArray[j]);	
		//alert(itemToRemove);
		//Modificato da Cristian Fasano il 9/9/2009 per togliere dall'array l'elemento
		//che viene dececcato.
		//c'era il problema che se cecchiamo una macro destinazione e poi andiamo a dececcare 
		//una sottodestinazione non si toglieva la destinazione dall'elemento
		
		if(originalArray[j].toString().indexOf("_")>-1)
		{
		    
		    if(originalArray[j].toString().indexOf(itemToRemove + "_")>-1)
		    {
		        originalArray[j] = originalArray[j].replace(itemToRemove + "_","");
		    }
		    else if (originalArray[j].toString().indexOf(itemToRemove )>-1)
		    {
		        originalArray[j] = originalArray[j].replace(itemToRemove,"");
		    }
		}
		else
		{
		    
		    if (originalArray[j] == itemToRemove) 
		    {			
	            originalArray.splice(j, 1);	
	        }
	    } 
		
		if(originalArray[j].substr(originalArray[j].length-1)=="_")
		{
		    originalArray[j] = originalArray[j].substr(0,originalArray[j].length-1);
		}
		
		if(originalArray[j].length>0)
		{
		
		}
		//alert(originalArray[j].length);
		
		

		j++; 
	    
    }
    
    
    return originalArray;
}



function manageMultipleSelection(chkBox, idItem){
    //alert(chkBox.id + " - " + idItem);
    //alert(multipleSelectionDest.length);
    
    if (chkBox.checked) {
        
        if (chkBox.id.indexOf("Aero")>=0) {
            multipleSelectionAero.push(idItem);
        } 
        if (chkBox.id.indexOf("Dest")>=0) {
            multipleSelectionDest.push(idItem);
        }        
        
    } else {          
        if (chkBox.id.indexOf("Aero")>=0) {
            removeItem(multipleSelectionAero, idItem);
        } 
        if (chkBox.id.indexOf("Dest")>=0) {
            removeItem(multipleSelectionDest, idItem);
        }        
    }
    
    
   

}

function saveMultipleSelection(ret_field_val, idDivToClose){
    //alert(multipleSelectionAero.length);
    //alert(idDivToClose.indexOf("aero"));
    
    //alert(multipleSelectionDest.length);
    //alert(idDivToClose.indexOf("dest"));
    
    
    
    
    if (idDivToClose.indexOf("aero")>=0 && multipleSelectionAero.length>0) {    
        OpenCloseDiv(idDivToClose, false, "Selezione Multipla#" + multipleSelectionAero.join('_'));
    } else if(idDivToClose.indexOf("dest")>=0 && multipleSelectionDest.length>0) {
        OpenCloseDiv(idDivToClose, false, "Selezione Multipla#" + multipleSelectionDest.join('_'));
    } else {
        OpenCloseDiv(idDivToClose, false, "");
    }
    
    //alert(document.getElementById(ret_field_val + "_hidden").value);
}

function manageChildSelection(chkBox, idChild){
    if (idChild != ''){
        if (idChild.indexOf('_') >= 0) {
            arrIdChild = idChild.split("_");
            
            for (i = 0; i < arrIdChild.length; i++){
                document.getElementById(arrIdChild[i]).checked = chkBox.checked;
            }
        }
        else{
            document.getElementById(idChild).checked = chkBox.checked;
        }
    }
}

function manageParentSelection(chkBox, idParent){

    if (chkBox.checked == false){
        document.getElementById(idParent).checked = chkBox.checked;
    }
    else{
    
    }

}

function EseguiRicerca(){
    //alert("inizio ricerca");
    idDest = document.getElementById('return_dest_hidden').value;
    //alert("idDest: " + idDest);
    idAero = document.getElementById('return_aero_hidden').value;
    //alert("idAero: " + idAero);
    dataDa = document.getElementById('start-date').value;
    //alert("dataDa: " + dataDa);
    dataA = document.getElementById('end-date').value;
    //alert("dataA: " + dataA);
    if (idDest=="") {
        alert("Attenzione, devi selezionare la destinazione."); 
    } else if (dataDa=="" || dataA=="")  {
        alert("Attenzione, devi selezionare la 'partenza tra il giorno e il giorno'.");   
    } else {
        callWaitingPage();
        window.location.href = 'Risultato.aspx?IdDestinazioni=' + idDest + '&IdAeroporti=' + idAero + '&DataDa=' + dataDa + '&DataA=' + dataA;
    }
}

function callWaitingPage() {
    document.getElementById("loadingPage").style.display='';
    var htmlText = "<div id='loading' class='loading'><div class='text'><h2>Attendere prego ...</h2><img src='../image/global/loader_clock.gif' alt='' /><h3>Caricamento in corso</h3></div></div>"; 
    
    var arVersion = navigator.appVersion.split("MSIE")
    var version = parseFloat(arVersion[1])
    
    jQuery(function($) {
        //In base al tipo di browser richiamo una funzione diversa per il caricamento del loading 
        if ((version>=7 && version<8)) {
            //IE 7
            //alert("IE versione: " + version);
            $("#loadingPage").html(''); //svuoto subito il div dal contenuto. 
            $("#loadingPage").load('loading.html'); //carico per rendere la gif animata
        } else if(navigator.appVersion.indexOf("Chrome")>=0) {
            //Chrome
            document.getElementById("loadingPage").style.display = ''; //mostro in contenuto del div
        } else {
            //altri: Mozilla, IE8, Safari
            $("#loadingPage").html(htmlText); //Sostituisco il contenuto del div
            //setTimeout(function() { /* non fare nulla per un sec*/ },100);
        }
    });
}

function callWaitingPageCC() {
    document.getElementById("loadingPage").style.display='';
    var htmlText = "<div id='loading' class='loading'><div class='text'><h2>ATTENZIONE</h2><img src='../image/global/loader_clock.gif' alt='' /><h3>Stiamo finalizzando il tuo acquisto con i circuiti di pagamento delle carte di credito. L’operazione richiede fino a 40 secondi. Durante questo intervallo di tempo, ti chiediamo di non svolgere operazioni sul tuo browser. </h3></div></div>"; 
    
    var arVersion = navigator.appVersion.split("MSIE")
    var version = parseFloat(arVersion[1])
    
    jQuery(function($) {
        //In base al tipo di browser richiamo una funzione diversa per il caricamento del loading 
        if ((version>=7 && version<8)) {
            //IE 7
            //alert("IE versione: " + version);
            $("#loadingPage").html(''); //svuoto subito il div dal contenuto. 
            $("#loadingPage").load('loadingCC.html'); //carico per rendere la gif animata
        } else if(navigator.appVersion.indexOf("Chrome")>=0) {
            //Chrome
            document.getElementById("loadingPage").style.display = ''; //mostro in contenuto del div
        } else {
            //altri: Mozilla, IE8, Safari
            $("#loadingPage").html(htmlText); //Sostituisco il contenuto del div
            //setTimeout(function() { /* non fare nulla per un sec*/ },100);
        }
    });
}

function resetWaitingPage() {
    document.getElementById("loadingPage").style.display='none';
}

