function interact(oKaMap){
	this.kaMap = oKaMap;
	this.kaMap.interact = this;
	
	this.POIselectBox = this.kaMap.getRawObject("selectBoxPOI");
	this.firmSelectBox = this.kaMap.getRawObject("selectBoxFirms");
	this.gastroSelectBox = this.kaMap.getRawObject("selectBoxGastro");
	this.chaNameInput = this.kaMap.getRawObject("chaname");

	this.initInteraction();
}

interact.prototype.callPHP = function(paramsString, callbackFunction){
	var url = "/OPO/fetchdata.php?"+sessionName+"="+sessionId+"&commune="+dataOPO['NAME']+"&"+paramsString;
	
	call(url, this, callbackFunction);
};

interact.prototype.noaccent = function(chaine) {
	temp = chaine.replace(/[àâä]/gi,"a");
	temp = temp.replace(/[éèêë]/gi,"e");
	temp = temp.replace(/[îï]/gi,"i");
	temp = temp.replace(/[ôö]/gi,"o");
	temp = temp.replace(/[ùûü]/gi,"u");
	return temp;
};


interact.prototype.initInteraction = function() {
	// auto completion
	var otherName = "";
	if($d(dataOPO['CITIES']) && dataOPO['CITIES'].length > 10){
		var cityCommune = [];
		for(var i = 0; i < dataOPO['CITIES'].length; i++){
			//otherName="";
			cityCommune.push(dataOPO['CITIES'][i]['ZIP'] + " " + dataOPO['CITIES'][i]['CITY']);
			//otherName=this.noaccent(dataOPO['CITIES'][i]['CITY']);
			//if (otherName!=dataOPO['CITIES'][i]['CITY']) {
			//	cityCommune.push(dataOPO['CITIES'][i]['ZIP'] + " " + otherName);
			//}
		}
		new Autocompleter.Local("adr_ville", "cityName_list", cityCommune, {});
	}
};

interact.prototype.tipItem = function(e){
	var t = this;
	e = (e)?e:((event)?event:null);
	var src = (e.target)?e.target:((e.srcElement)?e.srcElement:e);
	var info = src.innerInfo;

	if (this.oldselected) {
		this.kaMap.getRawObject(this.oldselected).className=this.oldclassname;
	}
	this.oldselected=src.identifier;
	this.oldclassname=this.kaMap.getRawObject(src.identifier).className;
	this.kaMap.getRawObject(src.identifier).className="rowselected";

	if(this.canvas){
		this.kaMap.removeDrawingCanvas(this.canvas);
	}
	var x = parseInt(info.COORDX);
	var y = parseInt(info.COORDY);

	if(!x || !y){ 					// if x or y = NaN
		x = parseInt(info.objectidx);
		y = parseInt(info.objectidy);
	}
	
	// On désenregistre le listener pour le positionnement des objets
	this.kaMap.deregisterForEvent(KAMAP_EXTENTS_CHANGED, this.kaMap.admin ,this.kaMap.admin.positionTarget);
	if ($('centerView') != null) {
		$('centerView').remove();
	}

	// On redéfinit les maxextents pour les cas où l'objet se trouverait en dehors de la zone communale
	var objExtents = new Array;
	objExtents[0]= x-2000;
	objExtents[1]= y-2000;
	objExtents[2]= x+2000;
	objExtents[3]= y+2000;
	var maxExtentsNew = new Array;
	maxExtentsNew[0]=[objExtents[0],dataOPO['LEFT']].min();
	maxExtentsNew[1]=[objExtents[1],dataOPO['BOTTOM']].min();
	maxExtentsNew[2]=[objExtents[2],dataOPO['RIGHT']].max();
	maxExtentsNew[3]=[objExtents[3],dataOPO['TOP']].max();
	this.kaMap.getCurrentMap().setMaxExtents(maxExtentsNew[0],maxExtentsNew[1],maxExtentsNew[2],maxExtentsNew[3]);

	var scale = 6000;
	if (info.scale) {
		scale=info.scale;
	}
	this.kaMap.zoomTo(x,y, scale);
	
	this.canvas = this.kaMap.createDrawingCanvas(30); //zindex=30
	
	var tip = document.createElement("div");
	tip.innerHTML = "<img style='position : relative; top : -7px; left : -7px;' src='/OPO/images/tip.gif'/>";
	//tip.onclick = function(){t.kaMap.removeDrawingCanvas(t.canvas)};
	this.kaMap.addObjectGeo(this.canvas, x, y, tip );
		
	/*
	if(this.chronoTipResto != null)
		clearTimeout(this.chronoTipResto);
	this.chronoTipResto = setTimeout(function(){if(t.canvas) t.kaMap.removeDrawingCanvas(t.canvas)}, duration);
	*/
}

interact.prototype.showActions = function(typeObj, data) {
	var t = this;
	this.hideActions();

	var smallinfo = new Object();
	smallinfo.objclass = typeObj;
	smallinfo.cattitle = data.TYP;
	if (typeObj=='adr')
		smallinfo.ID_POINT_INTERET = data.id_objet;
	else
		smallinfo.ID_POINT_INTERET = data.ID_POINT_INTERET;
	smallinfo.PLACE = dataOPO['NAME'];

	var printItImage = this.kaMap.getRawObject("printItAction");
	printItImage.onclick = function(){myPrint(smallinfo)};
	printItImage.style.display = "block";

	/*
	var mailItImage = this.kaMap.getRawObject("mailItAction");
	mailItImage.onclick = function(e){alert('No function associated')};
	mailItImage.style.display = "block";
	*/

	if (dataOPO['ROUTING']=="1") {
		var routeItImage = this.kaMap.getRawObject("routeItAction");
		routeItImage.innerInfo = data;
		routeItImage.onclick = function(e){t.showRouting(e)};
		routeItImage.style.display = "block";
	}

	var hasadr=false;
	var trainItImage = this.kaMap.getRawObject("trainItAction");
	var sbbContainer=this.kaMap.getRawObject("sbbContainer");
	trainItImage.style.display = "none";

	if (typeObj=="adr") {
		if (typeof(data.localite)!="undefined" && data.localite!="") hasadr=true;
	}
	else {
		if (typeof(data.LOCALITE_18)!="undefined" && data.LOCALITE_18!="") hasadr=true;
	}
	if (hasadr) {
		trainItImage.innerInfo = data;
		trainItImage.onclick = function(e){t.showSBBPopUp(e)};
		trainItImage.style.display = "block";
	}
	sbbContainer.style.display='none';
	$('SMLayer').style.display='none';
	/*if (typeObj == "poi") {
		var gEarthImage = this.kaMap.getRawObject("googleEarthItAction");
		gEarthImage.onclick = function(e){t.showKMLDownloadPopUp()};
		gEarthImage.style.display = "block";
	}*/
};

interact.prototype.hideActions = function(){
	this.kaMap.getRawObject("routeItAction").style.display = "none";
	//this.kaMap.getRawObject("googleEarthItAction").style.display = "none";
	//this.kaMap.getRawObject("mailItAction").style.display = "none";
	//this.kaMap.getRawObject("printItAction").style.display = "none";
	var printItImage = this.kaMap.getRawObject("printItAction");
	printItImage.onclick = function(){myPrint(null)};

	this.kaMap.getRawObject("trainItAction").style.display = "none";
	$('SMLayer').style.display='';
}


interact.prototype.showKMLDownloadPopUp = function() {
	var KMLPopUp = new kaMapPopUp(this.kaMap, "KMLPopUp");
	var KMLurl = '/OPO/tools/googleearth/kml.php?name='+dataOPO['NAME'];

	KMLContent = "<div style='text-align:left; font-size:11px;position:relative; height:18px; padding-top:3px;width:100%; background:rgb(102,115,175); color:white'><span style='margin-left:3px;'>"+tra['kml_title']+"</span><a href='javascript:myKaMap.kaMapPopUp.destroyKaMapPopUp()' style='border:none'><img style='border:none; position:absolute; right:3px; top:4px;' src='/OPO/images/popUpSchliessen.gif'></a></div>";
	KMLContent += "<div align='center'><table width='350' style='font-size:11px'><tr>";
	KMLContent += "<td align='center' height='70' valign='middle'><img src='/OPO/images/googleEarth.gif'></td></tr>";
	KMLContent += "<tr><td align='center'>"+tra['ge_install'];
	KMLContent += "<div align='center'><a href='http://earth.google.com/download-earth.html' target='_new'>"+tra['ge_dwl']+"</a></div></td></tr>";
	KMLContent += "<tr><td align=center><br><a href='"+KMLurl+"'>";
	KMLContent += tra['gf_dwl']+"</a></td></tr><tr><td align='center'></td></tr></table></div>";

	KMLPopUp.setText(KMLContent);

	KMLPopUp.onclick = function(){KMLPopUp.destroyKaMapPopUp();};
};

interact.prototype.showRouting = function(e){
	e = (e)?e:((event)?event:null);
	var src = (e.target)?e.target:((e.srcElement)?e.srcElement:e);
	var infoPOI = src.innerInfo;
	
	var rDiv = $("routingDiv");
	var ambDiv = $("ambiguousLocationsDiv");
	
	var SBBDiv = $("sbbContainer");
	SBBDiv.style.display="none";
	SBBDiv.innerHTML="";
	
	// hide if visible
	if(rDiv.style.display == "block" || ambDiv.style.display == "block"){
		ambDiv.style.display = "none";
		rDiv.style.display = "none";
		$("keymap").style.display='';
		return;
	}
	
	rDiv.style.display = "block";
	$("r_table1").style.display = "block";
	$("r_table2").style.display = "block";

	ambDiv.style.display = "none";
	$("r_goRouting").innerInfo = infoPOI;
	
	if($("firmLogo") && $("firmLogo").style.display != "none")
		this.hideFirmLogo($("firmLogo").toggler);

	$("keymap").style.display='none';
};

