function addEvent(obj, evType, fn){
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, true);
		return true;
	} 
	else if (obj.attachEvent){
	var r = obj.attachEvent('on'+evType, fn);
		return r;
 	} 
 	else {
    	return false;
 	}
} 

addEvent(window, 'load', function() {
	
	if (GBrowserIsCompatible()) {
	
		var startIcon = new GIcon(G_DEFAULT_ICON,"http://www.google.com/intl/en_ALL/mapfiles/dd-start.png");
		var endIcon = new GIcon(G_DEFAULT_ICON,"http://www.google.com/intl/en_ALL/mapfiles/dd-end.png");
	     
		var bounds = new GLatLngBounds();
		var overlays = [];
	      
		var sidebar_table="";
	
		process_it = function(doc)  {
		
			var xmlDoc = GXml.parse(doc);
			var placemarks = xmlDoc.documentElement.getElementsByTagName("Placemark");
	          
			for (var i = 0; i < placemarks.length; i++) {
			
				var name=GXml.value(placemarks[i].getElementsByTagName("name")[0]);
				var desc=GXml.value(placemarks[i].getElementsByTagName("description")[0]);
				var coords=GXml.value(placemarks[i].getElementsByTagName("coordinates")[0]);
	
				var path = coords.split(" ");
	          
				// Is this the polyline?
				if (path.length > 1) {
					
					var points = [];
					
					for (var p=0; p<path.length-1; p++) {
					
						var bits = path[p].split(",");
						var point = new GLatLng(parseFloat(bits[1]),parseFloat(bits[0]));
					
						points.push(point);         
						bounds.extend(point);
					
						if (p==0) {
							overlays.push(new GMarker(point,startIcon));
						}
					
						if (p==path.length-2) {
							overlays.push(new GMarker(point,endIcon));
						}
					}
					
					overlays.push(new GPolyline(points));        
					
				}
				else {
	            // Not the polyline, a junction point
					sidebar_table += "<tr><td class='num'>" + (i+1) +".</td><td class='desc'>" +name + " - "+ desc +"</td></tr>";
				}
			}
			
			var map = new GMap2(document.getElementById("map"));
			
			map.addControl(new GLargeMapControl());
			map.addControl(new GMapTypeControl());
			map.addControl(new GScaleControl());
	
			var czoom = (map.getBoundsZoomLevel(bounds));
			var clat = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat()) /2;
			var clng = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng()) /2;
	        
	        map.setCenter(new GLatLng(clat,clng),czoom);
	        
			for (var j=0; j<overlays.length; j++) {
				map.addOverlay(overlays[j]);
	        }
	        
			//document.getElementById("sidebar").innerHTML = "<table valign='top'>"+sidebar_table+"</table>";
	        
		}
	
		GDownloadUrl("http://www.tulsabigwheel.com/xml/route.xml", process_it);

	}
    // display a warning if the browser was not compatible
    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }
});