function createMarker(point, data) {
  var marker = new GMarker(point);
  GEvent.addListener(marker, "click", function() {
		var tpl = "<font size=1 face=verdana><b>Barcode:</b> " + data.getAttribute("barcode") + "<br><b>State:</b> " + data.getAttribute("state") + "<br><b>County/Parish:</b> " + data.getAttribute("parish") + "<br><b>Family:</b> " + data.getAttribute("family") + "<br><b>Species:</b> " + data.getAttribute("genus") + " " + data.getAttribute("species") + "<br><b>Coords:</b> (" + data.getAttribute("lat") + "," + data.getAttribute("lng") + ")</font>";
    marker.openInfoWindowHtml(tpl);
  });
  return marker;
}


//var geoXml = new GGeoXml("http://blog.michaelgiddens.com/STATES.kml");

function GoogleMap() {
	
	if (reference != '') {
		if (GBrowserIsCompatible()) {
			var map = new GMap2(document.getElementById("google_map"));				
			map.addControl(new GLargeMapControl());
			map.addControl(new GMapTypeControl());
			map.setCenter(new GLatLng(38, -100), 4);
//			map.enableScrollWheelZoom();   
	
	//	  map.addOverlay(geoXml);
	
			GEvent.addListener(map, "dblclick", function() {
				map.zoomIn();
			});
	
			GDownloadUrl("google_map_data.php?reference=" + reference, function(data, responseCode) {
				var xml = GXml.parse(data);
				var markers = xml.documentElement.getElementsByTagName("marker");
				for (var i = 0; i < markers.length; i++) {
				
					var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
																	parseFloat(markers[i].getAttribute("lng")));
	
					var newMarker = new GMarker(point);
					map.addOverlay(createMarker(point, markers[i]));
				
				}
			});		
		}
	} else {
		document.getElementById("google_map").className = '';
	}
}