
    //<![CDATA[
	window.currAddress 	= "";
	window.geocoder 	= "";
	window.bounds 		= "";
	window.map 			= "";
	window.iMarkers		= 0;
	window.currMessage  = null;
	window.messages		= Array();
	window.gdir			= "";
	
	
	/* Bouw de map */
	function buildMap(){
		if (GBrowserIsCompatible()) {
			map = new GMap2(document.getElementById("mapMe"));
			map.setCenter(new GLatLng(0,0),0);
			map.addControl(new GSmallMapControl());
			geocoder = new GClientGeocoder();
			bounds = new GLatLngBounds();
		}
	}

	/* Lengte en breedte graad van een adres. */
    function getPointFromAddress(address){
    	geocoder.getLatLng(
	    address,placeMarker);
    }

	/* Dit is de callback functie van getPointFromAddress() Hier slaan we de graden op in een var. */
    function placeMarker(position){

			if(position != null){
				
				//alert("#"+iMarkers+" = "+messages[iMarkers]);
	    		var marker = new GMarker(position);		  				
			  	marker.value = iMarkers;
			  	
				GEvent.addListener(marker, "click", function() {
			    	var myHtml = messages[marker.value];
			    	map.openInfoWindowHtml(position, myHtml);
				});
				
				map.addOverlay(marker);		
			
					
				//alert(iMarkers);
				bounds.extend(position);
				
				zoomToFit();
			}else{
				//In het geval er geen juist adres is ingevoerd. Zet de map dan onzichtbaar
			/*	dit gaat fout
				document.getElementById("mapMe").parentNode.style.display = "none";
				document.getElementById("frm_directMe").parentNode.style.display = "none";
			*/	
				
			}
			++iMarkers;
    }		
	    
    function initMark(positionAsPoint, positionAsAddress, onclickMessage){
    	
    	//alert(messages.length);
    	messages[messages.length] = " "+onclickMessage+" ";
    	
    	if( (positionAsPoint == "") && (positionAsAddress == "")){
    		alert("error");
    	}else{    
    		
    		if(positionAsAddress != ""){
    			getPointFromAddress(positionAsAddress);    			
    		}else{
    			
    		}
			currMessage = onclickMessage;
		}									
    }
    
	/* Dit is nodig zodat de map zodanig wordt uitgezoemt dat alle markers te zien zijn.*/
	function zoomToFit(){

		map.setZoom(map.getBoundsZoomLevel(bounds) -1 );
		map.setCenter(bounds.getCenter());	
	}
	
	/* Indien een traject wordt opgevraagt.*/
	function directMe(fromAddress, toAddress, locale){					 	
		
		gdir = new GDirections(map, document.getElementById("route"));
		GEvent.addListener(gdir, "load", onGDirectionsLoad);
        GEvent.addListener(gdir, "error", handleDirectionsErrors);
							
		gdir.load("from: " + fromAddress + " to: " + toAddress,
                { "locale": locale });
		
	}
	
	function onGDirectionsLoad(){ 
      // Use this function to access information about the latest load()
      // results.

      // e.g.
      // document.getElementById("getStatus").innerHTML = gdir.getStatus().code;
	  // and yada yada yada...
	  
	  document.getElementById("route").style.display = "";
		
	}

    function handleDirectionsErrors(){
	   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	     alert("Dit adres is niet gevonden. Dit kan komen doordat het adres te nieuw is of het adres niet goed gespeld is. \nError code: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	     alert("Het adres kon niet worden gevonden. Het is niet duidelijk waarom. Onze excuses voor het ongemak. \n Error code: " + gdir.getStatus().code);
	   
	   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	     alert("Dit adres is niet gevonden. Dit kan komen doordat het adres te nieuw is of het adres niet goed gespeld is. \nError code: " + gdir.getStatus().code);

	//   else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
	//     alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);
	     
	   else if (gdir.getStatus().code == G_GEO_BAD_KEY)
	     alert("De opgegeven sleutel is niet correct. \n Error code: " + gdir.getStatus().code);

	   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	     alert("Het opvragen van het adres is niet goed afgerond. Onze excuses voor het ongemak. \n Error code: " + gdir.getStatus().code);
	    
	   else alert("Er is een onbekende fout voorgekomen. Onze excuses voor het ongemak.");
	   
	}


    
    
    
    //]]>
