// Function shamelessly copied from googles documentation
// http://www.google.com/apis/maps/documentation

var map;
var icon = new GIcon();	// Create our "tiny" marker icon
icon.image = "http://www.jaunted.com/images/gmaps/j_map_icon.png";
icon.shadow = "http://www.jaunted.com/images/gmaps/j_map_shadow.png";
icon.iconSize = new GSize(31, 41);
icon.shadowSize = new GSize(51, 41);
icon.iconAnchor = new GPoint(6, 20);
icon.infoWindowAnchor = new GPoint(5, 1);

function onLoad(name) {
  map = new GMap2(document.getElementById("map"));
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());

  if (GBrowserIsCompatible()) {
    var request = GXmlHttp.create();
    request.open('GET', '/gmapsxml/'+name, true);
    request.onreadystatechange = function() {
      if (request.readyState == 4) {
        var xmlDoc = request.responseXML;
        var startpos = xmlDoc.documentElement.getElementsByTagName("start");
        if (startpos.length > 0) {
          map.setCenter(new GLatLng(
              parseFloat(startpos[0].getAttribute("lat")),
              parseFloat(startpos[0].getAttribute("lng"))),
              parseFloat(startpos[0].getAttribute("zoom")));
          var newMapType=startpos[0].getAttribute("type");
          if(newMapType == 'G_HYBRID_MAP'){
            map.setMapType(G_HYBRID_MAP);
          } else if(newMapType == 'G_SATELLITE_MAP'){
            map.setMapType(G_SATELLITE_MAP);
          }
        }
        var minipages = xmlDoc.documentElement.getElementsByTagName("minipage");
	var markers = xmlDoc.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 marker = createMarker(point,GXml.value(minipages[i]),
		markers[i].getAttribute("title"));
          map.addOverlay(marker);
        }
      }
    }
    request.send(null);
  } else {
    document.getElementById("map").innerHTML+="<p><center><b>Browser Not Compatible</b></center></p>\n";
    document.getElementById("map").innerHTML+="<p>We are sorry, but the browser that you are using is not compatible with the Google Map API.</p>\n";
    document.getElementById("map").innerHTML+="<p>Have you considered using <a href=\"http://www.mozilla.com\">firefox</a>?</p>\n";
  }
}

function createMarker(point, html,title) {
  var marker = new GMarker(point,{icon:icon,title:title});
  GEvent.addListener(marker, 'click', function() {
	marker.openInfoWindowHtml(
		'<div style="white-space:nowrap;">'+html+'</div>');
  });
  return marker;
}
