function myclick(i) {
  m = gmarkers[i]
  GEvent.trigger(gmarkers[i], "click");
}

function createMarker( locations, i ) {
 var point = new GLatLng(
   parseFloat(listings[i].getAttribute("lat")),
   parseFloat(listings[i].getAttribute("lng"))
 );
 // Create a lettered icon for this point using our icon class from above
 var icon = new GIcon( baseIcon );
 var letter = i < 10 ? String.fromCharCode("A".charCodeAt(0) + i ) : "";
 icon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
 var marker = new GMarker( point, icon );
 return marker;
}

function _loadUbertorMarker() {
  var icon = new GIcon();
  icon.image = ubr_marker;
  icon.iconSize = new GSize(24, 38);
  icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
  icon.shadowSize = new GSize(37, 34);
  icon.iconAnchor = new GPoint(9, 34);
  icon.infoWindowAnchor = new GPoint(9, 2);
  icon.infoShadowAnchor = new GPoint(18, 25);
  return icon;
}

function createMarkerForXML(point, html) {
  var marker = new GMarker(point, _loadUbertorMarker());
  if(html != "") {
    GEvent.addListener(marker, "click", function() {
      marker.openInfoWindowHtml(html);
    });
  }
  gmarkers[gi] = marker;
  gi++;
  return marker;
}

function _loadNewXmlFileFromURL(url, map) {

  GDownloadUrl(url, function(data) {
    var xml = GXml.parse(data);
    var sidebar = xml.documentElement.getAttribute("sidebar");
    if(sidebar) {
      $('sidebar').show();
    } else {
      $('sidebar').hide();
    }
    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"))
      );
      info = GXml.value(markers[i].getElementsByTagName("info")[0]);
      sidebar = GXml.value(markers[i].getElementsByTagName("sidebar")[0]);
      if(sidebar) {
        $('sidebar').innerHTML += "<div class='sidebar_item'>\
        <table border='0' cellspacing='0' cellpadding='0' width='100%'>\
        <tr>\
        <td width='24'><img src='<?= marker_url() ?>'></td>\
        <td>" + sidebar + "</td>\
        </tr>\
        </table></div>";
      }
      marker = createMarkerForXML(point, info);
      if(point.lng() == 0 && point.lat() == 0) {
      } else {
        bounds.extend(point);
      }
      map.addOverlay(marker);
    }
    if(sidebar) {
      $('sidebar').innerHTML = "<div id='sidebar_items'>" + $('sidebar').innerHTML + "</div>";
      swidth = xml.documentElement.getAttribute("sidebarwidth");
      sheight = xml.documentElement.getAttribute("sidebarheight");
      if(sheight) {
        $('sidebar_items').style.height = sheight;
      }
      map.checkResize();
    }
    if(!zoom) map.setZoom(map.getBoundsZoomLevel(bounds) - 1);
    map.setCenter(bounds.getCenter());
  });
}

function getCenter(lat, long) {
  
  if(lat != undefined && long != undefined) {
    return [lat, long, 15];
  } else {
    return [49,-123, 4]
  }

}

function initMap(lat, long) {

  map = new GMap2(document.getElementById("innergooglemap"));

  center = getCenter(lat, long);

  map.setCenter(new GLatLng(center[0], center[1]), center[2]);
  if(zoom) map.setZoom(zoom);

  if(lat != undefined && long != undefined) {
    url = "/_googlemapXML.php?long=" + long + "&lat=" + lat;
    _loadNewXmlFileFromURL( url, map );
  } else if(src != undefined) {
    _loadNewXmlFileFromURL( src, map);
  }

  return map;
}
