
    var map;
    var map2;
    var geocoder;
    var localSearch = new GlocalSearch();
    var league = 3;




    var icons = [];

    for (i=0;i<=10;i++)
    {
      icons[i]=new GIcon();

      icons[i].image = "marker" + i + ".png";
      icons[i].iconSize = new GSize(32, 32);
      icons[i].iconAnchor = new GPoint(32, 32);
      icons[i].infoWindowAnchor = new GPoint(16, 32);
    }


    function load() {
      if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();
        map = new GMap2(document.getElementById('map'));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        //map.setMapType(G_HYBRID_MAP);
        map.setCenter(new GLatLng(54, -3.7), 6);

        map2 = new GMap2(document.getElementById('map2'));
        map2.addControl(new GSmallZoomControl());
        map2.setMapType(G_SATELLITE_MAP);
        map2.setCenter(new GLatLng(51.5557723742629, -0.2794500395134386), 15);

      }
    }

   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, league) {
     //var radius = document.getElementById('radiusSelect').value;
     var radius = 800;
     //var league = 2;
     var searchUrl = 'search_stores.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius + '&league=' + league;
     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(54, -3.7), 6);
         return;
       }

       var caption = document.getElementById('map_caption');
       caption.innerHTML = '<b><u>' + markers[0].getAttribute('name') + '</u><br>'+ markers[0].getAttribute('address') + '</b>';


       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 distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));

        var icontype = parseInt(markers[i].getAttribute('icontype'));



         var marker = createMarker(point, name, address, icontype);



         map.addOverlay(marker);
         var sidebarEntry = createSidebarEntry((i+1), marker, name, address, distance);
         sidebar.appendChild(sidebarEntry);
         bounds.extend(point);
       }
       map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));


       map2.setCenter(new GLatLng(parseFloat(markers[0].getAttribute('lat')),
                                 parseFloat(markers[0].getAttribute('lng'))),16);
     });
   }

    function createMarker(point, name, address, icontype) {
      var marker = new GMarker(point, icons[icontype]);
      var html = '<b>' + name + '</b> <br/>' + address;
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }

    function createSidebarEntry(index, marker, name, address, distance) {
      var div = document.createElement('div');
      var html = '<b>' + index +'. ' + name + '</b> (' + distance.toFixed(1) + ' m)<br/>' + address;
      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 = '#222222';
        div.style.color = 'yellow';
      });
      GEvent.addDomListener(div, 'mouseout', function() {
        div.style.backgroundColor = '#000000';
        div.style.color = '#fff';
      });
      return div;
    }


    function usePointFromPostcode(postcode, callbackFunction) {

     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("Postcode not found!");
      }
    });

    localSearch.execute(postcode + ", UK");
   }

   function placeMarkerAtPoint(point)
   {
	var marker = new GMarker(point,icon);
	map.addOverlay(marker);

   }


    function toggleLeague(evt) {
		evt = (evt) ? evt : event;
		var target = (evt.target) ? evt.target : evt.srcElement;
		if (target.id == "PREM") {
		league=1; } else if (target.id == "SCOTS_PREM") {
		league=2;} else
		league=3;
		}


