// --
var map;
var dept;
var side_bar_html = "";
var side_bar_map = document.getElementById("side_bar");
var gmarkers = [];
var i = 0;

var keolisIcon = new GIcon();
keolisIcon.image = "grp_keolis_ico.gif";
//keolisIcon.shadow = "shadow50.png";
keolisIcon.iconSize = new GSize(15, 22);
//keolisIcon.shadowSize = new GSize(37, 34);
keolisIcon.iconAnchor = new GPoint(6, 20);
keolisIcon.infoWindowAnchor = new GPoint(9, 2);
keolisIcon.infoShadowAnchor = new GPoint(18, 25);
keolisIcon.transparent = "grp_keolis_ico.gif";
keolisIcon.printImage = "grp_keolis_ico.gif";
keolisIcon.mozPrintImage = "grp_keolis_ico.gif";

var veoliaIcon = new GIcon();
veoliaIcon.image = "grp_veolia_ico.png";
//veoliaIcon.shadow = "shadow50.png";
veoliaIcon.iconSize = new GSize(20, 20);
veoliaIcon.shadowSize = new GSize(37, 34);
veoliaIcon.iconAnchor = new GPoint(6, 20);
veoliaIcon.infoWindowAnchor = new GPoint(9, 2);
veoliaIcon.infoShadowAnchor = new GPoint(18, 25);
veoliaIcon.transparent = "grp_veolia_ico.png";
veoliaIcon.printImage = "grp_veolia_ico.png";
veoliaIcon.mozPrintImage = "grp_veolia_ico.png";

var transdevIcon = new GIcon();
transdevIcon.image = "grp_transdev_ico.png";
transdevIcon.iconSize = new GSize(20, 18);
transdevIcon.iconAnchor = new GPoint(6, 20);
transdevIcon.infoWindowAnchor = new GPoint(9, 2);
transdevIcon.infoShadowAnchor = new GPoint(18, 25);
transdevIcon.transparent = "grp_transdev_ico.png";
transdevIcon.printImage = "grp_transdev_ico.png";
transdevIcon.mozPrintImage = "grp_transdev_ico.png";

var carpostalIcon = new GIcon();
carpostalIcon.image = "grp_carpostal_ico.gif";
carpostalIcon.iconSize = new GSize(18, 18);
carpostalIcon.iconAnchor = new GPoint(6, 20);
carpostalIcon.infoWindowAnchor = new GPoint(9, 2);
carpostalIcon.infoShadowAnchor = new GPoint(18, 25);
carpostalIcon.transparent = "grp_carpostal_ico.gif";
carpostalIcon.printImage = "grp_carpostal_ico.gif";
carpostalIcon.mozPrintImage = "grp_carpostal_ico.gif";

var reunirIcon = new GIcon();
reunirIcon.image = "grp_reunir_ico.gif";
reunirIcon.iconSize = new GSize(18, 18);
reunirIcon.iconAnchor = new GPoint(6, 20);
reunirIcon.infoWindowAnchor = new GPoint(9, 2);
reunirIcon.infoShadowAnchor = new GPoint(18, 25);
reunirIcon.transparent = "grp_reunir_ico.gif";
reunirIcon.printImage = "grp_reunir_ico.gif";
reunirIcon.mozPrintImage = "grp_reunir_ico.gif";

var ratpIcon = new GIcon();
ratpIcon.image = "grp_ratp_ico.gif";
ratpIcon.iconSize = new GSize(18, 18);
ratpIcon.iconAnchor = new GPoint(6, 20);
ratpIcon.infoWindowAnchor = new GPoint(9, 2);
ratpIcon.infoShadowAnchor = new GPoint(18, 25);
ratpIcon.transparent = "grp_ratp_ico.gif";
ratpIcon.printImage = "grp_ratp_ico.gif";
ratpIcon.mozPrintImage = "grp_ratp_ico.gif";

