addLoadEvent(partyOn);

function partyOn() {
	if (!GBrowserIsCompatible()) { return; }
	if (!document.getElementById("events")) { return; }

	var eventsdiv = document.getElementById("events");

	var mapdiv = document.createElement("div");
	mapdiv.setAttribute("id","map");

	eventsdiv.parentNode.insertBefore(mapdiv,eventsdiv);

	//embed Open Street Map tiles
	var copyOSM = new GCopyrightCollection("<a href=\"http://www.openstreetmap.org/\">OpenStreetMap</a>");
	copyOSM.addCopyright(new GCopyright(1, new GLatLngBounds(new GLatLng(-90,-180), new GLatLng(90,180)), 0, " "));

	var tilesMapnik = new GTileLayer(copyOSM, 1, 17, {tileUrlTemplate: 'http://tile.openstreetmap.org/{Z}/{X}/{Y}.png'});
	var mapMapnik = new GMapType([tilesMapnik],G_NORMAL_MAP.getProjection(),"Map");

	var gmap = new GMap2(mapdiv,{ mapTypes: [mapMapnik, G_SATELLITE_MAP] });
	var point = new GLatLng(30.264183,-97.742035)
	gmap.addControl(new GLargeMapControl());
	gmap.addControl(new GMapTypeControl());
    gmap.setCenter(point, 15);
    gmap.panTo(point);

	var icon = new GIcon();
	icon.image = "http://adactio.com/extras/austin/images/shiner.png";
	icon.iconSize = new GSize(50, 27);
	icon.iconAnchor = new GPoint(25, 12);
	icon.infoWindowAnchor = new GPoint(25, 12);

	function createMarker(point) {
		var marker = new GMarker(point,icon);
		GEvent.addListener(marker, "click", function() {
			marker.showMapBlowup(0);
		});
		return marker;
	}

	var events = eventsdiv.getElementsByTagName("li");
	for (var i=0; i<events.length; i++) {
		if (events[i].className.match("vevent")) {
			events[i].onclick = function() {
	
				highlightItem(this);
	
				var abbrs = this.getElementsByTagName("abbr");
				for (var j=0; j<abbrs.length; j++) {
					if (abbrs[j].className.match("geo")) {
						var degrees = abbrs[j].getAttribute("title").split(";");
					}
				}
				if (degrees) {
					gmap.clearOverlays();
					var lat = parseFloat(degrees[0]);
					var lon = parseFloat(degrees[1]);
                	var point = new GLatLng(lat, lon);
					var marker = createMarker(point);
					gmap.addOverlay(marker);
					gmap.panTo(point);
				}
			};
		}
	}

	function highlightItem(listitem) {
		var events = eventsdiv.getElementsByTagName("li");
		for (var i=0; i<events.length; i++) {
			if (events[i] == listitem) {
				events[i].style.color = '#930';
			} else {
				events[i].style.color = '#333';
			}
		}
	}

}