// getCenter() is documented in GMap API tutorial.  It's used to find lat/long for something can get to on map
var geomap=0;
var blue_icon=0;
var brown_icon=0;
var green_icon=0;
var purple_icon=0;
var red_icon=0;
var blue_dot_icon=0;
var green_dot_icon=0;
var red_dot_icon=0;
var lastmarker=0;
var selectedmarker=0;
var selectedmarker_icon=0;

function googlemap_load() {
	if (!GBrowserIsCompatible()) {
		alert("Sorry, this browser does not support Google Maps.")}
	else {
		geomap = new GMap2(document.getElementById("map"));
		geomap.addControl(new GLargeMapControl());	// upper left slider zoom; GSmallMapControl same except slider
		geomap.addControl(new GMapTypeControl());	// upper right "map/satellite/hybrid" box
		geomap.addMapType(G_SATELLITE_3D_MAP);		// Enable the Earth map type
		geomap.setCenter(new GLatLng(11.2, 7.7), 2);	// last param for zoom level, goes to 12 or 13?
		define_icons();								// set up all colored marker icons
		do_allmarkers();							// place all markers, do_allmarkers() defined on specific page
	}
}

function show_longlat (){
	alert("current center is " + geomap.getCenter());	// for purposes of locating lat/long when creating do_marker() coordinates
}

function bump_to_top(marker,b) {	// see http://econym.googlepages.com/zindex.htm for more about zIndexProcess
	return 100000000;				// high number puts marker on top (100,000,000 is enough, 3,000,000 is not!)
}

// do_marker() creates markers at lat/long with descrip as name, url_name for click action, icon_type is marker type
//		"selected" param pre-defines a specific marker - gets colored red, but will revert when selection changes
function do_marker (descrip, url_dir, homegallery, url_name, latitude, longitude, icon_type) {
	// latitude/longitude = 0,0  means this item has no location on map, but if this file is the selected file,
	//    we still must remember dir and homegallery so we'll go back to the right gallery with "View Gallery"
	if ((latitude == 0) && (longitude ==0)){	
		if (selectedmarker_file == url_name) {
			selectedmarker_dir = url_dir;				// remember directory this gallery is in
			selectedmarker_homegallery = homegallery;	// remember where to go when "view gallery" selected
		}
		return;											// no location on map, so just return;
	}
	var point = new GLatLng(latitude, longitude)
	if (selectedmarker_file == url_name) {	// move marker to top so it overlays all markers that would overlap
		var marker = new GMarker(point, {title: descrip, icon:icon_type, zIndexProcess:bump_to_top});
	}
	else
		var marker = new GMarker(point, {title: descrip, icon:icon_type });
	geomap.addOverlay(marker);
	if (selectedmarker_file == url_name) { 
		selectedmarker_dir = url_dir;				// remember directory this gallery is in
		selectedmarker_homegallery = homegallery;	// remember where to go when "view gallery" selected
		marker.setImage(red_icon.image);			// mark this marker red
		selectedmarker = marker;					// remember which marker has been changed to red
		selectedmarker_file = url_name;				// remember url name
		selectedmarker_icon = icon_type;			// remember original color
		geomap.setCenter(point, 3);					// put selected marker at center
	}
	//GEvent.addListener(marker, "mouseover", function() {	// Doesn't work well, text and bubble sometimes mismatch
	//  textbox.location = url_name})						// put text bubble at marker location
															//   Also, don't change text box on mouseover, or it might
															// change when user mouses up to click on link.
	GEvent.addListener(marker, "click", function() {
		textbox.location = url_dir + url_name + "0.htm";			// Change text box
		if (selectedmarker) {
			selectedmarker.setImage(selectedmarker_icon.image);		// set previously selected marker back to default
		}
		
		selectedmarker = marker;					// remember which marker has been changed to red
		selectedmarker_dir = url_dir;				// remember directory this gallery is in
		selectedmarker_homegallery = homegallery;	// remember where to go when "view gallery" selected
		selectedmarker_file = url_name;				// remember url name
		selectedmarker_icon = icon_type;			// remember original color

		if (lastmarker == marker) {  
			geomap.setCenter(new GLatLng(latitude, longitude));		// on second click, center image.
			marker.setImage(red_icon.image);						// use red marker to show selection
		}
		lastmarker = marker;							// remember that this was the last marker
	});
	GEvent.addListener(marker, "mouseover", function() {
		marker.setImage(red_icon.image);
	});
	GEvent.addListener(marker, "mouseout", function() {
		if (marker != selectedmarker) {  				// change only if this marker is not the selected marker (red)
			marker.setImage(icon_type.image);
		}
	});
}

