
	//<![CDATA[ 
	var map = null;
	var polylineCur = null;
	var GmarkersAdd = [];
	var GmarkersRmv = [];
	var GpolylineDir = [];

	function showMapHeb (mapContainer, hebId) {
		if (document.getElementById(mapContainer).style.visibility == "hidden")
			document.getElementById(mapContainer).style.visibility = "visible";

		if (polylineCur != null) {
			map.removeOverlay(polylineCur);
			
		}

		GDownloadUrl("http://www.symposium-thermal.org/include/symposium.xml", function(data, responseCode) {
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");

			var last = document.getElementById("markerLast").value;
//			map.removeOverlay(GmarkersAdd[((last != undefined && last != "")?last:hebId)].marker);

			for (var i = 0; i < markers.length; i++) {
				var addPoint = 0;

				var idMarker = markers[i].getAttribute("id");
				var hebMarker = markers[i].getElementsByTagName("hebergement");

//				if (hebMarker.length > 0)
					addPoint = 1;

				if (addPoint == 1) {
					if (idMarker == hebId) {
						map.addOverlay(GmarkersAdd[idMarker].marker);
						GEvent.trigger(GmarkersAdd[idMarker].marker,"click");
						document.getElementById("markerLast").value = idMarker;
					}
					//else map.removeOverlay(GmarkersAdd[idMarker].marker);
				}
			}
		});			
	}

	function pointCheckList () {
		var lstPoint = new Array();
		var tmp = document.getElementById("mapLegende");
		var cat = tmp.getElementsByTagName("input");

		for (var i =0; i < cat.length; i++) {
			if (cat[i].checked == true) {
				lstPoint[cat[i].name] = 1;
			}
		}

		return lstPoint;
	}

	function load () {
	      if (GBrowserIsCompatible()) {
    	    map = new GMap2(document.getElementById("affichageMapContenu"));
			map.addControl(new GMapTypeControl());
			map.addControl(new GLargeMapControl(), 
						   new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10, 10)));
			map.addControl(new GScaleControl());
			map.setCenter(new GLatLng(45.6860586925614740039236494, 5.9162449836730957031250000), 13);

