	//----
	var CERCA_PRENOTA_MAX_ROOMS = 5;
	var CERCA_PRENOTA_MAX_CHILDREN = 4;	
	var STILE_FIXED = "scroll"
	var STILE_FIRSTPAGE = "noScroll"
	var STILE_PAGER = "noScroll"	
	
	Event.observe(window,'load',start);
	
	
	var boxCerca;
	var boxNL;
	
	function start()
	{							
		

		if ($("cP_form")!=null){
			boxCerca = true;
		}else{
			boxCerca = false;
		}		
		
		if ($("formNl")!=null){
			boxNL = true;
		}else{
			boxNL = false;
			alert('');
		}				
		
		
		setParTraceFromRequest();
								
		
		//box ricerca e NL---------------------------------
		if (boxCerca){
			setBoxCerca();		
		}
		if (boxNL){
			setBoxNL();				
		}
	}
	//---------------------------------------------------------------------------------------------
	



	//***** FUNZIONI PER REPLACE TRACE DA REQUEST *************************************************
	
	function setParTraceFromRequest() { 
	
		var mediumReq = "";
		var sourceReq = "";
		var campaignReq = "";
		var SCHReq = "";
		var rep = false;
		
		var traceCMP;		
		var traceSource;
		var traceMedium;
		var traceCampaign;
		var traceSch;		
		//------
		var arrTracePar;
		
		//array con nome parametri trace
		arrTracePar = new Array();
		arrTracePar[0] = new Array('utm_source', '');
		arrTracePar[1] = new Array('utm_medium', '');
		arrTracePar[2] = new Array('utm_campaign', '');
		arrTracePar[3] = new Array('sch', '');		 		 		
		
	
	
		//verifico se in request presente almeno un parametro trace
		//se parametro presente salvo il valore in arrTracePar
		var query = window.location.search.substring(1); 
		var vars = query.split("&"); 
		for (var i=0;i<vars.length;i++) { 
			var pair = vars[i].split("=");
			for (var p=0;p<arrTracePar.length;p++) { 
				if (pair[0].toLowerCase()==arrTracePar[p][0]){
					arrTracePar[p][1] = pair[1];
					rep = true;					//almeno un par trace è presente in request
				}								
			}			
		} 
		
		//se almeno un parametro trace in request:
		//1.modifico tutti gli href del documento
		//2.modifico href del menu
		//3.modifico href serachbox
		if (rep){
			var url;
			var newUrl;		
			var arrLinkEl = document.getElementsByTagName("a");
			for (i=0; i < arrLinkEl.length ; i++  ) {
				//1.ciclo tutti href del documento
				url = arrLinkEl[i].getAttribute('href');
				if (url!=''){
					newUrl = replaceUrl(url, arrTracePar);					
					arrLinkEl[i].href = newUrl;
				}				
			}
			if (boxCerca){
				parTrace_searchbox = replaceUrl(parTrace_searchbox, arrTracePar);	
			}
			if (boxNL){
				parTrace_nl = replaceUrl(parTrace_nl, arrTracePar);	
			}
		}	
	} 



	function replaceUrl(url, arrTracePar){	
		var i;
		var pair;
		var newUrl;
		var c;
		var urlBase;				
		var urlParams;	
		var arrP;											
		var repStartChar;
		var foundT;
		var isTraceUrl;

		repStartChar = false;		
		isTraceUrl = false;		
		newUrl = '';
		if (url.substring(0,1)=='&'){	//per replace parTrace_menu...
			url = '?' + url.substring(1,url.length);
			repStartChar = true;
		}		
		if ((url.indexOf('?')==-1) ){// url senza parametri, non interessa
			return url;
		}
		urlBase = url.split("?")[0];				
		urlParams = url.split("?")[1];						
		newUrl = urlBase;		
		arrP = urlParams.split("&");										
		c = "?";
		for (i=0;i<arrP.length;i++) { 
			par = arrP[i].split("=");
			foundT = false;
			for (var p=0;p<arrTracePar.length;p++) { 
				if (par[0].toLowerCase()==arrTracePar[p][0]){					
					isTraceUrl = true;
					foundT = true;	
					if(arrTracePar[p][1]==''){									
						arrTracePar[p][1] = par[1];
					}
					if (p==3){
						//aggiungo il parametro al nuovo url solo se parametro SCH
						newUrl = newUrl + c + par[0] + '=' + arrTracePar[p][1];
						c = "&";						
					}
					break;			
				}
			}	
			if (!foundT){
				if ((par[0].toLowerCase()=='cmp')){				
					isTraceUrl = true;
				}else{
					newUrl = newUrl + c + par[0] + '=' + par[1];			
				}
			}
		}
		if (isTraceUrl){
			traceCMP = '';
			for (var p=0;p<arrTracePar.length;p++) { 
				if (p!=3){				//sch non deve essere aggiunto in CMP
					traceCMP = addTrace(traceCMP, arrTracePar[p][0], arrTracePar[p][1]);
				}
			}			
			newUrl = newUrl + c + 'CMP=' + traceCMP;
			//alert('CMP!');
			c = "&";
		}
		
		if (repStartChar){
			newUrl = '&' + newUrl.substring(1,newUrl.length);
		}		
		return(newUrl);								
	}



	function addTrace(CMP,namePar,valPar){
		if (valPar!=''){
			if (CMP == ''){
				CMP = '%3F' + namePar + '%3D'+valPar;
			}else{
				CMP = CMP + '%26'  + namePar + '%3D'+valPar;
			}
		}	
		return CMP;
	}


	//**********************************************************************************************	




	/****************************************************************************************/
	/** BOX NL**** **************************************************************************/
	/****************************************************************************************/

	function setBoxNL() {
		//=== bind button send NL ======					
		Event.observe('btnNL', 'click', function(event) {					
			iscriviNL(lang);
			return false;
		}); 		
			
		//=== bind submit NL  ======					
		Event.observe('formNl', 'submit', function(event) {		
			return Event.stop(event);        
			return false;
		}); 	
	}

	
	function iscriviNL(lang){
		var url = $("formNl").action + '?Email='+encodeURIComponent($("Email").value);
		if (parTrace_nl!=""){ 
			if (parTrace_nl.substring(0,1) == '?'){
				parTrace_nl = '&' + parTrace_nl.substring(1,parTrace_nl.length);
			}
			url = url + parTrace_nl;
		}	
				
		window.open(url);		
	}



	/****************************************************************************************/
	/** BOX RICERCA **************************************************************************/
	/****************************************************************************************/

	function setBoxCerca() {
		
		
		cercaPrenota_restore_default_values();						

		//observe dataFrom
		new Form.Element.Observer('cP_dateFrom',0.2,  
			function(el, value){		  	
				cercaPrenota_dateChanged(value);				
			}
		)
							
		//observe n° notti
		new Form.Element.Observer('cP_numberOfNights',0.2,  
			function(el, value){		  	
				cercaPrenota_nightsChanged(value);
			}
		)		



		//observe n° alloggi
		new Form.Element.EventObserver('cP_rooms',
			function(el, value){		  	
				cercaPrenota_showRooms(value);
			}
		)

		//observe n° bambini
		new Form.Element.EventObserver('cP_room' + 1 + '_children',  
			function(el, value){		  						
				cercaPrenota_showChildrenAge(1, value);
			}
		)				
		new Form.Element.EventObserver('cP_room' + 2 + '_children',
			function(el, value){		  						
				cercaPrenota_showChildrenAge(2, value);
			}
		)	
		new Form.Element.EventObserver('cP_room' + 3 + '_children',
			function(el, value){		  						
				cercaPrenota_showChildrenAge(3, value);
			}
		)		
		new Form.Element.EventObserver('cP_room' + 4 + '_children',  
			function(el, value){		  						
				cercaPrenota_showChildrenAge(4, value);
			}
		)				
		new Form.Element.EventObserver('cP_room' + 5 + '_children',
			function(el, value){		  						
				cercaPrenota_showChildrenAge(5, value);
			}
		)				
		
		//=== bind ok button ricerca ======					
		Event.observe('cP_submit', 'click', function(event) {		
			cerca(lang);
			return false;
		}); 		
			
		//=== bind submit cerca ======					
		Event.observe('cP_form', 'submit', function(event) {		
			return Event.stop(event);        
			return false;
		}); 			
		
	}


	// *******************************************************************
	// Ripristino il valore di default. Serve per IE e il back del browser
	// che sovrascrive l'impostazione iniziale
	// *******************************************************************

	function cercaPrenota_restore_default_values(){
		// preparo gli oggetti
		var numberOfNights = $("cP_numberOfNights");
		var default_numberOfNights = $("cP_default_numberOfNights");
		
		var rooms = $("cP_rooms");
		var default_rooms = $("cP_default_rooms");
		
		var club = $("cP_club");
		var default_club = $("cP_default_club");
	
		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 <= CERCA_PRENOTA_MAX_ROOMS; i++) {
			productTypes[i] = $("cP_room" + i + "_product_type");
			productTypesDefault[i] = $("cP_default_room" + i + "_product_type");
			
			adults[i] = $("cP_room" + i + "_adults");
			adultsDefault[i] = $("cP_default_room" + i + "_adults");
			
			children[i] = $("cP_room" + i + "_children");
			childrenDefault[i] = $("cP_default_room" + i + "_children");
			
			childrenAges[i] = new Array();
			childrenAgesDefault[i] = new Array();
			for (var j = 1; j <= CERCA_PRENOTA_MAX_CHILDREN; j++) {
				childrenAges[i][j] = $("cP_room" + i + "_age" + j);
				childrenAgesDefault[i][j] = $("cP_default_room" + i + "_age" + j);
			}
		}
		
		// aggiorno i valori
		numberOfNights.value = default_numberOfNights.value;
		rooms.value = default_rooms.value;
		if (club && default_club) {
			club.value = default_club.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;
			}
		}		
		
		// nascondo i campi non necessari
		var rooms = parseInt($('cP_default_rooms').value);
		cercaPrenota_showRooms(rooms);		
		
		
		//setto la data di arrivo e le notti
		caricaDate();	
	}

	
	
	// mostro i dati per le camere
	function cercaPrenota_showRooms(rooms) {
		
		var prefix = 'cP_room_row_';

		
		for (var i = 1; i <= CERCA_PRENOTA_MAX_ROOMS; i++) {
			var room = $(prefix + i);			
			if (room) {
				if (i <= rooms) {
					room.style.display = '';	
					var children = $('cP_room' + i + '_children').value;
					cercaPrenota_showChildrenAge(i, children);
				} else {
					room.style.display = 'none';
					cercaPrenota_showChildrenAge(i, 0);
				}
			}
		}
	}


	// mostro i figli per una data camera
	function cercaPrenota_showChildrenAge(room, children) {
		var prefix = 'cP_child_row_';
		for (var i = 1; i <= CERCA_PRENOTA_MAX_CHILDREN; i++) {
			var child = $(prefix + room + '_' + i);
			
			if (child) {
				if (i <= children) {
					child.style.display = '';
				} else {
					child.style.display = 'none';
				}
			}
		}
	}


	function caricaDate(){			
		//* setto dataArrivo = oggi
		var my_date = new Date();
		my_date.setDate(my_date.getDate()+0);
		$('cP_form').getInputs(null, 'dateFrom')[1].value =  formatData(my_date);
				
		//* setto dataPartenza = oggi +7
		my_date.setDate(my_date.getDate()+parseInt($('cP_default_numberOfNights').value));
		$("cP_endDate").innerHTML = formatData(my_date);
	}	



	function cercaPrenota_nightsChanged(notti){
		var strArrivo = $('cP_form').getInputs(null, 'dateFrom')[1].value;
		var dataPartenza = new Date('20'+strArrivo.split("/")[2], (strArrivo.split("/")[1]-1), strArrivo.split("/")[0]);	
		dataPartenza.setDate(dataPartenza.getDate()+parseInt(notti));
		
		$("cP_endDate").innerHTML = formatData(dataPartenza);
		
	}
	
	function cercaPrenota_dateChanged(strArrivo){
		var dataPartenza = new Date('20'+strArrivo.split("/")[2], (strArrivo.split("/")[1]-1), strArrivo.split("/")[0]);	
		dataPartenza.setDate(dataPartenza.getDate()+parseInt($('cP_numberOfNights').value));
		
		$("cP_endDate").innerHTML = formatData(dataPartenza);
		
	}	
			
	function formatData(data){
		var sGiorno = (data.getDate()<10) ? "0" + data.getDate().toString() : data.getDate().toString(); 
		var sMese = (data.getMonth()<9) ? "0" + (data.getMonth() + 1).toString() : (data.getMonth() + 1).toString();
		var sAnno = data.getFullYear().toString().substr(2);
		var fData = "".concat(sGiorno,"/",sMese,"/",sAnno); 
		return fData;	
	}
	
	
	
	
	function cerca(lang) {
		resettaNonVisibili()
		var rForm = $('cP_form');
		// data From ----------------------
		var dateFrom = $("cP_dateFrom").value;
		var elements = dateFrom.split('/');	dateFrom = elements[0] + '/' + elements[1] + '/20' + elements[2];
		
		//compongo url form	---------------
		var url = "http://www.visittrentino.it/" + lang + "/dove_dormire/strutture/risultati?availability.dateFrom=" + dateFrom + "&availability.numberOfNights=" + $("cP_numberOfNights").value + "&availability.rooms=" + $("cP_rooms").value + "&destination=" + $("regionId").value + "&availability.club=" + $("cP_club").value + "&availability.accomodation=-1" + "&availability.room_1.productType=" + $("cP_room1_product_type").value + "&availability.room_2.productType=" + $("cP_room2_product_type").value	  + "&availability.room_3.productType=" + $("cP_room3_product_type").value	  + "&availability.room_4.productType=" + $("cP_room4_product_type").value	  + "&availability.room_5.productType=" + $("cP_room5_product_type").value	  + "&availability.room_1.adults=" + $("cP_room1_adults").value	  + "&availability.room_2.adults=" + $("cP_room2_adults").value	  + "&availability.room_3.adults=" + $("cP_room3_adults").value	  + "&availability.room_4.adults=" + $("cP_room4_adults").value	  + "&availability.room_5.adults=" + $("cP_room5_adults").value	  + "&availability.room_1.children=" + $("cP_room1_children").value	  + "&availability.room_2.children=" + $("cP_room2_children").value	  + "&availability.room_3.children=" + $("cP_room3_children").value	  + "&availability.room_4.children=" + $("cP_room4_children").value	  + "&availability.room_5.children=" + $("cP_room5_children").value	  + "&availability.room_1.children.age_0=" + $("cP_room1_age1").value	  + "&availability.room_1.children.age_1=" + $("cP_room1_age2").value	  + "&availability.room_1.children.age_2=" + $("cP_room1_age3").value	  + "&availability.room_1.children.age_3=" + $("cP_room1_age4").value	  + "&availability.room_2.children.age_0=" + $("cP_room2_age1").value	  + "&availability.room_2.children.age_1=" + $("cP_room2_age2").value	  + "&availability.room_2.children.age_2=" + $("cP_room2_age3").value	  + "&availability.room_2.children.age_3=" + $("cP_room2_age4").value	  + "&availability.room_3.children.age_0=" + $("cP_room3_age1").value	  + "&availability.room_3.children.age_1=" + $("cP_room3_age2").value	  + "&availability.room_3.children.age_2=" + $("cP_room3_age3").value	  + "&availability.room_3.children.age_3=" + $("cP_room3_age4").value	  + "&availability.room_4.children.age_0=" + $("cP_room4_age1").value	  + "&availability.room_4.children.age_1=" + $("cP_room4_age2").value	  + "&availability.room_4.children.age_2=" + $("cP_room4_age3").value	  + "&availability.room_4.children.age_3=" + $("cP_room4_age4").value	  + "&availability.room_5.children.age_0=" + $("cP_room5_age1").value	  + "&availability.room_5.children.age_1=" + $("cP_room5_age2").value	  + "&availability.room_5.children.age_2=" + $("cP_room5_age3").value + "&availability.room_5.children.age_3=" + $("cP_room5_age4").value;		
		if (parTrace_searchbox!=null)	url += parTrace_searchbox;
		window.open(url);
	}		
	

	function resettaNonVisibili(){	
		var vis;
		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();
		var nrBambini;
		
		var rooms = $("cP_rooms").value;

		for (var i = 1; i <= CERCA_PRENOTA_MAX_ROOMS; i++) {
			vis = true;
			if (parseInt(i)>parseInt(rooms)){
				vis = false;			
			}
									
			productTypes[i] = $("cP_room" + i + "_product_type");
			productTypesDefault[i] = $("cP_default_room" + i + "_product_type");			
			adults[i] = $("cP_room" + i + "_adults");
			adultsDefault[i] = $("cP_default_room" + i + "_adults");
			children[i] = $("cP_room" + i + "_children");
			childrenDefault[i] = $("cP_default_room" + i + "_children");
			if (!vis){
				productTypes[i].value = productTypesDefault[i].value;
				adults[i].value = adultsDefault[i].value;
				children[i].value = childrenDefault[i].value;	//nrBambini
				nrBambini = children[i].value
			}			
			
			childrenAges[i] = new Array();
			childrenAgesDefault[i] = new Array();
			// ciclo select età bambini
			for (var j = 1; j <= CERCA_PRENOTA_MAX_CHILDREN; j++) {
				childrenAges[i][j] = $("cP_room" + i + "_age" + j);
				childrenAgesDefault[i][j] = $("cP_default_room" + i + "_age" + j);
				if (parseInt(j)>parseInt(children[i].value)){
					childrenAges[i][j].value = childrenAgesDefault[i][j].value;
				}
			}
			
		}		
	}
	
	
		

	/****************************************************************************************/
	/** ALTRE **************************************************************************/
	/****************************************************************************************/	
	
	function openHome(){
		if (urlHome!="") window.open(urlHome);		
	}
	
	
	
	
	
	
	
	
