// CODE TO HANDLE ALL THE FUNCTIONALITY ON THE CASE STUDIES PAGE UTILISING GOOGLE MAPS
// AUTHOR: ROB CHARLWOOD 2009
// VERSION: 1.0

// METHOD TO INITIALISE THE MAP
function load(dataURL) {

  // ADD HEIGHT TO MAP DIV AS IF JS IT NOT ENABLED THEN THE BACKUP CASE STUDIES NEED TO DISPLAY CORRECTLY
  $('#map').addClass("js_map");

  // CREATE AN EMPTY ARRAY OF LOCATIONS
  var locations = {};
  
  // CREATE MAP
  var map = new GMap2(document.getElementById("map"));
  //map.setCenter(new GLatLng(51.006382, 10.854492), 2);
  map.setCenter(new GLatLng(26.852826,9.799805),2)
  map.setUIToDefault();
  map.disableScrollWheelZoom();
  
  // SHOW LOADER
  mapLoader = $('<div id="map_loader"><p>Loading...</p></div>');
  mapLoader.appendTo($('#map'));
  
  // REMOVE MAP CONTROLS
  map.removeMapType(G_HYBRID_MAP);
  map.removeMapType(G_SATELLITE_MAP);
  map.removeMapType(G_PHYSICAL_MAP);
  
  // GRAB MAP DATA
  GDownloadUrl("/" + dataURL + "/sitedata/", function(data) {
    var xml = GXml.parse(data);
    var markers = xml.documentElement.getElementsByTagName("marker");
    for (var i = 0; i < markers.length; i++) {
      var name = markers[i].getAttribute("name");
      var summary = markers[i].getAttribute("summary");
      var link = markers[i].getAttribute("link");
      var image = markers[i].getAttribute("image");
      var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                              parseFloat(markers[i].getAttribute("lng")));  
      
      // IF NEITHER CLIENT OR CAT ARE SELECTED THEN LOAD ALL
      var store = {latlng: latlng, name: name, summary: summary, link: link, image: image};
      var latlngHash = (latlng.lat().toFixed(6) + "" + latlng.lng().toFixed(6));
      latlngHash = latlngHash.replace(".","").replace(".", "").replace("-","");
      if (locations[latlngHash] == null) {
        locations[latlngHash] = []
      }
      locations[latlngHash].push(store);
     
    // LOOP THROUGH XML MARKERS  
    }
    
    // LOOP THROUGH THE NEWLY CREATED LOCATIONS ARRAY AND PLOT THE MARKERS
    for (var latlngHash in locations) {
      var stores = locations[latlngHash];
        map.addOverlay(createMarker(stores));
     }
     
     // REMOVE THE LOADER
     $('#map_loader').remove();
     
  // END OF GDOWNLOADURL METHOD
  });   
  
// END OF LOAD METHOD
}
    
// CREATE MARKERS
function createMarker(stores) {
  var store = stores[0];
  var icon = new GIcon(G_DEFAULT_ICON);
  
  // CREATE CUSTOM MARKER
  icon.image = MEDIA_URL +'images/wli_map_marker.png';
  icon.shadow = null;
  icon.iconSize = new GSize(22, 26);
  icon.transparent = MEDIA_URL +"images/wli_map_marker.png";
  icon.iconAnchor = new GPoint(26, 26);
   
  // MAKE THE MARKER
  var marker = new GMarker(store.latlng, {icon: icon});
  var html = "<div id='map_popup'><div id='popup_image'><img src='" + store.image + "' /></div><div id='popup_text'><h3 class='green'>" + store.name + "</h3><p>" + store.summary + "</p><p><a href='" + store.link  + "' hreflang='en-gb'>View case study</a></p></div><div style='clear:both;'>&nbsp;</div></div>";
  GEvent.addListener(marker, 'click', function() {
    marker.openInfoWindowHtml(html);
  });
  return marker;
}
// EOF
