// JavaScript Document

function changeDest(objDest,ltsTipo) {				
	var objOption = objDest.options[objDest.selectedIndex];
	var propval = objOption.getAttribute("opt:propval");	 	
	if (propval) {
		viewWApane('home_dest_2','/booking/ajax/home_dest_2.cfm?pkpropval='+ propval+'&lstTipo='+ltsTipo);
	} else {
		viewWApane('home_dest_2','/booking/ajax/home_dest_2.cfm?msghome=true');	
		var objOption = objDest.options[objDest.selectedIndex];			
	}
	
	var oDest = document.getElementById('destination_2');
	if (oDest)
		oDest.value = objOption.text;	
		
	document.getElementById('SRC_PRP_1_desc').value =  objOption.text;
	
	viewWApane('home_dest_3','/booking/ajax/home_dest_3.cfm?msghome=true');
	changeTP(objDest);
}

function changeDest2(objDest,ltsTipo) {			
	var objOption = objDest.options[objDest.selectedIndex];
	var propval = objOption.getAttribute("opt:propval");
	if (propval) {
		viewWApane('home_dest_3','/booking/ajax/home_dest_3.cfm?pkpropval='+ propval+'&lstTipo='+ltsTipo);
	} else {
		viewWApane('home_dest_3','/booking/ajax/home_dest_3.cfm?msghome=true=');
	}	
	changeTP(objDest);
}
function changeDest3(objDest) {			
	var objOption = objDest.options[objDest.selectedIndex];
	var propval = objOption.getAttribute("opt:propval");
	changeTP(objDest);
}
function changeDestMulti(objDest) {				
	var objOption = objDest.options[objDest.selectedIndex];
	var propval = objOption.getAttribute("opt:propval");		
	if (propval) {
		viewWApane('home_dest_multi','/booking/ajax/home_dest_multi.cfm?pkpropval='+ propval);
	} else {
		viewWApane('home_dest_multi','/booking/ajax/home_dest_multi.cfm?msghome=true');	
		var objOption = objDest.options[objDest.selectedIndex];			
	}
	
	var oDest = document.getElementById('destination_2');
	if (oDest)
		oDest.value = objOption.text;	
		
	document.getElementById('SRC_PRP_1_desc').value =  objOption.text;
}
function changeTP(objDest) {			
	var destSelected = opt.core.trim(objDest.options[objDest.selectedIndex].value);
	document.getElementById('SRC_PRP_1').value = destSelected;
	
	var objTipoProd = document.getElementById('SRC_PT_SRC');
	var objOption = objTipoProd.options[objTipoProd.selectedIndex];
	
	var bHasFixedDate = eval(objOption.getAttribute('opt:fixeddatedept'));
	if (bHasFixedDate && destSelected != '') {
		var sUrl = "/booking/ajax/selDatePartenza.cfm?lstPkPropval="+destSelected + "&tipoProd=" + objOption.value;
		viewWApane('home_datedepartures',sUrl, '<center><img src="/booking/images/ajax-loader.gif">Caricamento date partenza...</center>');
	} else {
		viewWApane('home_datedepartures','/booking/ajax/selDatePartenza.cfm?disabled=true');
	}
	changeHomeDept();
}	

function changeHomeDept() {		
	var objTipoProd = document.getElementById('SRC_PT_SRC');
	var objOption = objTipoProd.options[objTipoProd.selectedIndex];
	var lstPkPropVal = document.getElementById('SRC_PRP_1').value;
	var bShowAptDept = eval(objOption.getAttribute("opt:showaptdept"));
	if (bShowAptDept && lstPkPropVal != '') {
		document.getElementById('home_propdepartures').style.visibility = "visible";
		var typeApt = objOption.getAttribute("opt:deptype");
		if (typeApt == '232') { // cityAirports
			document.getElementById('FlyType').value = 'LI';
			viewWApane('home_propdepartures','/booking/ajax/cityAirports.cfm','Ricerca apt ...');
		} else { // apt proprieta 4
			document.getElementById('FlyType').value = 'LC';
			if (lstPkPropVal != '') {			
				var objDateBegin = dijit.byId("SRC_PERIOD_BEGIN");
				if (objDateBegin)
					dateBegin = dateFormat(objDateBegin.getValue(), 'MM/dd/yyyy');
				
				var periodToSearch = dateBegin;
				
				var bHasFixedDate = eval(objOption.getAttribute('opt:fixeddatedept'));
				if (! bHasFixedDate) {
					var objDateEnd = dijit.byId("SRC_PERIOD_END");					
					if (objDateEnd)
						dateEnd = dateFormat(objDateEnd.getValue(), 'MM/dd/yyyy');		
					if (dateBegin != dateEnd)
						var periodToSearch = dateBegin + ";" + dateEnd;
				}	
				
				var sParams = 'src_pt=' +objOption.value + '&lstPkpropVal='+lstPkPropVal+'&period='+ periodToSearch;	
				viewWApane('home_propdepartures','/booking/ajax/home_departures.cfm?' + sParams,'Ricerca apt ...');	
			} else {
				viewWApane('home_propdepartures','/booking/ajax/home_departures.cfm?disable=true');					
			}					
		}
	} else {
		viewWApane('home_propdepartures','/booking/ajax/home_departures.cfm?disable=true');
		if (bShowAptDept)
			document.getElementById('home_propdepartures').style.visibility = "visible";
		else	
			document.getElementById('home_propdepartures').style.visibility = "hidden";
	}		
}