interact.prototype.openHikingPopUp = function(){
	var hikePopUp = new kaMapPopUp(this.kaMap, "hikePopUp", 15);
	
	var widthTitle = 650;
	// add some pixels for scrollbar in IE (is added outside of the div)
	/*
	if(navigator.userAgent.toLowerCase().indexOf("msie 6.")!= -1){
		widthTitle += 16;
	}
	*/
	
	var winH = getInsideWindowHeight();
    var height = winH - 15 - 80;
	
	var content = "<div style='background:rgb(102,115,175); color:white;font-family:arial; position:relative;width:"+widthTitle+"px'><span style='margin-left:5px'>"+tra['hiking_title']+"</span><a href='javascript:myKaMap.kaMapPopUp.destroyKaMapPopUp()'><img style='border:none; position:absolute; right:3px; top:2px; width:14px; height:14px;' src='/OPO/images/popUpSchliessen.gif'></a></div>";
 	content += 	"<iframe src="+dataOPO['WANDERUNG_LINK']+" width='650' height="+height+" scrolling='auto' frameborder='0'></iframe>";
 	
	hikePopUp.setText(content);
};

interact.prototype.removeAllResults = function(){
	this.POIremoveResults();
	this.firmRemoveResults();
	this.gastroRemoveResults();
	this.chaletRemoveResults();
	this.addressRemoveResults();
};



///////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////// BLOC POI ///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////


interact.prototype.POIselected = function(){
	var selectedOption = this.POIselectBox.options[this.POIselectBox.options.selectedIndex].value;
	if(selectedOption != -1){
		var params = "action=getPOI&type="+selectedOption;
		$("POIsablier").style.display = "block";
		this.callPHP(params, this.POIselectedCallback);
	}
}

interact.prototype.POIselectedCallback = function(query){
	var directShow=null;
	$("POIsablier").style.display = "none";
	var t = this;
	try{
		eval(query);
	}
	catch(e){
		alert("eval failed");
	}
	this.oldselected=null;
	this.POIremoveResults();
	
	if(data == null)
		return;

	this.firmRemoveResults();
	this.firmResetFields();
	this.gastroRemoveResults();
	this.gastroResetFields();
	this.chaletRemoveResults();
	this.chaletResetFields();
	this.addressRemoveResults();
	this.addressResetFields();
	
	var nbPages = Math.ceil(data.length/10);
	this.poiNbPages=nbPages;
	for(var k = 0; k < nbPages; k++){
		var container = document.createElement("div");
		$("poiSearchDiv").appendChild(container);
		container.id = "poiSearchContainer"+k;
		container.style.display = "none";
		
		var table = document.createElement("table");
		container.appendChild(table);
		table.className = "poiSearchDiv_ResultTable";
		
		var tbody = document.createElement("tbody");
		table.appendChild(tbody);
		
		var upperBound = ((k+1)*10 > data.length)?data.length:(k+1)*10;
		for(var i = k*10; i < upperBound; i++){
			var tr = document.createElement("tr");
			tbody.appendChild(tr);
		
			var td = document.createElement("td");
			td.className="row"+(i%2);
			td.id="poirow"+i;
			tr.appendChild(td);
			
			var a = document.createElement("a");
			td.appendChild(a);
			a.innerHTML = data[i].NOM;
			if (dataOPO['MULTICITY']) {
				a.innerHTML+='<br>'+data[i].NPA+' '+data[i].LOCALITE_18;
			}
			a.innerInfo = data[i];
			a.dataType = "POI";
			a.identifier="poirow"+i;
			a.onclick = function(e){t.tipItem(e); t.displayPOIinfosOnTabRight(e); return false;};
			a.href = "#";
			a.page=k;
			if (data[i].showme==1) {
				directShow = a;
			}
		}
	}
	if (data.length==1 && !directShow) {
		this.tipItem(a);
		this.displayPOIinfosOnTabRight(a);
	}

	// create index
	if (nbPages>1) {
		var index = document.createElement("div");
		$("poiSearchDiv").appendChild(index);
		index.id = "poiIndex";
		/*
		for(var i = 0; i < nbPages; i++){
			index.innerHTML += "<a href='#' onclick='myKaMap.interact.activatePoiPage("+i+"); return false;'>"+(i+1)+"</a>&nbsp;";
		}
		*/
	}
	if (directShow) {
		this.activePoiPage = directShow.page;
		this.activatePoiPage(directShow.page);
		this.tipItem(directShow);
		this.displayPOIinfosOnTabRight(directShow);
	}
	else {
		this.activePoiPage = 0;
		this.activatePoiPage(0);
	}
}

interact.prototype.activatePoiPage = function(no){
	$("poiSearchContainer"+this.activePoiPage).style.display = "none";
	this.drawPages('poiIndex','activatePoiPage',this.poiNbPages,no);
	$("poiSearchContainer"+no).style.display = "block";
	this.activePoiPage = no;
}

interact.prototype.POIremoveResults = function(){
	var i = 0;
	while($("poiSearchContainer"+i)){
			$("poiSearchDiv").removeChild($("poiSearchContainer"+i));
			i++;
	}
	if($("poiIndex")){
		$("poiSearchDiv").removeChild($("poiIndex"));
	}
}

interact.prototype.POIresetFields = function(){
	this.POIselectBox.options[0].selected = true;
}


interact.prototype.displayPOIinfosOnTabRight = function(e){
	var t = this;
	e = (e)?e:((event)?event:null);
	var src = (e.target)?e.target:((e.srcElement)?e.srcElement:e);
	var info = src.innerInfo;
	var dataType = src.dataType;
	
	var infoContainer = $("poiInfoContainer");
	
	// remove old content
	while(infoContainer.childNodes.length > 0){
		infoContainer.removeChild(infoContainer.childNodes[0]);
	}
	
	// subtitle
	var selectedOptionLabel = this.POIselectBox.options[this.POIselectBox.options.selectedIndex].innerHTML;

	info.TYP = selectedOptionLabel;

	this.showActions('poi', info);

	var infoContainerContent = "<table cellspacing='0' class='subtitle'><tr><td style='vertical-align:middle;width:100%'>&nbsp;&nbsp;"+selectedOptionLabel+"</td>";
	if (this.kaMap.admin.modulesRights != null && typeof(this.kaMap.admin.modulesRights[3])!="undefined") {
		if (this.kaMap.admin.modulesRights[3].mod>=1) {
			var infoTXT='';
			infoTXT=tra['demandeDeCorrection'];
			if (this.kaMap.admin.modulesRights[3].mod==2) {
				infoTXT=tra['admin_correction'];
			}
			infoContainerContent += "<td style='text-align:right'><img alt='"+infoTXT+"' title='"+infoTXT+"' src='/OPO/images/modifyPOI.png' hspace='2' style='cursor:pointer' onclick='myKaMap.admin.modifyPOI("+info.ID_POINT_INTERET+")'></td>";
		}
		if (this.kaMap.admin.modulesRights[3].del>=1) {
			var infoTXT='';
			infoTXT=tra['admin_demandeDeSuppression'];
			if (this.kaMap.admin.modulesRights[3].del==2) {
				infoTXT=tra['admin_suppression'];
			}
			infoContainerContent += "<td style='text-align:right'><img alt='"+infoTXT+"' title='"+infoTXT+"' src='/OPO/images/deletePOI.png' hspace='2' style='cursor:pointer' onclick='myKaMap.admin.deletePOI("+info.ID_POINT_INTERET+")'></td>";
		}
	}
	infoContainerContent += "</tr></table>";
	infoContainer.innerHTML = infoContainerContent;
	
	// info table
	var table = document.createElement("table");
	infoContainer.appendChild(table);
	table.className = "table_detailsPOI";
	
	var tbody = document.createElement("tbody");
	table.appendChild(tbody);
	
	var tr = document.createElement("tr");
	tbody.appendChild(tr);
	
	var td = document.createElement("td");
	tr.appendChild(td);
	td.innerHTML = "<strong>"+info.NOM+"</strong>";

	if (info.CATEGORY==41) {
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML= this.SBBPopUpContent(info.NOM);
		$('cff_dest').searchType=1;
		$('cff_dep').searchType=7;
	}
	else {
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML = info.NOM_RUE + " " + info.NO_MAISON;
		
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML = info.NPA + " " + info.LOCALITE_18;

		if (info.NO_TEL!='') {
			var tr = document.createElement("tr");
			tbody.appendChild(tr);
			
			var td = document.createElement("td");
			tr.appendChild(td);
			td.innerHTML = info.NO_TEL;
		}
		if (info.E_MAIL!='') {
			var tr = document.createElement("tr");
			tbody.appendChild(tr);
			
			var td = document.createElement("td");
			tr.appendChild(td);
			td.innerHTML = info.E_MAIL;
		}
		if (info.URL!="") {
			var tr = document.createElement("tr");
			tbody.appendChild(tr);
			
			var td = document.createElement("td");
			tr.appendChild(td);
			td.innerHTML = '<a href="'+info.URL+'" target="_blank">'+tra['general_website']+'</a>';
		}
		/* Lien direct */
		// Uniquement affiché si la commune a "mapit" et qu'on ne vient pas depuis un lien direct
		if (dataOPO['MAP_IT'] && dataLink['isdirect']!=1) {
			var tr = document.createElement("tr");
			tbody.appendChild(tr);
			var td = document.createElement("td");
			tr.appendChild(td);
			td.innerHTML = '<a href="javascript:void(0)" onclick="$(\'poiDirectLink\').toggle()">'+tra['lien_direct']+'</a>';
			td.innerHTML += '<div id="poiDirectLink" style="display:none">http://'+top.location.host+'/'+dataOPO['NAME']+'/p/'+info.ID_POINT_INTERET+'</div>';
		}
	}
}

