//<![CDATA[
	
    var map;
    var geocoder;
	var gdir;
	var zoomlevel;	
	var gmarkers = [];
    var gicons = [];
	
	//var regcode="<?php echo $regcode;?>";
	
    var baseIcon = new GIcon(G_DEFAULT_ICON);
    baseIcon.iconSize = new GSize(31, 45);
    baseIcon.shadowSize = new GSize(54, 45);	
	baseIcon.iconAnchor = new GPoint(16, 40);
    baseIcon.infoWindowAnchor = new GPoint(16, 2);
	baseIcon.shadow = 'images/common/shadow-wj_marker.png';	
	
    gicons["1"] = new GIcon(baseIcon,'images/common/nt_marker_brown.png'); 
    gicons["2"] = new GIcon(baseIcon,'images/common/nt_marker_green.png'); 
    gicons["3"] = new GIcon(baseIcon,'images/common/nt_marker_sold.png'); 
    gicons["4"] = new GIcon(baseIcon,'images/common/nt_marker_asset.png'); 	
	
	function ZoomIn() { 
		map.setZoom(16);
		var zoomlevel = map.getZoom();		
	}
	function ZoomOut() { 
		map.setZoom(8); 
//		var zoomlevel = map.getZoom();				
	}	
	// function to fix points that are just too close to the maps edge	
	function growTopBound(map, bounds) {
	  var latlngNorthEast = bounds.getNorthEast();
	  var pointNorthEast = map.fromLatLngToDivPixel(latlngNorthEast);
	  bounds.extend(map.fromDivPixelToLatLng(new GPoint(pointNorthEast.x, pointNorthEast.y - 75)));
	  return bounds;  
	}	

    function load() {
      if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();	  
        map = new GMap2(document.getElementById("map"));
//		map.setCenter(new GLatLng(54.7, -4), 5);
//		map.setMapType(G_HYBRID_MAP);
//		map.setMapType(G_SATELLITE_MAP);
		map.setMapType(G_NORMAL_MAP);
        map.addControl(new GLargeMapControl3D());
        map.addControl(new GMapTypeControl());
		//map.addControl(new GOverviewMapControl());
        //map.setCenter(new GLatLng(54.7, -4), 7);		
	 	var zoomlevel = map.getZoom();
		//get initial markers
        GDownloadUrl("getLandmarkers.php?regcode="+regcode, function(data) {
		
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
		  
		  var results = document.getElementById('results');
		  results.innerHTML = '';
		  if (markers.length == 0) {
		  	results.innerHTML = 'No properties found.';
			map.setCenter(new GLatLng(54.7, -4), 5);
         return;
       }
		  
		  var bounds = new GLatLngBounds();		  
          for (var i = 0; i < markers.length; i++) {
		  
            var name = markers[i].getAttribute("name");
            var url_name = markers[i].getAttribute("url_name");			
            var url_address = markers[i].getAttribute("url_address");
            var category = markers[i].getAttribute("category");			
            var address = markers[i].getAttribute("address");			
			var subid = markers[i].getAttribute('subid');
	        var img_url = markers[i].getAttribute('img_url');							
            var type = markers[i].getAttribute("prop_type");
			var regcode = markers[i].getAttribute("regcode");	
			var lat = parseFloat(markers[i].getAttribute("lat"));
			var lng = parseFloat(markers[i].getAttribute("lng"));
            var point = new GLatLng(lat,lng);
            var marker = createMarker(point, name, url_name, url_address, category, address, subid, img_url, type, regcode);
            map.addOverlay(marker);
	        bounds.extend(point);				
          } 
// Zoom to bounds	   
		   map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
// Based on that - grow top by a small amount
		   //bounds = growTopBound(map, bounds);		   
		   //map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
// == show or hide the categories initially ==
        show(1);
        show(2);
        show(3);
        show(4);		
        });
      }
    }

    function createMarker(point, name, url_name, url_address, category, address, subid, img_url, type, regcode) {
      
	  var marker = new GMarker(point, gicons[type]);
	 
	  marker.theType = type;
	  
	  var directions = "<form method=\'GET\' style=\'margin: 5px 0px 0px 0px;\' action=\'http://maps.google.co.uk/maps\' " +
					"target=\'_blank\'><span style=\'font-size: 10px; color: #888\'>Enter your postcode to get " + 
					"directions to here:<br /></span><input type=text name=saddr size=20 " +
					"style=\'font-size: 10pt\'><input type=hidden name=daddr " +
					"value=\'"+address+"\'> <input type=submit value=\'Go\' " +
					"style=\'padding: 0px\'><input type=hidden name=hl " +
					"value=en></form>";
		

    	var ZoomOutLink = "<a href='javascript:ZoomOut()'>Zoom Out</a>";			
    	var ZoomLink = "<a href='javascript:ZoomIn()'>Zoom in</a>"; 					
					
	 var html = "<span style='font-size:12px;'><b>";

		  html += "<a href='land-and-regeneration/"+category+"/"+url_name+"/"+url_address+"/"+subid+"' title='Click to view more details'>" + name + "</a><br>";

	 html += "</b></span><br><div><a href='land-and-regeneration/"+category+"/"+url_name+"/"+url_address+"/"+subid+"' title='Click to view more details'><img src='property/"+img_url+"' width='101' height='77' align='left' bodrer='0' style='margin-right:10px' /></a>"+ address + "</div><br clear='all'/><div style='margin-top:5px; font-size:11px;'><a href='land-and-regeneration/"+category+"/"+url_name+"/"+url_address+"/"+subid+"' title='Click to view more details' class='markerLink'>Click for more details &raquo;</a></div><div style='margin-top:10px;'>" + directions +"</div><div style='margin-top:4px;'>" + ZoomLink +"&nbsp;&nbsp;&nbsp;" + ZoomOutLink +"</div>";
	  	  
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml('<div style="width:220px; font-family:Arial, Helvetica, sans-serif; font-size:12px;">'+html+'</div>');
      });
	  gmarkers.push(marker);
      return marker;
    }
	
      // == shows all markers of a particular category, and ensures the checkbox is checked ==
      function show(type) {
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].theType == type) {
            gmarkers[i].show();
          }
        }
        // == check the checkbox ==
        document.getElementById("box"+type).checked = true;
      }
 
      // == hides all markers of a particular category, and ensures the checkbox is cleared ==
      function hide(type) {
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].theType == type) {
            gmarkers[i].hide();
          }
        }
        // == clear the checkbox ==
        document.getElementById("box"+type).checked = false;
        // == close the info window, in case its open on a marker that we just hid
        map.closeInfoWindow();
      }
 
      // == a checkbox has been clicked ==
      function boxclick(box,type) {
        if (box.checked) {
          show(type);
        } else {
          hide(type);
        }
      }

    //]]>