var agirIcon = new GIcon();
agirIcon.image = "grp_agir_ico.gif";
agirIcon.iconSize = new GSize(17, 18);
agirIcon.iconAnchor = new GPoint(6, 20);
agirIcon.infoWindowAnchor = new GPoint(9, 2);
agirIcon.infoShadowAnchor = new GPoint(18, 25);
agirIcon.transparent = "grp_agir_ico.gif";
agirIcon.printImage = "grp_agir_ico.gif";
agirIcon.mozPrintImage = "grp_agir_ico.gif";

var autreIcon = new GIcon();
autreIcon.image = "grp_autre_ico.png";
//autreIcon.shadow = "shadow50.png";
autreIcon.iconSize = new GSize(12, 20);
//autreIcon.shadowSize = new GSize(37, 34);
autreIcon.iconAnchor = new GPoint(6, 20);
autreIcon.infoWindowAnchor = new GPoint(9, 2);
autreIcon.infoShadowAnchor = new GPoint(18, 25);
autreIcon.transparent = "grp_autre_ico.png";
autreIcon.printImage = "grp_autre_ico.png";
autreIcon.mozPrintImage = "grp_autre_ico.png";

var busIcon = new GIcon();
busIcon.image = "img_ico_bus.gif";
busIcon.iconSize = new GSize(23, 23);
busIcon.iconAnchor = new GPoint(6, 20);
busIcon.infoWindowAnchor = new GPoint(9, 2);
busIcon.infoShadowAnchor = new GPoint(18, 25);
busIcon.transparent = "img_ico_bus.gif";
busIcon.printImage = "img_ico_bus.gif";
busIcon.mozPrintImage = "img_ico_bus.gif";

