
function setArea(me) {
 var F=me.form, n=me.value;
 var selectCity=F.city, selectCountry=F.country;
 var ctys={ }, City, Country;

 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 TOption(i,City.n,selectCity);
		if (!ctys[Country.id]) ctys[Country.id]=Country.n;
	}
 }
 ctys=objSort(ctys);
 addOptsToCombo(selectCountry,ctys);
}

function setCountry(me) {
 var F=me.form, n=me.value;
 var OBJ=F.city;
 OBJ.options.length=1;
 for (var i in CITIES)
	if ((City=CITIES[i]) && ((!n) || (City.z==n)) ) {
		var O=new TOption(i,City.n,OBJ);
	}
}

function setCity(me) {
 var F=me.form, n=me.value;
 if (!n) return;
 var selectArea=F.area, selectCountry=F.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));
 
 return MATCH;
}

var SEARCH;

function doSearch() {

 var F=document.form1;
 var S={
 	qname: F.qname.value,
	area: F.area.value,
	country: F.country.value,
	city: F.city.value
 }
 
 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;
 setObjContent('nResults',res.ix.length);
 getObj('goListBtn').disable=res.ix.length>0;
 var goodLook;
 if (res.ix.length==1) {
	var row=ROWS[res.ix[0]];
	goodLook='<b>' + row.name + '</b>&nbsp;&nbsp;('+row.city+', '+COUNTRIES[row.country].n +')' +
	'&nbsp;&nbsp;<a class=maroon href="destination_det.html?id='+row.id+'">View</a>';
 } 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();
}

function TGeoIndex(ROWS,COUNTRIES) {
 var AREAS={ }, CITIES={ };

 var row,city,City,Country;

 for (var i in ROWS) {
      row=ROWS[i];
      if (city=row.city.toLowerCase()) {
            row.xcity=city;
            if (!CITIES[city]) {
                  var City={ id: row.city, z: row.country, n: row.city }
                  CITIES[city]=City;
            }
      }
      if (Country=COUNTRIES[row.country]) {
            if (!AREAS[Country.z]) AREAS[Country.z]=COUNTRIES[Country.z];
            row.area=Country.z;
      }
 }

 var obj={ Areas: objSort(AREAS,'n'), Countries: COUNTRIES, Cities: objSort(CITIES,'n') };
 return obj;
}

function newSearch(me) {

 var obj={
 	area: '',
 	country: '',
 	city: ''
 }
 setArea(me.area);
 fillForm(me,obj);
 return false;
}


var CITIES={ }, AREAS={ };

function initialize() {

 var GeoIndex=new TGeoIndex(ROWS,COUNTRIES);

 AREAS=GeoIndex.Areas;
 CITIES=GeoIndex.Cities;

 addOptsToCombo(document.form1.area,AREAS,'n');

 setArea(document.form1.area);
 
 var country=QueryString.country;
 var city=QueryString.city;

 if (country) {
 	document.form1.country.value=country;
 	setCountry(document.form1.country);
 	if (city) {
 		document.form1.city.value=city.toLowerCase();
 		if (document.form1.city.value) setCity(document.form1.city);
 	}
 }
 
 if (Q=QueryString.q) document.form1.qname.value=Q;

 if (QueryString.modif) {
 	var obj=getCookie('lastSearch');
 	if (obj) fillForm(document.form1,unserialize(obj));
 }

 if (Platform.MSIE) {
	var o=getObj('selectBoxCell');
	o.style.height=o.offsetHeight;
 }

 for (var i in ROWS) {
	var row=ROWS[i];
	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);
 }
 
 setTimeout('refresh()',100);
 
 BannersMap2=new TBannersMap(PUBSPACES[26],'AdSpace2');
 BannersMap3=new TBannersMap(PUBSPACES[27],'AdSpace3');
 BannersMap4=new TBannersMap(PUBSPACES[28],'AdSpace4');
 
 if (BannersMap2.firstBanner) setTimeout('nextBanner(BannersMap2)',2000);
 if (BannersMap3.firstBanner) setTimeout('nextBanner(BannersMap3)',2500);
 if (BannersMap4.firstBanner) setTimeout('nextBanner(BannersMap4)',3000);

}

chainOnload(initialize);