function changeFlyEndDate(){
	var objStartDate = dijit.byId("startDateFly");
	var objEndDate = dijit.byId("endDateFly");
	objEndDate.setValue(dojo.date.add(objStartDate.getValue(), 'day', parseInt(7)));
}
	 	
function setDepartureApt(objSelect) {
	var objOption = objSelect.options[objSelect.selectedIndex];
	var oPartCode = document.getElementById('AptDeptCod');
	if (oPartCode)
		oPartCode.value = objOption.getAttribute('opt:codapt');
		
	var oPart = document.getElementById('AptDeptDesc');
	if (oPart)
		oPart.value = objOption.text;		
}	 		

function doSearch() {		
	var objTipoProd = document.getElementById('SRC_PT_SRC');
	if (objTipoProd.selectedIndex < 1) {
		alert("Selezionare una tipologia di prodotto");
		return;
	}
	
	var objDest = opt.core.trim(document.SRC.SRC_PRP_1.value);
	if (objDest == '') {		
		alert("Selezionare una destinazione");
		return;
	}
		
	var objProdOptions = objTipoProd.options[objTipoProd.selectedIndex];
	var bHasFixedDate = eval(objProdOptions.getAttribute('opt:fixeddatedept'));	
	if (bHasFixedDate) {
		var objSelectDate = document.getElementById('selDataPartenza');
		if (objSelectDate.selectedIndex < 1) {
			alert("Selezionare una data partenza");
			return;
		}
	} else {
		if ( ! dijit.byId('SRC_PERIOD_BEGIN').isValid() ||
			 ! dijit.byId('SRC_PERIOD_END').isValid()) {
			alert("Attenzione: data partenza non ammessa!\nVerificare.");
			return;
		}
	}
		
	var objTotPax = document.getElementById('ADULTS');
	if (parseInt(objTotPax.value) == 0){
		alert("Attenzione: definire il numero di passeggeri");								
		return;
	}
	// controlli ok , ricerca tlp
	var bookpage = doBooking('/booking/booking.cfm');		
	document.getElementById('SRC').submit();	
	bookpage.focus();			
}	

function setHiddenDest(objDest,ind) {			
	if (objDest.type == 'radio') {			
		var sDescr = objDest.getAttribute("opt:descr");
	} else {	
		var sDescr = objDest.options[objDest.selectedIndex].text;
	}
	document.getElementById('destination_' + ind).value= sDescr.toUpperCase();	
}

function countPax(suffix){	
	var numAdu = 0;
	var numChd = 0;	
	var sRoomVal = "";
	var arrayOptionPax = getElementsByAttribute('id','RoomType'+suffix, 'select');				
	for (var i=0;i < arrayOptionPax.length;i++) {
		currentValore = arrayOptionPax[i].options[arrayOptionPax[i].selectedIndex].text;
		numAdu += (arrayOptionPax[i].options[arrayOptionPax[i].selectedIndex].getAttribute('opt_numAdults'))*currentValore;
		numChd += (arrayOptionPax[i].options[arrayOptionPax[i].selectedIndex].getAttribute('opt_numChilds'))*currentValore;
		sRoomVal += arrayOptionPax[i].options[arrayOptionPax[i].selectedIndex].value + ',';
	}
	var objRoomType = document.getElementById('RoomType');	
	objRoomType.value = sRoomVal.substr(0,sRoomVal.length-1);
	document.getElementById('tot_AD' + suffix).innerHTML = numAdu;
	document.getElementById('tot_CH' + suffix).innerHTML = numChd;
	if (suffix == '_iti') {
		document.getElementById('ADULTS' + suffix).value = numAdu;
		document.getElementById('CHILDS' + suffix).value = numChd;	
	}	else{
		document.getElementById('ADULTS').value = numAdu;
		document.getElementById('CHILDS').value = numChd;	
	}
}

