$(document).ready(function(){
	initialize();
});
var currentMarker = null;
function showTooltip(tip) {
	GEvent.trigger(places[tip], 'click', '', '', '', '1');
}
function initialize() {
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map_canvas"));
		map.setCenter(new GLatLng(45.533187, -122.940593), 11);
		var custom = map.getDefaultUI();
		custom.controls.menumaptypecontrol = false;
		map.setUI(custom);
		GEvent.addListener(map, "click", function(overlay, latlng, overlaylatlng) {
			if(currentMarker != null && overlay != null)
				return false;

			if( (currentMarker != null || overlay == null)
				&& (overlaylatlng != currentMarker.getLatLng()))
					currentMarker.tooltip.hide();
		});

		var letteredIcon = new GIcon(G_DEFAULT_ICON);

		function createMarker(markerName, lat, lng, letter, label) {
			letteredIcon.image = "http://www.google.com/mapfiles/marker"+letter+".png";
			var markerOptions = {icon: letteredIcon};
			var marker = new GMarker(new GLatLng(lat, lng), markerOptions);
			var tooltip = new Tooltip(marker, label, 0, false);

			GEvent.addListener(marker, "click", function(overlay, latlng, overlaylatlng, stop) { 
				if(currentMarker != null 
					&& currentMarker.getLatLng() != this.getLatLng())
						currentMarker.tooltip.hide(); 
					
				currentMarker = this;
				this.tooltip.show();
				if(!stop)
					$("#loc-"+markerName).parent().effect("highlight", {}, 4000);
			});

			marker.tooltip = tooltip; 
			map.addOverlay(tooltip);
			map.addOverlay(marker);

			return marker;
		}

		// Defined as: markers('id', 'latitude', 'longitude', 'tooltip')
		var markers = new Array(
			new Array('intel', '45.5401904', '-122.9571321', 'Intel Corporation'),
			new Array('market', '45.5226610', '-122.9871625', 'Hillsboro Farmer\'s Market'),
			new Array('stadium', '45.5532569', '-122.9095308', 'Hillsboro Stadium')
		);
		places = new Array();
		for(i=0; i<markers.length; i++) {
			var letter = String.fromCharCode("A".charCodeAt(0) + i);
			places[markers[i][0]] = createMarker(markers[i][0], markers[i][1], markers[i][2], letter, markers[i][3]);
		}
	}
}
