var map;function regextrim(str) {	str = str.replace(/^\s+/, '');	for (var i = str.length - 1; i >= 0; i--) {		if (/\S/.test(str.charAt(i))) {			str = str.substring(0, i + 1);			break;		}	}	return str;}function loadMap() {	var sURL = "/" + mapdb + "/getSite?openagent&site="+networks[mapnumber].toLowerCase()+"&format=json&cache=no&extended=yes&key=" + mapdbkey;	var callback =	 {		  success:showMapData	};	YAHOO.util.Connect._use_default_post_header = false;	YAHOO.util.Connect.initHeader( 'Content-Type', 'application/json', false );	var request = YAHOO.util.Connect.asyncRequest('GET', sURL, callback,null);}function changeSite(sitenumber) {	mapnumber = sitenumber;	loadMap();}function showMapData(jsonText) {	var bikesIcon = new GIcon();	bikesIcon.image = "/"+webdbname+"/bike.gif";	bikesIcon.iconSize = new GSize(19, 19);	bikesIcon.iconAnchor = new GPoint(6, 20);	bikesIcon.infoWindowAnchor = new GPoint(5, 1);	var noBikesIcon = new GIcon();	noBikesIcon.image =  "/"+webdbname+ "/no-bikes.gif";	noBikesIcon.iconSize = new GSize(19, 19);	noBikesIcon.iconAnchor = new GPoint(6, 20);	noBikesIcon.infoWindowAnchor = new GPoint(5, 1);	var noParkingIcon = new GIcon();	noParkingIcon.image =  "/"+webdbname+ "/no-parking.gif";	noParkingIcon.iconSize = new GSize(19, 19);	noParkingIcon.iconAnchor = new GPoint(6, 20);	noParkingIcon.infoWindowAnchor = new GPoint(5, 1);	//  Overview Map	try{    		if (GBrowserIsCompatible()) {				// Do Map if Compatible Browser only    	     	map = new GMap2(document.getElementById("overviewMap"));   	 		map.addControl(new GLargeMapControl());   			map.addControl(new GMapTypeControl());   			map.addControl(new GScaleControl());			map.setMapType(G_NORMAL_MAP);			if (window.attachEvent) {        			window.attachEvent("onunload", function() {          	     	GUnload();      // Internet Explorer        			});			} else {				window.addEventListener("unload", function() {          	     	GUnload(); // Firefox and standard browsers        			}, false);			}		} else {  	  		document.getElementById("overviewMap").innerHTML = "Unable to display map. Sorry..." ;		}    	} catch(e) {		document.getElementById("overviewMap").innerHTML = "Unable to display map. Sorry..." ;	}		var jsonSite;	try {		jsonText = regextrim(jsonText.responseText);		// Always use the JavaScript implementation for parsing		YAHOO.lang.JSON.useNativeParse = false; 		// Always use the JavaScript implementation for stringifying		YAHOO.lang.JSON.useNativeStringify = false;		jsonSite = YAHOO.lang.JSON.parse(jsonText);	} catch (e) { 	   console.log("Invalid JSON data"); 	   document.getElementById("overviewMap").innerHTML = "Unable to display map" ;	}		// Center, zoom and clear map	var latlng = new GLatLng(jsonSite.site.lat, jsonSite.site.lng);	map.setCenter(latlng,jsonSite.site.zoom);	map.clearOverlays();	// loop stands		for (var a=0;a<jsonSite.site.stands.length;a++) {		if (jsonSite.site.stands[a] == "0") {			continue;		}		var standname = unescape(jsonSite.site.stands[a].name);		var htmldata = '<div class="oybtext">' +  standname + '<br /><br />' +  jsonSite.site.stands[a].wcom.replace(/,/g,"<br />");		htmldata += '<br /><br />Total stand capacity <b>' + jsonSite.site.stands[a].ac + '</b><br />';		htmldata += '<b>'+jsonSite.site.stands[a].ab+'</b> OYBikes available for hire<br />';		htmldata += '<b>'+jsonSite.site.stands[a].ap+'</b> OYBike parking spaces available<br /></div>';			if (jsonSite.site.stands[a].ab == 0) {			map.addOverlay(createMarker(jsonSite.site.stands[a].lng,jsonSite.site.stands[a].lat,htmldata,noBikesIcon));		} else if (jsonSite.site.stands[a].ap == 0) {				map.addOverlay(createMarker(jsonSite.site.stands[a].lng,jsonSite.site.stands[a].lat,htmldata,noParkingIcon));		} else {			map.addOverlay(createMarker(jsonSite.site.stands[a].lng,jsonSite.site.stands[a].lat,htmldata,bikesIcon));		}		}}function createMarker(lng,lat,html,icon) {	// oybike marker	var langlat = new GLatLng(lat, lng);	var localmarker = new GMarker(langlat,icon);	if (html != "") {		GEvent.addListener(localmarker, "click", function() {			localmarker.openInfoWindowHtml(html);		});	}	return localmarker;}