//<![CDATA[
var GamePlan;
if(GamePlan == undefined)
	GamePlan = {};

GamePlan.Maps =
	{
	Load : function(TargetElement)
		{
		    var interval = setInterval(function()
		    {
		        if ((eval("typeof GMap2") != "undefined"))
                { clearInterval(interval); GamePlan.Maps.LoadAfterReady(TargetElement); } }, 10); 
		},
		
	LoadAfterReady : function(TargetElement)
    	{
    	    GamePlan.Maps.Google.Load(TargetElement);
    	}
	}

	GamePlan.Maps.Google =
	{
	    Load: function(TargetElement)
	    {
	        try
	        {
	            if (GBrowserIsCompatible())
	            {
	                var metadata = TargetElement.getElementsByTagName("span");
	                var location = metadata[0].innerHTML.replace(/<br>/ig, "<br />");
	                var locationText = location.replace(/<br ?\/?>/ig, " ");
	                var apiType = metadata[1].innerText || metadata[1].textContent;
	                var zoom = metadata[2].innerText || metadata[2].textContent;
	                var systemName = metadata[3].innerText || metadata[3].textContent;
	                var map = new GMap2(TargetElement);
	                var geocoder = new GClientGeocoder();

	                if (GamePlan.Maps.Google.MapIndex == undefined)
	                {
	                    GamePlan.Maps.Google.MapIndex = 1;
	                    GamePlan.Maps.Google.AsyncIndex = 1;
	                    GamePlan.Maps.Google.Map = new Array();
	                    GamePlan.Maps.Google.Target = new Array();
	                }

	                GamePlan.Maps.Google.Map[GamePlan.Maps.Google.MapIndex] = map;
	                GamePlan.Maps.Google.Target[GamePlan.Maps.Google.MapIndex++] = TargetElement;

	                map.addControl(new GSmallMapControl());
	                map.addControl(new GMapTypeControl());

	                geocoder.getLatLng(locationText, function(point) { GamePlan.Maps.Google.AsyncOnLoaded(point, location, systemName, zoom); });
	            }
	        }
	        catch (e)
			{ }
	    },

	    AsyncOnLoaded: function(point, location, systemName, zoom)
	    {
	        var map = GamePlan.Maps.Google.Map[GamePlan.Maps.Google.AsyncIndex];
	        var TargetElement = GamePlan.Maps.Google.Target[GamePlan.Maps.Google.AsyncIndex++];

	        if (point)
	        {
	            map.setCenter(point, parseInt(zoom));

	            var marker = new GMarker(point);
	            map.addOverlay(marker);

	            marker.openInfoWindowHtml(systemName.bold() + "<br />" + location);
	        }
	        else if (location != "St. Louis, Missouri, 63101")
	        {
	            var geocoder = new GClientGeocoder();

	            location = "St. Louis, Missouri, 63101";

	            GamePlan.Maps.Google.Map[GamePlan.Maps.Google.MapIndex] = map;
	            GamePlan.Maps.Google.Target[GamePlan.Maps.Google.MapIndex++] = TargetElement;

	            //GamePlan.Maps.Google.AsyncIndex--;
	            geocoder.getLatLng(location, function(point) { GamePlan.Maps.Google.AsyncOnLoaded(point, "Location Not Found<br />" + location, systemName, zoom); });
	        }
	    }
	}
//]]>