    var googlemap;
    var geocoder;

    function load() {
      if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();
        googlemap = new GMap2(document.getElementById('googlemap'));
        googlemap.addControl(new GSmallMapControl());
        googlemap.addControl(new GMapTypeControl());
        googlemap.setCenter(new GLatLng(51.5, -0), 12);
      }
    }

   function searchLocations() {
     var googleaddress = document.getElementById('pharmaddressInput').value;
     googleaddress='England, ' +googleaddress;
	 geocoder.getLatLng(googleaddress, function(latlng) {
      if (!latlng) {
         alert(googleaddress + ' not found');
       } else {
         searchLocationsNear(latlng);
       }
     });
   }

   function searchLocationsNear(center) {
     var radius = document.getElementById('radiusSelect').value;
     var searchUrl = 'http://www.cliniserv.com/cms365/phpsqlsearch_genxml.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius + '&sid=' + Math.random();
     	 GDownloadUrl(searchUrl, function(data) {
	 var xml = GXml.parse(data);
     	  var markers = xml.documentElement.getElementsByTagName('marker');
	 googlemap.clearOverlays();
       var sidebar = document.getElementById('sidebar');
       sidebar.innerHTML = '';
       if (markers.length == 0) {
         sidebar.innerHTML = 'Sorry there are no Pharmacy Partners close to your location.';
         googlemap.setCenter(new GLatLng(51.5, -0), 12);
         return;
       }

       var bounds = new GLatLngBounds();
       for (var i = 0; i < markers.length; i++) {
         var name = markers[i].getAttribute('name');
         var addressA = markers[i].getAttribute('addressA');
         //var addressA = markers[i].getAttribute('addressA');
         var addressB = markers[i].getAttribute('addressB');
         var town = markers[i].getAttribute('town');
         var county = markers[i].getAttribute('county');
         var postcode = markers[i].getAttribute('postcode');
         var telephone = markers[i].getAttribute('telephone');
         var bookingcal = markers[i].getAttribute('BookingCalendarcom');
         var disabled = markers[i].getAttribute('disabled');
         var sys_companyid = markers[i].getAttribute('sys_companyid');
         var distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('long')));
         var marker = createMarker(point, name, addressA,addressB, postcode);
         googlemap.addOverlay(marker);
         var sidebarEntry = createSidebarEntry(marker, name, addressA,addressB, distance,postcode,telephone,bookingcal);
         sidebar.appendChild(sidebarEntry);
         bounds.extend(point);
       }
       googlemap.setCenter(bounds.getCenter(), googlemap.getBoundsZoomLevel(bounds));
     });
   }

    function createMarker(point, name, googleaddressA,googleaddressB,  postcode) {
      var marker = new GMarker(point);
      var html = '<b>' + name + '</b> <br/>' + googleaddressA + '<br/>' + googleaddressB + '<br/>' + postcode;
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }

    function createSidebarEntry(marker, name, googleaddressA,googleaddressB,  distance,postcode,telephone,bookingcal) {
      var div = document.createElement('div');
      var html = '<b>' + name + '</b> (' + distance.toFixed(1) + 'miles)<br/>' + googleaddressA + '<br/>' + googleaddressB + '<br/>'  + postcode + '<br/>' + telephone + '<br/>' + '<a href="?sectionID=5&Track=/5&articleID=8&bcal=' + bookingcal + '"><img src="/cms365/images/newbooksmall.png"></a><br/><hr>';
      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;
    }

