var tms = {
	_map: null,
	_mapID: 'tms',
	_centerPoint: [41.886368, -87.624443],
	_centerZoom: 16,
	_points: [],
	addPoint: function (name, ll, info, direction_url) {
		var header = '<span class="header">Address:</span>';
		var address = '<span class="address">'+info+'</span>';
		var directions = '<a href="'+ $(direction_url).attr('href') +'" class="directions">Get directions</a>';
		var bubble = '<div id="tms_location">'+header+address+directions+'</div>';

		this._points[name] = {
			'll': ll,
			'info': bubble
		};
	},
	init: function () {
		//create a new map
		this._map = new GMap2(document.getElementById(this._mapID));
// set to satellite view - barrett
this._map.setMapType(G_SATELLITE_MAP);
		
		//center map
		this._map.setCenter(new GLatLng(this._centerPoint[0], this._centerPoint[1]), this._centerZoom);
		
		//add controls
		this._map.addControl(new GSmallMapControl());
		this._map.addControl(new GMapTypeControl());

		$('.directions').live("click",function() {
			window.open(this.href);
			return false;
		});
		
		//add waypoints
		for (var i in this._points) {
			var point  = new GLatLng(this._points[i].ll[0], this._points[i].ll[1]);
			var marker = new GMarker(point);
			marker._index = i;
			this._map.addOverlay(marker);
			
			GEvent.addListener(marker, "click", function() {
				var ll = new GLatLng(tms._points[this._index].ll[0], tms._points[this._index].ll[1]);
				tms._map.openInfoWindowHtml(ll, tms._points[this._index].info);
			});
		}
	},
	center: function (point, zoom) {
		this._map.setCenter(new GLatLng(this._points[point].ll[0], this._points[point].ll[1]), zoom);
	}
};