var days = new Array();
var addresses = new Array();
var j = 0;
var map;
var nextAddress = 0;

// load xml for Friday
GDownloadUrl('../friday.xml', function(data) {
  xml = GXml.parse(data);
  days['friday'] = xml.documentElement.getElementsByTagName("marker");
});

// load xml for Friday
GDownloadUrl('../thursday.xml', function(data) {
  xml = GXml.parse(data);
  days['thursday'] = xml.documentElement.getElementsByTagName("marker");
});


var Mapping = {
    
  setMap: function() {    
    $('overlay').fade('hide');
    
    // Download the data in data.xml and load it on the map.  
    $$('.showMap').addEvent('click', function(event) {
      j = 0;
      event.stop();
      $('map').empty();
      $$('.showMap').className = '';
      day = this.href.split('#');
      day = day[day.length - 1];
      $('map').className = day;
      Mapping.createMap(day);
      $('overlay').setStyle('top', $$('body')[0].getScroll().y);
      $('overlay').fade(1);
      myVar = 1;
      $$('body').setStyle('overflow', 'hidden');
    });
    
    // hide map
    $('closeMap').addEvent('click', function(event) {
      event.stop();
      $('overlay').fade(0);
      $$('body').setStyle('overflow', 'auto');
    });
  },

  // On page load, call this function
  createMap: function(day){
    var geocoder;  
    
    day = days[day];
    
    // Create new map object
    map = new GMap2($('map'));  

   // Set map center location	  
    map.setCenter(new GLatLng(49.273540, -123.165), 13);

   // Add Map Controls
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());

   // Create new geocoding object
   geocoder = new GClientGeocoder();
   

    //Download the data in data.xml and load it on the map.
    for (var i = 0; i < day.length; i++) {
      address = day[i].getAttribute("address");
      test = geocoder.getLocations(address, Mapping.addToMap);
    }

  },
  
  // This function adds the point to the map

  addToMap: function(response) {
    var name;
    var address;
  
   // Retrieve the object
   //  place = response.Placemark[0];
   
   // Retieve Name & Address
   lng = days[$('map').className][j].getAttribute("lng");
   lat = days[$('map').className][j].getAttribute("lat");
   address = days[$('map').className][j].getAttribute("address");
   
   // trim
   var address = address.replace(', Vancouver Canada', '');
   var name = days[$('map').className][j].textContent;

   // Retrieve the latitude and longitude
   var point = new GLatLng(lat,lng);
                                     
   // Create a marker
   var marker = Mapping.createMarker(point, "<p><strong>"+name+"</strong><br/>"+address+"</p>");
   map.addOverlay(marker);
 
   // Incrimement
   j++;

  },
  
  createMarker: function(point, html) {
    var marker = new GMarker(point);
    GEvent.addListener(marker, "click", function() {
      marker.openInfoWindowHtml(html);
    });
    return marker;
  }
}

window.addEvent('domready', Mapping.setMap);