﻿var map;


    function load() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));

    map.setCenter(new GLatLng(startLat, startLng), startZoom);
	map.addControl(new GSmallMapControl());
	//map.addControl(new GMapTypeControl());
	//map.addControl(new GLargeMapControl());

	poiLoad();
      }
    }
function clearDebug()
{
	document.getElementById("message").innerHTML = '';
}
function debug(aMsg)
{
	document.getElementById("message").innerHTML = document.getElementById("message").innerHTML + aMsg + '<br/>';
}
// Creates a marker at the given point with the given number label
function createMarker(point, aMsg, typeId) {

            var icon = new GIcon();
            icon.image = '/assets/images/icons/' + typeId + '.gif';
            icon.iconSize = new GSize(20,20);         
            icon.iconAnchor = new GPoint( 10, 10 );
            icon.infoWindowAnchor = new GPoint(10, 6);

  var marker = new GMarker(point, icon);
  GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml('<div class="googleMap">' + aMsg + '</div>');
  });
  return marker;
}

function poiLoad(poiType)
{
//clearDebug();
map.clearOverlays();
if (map.getZoom() > 1)
	{
		var bounds = map.getBounds();
		var southWest = bounds.getSouthWest();
		var northEast = bounds.getNorthEast();

		var theUrl 
		if (poiType != '')
            theUrl = '/mapdata.aspx?typeId=' + poiType + '&x1=' + southWest.lng() + '&x2=' + northEast.lng() + '&y1=' + southWest.lat() + '&y2=' + northEast.lat();
        else
            theUrl = '/mapdata.aspx?x1=' + southWest.lng() + '&x2=' + northEast.lng() + '&y1=' + southWest.lat() + '&y2=' + northEast.lat();

		   
	//debug(theUrl);
		GDownloadUrl(theUrl, function(data, responseCode) {
	
		  var xml = GXml.parse(data);
		  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")));
			map.addOverlay(createMarker(point, markers[i].getAttribute("detail"), markers[i].getAttribute("typeId")));
			//debug('lat/lng: ' + markers[i].getAttribute("lat") + '/' + markers[i].getAttribute("lng") + ' : ' + markers[i].getAttribute("detail"));
		  }
		  
		  /*
		  var locationBounds = new GLatLngBounds( 
                new GLatLng( locationParts[1], locationParts[2] ), 
                new GLatLng( locationParts[0], locationParts[3] ) ); 
                          
            var center = locationBounds.getCenter();
                   
            this.lat = center.lat();
            this.lng = center.lng();
            
            var zoom = this.map.getBoundsZoomLevel( locationBounds );  
            */

		});
	}
}