interact.prototype.SBBPopUpContent = function (name) {
	var HTMLContent='<table border="0" cellspacing="3" cellpadding="0"><tbody>';
	HTMLContent+='<tr><td colspan="3" style=""><img src="/OPO/images/logo-sbb.gif" style="padding:2px 0px 3px 0px;"></td></tr>';
	HTMLContent+='<tr>';
	HTMLContent+='<td>'+tra['routing_summary_departure']+'</td>';
	HTMLContent+='<td><input id="cff_dep" type="text" value="" style="width:120px; font-family:arial,helvetica; font-size:11px"></td>';
	HTMLContent+='<td rowspan="2"><img src="/OPO/images/reverse.gif" style="z-index:12" onClick="myKaMap.interact.switchStations(\'cff_dep\',\'cff_dest\')"></td>';
	HTMLContent+='</tr>';
	HTMLContent+='<tr>';
	HTMLContent+='<td>'+tra['routing_summary_destination']+'</td>';
	HTMLContent+='<td><input id="cff_dest" type="text" value="'+name+'" disabled=true style="width:120px; font-family:arial,helvetica; font-size:11px"></td>';
	HTMLContent+='</tr>';
	HTMLContent+='<tr>';
	HTMLContent+='<td></td>';
	HTMLContent+='<td><input type="button" value="'+tra['general_rechercher']+'" style="background:rgb(102,115,175); color:white; font-family:Arial,helvetica; font-size:75%;" onClick="myKaMap.interact.showCFFTimeTable(\'cff_dep\',\'cff_dest\');"></td>';
	HTMLContent+='</tr>';
	HTMLContent+='</tbody></table>';

	return HTMLContent;
};

interact.prototype.showSBBPopUp = function(e) {
	e = (e)?e:((event)?event:null);
	var src = (e.target)?e.target:((e.srcElement)?e.srcElement:e);
	var infoPOI = src.innerInfo;
	var sbbDIV = $("sbbContainer");
	var rDiv = $("routingDiv");
	var ambDiv = $("ambiguousLocationsDiv");

	rDiv.style.display='none';
	ambDiv.style.display='none';

	if (sbbDIV.style.display=='block') {
		sbbDIV.style.display='none';
	}
	else {
		if (infoPOI.TYP=='Adresse') {
			sbbsearch=infoPOI['npa']+' '+infoPOI['localite'];
			if (infoPOI['rue']!='') {
				sbbsearch+=','+infoPOI['rue'];
				if (infoPOI['numero']!="") {
					sbbsearch+=','+infoPOI['numero'];
				}
			}
		}
		else {
			var sbbsearch=infoPOI['NPA']+' '+infoPOI['LOCALITE_18'];
			if (infoPOI['NOM_RUE']!='') {
				sbbsearch+=','+infoPOI['NOM_RUE'];
				if (infoPOI['NO_MAISON']!="") {
					sbbsearch+=','+infoPOI['NO_MAISON'];
				}
			}
		}
		sbbDIV.innerHTML=this.SBBPopUpContent(sbbsearch);
		sbbDIV.style.display='block';
		$('cff_dest').searchType=2;
		$('cff_dep').searchType=7;
		
		if($("firmLogo") && $("firmLogo").style.display != "none")
			this.hideFirmLogo($("firmLogo").toggler);
	}
};
interact.prototype.switchStations = function(a,b) {
	var tmp = document.getElementById(a).value;
	document.getElementById(a).value = document.getElementById(b).value;
	document.getElementById(b).value = tmp;
	tmp = document.getElementById(a).searchType;
	document.getElementById(a).searchType = document.getElementById(b).searchType;
	document.getElementById(b).searchType = tmp;
	if(document.getElementById(a).disabled){
		document.getElementById(a).disabled = false;
		document.getElementById(b).disabled = true;
	}
	else{
		document.getElementById(a).disabled = true;
		document.getElementById(b).disabled = false;
	}
};
interact.prototype.showCFFTimeTable = function (a,b) {
	var dep = document.getElementById(a).value;
	var dest = document.getElementById(b).value;
	var depSearchType = document.getElementById(a).searchType;
	var destSearchType = document.getElementById(b).searchType;
	if(appLanguage == 'fr') var CFFlang = 'f';
	else if(appLanguage == 'de') var CFFlang = 'd';
	else if(appLanguage == 'it') var CFFlang = 'i';
	else var CFFlang = 'd';

	var url = 'http://fahrplan.sbb.ch/bin/query.exe/'+CFFlang+'n?REQ0JourneyStopsS0G='+dep+'&REQ0JourneyStopsS0A='+depSearchType+'&REQ0JourneyStopsZ0G=';
	url += dest+'&REQ0JourneyStopsZ0A='+destSearchType+'&queryPageDisplayed=yes&REQ0JourneyStops1.0A=1&REQ0HafasSkipLongChanges=0';
	url += '&REQ0HafasMaxChangeTime=120&start=1';

	window.open(url, 'pop');
};

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////// BLOC FIRMS ///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////

interact.prototype.firmSelected = function(){
	var selectedOption = this.firmSelectBox.options[this.firmSelectBox.options.selectedIndex].value;
	if(selectedOption != -1){
		var params = "action=getFirm&type="+selectedOption;
		$("firmSablier").style.display = "block";
		this.callPHP(params, this.firmSelectedCallback);
	}
}


interact.prototype.firmSelectedCallback = function(query){
	var directShow=null;
	$("firmSablier").style.display = "none";
	var t = this;
	try{
		eval(query);
	}
	catch(e){
		alert("eval failed");
	}
	this.oldselected=null;
	this.firmRemoveResults();

	if(data == null)
		return;
		
	this.POIremoveResults();
	this.POIresetFields();
	this.chaletRemoveResults();
	this.chaletResetFields();
	this.addressRemoveResults();
	this.addressResetFields();
	this.gastroRemoveResults();
	this.gastroResetFields();
	
	var nbPages = Math.ceil(data.length/10);
	this.firmNbPages = nbPages;
	for(var k = 0; k < nbPages; k++){
		var container = document.createElement("div");
		$("firmSearchDiv").appendChild(container);
		container.id = "firmSearchContainer"+k;
		container.style.display = "none";
		
		var table = document.createElement("table");
		container.appendChild(table);
		table.className = "firmSearchDiv_ResultTable";
		
		var tbody = document.createElement("tbody");
		table.appendChild(tbody);
		
		var upperBound = ((k+1)*10 > data.length)?data.length:(k+1)*10;
		for(var i = k*10; i < upperBound; i++){
			var tr = document.createElement("tr");
			tbody.appendChild(tr);
		
			var td = document.createElement("td");
			tr.appendChild(td);
			td.className="row"+(i%2);
			td.id="firmrow"+i;
			
			var a = document.createElement("a");
			td.appendChild(a);
			a.innerHTML = data[i].NOM;
			a.innerInfo = data[i];
			a.identifier="firmrow"+i;
			a.dataType = "firm";
			a.onclick = function(e){t.tipItem(e); t.displayFirmInfosOnTabRight(e); t.displayFirmLogo(e); return false;};
			a.href = "#";
			a.page=k;
			if (data[i].showme==1) {
				directShow = a;
			}
		}
	}
	
	if (data.length==1 && !directShow) {
		this.tipItem(a);
		this.displayFirmInfosOnTabRight(a);
		this.displayFirmLogo(data[0]);
	}
	// create index
	if (nbPages > 1) {
		var index = document.createElement("div");
		$("firmSearchDiv").appendChild(index);
		index.id = "firmIndex";
		
		for(var i = 0; i < nbPages; i++){
			index.innerHTML += "<a href='#' onclick='myKaMap.interact.activateFirmPage("+i+"); return false;'>"+(i+1)+"</a>&nbsp;";
		}
		
	}
	if (directShow) {
		this.activeFirmPage = directShow.page;
		this.activateFirmPage(directShow.page);
		this.displayFirmInfosOnTabRight(directShow);
		this.displayFirmLogo(directShow);
		this.tipItem(directShow);
	}
	else {
		this.activeFirmPage = 0;
		this.activateFirmPage(0);
	}
}

interact.prototype.activateFirmPage = function(no){
	$("firmSearchContainer"+this.activeFirmPage).style.display = "none";
	this.drawPages('firmIndex','activateFirmPage',this.addressNbPages,no);
	$("firmSearchContainer"+no).style.display = "block";
	this.activeFirmPage = no;
}


interact.prototype.firmRemoveResults = function(){
	var i = 0;
	this.removeFirmPopUp();
	while($("firmSearchContainer"+i)){
			$("firmSearchDiv").removeChild($("firmSearchContainer"+i));
			i++;
	}
	if($("firmIndex")){
		$("firmSearchDiv").removeChild($("firmIndex"));
	}
}

interact.prototype.firmResetFields = function(){
	try {
		this.firmSelectBox.options[0].selected = true;
	}
	catch(e) {

	}
}

