var map;
var constOverlays = new Array();
if (typeof(showConstOverlays) == 'undefined') {
	var showConstOverlays = true;
}
if (typeof(initialOverlay) == 'undefined') {
	var initialOverlay = 'golf';
}
if (typeof(maxZoom) == 'undefined') {
	var maxZoom = 10;
}

var defaultIcon = new GIcon();
defaultIcon.image = "images/marker_green.png";
defaultIcon.shadow = "images/marker_shadow.png";
defaultIcon.iconSize = new GSize(12, 20);
defaultIcon.shadowSize = new GSize(22, 20);
defaultIcon.iconAnchor = new GPoint(6, 20);
defaultIcon.infoWindowAnchor = new GPoint(5, 1);

var greenIcon = new GIcon(defaultIcon);
var blueIcon = new GIcon(defaultIcon);
blueIcon.image = "images/marker_blue.png";

var plainwellIcon = new GIcon();
plainwellIcon.image = "images/marker_plainwell_30.png";
plainwellIcon.iconSize = new GSize(26, 30);
plainwellIcon.iconAnchor = new GPoint(13, 15);
plainwellIcon.infoWindowAnchor = new GPoint(13, 1);

var clearIcon = new GIcon();

var constIcon = plainwellIcon;

/*
var plainwellIcon = new GIcon();
plainwellIcon.image = "images/marker_plainwell_40.png";
plainwellIcon.iconSize = new GSize(34, 40);
plainwellIcon.iconAnchor = new GPoint(17, 20);
plainwellIcon.infoWindowAnchor = new GPoint(17, 1);

var plainwellIconLarge = new GIcon();
plainwellIconLarge.image = "images/marker_plainwell_80.png";
plainwellIconLarge.iconSize = new GSize(68, 80);
plainwellIconLarge.iconAnchor = new GPoint(34, 40);
plainwellIconLarge.infoWindowAnchor = new GPoint(34, 1);
*/

// Fill constOverlays
var marker = new GMarker(new GLatLng(42.442905, -85.641775), {'icon' : constIcon, 'title' : 'City of Plainwell'});
GEvent.addListener(marker, "click", function() {
	marker.openInfoWindowHtml("<div class=\"marker_detail\"><h3>City of Plainwell</h3></div>");
});
constOverlays.push(marker);


function addOverlay(overlayCategory, latitude, longitude, icon, overlayName, infoWindowHtml) {
	var marker = new GMarker(new GLatLng(latitude, longitude), {'icon' : icon, 'title' : overlayName});
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(infoWindowHtml);
	});
	overlays[overlayCategory].push(marker);
}


function switchOverlays(overlayCategory) {
	var bounds = new GLatLngBounds();
	map.clearOverlays();
	if (showConstOverlays) {
		constIcon = plainwellIcon;
	} else {
		constIcon = clearIcon;
	}
	for (var i in constOverlays) {
		var curOverlay = constOverlays[i];
		var curPoint = curOverlay.getPoint();
		bounds.extend(curPoint);
		map.addOverlay(curOverlay);
	}
	for (var i in overlays[overlayCategory]) {
		var curOverlay = overlays[overlayCategory][i];
		var curPoint = curOverlay.getPoint();
		bounds.extend(curPoint);
		map.addOverlay(curOverlay);
	}
	
	// center and zoom around the markers, then zoom out once more for good measure
	// map.setCenter(bounds.getCenter());
	// map.setZoom(map.getBoundsZoomLevel(bounds));
	// map.zoomOut();
	map.setZoom(Math.min(map.getBoundsZoomLevel(bounds), maxZoom));
	map.panTo(bounds.getCenter());
}

function mapLoad() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl())
		map.setCenter(new GLatLng(42.442905,-85.641775), 14);
		
		map.enableContinuousZoom();
		switchOverlays(initialOverlay);
	}
}




