	 if (GBrowserIsCompatible()) {
				      var side_bar_html = "";
				      var gmarkers = [];
				      var htmls = [];
				      var i = 0;
				      // arrays to hold variants of the info window html with get direction forms open
				      var to_htmls = [];
				      var from_htmls = [];
				
				        htmladon="<table cellspacing=0 cellpadding=0 width=280><tr><td><img src='images/mappic.jpg' align='left' height='75' width='100' style='border:1px solid #404c64;margin:5px'></td><td valign='top' style='font-family:Verdana,Arial,Helvetica, sans-serif;font-size:12px'><b>Marina Village West Apartments</b><br>3525 W. Benjamin Holt Drive <br> Stockton, CA 95219</td></table>";
				    
					var loc_icon = new GIcon();
						loc_icon.image = "images/maps/iconmap.gif";
						//icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
						loc_icon.iconSize = new GSize(30,28);
						loc_icon.shadowSize = new GSize(0, 0);
						loc_icon.iconAnchor = new GPoint(0,0);
						loc_icon.infoWindowAnchor = new GPoint(17, 18);
				    
				    
				      // A function to create the marker and set up the event window
				      function createMarker(point,name,html) {
				        var marker = new GMarker(point,loc_icon);
				
				        // The info window version with the "to here" form open
				        to_htmls[i] = html + htmladon + '<table><tr><td style="font-family:Verdana,Arial,Helvetica, sans-serif;font-size:12px">Directions: <b>To here</b> - <a href="javascript:fromhere(' + i + ')">From here</a>' +
				           '<br>Start address:<form action="javascript:getDirections()">' +
				           '<input type="text" SIZE=40 MAXLENGTH=40 name="saddr" id="saddr" value="" /><br>' +
				           '<INPUT value="Get Directions" TYPE="SUBMIT">' +
				           '<input type="hidden" id="daddr" value="'+name+"@"+ point.lat() + ',' + point.lng() + 
				           '"/></td></tr></table>';
				        // The info window version with the "to here" form open
				        from_htmls[i] = html + htmladon +'<table><tr><td style="font-family:Verdana,Arial,Helvetica, sans-serif;font-size:12px">Directions: <a href="javascript:tohere(' + i + ')">To here</a> - <b>From here</b>' +
				           '<br>End address:<form action="javascript:getDirections()">' +
				           '<input type="text" SIZE=40 MAXLENGTH=40 name="daddr" id="daddr" value="" /><br>' +
				           '<INPUT value="Get Directions" TYPE="SUBMIT">' +
				           '<input type="hidden" id="saddr" value="'+name+"@"+ point.lat() + ',' + point.lng() +
				           '"/></td></tr></table>';
				        // The inactive version of the direction info
				        html = html + htmladon + '<br>Directions: <a href="javascript:tohere('+i+')">To here</a> - <a href="javascript:fromhere('+i+')">From here</a>';
				
				        GEvent.addListener(marker, "click", function() {
				          marker.openInfoWindowHtml(html);
				        });
				        // save the info we need to use later for the side_bar
				        gmarkers[i] = marker;
				        htmls[i] = html;
				        // add a line to the side_bar html
				      //  side_bar_html += '<a href="javascript:myclick(' + i + ')">' + name + '</a><br>';
				        i++;
				        return marker;
				      }
				
				      // ===== request the directions =====
				      function getDirections() {
				        var saddr = document.getElementById("saddr").value
				        var daddr = document.getElementById("daddr").value
				        gdir.load("from: "+saddr+" to: "+daddr);
				      }
				
				
				      // This function picks up the click and opens the corresponding info window
				      function myclick(i) {
				        gmarkers[i].openInfoWindowHtml(htmls[i]);
				      }
				
				      // functions that open the directions forms
				      function tohere(i) {
				        gmarkers[i].openInfoWindowHtml(to_htmls[i]);
				      }
				      function fromhere(i) {
				        gmarkers[i].openInfoWindowHtml(from_htmls[i]);
				      }
				
				
				      // create the map
				      var map = new GMap2(document.getElementById("map"));
				      map.addControl(new GLargeMapControl());
				      map.addControl(new GMapTypeControl());
				      map.setCenter(new GLatLng(38.006511,-121.360989), 15);
				
				      // === create a GDirections Object ===
				      var gdir=new GDirections(map, document.getElementById("directions"));
				
				      // === Array for decoding the failure codes ===
				      var reasons=[];
				      reasons[G_GEO_SUCCESS]            = "Success";
				      reasons[G_GEO_MISSING_ADDRESS]    = "Missing Address: The address was either missing or had no value.";
				      reasons[G_GEO_UNKNOWN_ADDRESS]    = "Unknown Address:  No corresponding geographic location could be found for the specified address.";
				      reasons[G_GEO_UNAVAILABLE_ADDRESS]= "Unavailable Address:  The geocode for the given address cannot be returned due to legal or contractual reasons.";
				      reasons[G_GEO_BAD_KEY]            = "Bad Key: The API key is either invalid or does not match the domain for which it was given";
				      reasons[G_GEO_TOO_MANY_QUERIES]   = "Too Many Queries: The daily geocoding quota for this site has been exceeded.";
				      reasons[G_GEO_SERVER_ERROR]       = "Server error: The geocoding request could not be successfully processed.";
				      reasons[G_GEO_BAD_REQUEST]        = "A directions request could not be successfully parsed.";
				      reasons[G_GEO_MISSING_QUERY]      = "No query was specified in the input.";
				      reasons[G_GEO_UNKNOWN_DIRECTIONS] = "The GDirections object could not compute directions between the points.";
				
				      // === catch Directions errors ===
				      GEvent.addListener(gdir, "error", function() {
				        var code = gdir.getStatus().code;
				        var reason="Code "+code;
				        if (reasons[code]) {
				          reason = reasons[code]
				        } 
				
				        alert("Failed to obtain directions, "+reason);
				      });
				
				
				
				      // Read the data from example.xml
				      var request = GXmlHttp.create();
				      request.open("GET", "mapdata.xml", true);
				      request.onreadystatechange = function() {
				        if (request.readyState == 4) {
				          var xmlDoc = GXml.parse(request.responseText);
				          // obtain the array of markers and loop through it
				          var markers = xmlDoc.documentElement.getElementsByTagName("marker");
				          
				         // for (var i = 0; i < markers.length; i++) {
				            // obtain the attribues of each marker
				            var lat = parseFloat(markers[0].getAttribute("lat"));
				            var lng = parseFloat(markers[0].getAttribute("lng"));
				            var point = new GLatLng(lat,lng);
				            var html = markers[0].getAttribute("html");
				            var label = markers[0].getAttribute("label");
				            // create the marker
				            var marker = createMarker(point,label,html);
				            map.addOverlay(marker);
				       //   }
				          // put the assembled side_bar_html contents into the side_bar div
				       //   document.getElementById("side_bar").innerHTML = side_bar_html;
				        }
				      }
				      request.send(null);
				    }
				
				    else {
				      alert("Sorry, the Google Maps API is not compatible with this browser");
				    }
				
				    // Thanks To.
				    // Blackpool Community Church Javascript Team
				    // http://www.commchurch.freeserve.co.uk/   
				    // http://www.econym.demon.co.uk/googlemaps/
				
				    //]]>	