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

function PlanRoute(){
	var Vanaf = document.getElementById('fromAddress').value + ', ' + document.getElementById('fromPlace').value + ', Nederland';
	if(document.getElementById('ToPlace').value == 'Maastricht'){
		setDirections(Vanaf, 'Stationsplein 8K, Maastricht, Nederland', 'nl')
	} else {
		setDirections(Vanaf, 'tussen twee havens 1, Enkhuizen, Nederland', 'nl')
	}
}

function initialize() {
  if (GBrowserIsCompatible()) {      
 	map = new GMap2(document.getElementById("map_canvas"));
	gdir = new GDirections(map, document.getElementById("directions"));
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	
	map.enableDragging();
	/*map.enableScrollWheelZoom();*/
	map.setCenter(new GLatLng(52.699366, 5.289655), 17, G_HYBRID_MAP);
	
	var point = new GLatLng(52.699566, 5.289655);
	var marker = new GMarker(point);
	map.addOverlay(marker); 
	
	var point = new GLatLng(50.847738, 5.705935);
	var marker = new GMarker(point);
	map.addOverlay(marker); 
	
	GEvent.addListener(gdir, "addoverlay", onGDirectionsLoad);
	GEvent.addListener(gdir, "error", handleErrors);
  }
}

function GaNaar(Kantoor){
	if(Kantoor == 'Enkhuizen'){
		map.setCenter(new GLatLng(52.699366, 5.289655), 17, G_HYBRID_MAP);
		document.getElementById('ToPlace').selectedIndex = 0;
	} else if(Kantoor == 'Maastricht'){
		map.setCenter(new GLatLng(50.847738, 5.705935), 17, G_HYBRID_MAP);
		document.getElementById('ToPlace').selectedIndex = 1;
	}
}

function setDirections(fromAddress, toAddress, locale) {
  gdir.load("from: " + fromAddress + " to: " + toAddress,
			{ "locale": locale });
}

function handleErrors(){
   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS){
     ToonMelding(URLPref + 'alert.php?Tekstje=Het adres/plaats is niet gevonden. Zorg ervoor dat zowel het adres als de plaats van vertrek correct is ingevuld.');
   } else if (gdir.getStatus().code == G_GEO_SERVER_ERROR){
     ToonMelding(URLPref + 'alert.php?Tekstje=Een geocoding of routebeschrijving verzoek kan niet worden verwerkt, maar de exacte oorzaak van de storing is niet bekend.');
   } else if (gdir.getStatus().code == G_GEO_MISSING_QUERY){
     ToonMelding(URLPref + 'alert.php?Tekstje=Het adres/plaats is niet gevonden. Zorg ervoor dat zowel het adres als de plaats van vertrek correct is ingevuld.');
   } else { 
   	 ToonMelding(URLPref + 'alert.php?Tekstje=Fout bij het genereren van uw route, probeer het nog een keer.');
   }
}

function onGDirectionsLoad(){ 
   var poly = gdir.getPolyline();
   

   var baseUrl = "http://maps.google.com/staticmap?";

   var params = [];
   params.push("center=" + map.getCenter().lat().toFixed(6) + "," + map.getCenter().lng().toFixed(6));

   var markersArray = [];
   markersArray.push(poly.getVertex(0).toUrlValue(5) + ",greena");
   markersArray.push(poly.getVertex(poly.getVertexCount()-1).toUrlValue(5) + ",greenb");
  
   params.push("markers=" + markersArray.join("|"));

   var polyParams = "rgba:0x0000FF80,weight:5|";
   var polyLatLngs = [];
   for (var j = 0; j < poly.getVertexCount(); j++) {
     polyLatLngs.push(poly.getVertex(j).lat().toFixed(5) + "," + poly.getVertex(j).lng().toFixed(5));
   }
   params.push("path=" + polyParams + polyLatLngs.join("|"));
   params.push("zoom=" + map.getZoom());
   params.push("size=880x300");


}