interact.prototype.displayFirmInfosOnTabRight = function(e){
	var t = this;
	e = (e)?e:((event)?event:null);
	var src = (e.target)?e.target:((e.srcElement)?e.srcElement:e);
	var info = src.innerInfo;
	
	var infoContainer = $("poiInfoContainer");
	
	// remove old content
	while(infoContainer.childNodes.length > 0){
		infoContainer.removeChild(infoContainer.childNodes[0]);
	}
	
	// subtitle
	var selectedOptionLabel = this.firmSelectBox.options[this.firmSelectBox.options.selectedIndex].innerHTML;

	info.TYP = selectedOptionLabel;
	this.showActions('firm',info);
	
	infoContainer.innerHTML = "<table cellspacing='0' class='subtitle'><tr><td style='vertical-align:middle'>&nbsp;&nbsp;"+selectedOptionLabel+"</td></tr></table>";

	// info table
	var table = document.createElement("table");
	infoContainer.appendChild(table);
	
	var tbody = document.createElement("tbody");
	table.appendChild(tbody);
	
	var tr = document.createElement("tr");
	tbody.appendChild(tr);
	
	var td = document.createElement("td");
	tr.appendChild(td);
	td.innerHTML = "<strong>"+info.NOM+"</strong>";

	var tr = document.createElement("tr");
	tbody.appendChild(tr);
	
	var td = document.createElement("td");
	tr.appendChild(td);
	td.innerHTML = info.NOM_RUE + " " + info.NO_MAISON;
	
	var tr = document.createElement("tr");
	tbody.appendChild(tr);
	
	var td = document.createElement("td");
	tr.appendChild(td);
	td.innerHTML = info.NPA + " " + info.LOCALITE_18;

	var tr = document.createElement("tr");
	tbody.appendChild(tr);
	
	var td = document.createElement("td");
	tr.appendChild(td);
	td.innerHTML = info.NO_TEL;
	
	if(info.E_MAIL != null && info.EMAIL != ""){
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML = "<a href='mailto:" + info.E_MAIL + "'>" + info.E_MAIL + "</a>";
	}
	if(info.URL != null && info.URL != ""){
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML = "<a href='" + info.URL + "' target='_blank'>"+tra['general_website']+"</a>";
	}
	/* Lien direct */
	// Map-It toujours affiché pour entreprises, sauf si on vient depuis un lien
	if (dataLink['isdirect']!=1) {
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML = '<a href="javascript:void(0)" onclick="$(\'firmsDirectLink\').toggle()">'+tra['lien_direct']+'</a>';
		td.innerHTML += '<div id="firmsDirectLink" style="display:none">http://'+top.location.host+'/'+dataOPO['NAME']+'/f/'+info.ID_POINT_INTERET+'</div>';
	}
};


interact.prototype.displayFirmLogo = function(e){
	e = (e)?e:((event)?event:null);
	if(typeof(e.NOM) != "undefined"){
		var info = e;
	}
	else{
		var src = (e.target)?e.target:((e.srcElement)?e.srcElement:e);
		var info = src.innerInfo;
	}
	if(info.LOGO.length == 0)
		return;
	
	var container = document.createElement("div");
	container.style.position = "relative";
	container.style.marginTop = "10px";
	container.style.marginBottom = "10px";
	container.style.background = "white";
	container.style.textAlign = "right";
	container.style.zIndex = "5";
	container.style.cursor="pointer";
	
	var img = document.createElement("img");
	if (info.URL != null && info.URL != "") {
		var link=document.createElement("a");
		link.href=info.URL;
		link.target="_blank";
		container.appendChild(link);
		link.appendChild(img);
	}
	else {
		container.appendChild(img);
	}
	img.style.position = "absolute";
	img.style.right = "0px";
	img.style.top = "15px";
	img.style.border="0px";
	img.src = info.LOGO;
	img.id = "firmLogo";
	
	var toggler = document.createElement("a");
	container.appendChild(toggler);
	toggler.src = "#";
	toggler.style.cursor = "pointer";
	toggler.alt = tra['general_cacherLogo'];
	toggler.title = tra['general_cacherLogo'];
	toggler.className = 'logoToggler';
	toggler.style.background='url(/OPO/tools/progZoomer/images/MINUS.gif)';
	//toggler.innerHTML = tra['general_cacherLogo'];
	//toggler.innerHTML = '<img class="progZoomer_imgPLUSMINUS" src="/OPO/tools/progZoomer/images/MINUS.gif" alt="'+tra['general_cacherLogo']+'" title="'+tra['general_cacherLogo']+'" border="0"/>';
	toggler.action = "hide";
	toggler.image = $(img);
	var that = this;
	toggler.onclick = function(e){
		e = (e)?e:((event)?event:null);
		var elem = Event.element(e);
		if(elem.action == "hide")
			that.hideFirmLogo(e);
		else
			that.showFirmLogo(e);
		return false;
	};
	img.toggler = toggler;
	
	// insert the container after the pois informations
	$("poiInfoContainer").appendChild(container);
}

interact.prototype.hideFirmLogo = function(e){
	elem = (e)?e:((event)?event:null);
	if(!elem.action)
		elem = Event.element(e);
	elem.action = "show";
	elem.title = tra['general_montrerLogo'];
	elem.alt = tra['general_montrerLogo'];
	elem.style.background='url(/OPO/tools/progZoomer/images/PLUS.gif)';
	//elem.innerHTML = tra['general_montrerLogo'];
	//elem.innerHTML = '<img class="progZoomer_imgPLUSMINUS" src="/OPO/tools/progZoomer/images/PLUS.gif" alt="'+tra['general_montrerLogo']+'" title="'+tra['general_montrerLogo']+'" border="0"/>';
	elem.image.hide();
}

interact.prototype.showFirmLogo = function(e){
	elem = (e)?e:((event)?event:null);
	if(!elem.action)
		elem = Event.element(e);
	elem.action = "hide";
	elem.alt = tra['general_cacherLogo'];
	elem.title = tra['general_cacherLogo'];
	elem.className = 'logoToggler';
	elem.style.background='url(/OPO/tools/progZoomer/images/MINUS.gif)';
	//elem.innerHTML = tra['general_cacherLogo'];
	elem.image.show();
}

interact.prototype.displayFirmInfosInPopUp = function(e){
	e = (e)?e:((event)?event:null);
	if(typeof(e.NOM) != "undefined"){
		var info = e;
	}
	else{
		var src = (e.target)?e.target:((e.srcElement)?e.srcElement:e);
		var info = src.innerInfo;
	}
	
	var viewportContainer = $("viewportContainer");

	// subtitle
	var selectedOptionLabel = this.firmSelectBox.options[this.firmSelectBox.options.selectedIndex].innerHTML;
	
	// Delete existing DIV before creating a new one
	var olddiv = $("firmPopUp");
	if (olddiv) {
		viewportContainer.removeChild($("firmPopUp"));
	}
	
	// create popup
	var div = document.createElement("div");
	viewportContainer.appendChild(div);
	div.id = "firmPopUp";
	
	var title = document.createElement("div");
	div.appendChild(title);
	title.className="subtitle";
	title.style.cursor = "move";
	title.innerHTML = "<span style='padding-left:5px;position:relative; top:2px;'>"+selectedOptionLabel+"</span><span class='popUpCloser'><a href=\"#\" onClick=\"myKaMap.interact.removeFirmPopUp(); return false;\"><img style='border:none; position:absolute; right:0px; top:2px;' src='/OPO/images/popUpSchliessen.gif'></a></span>";
	
	var firmInfo = document.createElement("div");
	div.appendChild(firmInfo);

	var firmInfoHTML = '<table id="firmPopUp_table" border="0" cellspacing="0" cellpadding="0">';
	firmInfoHTML += '<tr><td align="left" valign="top" style="padding : 10px; width : 200px">';
	firmInfoHTML += "<strong>"+info.NOM+"</strong><br/>";

	firmInfoHTML += info.NOM_RUE+' '+info.NO_MAISON+'<br/>';
	firmInfoHTML += info.NPA+' '+info.LOCALITE_18+'<br/>';
	if (info.NO_TEL!='')
		firmInfoHTML += info.NO_TEL+'<br/>';
	if(info.E_MAIL != '')
		firmInfoHTML += "<a href='mailto:" + info.E_MAIL + "'>" + info.E_MAIL + "</a><br>";
	if (info.URL!='')
		firmInfoHTML += '<a href="'+info.URL+'" target="_blank">'+tra['general_website']+'</a><br/>';
	firmInfoHTML += '</td><td valign="top" align="center">';
	if (info.LOGO!='') {
		if (info.URL!='')
			firmInfoHTML+='<a href="'+info.URL+'" target="_blank"><img src="'+info.LOGO+'" border="0" onload="myKaMap.interact.adjustFirmPopUpWidth()"></a>';
		else
			firmInfoHTML+='<img src="'+info.LOGO + '" onload="myKaMap.interact.adjustFirmPopUpWidth()" />';
	}
	firmInfoHTML += '</td></tr></table>';
	
	firmInfo.innerHTML += firmInfoHTML;
	firmInfo.className="content";

	Drag.init(title, div, null, null, null, null);
	div.style.top = "55px";
	div.style.left = "15px";
};

interact.prototype.adjustFirmPopUpWidth = function(){
	$("firmPopUp").style.width = this.kaMap.getObjectWidth("firmPopUp_table") + 75 + "px";
	//getRawObject("viewer").innerHTML = "ajuste";
}

interact.prototype.removeFirmPopUp = function() {
	var viewportContainer = $("viewportContainer");
	var olddiv = $("firmPopUp");
	if (olddiv) {
		viewportContainer.removeChild(olddiv);
	}
};

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////// BLOC GASTRO ///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////