function define_icons() {
	// Create blue marker icon
	blue_icon = new GIcon();
	blue_icon.image = "http://www.collectivewisdominitiative.org/place/art/mm_20_blue.png";
	blue_icon.shadow = "http://www.collectivewisdominitiative.org/place/art/mm_20_shadow.png";
	blue_icon.iconSize = new GSize(12, 20);
	blue_icon.shadowSize = new GSize(22, 20);
	blue_icon.iconAnchor = new GPoint(6, 20);
	blue_icon.infoWindowAnchor = new GPoint(5, 1);

	// Create purple marker icon
	brown_icon = new GIcon();
	brown_icon.image = "http://www.collectivewisdominitiative.org/place/art/mm_20_brown.png";
	brown_icon.shadow = "http://www.collectivewisdominitiative.org/place/art/mm_20_shadow.png";
	brown_icon.iconSize = new GSize(12, 20);
	brown_icon.shadowSize = new GSize(22, 20);
	brown_icon.iconAnchor = new GPoint(6, 20);
	brown_icon.infoWindowAnchor = new GPoint(5, 1);

	// Create green marker icon
	green_icon = new GIcon();
	green_icon.image = "http://www.collectivewisdominitiative.org/place/art/mm_20_green.png";
	green_icon.shadow = "http://www.collectivewisdominitiative.org/place/art/mm_20_shadow.png";
	green_icon.iconSize = new GSize(12, 20);
	green_icon.shadowSize = new GSize(22, 20);
	green_icon.iconAnchor = new GPoint(6, 20);
	green_icon.infoWindowAnchor = new GPoint(5, 1);

	// Create purple marker icon
	purple_icon = new GIcon();
	purple_icon.image = "http://www.collectivewisdominitiative.org/place/art/mm_20_purple.png";
	purple_icon.shadow = "http://www.collectivewisdominitiative.org/place/art/mm_20_shadow.png";
	purple_icon.iconSize = new GSize(12, 20);
	purple_icon.shadowSize = new GSize(22, 20);
	purple_icon.iconAnchor = new GPoint(6, 20);
	purple_icon.infoWindowAnchor = new GPoint(5, 1);

	// Create red marker icon
	red_icon = new GIcon();
	red_icon.image = "http://www.collectivewisdominitiative.org/place/art/mm_20_red.png";
	red_icon.shadow = "http://www.collectivewisdominitiative.org/place/art/mm_20_shadow.png";
	red_icon.iconSize = new GSize(12, 20);
	red_icon.shadowSize = new GSize(22, 20);
	red_icon.iconAnchor = new GPoint(6, 20);
	red_icon.infoWindowAnchor = new GPoint(5, 1);

	// Create blue DOT marker icon
	blue_dot_icon = new GIcon();
	blue_dot_icon.image = "http://www.collectivewisdominitiative.org/place/art/mm_10_blue_dot.png";
	blue_dot_icon.shadow = "";
	blue_dot_icon.iconSize = new GSize(10, 10);
	blue_dot_icon.shadowSize = new GSize(0, 0);   // no shadow
	blue_dot_icon.iconAnchor = new GPoint(5, 5);  // anchored at center instead of bottom which would be (5,10)
	blue_dot_icon.infoWindowAnchor = new GPoint(5, 1);

	// Create green DOT marker icon
	green_dot_icon = new GIcon();
	green_dot_icon.image = "http://www.collectivewisdominitiative.org/place/art/mm_10_green_dot.png";
	green_dot_icon.shadow = "";
	green_dot_icon.iconSize = new GSize(10, 10);
	green_dot_icon.shadowSize = new GSize(0, 0);   // no shadow
	green_dot_icon.iconAnchor = new GPoint(5, 5);  // anchored at center instead of bottom which would be (5,10)
	green_dot_icon.infoWindowAnchor = new GPoint(5, 1);

	// Create red DOT marker icon
	red_dot_icon = new GIcon();
	red_dot_icon.image = "http://www.collectivewisdominitiative.org/place/art/mm_10_red_dot.png";
	red_dot_icon.shadow = "";
	red_dot_icon.iconSize = new GSize(10, 10);
	red_dot_icon.shadowSize = new GSize(0, 0);   // no shadow
	red_dot_icon.iconAnchor = new GPoint(5, 5);  // anchored at center instead of bottom which would be (5,10)
	red_dot_icon.infoWindowAnchor = new GPoint(5, 1);
}

