  var map;
    var mgr;
    var icons = {};
    var allmarkers = [];

    function load() {
      if (GBrowserIsCompatible()) {
	map = new GMap2(document.getElementById("map"));
	map.addControl(new GLargeMapControl());
	map.addControl(new GOverviewMapControl());
	map.setCenter(new GLatLng(50, -98), 3);
	map.enableDoubleClickZoom();
	mgr = new MarkerManager(map, {trackMarkers:true});
	window.setTimeout(setupTourMarkers, 0);
      }
    }

    function getIcon() {
      var icon = null;
	  icon = new GIcon();
	  icon.image = iconData['marker']['image'];
	  icon.iconSize = new GSize(iconData['marker']['width'], iconData['marker']['height']);
	  icon.iconAnchor = new GPoint(iconData['marker']['width'] - 14, iconData['marker']['height']);
	  icon.shadow = iconData['marker-shadow']['image'];
	  icon.shadowSize = new GSize(iconData['marker-shadow']['width'], iconData['marker-shadow']['height']);
      return icon;
    }

    function setupTourMarkers() {
      allmarkers.length = 0;
      for (var i in locationLayer) {
	var layer = locationLayer[i];
	var markers = [];
	for (var j in layer["places"]) {
	  var place = layer["places"][j];
	  var icon = getIcon();
	  var title = place["name"];
	  var posn = new GLatLng(place["posn"][0], place["posn"][1]);
	  var info = place["info"];
	  var marker = createMarker(posn,title,icon,info); 
	  markers.push(marker);
	  allmarkers.push(marker);
	}
	mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]);
      }
      mgr.refresh();
    }
  
    function createMarker(posn, title, icon, info) {
      var marker = new GMarker(posn, {title: title, icon: icon, draggable:false });
      GEvent.addListener(marker, 'click', function(){map.openInfoWindowHtml(posn, info);});
      return marker;
    }