	function clearMap() {
		if(first == false) {
			map.clearOverlays();	
		}
	}
	
	function loadEstimatedTrip() {
		clearMap();
		first = false;
		addMarkersFromXML('http://www.bertjuh.nl/route.xml', true);
	}
	
	function loadTrip() {
		clearMap();
		first = false;
		addMarkersFromXML('http://www.bertjuh.nl/route.php', true);
	}
	
	function addMarkersFromXML(XMLFile, centreer)
	{
	    var randomnumber = Math.floor(Math.random()*111111);    
		var request = GXmlHttp.create();
		request.open("GET", XMLFile+'?temp='+randomnumber, true);
		request.onreadystatechange = function() 
		{
			if (request.readyState == 4) 
			{
				addXMLData(request.responseText, centreer, mgr, map)
			}
		}
		request.send(null);
	}
	
	/**
	 * Voeg de data uit het XML bestand toe aan de markermanager.
	 * 
	 * @param {GXml} data De opgehaalde XML data.
	 * @param {Boolean} centreer Indien true zal de map na het toevoegen van alle markers een 
	 * pan/zoom positie kiezen waarop alle ingeladen markers te zien zijn.
	 */
	function addXMLData(data, centreer, mgr, map)
	{
		mgr = null;
		mgr = new GMarkerManager(map, {borderPadding: 1});
			var bounds = new GLatLngBounds();
			
	        var xml = GXml.parse(data);  //parse xml file
	        // sla de markers op in de markers array
	        var markers = xml.documentElement.getElementsByTagName("marker");
			//alert(markers.length);
			// maak een batch
			var batch = [];
			var latlngs = [];
			
            for(var i = 0; i < markers.length; i++)
            {
            	var lat 		= markers[i].getAttribute("lat");
                var lng 		= markers[i].getAttribute("lng");
                var desc		= markers[i].getAttribute("desc");
				var html		= markers[i].getAttribute("html");
				var type		= parseInt(markers[i].getAttribute("type"));
				var point 		= null; //wordt hierna gedefinieerd
								
				if(lat!="" || lng!="")
				{
					point = new GLatLng(parseFloat(lat),parseFloat(lng));
					latlngs.push(point);
					bounds.extend(point); //zorg voor een nieuw zoompunt waarbinnen alle punten vallen		
					var marker = null;
					if(type>0) {
						marker = createMarker(point, desc, type, html);
					}
					// maak een lijntje tussen alle markers!!!!!!!!!				
					if(marker !== null) {
						batch.push(marker);				
					}	
				}
            } // end for
            											
			if(batch.length > 0) {
				mgr.addMarkers(batch, 1, 17); // Iedere zoomlevel
			}
			map.addOverlay(new GPolyline(latlngs,"#ff0000",2));
			
			mgr.refresh(); // call de refresh functie om alle markers uit de MarkerManager te tonen.
			
			if(centreer) {
				map.setZoom(map.getBoundsZoomLevel(bounds));
				map.setCenter(bounds.getCenter());
			}
	}
		
	function createMarker(gPoint, desc, type, html)
	{
		// Create a base icon for all of our markers that specifies the
		// shadow, icon dimensions, etc.
		var baseIcon = new GIcon();
			baseIcon.shadow = "http://maps.google.com/mapfiles/ms/micons/pushpin_shadow.png";
			baseIcon.iconSize = new GSize(32, 32);
			baseIcon.shadowSize = new GSize(59, 32);
			baseIcon.iconAnchor = new GPoint(9, 32);
			baseIcon.infoWindowAnchor = new GPoint(9, 2);
			baseIcon.infoShadowAnchor = new GPoint(9, 32);		
		var icon = new GIcon(baseIcon);
			icon.image="http://maps.google.com/mapfiles/ms/micons/red-pushpin.png";
		
		var marker = new GMarker(gPoint, icon);  // type  wordt nog een plaaaatje!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
		if(desc!='') 
		{
			GEvent.addListener(marker, "click", function() {
				marker.openInfoWindowHtml('<h1>' + desc + '</h1>' + html);
	        });
		}
		return marker;
	}
	
	function createIcon(cKeyname, cImage, cIconSize, cShadow, cShadowSize, cIconAnchor, cInfoWindowAnchor)
	{
		var icon = new GIcon();
			icon.image = cImage;
			icon.iconSize = cIconSize;
			icon.shadow = cShadow;
			icon.shadowSize = cShadowSize;
			icon.iconAnchor = cIconAnchor;
			icon.infoWindowAnchor = cInfoWindowAnchor;	
		
		return icon;
	}
	
	/**
	 * Omdat document.getElementById() iets typisch IE is en document.all[x] iets van FF is,
	 * en er zo meer zijn wordt deze functie gebruikt. 
	 * @param {String} name De id van het DOM object.
	 */
	function getObj(name)
	{
		if (document.getElementById)
		{
			return document.getElementById(name);
		}
		else if (document.all)
		{
			return document.all[name];
		}
		else if (document.layers)
		{
			return document.layers[name];
		}
	}