// index.js

/*
var point = new GLatLng(loc[i].lat, loc[i].lon);

					var adicon = new GIcon(G_DEFAULT_ICON);
					adicon.image = loc[i].pinurl;
					adicon.shadow ="";
					adicon.iconSize = new GSize(36,32);

					var marker =  new GMarker(point,{clickable: true, bouncy: true, icon:adicon});
					map.addOverlay(marker);

					// add markers to array
					markersArray.push(marker);

*/

var Venues = (function() {
	var listItems = {};
	var map = null;
	var selectedMarker = null;
	
	function createVenues(vens)
	{
		for (var i=0; i<vens.length; i++)
		{
			var v = vens[i];
			var marker = createMarker(v);
			GEvent.addListener(marker, "infowindowclose", unselectMarker);
			listItems[v.id] = {venue:v,marker:marker};
			map.addOverlay(marker);
		}
	}
	
	function createMarker(venue)
	{
		var id = venue.id;
		var marker = new GMarker(new GLatLng(venue.lat,venue.lon));
		GEvent.addListener(marker, "click", function() {
			var li = listItems[id];
			showVenueInfo(li.venue);
			selectMarker(li.marker, li.venue.name);
		});
		return marker;
	}
	
	function showVenueInfo(venue)
	{
		document.getElementById("venue_info").innerHTML = "<div class='venue_desc'><div class='venue_title'>"+venue.name+"</div>"+venue.description+"</div>";
	}
	
	function selectMarker(marker, title)
	{
		unselectMarker(selectedMarker);
		marker.setImage("/img/markers/gmarker-yellow.png");
		selectedMarker = marker;
		marker.openInfoWindowHtml("<div class='venue_title_onmap'>"+title+"</div>");
	}
	
	function unselectMarker(marker)
	{
		if (marker)
			marker.setImage("/img/markers/gmarker-red.png");
	}
	
	return {
		init: function()
		{
			if (GBrowserIsCompatible()) 
			{
				try {Lat49.initAds(966);}catch(e){}

				map = new GMap2(document.getElementById("map_canvas"));
				map.setMapType(G_HYBRID_MAP);
				map.setUIToDefault();

				GEvent.addListener(map, "moveend", function()
				{
					var center = map.getBounds().getCenter();
					var zoom = Lat49.Tile.convertGMap2Zoom(map.getZoom());
					Lat49.updateAdByLatLon("lat49adcontainer", center.lat(), center.lng(), zoom);					
				});

				createVenues(Venues.initData.venues);
				
				if (Venues.initData.selectedVenue)
				{
					var li = listItems[Venues.initData.selectedVenue];
					selectMarker(li.marker,li.venue.name);
					map.setCenter(li.marker.getLatLng(), 15);
				}
				else
					map.setCenter(new GLatLng(49.695809,-123.198023), 8);				
			}

		}
	}

})();
