// jsmin::include "common.js";

function setArea(n) {
 var selectCity=document.form1.city, selectCountry=document.form1.country;
 var ctys={ };
 selectCity.options.length=1; selectCountry.options.length=1;
 for (var i in CITIES) {
	if ( (City=CITIES[i]) && (Country=COUNTRIES[City.z]) && ( (!n) || (Country.z==n) ) ) {
		var O=new Option();
		O.value=i;
		O.text=City.n;
		selectCity.options.add(O);

		if (!ctys[Country.id]) ctys[Country.id]=Country.n;

	}
 }
 ctys=objSort(ctys);
 addOptsToCombo(selectCountry,ctys);
}

function setCountry(n) {
 var objArea=document.form1.area; objCountry=document.form1.country; OBJ=document.form1.city;
 OBJ.options.length=1;
 for (var i in CITIES)
	if ((City=CITIES[i]) && ((!n) || (City.z==n)) ) {
		var O=new Option();
		O.value=i;
		O.text=City.n;
		OBJ.options.add(O);
	}
 var area=COUNTRIES[n].z;
 objArea.value=area;
 objCountry.value=n;
}

function setCity(n) {
 if (!n) return;
 var selectArea=document.form1.area, selectCountry=document.form1.country;
 var City=CITIES[n];
 var Country=COUNTRIES[City.z];
 var Area=COUNTRIES[Country.z];
 selectArea.value=Area.id;
 selectCountry.value=Country.id;
}

function rowMatch(row,S) {

 var MATCH;

 if (S.city) 
	MATCH=(row.xcity==S.city);
 else if (S.country) 
	MATCH=(row.country==S.country);
 else
	MATCH=((!S.area) || (row.area==S.area));

 if (S.xname) MATCH=MATCH && ((row.name.search(S.xname)>=0) || (row.location.search(S.xname)>=0));

 MATCH=MATCH &&
	((!S.location) || contains(row.situation,S.location)) &&
	((!S.airportkm) || (row.airportkm<=S.airportkm)) &&
	((S.citycentrekm<0) || ( /* (row.citycentrekm!='') && */ (row.citycentrekm<=S.citycentrekm)) ) &&
//	((!S.congresskm) || (row.congresskm<=S.congresskm)) &&
//	((!S.ccathotel) || (row.congresskm<1)) && 
	
//	((!S.htypes) || (containsAll(row.htype,S.htypes))) &&
//	((!S.services) || (containsAll(row.services,S.services))) &&
	((!S.services) || (containsAll(row.htype,S.services))) &&
	((!S.hcategs) || (contains(S.hcategs,row.categ))) &&
	((!S.chain) || (S.chain==row.chain)) &&

//	((!S.nrooms) || (row.nrooms*1>=S.nrooms)) &&
	( (!S.nrooms) || ( S.nrooms>0 ? (row.nrooms>=S.nrooms) : (row.nrooms<=-S.nrooms) ) ) &&

//	((!S.nmeetings) || (row.nmeetings>=S.nmeetings)) &&
	( (!S.nmeetings) || ( S.nmeetings>0 ? (row.nmeetings>=S.nmeetings) : (row.nmeetings<=-S.nmeetings) ) ) &&

//	((!S.maxcap) || (row.maxcap>=S.maxcap)) &&
	( (!S.maxcap) || ( S.maxcap>0 ? (row.maxcap>=S.maxcap) : (row.maxcap<=-S.maxcap) ) ) &&
	
	((!S.activities) || (containsAll(row.activities,S.activities)));

// if (S.nrooms) MATCH=MATCH && ( S.nrooms>0 ? (row.nrooms>=S.nrooms) : (row.nrooms<=-S.nrooms) );
 return MATCH;
}

var SEARCH;

function doSearch() {

 var F=document.form1;
 var S={ 
	qname: F.qname.value,
//	qplace: F.qplace.value,
	area: F.area.value,
	country: F.country.value,
	city: F.city.value, 
	location: F.location.value,
	airportkm: F.airportkm.value*1,
	citycentrekm: F.citycentrekm.value*1,
	nrooms: F.nrooms.value*1,
	nmeetings: F.nmeetings.value*1,
	maxcap: F.maxcap.value*1,
//	htypes: getCheckValues(F['htypes[]']),
	services: getCheckValues(F['services[]']),
	hcategs: getCheckValues(F['hcategs[]']),
	chain: F.chain.value,
	activities: getCheckValues(F['activities[]'])
 }
 S.ccathotel=contains(S.services,37);
 
 if (S.qname.length>=3) S.xname=new RegExp(prepareSearch(S.qname),'i');

 SEARCH=S;

 var res={ ix: [] }, N=0;
 for (var i in ROWS) if (row=ROWS[i]) {
	if (rowMatch(row,S)) {
		res.ix[N++]=i;
		res[i]=row;
	}
 }

 F.Results=res;
 var nResults=res.ix.length;
 setObjContent('nHotels',nResults);
 getObj('goListBtn').disable=nResults>0;
 var goodLook='';
 if ((nResults) && (nResults<=3)) {
 	if (nResults<=3)
		goodLook='<table class=goodLook align=center border=0 cellspacing=0 cellpadding=1>';
 	for(var i=0; i<nResults; i++) {
		var row=ROWS[res.ix[i]];
		if (nResults<=3)
			goodLook+='<tr><td align=left><b>' + row.name + '</b>&nbsp;&nbsp;('+row.city+', '+COUNTRIES[row.country].n +')' +
				'<td width=60 align=right><a class=maroon href="hotel_det.html?id='+row.id+'">View</a>';
		else
			goodLook+=(goodLook?', ':'')+'<a class="bold darkgray px10" href="hotel_det.html?id='+row.id+'" class=bold>' + row.name + '</a>'; //  + '</a>&nbsp;&nbsp;('+row.city+')';
	}
	if (nResults<=3)
	 	goodLook+='</table>';
 } else
	goodLook='<br>';
 setObjContent('goodLook',goodLook);
}

