var vMapMode="view";var maxZoom=10;var markersArray=[];var marker="";var html="";var arAllRoutesOnMap=[];var UserSearchField;var existingMarkers={};var MasterSessionTimer;var isVagueCount=0;var CurrentRouteActive=0;var CurrentRouteActiveNotOnMap="NOT ON MAP";var bounds=new GLatLngBounds();var polyline1_1=new GPolyline();var fittingRouteToMap=false;var TempEndMarkers=[];var TempStartMarkers=[];var LoadFromRouteIDCalled=false;var bolAjaxLoadInProgress=false;var KillSessionOnNextCall=false;var PoolSearchMode="0";var intLastPoolIDScrolledTo=0;var pool_Address="";var Pool_Message="";function fnremoveRoutesFromMap(){if(arAllRoutesOnMap.length>0){map.removeOverlay(arAllRoutesOnMap[0]);arAllRoutesOnMap.pop()}if(TempEndMarkers.length>0){map.removeOverlay(TempEndMarkers[0]);TempEndMarkers.pop()}if(TempStartMarkers.length>0){map.removeOverlay(TempStartMarkers[0]);TempStartMarkers.pop()}}function StartMap(){PoolSearchMode=document.getElementById('hiddenPoolSearchMode').value;if(!GBrowserIsCompatible()){debugBox("Sorry, the Google Maps API is not compatible with this browser")}else{debugBox("LOADING");popUpBox("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Loading map...</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");StartMapSub();var pos=new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(75,7));pos.apply(document.getElementById("MapWorkingMsg"));map.getContainer().appendChild(document.getElementById("MapWorkingMsg"));map.enableDoubleClickZoom();map.enableContinuousZoom();document.getElementById("PostCodestatus").style.display="block";document.getElementById('FirstLoad').value="0";var x=map.getMapTypes();GEvent.addListener(map,'moveend',function(){popUpBoxClose();var center=map.getCenter();if(map.getZoom()>=maxZoom){if(fittingRouteToMap){}else{GetLocationsLoader()}StatusMsg("Tip: Click and drag the map to find more routes.")}else{StatusMsg("Tip: Zoom in to find Cycle routes.")}});AutoRunPostCodeSearch();loadOff();setSessionTimer()}popUpBoxClose()}var IsLoadingPreviousRouteNo="";function LoadFromRouteID(RouteID){var searchUrl="/RMap/GetPool_MiniDetail.aspx?PoolID="+RouteID;GDownloadUrl(searchUrl,function(data,responseCode){if(responseCode==200){var xml=GXml.parse(data);var VstartLat=xml.documentElement.getElementsByTagName("Latitude")[0].firstChild.nodeValue;var startLng=xml.documentElement.getElementsByTagName("Longitude")[0].firstChild.nodeValue;LoactionOfStartMarker=new GLatLng(VstartLat,startLng);map.setCenter(LoactionOfStartMarker,16);LoadFromRouteIDCalled=RouteID;IsLoadingPreviousRouteNo=RouteID}})}function ajaxLoadRoute(RouteID){if(bolAjaxLoadInProgress==true){bolAjaxLoadInProgress=false;CurrentRouteActive=0;ajaxLoadRoute(RouteID)}else{bolAjaxLoadInProgress=true;if(CurrentRouteActive!=RouteID){LHS_ItemDIV="#Pool_"+CurrentRouteActive;$(LHS_ItemDIV).removeClass('selected');RemoveChildDivID="#LHSRouteDetails_"+CurrentRouteActive;$(RemoveChildDivID).fadeOut(500,function(){$(RemoveChildDivID).remove()});if(CurrentRouteActive==CurrentRouteActiveNotOnMap){tempCurrentRouteActive=CurrentRouteActive;CurrentRouteActive=RouteID;fnremoveRoutesFromMap();removeMarkerText(tempCurrentRouteActive);removeMarker(tempCurrentRouteActive)}}if(CurrentRouteActive!=RouteID){LHS_ItemDIV="#Pool_"+RouteID;CurrentRouteActive=RouteID;VPoints="";Vlevels="";EndMarker="";StartMarker="";VRouteTitle="Route Loaded";VRouteDescription="";DrawRouteOntoMap(VPoints,Vlevels,false,EndMarker,StartMarker);if(VRouteTitle==""){loadOff();popUpBox("<b>Error:</b> invalid details to retrieve route id:"+RouteID);return}VRouteDescription="Route";$('#LHSRouteDetails_'+RouteID).remove()}}}function DrawRouteOntoMap(Vpoints,Vlevels,FitToMap,EndMarker,StartMarker){fnremoveRoutesFromMap();if(FitToMap){}bolAjaxLoadInProgress=false}function createMarker(point,pool_PoolName,pool_Address,pool_Postcode,pool_Telephone,pool_Website,IconStyle,MarkerID,IsVague,xLetter,message){thisItemIDSummary="<h3>"+pool_PoolName+"</h3><p>";if(pool_Address!=""){thisItemIDSummary+=pool_Address+"<br />"}if(pool_Postcode!=""){thisItemIDSummary+=pool_Postcode+"<br />"}if(pool_Telephone!=""){thisItemIDSummary+="Telephone: "+pool_Telephone+"<br />"}if(pool_Website!=""){thisItemIDSummary+="<a href=\""+pool_Website+"\" class=\"l ExternalLink\" target=\"_blank ExternalLink\">Pool website</a>"}thisItemIDSummary+="<br /><a href=\"http://maps.google.co.uk/maps?saddr="+UserSearchField+"&daddr="+pool_Postcode+"\" class=\"l ExternalLink\" target=\"_blank\">Get directions</a>";thisItemIDSummary+="</p><br style=\"clear:both\" />";var marker=new GMarker(point,{icon:genDynMarker(xLetter),draggable:false,dragCrossMove:false,bouncy:true,zIndexProcess:function(marker,b){return 1}});var html=thisItemIDSummary;GEvent.addListener(marker,'click',function(){marker.openInfoWindowHtml("<div id=\"MarkerWindow_"+MarkerID+"\" class=\"InfoWindowTextHolder\">"+html+"</div>",{maxWidth:200});selectPool(MarkerID,message);ajaxLoadRoute(MarkerID)});markersArray[MarkerID]=new Array(0);markersArray[MarkerID][0]=marker;markersArray[MarkerID][1]=IsVague;markersArray[MarkerID][2]=xLetter;if(IsVague==true){isVagueCount++}return marker}var CurrentPoolIDSelected="";function selectPool(PoolID,message){if(PoolSearchMode=="1"){$("#Radio_Pool_"+PoolID).attr("checked","checked")}$('#hidPoolId').attr('value',PoolID);if(CurrentPoolIDSelected!=""){$('#Pool_'+CurrentPoolIDSelected).removeClass('selected')}CurrentPoolIDSelected=PoolID;$('#Pool_'+PoolID).addClass('selected');if(message!=""){$('p.pnlPoolMessage').html(message).show("slow")}else{$('p.pnlPoolMessage').html("").hide("slow")}ScrollToPool(PoolID)}function ScrollToPool(PoolID){$('.pooladd').scrollTo($('#Pool_'+PoolID),900,'y');intLastPoolIDScrolledTo=PoolID}function ScrollDivIntoView(DiveID){$.scrollTo($('#'+DiveID),900,'y')}function createSidebarEntry(marker,pool_PoolName,pool_Address,pool_Postcode,pool_Telephone,pool_Website,distance,MarkerID,xLetter,message){var div=document.createElement('div');var thisItemID="Pool_"+MarkerID;var thisItemIDSummary="";TabIndex=100+xLetter;TabIndex2=1000+xLetter;if(PoolSearchMode=="1"){thisItemIDSummary+="<input id=\"Radio_"+thisItemID+"\" tabindex=\""+TabIndex+"\" type=\"radio\" value=\""+thisItemID+"\" name=\"PoolID\" onClick=\"selectPool("+MarkerID+",'"+message+"');\"/>"}thisItemIDSummary+="<label for=\"Radio_"+thisItemID+"\"><span class=\"txt\">";thisItemIDSummary+="<strong>"+pool_PoolName+"</strong><br />";if(distance!=""){thisItemIDSummary+="This pool is "+distance+" mile away<br />"}if(pool_Address!=""){thisItemIDSummary+=pool_Address+"<br />"}if(pool_Postcode!=""){thisItemIDSummary+=pool_Postcode+"<br />"}if(pool_Telephone!=""){thisItemIDSummary+=pool_Telephone+"<br />"}if(pool_Website!=""){thisItemIDSummary+="<a href=\""+pool_Website+"\"  tabindex=\""+TabIndex2+"\" class=\"l\" target=\"_blank\" >Pool website <img src=\"/images/structure/external_link.png\" alt=\"open in new window\" /></a>"}thisItemIDSummary+="</span></label>";thisItemIDSummary+="<span class=\"pin\"><img src=\"/images/markers/"+xLetter+".png\" alt=\"\" /></span>";thisItemIDSummary+="<div class=\"spacer12\"></div>";thisItemIDSummary+="</span></label>";thisItemIDSummary+="<div class=\"spacer12\"></div>";div.id=thisItemID;div.className="Pool";RouteMarkerLetter=markersArray[MarkerID][2];var html=thisItemIDSummary;div.innerHTML=html;div.style.cursor='pointer';div.style.marginBottom='5px';GEvent.addDomListener(div,'click',function(){GEvent.trigger(marker,'click')});GEvent.addDomListener(div,'mouseover',function(){if(MarkerID!=CurrentRouteActive){$(div).addClass('PoolItemHover')}});GEvent.addDomListener(div,'mouseout',function(){$(div).removeClass('PoolItemHover')});return div}function fitMapMultiMarkers(){fittingRouteToMap=true;map.setZoom(map.getBoundsZoomLevel(bounds));map.setCenter(bounds.getCenter());fittingRouteToMap=false}function GetLocationsLoader(){if(map.getZoom()>=maxZoom){loadOn();var FirstLoad=document.getElementById('FirstLoad').value;var mapBounds=map.getBounds();var southWest=mapBounds.getSouthWest();var northEast=mapBounds.getNorthEast();MapBounds_CurrentNE=northEast.toUrlValue();MapBounds_CurrentSW=southWest.toUrlValue();var getVars='ne='+MapBounds_CurrentNE+'&sw='+MapBounds_CurrentSW;MapBounds_OldNE_HOLD=MapBounds_OldNE;MapBounds_OldSW_HOLD=MapBounds_OldSW;MapBounds_OldNE=MapBounds_CurrentNE;MapBounds_OldSW=MapBounds_CurrentSW;var UsersGeoCode=document.getElementById("UsersGeoCode").value;if(UsersGeoCode!=0){KillSessionOnNextCall=true;getVars+="&session=kill"}if(KillSessionOnNextCall==true){map.clearOverlays();MapBounds_OldNE_HOLD="49.073416,-0.331736";MapBounds_OldSW_HOLD="49.039668,-0.377741";document.getElementById("UsersGeoCode").value="0";document.getElementById('PoolLocationsHolder').innerHTML="";KillSessionOnNextCall=false}getVars+='&old_ne='+MapBounds_OldNE_HOLD+'&old_sw='+MapBounds_OldSW_HOLD;var searchUrl="/RMap/GetLocations.aspx?"+getVars+"&user="+UsersGeoCode;GDownloadUrl(searchUrl,function(data,responseCode){if(responseCode==200){var xml=GXml.parse(data);var markers=xml.documentElement.getElementsByTagName('Pool');var AutoSizeMap=xml.documentElement.getElementsByTagName('AutoSizeMap')[0].firstChild.nodeValue;var sidebar=document.getElementById('PoolLocationsHolder');if(markers.length==0){loadOff();return}var sidebarEntry="";var distanceRender="";for(var i=0;i<markers.length;i++){var pool_PoolName=GetValue(markers[i].getElementsByTagName("PoolName")[0]);var pool_Address1=GetValue(markers[i].getElementsByTagName("Address1")[0]);var pool_Address2=GetValue(markers[i].getElementsByTagName("Address2")[0]);var pool_Town=GetValue(markers[i].getElementsByTagName("Town")[0]);var pool_County=GetValue(markers[i].getElementsByTagName("County")[0]);var pool_Postcode=GetValue(markers[i].getElementsByTagName("Postcode")[0]);var pool_Telephone=GetValue(markers[i].getElementsByTagName("Telephone")[0]);var pool_Website=GetValue(markers[i].getElementsByTagName("Website")[0]);var distance=GetValue(markers[i].getElementsByTagName("Distance")[0]);var coordinates=GetValue(markers[i].getElementsByTagName("Marker")[0]);var styleUrl=GetValue(markers[i].getElementsByTagName("styleUrl")[0]);var addRemove=GetValue(markers[i].getElementsByTagName("AddRemove")[0]);var MarkerID=GetValue(markers[i].getElementsByTagName("PoolID")[0]);var DistanceUnits=GetValue(markers[i].getElementsByTagName("PoolID")[0]);var Message=GetValue(markers[i].getElementsByTagName("Message")[0]);if(FirstLoad!="1"&&addRemove=="NoChange"){addRemove="Add"}coordinatesXY=coordinates.split(",");var point=new GLatLng(coordinatesXY[1],coordinatesXY[0]);var distanceRenderMarkerWindow="";bounds.extend(point);distanceRender=' - '+distance+'km';distanceRenderMarkerWindow=''+distance+'km';IconStyle=distanceRenderMarkerWindow;IsVague=false;if(styleUrl=="#UnverifiedMarkerIcon"){windowContent+='<br /><em>Note: map indicates street location.</em>';pageContent+="(?)";IsVague=true}if(addRemove=="Add"){if(MarkerID!=CurrentRouteActive){var pool_Address="";if(pool_Address1!=""){pool_Address+=pool_Address1}if(pool_Address2!=""){pool_Address+=", "+pool_Address2}if(pool_Town!=""){pool_Address+=", "+pool_Town}if(pool_County!=""){pool_Address+=", "+pool_County}pool_Address=pool_Address.replace(/,,/,",");var xLetter=GenLetter();if(xLetter==null){xLetter=" "}var marker=createMarker(point,pool_PoolName,pool_Address,pool_Postcode,pool_Telephone,pool_Website,IconStyle,MarkerID,IsVague,xLetter,Message);map.addOverlay(marker);var sidebarEntry=createSidebarEntry(marker,pool_PoolName,pool_Address,pool_Postcode,pool_Telephone,pool_Website,distance,MarkerID,xLetter,Message);sidebar.appendChild(sidebarEntry);var HoldThis="#Radio_Pool_"+MarkerID;if(MarkerID==LoadFromRouteIDCalled){}}else{}}if(addRemove=="Remove"){removeMarker(MarkerID);removeMarkerText(MarkerID)}}if(AutoSizeMap=="True"){fitMapMultiMarkers();KillSessionOnNextCall=true}document.getElementById('FirstLoad').value="1"}else if(responseCode==-1){popUpBox('Oops! There seems to be some technical issues. <a href="javascript:GetLocationsLoader();">Try again?</a>')}else{popUpBox('Oops! There seems to be some technical issues. Please try again shortly.')}if(IsLoadingPreviousRouteNo!=""){selectPool(IsLoadingPreviousRouteNo);IsLoadingPreviousRouteNo=""}loadOff()})}}function removeMarkerText(MarkerID){if(MarkerID!=CurrentRouteActive){$('#Pool_'+MarkerID).fadeOut(500,function(){$('#Pool_'+MarkerID).remove()});if(intLastPoolIDScrolledTo!=0){ScrollToPool(intLastPoolIDScrolledTo)}}else{}}function removeMarker(MarkerID){try{map.removeOverlay(markersArray[MarkerID][0]);if(markersArray[MarkerID][1]==true){isVagueCount--}delete markersArray[MarkerID][0]}catch(err){}}function SetHiddenTextField(PoolID){document.getElementById('hidPoolId').value=PoolID}