function setPaxStandard(field,sValue) {
	var oPax = document.getElementById(field).value = sValue;
}

function setPeriodFly() {
	var oStartDate = dijit.byId('SRC_PERIOD_BEGIN');
	var oStartDateFly = dijit.byId('startDateFly');
	oStartDate.setValue(oStartDateFly.getValue());
	
	var oEndDate = dijit.byId('SRC_PERIOD_END');
	var oEndDateFly = dijit.byId('endDateFly');
	oEndDate.setValue(oEndDateFly.getValue());	
}

function changeTipoProd(objTipoProd) {
	var objProdOptions = objTipoProd.options[objTipoProd.selectedIndex];
	var bHasFixedDate = eval(objProdOptions.getAttribute('opt:fixeddatedept'));
	var bHasAptDept = eval(objProdOptions.getAttribute('opt:showaptdept'));
	
	if (bHasAptDept) {
		document.getElementById('home_propdepartures').style.visibility = "visible";
	} else {
		document.getElementById('home_propdepartures').style.visibility = "hidden";
	}
	
	if (bHasFixedDate) {
		document.getElementById('divDojoStartDate').style.display = 'none';
		document.getElementById('divFixedStartDate').style.display = '';
		
	} else {
		document.getElementById('divDojoStartDate').style.display = '';
		document.getElementById('divFixedStartDate').style.display = 'none';
	}
	
	setDojoStartDate();
	
	viewWApane('home_dest_1','/booking/ajax/home_dest_1.cfm?destType=combo&lstTipo='+ objTipoProd.value);	
	viewWApane('home_dest_2','/booking/ajax/home_dest_2.cfm?msghome=true');	
    viewWApane('home_dest_3','/booking/ajax/home_dest_3.cfm?msghome=true');
    viewWApane('home_datedepartures','/booking/ajax/selDatePartenza.cfm?disabled=true');	
    viewWApane('home_propdepartures','/booking/ajax/home_departures.cfm?disable=true');
    
    document.getElementById('SRC_PRP_1').value = '';
    document.getElementById('SRC_PRP_1_desc').value = '';
	document.getElementById('SRC_PT').value= objTipoProd.value;	
}	

function changeStartDate(){
	setDojoStartDate();
	changeHomeDept();	
} 

function changeEndDate(){
	var objDateEndSelected = dijit.byId("txt_date_to");
	var objEndDate = dijit.byId("SRC_PERIOD_END");
	objEndDate.setValue(objDateEndSelected.getValue());
	changeHomeDept();	
}

function setDojoStartDate() {
	var objDateStartSelected = dijit.byId("txt_date_from");
	var objDateEndSelected = dijit.byId("txt_date_to");
	objDateEndSelected.setValue(dojo.date.add(objDateStartSelected.getValue(), 'day', parseInt(7)));
	
	var objStartDate = dijit.byId("SRC_PERIOD_BEGIN");
	var objEndDate = dijit.byId("SRC_PERIOD_END");
	
	objStartDate.setValue(objDateStartSelected.getValue());
	objEndDate.setValue(objDateEndSelected.getValue());
}
function selStartDate(objSelStartDate){
	var objOptionSelected = objSelStartDate.options[objSelStartDate.selectedIndex];
	var durata = objOptionSelected.getAttribute('opt:durata');
	var strStartDate = objSelStartDate.value;
	var arDate = strStartDate.split('-'); 
	var thisDate = new Date();			

	thisDate.setYear(arDate[0]);
	thisDate.setMonth(eval(arDate[1])-1,arDate[2]);
	
	var dateStart = dojo.date.add(thisDate,'day',parseInt(0));	
	var dateEnd = dojo.date.add(thisDate,'day',parseInt(durata));
	
	var objBeginDate = dijit.byId('SRC_PERIOD_BEGIN');
	var objEndDate = dijit.byId('SRC_PERIOD_END');
	
	objBeginDate.setValue(dateStart);
	objEndDate.setValue(dateEnd);
	
	if (objSelStartDate.selectedIndex > 0) {
		changeHomeDept();
	} else {
		viewWApane('home_propdepartures','/booking/ajax/home_departures.cfm?disable=true');	
	}	 
}