interact.prototype.gastroSelected = function(){
	var selectedOption = this.gastroSelectBox.options[this.gastroSelectBox.options.selectedIndex].value;
	if(selectedOption != -1){
		var params = "action=getGastro&type="+selectedOption;
		$("gastroSablier").style.display = "block";
		this.callPHP(params, this.gastroSelectedCallback);
	}
}


interact.prototype.gastroSelectedCallback = function(query){
	$("gastroSablier").style.display = "none";
	var t = this;
	try{
		eval(query);
	}
	catch(e){
		alert("eval failed");
	}
	this.oldselected=null;
	this.gastroRemoveResults();

	if(data == null)
		return;
		
	this.POIremoveResults();
	this.POIresetFields();
	this.chaletRemoveResults();
	this.chaletResetFields();
	this.addressRemoveResults();
	this.addressResetFields();
	this.firmRemoveResults();
	this.firmResetFields();
	
	var nbPages = Math.ceil(data.length/10);
	this.gastroNbPages = nbPages;
	for(var k = 0; k < nbPages; k++){
		var container = document.createElement("div");
		$("gastroSearchDiv").appendChild(container);
		container.id = "gastroSearchContainer"+k;
		container.style.display = "none";
		
		var table = document.createElement("table");
		container.appendChild(table);
		table.className = "gastroSearchDiv_ResultTable";
		
		var tbody = document.createElement("tbody");
		table.appendChild(tbody);
		
		var upperBound = ((k+1)*10 > data.length)?data.length:(k+1)*10;
		for(var i = k*10; i < upperBound; i++){
			var tr = document.createElement("tr");
			tbody.appendChild(tr);
		
			var td = document.createElement("td");
			tr.appendChild(td);
			td.className="row"+(i%2);
			td.id="gastrorow"+i;
			
			var a = document.createElement("a");
			td.appendChild(a);
			a.innerHTML = data[i].NAME+' '+data[i].ZUSATZ;
			a.innerInfo = data[i];
			a.identifier="gastrorow"+i;
			a.dataType = "gastro";
			a.onclick = function(e){t.tipItem(e); t.displayGastroInfosOnTabRight(e); t.displayGastroLogo(e); return false;};
			a.href = "#";
		}
	}
	
	if (data.length==1) {
		this.tipItem(a);
		this.displayGastroInfosOnTabRight(a);
		this.displayGastroLogo(data[0]);
	}
	// create index
	if (nbPages > 1) {
		var index = document.createElement("div");
		$("gastroSearchDiv").appendChild(index);
		index.id = "gastroIndex";
		
		for(var i = 0; i < nbPages; i++){
			index.innerHTML += "<a href='#' onclick='myKaMap.interact.activateGastroPage("+i+"); return false;'>"+(i+1)+"</a>&nbsp;";
		}
		
	}
	this.activeGastroPage = 0;
	this.activateGastroPage(0);
}

interact.prototype.activateGastroPage = function(no){
	$("gastroSearchContainer"+this.activeGastroPage).style.display = "none";
	this.drawPages('gastroIndex','activateGastroPage',this.addressNbPages,no);
	$("gastroSearchContainer"+no).style.display = "block";
	this.activeGastroPage = no;
}


interact.prototype.gastroRemoveResults = function(){
	var i = 0;
	this.removeGastroPopUp();
	while($("gastroSearchContainer"+i)){
			$("gastroSearchDiv").removeChild($("gastroSearchContainer"+i));
			i++;
	}
	if($("gastroIndex")){
		$("gastroSearchDiv").removeChild($("gastroIndex"));
	}
}

interact.prototype.gastroResetFields = function(){
	try {
		this.gastroSelectBox.options[0].selected = true;
	}
	catch(e) {

	}
}

interact.prototype.displayGastroInfosOnTabRight = function(e){
	var t = this;
	e = (e)?e:((event)?event:null);
	var src = (e.target)?e.target:((e.srcElement)?e.srcElement:e);
	var info = src.innerInfo;
	
	var infoContainer = $("poiInfoContainer");
	
	// remove old content
	while(infoContainer.childNodes.length > 0){
		infoContainer.removeChild(infoContainer.childNodes[0]);
	}
	
	// subtitle
	var selectedOptionLabel = this.gastroSelectBox.options[this.gastroSelectBox.options.selectedIndex].innerHTML;

	info.TYP = selectedOptionLabel;
	this.showActions('gastro',info);
	
	infoContainer.innerHTML = "<table cellspacing='0' class='subtitle'><tr><td style='vertical-align:middle'>&nbsp;&nbsp;"+selectedOptionLabel+"</td><td style='text-align:right'><img alt='"+tra['demandeDeCorrection']+"' title='"+tra['demandeDeCorrection']+"' src='/OPO/images/modifyResto.png' hspace='2' style='cursor:pointer' onclick='myKaMap.admin.modifyGastro("+info.ID_POINT_INTERET+")'></td></tr></table>";

	// info table
	var table = document.createElement("table");
	infoContainer.appendChild(table);
	
	var tbody = document.createElement("tbody");
	table.appendChild(tbody);
	
	var tr = document.createElement("tr");
	tbody.appendChild(tr);
	
	var td = document.createElement("td");
	tr.appendChild(td);
	td.innerHTML = "<strong>"+info.NAME+"</strong>";

	var tr = document.createElement("tr");
	tbody.appendChild(tr);
	
	var td = document.createElement("td");
	tr.appendChild(td);
	td.innerHTML = info.ZUSATZ;

	var tr = document.createElement("tr");
	tbody.appendChild(tr);
	
	var td = document.createElement("td");
	tr.appendChild(td);
	td.innerHTML = info.NOM_RUE + " " + info.NO_MAISON;
	
	var tr = document.createElement("tr");
	tbody.appendChild(tr);
	
	var td = document.createElement("td");
	tr.appendChild(td);
	td.innerHTML = info.NPA + " " + info.LOCALITE_18;

	if (info.TEL != null && info.TEL != ""){
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML = info.TEL;
	}
	
	if(info.EMAIL != null && info.EMAIL != ""){
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML = "<a href='mailto:" + info.EMAIL + "'>" + info.EMAIL + "</a>";
	}
	if (info.cuisine.length>0) {
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML="<ul>";
		for (i=0;i<info.cuisine.length;i++) {
			td.innerHTML+="<li>"+info.cuisine[i]+"</li>";
		}
		td.innerHTML+="</ul>";
	}
	if(info.URL != null && info.URL != ""){
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML = "<a href='" + info.URL + "' target='_blank'><img src=\"/OPO/images/button_gate24.gif\" border=\"0\" width=\"115\" height=\"31\"></a>";
	}
};

interact.prototype.displayGastroLogo = function(e){
	e = (e)?e:((event)?event:null);
	if(typeof(e.NAME) != "undefined"){
		var info = e;
	}
	else{
		var src = (e.target)?e.target:((e.srcElement)?e.srcElement:e);
		var info = src.innerInfo;
	}
	if(info.LOGOA.length == 0)
	return;
	
	var container = document.createElement("div");
	container.style.position = "relative";
	container.style.marginTop = "10px";
	container.style.marginBottom = "10px";
	container.style.background = "white";
	container.style.textAlign = "right";
	container.style.zIndex = "5";
	
	var img = document.createElement("img");
	container.appendChild(img);
	img.style.position = "absolute";
	img.style.right = "0px";
	img.style.top = "15px";
	img.src = 'http://www.gate24.ch/logos/'+info.LOGOA;
	img.id = "firmLogo";
	
	var toggler = document.createElement("a");
	container.appendChild(toggler);
	toggler.src = "#";
	toggler.style.cursor = "pointer";
	toggler.alt = tra['general_cacherLogo'];
	toggler.title = tra['general_cacherLogo'];
	toggler.className = 'logoToggler';
	toggler.style.background='url(/OPO/tools/progZoomer/images/MINUS.gif)';
	//toggler.innerHTML = tra['general_cacherLogo'];
	//toggler.innerHTML = '<img class="progZoomer_imgPLUSMINUS" src="/OPO/tools/progZoomer/images/MINUS.gif" alt="'+tra['general_cacherLogo']+'" title="'+tra['general_cacherLogo']+'" border="0"/>';
	toggler.action = "hide";
	toggler.image = $(img);
	var that = this;
	toggler.onclick = function(e){
		e = (e)?e:((event)?event:null);
		var elem = Event.element(e);
		if(elem.action == "hide")
			that.hideGastroLogo(e);
		else
			that.showGastroLogo(e);
		return false;
	};
	img.toggler = toggler;
	
	// insert the container after the pois informations
	$("poiInfoContainer").appendChild(container);
}

interact.prototype.hideGastroLogo = function(e){
	elem = (e)?e:((event)?event:null);
	if(!elem.action)
		elem = Event.element(e);
	elem.action = "show";
	elem.title = tra['general_montrerLogo'];
	elem.alt = tra['general_montrerLogo'];
	elem.style.background='url(/OPO/tools/progZoomer/images/PLUS.gif)';
	//elem.innerHTML = tra['general_montrerLogo'];
	//elem.innerHTML = '<img class="progZoomer_imgPLUSMINUS" src="/OPO/tools/progZoomer/images/PLUS.gif" alt="'+tra['general_montrerLogo']+'" title="'+tra['general_montrerLogo']+'" border="0"/>';
	elem.image.hide();
}

