// set up the markers
var markers = [];
var baseIcon = new GIcon(G_DEFAULT_ICON);
baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
baseIcon.iconSize = new GSize(20, 34);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);

// initalize the map
function initialize(selector) {
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("gMapHolder"));
		map.addControl(new GSmallMapControl());
		//map.setCenter(new GLatLng(37.4419, -122.1419), 13);
	}
	// make the map fit
	function fitMap( map, points ) {
		var bounds = new GLatLngBounds();
		for (var i=0; i< points.length; i++) {
			bounds.extend(points[i]);
		}
		map.setZoom(map.getBoundsZoomLevel(bounds));
		map.setCenter(bounds.getCenter());
	}
	// get the longs and lats
	var latArray = new Array();
	var lngArray = new Array();
	$('code var.lat').each( function(i) {
		var lat = $(this).text();
		lat = lat.slice(0, (lat.length - 1));
		latArray[i] = lat;
	});
	$('code var.lng').each( function(i) {
		var lng = $(this).text();
		lng = lng.slice(0, (lng.length - 1));
		lngArray[i] = lng;
	});
	// figure out the centre and the zoom
	for(i = 0; i<latArray.length; i++) {
		var letter = String.fromCharCode("A".charCodeAt(0) + i);
		var letteredIcon = new GIcon(baseIcon);
		letteredIcon.image = 'http://www.google.com/mapfiles/marker' + letter + '.png';
		markerOptions = { icon:letteredIcon };
		var lngLat = new GLatLng(latArray[i], lngArray[i]);
		if(i == 0) {
			var bounds = new GLatLngBounds(lngLat, lngLat);
		}
		var marker = createMarker(lngLat, markerOptions, i);
		bounds.extend(lngLat);
		markers.push(marker);
	}
	
	map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds, map.size));
	// create the marker links so that they appear when u hover
	var dests = $(selector);
	dests.each(function(i) {
		$(this).mouseover(function() {
			map.addOverlay(markers[i]);
		});
		$(this).mouseout(function() {
			map.removeOverlay(markers[i]);
		});
	});
}

// create the marker
function createMarker(point, markerOptions, index) {
	var marker = new GMarker(point, markerOptions);
	return marker;
}