﻿window.onload = function () {
	InitialiseMapping();
};

//
// NOTE: Make sure relative links are correct from the Virtual URLs point of view.
//
function InitialiseMapping() {

	// If Google Maps is incompatiable, stop executing function
	if (!GBrowserIsCompatible()) return;

	// Instantiate new map in #map_map div
	var map = new GMap2(document.getElementById('map_map'));

	// Define map controls and set centre point and zoom level
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.setCenter(new GLatLng(51.58016937758778, 0.183400000089617), 16);

	var logoIcon = new GIcon();
	logoIcon.image = '../../images/icons/marker-logo.png';
	logoIcon.iconSize = new GSize(43, 38);
	logoIcon.shadowSize = new GSize(0, 0);
	logoIcon.iconAnchor = new GPoint(0, 0);
	logoIcon.infoWindowAnchor = new GPoint(0, 0);
	logoIcon.infoShadowAnchor = new GPoint(0, 0);

	var carParkIcon = new GIcon(logoIcon);
	carParkIcon.image = '../../images/icons/marker-parking.gif';
	carParkIcon.iconSize = new GSize(18, 18);

	var trainStationIcon = new GIcon(logoIcon);
	trainStationIcon.image = '../../images/icons/marker-train-station.gif';
	trainStationIcon.iconSize = new GSize(18, 18);

	logoMarkerOptions					= { icon:logoIcon };
	carParkMarkerOptions			= { icon:carParkIcon };
	trainStationMarkerOptions	= { icon:trainStationIcon };

	// Process JSON data
	function ProcessJson(jsonStr) {
		var jsonData = eval('(' + jsonStr + ')');

		// Plot the markers
		for (var j = 0; j < jsonData.markers.length; j++) {
			var markerJson	= jsonData.markers[j];
			var point				= new GLatLng(markerJson.latitude, markerJson.longitude);
			var markerObj		= eval('new GMarker(point, ' + markerJson.marker + 'MarkerOptions)');

			// Plot marker
			map.addOverlay(markerObj);
		}
	}

	// Fetch JSON data and process
	GDownloadUrl("../../javascript/markers.json.js", ProcessJson);
}
