var tHALTE = [];
var tHALTEG = [];
var szCurRechCulture = "";
var curXBulle = 0;
var curYBulle = 0;
var infoBulle = null;
var curorder = 0;
var shouldLoadBulle = false;
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };

function OpenInfoEntite(idEnt)
{
var szTarget = "http://www.culture.lyon.fr/culture/sections/fr/musees__expositions/a_lyon/entite?entiteId="+idEnt;
OuvreLien(szTarget);
}


function resizeImage(objImg)
{
	var w = objImg.getAttribute("width");
	var h = objImg.getAttribute("height");
	var m = h;
	
	if(w>h)
	{
		m = w;
	}
	if(m>200)
	{
		if(w>h)
		{
			w = 200;
			h = 200*h/m;
		}
		else
		{
			h = 200;
			w = 200*w/m;
		}
		
	}
	
}
function POI(x,y,alphaJ,szNomRecherche,order){
   this.x=x;
   this.y=y;
   this.alphaJ=alphaJ;
   this.order=order;
   this.szNomRecherche = szNomRecherche;
}

POI.prototype.getClickCode=function(){

var szContent = "shouldLoadBulle = false;getInfoInBulle("+this.x+","+this.y+",'"+this.alphaJ+"','"+this.szNomRecherche+"',"+this.order+")\"";
return(szContent);
}


function getPOIByAJ(tObj,alphaJ)
{
	var tRet = [];
	
	for(i=0;i<tObj.length;i++)
	{
		if(tObj[i].alphaJ==alphaJ)
		{
			tRet.push(tObj[i]);
		}
	}
	return (tRet);
}
function GetPrevNext(tObj,order)
{
var prevObj;
var nextObj;
if(order==0)
prevObj = tObj[tObj.length-1];
else
prevObj = tObj[order-1];


if(order == tObj.length-1)
nextObj = tObj[0];
else
nextObj = tObj[order+1];


	szContent = "<table><tr><td><a href=\"javascript:void(0);\" onclick=\""+prevObj.getClickCode()+"\"> précedent </a></td><td><a href=\"javascript:void(0);\" onclick=\""+nextObj.getClickCode()+"\"> suivant </a></td></tr></table>";
	return(szContent);
}


function GetPOI(OID,szNomRecherche)
{

	var loc = location.href;
	var chaine = szHttpServeur +
	                "&ACTION=GetInfo!EMPRISE=ALL!" +
									"!SELECT=" + szNomRecherche + "@1" +
									"!ALPHAJ=" + OID +
									"!LOCATION=" + loc +"&bummy="+ new Date().getTime() +"&PORT=" + szPort;
									
	var param = new HttpRequestParam( "GET", chaine, function(xmlhttp) {displayInfoPOI(xmlhttp.responseText);});
	xmlHttpRequest(param);

}

var scriptToEval = [];
function displayInfoPOI ( content )
	{

		
		document.getElementById("divInfoPOI").innerHTML = content;
		scriptToEval  = [];
		
		
		
		
		if(document.getElementById("listeHalte")!=null)
		{
			var szListHALTE = document.getElementById("listeHalte").innerHTML;
			scriptToEval.unshift("RequestCoordPOI(\"Halte\",\""+szListHALTE+"\");");
			
		
			
		}
		
		
		if(document.getElementById("listePOI"))
		{
			var szListPOI = document.getElementById("listePOI").innerHTML;
			var tContent = szListPOI.split(",");
			
			szListPOI = "";
			for(k=0;k<tContent.length;k++)
			{
				var tContentlocal = tContent[k].split("@");
				if(tContentlocal[0]!="")
				{
				szListPOI = szListPOI + tContentlocal[0] +",";
				}
			}
			
			szListPOI = szListPOI.substring(0,szListPOI.length-1);
			scriptToEval.unshift("RequestCoordPOI(\"POI\",\""+szListPOI+"\");");
			
	
		}
		scriptToEval.push("ZoomAllPOI(\"Halte\",\""+szListHALTE+"\");");
		scriptToEval.push("ZoomAllPOI(\"POI\",\""+szListPOI+"\");");
	
		evalNextScript();
	}
		
