//<![CDATA[

var map = null;
var geocoder = null;
var mgr;
var icons = {};


function load() {
   if (GBrowserIsCompatible()) {
      map = new GMap2(document.getElementById("map"));
      map.addControl(new GMapTypeControl());
      map.addControl(new GLargeMapControl());
      map.addControl(new GOverviewMapControl());
      map.setCenter(new GLatLng(53.433358, 14.5514719), 12);
      map.enableDoubleClickZoom();
      geocoder = new GClientGeocoder();
      window.setTimeout(setupOfficeMarkers, 0);

      GEvent.addListener(map, "click", function(overlay, point) {
          if (overlay) {
            map.removeOverlay(overlay);
          } else {
            map.addOverlay(new GMarker(point));
          }
      });

      var southWest = bounds.getSouthWest();
      var northEast = bounds.getNorthEast();
      var lngSpan = northEast.lng() - southWest.lng();
      var latSpan = northEast.lat() - southWest.lat();
      for (var i = 0; i < 10; i++) {
        var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
                                southWest.lng() + lngSpan * Math.random());
        map.addOverlay(new GMarker(point));
      }

      var points = [];
      for (var i = 0; i < 5; i++) {
        points.push(new GLatLng(southWest.lat() + latSpan * Math.random(),
                                southWest.lng() + lngSpan * Math.random()));
      }
      points.sort(function(p1, p2) {
        return p1.lng() - p2.lng();
      });
      map.addOverlay(new GPolyline(points));
   }
}


function getIcon(images) {
      var icon = null;
      if (images) {
        if (icons[images[0]]) {
          icon = icons[images[0]];
        } else {
          icon = new GIcon();
          icon.image = "markermanager/" + images[0] + ".png";
          var size = iconData[images[0]];
          icon.iconSize = new GSize(size.width, size.height);
          icon.iconAnchor = new GPoint(size.width >> 1, size.height >> 1);
          icon.shadow = "markermanager/" + images[1] + ".png";
          size = iconData[images[1]];
          icon.shadowSize = new GSize(size.width, size.height);
          icons[images[0]] = icon;
        }
      }
      return icon;
}


function setupOfficeMarkers() {
      mgr = new GMarkerManager(map);
      for (var i in officeLayer) {
        var layer = officeLayer[i];
        var markers = [];
        for (var j in layer["places"]) {
          var place = layer["places"][j];
          var icon = getIcon(place["icon"]);
          var posn = new GLatLng(place["posn"][0], place["posn"][1]);
          markers.push(new GMarker(posn, { title: place["name"], icon: icon }));
        }
        mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]);
      }
      mgr.refresh();
}
    
    
function showAddress(address) {
 address += ', Szczecin';
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " not found");
            } else {
              map.setCenter(point, 15);
              var marker = new GMarker(point);
              map.addOverlay(marker);
              marker.openInfoWindowHtml(address);
            }
          }
        );
      }
}
