// Launch map app

// TODO:
// Intiate onclick handlers here for cleaner seperation.
// However it is silly because this application depends on
// Javascript anyway.

window.onload = function() {load();};
window.onunload = function() {GUnload();};

var map;
var puntDauphine = new GLatLng(52.34826181755592, 4.917272329330444);
var puntParking = new GLatLng(52.349117082869576, 4.916548132896423);

var icon = new GIcon();
icon.image = "../../lib/images/poi_dauphine.png";
icon.iconSize = new GSize(106, 68);
icon.iconAnchor = new GPoint(10, 68);
icon.infoWindowAnchor = new GPoint(100,0);

var iconParking = new GIcon();
iconParking.image = "../../lib/images/p.png";
iconParking.iconSize = new GSize(29, 35);
iconParking.iconAnchor = new GPoint(15, 35);

// Map directions data
var directionsJSON = {
			'utrecht': {
				'points': 'yem~H{ud]xCtR|@rFBbBEb@e@z@eBLcBaA_@[q@kA}CpFgBrCeGbKoN|UcOtVmLzRs@xAi@dBWrAMvBCnBNvCf@fJNnDOp@MtABhAT~@d@t@l@lB_BrAuBpAM]',
				'levels': 'BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB',
				'zoomLocation': new GLatLng(52.3483765092675, 4.917508363723755),
				'zoomLevel': 15,
				'overlay' : null
			},
			'amersfoort': {
				'points': 'w~j~Hst~\qo@|EmMxCwU|UoDuNmH{M{CgAwVhGqC{_@DwDIqCw@oBeAT??_@tCzA|EDlAqElCOs@',
				'levels': 'BBBBBBBBBBBBBBBBBBB',
				'zoomLocation': new GLatLng(52.33095962322933, 4.924836158752441),
				'zoomLevel': 15,
				'overlay' : null
			},
			'zaandam': {
				'points': 'wyu~Hsgj]vMeBnPiC??nPs@??jP~A??vUbHfLdFrW~LnZvMtb@fU~SpRb\t[pQxQzEbLjIbi@tDdTIzDsBPmCmAy@kA_Ud_@eIjNaMjSsKtQyBtEoA~EB`Kn@fJ?jDObCPvBz@bBJ~@wDpCOM',
				'levels': 'BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB',
				'zoomLocation': new GLatLng(52.34005895014771, 4.920501708984375),
				'zoomLevel': 15,
				'overlay' : null
			},
			'denhaag': {
				'points': 'qhm~Hanl\?glAt@q]pC}Zs@mq@sBedAgCi|A|@yg@\oNbEcS~GuSlCoDnAiBdA\dAbC?bLcKDkEuF{AsB}SsB~AibAP{OC}H_AeKaCyHkFeI}DeBaCbAsR`DqCo^?kCZcAAwA_@cBy@y@}@RO`AAjBNz@t@tA`@fBsE~CO_@',
				'levels': 'BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB',
				'zoomLocation': new GLatLng(52.3483765092675, 4.917508363723755),
				'zoomLevel': 15,
				'overlay' : null
			},
			'hoorn': {
				'points': 'e}w~Hco`]hA|@dFlD~FbHfCtDvBfF|D|IpEnJnCvG~BnE|@vAxBlBpDrAvCVdE?hEw@pG}@dF}@nGy@nJwAdGO`FtA`ErDxHpN|BjLfCfJb@h@\?J[n@Cn@d@H~AtC}AlCoAbFiCnGaDfEcCzFsC|FaDtHsD~EuBvCcB~FqDpFoCrFkBxF}CrB}BbEeK`DuE`A`B',
				'levels': 'BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB',
				'zoomLocation': new GLatLng(52.3483765092675, 4.917508363723755),
				'zoomLevel': 15,
				'overlay' : null
			},
			'ov': {
				'zoomLocation': new GLatLng(52.3483765092675, 4.917508363723755)
			}
		};

function gotoDauphine() {
	 map.panTo(puntDauphine);
}

function load() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map"));
    map.addControl(new GSmallZoomControl ());
    map.addControl(new GMapTypeControl());
    map.setCenter(puntDauphine, 15);

    window.setTimeout(function(){
    	// First remove all thingies from the map
			map.clearOverlays();
    	
    	placeDauphineMarker();
			placeParkingMarker();
    	gotoDauphine();
      }, 1000);
  }
}


function placeDauphineMarker() {
    marker = new GMarker(puntDauphine, {icon: icon});

    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml("Prins Bernhardplein 175<br />\n" +
                                  "1097 BL Amsterdam<br />\n" +
                                  "T: 020 - 46 216 46");
    });
    
    map.addOverlay(marker);
}

function placeParkingMarker() {
    marker = new GMarker(puntParking, {icon: iconParking});

   var mgr = new GMarkerManager(map);
   
   mgr.addMarker(marker, 15);
}

function showDirections(name) {
  document.getElementById('beschrijving-' + name).style.display = 'block';
  document.getElementById('beschrijving-' + name).id;

/*
  dir = directionsJSON[name];
  if (dir.points != null) {
  	// Create overlay if needed
		if (dir.overlay == null) {
			dir.overlay = new GPolyline.fromEncoded({
	        color: "#FF0000",
	        weight: 7,
	        points: dir.points,
	        levels: dir.levels,
	        zoomFactor: 3,
	        numLevels: 4
	    });
		}

	  map.addOverlay(dir.overlay);

	  // Pan to show route
	  //map.panTo(dir.zoomLocation);
	  //map.setZoom(dir.zoomLevel);
	}
	*/

  // Hide other directions
  for (i in directionsJSON) {
      if (i == name)
         continue;
      document.getElementById('beschrijving-' + i).style.display = 'none';
	  /*
      if (i != 'ov' && directionsJSON[i].overlay != null) {
      	map.removeOverlay(directionsJSON[i].overlay);
      }
	  */
  }
  return false;
}