    //<![CDATA[
    var map;
    var geocoder;

    function load() {
      if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();
        map = new GMap2(document.getElementById('map'));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(33.998027,-84.287109), 8);
	searchLocations();
      }
    }

   function searchLocations() {
     var address = document.getElementById('addressInput').value;
     geocoder.getLatLng(address, function(latlng) {
       if (!latlng) {
         alert(address + ' not found');
       } else {
	 searchLocationsNear(latlng);
       }
     });
   }

   function searchLocationsNear(center) {
     var radius = document.getElementById('radiusSelect').value;
     var ctype = document.getElementById('ctype').value;
     var searchUrl = '../includes/phpsqlsearch_genxml.php?lat=' + center.lat() + '&ctype=' + ctype + '&lng=' + center.lng() + '&radius=' + radius;
     GDownloadUrl(searchUrl, function(data) {
       var xml = GXml.parse(data);
       var markers = xml.documentElement.getElementsByTagName('marker');
       map.clearOverlays();

       var sidebar = document.getElementById('sidebar');
       sidebar.innerHTML = '';
       if (markers.length == 0) {
         sidebar.innerHTML = 'No results found.';
         map.setCenter(new GLatLng(33.998027,-84.287109), 8);
         return;
       }

       var bounds = new GLatLngBounds();
       for (var i = 0; i < markers.length; i++) {
         var name = markers[i].getAttribute('name');
         var address = markers[i].getAttribute('address');
         var city = markers[i].getAttribute('city');
         var state = markers[i].getAttribute('state');
         var zip = markers[i].getAttribute('zip');
         var phone = markers[i].getAttribute('phone');
         var brand = markers[i].getAttribute('brand');
         var lat = markers[i].getAttribute('lat');
         var lng = markers[i].getAttribute('lng');
         var distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));
         
         var marker = createMarker(point, name, address, city, state, zip, phone, brand);
         map.addOverlay(marker);
         var sidebarEntry = createSidebarEntry(marker, name, address, city, state, zip, phone, brand, lat, lng, distance);
         sidebar.appendChild(sidebarEntry);
         bounds.extend(point);
       }
       map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
     });
   }

    function createMarker(point, name, address, city, state, zip, phone, brand) {
      var iconRed = new GIcon(); 
      iconRed.image = 'http://labs.google.com/ridefinder/images/mm_20_red.png';
      iconRed.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
      iconRed.iconSize = new GSize(12, 20);
      iconRed.shadowSize = new GSize(22, 20);
      iconRed.iconAnchor = new GPoint(6, 20);
      iconRed.infoWindowAnchor = new GPoint(5, 1);

      var iconBlue = new GIcon(); 
      iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
      iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
      iconBlue.iconSize = new GSize(12, 20);
      iconBlue.shadowSize = new GSize(22, 20);
      iconBlue.iconAnchor = new GPoint(6, 20);
      iconBlue.infoWindowAnchor = new GPoint(5, 1);

      var iconPacer = new GIcon(); 
      iconPacer.image = 'http://www.pacerfuels.com/images/Icons/PacerLogo.png';
      iconPacer.shadow = 'http://labs.google.com/ridefinder/images/no_shadow.png';
      iconPacer.iconSize = new GSize(22, 22);
      iconPacer.shadowSize = new GSize(22, 20);
      iconPacer.iconAnchor = new GPoint(6, 20);
      iconPacer.infoWindowAnchor = new GPoint(5, 1);

      var iconChevron = new GIcon(); 
      iconChevron.image = 'http://www.pacerfuels.com/images/Icons/Chevron.png';
      iconChevron.shadow = 'http://labs.google.com/ridefinder/images/no_shadow.png';
      iconChevron.iconSize = new GSize(22, 19);
      iconChevron.shadowSize = new GSize(22, 20);
      iconChevron.iconAnchor = new GPoint(6, 20);
      iconChevron.infoWindowAnchor = new GPoint(5, 1);

      var iconTexaco = new GIcon(); 
      iconTexaco.image = 'http://www.pacerfuels.com/images/Icons/Texaco.png';
      iconTexaco.shadow = 'http://labs.google.com/ridefinder/images/no_shadow.png';
      iconTexaco.iconSize = new GSize(22, 25);
      iconTexaco.shadowSize = new GSize(22, 20);
      iconTexaco.iconAnchor = new GPoint(6, 20);
      iconTexaco.infoWindowAnchor = new GPoint(5, 1);

      var iconMarathon = new GIcon(); 
      iconMarathon.image = 'http://www.pacerfuels.com/images/Icons/Texaco.png';
      iconMarathon.shadow = 'http://labs.google.com/ridefinder/images/no_shadow.png';
      iconMarathon.iconSize = new GSize(12, 20);
      iconMarathon.shadowSize = new GSize(22, 20);
      iconMarathon.iconAnchor = new GPoint(6, 20);
      iconMarathon.infoWindowAnchor = new GPoint(5, 1);

      var iconBP = new GIcon(); 
      iconBP.image = 'http://www.pacerfuels.com/images/Icons/BP.png';
      iconBP.shadow = 'http://labs.google.com/ridefinder/images/no_shadow.png';
      iconBP.iconSize = new GSize(22, 22);
      iconBP.shadowSize = new GSize(22, 20);
      iconBP.iconAnchor = new GPoint(6, 20);
      iconBP.infoWindowAnchor = new GPoint(5, 1);

      var iconUB = new GIcon(); 
      iconUB.image = 'http://www.pacerfuels.com/images/Icons/Unbranded.png';
      iconUB.shadow = 'http://labs.google.com/ridefinder/images/no_shadow.png';
      iconUB.iconSize = new GSize(22, 22);
      iconUB.shadowSize = new GSize(22, 20);
      iconUB.iconAnchor = new GPoint(6, 20);
      iconUB.infoWindowAnchor = new GPoint(5, 1);

      var customIcons = [];
      customIcons["Chevron"] = iconChevron;
      customIcons["Texaco"] = iconTexaco;
      customIcons["Marathon"] = iconMarathon;
      customIcons["BP"] = iconBP;
      customIcons["None"] = iconPacer;
      customIcons["Unbranded"] = iconUB;

      var marker = new GMarker(point, customIcons[brand]);
      var html = '<b>' + name + '</b><br>' + address + '<br />' + city + ', ' + state + ' ' + zip + '<br />' + phone + ' (<b>' + brand + '</b>)<br /><a class="links" href="http://maps.google.com/maps?saddr=' + address + ' ' + city + ', ' + state + ' ' + zip + '" title="Click for Driving Directions" target="_blank">Driving Directions</a>';
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }

    function createSidebarEntry(marker, name, address, city, state, zip, phone, brand, lat, lng, distance) {
      var div = document.createElement('div');
      var htmlName = '';
      htmlName += '<b>' + name + '</b> (' + distance.toFixed(1) + ' miles) ';
      htmlName += '<br>' + address + '<br>' + city + ', ' + state + ' ' + zip + '<br>' + phone + ' (<b>' + brand + '</b>)';
      htmlName += '<br>' + '<a class="links" href="http://maps.google.com/maps?saddr=' + address + ' ' + city + ', ' + state + ' ' + zip + '" title="Click for Driving Directions" target="_blank">Driving Directions</a>';
      div.innerHTML = htmlName;
      div.style.cursor = 'pointer';
      div.style.marginBottom = '5px';
      GEvent.addDomListener(div, 'click', function() {
        GEvent.trigger(marker, 'click');
      });
      GEvent.addDomListener(div, 'mouseover', function() {
        div.style.backgroundColor = '#eee';
      });
      GEvent.addDomListener(div, 'mouseout', function() {
        div.style.backgroundColor = '#fff';
      });
      return div;
    }
    //]]>