var T_refresh;
function refresh() {
 if (T_refresh) clearTimeout(T_refresh);
 doSearch();
 T_refresh=setTimeout('refresh()',500);
}

function goResults(me) {
 if ((!me.Results) || (!me.Results.ix.length)) {
	alert('There are no results to show'); return false;
 }
 me._getFor.value=QueryString.getfor || '';
 me._idList.value=me.Results.ix.join(',');
 document.cookie='lastSearch='+serialize(SEARCH);
 me.submit();
 return false;
}

function newSearch(me) {

 var obj={
 	qname: '',
// 	htypes: '',
 	services: '',
 	area: '',
 	country: '',
 	city: '',
 	location: '',
 	airportkm: 0,
 	citycentrekm: -1,
 	hcategs: '',
 	nrooms: 0,
 	nmeetings: 0,
 	maxcap: 0,
 	activities: '',
 	chain: ''
 }
 setArea(0);
 fillForm(me,obj);
 return false;
}

function modifySearch(me,obj) {
 fillForm(me,obj);
 return false;
}

var CITIES={ }, AREAS={ };

function initialize() {
 var aux;
 if (window.TObjPlainArrayFromTable) {
 	var s='HCATEGS,LOCATIONS,SERVICES,ACTIVITIES'.split(',');
 	for (var i=0, n; i<s.length; i++) if ((n=s[i]) && (!window[n]))
 		window[n]=new TObjPlainArrayFromTable('data_'+n.toLowerCase());
 }
 if (aux=getObj('hcategsCheckList')) aux.innerHTML=MkCheckList('hcategs',HCATEGS,60,5);
 if (aux=getObj('servicesCheckList')) aux.innerHTML=MkCheckList2('services',SERVICES,'6,16,17,18;3,7,1,37');
 if (aux=getObj('activitiesCheckList')) aux.innerHTML=MkCheckList('activities',ACTIVITIES,20,2);
 
 var row,city,country,categ,City,Country,Area;
 for (var i in ROWS) {
	row=ROWS[i];
 	if (!row.id) row.id=i;
	row.nrooms=1*row.nrooms;
	row.maxcap*=1;
	row.nmeetings=1*row.nmeetings;
	if (city=row.city.toLowerCase()) {
		row.xcity=city + ' ' + row.country;
		if (!CITIES[row.xcity]) {
			var City={ id: row.xcity, z: row.country , n: row.city }
			CITIES[row.xcity]=City;
		}
	}

	row.location=row.city;
	if (Country=COUNTRIES[row.country]) {
		if (!(Area=AREAS[Country.z])) Area=AREAS[Country.z]=COUNTRIES[Country.z];
		row.area=Country.z;
		row.location+=' ' + Country.n + ' ' + Area.n;
	} // else alert(row.id);
		
 }	

 CITIES=objSort(CITIES,'n');
 AREAS=objSort(AREAS,'n');
 addOptsToCombo(document.form1.area,AREAS,'n');
 addOptsToCombo(document.form1.location,LOCATIONS);
 addOptsToCombo(document.form1.chain,CHAINS);
 setArea(0);
 
 if ((country=QueryString.country) && (COUNTRIES[country])) setCountry(country);

 if (city=QueryString.city) {
 	if ((country) && (COUNTRIES[country])) {
		var xcity=city.toLowerCase()+' '+country;
		if (CITIES[xcity]) { document.form1.city.value=xcity }
	} else
		document.form1.qname.value=QueryString.city;
 }

 if (categ=QueryString.categ) fillForm(document.form1,{ hcategs: categ });
 
 if (Q=QueryString.q) document.form1.qname.value=Q;

 if (QueryString.modif) {
	var obj=getCookie('lastSearch');
	obj=unserialize(obj);
	if (obj.area) setArea(obj.area);
	if (obj.country) setCountry(obj.country);
	if (obj) fillForm(document.form1,obj);
 }
 
 setObjContent('FAQ_Index',getFAQIndex(Items));
 
 setTimeout('refresh()',100);

// var AdSpace2=getObj('AdSpace2'); AdSpace2.AdSpaceID=AdSpace2.getAttribute('AdSpaceID');
 
 BannersMap2=new TBannersMap(PUBSPACES[19],'AdSpace2');
 BannersMap3=new TBannersMap(PUBSPACES[20],'AdSpace3');
 BannersMap4=new TBannersMap(PUBSPACES[21],'AdSpace4');
 
 if (BannersMap2.firstBanner) setTimeout('nextBanner(BannersMap2)',2000);
 if (BannersMap3.firstBanner) setTimeout('nextBanner(BannersMap3)',2500);
 if (BannersMap4.firstBanner) setTimeout('nextBanner(BannersMap4)',3000);
}

chainOnload(initialize);

