function setArea(me) {
 var F=me.form, n=me.value;
 if (!n) n=0; // alert(n);
 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,n) {
 if (n) {
 	me.value=n;
 	if (me.value!=n) return false;
 } else
 	n=me.value;
 var F=me.form;
 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,n) {
 if (n) {
 	me.value=n;
 	if (me.value!=n) return false;
 } else
 	n=me.value;
 var F=me.form;
 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 ((row.destinations) && (!row.destinations.search)) row.destinations=row.destinations.toString();
 if (S.xplace) {

	MATCH=(row.location.search(S.xplace)>=0);
	if ((QueryString.test) && (row.id=='106') && (!document.FLAG)) { document.FLAG=1; alert(row.location+'\n'+S.xplace); }
//	if ((row.destinations) && (!row.destinations.search)) { alert(row.id + ':' + row.destinations); return false }
	if (row.destinations) MATCH=MATCH || (row.destinations.search(S.xplace)>=0);

 } else {

	if (S.city) {
		MATCH=(row.xcity==S.city);
//		if ((QueryString.test) && (row.id=='106') && (!document.FLAG)) { document.FLAG=1; alert(row.destinations+'\n'+S.xcity); }
		if (row.destinations) MATCH=MATCH || (row.destinations.search(S.xcity)>=0);
	} else if (S.country) 
		MATCH=(row.country==S.country);
	 else
		MATCH=((!S.area) || (row.area==S.area));
 }

 MATCH=MATCH &&
 	((!S.etype) || (contains(row.specialities,S.etype))) &&
 	((!S.langs) || (contains(row.languages,S.langs))) &&
 	((!S.htype) || (contains(row.htype,S.htype))) &&
 	((!S.htypes) || (containsAny(row.htype,S.htypes)));
 	
 return MATCH;

}

var FLAG;