interact.prototype.showGastroLogo = function(e){
	elem = (e)?e:((event)?event:null);
	if(!elem.action)
		elem = Event.element(e);
	elem.action = "hide";
	elem.alt = tra['general_cacherLogo'];
	elem.title = tra['general_cacherLogo'];
	elem.className = 'logoToggler';
	elem.style.background='url(/OPO/tools/progZoomer/images/MINUS.gif)';
	//elem.innerHTML = tra['general_cacherLogo'];
	elem.image.show();
}

interact.prototype.displayGastroInfosInPopUp = function(e){
	e = (e)?e:((event)?event:null);
	if(typeof(e.NOM) != "undefined"){
		var info = e;
	}
	else{
		var src = (e.target)?e.target:((e.srcElement)?e.srcElement:e);
		var info = src.innerInfo;
	}
	
	var viewportContainer = $("viewportContainer");

	// subtitle
	var selectedOptionLabel = this.gastroSelectBox.options[this.gastroSelectBox.options.selectedIndex].innerHTML;
	
	// Delete existing DIV before creating a new one
	var olddiv = $("gastroPopUp");
	if (olddiv) {
		viewportContainer.removeChild($("gastroPopUp"));
	}
	
	// create popup
	var div = document.createElement("div");
	viewportContainer.appendChild(div);
	div.id = "gastroPopUp";
	
	var title = document.createElement("div");
	div.appendChild(title);
	title.className="subtitle";
	title.style.cursor = "move";
	title.innerHTML = "<span style='padding-left:5px;position:relative; top:2px;'>"+selectedOptionLabel+"</span><span class='popUpCloser'><a href=\"#\" onClick=\"myKaMap.interact.removeGastroPopUp(); return false;\"><img style='border:none; position:absolute; right:0px; top:2px;' src='/OPO/images/popUpSchliessen.gif'></a></span>";
	
	var gastroInfo = document.createElement("div");
	div.appendChild(gastroInfo);

	var gastroInfoHTML = '<table id="gastroPopUp_table" border="0" cellspacing="0" cellpadding="0">';
	gastroInfoHTML += '<tr><td align="left" valign="top" style="padding : 10px; width : 200px">';
	gastroInfoHTML += "<strong>"+info.NOM+"</strong><br/>";

	gastroInfoHTML += info.NOM_RUE+' '+info.NO_MAISON+'<br/>';
	gastroInfoHTML += info.NPA+' '+info.LOCALITE_18+'<br/>';
	if (info.NO_TEL!='')
		gastroInfoHTML += info.NO_TEL+'<br/>';
	if(info.E_MAIL != '')
		gastroInfoHTML += "<a href='mailto:" + info.E_MAIL + "'>" + info.E_MAIL + "</a><br>";
	if (info.URL!='')
		gastroInfoHTML += '<a href="'+info.URL+'" target="_blank">'+tra['general_website']+'</a><br/>';
	gastroInfoHTML += '</td><td valign="top" align="center">';
	if (info.LOGO!='') {
		if (info.URL!='')
			gastroInfoHTML+='<a href="'+info.URL+'" target="_blank"><img src="'+info.LOGO+'" border="0" onload="myKaMap.interact.adjustGastroPopUpWidth()"></a>';
		else
			gastroInfoHTML+='<img src="'+info.LOGO + '" onload="myKaMap.interact.adjustGastroPopUpWidth()" />';
	}
	gastroInfoHTML += '</td></tr></table>';
	
	gastroInfo.innerHTML += gastroInfoHTML;
	gastroInfo.className="content";

	Drag.init(title, div, null, null, null, null);
	div.style.top = "55px";
	div.style.left = "15px";
};

interact.prototype.adjustGastroPopUpWidth = function(){
	$("gastroPopUp").style.width = this.kaMap.getObjectWidth("gastroPopUp_table") + 75 + "px";
	//getRawObject("viewer").innerHTML = "ajuste";
}

interact.prototype.removeGastroPopUp = function() {
	var viewportContainer = $("viewportContainer");
	var olddiv = $("gastroPopUp");
	if (olddiv) {
		viewportContainer.removeChild(olddiv);
	}
};


///////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////// BLOC CHALETS ///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////

interact.prototype.chaletSearch = function(val){
	if(val != ""){
		var params = "action=getChalet&name="+escape(val);
		$("chaletSablier").style.display = "block";
		this.callPHP(params, this.chaletSearchCallback);
	}
}

interact.prototype.chaletSearchCallback = function(query){
	var directShow=null;
	$("chaletSablier").style.display = "none";
	var t = this;
	try{
		eval(query);
	}
	catch(e){
		alert("eval failed");
		return;
	}
	this.oldselected=null;
	this.chaletRemoveResults();
	if(data == null)
		return;
	
	this.POIremoveResults();
	this.POIresetFields();
	this.firmRemoveResults();
	this.firmResetFields();
	this.gastroRemoveResults();
	this.gastroResetFields();
	this.addressRemoveResults();
	this.addressResetFields();
	
	var parPage = 10;
	var nbPages = Math.ceil(data.length/parPage);
	this.chaletNbPages=nbPages;
	for(var k = 0; k < nbPages; k++){
		var container = document.createElement("div");
		$("chaletSearchDiv").appendChild(container);
		container.id = "chaletSearchContainer"+k;
		container.style.display = "none";
		
		var table = document.createElement("table");
		container.appendChild(table);
		table.className = "chaletSearchDiv_ResultTable";
		
		var tbody = document.createElement("tbody");
		table.appendChild(tbody);
		
		var upperBound = ((k+1)*parPage > data.length)?data.length:(k+1)*parPage;
		for(var i = k*10; i < upperBound; i++){
			var tr = document.createElement("tr");
			tbody.appendChild(tr);
		
			var td = document.createElement("td");
			tr.appendChild(td);
			td.className="row"+(i%2);
			td.id="charow"+i;
			
			var a = document.createElement("a");
			td.appendChild(a);
			a.innerHTML = data[i].NAME;
			a.innerInfo = data[i];
			a.dataType = "chalet";
			a.identifier="charow"+i;
			a.onclick = function(e){t.tipItem(e); t.displayChaletInfosOnTabRight(e); return false;};
			a.href = "#";
			a.page=k;
			if (data[i].showme==1) {
				directShow = a;
			}
		}
	}
	
	if (data.length==1 && !directShow) {
		this.tipItem(a);
		this.displayChaletInfosOnTabRight(a);
	}
	// create index
	if (nbPages>1) {
		var index = document.createElement("div");
		$("chaletSearchDiv").appendChild(index);
		index.id = "chaletIndex";
	}
	if (directShow) {
		this.activeChaletPage = directShow.page;
		this.activateChaletPage(directShow.page);
		this.displayChaletInfosOnTabRight(directShow);
		this.tipItem(directShow);
	}
	else {
		this.activeChaletPage = 0;
		this.activateChaletPage(0);
	}
}

interact.prototype.activateChaletPage = function(no){
	$("chaletSearchContainer"+this.activeChaletPage).style.display = "none";
	this.drawPages('chaletIndex','activateChaletPage',this.chaletNbPages,no);
	$("chaletSearchContainer"+no).style.display = "block";
	this.activeChaletPage = no;
};
interact.prototype.drawPages = function(element,actFunct,nbPages,page) {
	if (nbPages>1) {
		var nbGroupesPagesBefor=4;
		var nbGroupesPagesAfter=6;
		var pageMin=0;
		var pageMax=nbPages;
		
		pageMin=page-nbGroupesPagesBefor;
		pageMax=page+nbGroupesPagesAfter;
		var delta=0;
		if (pageMin<0) {
			delta=0-pageMin;
			pageMin=0;
			pageMax+=delta;
			if (pageMax>nbPages) {
				pageMax=nbPages;
			}
		}
		if (pageMax>nbPages) {
			delta=pageMax-nbPages;
			pageMax=nbPages;
			pageMin-=delta;
			if (pageMin<0) {
				pageMin=0;
			}
		}

		var index = $(element);
		index.innerHTML='';
		for(var i = pageMin; i < pageMax; i++){
			if (i==page) index.innerHTML += "<strong>"+(i+1)+"</strong>&nbsp;";
			else index.innerHTML += "<a href='#' onclick='myKaMap.interact."+actFunct+"("+i+"); return false;'>"+(i+1)+"</a>&nbsp;";
		}
	}
};

interact.prototype.chaletRemoveResults = function(){
	var i = 0;
	while($("chaletSearchContainer"+i)){
			$("chaletSearchDiv").removeChild($("chaletSearchContainer"+i));
			i++;
	}
	if($("chaletIndex")){
		$("chaletSearchDiv").removeChild($("chaletIndex"));
	}
};

interact.prototype.chaletResetFields = function(){
	try {
		$("chaname").value = "";	
	}
	catch(e) {

	}
};

