	var map;

	var bounds;

	var totalElements = 0;
	google.load("maps", "2");
	google.setOnLoadCallback(initialize);

	function initialize()
	{
		map = new GMap2(document.getElementById('mapHolder'));
		geocoder = new GClientGeocoder();
		map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(0,0),0);
		bounds = new GLatLngBounds();
		if(typeof window.myInit == 'function')
		{
			myInit();
		}
		
		setView();
	}

	function kill()
	{
		GUnload();
	}

	function setView()
	{
		 var zoomlevel = map.getBoundsZoomLevel(bounds);
		 zoomlevel -= 3;
		 if(zoomlevel < 0)
			zoomlevel = 0;
		 
		 map.setZoom(zoomlevel);
         map.setCenter(bounds.getCenter());
	}

	

	function addLatLon(lat, lon)
	{
		addLatLonWithComment(lat, lon, "");
	}

	

	function addLatLonWithComment(lat, lon, comment)
	{
		if(lat == "" || lon == "")
			return false;
		var point = new GLatLng(lat, lon);

		bounds.extend(point);
		
		var marker = createMarker(point, comment);
		map.addOverlay(marker);
						
		if(comment != "")
		{
			//marker.openInfoWindowHtml(comment);
		}

	}

	function createMarker(point, comment)
	{
	  var baseIcon = new GIcon(G_DEFAULT_ICON);

	  var letter = String.fromCharCode("A".charCodeAt(0) + totalElements );

	  totalElements++;

          var letteredIcon = new GIcon(baseIcon);

          letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";

          // Set up our GMarkerOptions object

          markerOptions = { icon:letteredIcon };

         // var marker = new GMarker(point, markerOptions);

	  var marker = new GMarker(point);

	  if(comment != "")
	  {

          	GEvent.addListener(marker, "click", function() {

            	  marker.openInfoWindowHtml(comment);

          	});

	  }

          return marker;

	}