 //<![CDATA[

    var map;
    var gdir;
    var geocoder = null;
    var addressMarker;
	var overlayControl = null;

    function load() {
	
	
      if (GBrowserIsCompatible()) {      
        map = new GMap2(document.getElementById("map"));
		//scroll zoom enabelen
		map.enableScrollWheelZoom();
		
		//saleliet & hybride disabelen
		map.removeMapType(G_HYBRID_MAP);
		map.removeMapType(G_SATELLITE_MAP); 

		
        gdir = new GDirections(map, document.getElementById("directions"));
		
		
		map.addControl(new GSmallMapControl());
		
        GEvent.addListener(gdir, "error", handleErrors);
        setDirections("E17 Steenweg Deinze","nl_BE");
		
		//OVERVIEW
		      overlayControl = new GOverviewMapControl();
		      map.addControl(overlayControl);

		      // wait for the aontrol_api mdocule to be loaded
		      setTimeout("checkOverview()",100);
		
		//geocoder, opzoeken 
		geocoder = new GClientGeocoder();
		
		 //XML
				 var randomnumber=Math.floor(Math.random()*11111)
				GDownloadUrl("data.xml?random="+randomnumber, function(data, responseCode) {
			        var xml = GXml.parse(data);

			        //store markers in markers array
			        var markers = xml.documentElement.getElementsByTagName("marker");
					
			        // create marker icon
			        var baseIcon = new GIcon(G_DEFAULT_ICON);
					baseIcon.iconSize = new GSize(20, 34);
			        baseIcon.shadowSize = new GSize(37, 34);
			        baseIcon.iconAnchor = new GPoint(9, 34);
			        baseIcon.infoWindowAnchor = new GPoint(9, 2);
					
			        //loop over the markers array
			        for (var i = 0; i < markers.length; i++) {
							var icon = new GIcon(baseIcon);
							if(markers[i].getAttribute("letter")){
								icon = new GIcon(baseIcon);
								var letter = markers[i].getAttribute("letter");
								icon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
							}else{
								icon = new GIcon(baseIcon);
							}

			                var address = markers[i].getAttribute("address");
			                var naam = markers[i].getAttribute("naam");
							var info = markers[i].getAttribute("info");
							if(info != null){
								naam = naam + "<br/>"+ info ;
							}
			                putAddressOnMap(map,geocoder,address,naam,icon);
							
							//in option toevoegen
							var aantalOpt = document.getElementById("naarAddress").options.length;
							document.getElementById("naarAddress").options[aantalOpt] = new Option(markers[i].getAttribute("naam"),markers[i].getAttribute("address"));

			        } //close for loop

			         }
		        ); //close GDownloadUrl
				
      }
    }
   
    function setDirections(fromAddress, locale) {
		var toAdress = document.getElementById("naarAddress").value;	
      	gdir.load("from: " + fromAddress + ",Belgium to:"+ toAdress,
                { "locale": locale });
		document.getElementById("error").innerHTML = "";
		
		document.getElementById("txtVertrek").innerHTML = fromAddress;
		var text = "";
		//XML
		var randomnumber=Math.floor(Math.random()*11111)
		GDownloadUrl("data.xml?random="+randomnumber, function(data, responseCode) {
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");
			//loop over the markers array
			   
			var combo1 = document.getElementById("naarAddress");
			var naam = combo1.options[combo1.selectedIndex].text
			for (var i = 0; i < markers.length; i++) {
				if(markers[i].getAttribute("naam") == naam){
					text += "<b>"+markers[i].getAttribute("naam") + " ("+markers[i].getAttribute("letter")+")"+"</b>";
					text += "<br/>";
					text += ""+markers[i].getAttribute("address")+"";
					text += "<br/>"+markers[i].getAttribute("info")+"";
					break;
				}
			 } //close for loop
		document.getElementById("txtAankomst").innerHTML = text;
		}
		); //close GDownloadUrl
    }

    function handleErrors(){
	   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS){
	     	document.getElementById("error").innerHTML = "Onbekend vertrekpunt. Is de schrijfwijze correct?";
	   }else if (gdir.getStatus().code == G_GEO_SERVER_ERROR){
	     	document.getElementById("error").innerHTML = "Server error. Probeer later opnieuw.";
	   }else if (gdir.getStatus().code == G_GEO_MISSING_QUERY){
	     	document.getElementById("error").innerHTML = "Voer een bestemming in";
	   }else if (gdir.getStatus().code == G_GEO_BAD_REQUEST){
	     	document.getElementById("error").innerHTML = "Voer een bestemming in";
	   }else{ 
	   		document.getElementById("error").innerHTML = "Onbekende fout. Probeer adres mee te specifiëren.";
		};
	}
	
	//OVERVIEW
    function checkOverview() {
      overmap = overlayControl.getOverviewMap();
      if (overmap) {      
        GEvent.addListener(overmap,'maptypechanged',function() {
	    overmap.setMapType(G_NORMAL_MAP);
        });
      } else {
        setTimeout("checkOverview()",100);
      }
    }
		
	 function showAddress(address) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " niet gevonden");
            } else {
              map.setCenter(point, 13);
              var marker = new GMarker(point);
              map.addOverlay(marker);
              marker.openInfoWindowHtml(address);
            }
          }
        );
      }
	 }
		 
	 //putAddressOnMap
	function putAddressOnMap(map,geocoder,address,html,icon) {
	  geocoder.getLatLng(
	    address,
	    function(point) {
	      if (!point) {
	        alert(address + " niet gevonden");
	      } else {
	        //map.setCenter(point, 14);
	        var marker = createMarker(point,html+'<br/><font size="0.9em">('+address+')</font>',icon);
	        map.addOverlay(marker);
	        map.addControl(new GMapTypeControl());
	      }
	    }
	  );
	}
	
	//Create marker and set up event window
	  function createMarker(point,html,icon){
	        var marker = new GMarker(point,icon);
	        GEvent.addListener(marker, "click", function() {
				marker.openInfoWindowHtml(html);
			});
	        return marker;
	  }
	
 //]]>
