//<![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(-26.201452,28.045488), 8);
			        
			         var address = 'johannesburg';
			     geocoder.getLatLng(address, function(latlng) {
			       if (!latlng) {
			         alert(address + ' not found');
			       } else {
			         searchLocationsNear(latlng);
			       }
			     });
			     
			      }
			    }
			
			   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 searchUrl = 'map/phpsqlsearch_genxml.php?lat=' + center.lat() + '&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 = '<div class="error" style="margin-right:10px;">No results found</div>';
			        map.setCenter(new GLatLng(-26.201452,28.045488), 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 dealer_id = markers[i].getAttribute('dealer_id');
			         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, dealer_id);
			         map.addOverlay(marker);
			         var sidebarEntry = createSidebarEntry(marker, name, address, distance, dealer_id);
			         sidebar.appendChild(sidebarEntry);
			         bounds.extend(point);
			       }
			       map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
			     });
			   }
			
			    function createMarker(point, name, address, dealer_id) {
			      var marker = new GMarker(point);
			      var html = '<strong><a href="bcard.php?id=' + dealer_id + '" target="_blank"  onclick="bcard(this.href); return false;">' + name + '</a></strong> <br/>' + address + '<div class="meta "><a href="bcardfull.php?id=' + dealer_id + '" class="quiet">View full details</a></div>';
			      GEvent.addListener(marker, 'click', function() {
			        marker.openInfoWindowHtml(html);
			      });
			      return marker;
			    }
			
			    function createSidebarEntry(marker, name, address, distance, dealer_id) {
			      var div = document.createElement('div');
			      var html = '<div class="homelisting"><div class="bcards"><a href="bcard.php?id=' + dealer_id + '" target="_blank"   onclick="bcard(this.href); return false;">View as Business Card</a> </div><h3>' + name + ' <span>(' + distance.toFixed(1) + ')<span> </h3>  ' + address + '</div> ';
			      div.innerHTML = html;
			      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;
			    }
			    //]]>
