
$j121(document).ready(function() {
	
	var context = 'right';

	if (window.Ext) {
		var CercaEPrenotaRegionsStore = new Ext.data.SimpleStore({
			autoLoad: true,
			data: cercaPrenotaRegionsArray,
			fields: [
				{name: 'value', mapping: 0},         
				{name: 'text', mapping: 1},         
				{name: 'type', mapping: 2},    
				{name: 'parent', mapping: 3},    
				{name: 'sortInfo', mapping: 4}    
			]
//			,
//			sortInfo: {
//			    field: 'sortInfo',
//			    direction: 'ASC' // or 'DESC' (case sensitive for local sorting)
//			}
		});
		
		var CercaEPrenotaRegionsTpl = new Ext.XTemplate(
	        '<tpl for="."><div style="line-height:1.2em" class="cercaPrenota_right_class_combo_list_element">',
	        '<span style="{[values.type === "DESTINATION" ? "font-size:0.75em;line-height:1.0em;" : (values.type === "AREA" ? "font-weight:bolder;" : "font-size:1.25em;font-weight:bolder;font-style:italic")]}">{text}',
			'<span style=\"color:gray\">{[values.type === "DESTINATION" ? " (" + values.parent + ")" : ""]}</span>', 
	        '</span>',
	        '</div></tpl>'
	    );

		var CercaEPrenotaRegionsCombo = new CustomComboBox({
			id: 'cercaPrenota_right_ext_region',
		    typeAhead: false,
		    triggerAction: 'all',
			displayField: 'text', 
			valueField: 'value', 
		    transform:'cercaPrenota_right_region',
		    //width: 170,
		    width: (Ext.isGecko3?159:(Ext.isChrome?160:(Ext.isIE8?155:155))),
			listWidth: 400,
			listAlign: Ext.isIE6 ? 'tr-tl' : 'tr-br',
			hideTrigger: true,
		    forceSelection: true,
			allowBlank: false,
			tpl: CercaEPrenotaRegionsTpl,
			itemSelector: 'div.cercaPrenota_right_class_combo_list_element',
			store: CercaEPrenotaRegionsStore,
			mode: 'local',
			lazyInit: false,
			listeners: {
				'focus': {
					fn: function(combo){
						if (combo.disabled) {
							return;
						}
						
						if (combo.isExpanded()) {
							combo.collapse();
							combo.el.focus();
						} else {
							combo.onFocus({});
							if (combo.triggerAction == 'all') {
								combo.doQuery(combo.allQuery, true);
							}
							else {
								combo.doQuery(combo.getRawValue());
							}
							combo.el.focus();
						}
					}
				}
			}
		});
		
		
		jQuery('#cercaPrenota_arrow_down_combo').show();
		
		if(Ext.isGecko3){
			jQuery('#cercaPrenota_arrow_down_combo').css("margin-top", "10px");
		}else if(Ext.isIE8){
			jQuery('#cercaPrenota_arrow_down_combo').css("margin-top", "10px");
		}else if(Ext.isIE7){
			jQuery('#cercaPrenota_arrow_down_combo').css("margin-top", "11px");
		}else if(Ext.isChrome){
			jQuery('#cercaPrenota_arrow_down_combo').css("margin-top", "10px");
		}
		
		// imposto l'area se presente nei dati di contesto
		var default_area = document.getElementById('cercaPrenota_' + context + '_default_area');
		
		if (default_area) {
			if (default_area.value.length > 0) {
				// cerco nella lista se presente l'area o la localita, se non la trovo imposto a -1 il valore
				var index = CercaEPrenotaRegionsStore.find('value', default_area.value, 0, false, false);
				
				if (index >= 0) {
					CercaEPrenotaRegionsCombo.setValue(default_area.value);
				} else {
					CercaEPrenotaRegionsCombo.setValue('-1'); 
				}
			} else {
				CercaEPrenotaRegionsCombo.setValue('-1'); 
			}
		} else {
			CercaEPrenotaRegionsCombo.setValue('-1'); 
		}
	}
	
	cercaPrenota_init(context);
/*	
	// *******************************************************************
	// Ripristino il valore di default. Serve per IE e il back del browser
	// che sovrascrive l'impostazione iniziale
	// *******************************************************************
	var numberOfNights = document.getElementById("cercaPrenota_right_numberOfNights");
	var default_numberOfNights = document.getElementById("cercaPrenota_right_default_numberOfNights");

	var rooms = document.getElementById("cercaPrenota_right_rooms");
	var default_rooms = document.getElementById("cercaPrenota_right_default_rooms");

	var productTypes = new Array(); var productTypesDefault = new Array()
	var adults = new Array();       var adultsDefault = new Array();
	var children = new Array(); 	var childrenDefault = new Array();
	var childrenAges = new Array();	var childrenAgesDefault = new Array();
	for (var i = 1; i <= 5; i++) {
		productTypes[i] = document.getElementById("cercaPrenota_right_room" + i + "_product_type");
		productTypesDefault[i] = document.getElementById("cercaPrenota_right_default_room" + i + "_product_type");

		adults[i] = document.getElementById("cercaPrenota_right_room" + i + "_adults");
		adultsDefault[i] = document.getElementById("cercaPrenota_right_default_room" + i + "_adults");

		children[i] = document.getElementById("cercaPrenota_right_room" + i + "_children");
		childrenDefault[i] = document.getElementById("cercaPrenota_right_default_room" + i + "_children");

		childrenAges[i] = new Array(); childrenAgesDefault[i] = new Array();
		for(var j = 1; j <= 4; j++) {
			childrenAges[i][j] = document.getElementById("cercaPrenota_right_room" + i + "_age" + j);
			childrenAgesDefault[i][j] = document.getElementById("cercaPrenota_right_default_room" + i + "_age" + j);
		}
	}
	
	numberOfNights.value = default_numberOfNights.value;
	rooms.value = default_rooms.value;

	for (var i = 1; i <= 5; i++) {
		productTypes[i].value = productTypesDefault[i].value;
		adults[i].value = adultsDefault[i].value;
		children[i].value = childrenDefault[i].value;

		for(var j = 1; j <= 4; j++) {
			childrenAges[i][j].value = childrenAgesDefault[i][j].value;
		}
	}
	// *******************************************************************
*/	

//$j121("a#cercaPrenota-waitMessage-link").fancybox();
	
	
	// Cerca e Prenota in Header
	var showInHeader = document.getElementById('cercaPrenota_' + context + '_show_in_header');
	if (showInHeader) {
		if (showInHeader.value == 'true') {
			var headerDiv = document.getElementById('top-foto_video_webcam');
			var cercaPrentotaDiv = document.getElementById('cercaPrenota-' + context + '-main-div');
			headerDiv.appendChild(cercaPrentotaDiv);
		}
	}
});


