 //<![CDATA[
    var map;
    var geocoder;
	var localSearch = new GlocalSearch();
	
	
	function toggleShowHide(szDivID, iState) // 1 visible, 0 hidden
{
    if(document.layers)	   //NN4+
    {
       document.layers[szDivID].visibility = iState ? "show" : "hide";
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var obj = document.getElementById(szDivID);
        obj.style.visibility = iState ? "visible" : "hidden";
    }
    else if(document.all)	// IE 4
    {
        document.all[szDivID].style.visibility = iState ? "visible" : "hidden";
    }
}


		

    function load() {
      if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();
        map = new GMap2(document.getElementById('map'),
{size: new GSize(710,400)});  
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(54.8, -3.57172), 5);
        map.getInfoWindow().show(); 
       
      }
    }
	
function usePointFromLocation(postcode, callbackFunction) {
	 toggleShowHide('nostores',0);
	localSearch.setSearchCompleteCallback(null, 
		function() {
			
			if (localSearch.results[0])
			{		
				var resultLat = localSearch.results[0].lat;
				var resultLng = localSearch.results[0].lng;
				var point = new GLatLng(resultLat,resultLng);
				callbackFunction(point);
			}else{
				alert('Could not find the location you specified, Please try again giving as much of the address as possible');
			}
		});	
		
	localSearch.execute(postcode + ", UK");
}
    
    function searchLocations() {
    toggleShowHide('nostores',0);
     var address = document.getElementById('addressInput').value;
     geocoder.getLatLng(address, function(latlng) {
       if (!latlng) {
         toggleShowHide('loading',0);
         alert('Could not find ' + address + ', Please try again giving as much of the address as possible' ) ;
       } else {
         searchLocationsNear(latlng);
       }
     });
   }

   function searchLocationsNear(center) {
     var radius = document.getElementById('radiusSelect').value;
     var searchUrl = 'script/getlocations.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) {
         
         toggleShowHide('loading',0);
		 toggleShowHide('nostores',1);
         map.setCenter(new GLatLng(54.8, -3.57172), 5);
          map.getInfoWindow().show(); 
          map.clearOverlays();
        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 storeid = markers[i].getAttribute('storeid');
         var distance = parseFloat(markers[i].getAttribute('distance'));
        var lat = parseFloat(markers[i].getAttribute('lat'));
        var lng = parseFloat(markers[i].getAttribute('lng'));
       var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));
         
         var marker = createMarker(point, name, address, storeid, distance, lat, lng);
         map.addOverlay(marker);
         var sidebarEntry = createSidebarEntry(marker, name, address, distance, lat, lng);
         sidebar.appendChild(sidebarEntry);
         bounds.extend(point);
       }
       
       
       
       
      
     });
     
     var radius = document.getElementById('radiusSelect').value;
     var searchUrl = 'script/getnearest.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius;
    
     GDownloadUrl(searchUrl, function(data) {
       var xml = GXml.parse(data);
       var markers = xml.documentElement.getElementsByTagName('marker');
       
       if (markers.length == 0) {
         
         
         map.setCenter(new GLatLng(54.8, -3.57172), 5);
          map.getInfoWindow().show(); 
         return;
       }
       
      for (var i = 0; i < markers.length; i++) {
        var nearestlat = parseFloat(markers[i].getAttribute('lat'));
        var nearestlng = parseFloat(markers[i].getAttribute('lng'));
      }
      map.setCenter(new GLatLng(nearestlat, nearestlng), 12);
      toggleShowHide('loading',0);
       toggleShowHide('listviewtab',1);
      });
   }
     
     
     

	var icon = new GIcon();
icon.image = "images/mapicon.png";
icon.shadow = "images/mapicon.png";
icon.iconSize = new GSize(81, 39);
icon.shadowSize = new GSize(81, 39);
icon.iconAnchor = new GPoint(19, 38);
icon.infoWindowAnchor = new GPoint(19, 38);
	
    function createMarker(point, name, address, storeid, distance, lat, lng) {
      var marker = new GMarker(point, icon);
      var html = '<div id="infowindow"><b><img src="images/budgens.gif" align="absmiddle" alt="Budgens" border="0"></b>&nbsp;&nbsp;' + name + '<hr class="dashed">' + address + '<hr class="dashed"> (' + distance.toFixed(1) + ' miles) <a href="fullstoredetails.php?storeid=' + storeid + '&lat=' + lat + '&lng=' + lng + '&KeepThis=true&TB_iframe=true&height=525&width=650" class="thickbox">Click for full store details</a><br><br></div>';
     
      GEvent.addListener(marker, 'mouseover', function() {
        marker.openInfoWindowHtml(html); tb_init('a.thickbox');  });
       
      
      
      return marker;
    }
    
   


    function createSidebarEntry(marker, name, address, distance) {
      var div = document.createElement('div');
      var html = '<b><img src="images/budgens.gif" align="absmiddle" alt="Budgens" border="0"></b>&nbsp;&nbsp;' + name + ' (' + distance.toFixed(1) + ' miles)<br/>' + address + '<hr class="dashed">';
      div.innerHTML = html;
      div.style.marginBottom = '5px'; 
      
      return div;
    }
    //]]>

