var iconBlue = new GIcon(); 
iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
iconBlue.iconSize = new GSize(12, 20);
iconBlue.shadowSize = new GSize(22, 20);
iconBlue.iconAnchor = new GPoint(6, 20);
iconBlue.infoWindowAnchor = new GPoint(5, 1);

var iconRed = new GIcon(); 
iconRed.image = 'http://labs.google.com/ridefinder/images/mm_20_red.png';
iconRed.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
iconRed.iconSize = new GSize(12, 20);
iconRed.shadowSize = new GSize(22, 20);
iconRed.iconAnchor = new GPoint(6, 20);
iconRed.infoWindowAnchor = new GPoint(5, 1);

var customIcons = [];
customIcons["restaurant"] = iconBlue;
customIcons["bar"] = iconRed;

var myGMapInstance = null;

function setGMapCenter(lat, lng) {
	myGMapInstance.setCenter(new GLatLng(lat,lng), myGMapInstance.getZoom());
}

function addLocationToMenu(point, title) {
	var elem = document.getElementById(gmaplocationsdiv);
	
	if (elem != null) {
		myLink = '<a href="#" onclick="setGMapCenter(' + point.lat() + ',' + point.lng() + ')">' + title + '</a><br />';
		elem.innerHTML += myLink;
	}
}

function GMapInitilaize() {
  if (GBrowserIsCompatible()) {
    myGMapInstance = new GMap2(document.getElementById("gmap"));
    myGMapInstance.enableScrollWheelZoom();
    myGMapInstance.addControl(new GSmallMapControl());
    myGMapInstance.addControl(new GMapTypeControl());
    myGMapInstance.setCenter(new GLatLng(gmapx,gmapy), gzoom);

    GDownloadUrl("index.php?module=basic&class=googlemaps&presenter=rest", 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].getElementsByTagName("name")[0].firstChild.nodeValue;
        var address = markers[i].getElementsByTagName("address")[0].firstChild.nodeValue;
        var type = markers[i].getElementsByTagName("type")[0].firstChild.nodeValue;
        var point = new GLatLng(parseFloat(markers[i].getElementsByTagName("lat")[0].firstChild.nodeValue),parseFloat(markers[i].getElementsByTagName("lng")[0].firstChild.nodeValue));
        var marker = createMarker(point, name, address, type);
        myGMapInstance.addOverlay(marker);
        addLocationToMenu(point, name);
      }
    });
  }
}

function createMarker(point, name, address, type) {
  var marker = new GMarker(point, customIcons[type]);
  var newAddress = address.replaceAll(',', '<br/>');
  var html = "<b>" + name + "</b> <br/>" + newAddress;
  html += '<br /><a href="http://www.google.com/maps?source=uds&daddr=' + address + '+@' + point.lat() + ',' + point.lng() + '&iwstate1=dir:to" target="_blank">How do I get there?</a>';
  GEvent.addListener(marker, 'click', function() {
    marker.openInfoWindowHtml(html);
  });
  return marker;
}