function cercaPrenota_startSearch() {
	
		// PTTCR-238
		// Chiamata a Google
		var googleString = '';
		if (window.Ext) {
			var combo = Ext.getCmp('cercaPrenota_right_ext_region');
			if (combo) {
				var store = combo.store;
	
				if (store) {
					var index = store.find('value', combo.getValue());
					if (index >= 0) {
						var record = store.getAt(index);
	        			if (record) {
							var loc = record.get('text');
							if (loc) {
								loc = loc.replace(/ /g, '_');
								
								googleRegion = loc;
							}
						}
					}
				}
			}
			
		} else {
			var combo = document.getElementById('cercaPrenota_right_region');
			
			if (combo) {
				googleRegion = combo.options[combo.selectedIndex].text;
			}
		}
	
		var googleString = '/cerca/' + googleRegion;
	
		
		var googleAction = 'CercaPrenota';
		var googleUrl = window.location.pathname;
		
		if (window.pageTracker) {
			pageTracker._trackPageview(googleString);
		} else if (window._gaq) {
			_gaq.push(['_trackEvent', googleUrl, googleAction, googleRegion]);
		}
		
		
		cercaPrenota_goWaitPage();
	
//	$j121("a#cercaPrenota-waitMessage-link").trigger('click');
//	Ext.MessageBox.progress('Ricerca attivata', 'I risultati saranno disponibili a breve');
};




