// Create a base icon for all of our markers that specifies the
// shadow, icon dimensions, etc.
var baseIcon = new GIcon();
baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
baseIcon.iconSize = new GSize(20, 34);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoShadowAnchor = new GPoint(18, 25);

// Creates a marker at the given point with the given number label
function createMarker(point, name, details, symbol) {
  // create a lettered icon
  var icon = new GIcon(baseIcon);
  icon.image = "http://www.google.com/mapfiles/marker" + symbol + ".png";
  var marker = new GMarker(point, icon);
  GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml(name + " " + details);
  });
  return marker;
}

function load() {
  // Only load a map if one exists on the page
  mapElement = document.getElementById("f_map");

  if (mapElement && GBrowserIsCompatible()) {
    var map = new GMap2(mapElement);
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new GLatLng(56.016808, -3.927612), 13);
    map.setZoom(7);
    GDownloadUrl("/statics/sites.xml",
                 function(data, responseCode) {
        var xml = GXml.parse(data);
        var markers = xml.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < markers.length; i++)
        {
          var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                  parseFloat(markers[i].getAttribute("lng")));
          var name = markers[i].getAttribute("name");
          var description = markers[i].getAttribute("desc");
          var sym = String.fromCharCode("A".charCodeAt(0) + i);
           map.addOverlay(createMarker(point,name,description,sym) );
        } 
      });
  }
}
