var markers = new Array();
var photoIds = new Array();

function doMap()
{
    var map = new GMap2(document.getElementById("map"));
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new GLatLng(5, 0), 1);

    GDownloadUrl("geo.php", function(data, responseCode) 
    {            
        var xml = GXml.parse(data);
        var photos = xml.documentElement.getElementsByTagName("photo");
         
        var listHtml = "";

        for (var i = 0; i < photos.length; i++) 
        {
          var id = photos[i].getAttribute("id");
          var title = photos[i].getAttribute("title");
          if (title == "")
          {
            title = "Untitled";
          }
          var latitude = parseFloat(photos[i].getAttribute("latitude"));
          var longitude = parseFloat(photos[i].getAttribute("longitude"));
          var point = new GLatLng(latitude, longitude);
    
          map.addOverlay(createMarker(point, id));
    
          var className = (i%2 == 0) ? "even" : "odd";
    
          listHtml += "<li class=\"" + className + "\">" 
            + "<a href=\"#\" onclick=\"displayMarkerInfo(" 
            + i + "); return false;\">" 
            + title + "</a></li>";
        }
        var markerList = document.getElementById('marker-list');
        markerList.innerHTML = listHtml;
      });
}


function createMarker(point, id)
{
  var marker = new GMarker(point);
  markers.push(marker);
  photoIds.push(id);
  var index = markers.length - 1;

  GEvent.addListener(marker, "click", function() 
  {
    displayMarkerInfo(index);
  });

  return marker;
}


function displayMarkerInfo(index)
{
  var marker = markers[index];
  var id = photoIds[index];

  GDownloadUrl("geoview.php?id=" + id, function(data, responseCode) 
  {
    marker.openInfoWindowHtml(data);
  });
}


