//<![CDATA[

    function load(mapID) {
      if (GBrowserIsCompatible()) {
		var mapObj = document.getElementById(mapID);
        var map = new GMap2(mapObj);
		//map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl(),new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(7,30)));
		map.setCenter(new GLatLng(53.96052359899387,-1.0781995849609375), 14);
		//map.setMapType(G_HYBRID_MAP);
		map.setMapType(G_SATELLITE_MAP);

		map.addControl(new customlinks());
		map.addControl(new YSliderControl());

		var fullwalkroute = new GPolyline.fromEncoded({
			color: "#aa0044",
			opacity: 0.7,
			weight: 8,
			points: "cyihId{qElA}AYqAcB~@W}B|DcF??ZaAAwAWsEXO??oAgLf@]??|AuAq@mGhKqCvDHX_AfCvDbA|@lAoGxCgKpBa@f@_RCtBh\\}B`GvEl@EpAlOf@x]ZJA`@tCL\\rj@cGjLq@qE_N{JmB`NMzCg@`I[\\FnVmLROtGoAdNiFfN|DnFoAhEQY~@mC_M_SqH_OyCzIwHqGqHgRLk@mAcCc@q@c@bD]BqAzBmANuD|DbFhIuBfUsBbHeLrQwHhP}BhCaCl@kC?kDkL]ZH[{B}Hs@b@eFnEgA}A]E\\KPmDf@{AbDeE|AvDVf@TG@s@bD`@bC{ChFgCrGsIzCaLzAiFlEmEwHsMfDuGMURPxDmJpDh@fCiAdAtCv@r@nCuHdFoDxEkIl@iAdCOcAeCn@sBm@yBoChD}A_B_AuA",
			zoomFactor: 2,
			levels: "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
			numLevels: 1
		});
		map.addOverlay(fullwalkroute);

		var shortcutroute = new GPolyline.fromEncoded({
			color: "#00FF33",
			opacity: 0.7,
			weight: 8,
			points: "}cihIjcpE~ClC\\`AtAvSErEd@pA{@l@q@KAfBSrAQhH{@dCm@v@T^j@a@l@N|BlKNrAT|BtBjE?h@eFjN}BrHaEvM",
			zoomFactor: 2,
			levels: "BBBBBBBBBBBBBBBBBBBBBBBB",
			numLevels: 1
		});
		map.addOverlay(shortcutroute);

		GMap2.prototype.wheelZoom = function(event) {
			if(event.cancelable) event.preventDefault(); map.closeInfoWindow(); 
			if((event.detail || -event.wheelDelta) < 0) {map.zoomIn();} else {map.zoomOut();} return false; 
		}

		//GEvent.addDomListener(mapObj, "DOMMouseScroll", map.wheelZoom);
		//	GEvent.addDomListener(mapObj, "mousewheel", map.wheelZoom);

		if(true){
			GEvent.addListener(map,
                 "singlerightclick",
                 function(point)
                 {

                        var message = "Coordinates:  ";
                        var coor = map.fromContainerPixelToLatLng(point);
						//console.log('\t\t"lat"=>"'+(coor.en)+'",\n\t\t"lng"=>"'+(coor.hb)+'",\n');
						//console.log(map.getCenter());
                 }); 
			
		}
		

	  }
	}
	

		function customlinks() {
		}
		customlinks.prototype = new GControl();

		// Creates a one DIV for each of the buttons and places them in a container
		// DIV which is returned as our control element. We add the control to
		// to the map container and return the element for the map class to
		// position properly.
		customlinks.prototype.initialize = function(map) {
			var container = document.createElement("div");

			container.className = "linksbox";
			container.style.backgroundColor = "#fff";
			container.style.border = "1px solid #000";
			container.style.padding = "5px";

			var headingDiv = document.createElement("h2");
			headingDiv.className = 'linkblockheading';
			container.appendChild(headingDiv);
			headingDiv.appendChild(document.createTextNode("A Rowntree Walk..."));

			var introDiv = document.createElement("p");
			introDiv.className = 'linkblockintro';
			container.appendChild(introDiv);
			introDiv.appendChild(document.createTextNode("Follow the Rowntree Walk by clicking the various links below..."));

			var side_bar_html = "";
    		var gmarkers = [];
			var linkarray = [];
			var points = [];
			var ms;
			var lastmarker

			
			// Read the data from example.xml
			var request = GXmlHttp.create();
			request.open("GET", "coords.xml.php", true);
			request.onreadystatechange = function() {
				if (request.readyState == 4) {
					var xmlDoc = GXml.parse(request.responseText);
					// obtain the array of markers and loop through it
					var markers = xmlDoc.documentElement.getElementsByTagName("marker");

					for (var i = 0; i < markers.length; i++) {
						// obtain the attribues of each marker
						var lat = parseFloat(markers[i].getAttribute("lat"));
						var lng = parseFloat(markers[i].getAttribute("lng"));
						points[i] = new GLatLng(lat,lng);
						var html = GXml.value(markers[i].getElementsByTagName("infowindow")[0]);
						var label = markers[i].getAttribute("label");

						linkarray[i] = document.createElement("div");
						linkarray[i].className = 'linkblock';
						container.appendChild(linkarray[i]);
						//var buttonnode = document.createElement("div"
						//linkarray[i].appendChild(buttonnode);
						//document.createTextNode((i+1)+".) "+label)
						linkarray[i].innerHTML = "<span class=\"walklinks\"><span class=\"linklabel\">"+(i+1)+":</span> "+label+"</span>";
						

						// create the marker
						var marker = createMarker(points[i],label,html);
						createLinker(marker,linkarray[i]);
						map.addOverlay(marker);
					}
					// put the assembled side_bar_html contents into the side_bar div
					//document.getElementById("side_bar").innerHTML = side_bar_html;
				}
			}
			request.send(null);
		  
// This function picks up the click and opens the corresponding info window

			function createMarker(point,name,html) {
				var marker = new GMarker(point);
				marker.bindInfoWindowHtml(html,{maxWidth:320, maxHeight: 300,autoScroll:true});
				GEvent.addDomListener(marker, "click", function() {
					showmarker(marker);
				});
				
				// save the info we need to use later for the side_bar
				gmarkers[ms] = marker;
				// add a line to the side_bar html
				ms++;
				return marker;
			}

			function createLinker(marker,obj){
				GEvent.addDomListener(obj, "click", function() {
					GEvent.trigger(marker, "click");
					//console.log(map.getZoom());
					//alert(obj);
				});
			}

			function showmarker(marker){
				map.panTo(marker.getPoint());					
				lastmarker = marker
				//console.log(map.getZoom());
				if(map.getZoom()<14){
					map.setZoom(15);
					map.setCenter(marker.getPoint());
				}
				//map.setCenter(marker.getPoint());
				//map.panTo(new GLatLng(marker.getPoint().Jn+1.5,(marker.getPoint().kb)));
			}	
			
			GEvent.addListener(map,"infowindowclose", function() {
				map.panTo(lastmarker.getPoint());
			}); 
		
			map.getContainer().appendChild(container);
			return container;
		}

		// By default, the control will appear in the top left corner of the
		// map with 7 pixels of padding.
		customlinks.prototype.getDefaultPosition = function() {
		  return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(7,7));
		}



//]]>