
// Add, chain, cache JavaScript on load functions
if(!window.maps) {
  // Use key to load GMap API
  var keyUrl = "http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAGUPWmAvAxij9ruX11UxsPxTFuz_4j8Wy74Y6ZE5RkRDirMW2sRT7QRylO4shPL_egoktZ8q_retCOw";
  document.write('<' + 'script src="' + keyUrl + '"' +' type="text/javascript"><' + '/script>');

  window.maps = new Array(0);
}

// Creates a marker at the given point with the given number label
function createMarker(lat, lng, msg) {
  var point = new GLatLng(lat, lng);
  var marker = new GMarker(point);
  GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml(msg);
  });
  return marker;
}

// Creates a Google map...
function createMap(mapName, center, balloons) {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById(mapName));
    map.addControl(new GSmallMapControl());
    map.setCenter(new GLatLng(center.lat, center.lng), center.zoom);
    
    for(var i=0; i < balloons.length; i++) {
      var info = balloons[i];
      map.addOverlay(createMarker(info.lat, info.lng, info.msg));
    } 
  }
}

// Cache maps...
function storeMap(map) {
  window.maps.push(map);
}	

var rand = Math.floor(Math.random()*1000);
var mapName = "map"+rand;
document.write('<'+'div id="'+mapName+'" style="width: 500px; height: 300px"><'+'/div>');
document.write('<' + 'script src="http://www.travelblizzard.com/maps/sausalito.php?callback=storeMap&mapName='+mapName+'"' +' type="text/javascript"><' + '/script>');

// Attach new onload event handler
window.onload = function() {
  for(var i=0; i < window.maps.length; i++) {
    var map = window.maps[i];
    createMap(map.name, map.center, map.balloons);
  }
}

// Unload map data
// FEOX: UNDEFINED???
// window.onunload = GUnload();
