      	var i=0;
	var id = 0;
	var geocoder = null;
	var map = null;
	var path_to_XML = "/documents/XMLs/"
	// var path_to_XML = "./"


	function load() {	
		if (GBrowserIsCompatible()) {

			initAutoComplete(document.getElementById('formAction'), 
				document.getElementById('adresse'),
				document.getElementById('submitGo')
			);

			map = new GMap2(document.getElementById("map"));
			geocoder = new GClientGeocoder();
			
               			map.addControl(new GLargeMapControl());
               			map.addControl(new GOverviewMapControl(new GSize(150,150)));
				map.addControl(new GScaleControl()) ;
				map.addControl(new GMapTypeControl());
				map.addControl(new GZoomControl({sColor:'#000',nOpacity:.3,sBorder:'1px solid blue'}), new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(10,300)));
               			map.setCenter(new GLatLng(46.5, 2.4479), 6);
               		
			

			function createTPhoto(pseudo, filename, point) 
			{
				var L = 0.28;
				var H = 0.28;
				// la variable 'map' est globale.
				photo = new TPhoto();
				photo.id = pseudo;
				photo.src = filename;
				photo.percentOpacity = 25;
				
				photo.anchorTopLeft = new GLatLng(point.y + L/3, point.x - H/2);
				photo.anchorBottomRight = new GLatLng(point.y - L/3, point.x + H/2);
				//map.addTPhoto(photo);
				return photo;
			}

			function createicon(couleur) {
				var icon = new GIcon();
				icon.image = "http://labs.google.com/ridefinder/images/mm_20_"+couleur+".png";
				icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
				icon.iconSize = new GSize(14, 24);
				icon.shadowSize = new GSize(18, 20);
				icon.iconAnchor = new GPoint(6, 20);
				icon.infoWindowAnchor = new GPoint(5, 1);
				return icon;    
			}        

			function createMarkerWithPhoto(point, pseudo, description, ssid, antenne, couleur, filename) {
				var marker = new GMarker(point, createicon(couleur));
				var photo = null;

				GEvent.addListener(marker, "click", function() {
					marker.openInfoWindowHtml("<b>" + pseudo + "</b>" + "<BR>" + description + "<BR>"+ "<BR>" + "<b>" + "SSID : " + "</b>" + ssid + "<BR>" + "<b>" + "type d'antenne : " + "</b>" + antenne );
				});

				i++;

				
				GEvent.addListener(marker, "infowindowopen", function() {
					if(filename != null) {					
						photo = createTPhoto(pseudo, filename, point);
						map.addTPhoto(photo);
					}	
				});		
					
				
				GEvent.addListener(marker, "infowindowclose", function() {
					map.removeTPhoto(photo);
				});
        			
				return marker;
			}
           
			GDownloadUrl(path_to_XML + "data.xml", function(data) {
				var xml = GXml.parse(data);
				var markers = xml.documentElement.getElementsByTagName("marker");
				for (var i = 0; i < markers.length; i++) {
					var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
						parseFloat(markers[i].getAttribute("lng"))
					);
					var pseudo = markers[i].getAttribute("pseudo");
					var description = markers[i].getAttribute("description");
					var ssid = markers[i].getAttribute("ssid");
					var antenne = markers[i].getAttribute("antenne");
					var couleur = markers[i].getAttribute("couleur");
					var filename = "null";
											
					var filename = markers[i].getAttribute("filename");
					
					map.addOverlay(createMarkerWithPhoto(point, pseudo,description,ssid,antenne,couleur,path_to_XML + filename));
				}
				// alert(opttext.length);
			});

		//  ======== A function to adjust the positioning of the overview ========
		function positionOverview(x,y) {
			var omap=document.getElementById("map_overview");
			omap.style.left = x+"px";
			omap.style.top = y+"px";
			omap.setCenter(new GLatLng(46.5, 2.4479), 6);
			// == restyling ==
			omap.firstChild.style.border = "1px solid gray";
	
			omap.firstChild.firstChild.style.left="4px";
			omap.firstChild.firstChild.style.top="4px";
			omap.firstChild.firstChild.style.width="190px";
			omap.firstChild.firstChild.style.height="190px";
	      }
	}
	}
	
	function showAddress(address) {
  		geocoder.getLatLng(
    		address,
		function(point) {
      			if (!point) {
        			alert(address + " not found");
      			} else {
        			map.setCenter(point, 13);
      			}
    		}
  		);
	}