function doSearch() {

 var F1=document.form1, F2=document.form2;
 var S1={ 
	qplace: F1.qplace.value,
	area: F1.area.value,
	country: F1.country.value,
	city: F1.city.value,
	htypes: getCheckValues(F1['htypes[]']),
	etype: F1.etype.value,
	langs: F1.langs.value
 }
 document.form1.SEARCH=S1;

 if (S1.qplace.length>=3) S1.xplace=new RegExp(prepareSearch(S1.qplace),'i');
 if (S1.city) S1.xcity=new RegExp(prepareSearch(S1.city),'i');

//  if ((S1.htypes) && (!FLAG)) { alert(S1.htypes); FLAG=1; }

 var S2={ 
	qplace: F2.qplace.value,
	area: F2.area.value,
	country: F2.country.value,
	city: F2.city.value,
	etype: F2.etype.value,
	htype: F2.htype.value,
	langs: F2.langs.value
 }
 document.form2.SEARCH=S2;
 
 if (S2.qplace.length>=3) S2.xplace=new RegExp(prepareSearch(S2.qplace),'i');
 if (S2.city) S2.xcity=new RegExp(prepareSearch(S2.city),'i');

// var res={ ix: [] }, N=0;
 var resDMC={ ix: [] }, resPCO={ ix: [] }, nDMC=nPCO=0;
 for (var i in ROWS) if (row=ROWS[i]) {
	if (row.isDMC) if (rowMatch(row,S1)) {
		resDMC.ix[nDMC++]=i;
		resDMC[i]=row;
	}
	if (row.isPCO) if (rowMatch(row,S2)) {
		resPCO.ix[nPCO++]=i;
		resPCO[i]=row;
	}
 }

 F1.Results=resDMC;
 F2.Results=resPCO;

 setObjContent('nResultsDMC',resDMC.ix.length);
 getObj('goListBtnDMC').disable=resDMC.ix.length>0;

 setObjContent('nResultsPCO',resPCO.ix.length);
 getObj('goListBtnPCO').disable=resPCO.ix.length>0;

 var goodLook='';
 if (resDMC.ix.length<=3) {
 	for (var i=0; i<resDMC.ix.length; i++) {
		var row=ROWS[resDMC.ix[i]];
		goodLook+='<b>' + row.name + '</b>&nbsp;&nbsp;('+row.city+', '+COUNTRIES[row.country].n +')' +
		'&nbsp;&nbsp;<a class=maroon href="dmc_det.html?id='+row.id+'">View</a><br>';
	}
 } else
	goodLook='<br>';
 setObjContent('goodLookDMC',goodLook);

 goodLook='';
 if (resPCO.ix.length<=3) {
 	for (var i=0; i<resPCO.ix.length; i++) {
		var row=ROWS[resPCO.ix[i]];
		goodLook+='<b>' + row.name + '</b>&nbsp;&nbsp;('+row.city+', '+COUNTRIES[row.country].n +')' +
		'&nbsp;&nbsp;<a class=maroon href="dmc_det.html?id='+row.id+'">View</a><br>';
	}
 } else
	goodLook='<br>';
 setObjContent('goodLookPCO',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(me.SEARCH);
 me.submit();
 return false;
}

function newSearch(me) {
 var obj={
 	qplace: '',
 	htype: '',
 	area: '',
 	country: '',
 	city: '',
 	etype: '',
 	langs: ''
 }
 setArea(me.area);
 fillForm(me,obj);
 return false;
}

var CITIES={ }, AREAS={ };

function initialize() {
 if (window.TObjPlainArrayFromTable) {
 	var aux, s='EVENTTYPES,PCOTYPES'.split(',');
 	for (var i=0, n; i<s.length; i++) if ((n=s[i]) && (!window[n]))
 		window[n]=new TObjPlainArrayFromTable('data_'+n.toLowerCase());
 }
 
 var row,city,City,Country,Area;
 for (var i in ROWS) {
	row=ROWS[i];
	if (!row.id) row.id=i;
	var htypex=','+row.htype+',';
	if ((','+htypex+',').search(',(23|24|30),')>=0) {	// Agency (DMC)
		row.cat=24; row.pType=2; row.isDMC=true;
		row.isPCO=htypex.indexOf(',25,')>=0; 
	} else {						// PCO
		row.cat=25; row.pType=3; row.isPCO=true;
	}
//      if (containsAny(row.htypes,'')) row.cat=24;
	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 (!Country.id) Country.id=row.country;
		if (!(Area=AREAS[Country.z])) Area=AREAS[Country.z]=COUNTRIES[Country.z];
		row.area=Country.z;
		row.location+=' ' + Country.n + ' ' + Area.n;
      	} 
	row.location+=' ' + row.name;
 }
 
 CITIES=objSort(CITIES,'n');
 AREAS=objSort(AREAS,'n'); 
 addOptsToCombo(document.form1.area,AREAS,'n');
 addOptsToCombo(document.form2.area,AREAS,'n');

 setArea(document.form1.area);
 setArea(document.form2.area);

 addOptsToCombo(document.form1.etype,EVENTTYPES);
 addOptsToCombo(document.form2.etype,EVENTTYPES);
 addOptsToCombo(document.form1.langs,LANGS);
 addOptsToCombo(document.form2.langs,LANGS);
 addOptsToCombo(document.form2.htype,PCOTYPES);
 
 var ccod=QueryString.ccod, city=QueryString.city;
 
 if (ccod) setCountry(document.form1.country,ccod);
 if (city) setCity(document.form1.city,city.toLowerCase()); 

 if (getObj('FAQ_Index_DMC')) {
	var Items_DMC={ }, Items_PCO={ };
	for(var i in Items) {
		var Item=Items[i];
		if (Item.cat==98) Items_DMC[i]=Item; else Items_PCO[i]=Item;
	}
//	if (QueryString.test) alert(getFAQIndex(Items_DMC,false,'faqAnswerDMC'));
	setObjContent('FAQ_Index_DMC',getFAQIndex(Items_DMC,false,'faqAnswerDMC'));
	if (getObj('FAQ_Index_PCO')) setObjContent('FAQ_Index_PCO',getFAQIndex(Items_PCO,false,'faqAnswerPCO'));
 }
 
 if (Q=QueryString.q) document.form1.qname.value=Q;

 if ((QueryString.modif) && (row=getCookie('lastSearch'))) {
	row=unserialize(row);
	if (row.htypes == null)
		fillForm(document.form2,row);
 	else
		fillForm(document.form1,row);
 }
 
 setTimeout('refresh()',100);
 
 BannersMap2=new TBannersMap(PUBSPACES[23],'AdSpace2');
 BannersMap3=new TBannersMap(PUBSPACES[24],'AdSpace3');
 BannersMap4=new TBannersMap(PUBSPACES[25],'AdSpace4');

 if (BannersMap2.firstBanner) setTimeout('nextBanner(BannersMap2)',2000);
 if (BannersMap3.firstBanner) setTimeout('nextBanner(BannersMap3)',2500);
 if (BannersMap4.firstBanner) setTimeout('nextBanner(BannersMap4)',3000);
}

chainOnload(initialize);