var icons = [];
icons['Veolia Transport'] = veoliaIcon;
icons['Transdev'] = transdevIcon;
icons['Keolis'] = keolisIcon;
icons['Réunir'] = reunirIcon;
icons['CFT'] = autreIcon;
icons['CarPostal France'] = carpostalIcon;
icons['RATP Développement'] = ratpIcon;
icons['AGIR'] = agirIcon;
icons['bus'] = busIcon;
icons[''] = autreIcon;



		function createMarker(point,name,html,icontype) {
			var marker = new GMarker(point,icons[icontype]);
			GEvent.addListener(marker, "click", function() {
				marker.openInfoWindowHtml('<b>'+name+'</b><br/>'+html);
			});
			gmarkers[i] = marker;
			//var trktxt = ;
			side_bar_html += '<li><a href="javascript:myclick(' + i + ')">' + trkLbl(name) + '</a></li>';
			i++;
			return marker;
		}


		function clrMap()
		{
			side_bar_html = "";
			map.clearOverlays();
			var element = document.getElementById("side_bar");
			while(element.hasChildNodes())
				element.removeChild(element.firstChild);
			document.getElementById("side_bar").innerHTML = "Chargement...<br /><img src=\"../img_loader.gif\" alt=\"\" />";
		}

		function finMap()
		{
			var element = document.getElementById("side_bar");
			while(element.hasChildNodes())
				element.removeChild(element.firstChild);
		}


		function trkLbl(label)
		{
			label = label.replace(new RegExp("Saint-","gi"), "St-" );
			label = label.replace(new RegExp("Sainte-","gi"), "Ste-" );
			label = label.replace(new RegExp("-sur-","gi"), "/" );
			if(label.length > 16)
			{
				return(label.substring(0,15) + "&hellip;");
			}
			else
			{
				return label;
			}
		}


		function myclick(i) {
			GEvent.trigger(gmarkers[i], "click");
		}


		function load() {
			if (GBrowserIsCompatible())
			{
				map = new GMap2(document.getElementById("map"));
				map.addControl(new GLargeMapControl());
				map.addControl(new GMapTypeControl());
				var iptAffRsxPro000 = document.getElementById("iptAffRsxPro000");
				iptAffRsxPro000.checked = true;
				affRsxPro000();
			} else {
				alert("Cette fonctionnalit&eacute; est incompatible avec votre navigateur");
			}
		}


		function loadVille(coordLat,coordLng) {
			if (GBrowserIsCompatible())
			{
				var map = new GMap2(document.getElementById("divMapCity"));
				map.addControl(new GSmallMapControl());
				map.setCenter(new GLatLng(coordLat,coordLng), 7, G_NORMAL_MAP);
				var pointVille = new GPoint(coordLng,coordLat);
				var markerVille = new GMarker(pointVille);
				map.addOverlay(markerVille);
			}
		}


		function loadDept(coordLat,coordLng,dept) {
			if (GBrowserIsCompatible())
			{
				map = new GMap2(document.getElementById("divMapDept"));
				map.addControl(new GLargeMapControl());
				map.addControl(new GMapTypeControl());
				map.setCenter(new GLatLng(coordLat,coordLng), 8,G_NORMAL_MAP);
				var geoXml = new GGeoXml ("http://www.transbus.org/reseaux/" + dept + ".kml");
				var request = GXmlHttp.create();
				request.open("GET", "xml_rsx.xml", true);
				map.addOverlay(geoXml);
				request.onreadystatechange = function() {
					if (request.readyState == 4) {
						var xmlDoc = GXml.parse(request.responseText);
						var markers = xmlDoc.documentElement.getElementsByTagName("mk");

						for (var i = 0; i < markers.length; i++) {
							var lat = parseFloat(markers[i].getAttribute("lat"));
							var lng = parseFloat(markers[i].getAttribute("lng"));
							var point = new GLatLng(lat,lng);
							var label = markers[i].getAttribute("v");
							var cp	= markers[i].getAttribute("cp");
							var sec	= markers[i].getAttribute("sec");
							if (cp.substring(0,2)==dept)
							{
								var html = GXml.value(markers[i].getElementsByTagName("iw")[0]);
								var marker = createMarker(point,label,html,"bus");
								map.addOverlay(marker);
							}
						}
					}
				}
				request.send(null);
				map.addOverlay(geoXml);
			} else {
				alert("Cette fonctionnalit&eacute; est incompatible avec votre navigateur");
			}
		}



		function affRsxPro000()
		{
			clrMap();
			map.setCenter(new GLatLng(46.7,2.12), 6,G_NORMAL_MAP);
			var request = GXmlHttp.create();
			request.open("GET", "xml_rsx.xml", true);
			request.onreadystatechange = function() {
				if (request.readyState == 4) {
					var xmlDoc = GXml.parse(request.responseText);
					var markers = xmlDoc.documentElement.getElementsByTagName("mk");

					for (var i = 0; i < markers.length; i++) {
						var lat = parseFloat(markers[i].getAttribute("lat"));
						var lng = parseFloat(markers[i].getAttribute("lng"));
						var point = new GLatLng(lat,lng);
						var label = markers[i].getAttribute("v");
						var cp = markers[i].getAttribute("cp");
						var sec = markers[i].getAttribute("sec");
						if (cp.substring(2,5)=="000" && sec != "idf")
						{
							var html = GXml.value(markers[i].getElementsByTagName("iw")[0]);
							var marker = createMarker(point,label,html,"bus");
							map.addOverlay(marker);
						}
					}
					finMap();
					sidetxt = "<p>R&eacute;seaux des chefs-lieux de <a href=\"departements.html\">d&eacute;partement</a>&nbsp;:</p><ul class=\"ulSSTitre\">";
					document.getElementById("side_bar").innerHTML = sidetxt + side_bar_html + "</ul>";
				}
			}
			request.send(null);
		}

		function affRsxPro()
		{
			clrMap();
			map.setCenter(new GLatLng(46.7,2.12), 6,G_NORMAL_MAP);

			var request = GXmlHttp.create();
			request.open("GET", "xml_rsx.xml", true);
			request.onreadystatechange = function() {
				if (request.readyState == 4) {
					var xmlDoc = GXml.parse(request.responseText);
					var markers = xmlDoc.documentElement.getElementsByTagName("mk");
					for (var i = 0; i < markers.length; i++) {
						var lat = parseFloat(markers[i].getAttribute("lat"));
						var lng = parseFloat(markers[i].getAttribute("lng"));
						var point = new GLatLng(lat,lng);
						var label = markers[i].getAttribute("v");
						var html = GXml.value(markers[i].getElementsByTagName("iw")[0]);
						var icontype = '';
						var sec = markers[i].getAttribute("sec");
						if(sec != "idf")
						{
							var marker = createMarker(point,label,html,icontype);
							map.addOverlay(marker);
						}
					}
					finMap();
					sidetxt = "<p>R&eacute;seaux urbains de province&nbsp;:</p><ul class=\"ulSSTitre\">";
					document.getElementById("side_bar").innerHTML = sidetxt + side_bar_html + "</ul>";
				}	
			}
			request.send(null);
		}


		function affRsxIdf()
		{
			clrMap();
			map.setCenter(new GLatLng(48.8,2.45),9,G_NORMAL_MAP);

			var request = GXmlHttp.create();
			request.open("GET", "xml_rsx.xml", true);
			request.onreadystatechange = function() {
				if (request.readyState == 4) {
					var xmlDoc = GXml.parse(request.responseText);
					var markers = xmlDoc.documentElement.getElementsByTagName("mk");
					for (var i = 0; i < markers.length; i++) {
						var lat = parseFloat(markers[i].getAttribute("lat"));
						var lng = parseFloat(markers[i].getAttribute("lng"));
						var point = new GLatLng(lat,lng);
						var label = markers[i].getAttribute("v");
						var sec = markers[i].getAttribute("sec");
						if(sec=='idf')
						{
							var html = GXml.value(markers[i].getElementsByTagName("iw")[0]);
							var marker = createMarker(point,label,html,"bus");
							map.addOverlay(marker);
						}
					}
					finMap();
					sidetxt = "<p>R&eacute;seaux urbains d'<a href=\"r_idf.html\">&Igrave;le-de-France</a>&nbsp;:</p><ul class=\"ulSSTitre\">";
					document.getElementById("side_bar").innerHTML = sidetxt + side_bar_html + "</ul>";
				}	
			}
			request.send(null);
		}


		function affRsxGrp(grpAff)
		{
			clrMap();
			map.setCenter(new GLatLng(46.7,2.12), 6, G_SATELLITE_MAP);

			var request = GXmlHttp.create();
			request.open("GET", "xml_rsx.xml", true);
			request.onreadystatechange = function() {
				if (request.readyState == 4) {
					var xmlDoc = GXml.parse(request.responseText);
					var markers = xmlDoc.documentElement.getElementsByTagName("mk");

					for (var i = 0; i < markers.length; i++) {
						var lat = parseFloat(markers[i].getAttribute("lat"));
						var lng = parseFloat(markers[i].getAttribute("lng"));
						var point = new GLatLng(lat,lng);
						var label = markers[i].getAttribute("v");
						var icontype = markers[i].getAttribute("g");
						var html = GXml.value(markers[i].getElementsByTagName("iw")[0]);
						if(icontype==grpAff)
						{
							var marker = createMarker(point,label,html,icontype);
							map.addOverlay(marker);
							sidetxt = "<p>R&eacute;seaux urbains exploit&eacute;s par " + grpAff + " :</p><ul class=\"ulSSTitre\">";
						}
						else if(grpAff=='Autres' && (icontype=='AGIR' || icontype=='CFT' || icontype=='Réunir' || icontype=='RATP Développement' || icontype=='CarPostal France' || icontype==''))
						{
							/*icontype = autreIcon;*/
							var marker = createMarker(point,label,html,icontype);
							map.addOverlay(marker);
							sidetxt = "<p>R&eacute;seaux urbains non li&eacute;s &agrave; un des trois premiers groupes&nbsp;:</p><ul class=\"ulSSTitre\">";
						}
					}
					finMap();
					document.getElementById("side_bar").innerHTML = sidetxt + side_bar_html + "</ul>";
				}	
			}
			request.send(null);
		}