function cercaPrenota_goWaitPage() {
	var dateFrom = document.getElementById("cercaPrenota_right_dateFrom").value;
	var elements = dateFrom.split('/');
	var dateFromSimple = elements[0] + '/' + elements[1] + '/20' + elements[2]; 

	var num_rooms = 1; // <<<=== QUI ANDRA' LETTO il PARAMETRO ROOM dalla FORM UTENTE (ora e' fisso a 1)
	
	var regions = null;
	if (window.Ext) {
//		var existExtRegion = Ext.getCmp('cercaPrenota_right_ext_region');
//		
//		var regions = null;
//		if (existExtRegion) {
//			regions = Ext.getCmp('cercaPrenota_right_ext_region').getValue();
//		} else {
//			regions = document.getElementById('cercaPrenota_right_default_area').value;
//		}
		
		regions = (Ext.getCmp('cercaPrenota_right_ext_region') ? Ext.getCmp('cercaPrenota_right_ext_region').getValue() : document.getElementById('cercaPrenota_right_default_area').value);
	} else {
		regions = (document.getElementById('cercaPrenota_right_region') ? document.getElementById('cercaPrenota_right_region').value : document.getElementById('cercaPrenota_right_default_area').value)
	}
	
	var url = document.getElementById("cercaPrenota_right_wait_page").value
		  + "?cp.dateFromSimple=" + dateFromSimple
		  + "&cp.resultsPage=" + document.getElementById("cercaPrenota_right_results_page").value 
		  + "&lang=" + document.getElementById("cercaPrenota_right_lang").value 
		  + "&cp.lang=" + document.getElementById("cercaPrenota_right_lang").value 
		  + "&cp.numberOfNights=" + document.getElementById("cercaPrenota_right_numberOfNights").value
		  + "&cp.rooms=" + num_rooms
		  + "&cp.regions=" + regions
		  + "&cp.club=" + (document.getElementById("cercaPrenota_right_club")?document.getElementById("cercaPrenota_right_club").value:document.getElementById("cercaPrenota_right_default_club").value)
		  + "&cp.accomodation=-1"
		  + "&cp.sellingChannel="  + document.getElementById("cercaPrenota_right_default_sellingChannel").value
		  + "&cp.accoProductType="+getAccoProductTypeParam();
	
	for(var r = 1; r <= num_rooms; r++){
		url += "&cp.room"+r+".productType=" + cercaPrenota_getValueOrDefault("cercaPrenota_right_room"+r+"_product_type", -1);
		url += "&cp.room"+r+".adults=" + cercaPrenota_getValueOrDefault("cercaPrenota_right_room"+r+"_adults", 2);
		url += "&cp.room"+r+".children=" + cercaPrenota_getValueOrDefault("cercaPrenota_right_room"+r+"_children", 0);
		
		var num_children = cercaPrenota_getValueOrDefault("cercaPrenota_right_room"+r+"_children", 0) * 1;
		for(var i = 1; i <= num_children; i++){
			url += "&cp.room"+r+".age"+i+"=" + cercaPrenota_getValueOrDefault("cercaPrenota_right_room"+r+"_age"+i, 1);
		}
	}
		
	window.location.href = url;
};



/*
 * Ritorna il product type associato al tab selezionato
 */
function getAccoProductTypeParam(){
	/*
	if(Ext.getDom("tabCamereCP")['className'].indexOf("ui-tabs-selected")>-1){
		return "Accommodation";
	}else{
		return "Package";
	}
*/

	if ($j121('#tabCamereCP.ui-tabs-selected').length == 1) {
		return "Accommodation";
	} else {
		return "Package";
	}
};



//function selectTabOfferte(){
//	Ext.getDom("divCercaPrenotaTabs").innerHTML = '<a href="#" onclick="selectTabCamere();">Camere</a> | Offerte';
//	Ext.getDom("cercaPrenota_right_accoProductType").value = "Package"; 
//}
//
//function selectTabCamere(){
//	Ext.getDom("divCercaPrenotaTabs").innerHTML = 'Camere | <a href="#" onclick="selectTabOfferte();">Offerte</a>';
//	Ext.getDom("cercaPrenota_right_accoProductType").value = "Accommodation";
//}


function checkRegion(){
   if (window.Ext) {
	  var combo = Ext.getCmp('cercaPrenota_right_ext_region');
	  if (combo) {
		 var store = combo.store;
	     var index = store.find('value', combo.getValue()); 
	     if(index >= 0){
		   return true;
		 }
	 }	 
		 
  }else {
		return true;
			
		}			 
	return false;	 
}


