	if (GBrowserIsCompatible()) {
      var gmarkers = [];
      var gicons = [];
      
      var baseIcon = new GIcon();
          baseIcon.iconSize=new GSize(32,32);
          baseIcon.shadowSize=new GSize(56,32);
          baseIcon.iconAnchor=new GPoint(16,16);
          baseIcon.infoWindowAnchor=new GPoint(16,0);

			gicons["region"] = new GIcon(baseIcon,"/resources/map/region-small.png");
			gicons["club"] = new GIcon(baseIcon,"/resources/map/club-small.png");

      function createMarker(point,name,html,category) {
        var marker = new GMarker(point,gicons[category]);
        marker.mycategory = category;                                 
        marker.myname = name;
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        
        gmarkers.push(marker);
        return marker;
      }

      function show(category) {
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].mycategory == category) {
            gmarkers[i].show();
          }
        }
        document.getElementById(category+"box").checked = true;
      }

      function hide(category) {
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].mycategory == category) {
            gmarkers[i].hide();
          }
        }
        document.getElementById(category+"box").checked = false;
        map.closeInfoWindow();
      }

      function boxclick(box,category) {
        if (box.checked) {
          show(category);
        } else {
          hide(category);
        }
      }

      function myclick(i) {
        GEvent.trigger(gmarkers[i],"click");
      }


      var map = new GMap2(document.getElementById("cemap"));
      map.addControl(new GSmallMapControl());
      map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(53,-2), 5);

      GDownloadUrl("/resources/map/data-small.xml", function(doc) {
        var xmlDoc = GXml.parse(doc);
        var markers = xmlDoc.documentElement.getElementsByTagName("marker");
          
        for (var i = 0; i < markers.length; i++) {
			var lat = parseFloat(markers[i].getAttribute("lat"));
			var lng = parseFloat(markers[i].getAttribute("lng"));
			var point = new GLatLng(lat,lng);
			var label = markers[i].getAttribute("label");
			var category = markers[i].getAttribute("category");
			var html = GXml.value(markers[i].getElementsByTagName("infowindow")[0]); 
			var marker = createMarker(point,label,html,category);
			map.addOverlay(marker);
        }

        show("region");
        show("club");
      });
    }

    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }