function setArea(me) {
 var F=me.form, n=me.value;
 var selectCity=F.city, selectCountry=F.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(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 Option();
		O.value=i;
		O.text=City.n;
		OBJ.options.add(O);
	}
}

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.xplace) {

	MATCH=(row.name.search(S.xplace)>=0) || (row.location.search(S.xplace)>=0);

 } else {

	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));
 }

 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.etype) || (contains(row.suitablefor,S.etype))) &&
	((!S.nmeetings) || (row.nmeetings*1>=S.nmeetings)) &&
	((!S.totalcap) || (row.totalcap*1>=S.totalcap)) &&
	((!S.maxcap) || (row.largestroomcap*1>=S.maxcap)); 
	// && ((!S.services) || (containsAll(row.services,S.services)));

 return MATCH;

}

var SEARCH;

function doSearch() {

 var F=document.form1;
 var S={ 
	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,
	etype: F.etype.value,
	nmeetings: F.nmeetings.value*1,
	maxcap: F.maxcap.value*1,
	totalcap: F.totalcap.value*1
//	services: getCheckValues(F['services[]'])
 }
 SEARCH=S;
 if (S.qplace.length>=3) S.xplace=new RegExp(prepareSearch(S.qplace),'i');

 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="congress_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 newSearch(me) {

 var obj={
 	qplace: '',
 	area: '',
 	country: '',
 	city: '',
 	location: '',
 	airportkm: 0,
 	citycentrekm: -1,
 	etype: '',
 	nmeetings: 0,
 	maxcap: 0,
 	totalcap: 0 // , services: ''
 }
 setArea(me.area);
 fillForm(me,obj);
 return false;
}

var CITIES={ }, AREAS={ };

function initialize() {
 if (window.TObjPlainArrayFromTable) {
 	var aux, s='LOCATIONS,EVENTTYPES'.split(',');
 	for (var i=0, n; i<s.length; i++) if ((n=s[i]) && (!window[n]))
 		window[n]=new TObjPlainArrayFromTable('data_'+n.toLowerCase());
 }

 delete(EVENTTYPES[7]);
 var row,city,City,Country,Area;
 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;
            }
      }
      
      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;
      }
 }

 AREAS=objSort(AREAS,'n');
 CITIES=objSort(CITIES,'n');
 addOptsToCombo(document.form1.area,AREAS,'n');
 addOptsToCombo(document.form1.location,LOCATIONS);
 addOptsToCombo(document.form1.etype,EVENTTYPES)

 setArea(document.form1.area);
 
 if (Q=QueryString.q) document.form1.qname.value=Q;

 if ((QueryString.modif) && (row=getCookie('lastSearch'))) fillForm(document.form1,unserialize(row));

 setTimeout('refresh()',100);
 
 BannersMap2=new TBannersMap(PUBSPACES[29],'AdSpace2');
 BannersMap3=new TBannersMap(PUBSPACES[30],'AdSpace3');
 BannersMap4=new TBannersMap(PUBSPACES[31],'AdSpace4');
 
 if (BannersMap2.firstBanner) setTimeout('nextBanner(BannersMap2)',2000);
 if (BannersMap3.firstBanner) setTimeout('nextBanner(BannersMap3)',2500);
 if (BannersMap4.firstBanner) setTimeout('nextBanner(BannersMap4)',3000);

}

chainOnload(initialize);