function evalNextScript()
{
	if(scriptToEval.length>0)
	{
	
		thescript = scriptToEval[0];
		scriptToEval.shift();
		evalCurrentSrcipt(thescript);
		
		
	}
}

function evalCurrentSrcipt(thescript)
{
	eval(thescript);
}

		
var curIDPrefixe = "";
function ZoomAllPOI(szNomRecherche,szListPOI)
{
//divhalte.style.display = "block";

	
	var loc = location.href;
	
	
	reg = new RegExp(",","ig");
	var thePOIo = szListPOI;
	thePOI = thePOIo.replace(reg,"@");
	
				 // recentrage sur l'objet d'origine
	var w = 10;
	var h = 10;
	if(scriptToEval.length==0)
	{
		 w = mapClientwidth;
		 h = mapClientheight;
	}
	
	w = mapClientwidth;
	h = mapClientheight;
	
	var chaine = szHttpServeur +
                "&ACTION=BuildMap!EMPRISE=" + mapleft + "@" + mapbottom + "@" + (mapright-mapleft) + "@" +  (maptop - mapbottom) + "!OUTPUTSIZE=" + w + "@" + h +
								"!PRESERVESEL=1!SELECT="+szNomRecherche+"@0" +
								"!ALPHAJ=" + thePOI + 
								"!LOCATION=" + loc   ;

	isloading = false;
	
	if(scriptToEval.length==0)
	{
		updateBufferMap(chaine);
	}
	else
	{
		var param = new HttpRequestParam( "GET", chaine+"&PORT="+szPort, function(xmlhttp) {evalNextScript();});
		xmlHttpRequest(param);
	}
	
	//setTimeout("RequestCoordPOI('"+szNomRecherche+"','"+thePOIo+"');",20);
	
}

function getCurrentInfoInBulle()
{
getInfoInBulle(0,0,lastszAlphaJ,lastszNomRecherche,-1)

}

function getInfoInBulleMap(szRecherche,szAJ)
{

getInfoInBulle(0,0,szAJ,szRecherche,-1)

}

function getInfoInBulle(x,y,szAlphaJ,szNomRecherche,order)
{

	curXBulle = x;
	curYBulle = y;
	var loc = location.href;
	curorder = order;
	curorder = order;
	chaine = szHttpServeur + "&ACTION=GetInfo!EMPRISE=ALL!" +
									"SHOWLEGENDE=0!SHOWECHELLE=0!PRESERVESEL=1!SELECT=" + escape(szNomRecherche) + "@1" +
									"!ALPHAJ=" + szAlphaJ + "!OUTPUTSIZE=300@150"+
									"!LOCATION=" + loc + "&bummy="+ new Date().getTime() +"&PORT=" + szPort;
	
	szCurRechCulture = szNomRecherche;

	//sendData("GET",chaine,"", function(xmlhttp) {displayBulle(xmlhttp.responseText);},"");
	var param = new HttpRequestParam( "GET", chaine, function(xmlhttp) {displayBulle(xmlhttp.responseText);});
	xmlHttpRequest(param);
}



function getMapInBulle(x,y)
{
curXBulle = x;
curYBulle = y;
var loc = location.href;
curorder = -1;
var w = 200;
var i = 0;
var loc = location.href;
var newmapleft = x - w/2;
var newmapright = x + w/2;
var newmaptop = y + w/2;
var newmapbottom = y - w/2;

var chaine = szHttpServeur +
                "&XSL=mapBulle.xsl&ACTION=BuildMap!EMPRISE=" + newmapleft + "@" + newmapbottom + "@" + w + "@" +  w + "!OUTPUTSIZE=300@200!LOCATION=" + loc + "!SHOWECHELLE=0&FORMAT=0&PORT=" + szPort; 
			
	
	var param = new HttpRequestParam( "GET", chaine, function(xmlhttp) {displayBulle(xmlhttp.responseText);});
	xmlHttpRequest(param);
}

function displayBulle(content)
{
if((curorder != -1)&&(szCurRechCulture=='Halte'))
content = content + GetPrevNext(tHALTEG,curorder);

infoBulle.setContent(content);


if((document.getElementById("curMapLeftInfo")!=null)&&(curXBulle==0))
{


	curXBulle = (parseFloat(document.getElementById("curMapLeftInfo").value) + parseFloat(document.getElementById("curMapRightInfo").value))/2.0;
	curYBulle = (parseFloat(document.getElementById("curMapTopInfo").value) + parseFloat(document.getElementById("curMapBottomInfo").value))/2.0;
	
}

moveBulle(true);


}


function moveBulle(force)
{
	MouseOnItemRechercheMap(curXBulle,curYBulle)
	ConvertSysToView(curXBulle,curYBulle);
	infoBulle.moveTo(viewCurrentX,viewCurrentY);
	var fTop = parseFloat(infoBulle.owner.style.top)+100;
	var mt = document.getElementById("divMap").offsetTop + mapClientheight;
	var ml = document.getElementById("divMap").offsetLeft + mapClientwidth;
	if(force)
	infoBulle.mustMove = true;
	if((fTop<0)&&(force))
	{
		infoBulle.owner.style.top = 0;
		
		infoBulle.setVisible(false);
		ApplyPanMap(0,0,0,-fTop);
		
	}
	else if((viewCurrentY>mt)&&(force))
	{
		infoBulle.owner.style.top = 0;
		
		infoBulle.setVisible(false);
		ApplyPanMap(0,0,0,mt-viewCurrentY);
		
	}
	else if((viewCurrentX>ml)&&(force))
	{
		infoBulle.owner.style.top = 0;
		
		infoBulle.setVisible(false);
		ApplyPanMap(0,0,0,ml-viewCurrentX);
		
	}
	

}

var divhalte = null;
function displayPOI(content)
{

var tContent = content.split("@");

var i;

for(i=0;i<tContent.length;i++)
{
			tP = tContent[i].split("|");
			if(tP.length>3)
			{
			var tRet = getPOIByAJ(tHALTE,tP[0].trim());
			var j;
			for(j=0;j<tRet.length;j++)
			{
				tRet[j].x = parseFloat( tP[3].trim());
				tRet[j].y = parseFloat( tP[4].trim());
				
				if(document.getElementById(curIDPrefixe+(tRet[j].order+1))!=null)
				{
				
				var szInner = "<table><tr><td><img alt=\"Zoomer sur le point\" src=\"minizoomplus.gif\" onclick=\""+tRet[j].getClickCode()+" \" onmouseover=\"MouseOnItemRechercheMap("+tP[3].trim()+","+tP[4].trim()+")\"/> </td><td>";
				if((tP[1].trim().length>0)&&(curIDPrefixe!="Halte"))
					szInner = szInner +"<img alt=\"Obtenir des informations\" src=\"miniInfo.gif\" onclick=\"OpenInfoEntite("+tP[1].trim()+ ")\"/>";
				else
					szInner = szInner + "&nbsp;";
				
				szInner = szInner +"</td><td>"+tP[2].trim()+"</td></tr></table>";
				
				document.getElementById(curIDPrefixe+(tRet[j].order+1)).innerHTML = szInner;
				}
			}
			}
	}


	
	evalNextScript();
}

function RequestCoordPOI(szNomRecherche,thePOI)
{

	curIDPrefixe = szNomRecherche;
	var loc = location.href;
	var POIFILTER = "";
	var tPOILocal = []
	tPOILocal = thePOI.split(",");
	tHALTE = [];
	
	if(szNomRecherche=='Halte')
	{
		tHALTEG = tHALTE;
	}
	for(k=0;k<tPOILocal.length;k++)
	{
		POIFILTER = POIFILTER + "&OID="+tPOILocal[k];
		curPOI = new POI(0,0,tPOILocal[k],szNomRecherche,k);
		tHALTE.push(curPOI);
		
	}
	
	
	var chaine = szHttpServeur + "&XSL=reqpoi.xsl&ACTION=Recherche!NAME="+szNomRecherche+"!LOCATION=" + loc + "!NO_SELECTION!INTERACTIVE=2"+POIFILTER+"&PORT=" + szPort;

	var param = new HttpRequestParam( "GET", chaine, function(xmlhttp) {displayPOI(xmlhttp.responseText);});
	xmlHttpRequest(param);
}