	var map = null;
	var osMap = null;

function load() {
	//Google
	if (document.getElementById("google_map") && GBrowserIsCompatible()) {

		// Unhide div containing map
		document.getElementById("map_container").style.display = "block";

		// Create map
		map = new GMap2(document.getElementById("google_map"));
		map.enableContinuousZoom();
		map.setMapType(G_SATELLITE_MAP);

		// Set the map centre
		var map_centre = new GLatLng(lat, lon);
		map.setCenter(map_centre, google_zoom_level);

		// Add walk overlay
		if(route_kml) {
			var gx = new GGeoXml(route_kml);
			map.addOverlay(gx);
		}
		if(route_gpx) {
			googleShowGpx(map, route_gpx);
		}
	
		// Add Controls
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		$("#map_container").css("display","block");
	} // if GBrowserIsCompatible

	//OS map
	if(document.getElementById("os_map") && typeof(OpenSpace) != "undefined") {
		osMap = new OpenSpace.Map('os_map');
		var gridProjection = new OpenSpace.GridProjection();
		var lonlat = new OpenLayers.LonLat(lon, lat);
		var mapPoint = gridProjection.getMapPointFromLonLat(lonlat);  
		osMap.setCenter(mapPoint, os_zoom_level);
		if(route_gpx) {
			var lgpx = new OpenLayers.Layer.GML("gpx", "/walks/gpx/"+route_gpx+".gpx", {
				format: OpenLayers.Format.GPX,
				style: {
					strokeColor: "blue",
					strokeWidth: 3,
					strokeOpacity: 1
				},
				projection: new OpenLayers.Projection("EPSG:4326")
			});
			osMap.addLayer(lgpx);
		}
		$("#map_container").css("display","block");
	}
} // load()

function googleShowGpx(map, gpx) {
	$.ajax({
	  type: "GET",
	  url: "/walks/gpx/"+route_gpx+".gpx",
	  dataType: "xml",
	  success: function(xml) {		
		var points = [];
		var aggregate_points = function() {
		  var lat = $(this).attr("lat");
		  var lon = $(this).attr("lon");
		  var p = new GLatLng(lat, lon);
		  points.push(p);
		}

		$(xml).find("rtept").each(aggregate_points);
		$(xml).find("trkpt").each(aggregate_points);
	
		var poly = new GPolyline(points,"#FF00AA",4,.7);
		map.addOverlay(poly);
		trace("Loaded GPX into google map. # points = "+points.length);

	  },
	  error: function(xhr, status, error) {
	  	trace("AJAX error fetching GPX file for google map: "+status);
	  }
	});	
}

function trace(o) {
	if(console) console.log(o);	
}
function unload() {
	GUnload();
}

