var Lat49App =
{
	googleMap: null,
	
	init: function (googleMap)
	{
		try
		{
			this.googleMap = googleMap;
			
			//Wrap the Lat49 calls to avoid exceptions if the server is blocked.
			Lat49.initAds (this.getPublisherID ());
			
			this.updateAds ();
		}
		catch (e) {}
		
		GEvent.addListener (this.googleMap, 'moveend', this.updateAds);
	},
	
	updateAds: function ()
	{
		var center = Lat49App.googleMap.getCenter();
		var lat = center.lat ();
		var lon = center.lng ();
		
		try
		{
			var zoomlevel = Lat49.Tile.convertGMap2Zoom (Lat49App.googleMap.getZoom ());
			Lat49.updateAdByLatLon ('lat49-ads', lat, lon, zoomlevel);
		}
		catch(e) {}
	},
	
	getPublisherID: function ()
	{
		var publisherID = null;
		
		var scripts = $A (document.getElementsByTagName ('script')).findAll
		( 
			function (s)
			{
				return (s.src && s.src.match (/lat49\.js(\?.*)?$/))
			}
		
		).each
		(
			function (s)
			{
				var id = s.src.match(/id=([0-9]*)/);
				publisherID = id[1];
			}
		);
		
		return publisherID;
	}
}