    var map;
    var baseIcon;

    function load(id, lat, lon) {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById(id));
        map.addControl(new GSmallMapControl());
        var point = new GLatLng(lat, lon);
        map.setCenter(point, 8);
	map.addMapType(G_PHYSICAL_MAP);
	map.setMapType(G_PHYSICAL_MAP);
      }
    }

    function loadBounds(id, neLat, neLon, swLat, swLon)
    {
      if (GBrowserIsCompatible()) {
      map = new GMap2(document.getElementById(id));
      map.addControl(new GSmallMapControl());
      var mapBounds = new GLatLngBounds(
      	new GLatLng(swLat, swLon),
	new GLatLng(neLat, neLon)
      );
      var zoom = map.getBoundsZoomLevel(mapBounds);
      map.setCenter(mapBounds.getCenter(),zoom);
      }
    }

    function setBaseIcon()
    {
        baseIcon = new GIcon(G_DEFAULT_ICON);
        baseIcon.iconSize = new GSize(30, 30);
        baseIcon.iconAnchor = new GPoint(9, 34);
        baseIcon.infoWindowAnchor = new GPoint(9, 2);
    }

    function addWeatherIcon(icon, lat, lon, html)
    {
      var point = new GLatLng(lat, lon);
      var myIcon = new GIcon(baseIcon, icon);
      var marker = new GMarker(point, { icon:myIcon});
      marker.html = html;

      GEvent.addListener(marker, "click", function() {
      	marker.openInfoWindowHtml(marker.html);
      });

      map.addOverlay(marker);
      return marker;
    }

    function showWindow(marker)
    {
      marker.openInfoWindowHtml(marker.html);
    }