interact.prototype.displayChaletInfosOnTabRight = function(e){
	var t = this;
	e = (e)?e:((event)?event:null);
	var src = (e.target)?e.target:((e.srcElement)?e.srcElement:e);
	var info = src.innerInfo;
	
	var infoContainer = $("poiInfoContainer");
	
	// remove old content
	while(infoContainer.childNodes.length > 0){
		infoContainer.removeChild(infoContainer.childNodes[0]);
	}
	
	info.TYP=tra['chalet'];
	this.showActions('chalet',info);

	// subtitle
	infoContainer.innerHTML = "<table cellspacing='0' class='subtitle'><tr><td style='vertical-align:middle'>&nbsp;&nbsp;"+tra['chalet']+"</td></tr></table>";
	
	// info table
	var table = document.createElement("table");
	infoContainer.appendChild(table);
	
	var tbody = document.createElement("tbody");
	table.appendChild(tbody);
	
	var tr = document.createElement("tr");
	tbody.appendChild(tr);
	
	var td = document.createElement("td");
	tr.appendChild(td);
	td.innerHTML = "<strong>"+info.NAME+"</strong>";
	if (info.LOCALITE_18!='' || info.NPA!='' || info.NO_MAISON!='' || info.NOM_RUE!='') {
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML = info.NOM_RUE+' '+info.NO_MAISON+'<br>'+info.NPA+' '+info.LOCALITE_18;
	}
	if (info.NO_TEL!='') {
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML = info.NO_TEL;
	}
	if (info.E_MAIL!='') {
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML = '<a href="mailto:'+info.E_MAIL+'">'+info.E_MAIL+'</a>';
	}
	if (info.URL!='') {
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML = '<a href="'+info.URL+' target="_blank"">'+tra['general_details']+'</a>';
	}
	/* Lien direct */
	// Uniquement affiché si la commune a "mapit" et qu'on ne vient pas depuis un lien direct
	if (dataOPO['MAP_IT'] && dataLink['isdirect']!=1) {
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML = '<a href="javascript:void(0)" onclick="$(\'chaletDirectLink\').toggle()">'+tra['lien_direct']+'</a>';
		td.innerHTML += '<div id="chaletDirectLink" style="display:none">http://'+top.location.host+'/'+dataOPO['NAME']+'/c/'+info.ID_POINT_INTERET+'</div>';
	}
};


///////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////// BLOC ADRESSE ///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////

interact.prototype.addressSearch = function(adr_r1,adr_r2,adr_rue,adr_no,adr_ville){
	var r1 = $(adr_r1);
	var r2 = $(adr_r2);
	var type = 1;
	if(r1.checked)
		type=1;
	else if(r2.checked)
		type=2;
		
	var rue = $(adr_rue).value;
	var no = $(adr_no).value;
	var cityValue = ($(adr_ville))?$(adr_ville).value:-1;
	
	var zip = -1;
	var city = -1;	
		
	if(cityValue != -1){
		var sep = cityValue.indexOf("#");
		zip = cityValue.substring(0, sep);
		city = cityValue.substring(sep+1, cityValue.length);
	}
	
	this.addressRemoveResults();
	if(rue != "" || type==2){
		if (dataOPO['MULTICITY'] && dataOPO['CITIES'].length>=20 && city.length==0) {
			this.blink([adr_ville],["fieldEnabled", "fieldRed"], 150, 2);
		}
		else {
			var params = "action=addressSearch&type="+type+"&street="+escape(rue)+"&houseNb="+no+"&zip="+zip+"&city="+escape(city);
			$("adresseSablier").style.display = "block";
			this.callPHP(params, this.addressSearchCallback);
		}
	}
	else{
		if (dataOPO['MULTICITY'] && dataOPO['CITIES'].length>=20 && city.length==0) {
			this.blink([adr_ville],["fieldEnabled", "fieldRed"], 150, 2);
		}
		else {
			var params = "action=citySearch&type="+type+"&zip="+zip+"&city="+escape(city);
			$("adresseSablier").style.display = "block";
			this.callPHP(params, this.addressSearchCallback);
		}
	}
};

interact.prototype.blink = function(targets, classNames, delay, blinkCounter){
	var t = this;
	if(blinkCounter == 0)
		return;
	for(var i = 0; i < targets.length; i++){
		$(targets[i]).className = classNames[1];
	}
	window.setTimeout(function(){for(var i=0; i<targets.length; i++){t.kaMap.getRawObject(targets[i]).className = classNames[0];}; window.setTimeout(function(){t.blink(targets, classNames, delay, --blinkCounter)}, delay)}, delay);
};


interact.prototype.addressSearchCallback = function(query){
	var directShow = null;
	$("adresseSablier").style.display = "none";
	var t = this;
	try{
		eval(query);
	}
	catch(e){
		//alert("Error: Javascript failure");
		var data = null;
	}
	this.oldselected=null;
	this.addressRemoveResults();
	if(data == null){
		var container = document.createElement("div");
		$("addressSearchDiv").appendChild(container);
		container.id = "adrSearchContainer0";
		container.className='addressSearchDiv_ResultTable';
		container.innerHTML=tra['no_address'];
		return;
	}
	this.POIremoveResults();
	this.POIresetFields();
	this.firmRemoveResults();
	this.firmResetFields();
	this.gastroRemoveResults();
	this.gastroResetFields();
	this.chaletRemoveResults();
	this.chaletResetFields();
	
	if ($("adr_radio2").checked) {
		$("adr_no").value='';
	}
	//$("adr_radio1").checked = true;
	//$("adr_radio2").checked = false;
	//$("adr_no").disabled = false;
	//$("adr_no").className = "fieldEnabled";
	
	var nbPages = Math.ceil(data.length/10);
	this.adrNbPages=nbPages;
	for(var k = 0; k < nbPages; k++){
		var container = document.createElement("div");
		$("addressSearchDiv").appendChild(container);
		container.id = "adrSearchContainer"+k;
		container.style.display = "none";
		
		var table = document.createElement("table");
		container.appendChild(table);
		table.className = "addressSearchDiv_ResultTable";
		
		var tbody = document.createElement("tbody");
		table.appendChild(tbody);
		
		var upperBound = ((k+1)*10 > data.length)?data.length:(k+1)*10;
		for(var i = k*10; i < upperBound; i++){
			var tr = document.createElement("tr");
			tbody.appendChild(tr);
		
			var td = document.createElement("td");
			tr.appendChild(td);
			td.className="row"+(i%2);
			td.id="adrrow"+i;
			
			var a = document.createElement("a");
			td.appendChild(a);
			a.innerHTML = data[i].rue + ((data[i].numero)?(" " + data[i].numero):(""));
			if(dataOPO['MULTICITY']){
				a.innerHTML += "<br>" + data[i].npa + " " + data[i].localite;	
			}
			
			a.innerInfo = data[i];
			a.dataType = "address";
			a.identifier="adrrow"+i;
			if(data[i].objectidx)
				a.onclick = function(e){t.tipItem(e); t.displayAddressInfosOnTabRight(e); return false;};
			else
				a.onclick = function(e){t.newAddressSearch(e); return false;};
			a.href = "#";
			a.page=k;
			if (data[i].showme==1) {
				directShow = a;
			}
		}
	}
	if (data.length==1 && data[0].objectidx && !directShow) {
		this.tipItem(a);
		this.displayAddressInfosOnTabRight(a);
	}
	// create index
	if (nbPages>1) {
		var index = document.createElement("div");
		$("addressSearchDiv").appendChild(index);
		index.id = "adrIndex";
		/*
		for(var i = 0; i < nbPages; i++){
			index.innerHTML += "<a href='#' onclick='myKaMap.interact.activateAdrPage("+i+"); return false;'>"+(i+1)+"</a>&nbsp;";
		}
		*/
	}
	if (directShow) {
		this.activeAdrPage = directShow.page;
		this.activateAdrPage(directShow.page);
		this.tipItem(directShow);
		this.displayAddressInfosOnTabRight(directShow);
	}
	else {
		this.activeAdrPage = 0;
		this.activateAdrPage(0);
	}	
};

interact.prototype.activateAdrPage = function(no){
	$("adrSearchContainer"+this.activeAdrPage).style.display = "none";
	this.drawPages('adrIndex','activateAdrPage',this.adrNbPages,no);
	$("adrSearchContainer"+no).style.display = "block";
	this.activeAdrPage = no;
};

// called after a search by index
interact.prototype.newAddressSearch = function(e){
	var t = this;
	e = (e)?e:((event)?event:null);
	var src = (e.target)?e.target:((e.srcElement)?e.srcElement:null);
	var info = src.innerInfo;
	
	//$("adr_rue").value = info.rue;
	//$("adr_radio1").checked = true;
	//$("adr_radio2").checked = false;
	
	var type=1;

	var rue = $("adr_rue").value;
	var no = $("adr_no").value;

	var params = "action=addressSearch&type="+type+"&street="+escape(rue)+"&houseNb="+no+"&id_rue="+info.id_objet;
	this.callPHP(params, this.addressSearchCallback);
};

interact.prototype.addressRemoveResults = function(){
	var i = 0;
	while($("adrSearchContainer"+i)){
			$("addressSearchDiv").removeChild($("adrSearchContainer"+i));
			i++;
	}
	if($("adrIndex")){
		$("addressSearchDiv").removeChild($("adrIndex"));
	}
};

interact.prototype.addressResetFields = function(){
	try {
		$("adr_rue").value = "";
		$("adr_no").value = "";
		$("adr_radio1").checked = true;
		$("adr_radio2").checked = false;
	}
	catch(e) {

	}
};

