/*
	WHITTLESFORD JAVASCRIPT
	CREATED: 30.12.08
	MODIFIED: 30.12.08
	AUTHOR: ANDY FIELD
*/

	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["business"] = new GIcon(baseIcon,"assets/business.png");
      gicons["restaurant"] = new GIcon(baseIcon,"assets/restaurant.png");
      gicons["shop"] = new GIcon(baseIcon,"assets/shop.png");
      gicons["other"] = new GIcon(baseIcon,"assets/other.png");

      function createMarker(point,name,html,category) {
        var marker = new GMarker(point,gicons[category]);
        marker.mycategory = category;                                 
        marker.myname = name;
        GEvent.addListener(marker, "mouseover", 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");
      }
      }
      }

	function initialize() {
	if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
      	map.addControl(new GLargeMapControl());
      	map.addControl(new GMapTypeControl());
		map.setMapType(G_HYBRID_MAP);
		map.setCenter(new GLatLng(52.1136,0.1499), 16);

	GDownloadUrl("data.xml", function(data, responseCode) {
  		var xml = GXml.parse(data);
  		var markers = xml.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("business");
        //hide("club");
      });
    }
    }
    
    