/*			GEvent.addListener(map, "drag", function()	{	
				var mapCenter = map.getCenter();
				document.getElementById("mapCenter").innerHTML = mapCenter.lat().toFixed(25) + ", " + mapCenter.lng().toFixed(25) + "<br/>" + map.getZoom();
			});*/

			var container = document.createElement("div");
			document.getElementById("affichageMapContenu").appendChild(container);
			container.setAttribute("id","dialogueBox");
			execUrl(new paramEU("GET","dialogueBox",null,"http://www.symposium-thermal.org/include/gmap_exec.php?action=guide",null));
			
			reloadMarkers();

			GEvent.addListener(map, "mouseout", function() 	{	map.hideControls();});
			GEvent.addListener(map, "mouseover", function()	{	map.showControls();});
	      }
    };


	function parseCheckboxStyle(a, idCB, style) {
		switch (idCB) {
			case "HOT2" : 	a.style.color = (style==1)?"#00A6EB":"#FFFFFF";
							a.style.backgroundColor = "#A62317";
							break;

			case "HOT3"	:	a.style.color = (style==1)?"#0068B4":"#FFFFFF";
							a.style.backgroundColor = "#A62317";
							break;

			case "HOT4"	:	a.style.color = (style==1)?"#005A86":"#FFFFFF";
							a.style.backgroundColor = "#A62317";
							break;

			case "A1"	:	a.style.color = (style==1)?"#B1CA00":"#FFFFFF";
							a.style.backgroundColor = "#A62317";
							break;

			case "L1"	:	a.style.color = (style==1)?"#A71717":"#FFFFFF";
							a.style.backgroundColor = "#A62317";
							break;

			case "L2"	:	a.style.color = (style==1)?"#EC7F89":"#FFFFFF";
							a.style.backgroundColor = "#A62317";
							break;
		}
	}


	function parseCheckbox(idCB) {
		document.getElementById(idCB).checked = (document.getElementById(idCB).checked == true)?false:true;
	}
	
	function reloadMarkers () {
		var pointCheck = pointCheckList();

		GDownloadUrl("http://www.symposium-thermal.org/include/symposium.xml", function(data, responseCode) {
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");

			for (var i = 0; i < markers.length; i++) {
				var addPoint = 0;

				var idMarker = markers[i].getAttribute("id");
				var hebMarker = markers[i].getElementsByTagName("hebergement");
				var lieuMarker = markers[i].getElementsByTagName("lieu");
				var accesMarker = markers[i].getElementsByTagName("acces");

				if (hebMarker.length > 0 && pointCheck[hebMarker[0].getAttribute("categorie")] != undefined)
					addPoint = 1;
				else if (lieuMarker.length > 0 && pointCheck[lieuMarker[0].getAttribute("categorie")] != undefined)
					addPoint = 1;
				else if (accesMarker.length > 0 && pointCheck[accesMarker[0].getAttribute("categorie")] != undefined)
					addPoint = 1;

				if (addPoint == 1) {
					if (GmarkersAdd[idMarker] == undefined) {
						map.addOverlay(createMarker(map, markers, i));
					}
					else {
						if (GmarkersAdd[idMarker].sFlag == true) {
							map.addOverlay(GmarkersAdd[idMarker].marker);
							GmarkersAdd[idMarker].sFlag = false;
						}
					}
				}
				else {
					if (GmarkersAdd[idMarker].sFlag == false) {
						map.removeOverlay(GmarkersAdd[idMarker].marker);
						GmarkersAdd[idMarker].sFlag = true;
					}
				}
			}
		});	
	}
	
	function createMarker (map, markers, i) {

		var icon = new GIcon();
		icon.image = "http://www.symposium-thermal.org/templates/01/images/red_star.png";

		var idMarker = markers[i].getAttribute("id");
		var hebMarker = markers[i].getElementsByTagName("hebergement");
		var lieuMarker = markers[i].getElementsByTagName("lieu");
		var accesMarker = markers[i].getElementsByTagName("acces");

		if (hebMarker.length > 0) {
			switch (hebMarker[0].getAttribute("categorie")) {
				case "HOT2" : 	icon.image = "http://www.symposium-thermal.org/templates/01/images/blue_star1.png";
								break;

				case "HOT3" : 	icon.image = "http://www.symposium-thermal.org/templates/01/images/blue_star2.png";
								break;

				case "HOT4" : 	icon.image = "http://www.symposium-thermal.org/templates/01/images/blue_star3.png";
								break;
			}

			var libMarker = hebMarker[0].getElementsByTagName("libelle");

			var descMarker = Array(3);
			var temp = hebMarker[0].getElementsByTagName("descTab1");
			descMarker[0] = temp[0].firstChild.nodeValue;
			var temp = hebMarker[0].getElementsByTagName("descTab2");
			descMarker[1] = temp[0].firstChild.nodeValue;
			
			var infoTabs = new Array(3);
			infoTabs[0] = new GInfoWindowTab("Description", descMarker[0]);
			infoTabs[1] = new GInfoWindowTab("Tarifs", descMarker[1]);
			infoTabs[2] = new GInfoWindowTab("Accès", getDirections(hebMarker[0].getElementsByTagName("direction")));
		}
		else if (lieuMarker.length > 0) {
			switch (lieuMarker[0].getAttribute("categorie")) {
				case "L1" : 	icon.image = "http://www.symposium-thermal.org/templates/01/images/red_star.png";
								break;

				case "L2" : 	icon.image = "http://www.symposium-thermal.org/templates/01/images/pink_star.png";
								break;
			 }

			var descMarker = Array(2);
			var temp = lieuMarker[0].getElementsByTagName("descTab1");
			descMarker[0] = temp[0].firstChild.nodeValue;
			var temp = lieuMarker[0].getElementsByTagName("descTab2");
			descMarker[1] = temp[0].firstChild.nodeValue;

			var infoTabs = new Array(2);
			infoTabs[0] = new GInfoWindowTab("Description", descMarker[0]);
			var ta = lieuMarker[0].getElementsByTagName("direction");
			if(ta.length == 0)
				infoTabs[1] = new GInfoWindowTab("Accès", "");
			else infoTabs[1] = new GInfoWindowTab("Accès", getDirections(lieuMarker[0].getElementsByTagName("direction")));
		}
		else if (accesMarker.length > 0) {
			icon.image = "http://www.symposium-thermal.org/templates/01/images/green_star.png";

			var descMarker = Array(2);
			var temp = accesMarker[0].getElementsByTagName("descTab1");
			descMarker[0] = temp[0].firstChild.nodeValue;

			var infoTabs = new Array(2);
			infoTabs[0] = new GInfoWindowTab("Description", descMarker[0]);
			infoTabs[1] = new GInfoWindowTab("Accès", "");
			var ta = accesMarker[0].getElementsByTagName("direction");
			if(ta.length == 0)
				infoTabs[1] = new GInfoWindowTab("Accès", "");
			else infoTabs[1] = new GInfoWindowTab("Accès", getDirections(accesMarker[0].getElementsByTagName("direction")));
		}

		icon.iconSize = new GSize(19, 21);
		icon.iconAnchor = new GPoint(6, 20);
		icon.infoWindowAnchor = new GPoint(5, 1);

		var gpsMarker = new GMarker(new GLatLng(parseFloat(markers[i].getAttribute("latitude")),
												parseFloat(markers[i].getAttribute("longitude"))),icon);
		if (GmarkersAdd[idMarker] == undefined) {
			GmarkersAdd[idMarker] = new Object();
			GmarkersAdd[idMarker].marker = gpsMarker;
		}
		else {
			if (GmarkersAdd[idMarker].sFlag == true)
				GmarkersAdd[idMarker].marker = gpsMarker;
		}
		GmarkersAdd[idMarker].sFlag = false;

		GEvent.addListener(gpsMarker, "click", function() { gpsMarker.openInfoWindowTabsHtml(infoTabs); });

		return gpsMarker;
	};


	function getDirections (acces) {
		var output = "";

		var directions = acces[0].getElementsByTagName("line");
		for (var i = 0; i < directions.length; i++) {
			var id = directions[i].getAttribute("id");

			var lib = directions[i].getElementsByTagName("libelle");
			var libelle = lib[0].firstChild.nodeValue;

			var temp = directions[i].getElementsByTagName("points");
			for (var j = 0; j < temp.length; j++) {
				var lstPoints = temp[j].firstChild.nodeValue.split(" ");

				var tempTab = [];
				for (z in lstPoints) {
					var latlng = lstPoints[z].split(",");
					tempTab.push(new GLatLng(parseFloat(latlng[0]),parseFloat(latlng[1])));
				}

				var subOutput = ((j == 0)?(libelle + " : "):"");

				if (temp[j].getAttribute("from") != "") {
					var idFrom = parseInt(temp[j].getAttribute("from"));
					var idTo = parseInt(temp[j].getAttribute("to"));

					if (GpolylineDir[idFrom] == undefined) 
						GpolylineDir[idFrom] = [];

					var colorLine = (temp.length > 1)?((j == 0)?"#00A6EB":"#EC7F89"):"#C531EA";

					GpolylineDir[idFrom][idTo] = [new GPolyline(tempTab,colorLine,4,0.7), parseInt(directions[i].getAttribute("zoom")), ((directions[i].getAttribute("clat") != "")?new GLatLng(parseFloat(directions[i].getAttribute("clat")),parseFloat(directions[i].getAttribute("clng"))):null)];
					if (temp.length > 1) {
						subOutput += ((j == 0)?"":" / ") + "<a class='mapLink' style='color:"+((j == 0)?"#00A6EB":"#EC7F89")+"' onClick='drawDirection(map,"+idFrom+","+idTo+");'>"+ ((j == 0)?"Aller":"Retour") +"</a>";
					}
					else subOutput = " <a class='mapLink' onClick='drawDirection(map,"+idFrom+","+idTo+");'>"+ libelle +"</a>";
				}

				output += subOutput;
			}

			output += "<br/>";
		}

		return output;
	}
	
	function drawDirection (map, from, to) {
		if (polylineCur != null) {
			map.removeOverlay(polylineCur);
			map.addOverlay(GpolylineDir[from][to][0]);
			map.setZoom(GpolylineDir[from][to][1]);
			if (GpolylineDir[from][to][2] != null) 
				map.panTo(GpolylineDir[from][to][2]);
			polylineCur = GpolylineDir[from][to][0];
		} else {
			map.addOverlay(GpolylineDir[from][to][0]);
			map.setZoom(GpolylineDir[from][to][1]);
			if (GpolylineDir[from][to][2] != null) 
				map.panTo(GpolylineDir[from][to][2]);
			polylineCur = GpolylineDir[from][to][0];
		}

		showHideInfoWindow();
		setTimeout("showHideInfoWindow()","1000");
	}

	function showHideInfoWindow () {
		if (map.getInfoWindow().isHidden() == true)
			map.getInfoWindow().show();
		else map.getInfoWindow().hide();
	}
	
	function registerMouseCoord (map,point) {
			document.onmousemove = function (evt) {
			if(!evt) evt = window.event;    
			var mX = evt.clientX - parseInt(document.getElementById("map").offsetLeft);
			var mY = evt.clientY - parseInt(document.getElementById("map").offsetTop);

			document.getElementById("latitude").value = point.lat().toFixed(25);
			document.getElementById("longitude").value = point.lng().toFixed(25);
			
		};
	}
	
	function eventGen (evt) {
		if(!evt) evt = window.event;    

		if (evt.shiftKey == true) {
			__ctrlFlag = 1;
			document.getElementById("eventTrace").innerHTML = "Record Position = " + document.getElementById("latitude").value + ", "+ document.getElementById("longitude").value;
			__ctrlFlag = 0;
		}
	}


	function paramEU (a, b, c, d, e) {
		this.method = a;
		this.idDst = b;
		this.idSrc = c;
		this.url = d;
		this.fct = e;
		this.arg = "";
	}


	function execUrl (param) {
		param.arg = (param.method == "POST")?execUrlPostArg(param.idSrc):"";

		var http = createRequestObject(); 
		http.open(param.method, param.url);

		http.onreadystatechange = function(){
			if(http.readyState == 4){
				var response = http.responseText;
				document.getElementById(param.idDst).innerHTML = response;

				if (param.fct != undefined)
					eval(param.fct);
			}
		};

		if (param.method == "POST")
			http.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
		http.send((param.method == "GET")?null:param.arg);
	}


	function execUrlPostArg (id) {
		var postArg = "";
		var mp = document.getElementById(id);
		var mi = mp.getElementsByTagName("input");
		for (var i=0; i<mi.length; i++) {	
			if (mi[i].type == "checkbox" && mi[i].checked == true)
				postArg += "&" + mi[i].name + "=" + mi[i].value;

			if (mi[i].type == "radio" && mi[i].checked == true)
				postArg += "&" + mi[i].name + "=" + mi[i].value;

			if (mi[i].type == "text")
				postArg += "&" + mi[i].name + "=" + mi[i].value;

			if (mi[i].type == "hidden")
				postArg += "&" + mi[i].name + "=" + mi[i].value;
		}

		var mi = mp.getElementsByTagName("select");
		for (var i=0; i<mi.length; i++)
			postArg += "&" + mi[i].name + "=" + mi[i].value;

		var mi = mp.getElementsByTagName("textarea");
		for (var i=0; i<mi.length; i++)
			postArg += "&" + mi[i].name + "=" + mi[i].value;

		return postArg.substr(0,postArg.length);
	}


	function createRequestObject () {
		var request_o;
		var browser = navigator.appName;

		if(browser == "Microsoft Internet Explorer"){
			request_o = new ActiveXObject("Microsoft.XMLHTTP");
		}else{
			request_o = new XMLHttpRequest();
		}

		return request_o;
	}
//]]>		
