    
	var gMarkers = []; 																// array of markers
	var labels = [];
	var phone=[];
	var addr = [];
	var orderLink =[];
	var htmlStuff= [];

	function createLinks(restName, restAddr,index){
		htmlStuff[index] = ""; 														// initialize
		htmlStuff[index] += '<b>'+restName +'</b><br>' 								// Rest Name. Bold 
		htmlStuff[index] += restAddr; 												// Address
		htmlStuff[index] += '<br><a href="javascript:myclick(' + index + ')">Map</a>';
		htmlStuff[index] += "  ";
		htmlStuff[index] += '<a href="' + orderLink[index] + '"' + '>Order Online</a>';
		htmlStuff[index] += '<br><br>';
	}

   function myclick(index){																// Call Back when the user clcks on the link
	gMarkers[index].openInfoWindowHtml(htmlStuff[index]);
	}

	function startOrder(index){
	alert(orderLink[index]);
	Launch(orderLink[index]);
	}

	function startMap(theMapArea,dataURL) {
	   if (GBrowserIsCompatible()) {
			var map = new GMap2(document.getElementById(theMapArea));  				// Get the map id
			var bounds = new GLatLngBounds();										// bounds define the rectangular map area
			var zoom = 0;
			map.setCenter(new GLatLng(0.0, 0.0), 0); 								// Necessary to set a dummy center
			map.addControl(new GLargeMapControl());  								// Zoom Control. For Small size, use GSmallMapControl
			GDownloadUrl(dataURL, function(data, responseCode) {					// Get the XML file with the data
			  var xml = GXml.parse(data); 											// get data from the file
			  var markers = xml.documentElement.getElementsByTagName("marker");		// open the filw with root at location node

				  for (var i = 0; i < markers.length; i++) {						// go through each element under the root
					   var lat=parseFloat(markers[i].getAttribute("lat"));			// Get the lattitude coordinates
					   var lng=parseFloat(markers[i].getAttribute("lng"));			// Get the Longitude
    			       var point = new GLatLng(lat,lng);							// Make a google point object out of the coordinate

					   labels[i] 	= markers[i].getAttribute("label");				// Get the Location Data
					   phone[i] 	= markers[i].getAttribute("phone");
					   addr[i] 		= markers[i].getAttribute("addr");
					   orderLink[i]	= markers[i].getAttribute("startOrder");

					   createLinks(labels[i],addr[i],i);

					   bounds.extend(point);										// bounds keeps track of the square as each point is added
					   gMarkers[i] = new GMarker(point);							// Create the marker and add it to the array
					 map.addOverlay(gMarkers[i]);									// Add the marker into the map image
					document.getElementById("list").innerHTML += htmlStuff[i];	// Update the link on the side
					}
					zoom=map.getBoundsZoomLevel(bounds);							// Get the zoom level AFTER all markers are added
					map.setCenter(bounds.getCenter(), zoom);						// Set the center of the map to show all markers
			});
		} /* if browser is compatible */
		 else {
			  alert("Sorry, the Google Maps API is not compatible with your browser");
			}
	}