interact.prototype.displayAddressInfosOnTabRight = function(e){
	var t = this;
	e = (e)?e:((event)?event:null);
	var src = (e.target)?e.target:((e.srcElement)?e.srcElement:e);
	var info = src.innerInfo;
	
	// fill search fields with correct values
	//$("adr_rue").value = info.rue;
	//$("adr_no").value = info.numero;
	
	var infoContainer = $("poiInfoContainer");
	
	// remove old content
	while(infoContainer.childNodes.length > 0){
		infoContainer.removeChild(infoContainer.childNodes[0]);
	}
	
	info.TYP=tra['address'];
	this.showActions('adr',info);
	
	// subtitle
	infoContainer.innerHTML = "<table cellspacing='0' class='subtitle'><tr><td style='vertical-align:middle'>&nbsp;&nbsp;"+tra['address']+"</td></tr></table>";
	
	// info table
	var table = document.createElement("table");
	infoContainer.appendChild(table);
	
	var tbody = document.createElement("tbody");
	table.appendChild(tbody);
	
	var tr = document.createElement("tr");
	tbody.appendChild(tr);
	
	var td = document.createElement("td");
	tr.appendChild(td);
	td.innerHTML = info.rue+" " + info.numero + "<br>" + info.npa + " " + info.localite;

	/* Lien direct */
	// Uniquement affiché si la commune a "mapit" et qu'on ne vient pas depuis un lien direct
	if (dataOPO['MAP_IT'] && dataLink['isdirect']!=1) {
		var tr = document.createElement("tr");
		tbody.appendChild(tr);
		var td = document.createElement("td");
		tr.appendChild(td);
		td.innerHTML = '<a href="javascript:void(0)" onclick="$(\'addressDirectLink\').toggle()">'+tra['lien_direct']+'</a>';
		td.innerHTML += '<div id="addressDirectLink" style="display:none">http://'+top.location.host+'/'+dataOPO['NAME']+'/a/'+info.id_objet+'</div>';
	}
};


///////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////// MAPGATE ///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////

interact.prototype.updateBoxes = function() {
	var scale=myKaMap.getCurrentScale();
	// on small scales, look in which place we are and update the POI/Firms boxes. Else hide them.
	if (scale>300000) {
		$('keymap').style.display='none';
	}
	else {
		$('keymap').style.display='';
	}

	if (scale<=30000) {
		var extents = myKaMap.getGeoExtents();
		var left = extents[0];
		var right = extents[2];
		var top = extents[3];
		var bottom = extents[1];
		var t = this;
		this.callPHP('action=findPlaces&extents='+left+','+bottom+','+right+','+top,t.updateBoxesCallback);
	}
	else {
		$('poiSearchDiv').style.display='none';
		$('firmSearchDiv').style.display='none';
		//$('gastroSearchDiv').style.display='none';
		//$('googleEarthItAction').style.display='none';
	}
};

interact.prototype.updateBoxesCallback = function(query) {
	try{
		eval(query);
	}
	catch(e){
		//alert("eval failed");
		return;
	}
	var poiDisplay='';
	var firmDisplay='';
	var gastroDisplay='';
	var selectBoxPOI = $('selectBoxPOI');
	var selectBoxFirms = $('selectBoxFirms');
	//var selectBoxGastro = $('selectBoxGastro');
	if (data!='nochange') {
		
		var battyp = data['bat'];
		var firmtyp = data['firm'];
		//var gastrotyp = data['gastro'];

		battyp_keys=Object.keys(battyp);
		firmtyp_keys=Object.keys(firmtyp);
		//gastrotyp_keys=Object.keys(gastrotyp);

		var oldPOISelected=selectBoxPOI.value;
		if (dataLink['isdirect']==1 && oldPOISelected<0 && dataLink['objclass']=="poi") {
			oldPOISelected=dataLink['cat'];
		}
		while(selectBoxPOI.childNodes.length > 1){
			selectBoxPOI.removeChild(selectBoxPOI.childNodes[1]);
		}
		var oldFirmsSelected=selectBoxFirms.value;
		if (dataLink['isdirect']==1 && oldFirmsSelected<0 && dataLink['objclass']=="firm") {
			oldFirmsSelected=dataLink['cat'];
		}
		while(selectBoxFirms.childNodes.length > 1){
			selectBoxFirms.removeChild(selectBoxFirms.childNodes[1]);
		}
		/*
		while(selectBoxGastro.childNodes.length > 1){
			selectBoxGastro.removeChild(selectBoxGastro.childNodes[1]);
		}
		*/

		var oldparent='';
		for (var i = 0, length = battyp_keys.length; i < length; i++) {
			var id = battyp_keys[i];
			var item = battyp[id];
			if (item['parent']!=oldparent) {
				var optionel = document.createElement('optgroup');
				optionel.label=item['parent'];
				selectBoxPOI.appendChild(optionel);
				oldparent = item['parent'];
			}
			var optionel = document.createElement('option');
			optionel.innerHTML=item['libelle'];
			optionel.value=item['id'];
			if (optionel.value==oldPOISelected && oldPOISelected>0) {
				optionel.selected=true;
			}
			selectBoxPOI.appendChild(optionel);
		};
		/*
		for (var i = 0, length = gastrotyp_keys.length; i < length; i++) {
			var id = gastrotyp_keys[i];
			var item = gastrotyp[id];
			var optionel = document.createElement('option');
			optionel.innerHTML=item;
			optionel.value=id;
			selectBoxGastro.appendChild(optionel);
		};
		*/
		for (var i = 0, length = firmtyp_keys.length; i < length; i++) {
			var id = firmtyp_keys[i];
			var item = firmtyp[id];
			var optionel = document.createElement('option');
			optionel.innerHTML=item;
			optionel.value=id;
			if (optionel.value==oldFirmsSelected && oldFirmsSelected>0) {
				optionel.selected=true;
			}
			selectBoxFirms.appendChild(optionel);
		};
	}
	if (selectBoxPOI.childNodes.length <= 1) {
		poiDisplay='none';
	}
	if (selectBoxFirms.childNodes.length <= 1) {
		firmDisplay='none';
	}
	/*
	if (selectBoxGastro.childNodes.length <= 1) {
		gastroDisplay='none';
	}
	*/
	$('poiSearchDiv').style.display=poiDisplay;
	$('firmSearchDiv').style.display=firmDisplay;
	//$('gastroSearchDiv').style.display=gastroDisplay;
	//$('googleEarthItAction').style.display=poiDisplay;
};

interact.prototype.mapClicked = function(eventID,p) {
	var scale=this.kaMap.getCurrentScale();
	var currentScale = myKaMap.getCurrentScale();
	if (currentScale>=600000) {
		var t = this;
		this.callPHP('action=cityProximitySearch&x='+p[0]+'&y='+p[1],t.mapClickedCallback);
	}
	else {
		this.kaMap.zoomIn();
		this.kaMap.zoomTo(p[0],p[1]);
	}
};

interact.prototype.mapClickedCallback = function(query) {
	try{
		eval(query);
	}
	catch(e){
		//alert("eval failed");
		return;
	}
	if (data!='') {
		$('adr_ville').value=data;
		$('adr_radio1').checked=true;
		this.addressSearch('adr_radio1','adr_radio2','adr_rue','adr_no','adr_ville');
	}
};

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////// SchweizMobil ///////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
interact.prototype.showHideSMLayer = function() {
	if ($('SMLayer').style.display!='none') {
		$('SMLayer').style.display='none';
	}
	else {
		$('SMLayer').style.display='';
		$('poiInfoContainer').innerHTML='';
		$("sbbContainer").style.display='none';
		$("routingDiv").style.display='none';
		$("ambiguousLocationsDiv").style.display='none';
		$("keymap").style.display='';
		/*
		if (this.canvas) {
			this.kaMap.removeDrawingCanvas(this.canvas);
		}
		*/
		this.kaMap.deregisterForEvent(KAMAP_EXTENTS_CHANGED, this.kaMap.admin ,this.kaMap.admin.positionTarget);
		if ($('centerView') != null) {
			$('centerView').remove();
		}
		this.hideActions();
	}
};
interact.prototype.setSMLayerVisibility = function(obj,name) {
	if (name=='Wanderland') {
		this.kaMap.setLayerVisibility('Wanderland',$('chkWanderland').checked);
	}
	else if (name=='Wanderland-Local') {
		this.kaMap.setLayerVisibility('Wanderland-Local',$('chkWanderlandLocal').checked);
	}
	else {
		if (obj.checked) {
			obj.checked=false;
			obj.src=obj.src.replace('_on.png','_off.png');
			var labelObj=obj.id.replace('Btn','Txt');
			$(labelObj).style.color=null;
		}
		else {
			obj.checked=true;
			obj.src=obj.src.replace('_off.png','_on.png');
			var labelObj=obj.id.replace('Btn','Txt');
			$(labelObj).style.color='#000000';
		}
		if (name=='Wanderland-Choice') {
			if (obj.checked) {
				$('smWanderlandChoice').style.display='block';
				if ($('chkWanderlandLocal').checked) {
					this.kaMap.setLayerVisibility('Wanderland-Local',true);
				}
				if ($('chkWanderland').checked) {
					this.kaMap.setLayerVisibility('Wanderland',true);
				}
			}
			else {
				$('smWanderlandChoice').style.display='none';
				this.kaMap.setLayerVisibility('Wanderland',false);
				this.kaMap.setLayerVisibility('Wanderland-Local',false);
			}
		}
		else {
			var checked = obj.checked;
			this.kaMap.setLayerVisibility( name, checked );
		}
	}
	this.checkSMLayers();
};
interact.prototype.checkSMLayers = function() {
	var SMLayers = Array('Wanderland','Wanderland-Local','Veloland','Mountainbikeland','Skatingland','Kanuland');
	var checkedSMLayers=0;
	for (var n=0;n<SMLayers.length;n=n+1) {
		if(this.kaMap.getCurrentMap().getLayer(SMLayers[n]).visible){
			checkedSMLayers=checkedSMLayers+1;
		}
	}

	if (checkedSMLayers>0) {
		this.kaMap.setLayerOpacity("basemap",60);
	}
	else {
		this.kaMap.setLayerOpacity("basemap",100);
	}
};
