function load() {
	if (GBrowserIsCompatible()) {
		var gmarkers = [];
		var htmls = "";
		var i = 0;
		var map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
	    map.addControl(new GMapTypeControl());
	    // center set to st. louis (38.624381,-90.32959), 10)
	    map.setCenter(new GLatLng(0,0), 0);	      	
   	   // base icons
    	var baseIcon = new GIcon();
     	baseIcon.iconSize = new GSize (12,20);
     	baseIcon.shadow = "http://graphicdesignr.net/mm/shadow.png";
     	baseIcon.shadowSize = new GSize(22,20);
      	baseIcon.iconAnchor = new GPoint(6,20);
      	baseIcon.infoWindowAnchor = new GPoint (6,1);
      	baseIcon.infoShadowAnchor = new GPoint(13,13);
           // array of customized icons
	   	var gicons = [];
     	gicons["less25"] = new GIcon(baseIcon, "http://graphicdesignr.net/mm/white.png");
      	gicons["less50"] = new GIcon(baseIcon, "http://graphicdesignr.net/mm/yellow.png");
      	gicons["less75"] = new GIcon(baseIcon, "http://graphicdesignr.net/mm/blue.png");
      	gicons["less100"]= new GIcon(baseIcon, "http://graphicdesignr.net/mm/green.png");
      	gicons["more"] = new GIcon(baseIcon, "http://graphicdesignr.net/mm/red.png");
      	gicons["unknown"] = new GIcon(baseIcon, "http://graphicdesignr.net/mm/black.png");  
	    // function creates marker and window
	    function createMarker(point, paper, parent, cuts, date, layout, iconSize, description, cuts2, date2, description2, cuts3, date3, description3) {
	    	var marker = new GMarker(point,gicons[iconSize]);
	    	GEvent.addListener(marker, "click", function() {
				if (layout == "1") {
	      			var html = '<table width="250" border="0" cellspacing="0" cellpadding="0"><tr><td><h3>' + paper + '</h3></td></tr><tr><td width="155"><i>' + parent + '</i></td></tr><tr><td><b>Positions cut: </b>' + cuts + '</td></tr><tr><td><b>Announced:</b> '+ date + '</td></tr><tr><td>' + description + '</td></tr></table>';
	      			marker.openInfoWindowHtml(html);
	      		} else if (layout == "2") {
	      			var html = '<table width="250" border="0" cellspacing="0" cellpadding="0"><tr><td><h3>' + paper + '</h3></td></tr><tr><td width="155"><i>' + parent + '</i></td></tr><tr><td><b>Positions cut: </b>' + cuts + '</td></tr><tr><td><b>Announced:</b> '+ date + '</td></tr><tr><td>' + description + '</td></tr><tr><td><b>Positions cut: </b>' + cuts2 + '</td></tr><tr><td><b>Announced:</b> '+ date2 + '</td></tr><tr><td>' + description2 + '</td></tr></table>';
	      			marker.openInfoWindowHtml(html);
	      		} else if (layout == "3") {
	      			var html = '<table width="250" border="0" cellspacing="0" cellpadding="0"><tr><td><h3>' + paper + '</h3></td></tr><tr><td width="155"><i>' + parent + '</i></td></tr><tr><td><b>Positions cut: </b>' + cuts + '</td></tr><tr><td><b>Announced:</b> '+ date + '</td></tr><tr><td>' + description + '</td></tr><tr><td><b>Positions cut: </b>' + cuts2 + '</td></tr><tr><td><b>Announced:</b> '+ date2 + '</td></tr><tr><td>' + description2 + '</td></tr><tr><td><b>Positions cut: </b>' + cuts3 + '</td></tr><tr><td><b>Announced:</b> '+ date3 + '</td></tr><tr><td>' + description3 + '</td></tr></table>';
	      			marker.openInfoWindowHtml(html);
	      		}
			});
	      	return marker;
		}
				
		function myclick(i) {
			GEvent.trigger(gmarkers[i], "click");
		}
	    var bounds = new GLatLngBounds();
	    // get xml file -- double-check link
	    GDownloadUrl("http://www.fengduan.org/wp-content/uploads/2008/04/cuts2008.xml", 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 paper = markers[i].getAttribute("paper");
	      		var parent = markers[i].getAttribute("parent");
	      		var cuts = markers[i].getAttribute("cuts");
	      		var date = markers[i].getAttribute("date");
	      		var layout = markers[i].getAttribute("layout");
	      		var iconSize = markers[i].getAttribute("iconSize");
	      		var description = markers[i].getAttribute("description");
	      		var cuts2 = markers[i].getAttribute("cuts2");
	      		var date2 = markers[i].getAttribute("date2");
	      		var description2 = markers[i].getAttribute("description2");
	      		var cuts3 = markers[i].getAttribute("cuts3");
	      		var date3 = markers[i].getAttribute("date3");
	      		var description3 = markers[i].getAttribute("description3");	      			var marker = createMarker(point, paper, parent, cuts, date, layout, iconSize, description, cuts2, date2, description2, cuts3, date3, description3);
	      		map.addOverlay(marker);
	      		bounds.extend(point);
	      	}
	      	map.setZoom(map.getBoundsZoomLevel(bounds));
			map.setCenter(bounds.getCenter());
		});
	} else {
		alert("Sorry, but your browser is not compatible with Google Maps.");
	}
}