// All player javascript copyright www.RunSaturday.com.
//If you want to talk to us, please do - we love to share.
//Code used within this development includes lots of utility libraries for google maps, jquery and beyond - we have compressed that code here, but all original rights are fully respected - for more info, please contact runsaturday and we'll happily point you to the original files.
function getCurrentPlaybackSpeed(){return availablePlaybackSpeeds[currentPlaybackSpeedIndex][0];
}function getCurrentPlaybackIncrement(){return availablePlaybackSpeeds[currentPlaybackSpeedIndex][1];
}function animationSpeedChange(){currentPlaybackSpeedIndex++;
currentPlaybackSpeedIndex=currentPlaybackSpeedIndex%availablePlaybackSpeeds.length;
imgPlaybackSpeed.src="/images/controls/control_"+getCurrentPlaybackSpeed()+"x.png";
}function stopAnimation(){if(animationTimer>=0){clearInterval(animationTimer);
animationTimer=-1;
imgPlayPause.src="/images/controls/control_play_blue.png";
}}function animationCallback(){var A=Math.min(currentTooltipTime+getCurrentPlaybackIncrement(),theData[0].summary.TotalTime);
showMapTooltipForTime(A);
if(A>=theData[0].summary.TotalTime){stopAnimation();
}}function animationMoveToStart(){showMapTooltipForTime(0);
}function animationRewind(){showMapTooltipForTime(Math.max(currentTooltipTime-10*getCurrentPlaybackIncrement(),0));
}function animationPlayPause(){if(animationTimer<0){animationTimer=setInterval("animationCallback()",500);
imgPlayPause.src="/images/controls/control_pause_blue.png";
}else{stopAnimation();
}}function animationFastForward(){showMapTooltipForTime(Math.min(currentTooltipTime+10*getCurrentPlaybackIncrement(),theData[0].summary.TotalTime));
}function animationMoveToEnd(){showMapTooltipForTime(theData[0].summary.TotalTime);
}var map;var plot2;
var overview2;
var gearth=null;
var isGECurrent=false;
var include3D=true;
var MODE_NONE=0;
var MODE_INTERACTIVE=1;
var MODE_ANIMATION=2;
var currentMode=MODE_NONE;
var theSiteControl=null;
var theInteractiveControl=null;
var theAnimationControl=null;
var currentTooltipTime=0;
var animationTimer=-1;
var imgPlayPause=null;
var imgPlaybackSpeed=null;
var currentPlaybackSpeedIndex=1;
var availablePlaybackSpeeds=[[1,0.25],[2,0.5],[5,1.25],[10,2.5],[20,5],[50,12.5]];
var recursionPrevention=false;
var currentDistanceMarkers=[];
var allPLines=[];
var currentOverlays=[];
var distanceToLine=null;
var currentXAxisField="DistanceSeenToDateLocalUnits";
var isGECurrent=false;
var gec=null;
var mapTooltipMarker=null;
var movingAverageOptions="<option value='0' selected='selected'>-</option><option value='2'>2</option><option value='5'>5</option><option value='10'>10</option>";
var enableStepsInCharts=false;
var enableHighLowInCharts=true;
function createChartOptionRow(D,F,A,C,J,G,K,B,H){var I=$("<tr><td></td></tr>").appendTo(D);
$('<td class="chartOptionEnabled"><input id="chartEnabled'+A+F+'" type="checkbox" '+(J?'checked="checked" ':"")+"/></td>").appendTo(I);
$('<td class="chartOptionType">'+A+"</td>").appendTo(I);
$('<td class="chartOptionSecondary"><input id="chartSecondary'+A+F+'" type="checkbox" '+(G?'checked="checked" ':"")+"/></td>").appendTo(I);
if(enableStepsInCharts){$('<td class="chartOptionSteps"><input id="chartSteps'+A+F+'" type="checkbox" /></td>').appendTo(I);
}$('<td class="chartOptionFill"><input id="chartFill'+A+F+'" type="checkbox" '+(K?'checked="checked" ':"")+"/></td>").appendTo(I);
$('<td class="chartOptionMoving"><select id="chartMoving'+A+F+'" >'+movingAverageOptions+"</select></td>").appendTo(I);
if(enableHighLowInCharts){$('<td class="chartOptionLow"><input id="chartLow'+A+F+'" type="textbox" value="'+B+'" /></td>').appendTo(I);
$('<td class="chartOptionHigh"><input id="chartHigh'+A+F+'" type="textbox" value="'+H+'" /></td>').appendTo(I);
}var E=$('<td class="chartOptionColor"></td>').appendTo(I);
createColorPicker(E,C,A,F);
}function getCheckValue(B,C,E){var D=$("#"+B+C+E);
var A=D.attr("checked");
return A;}function showChart(A,B){return getCheckValue("chartEnabled",A,B);
}function showSteps(A,B){if(!enableHighLowInCharts){return false;
}return getCheckValue("chartSteps",A,B);
}function showFill(A,B){return getCheckValue("chartFill",A,B);
}function chartIsSecondary(A,B){return getCheckValue("chartSecondary",A,B);
}function chartFilterLow(A,B){if(!enableHighLowInCharts){return -Number.MAX_VALUE;
}return parseFloat($("#chartLow"+A+B).val());
}function chartFilterHigh(A,B){if(!enableHighLowInCharts){return Number.MAX_VALUE;
}return parseFloat($("#chartHigh"+A+B).val());
}function chartMovingAverage(A,B){return parseInt($("#chartMoving"+A+B+" option:selected").val());
}function chartColor(A,B){return $("#colorSelector"+A+B+" div").css("background-color");
}function generateChartHeaderRowText(){var A="<tr><td></td><td>Show</td><td>Field</td><td nowrap>Y2-axis</td>";
if(enableStepsInCharts){A+="<td>Steps</td>";
}A+="<td>Fill</td><td>Average</td>";
if(enableHighLowInCharts){A+="<td>Min</td><td>Max</td>";
}A+="<td>Colour</td></tr>";
return A;}function showChartingOptions(E){var H=0;
var B=$('<table class="chartingOptionsTable"></table>').appendTo("#chartingOptions");
var G=$("<tbody></tbody>").appendTo(B);
for(var A=0;
A<E.length;
A++){var F=E[A];
var D=$('<tr class="chartOption"><td colspan="10" class="chartOptionTitle"><em>'+F.summary.Title+"</em></td></tr>");
D.appendTo(G);
var C=$(generateChartHeaderRowText());
C.appendTo(G);
createChartOptionRow(G,A,"Speed","#0000b0",true,false,false,0,120);
createChartOptionRow(G,A,"Pace","#ffb000",true,false,false,0,60);
if(F.summary.Elevation){createChartOptionRow(G,A,"Elevation","#00b000",true,true,true,-1000,10000);
}if(F.summary.HeartRate){createChartOptionRow(G,A,"HeartRate","#b00000",true,false,false,20,220);
}if(F.summary.Cadence){createChartOptionRow(G,A,"Cadence","#ff00ff",true,false,false,0,300);
}if(F.summary.Power){createChartOptionRow(G,A,"Power","#ff00ff",true,false,false,0,1000);
}}}function updateDocStyles(){var A=document.getElementById("chartOptionsButton");
baseButtonStyle(A);
A.style.padding="2px";
GEvent.addDomListener(A,"click",function(){showModalPopupViaClientSimple();
});}var shownPickerStates=[];
function showHidePicker(A){return function(){var C=$(A);
var B=shownPickerStates[A];
shownPickerStates[A]=!B;
C.stop().animate({height:B?0:173},500);
};}function createColorPicker(H,D,B,E){var A=B+E;
var G="<div class='genericColorOuter'>";
G+="<div id='colorSelector"+A+"' class='genericColorSelector'><div style='background-color:"+D+";'></div></div>";
G+="<div id='colorpickerHolder"+A+"' class='genericColorpickerHolder'></div>";
$(G).appendTo(H).fadeIn(200);
var C=$(("#colorpickerHolder"+A));
var F=showHidePicker("#colorpickerHolder"+A);
C.ColorPicker({flat:true,color:D,onSubmit:function(K,I,J){$("#colorSelector"+A+" div").css("backgroundColor","#"+I);
F();}});$("#colorpickerHolder"+A+">div").css("position","absolute");
$("#colorSelector"+A).bind("click",F);
shownPickerStates["#colorpickerHolder"+A]=false;
}function hideDistanceMarkers(){for(var A in currentDistanceMarkers){map.removeOverlay(currentDistanceMarkers[A]);
}currentDistanceMarkers=[];
}function findLatLngForDistance(G){var E=null;
var D=theData[0].chartPoints;
for(var A in D.Laps){var I=D.Laps[A];
for(var B in I.Tracks){var H=I.Tracks[B];
for(var C in H.ChartPoints){var J=H.ChartPoints[C];
if(J.Position!=null){if(J.DistanceSeenToDateLocalUnits==G){return new GLatLng(J.Latitude,J.Longitude);
}if(J.DistanceSeenToDateLocalUnits>G){var K=(G-E.DistanceSeenToDateLocalUnits)/(J.DistanceSeenToDateLocalUnits-E.DistanceSeenToDateLocalUnits);
var F=(K*J.Position.Latitude)+((1-K)*E.Position.Latitude);
var L=(K*J.Position.Longitude)+((1-K)*E.Position.Longitude);
return new GLatLng(F,L);
}E=J;}}}}return null;
}var IMPORTANCE_LOW=1;
var IMPORTANCE_HIGH=2;
function markerImportanceOrder(A,B){return A.importance;
}function getBaseMarkerOpts(B){var A;
switch(B){case"Distance":A={width:"24",height:"20",primaryColor:"#00b0b0",strokeColor:"#000000",labelColor:"#ffffff",labelSize:"10",shape:"roundrect"};
break;case"HeartRate":A={width:"28",height:"20",primaryColor:"#b00000",strokeColor:"#000000",labelColor:"#ffffff",labelSize:"10",shape:"roundrect"};
break;case"Elevation":A={width:"30",height:"20",primaryColor:"#b05b00",strokeColor:"#000000",labelColor:"#ffffff",labelSize:"10",shape:"roundrect"};
break;case"Speed":A={width:"32",height:"20",primaryColor:"#0000b0",strokeColor:"#000000",labelColor:"#ffffff",labelSize:"10",shape:"roundrect"};
break;case"Pace":A={width:"40",height:"20",primaryColor:"#ffae00",strokeColor:"#000000",labelColor:"#ffffff",labelSize:"10",shape:"roundrect"};
break;case"Cadence":A={width:"24",height:"20",primaryColor:"#ff00ff",strokeColor:"#000000",labelColor:"#ffffff",labelSize:"10",shape:"roundrect"};
break;case"Power":A={width:"32",height:"20",primaryColor:"#ff0000",strokeColor:"#000000",labelColor:"#ffffff",labelSize:"10",shape:"roundrect"};
break;default:A={width:"24",height:"20",primaryColor:"#ff0000",strokeColor:"#000000",labelColor:"#ffffff",labelSize:"10",shape:"roundrect"};
break;}A.workaround=include3D?1:0;
return A;}function createMarkerIcon(C,B){var A=getBaseMarkerOpts(C);
A.label=B;return MapIconMaker.createFlatIcon(A);
}function getLabelFunction(D,C){if(D=="Distance"){return function(F){return F.toString();
};}var A=theData[0].averageStats["Average"+C.toString()];
var B;switch(D){case"Pace":B=function(F){return formatTimeAsMS(F["PaceInMinutes"]);
};break;case"Elevation":B=function(F){return Math.round(F["Altitude"]);
};break;case"Speed":B=function(F){return toNDecimalPlaces(F[D],1);
};break;default:B=function(F){return toNDecimalPlaces(F[D],0);
};break;}var E=function(F){return B(A[(F/C)-1]);
};return E;
}function showDistanceMarkersChange(F,B){hideDistanceMarkers();
var E=parseInt(F.value);
if(E<1){return;
}var D=B.value;
if(typeof(D)=="undefined"||D==null){D="Distance";
}var I=getLabelFunction(D,E);
var C=Math.floor(theData[0].summary.TotalDistance);
for(var A=E;
A<=C;A+=E){var K=createMarkerIcon(D,I(A).toString());
var G={draggable:false,icon:K,zIndexProcess:markerImportanceOrder};
var J=findLatLngForDistance(A);
if(J==null){break;
}var H=new GMarker(J,G);
H.importance=IMPORTANCE_LOW;
map.addOverlay(H);
currentDistanceMarkers.push(H);
}}function initGEarth(){map.getEarthInstance(onEarthInit);
}function onEarthInit(A){if(gec!=null){return;
}gearth=A;gearth.getNavigationControl().setVisibility(gearth.VISIBILITY_SHOW);
gearth.getLayerRoot().enableLayerById(gearth.LAYER_BORDERS,true);
gearth.getLayerRoot().enableLayerById(gearth.LAYER_ROADS,true);
window.setTimeout(function(){gec=new GEC(gearth,geTimerCallback);
gec.initTrack(theData[0]);
gec.play();
},3000);}function updateGETime(A){if(isGECurrent&&(gec!=null)){gec.setCurrentTime(A);
}}function geTimerCallback(A){if(isGECurrent){showMapTooltipForTime(A);
}}var Class={create:function(){return function(){this.initialize.apply(this,arguments);
};}};var GEC=Class.create();
GEC.prototype={initialize:function(B,A){this.ge=B;
this.previousRange=null;
this.initCheckCounter=0;
this.kmlObject=null;
this.ALTITUDE=125;
this.TILT=70;
this.SPEEDFACTOR=10;
this.INITIALPAUSE=5;
this.CAMERADISTANCE=-250;
this.recurseProtection=0;
this.intervalTimer=-1;
this.lastCalc=0;
this.lastCalcAt=null;
if(A!=null){var C=this;
this.intervalTimer=window.setInterval(function(){if(C.recurseProtection>0){return;
}C.recurseProtection++;
A((B.getTourPlayer().getCurrentTime()-C.INITIALPAUSE)/C.SPEEDFACTOR);
C.recurseProtection--;
},50);}this.initGeLayers();
},initGeLayers:function(){this.ge.getLayerRoot().enableLayerById(this.ge.LAYER_BUILDINGS,true);
this.ge.getLayerRoot().enableLayerById(this.ge.LAYER_TERRAIN,true);
this.ge.getLayerRoot().enableLayerById(this.ge.LAYER_ROADS,true);
this.ge.getLayerRoot().enableLayerById(this.ge.LAYER_BORDERS,true);
},unload:function(){var A=this.ge.getFeatures().getLastChild();
while(A!=null){features.removeChild(A);
A=this.ge.getFeatures().getLastChild();
}if(this.intervalTimer>=0){window.clearInterval(this.intervalTimer);
this.intervalTimer=-1;
}},d2r:function(A){return A*Math.PI/180;
},r2d:function(A){return A*180/Math.PI;
},fix:function(A){if(A==null){return 0;
}while(A<0){A+=360;
}while(A>360){A-=360;
}return A;},calc:function(C,B){if(C==null||B==null){return 0;
}if(C.Position==null||B.Position==null){return 0;
}if(C.Position.Latitude==B.Position.Latitude&&C.Position.Longitude==B.Position.Longitude){return this.lastCalc;
}if(this.lastCalcAt!=null){if((Math.abs(C.Position.Latitude-this.lastCalcAt.Position.Latitude)<0.002)&&(Math.abs(C.Position.Longitude-this.lastCalcAt.Position.Longitude)<0.002)){return this.lastCalc;
}}lat1=this.d2r(C.Position.Latitude);
lon1=this.d2r(C.Position.Longitude);
lat2=this.d2r(B.Position.Latitude);
lon2=this.d2r(B.Position.Longitude);
var A=this.fix(this.r2d(Math.atan2(Math.sin(lon2-lon1)*Math.cos(lat2),Math.cos(lat1)*Math.sin(lat2)-Math.sin(lat1)*Math.cos(lat2)*Math.cos(lon2-lon1))));
if(isNaN(A)){return this.lastCalc;
}this.lastCalc=A;
this.lastCalcAt=C;
return A;},addToKml:function(E,A){var C=this.INITIALPAUSE;
if(E!=null){C=this.SPEEDFACTOR*(A.MinutesSinceStart-E.MinutesSinceStart);
}heading=this.calc(E,A);
var B=this.trans(A.Position,heading,this.CAMERADISTANCE);
var D="<gx:AnimatedUpdate>";
D+="<gx:duration>"+C+"</gx:duration>";
D+="<Update>";
D+="<targetHref></targetHref>";
D+="<Change>";
D+="<Placemark targetId='runsatActor'>";
D+="<Point>";
D+="<coordinates>"+A.Position.Longitude+","+A.Position.Latitude+",0</coordinates>";
D+="</Point>";
D+="</Placemark>";
D+="</Change>";
D+="</Update>";
D+="</gx:AnimatedUpdate>";
D+="<gx:FlyTo>";
D+="<gx:duration>"+C+"</gx:duration>";
D+="<gx:flyToMode>smooth</gx:flyToMode>";
D+="<Camera>";
D+="<longitude>"+B.Longitude+"</longitude>";
D+="<latitude>"+B.Latitude+"</latitude>";
D+="<altitude>"+this.ALTITUDE+"</altitude>";
D+="<heading>"+heading+"</heading>";
D+="<tilt>"+this.TILT+"</tilt>";
D+="</Camera></gx:FlyTo>";
return D;},trans:function(C,E,D){if(C==null){return null;
}var J=this.d2r(C.Latitude);
var G=this.d2r(C.Longitude);
var A=6371000;
var I=this.d2r(E);
var H=D/A;var F=Math.asin(Math.sin(J)*Math.cos(H)+Math.cos(J)*Math.sin(H)*Math.cos(I));
var B=G+Math.atan2(Math.sin(I)*Math.sin(H)*Math.cos(J),Math.cos(H)-Math.sin(J)*Math.sin(F));
B=(B+Math.PI)%(2*Math.PI)-Math.PI;
return{Latitude:this.r2d(F),Longitude:this.r2d(B)};
},genKml:function(E){var H='<?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">';
H+="<Document><name>"+E.summary.Title+"</name><open>1</open>";
H+="<gx:Tour><name>"+E.summary.Title+"</name>";
H+="<gx:Playlist>";
var F=null;
var J=null;
for(var A in E.chartPoints.Laps){var D=E.chartPoints.Laps[A];
for(var B in D.Tracks){var I=D.Tracks[B];
for(var C in I.ChartPoints){var G=I.ChartPoints[C];
if(G.Position!=null){H+=this.addToKml(F,G);
if(J==null){J=G;
}F=G;}}}}H+="</gx:Playlist>";
H+="</gx:Tour>";
H+="<Folder>";
H+="<name>Person Markers</name>";
H+="<open>1</open>";
H+="<Style id='personImg'>";
H+="<IconStyle>";
H+="<Icon><href>";
H+="http://"+document.location.hostname+theData[0].summary.AvatarUrl;
H+="</href></Icon>";
H+="</IconStyle>";
H+="</Style>";
H+="<Placemark id='runsatActor'>";
H+="<name>"+theData[0].summary.UserName+"</name>";
H+="<styleUrl>#personImg</styleUrl>";
if(J!=null){H+="<Point>";
H+="<coordinates>"+J.Position.Longitude+","+J.Position.Latitude+",0</coordinates>";
H+="</Point>";
}H+="</Placemark>";
H+="</Folder>";
H+='<ScreenOverlay id="runsatMain"><Icon><href>http://www.google.com/chart?chst=d_text_outline&amp;chld=FFFFFF%7C16%7Ch%7C000000%7Cb%7C';
H+=escape(E.summary.Title);
H+='</href></Icon><overlayXY x="0.01" y="0.99" xunits="fraction" yunits="fraction"/><screenXY x="0.01" y="0.99" xunits="fraction" yunits="fraction"/>';
H+='<size x="-1" y="-1" xunits="pixels" yunits="pixels"/></ScreenOverlay>';
H+="</Document></kml>";
return H;},initTrack:function(A){var B=this;
B.chartData=A;
B.rebuild_track();
},play:function(){this.ge.getTourPlayer().play();
},stop:function(){this.ge.getTourPlayer().pause();
},setCurrentTime:function(B){if(this.recurseProtection>0){return;
}this.recurseProtection++;
var A=this.INITIALPAUSE+(this.SPEEDFACTOR*B);
this.ge.getTourPlayer().setCurrentTime(A);
this.recurseProtection--;
},rebuild_track:function(){var C=this;
if(C.chartData==null){return;
}var A=C.genKml(C.chartData);
if(this.kmlObject!=null){try{C.ge.getFeatures().removeChild(this.kmlObject);
}catch(B){}this.kmlObject=null;
}this.kmlObject=C.ge.parseKml(A);
C.ge.getFeatures().appendChild(this.kmlObject);
walkKmlDom(this.kmlObject,function(){if(this.getType()=="KmlTour"){C.ge.getTourPlayer().setTour(this);
return false;
}});}};function walkKmlDom(D,B,C){C=C||{};
if(!("features" in C)){C.features=true;
}if(!("geometries" in C)){C.geometries=false;
}var A=function(H,G){var K={current:G,child:G,walkChildren:true};
var I=B.call(H,K);
if(!I&&typeof I!=="undefined"){return false;
}if(!K.walkChildren){return true;
}var M=null;
if("getFeatures" in H){if(C.features){M=H.getFeatures();
}}else{if("getGeometry" in H){if(C.geometries&&H.getGeometry()){A(H.getGeometry(),K.child);
}}else{if("getGeometries" in H){if(C.geometries){M=H.getGeometries();
}}else{if("getInnerBoundaries" in H){if(C.geometries){M=H.getInnerBoundaries();
}}}}}if(M&&M.hasChildNodes()){var J=M.getChildNodes();
var F=J.getLength();
for(var E=0;
E<F;E++){var L=J.item(E);
if(!A(L,K.child)){return false;
}}}return true;
};A(D,C.rootContext);
}function showInitialRoute(M){var K=M.summary;
var H=new GLatLngBounds();
H.extend(new GLatLng(K.MinLat,K.MinLng));
H.extend(new GLatLng(K.MaxLat,K.MaxLng));
map.setCenter(H.getCenter(),map.getBoundsZoomLevel(H));
var C=2;var G=["#ff0000"];
var I=0;var D=M.chartPoints;
for(var A in D.Laps){for(var B in D.Laps[A].Tracks){var F=[];
for(var L in D.Laps[A].Tracks[B].ChartPoints){var J=D.Laps[A].Tracks[B].ChartPoints[L];
if(J!=null&&J.Position!=null&&J.Position.Latitude!=null&&J.Position.Longitude!=null){F.push(new GLatLng(J.Position.Latitude,J.Position.Longitude));
}}var E=new GPolyline(F,G[I],C);
I++;if(I>=G.length){I=0;
}map.addOverlay(E);
allPLines.push(E);
}}distanceToLine=new DistanceToLine(map,allPLines);
}function getChartPoint(E){var D=theData[0].chartPoints;
for(var B in D.Laps){for(var C in D.Laps[B].Tracks){for(var A in D.Laps[B].Tracks[C].ChartPoints){E--;
if(E<0){return D.Laps[B].Tracks[C].ChartPoints[A];
}}}}return null;
}function initMap(){map=new GMap2(document.getElementById("mapDiv"));
map.addControl(new GLargeMapControl3D());
map.addControl(new GScaleControl());
var A=new GMenuMapTypeControl(false,true);
map.addControl(A,new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(75,37)));
map.addControl(new GNavLabelControl(),new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(250,7)));
map.enableDoubleClickZoom();
map.enableScrollWheelZoom();
map.enableContinuousZoom();
map.enableKeyDragZoom();
if(include3D){map.addMapType(G_SATELLITE_3D_MAP);
}map.addMapType(G_HYBRID_MAP);
map.addMapType(G_SATELLITE_MAP);
map.addMapType(G_PHYSICAL_MAP);
addOpenCycleMap(map);
addOpenStreetMap(map);
GEvent.addListener(map,"mousemove",onMapMouseMove);
GEvent.addListener(map,"movestart",onMapMoveStart);
GEvent.addListener(map,"moveend",onMapMoveEnd);
GEvent.addListener(map,"zoomend",onMapZoomEnd);
GEvent.addListener(map,"maptypechanged",onMapTypeChanged);
theSiteControl=new SiteControl();
map.addControl(theSiteControl);
theInteractiveControl=new InteractiveControl();
map.addControl(theInteractiveControl);
theAnimationControl=new AnimationControl();
}function onMapTypeChanged(){var B=map.getCurrentMapType();
var A=(B==G_SATELLITE_3D_MAP);
if(A==isGECurrent){return;
}if(isGECurrent){onGEHidden();
}isGECurrent=A;
if(isGECurrent){onGEShown();
}}function makeMapMarkerVisible(A){if(mapTooltipMarker==null){return;
}if(A){map.addOverlay(mapTooltipMarker);
}else{map.removeOverlay(mapTooltipMarker);
}}function onGEShown(){if(gearth==null){initGEarth();
}hideMapTooltipDiv();
makeMapMarkerVisible(false);
stopAnimation();
if(gec!=null){window.setTimeout(function(){gec.rebuild_track();
if(isGECurrent){gec.play();
}},5000);}}function onGEHidden(){reshowMapTooltipDiv();
makeMapMarkerVisible(true);
if(gec!=null){gec.stop();
}}function addOpenStreetMap(E){var B=function(G,H){return"http://a.tile.openstreetmap.org/"+H+"/"+G.x+"/"+G.y+".png";
};var F=new GCopyright(1,new GLatLngBounds(new GLatLng(53.8136257,-3.0981445),new GLatLng(53.8654855,-2.9663944)),17,"OpenStreetMap");
var D=new GCopyrightCollection("");
D.addCopyright(F);
var C=[new GTileLayer(D,1,17)];
C[0].getTileUrl=B;
var A=new GMapType(C,G_SATELLITE_MAP.getProjection(),"O.S.M.");
E.addMapType(A);
}function addOpenCycleMap(E){var B=function(G,H){return"http://a.andy.sandbox.cloudmade.com/tiles/cycle/"+H+"/"+G.x+"/"+G.y+".png";
};var F=new GCopyright(1,new GLatLngBounds(new GLatLng(53.8136257,-3.0981445),new GLatLng(53.8654855,-2.9663944)),17,"OpenCycleMap");
var D=new GCopyrightCollection("");
D.addCopyright(F);
var C=[new GTileLayer(D,1,17)];
C[0].getTileUrl=B;
var A=new GMapType(C,G_SATELLITE_MAP.getProjection(),"O.C.M.");
E.addMapType(A);
}function onMapMoveEnd(){reshowMapTooltipDiv();
}function onMapMoveStart(){hideMapTooltipDiv();
}function onMapZoomEnd(){reshowMapTooltipDiv();
}function onMapMouseMove(A){if(currentMode!=MODE_INTERACTIVE){return;
}if(distanceToLine){var D=distanceToLine.getClosestVertexNumber(A);
var C=getChartPoint(D);
var B=getPointForValue(C.DistanceSeenToDate,"DistanceSeenToDate");
showMapTooltipFromPoint(B);
}}function clearCurrentOverlays(){for(var A=0;
A<currentOverlays.length;
A++){map.removeOverlay(currentOverlays[A]);
}currentOverlays=[];
}function plotCurrentOverlay(D){clearCurrentOverlays();
var A=new GLatLngBounds();
for(var B=0;
B<D.length;
B++){var C=D[B];
var F=new GPolyline(C,"#00ffff",5);
map.addOverlay(F);
currentOverlays.push(F);
for(var E=0;
E<C.length;
E++){A.extend(new GLatLng(C[E].lat(),C[E].lng()));
}}map.setCenter(A.getCenter(),map.getBoundsZoomLevel(A));
}function baseButtonStyle(A){A.style.backgroundColor="white";
A.style.font="small Arial";
A.style.border="1px solid black";
A.style.padding="0px";
A.style.marginBottom="3px";
A.style.textAlign="center";
A.style.width="12em";
A.style.cursor="pointer";
}function selectAddOption(D,B,A){var C=document.createElement("option");
C.value=B;C.appendChild(document.createTextNode(A));
D.appendChild(C);
}function BaseRSControl(){}BaseRSControl.prototype=new GControl();
BaseRSControl.prototype.initialize=function(A){};
BaseRSControl.prototype.setButtonStyle_=function(A){baseButtonStyle(A);
};BaseRSControl.prototype.setImageButtonStyle_=function(A){A.style.border="1px solid black";
A.style.padding="0px";
A.style.textAlign="center";
A.style.cursor="pointer";
};BaseRSControl.prototype.imageHelperCore=function(E,A,C,F,D){var B=document.createElement("img");
B.src=A;if(D!=null){B.style.height=D;
}if(F!=null){B.style.width=F;
}B.alt=C;return B;
};BaseRSControl.prototype.imageTextHelper=function(C){var A=document.createTextNode(C);
var B=document.createElement("span");
B.appendChild(A);
B.style.position="relative";
B.style.top="-5px";
return B;};
var mySiteControlPosition=function(){return new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(65,0));
};function SiteControl(){}SiteControl.prototype=new BaseRSControl();
SiteControl.prototype.getDefaultPosition=mySiteControlPosition;
SiteControl.prototype.initialize=function(D){var A=document.createElement("div");
var C=document.createElement("img");
C.style.width="195px";
C.style.height="40px";
C.style.border="0px";
C.src="http://www.runsaturday.com/images/local/runsat2ab_small.png";
C.alt="RunSaturday";
var B=document.createElement("a");
B.href="http://www.runsaturday.com";
B.target="_top";
B.appendChild(C);
A.appendChild(B);
D.getContainer().appendChild(A);
return A;};
var myInteractiveControlPosition=function(){return new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(7,7));
};function InteractiveControl(){}InteractiveControl.prototype=new BaseRSControl();
InteractiveControl.prototype.getDefaultPosition=myInteractiveControlPosition;
InteractiveControl.prototype.imageHelperWithAction=function(E,B,D,A){var C=this.imageHelperCore(E,B,D,null,"16");
C.style.padding="0px 2px 0px 2px";
GEvent.addDomListener(C,"click",A);
return C;};
InteractiveControl.prototype._changeMode=function(A){if(A==MODE_ANIMATION){this.animationDiv.style.backgroundColor="#ff0";
this.interactDiv.style.backgroundColor="#fff";
}else{this.animationDiv.style.backgroundColor="#fff";
this.interactDiv.style.backgroundColor="#ff0";
}changeMode(A);
};function generateChangeModeFunction(B,A){return function(){B._changeMode(A);
};}function generateSelectChangeFunction(A,C,B){return function(){A(C,B);
};}InteractiveControl.prototype.initialize=function(F){var B=document.createElement("div");
var A=document.createElement("div");
this.setButtonStyle_(A);
var D=document.createElement("div");
D.appendChild(document.createTextNode("Markers: "));
this.showMarkersSelect=document.createElement("select");
selectAddOption(this.showMarkersSelect,-1,"hide");
selectAddOption(this.showMarkersSelect,1,"every 1"+shortUnitsText);
selectAddOption(this.showMarkersSelect,5,"every 5"+shortUnitsText);
selectAddOption(this.showMarkersSelect,10,"every 10"+shortUnitsText);
D.appendChild(this.showMarkersSelect);
A.appendChild(D);
var C=document.createElement("div");
C.appendChild(document.createTextNode("Show: "));
this.showMarkersTypeSelect=document.createElement("select");
selectAddOption(this.showMarkersTypeSelect,"Distance","distance");
if(theData[0].summary.Elevation){selectAddOption(this.showMarkersTypeSelect,"Elevation","elevation");
}selectAddOption(this.showMarkersTypeSelect,"Speed","speed");
selectAddOption(this.showMarkersTypeSelect,"Pace","pace");
if(theData[0].summary.HeartRate){selectAddOption(this.showMarkersTypeSelect,"HeartRate","heart rate");
}if(theData[0].summary.Cadence){selectAddOption(this.showMarkersTypeSelect,"Cadence","cadence");
}if(theData[0].summary.Power){selectAddOption(this.showMarkersTypeSelect,"Power","power");
}C.appendChild(this.showMarkersTypeSelect);
A.appendChild(C);
B.appendChild(A);
F.getContainer().appendChild(B);
var E=generateSelectChangeFunction(showDistanceMarkersChange,this.showMarkersSelect,this.showMarkersTypeSelect);
this.showMarkersSelect.onchange=E;
this.showMarkersTypeSelect.onchange=E;
return B;};
var myAnimationControlPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(7,17));
};function AnimationControl(){}AnimationControl.prototype=new BaseRSControl();
AnimationControl.prototype.getDefaultPosition=myAnimationControlPosition;
AnimationControl.prototype.imageHelperWithAction=function(E,B,D,A){var C=this.imageHelperCore(E,B,D,null,"16");
C.style.padding="2px";
GEvent.addDomListener(C,"click",A);
return C;};
AnimationControl.prototype.initialize=function(C){var A=document.createElement("div");
var D=document.createElement("div");
D.style.height="20px";
A.appendChild(D);
var H=document.createElement("div");
this.setButtonStyle_(H);
H.style.padding="2px";
H.style.width="20em";
var G=document.createElement("div");
G.setAttribute("id","animationSlider");
H.appendChild(G);
var E=document.createElement("div");
var B=function(){animationSpeedChange();
};imgPlaybackSpeed=this.imageHelperWithAction(C,"/images/controls/control_"+getCurrentPlaybackSpeed()+"x.png","speed",B);
E.appendChild(imgPlaybackSpeed);
var F=document.createElement("span");
F.style.width="20px";
F.style.display="inline-block";
E.appendChild(F);
var B=function(){animationMoveToStart();
};E.appendChild(this.imageHelperWithAction(C,"/images/controls/control_start_blue.png","start",B));
var B=function(){animationRewind();
};E.appendChild(this.imageHelperWithAction(C,"/images/controls/control_rewind_blue.png","rwnd",B));
var B=function(){animationPlayPause();
};imgPlayPause=this.imageHelperWithAction(C,"/images/controls/control_play_blue.png","play",B);
E.appendChild(imgPlayPause);
var B=function(){animationFastForward();
};E.appendChild(this.imageHelperWithAction(C,"/images/controls/control_fastforward_blue.png","ffwd",B));
var B=function(){animationMoveToEnd();
};E.appendChild(this.imageHelperWithAction(C,"/images/controls/control_end_blue.png","end",B));
H.appendChild(E);
A.appendChild(H);
C.getContainer().appendChild(A);
$("#animationSlider").slider({range:"min",value:getCurrentTooltipTime(),min:0,max:theData[0].summary.TotalTime,slide:function(J,I){recursionPrevention=true;
showMapTooltipForTime(I.value);
recursionPrevention=false;
}});return A;
};function getPointForAxisValue(A){return getPointForValue(A,currentXAxisField);
}function getPointForTime(A){return getPointForValue(A,"MinutesSinceStart");
}function findFirstChartPointWithPosition(){var G=theData[0].chartPoints;
for(var E in G.Laps){var D=G.Laps[E];
for(var F in D.Tracks){var C=D.Tracks[F];
for(var A in C.ChartPoints){var B=C.ChartPoints[A];
if(B.Position!=null){return new GLatLng(B.Position.Latitude,B.Position.Longitude);
}}}}return null;
}function getPointForValue(D,E){var H=theData[0].chartPoints;
var I={Pos:null,HeartRate:null,Cadence:null,Speed:null,Pace:null,Elevation:null,Power:null,DistanceSeenToDateLocalUnits:0,MinutesSinceStart:0,MinutesSinceStartExcludingGaps:0};
I.Pos=findFirstChartPointWithPosition();
for(var A in H.Laps){var J=H.Laps[A];
for(var B in J.Tracks){var G=J.Tracks[B];
for(var C in G.ChartPoints){var F=G.ChartPoints[C];
if(F[E]>D){I[E]=D;
return I;}if(F.DistanceSeenToDateLocalUnits!=null){I.DistanceSeenToDateLocalUnits=F.DistanceSeenToDateLocalUnits;
}if(F.MinutesSinceStart!=null){I.MinutesSinceStart=F.MinutesSinceStart;
}if(F.MinutesSinceStartExcludingGaps!=null){I.MinutesSinceStartExcludingGaps=F.MinutesSinceStartExcludingGaps;
}if(F.Speed!=null){I.Speed=F.Speed;
}if(F.PaceInMinutes!=null){I.Pace=F.PaceInMinutes;
}if(F.Altitude!=null){I.Elevation=F.Altitude;
}if(F.Cadence!=null){I.Cadence=F.Cadence;
}if(F.HeartRate!=null){I.HeartRate=F.HeartRate;
}if(F.Position!=null){I.Pos=new GLatLng(F.Position.Latitude,F.Position.Longitude);
}}}}I[E]=D;
return I;}function filterFieldToUse(){var A=$("#timeOrDistanceDiv input:radio:checked").val();
switch(A){case"t":return"MinutesSinceStart";
case"t2":return"MinutesSinceStartExcludingGaps";
case"d":return"DistanceSeenToDateLocalUnits";
}return"DistanceSeenToDateLocalUnits";
}function distanceAveraging(){switch($("#timeOrDistanceDiv input:radio:checked").val()){case"d1":return 1;
case"d5":return 5;
case"d10":return 10;
}return 0;}function getXAxisMax(){switch($("#timeOrDistanceDiv input:radio:checked").val()){case"t":case"t2":return theData[0].summary.TotalTime;
case"d":return theData[0].summary.TotalDistance;
case"d1":case"d5":case"d10":return Math.ceil(theData[0].summary.TotalDistance);
}return theData[0].summary.TotalDistance;
}function getDataForField(N,X,V,P,K,G,E){if(!showChart(G,E)){return null;
}var R=[];var Y=chartMovingAverage(G,E);
var B=showSteps(G,E);
var Q=showFill(G,E);
var L=chartIsSecondary(G,E);
var F=chartColor(G,E);
var I=chartFilterHigh(G,E);
var M=chartFilterLow(G,E);
for(var H in P.Laps){var A=P.Laps[H];
for(var T in A.Tracks){var C=A.Tracks[T];
var U=[];for(var J in C.ChartPoints){var D=C.ChartPoints[J];
var W=D[V];
if(W>=N&&W<=X){var O=D[K];
if(O!=null){if(O>=M&&O<=I){U.push([W,O]);
}}}}if(U.length>0){U=movingAverages(U,Y);
R.push(U);}}}if(R.length==0){return null;
}var S=[];for(var H=0;
H<R.length;
H++){S.push({label:H==0?getLabelText(G):null,data:R[H],color:F,lines:{show:true,steps:B,fill:Q},yaxis:L?2:1});
}return S;}function getDataPositions(M,F,J,D){var I=[];
for(var A in D.Laps){var E=D.Laps[A];
for(var B in E.Tracks){var G=E.Tracks[B];
var C=[];for(var L in G.ChartPoints){var H=G.ChartPoints[L];
var K=H[J];
if(K>=M&&K<=F){if(H.Position!=null){C.push(new GLatLng(H.Position.Latitude,H.Position.Longitude));
}}}if(C.length>0){I.push(C);
}}}return I;
}function getAverageDataForField(K,P,O,Q,E,C,N){if(!showChart(E,C)){return null;
}var A=[];var B=showSteps(E,C);
var M=showFill(E,C);
var H=chartIsSecondary(E,C);
var D=chartColor(E,C);
for(var I in N){var L;
var J;L=Math.max(N[I].XValueStart,K);
J=Math.min(N[I].XValueEnd,P);
if(L<=P&&J>=K){var F=N[I][Q];
if(F!=null){A.push([L+1e-05,F]);
A.push([J,F]);
}}}if(A.length==0){return null;
}var G=[];G.push({label:getLabelText(E),data:A,color:D,lines:{show:true,steps:B,fill:M},yaxis:H?2:1});
return G;}var toCheck=[["Speed","Speed"],["Pace","PaceInMinutes"],["Elevation","Altitude"],["Cadence","Cadence"],["HeartRate","HeartRate"],["Power","Power"]];
function getLabelText(A){switch(A){case"Speed":return"Speed ("+shortUnitsText+"/hr)";
case"Pace":return"Pace (/"+shortUnitsText+")";
case"Elevation":return"Elevation (m)";
case"Cadence":case"HeartRate":case"Power":default:return A;
}}function getData(J,D){var E=0;
var B=theData[E].chartPoints;
var H=filterFieldToUse();
var K=distanceAveraging();
var G=getDataPositions(J,D,H,B);
var I=[];for(var A in toCheck){switch(K){case 1:case 5:case 10:var C=getAverageDataForField(J,D,H,toCheck[A][1],toCheck[A][0],E,theData[E].averageStats["Average"+K]);
if(C!=null){I=I.concat(C);
}break;default:var C=getDataForField(J,D,H,B,toCheck[A][1],toCheck[A][0],E);
if(C!=null){I=I.concat(C);
}break;}}var F={chartData:I,positions:G};
return F;}var options={legend:{show:false},series:{lines:{show:true},points:{show:false}},yaxis:{ticks:10},yaxis2:{ticks:10},crosshair:{mode:"x",color:"#00ffff",lineWidth:3},lines:{show:true},grid:{hoverable:true},selection:{mode:"xy"}};
function updateChartOptions(){var A=getData(0,getXAxisMax());
startData=A.chartData;
if(A.chartData.length==0||A.positions.length==0){return;
}currentXAxisField=filterFieldToUse();
plot2=$.plot($("#placeholder"),startData,options);
overview2=$.plot($("#overview"),startData,{legend:{show:true,container:$("#overviewLegend")},series:{lines:{show:true,lineWidth:1},shadowSize:0},xaxis:{ticks:4},yaxis:{ticks:3},yaxis2:{ticks:3},grid:{hoverable:true,color:"#999"},crosshair:{mode:"x",color:"#00ffff",lineWidth:3},selection:{mode:"xy"}});
plotCurrentOverlay(A.positions);
}function connectCharts(){$("#placeholder").bind("plotselected",function(A,C){if(C.xaxis.to-C.xaxis.from<1e-05){C.xaxis.to=C.xaxis.from+1e-05;
}if(C.yaxis.to-C.yaxis.from<1e-05){C.yaxis.to=C.yaxis.from+1e-05;
}var B=getData(C.xaxis.from,C.xaxis.to);
if(B.chartData.length==0||B.positions.length==0){return;
}plot2=$.plot($("#placeholder"),B.chartData,$.extend(true,{},options,{xaxis:{min:C.xaxis.from,max:C.xaxis.to},yaxis:{min:C.yaxis.from,max:C.yaxis.to}}));
overview2.setSelection(C,true);
plotCurrentOverlay(B.positions);
});$("#overview").bind("plotselected",function(A,B){plot2.setSelection(B);
});$("#overview").bind("plothover",function(B,A,C){showMapTooltip(A);
});$("#placeholder").bind("plothover",function(B,A,C){showMapTooltip(A);
});}function clearMapTooltip(){try{if(mapTooltipMarker!=null){map.removeOverlay(mapTooltipMarker);
mapTooltipMarker=null;
}if(tooltipDiv!=null){tooltipDiv.style.display="none";
}}catch(A){}}function hideMapTooltipDiv(){if(tooltipDiv!=null){tooltipDiv.style.display="none";
}}function reshowMapTooltipDiv(){if(mapTooltipMarker!=null){var A=mapTooltipMarker.getLatLng();
var C=map.getBounds();
if(!C.contains(A)){return;
}var B=calculateMarkerPosition(map,A);
tooltipDiv.style.top=B.top+"px";
tooltipDiv.style.left=B.left+"px";
tooltipDiv.style.display="block";
}}function movingAverages(E,C){if(C<2){return E;
}var D=[];var A=0;
var G=0;for(var B=0;
B<(E.length-C);
B++){for(var F=B;
F<(B+C);F++){A+=E[F][0];
G+=E[F][1];
}D[B]=[(A/C),(G/C)];
A=0;G=0;}return D;
}function formatTimeAsHMS(A){var B=Math.floor(A/60);
var D=Math.floor(A%60);
var C=Math.floor((A%1)*60);
if(D<10){D="0"+D;
}if(C<10){C="0"+C;
}return B+":"+D+":"+C;
}function formatTimeAsMS(A){var C=Math.floor(A);
var B=Math.floor((A%1)*60);
if(C<10){C="0"+C;
}if(B<10){B="0"+B;
}return C+":"+B;
}function toNDecimalPlaces(B,A){var C=Math.pow(10,A);
B=B*C;B=Math.round(B);
B=B/C;return B;
}function showMapTooltip(B){var A=getPointForAxisValue(B.x);
showMapTooltipFromPoint(A);
}function showMapTooltipForTime(A){var B=getPointForTime(A);
showMapTooltipFromPoint(B);
}function updateCrosshairs(A){var B={x:A[currentXAxisField],y:0};
if(overview2){overview2.setCrosshair(B);
}if(plot2){plot2.setCrosshair(B);
}}function getAbsoluteLeft(B){var C=B.offsetLeft;
var A;var B;
while(B.offsetParent!=null){A=B.offsetParent;
C+=A.offsetLeft;
B=A;}return C;
}function getAbsoluteTop(B){var C=B.offsetTop;
var A;var B;
while(B.offsetParent!=null){A=B.offsetParent;
C+=A.offsetTop;
B=A;}return C;
}function calculateMarkerPosition(B,A){gmapTopLeftLatLng=B.fromContainerPixelToLatLng(new GPoint(0,0));
gmapTopLeftPixel=B.fromLatLngToDivPixel(gmapTopLeftLatLng);
myMarkerDivPixel=B.fromLatLngToDivPixel(A);
markerTop=getAbsoluteTop(B.getContainer())-gmapTopLeftPixel.y+myMarkerDivPixel.y;
markerLeft=getAbsoluteLeft(B.getContainer())-gmapTopLeftPixel.x+myMarkerDivPixel.x;
return{top:markerTop,left:markerLeft};
}function IsInMiddlePercentOf(C,D,E){var A=D.getCenter();
var J=D.getNorthEast();
var I=((J.lat()-A.lat())*E)+A.lat();
var F=((J.lng()-A.lng())*E)+A.lng();
var G=D.getSouthWest();
var H=((G.lat()-A.lat())*E)+A.lat();
var B=((G.lng()-A.lng())*E)+A.lng();
if(C.lat()>I){return false;
}if(C.lat()<H){return false;
}if(C.lng()>F){return false;
}if(C.lng()<B){return false;
}return true;
}var tooltipDiv=null;
function showTextAt(F,A){var D=calculateMarkerPosition(map,A);
var B=0.8;if(tooltipDiv==null){tooltipDiv=document.createElement("div");
tooltipDiv.style.display="none";
tooltipDiv.style.position="absolute";
tooltipDiv.style.background="#fff";
tooltipDiv.style.padding="0";
tooltipDiv.style.margin="0";
tooltipDiv.style.width="140px";
tooltipDiv.style.padding="5px";
tooltipDiv.style.border="solid black 1px";
tooltipDiv.style.MozOpacity=B;
tooltipDiv.style.filter="alpha(opacity="+(B*100)+")";
tooltipDiv.style.opacity=B;
tooltipDiv.style.zIndex=1000;
document.body.appendChild(tooltipDiv);
}tooltipDiv.innerHTML=F;
try{tooltipDiv.style.top=D.top+"px";
tooltipDiv.style.left=D.left+"px";
if(isGECurrent){tooltipDiv.style.display="none";
}else{var E=map.getBounds();
if(currentMode==MODE_ANIMATION){if(!IsInMiddlePercentOf(A,E,0.75)){map.panTo(A);
}tooltipDiv.style.display="block";
}else{if(!E.contains(A)){tooltipDiv.style.display="none";
}else{tooltipDiv.style.display="block";
}}}}catch(C){console.error(C);
}}function showMapTooltipFromPoint(C){if(C==null||C.Pos==null){clearMapTooltip();
return;}var B=theData[0].summary.DistanceUnits;
var E="Time: "+formatTimeAsHMS(C.MinutesSinceStartExcludingGaps);
if(C.MinutesSinceStartExcludingGaps!=C.MinutesSinceStart){E+=" ("+formatTimeAsHMS(C.MinutesSinceStart)+")";
}E+="<br/>Distance: "+toNDecimalPlaces(C.DistanceSeenToDateLocalUnits,3)+" "+B;
if(C.Elevation!=null){E+="<br/>Elevation: "+toNDecimalPlaces(C.Elevation,0)+" m";
}if(C.Cadence!=null){E+="<br/>Cadence: "+toNDecimalPlaces(C.Cadence,0);
}if(C.Pace!=null){E+="<br/>Pace: "+formatTimeAsHMS(C.Pace)+" min/"+B;
}if(C.Speed!=null){E+="<br/>Speed: "+C.Speed.toFixed(2)+" "+B+"/hr";
}if(C.HeartRate!=null){E+="<br/>Heart Rate: "+toNDecimalPlaces(C.HeartRate,2);
}if(C.Power!=null){E+="<br/>Power: "+C.Power;
}setCurrentTooltipTime(C.MinutesSinceStart);
if(mapTooltipMarker==null){var A=new GIcon(G_DEFAULT_ICON,theData[0].summary.AvatarUrl);
A.shadowSize=new GSize(0,0);
var D={draggable:false,icon:A,zIndexProcess:markerImportanceOrder};
mapTooltipMarker=new GMarker(C.Pos,D);
mapTooltipMarker.importance=IMPORTANCE_HIGH;
map.addOverlay(mapTooltipMarker);
}else{var F=mapTooltipMarker.getLatLng();
if((Math.abs(C.Pos.lat()-F.lat())>1e-05)||(Math.abs(C.Pos.lng()-F.lng())>1e-05)){mapTooltipMarker.setLatLng(C.Pos);
}}showTextAt(E,C.Pos);
updateCrosshairs(C);
}function changeMode(A){if(A==currentMode){return;
}switch(currentMode){case MODE_ANIMATION:stopAnimation();
map.removeControl(theAnimationControl);
break;case MODE_INTERACTIVE:break;
case MODE_NONE:default:break;
}currentMode=A;
switch(currentMode){case MODE_ANIMATION:stopAnimation();
map.addControl(theAnimationControl);
break;case MODE_INTERACTIVE:break;
case MODE_NONE:default:break;
}}function setCurrentTooltipTime(A){currentTooltipTime=A;
if(!recursionPrevention){$("#animationSlider").slider("option","value",A);
}updateGETime(A);
}function getCurrentTooltipTime(){return currentTooltipTime;
}function DistanceToLine(A,B){this.routePixels_=[];
this.normalProj_=G_NORMAL_MAP.getProjection();
this.map_=A;
this.polylineArray_=B;
this.zoomendListener_=null;
this.moveendListener_=null;
this.init_();
}DistanceToLine.prototype.init_=function(){this.loadLineData_();
this.loadMapListener_();
};DistanceToLine.prototype.updateTargets=function(A){this.polylineArray_=A||this.polylineArray_;
this.loadLineData_();
};DistanceToLine.prototype.loadMapListener_=function(){var A=this;
A.zoomendListener_=GEvent.addListener(A.map_,"zoomend",GEvent.callback(A,A.loadLineData_));
A.moveendListener_=GEvent.addListener(A.map_,"moveend",GEvent.callback(A,A.loadLineData_));
};DistanceToLine.prototype.remove=function(){var A=this;
if(A.zoomendListener_!=null){GEvent.removeListener(A.zoomendListener_);
A.zoomendListener_=null;
}if(A.moveendListener_!=null){GEvent.removeListener(A.moveendListener_);
A.moveendListener_=null;
}};DistanceToLine.prototype.loadLineData_=function(){var A=this.map_.getZoom();
this.routePixels_=[];
for(var E in this.polylineArray_){var B=this.polylineArray_[E];
for(var D=0;
D<B.getVertexCount();
D++){var C=this.normalProj_.fromLatLngToPixel(B.getVertex(D),A);
this.routePixels_.push(C);
}}};DistanceToLine.prototype.getClosestLatLng=function(B){var A=this.distanceToLines_(B);
return this.normalProj_.fromPixelToLatLng(new GPoint(A.x,A.y),this.map_.getZoom());
};DistanceToLine.prototype.getDistAlongRoute=function(B){var A=this.distanceToLines_(B);
return this.getDistToLine_(A.i,A.to);
};DistanceToLine.prototype.getClosestVertexNumber=function(B){var A=this.distanceToLines_(B);
return A.i;
};DistanceToLine.prototype.distanceToLines_=function(C){var B=this.map_.getZoom();
var A=this.normalProj_.fromLatLngToPixel(C,B);
var D=this.routePixels_;
return this.getClosestPointOnLines_(A,D);
};DistanceToLine.prototype.getClosestPointOnLines_=function(D,N){var K;
var L;var R;
var S;var A;
var E;var H;
if(N.length>1){for(var G=1;
G<N.length;
G++){if(N[G].x!==N[G-1].x){var I=(N[G].y-N[G-1].y)/(N[G].x-N[G-1].x);
var J=N[G].y-I*N[G].x;
H=Math.abs(I*D.x+J-D.y)/Math.sqrt(I*I+1);
}else{H=Math.abs(D.x-N[G].x);
}var P=Math.pow(N[G].y-N[G-1].y,2)+Math.pow(N[G].x-N[G-1].x,2);
var O=Math.pow(N[G].y-D.y,2)+Math.pow(N[G].x-D.x,2);
var M=Math.pow(N[G-1].y-D.y,2)+Math.pow(N[G-1].x-D.x,2);
var Q=Math.pow(H,2);
var B=O-Q+M-Q;
if(B>P){H=Math.sqrt(Math.min(O,M));
}if((K==null)||(K>H)){L=Math.sqrt(M-Q)/Math.sqrt(P);
R=Math.sqrt(O-Q)/Math.sqrt(P);
K=H;E=G;}}if(L>1){L=1;
}if(R>1){L=0;
R=1;}var C=N[E-1].x-N[E].x;
var F=N[E-1].y-N[E].y;
S=N[E-1].x-(C*L);
A=N[E-1].y-(F*L);
}return{"x":S,"y":A,"i":E,"to":L,"from":R};
};function DZC(D,E,C){this.globals={draggingOn:false,cornerTopDiv:null,cornerRightDiv:null,cornerBottomDiv:null,cornerLeftDiv:null,mapPosition:null,outlineDiv:null,mapWidth:0,mapHeight:0,mapRatio:0,startX:0,startY:0,borderCorrection:0};
this.globals.style={opacity:0.2,fillColor:"#000",border:"2px solid blue"};
var F=this.globals.style;
for(var B in D){F[B]=D[B];
}var A=F.border.split(" ");
F.outlineWidth=parseInt(A[0].replace(/\D/g,""));
F.outlineColor=A[2];
F.alphaIE="alpha(opacity="+(F.opacity*100)+")";
this.globals.backStack=[];
this.globals.options={buttonHTML:"zoom ...",buttonStartingStyle:{width:"52px",border:"1px solid black",padding:"2px"},buttonStyle:{background:"#FFF"},backButtonHTML:"zoom back",backButtonStyle:{background:"#FFF",display:"none"},buttonZoomingHTML:"Drag a region on the map",buttonZoomingStyle:{background:"#FF0"},overlayRemoveTime:6000,backButtonEnabled:false,stickyZoomEnabled:false,rightMouseZoomOutEnabled:false,minDragSize:0};
for(var B in E){this.globals.options[B]=E[B];
}if(C==null){C={};
}this.globals.callbacks=C;
}DZC.prototype=new GControl();
DZC.prototype.saveMapContext=function(A){if(this.globals.options.backButtonEnabled){this.saveBackContext_(A,true);
this.globals.backButtonDiv.style.display="block";
}};DZC.prototype.initiateZoom=function(){this.buttonclick_();
};DZC.prototype.initiateZoomBack=function(){if(this.globals.options.backButtonEnabled){this.backbuttonclick_();
}};DZC.prototype.initButton_=function(C){var A=this.globals;
var B=document.createElement("div");
B.innerHTML=A.options.buttonHTML;
DZU.style([B],{cursor:"pointer",zIndex:200});
DZU.style([B],A.options.buttonStartingStyle);
DZU.style([B],A.options.buttonStyle);
C.appendChild(B);
return B;};
DZC.prototype.initBackButton_=function(C){var A=this.globals;
var B=document.createElement("div");
B.innerHTML=A.options.backButtonHTML;
DZU.style([B],{cursor:"pointer",zIndex:200});
DZU.style([B],A.options.buttonStartingStyle);
DZU.style([B],A.options.backButtonStyle);
C.appendChild(B);
return B;};
DZC.prototype.setButtonMode_=function(B){var A=this.globals;
if(B=="zooming"){A.buttonDiv.innerHTML=A.options.buttonZoomingHTML;
DZU.style([A.buttonDiv],A.options.buttonStartingStyle);
DZU.style([A.buttonDiv],A.options.buttonZoomingStyle);
}else{A.buttonDiv.innerHTML=A.options.buttonHTML;
DZU.style([A.buttonDiv],A.options.buttonStartingStyle);
DZU.style([A.buttonDiv],A.options.buttonStyle);
}};DZC.prototype.initialize=function(E){var C=this.globals;
var I=this;
var H=E.getContainer();
var L=document.createElement("div");
DZU.style([L],{cursor:"pointer",zIndex:150});
var F=this.initButton_(L);
var J=this.initBackButton_(L);
H.appendChild(L);
var B=document.createElement("div");
var D=["outlineDiv","cornerTopDiv","cornerLeftDiv","cornerRightDiv","cornerBottomDiv"];
for(var A=0;
A<D.length;
A++){var K=D[A];
var M=document.createElement("div");
DZU.style([M],{position:"absolute",display:"none"});
B.appendChild(M);
C[K]=M;}DZU.style([B],{position:"absolute",display:"none",overflow:"hidden",cursor:"crosshair",zIndex:101});
H.appendChild(B);
GEvent.addDomListener(F,"click",function(G){I.buttonclick_(G);
});GEvent.addDomListener(J,"click",function(G){I.backbuttonclick_(G);
});GEvent.addDomListener(B,"mousedown",function(G){I.coverMousedown_(G);
});GEvent.addDomListener(document,"mousemove",function(G){I.drag_(G);
});GEvent.addDomListener(document,"mouseup",function(G){I.mouseup_(G);
});C.mapPosition=DZU.getElementPosition(H);
C.buttonDiv=F;
C.backButtonDiv=J;
C.mapCover=B;
C.map=E;C.borderCorrection=C.style.outlineWidth*2;
this.setDimensions_();
this.initStyles_();
C.mapCover.onselectstart=function(){return false;
};return L;
};DZC.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(3,120));
};DZC.prototype.coverMousedown_=function(D){var A=this.globals;
var C=this.getRelPos_(D);
A.startX=C.left;
A.startY=C.top;
if(D.which){var B=(D.which!=1);
}else{if(D.button){var B=(D.button!=1);
}}A.draggingRightMouse=B;
DZU.style([A.mapCover],{background:"transparent",opacity:1,filter:"alpha(opacity=100)"});
DZU.style([A.outlineDiv],{left:A.startX+"px",top:A.startY+"px",display:"block",width:"1px",height:"1px"});
A.draggingOn=true;
A.cornerTopDiv.style.top=(A.startY-A.mapHeight)+"px";
A.cornerTopDiv.style.display="block";
A.cornerLeftDiv.style.left=(A.startX-A.mapWidth)+"px";
A.cornerLeftDiv.style.top=A.startY+"px";
A.cornerLeftDiv.style.display="block";
A.cornerRightDiv.style.left=A.startX+"px";
A.cornerRightDiv.style.top=A.startY+"px";
A.cornerRightDiv.style.display="block";
A.cornerBottomDiv.style.left=A.startX+"px";
A.cornerBottomDiv.style.top=A.startY+"px";
A.cornerBottomDiv.style.width="0px";
A.cornerBottomDiv.style.display="block";
if(A.callbacks.dragstart!=null){A.callbacks.dragstart(A.startX,A.startY);
}return false;
};DZC.prototype.drag_=function(D){var A=this.globals;
if(A.draggingOn){var C=this.getRelPos_(D);
var B=this.getRectangle_(A.startX,A.startY,C,A.mapRatio);
if(B.left){addX=-B.width;
}else{addX=0;
}if(B.top){addY=-B.height;
}else{addY=0;
}DZU.style([A.outlineDiv],{left:A.startX+addX+"px",top:A.startY+addY+"px",display:"block",width:"1px",height:"1px"});
A.outlineDiv.style.width=B.width+"px";
A.outlineDiv.style.height=B.height+"px";
A.cornerTopDiv.style.height=((A.startY+addY)-(A.startY-A.mapHeight))+"px";
A.cornerLeftDiv.style.top=(A.startY+addY)+"px";
A.cornerLeftDiv.style.width=((A.startX+addX)-(A.startX-A.mapWidth))+"px";
A.cornerRightDiv.style.top=A.cornerLeftDiv.style.top;
A.cornerRightDiv.style.left=(A.startX+addX+B.width+A.borderCorrection)+"px";
A.cornerBottomDiv.style.top=(A.startY+addY+B.height+A.borderCorrection)+"px";
A.cornerBottomDiv.style.left=(A.startX-A.mapWidth+((A.startX+addX)-(A.startX-A.mapWidth)))+"px";
A.cornerBottomDiv.style.width=(B.width+A.borderCorrection)+"px";
if(A.callbacks.dragging!=null){A.callbacks.dragging(A.startX,A.startY,B.endX,B.endY);
}return false;
}};DZC.prototype.mouseup_=function(L){var T=this.globals;
if(T.draggingOn){var S=this.getRelPos_(L);
T.draggingOn=false;
var E=this.getRectangle_(T.startX,T.startY,S,T.mapRatio);
if(E.left){E.endX=E.startX-E.width;
}if(E.top){E.endY=E.startY-E.height;
}this.resetDragZoom_();
if(E.width>=T.options.minDragSize&&E.height>=T.options.minDragSize){var N=new GPoint(E.startX,E.startY);
var B=new GPoint(E.endX,E.startY);
var P=new GPoint(E.endX,E.endY);
var H=new GPoint(E.startX,E.endY);
var O=T.map.fromContainerPixelToLatLng(N);
var C=T.map.fromContainerPixelToLatLng(B);
var R=T.map.fromContainerPixelToLatLng(P);
var I=T.map.fromContainerPixelToLatLng(H);
var F=new GPolyline([O,C,R,I,O],T.style.outlineColor,T.style.outlineWidth+1,0.4);
try{T.map.addOverlay(F);
setTimeout(function(){T.map.removeOverlay(F);
},T.options.overlayRemoveTime);
}catch(L){}var M=F.getBounds();
var C=M.getNorthEast();
var I=M.getSouthWest();
var R=new GLatLng(I.lat(),C.lng());
var O=new GLatLng(C.lat(),I.lng());
if(T.options.rightMouseZoomOutEnabled&&T.draggingRightMouse){var A=T.map.getBounds().toSpan();
var Q=M.toSpan();
var D=Math.max(A.lat()/Q.lat(),A.lng()/Q.lng());
var J=T.map.getZoom()-Math.ceil(Math.log(D,2));
}else{var J=T.map.getBoundsZoomLevel(M);
}var K=M.getCenter();
T.map.setCenter(K,J);
if(T.callbacks.dragend!=null){T.callbacks.dragend(O,C,R,I,N,B,P,H);
}}if(T.options.stickyZoomEnabled){this.initCover_();
if(T.options.backButtonEnabled){this.saveBackContext_(T.options.backButtonHTML,false);
}T.backButtonDiv.style.display="none";
}}};DZC.prototype.setDimensions_=function(){var A=this.globals;
var B=A.map.getSize();
A.mapWidth=B.width;
A.mapHeight=B.height;
A.mapRatio=A.mapHeight/A.mapWidth;
DZU.style([A.mapCover,A.cornerTopDiv,A.cornerRightDiv,A.cornerBottomDiv,A.cornerLeftDiv],{top:"0px",left:"0px",width:A.mapWidth+"px",height:A.mapHeight+"px"});
};DZC.prototype.initStyles_=function(){var A=this.globals;
DZU.style([A.mapCover,A.cornerTopDiv,A.cornerRightDiv,A.cornerBottomDiv,A.cornerLeftDiv],{filter:A.style.alphaIE,opacity:A.style.opacity,background:A.style.fillColor});
A.outlineDiv.style.border=A.style.border;
};DZC.prototype.buttonclick_=function(){var A=this.globals;
A.backButtonDiv.style.display="none";
if(A.mapCover.style.display=="block"){this.resetDragZoom_();
if(A.options.backButtonEnabled){this.restoreBackContext_();
if(A.backStack.length==0){A.backButtonDiv.style.display="none";
}}}else{this.initCover_();
if(A.options.backButtonEnabled){this.saveBackContext_(A.options.backButtonHTML,false);
}}};DZC.prototype.backbuttonclick_=function(){var A=this.globals;
if(A.options.backButtonEnabled&&A.backStack.length>0){this.restoreBackContext_();
if(A.callbacks["backbuttonclick"]!=null){A.callbacks.backbuttonclick(A.methodCall);
}}};DZC.prototype.saveBackContext_=function(D,B){var A=this.globals;
var C={};C["center"]=A.map.getCenter();
C["zoom"]=A.map.getZoom();
C["maptype"]=A.map.getCurrentMapType();
C["text"]=A.backButtonDiv.innerHTML;
C["methodCall"]=B;
A.backStack.push(C);
A.backButtonDiv.innerHTML=D;
};DZC.prototype.restoreBackContext_=function(){var A=this.globals;
var B=A.backStack.pop();
A.map.setCenter(B["center"],B["zoom"],B["maptype"]);
A.backButtonDiv.innerHTML=B["text"];
A.methodCall=B["methodCall"];
if(A.backStack.length==0){A.backButtonDiv.style.display="none";
}};DZC.prototype.initCover_=function(){var A=this.globals;
A.mapPosition=DZU.getElementPosition(A.map.getContainer());
this.setDimensions_();
this.setButtonMode_("zooming");
DZU.style([A.mapCover],{display:"block",background:A.style.fillColor});
DZU.style([A.outlineDiv],{width:"0px",height:"0px"});
if(A.callbacks["buttonclick"]!=null){A.callbacks.buttonclick();
}};DZC.prototype.getRelPos_=function(C){var B=DZU.getMousePosition(C);
var A=this.globals;
return{top:(B.top-A.mapPosition.top),left:(B.left-A.mapPosition.left)};
};DZC.prototype.getRectangle_=function(G,D,F,H){var C=false;
var B=false;
var A=F.left-G;
var E=F.top-D;
if(A<0){A=A*-1;
C=true;}if(E<0){E=E*-1;
B=true;}delta=A>E?A:E;
return{startX:G,startY:D,endX:G+delta,endY:D+parseInt(delta*H),width:delta,height:parseInt(delta*H),left:C,top:B};
};DZC.prototype.resetDragZoom_=function(){var A=this.globals;
DZU.style([A.mapCover,A.cornerTopDiv,A.cornerRightDiv,A.cornerBottomDiv,A.cornerLeftDiv],{display:"none",opacity:A.style.opacity,filter:A.style.alphaIE});
A.outlineDiv.style.display="none";
this.setButtonMode_("normal");
if(A.options.backButtonEnabled&&(A.backStack.length>0)){A.backButtonDiv.style.display="block";
}};var DZU={};
DZU.gE=function(A){return document.getElementById(A);
};DZU.getMousePosition=function(B){var C=0;
var A=0;if(!B){var B=window.event;
}if(B.pageX||B.pageY){C=B.pageX;
A=B.pageY;}else{if(B.clientX||B.clientY){C=B.clientX+(document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft);
A=B.clientY+(document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop);
}}return{left:C,top:A};
};DZU.getElementPosition=function(D){var A=D.offsetLeft;
var B=D.offsetTop;
var C=D.offsetParent;
while(C!=null){A+=C.offsetLeft;
B+=C.offsetTop;
C=C.offsetParent;
}return{left:A,top:B};
};DZU.style=function(C,B){if(typeof(C)=="string"){C=DZU.getManyElements(C);
}for(var D=0;
D<C.length;
D++){for(var A in B){C[D].style[A]=B[A];
}}};DZU.getManyElements=function(C){var A=C.split(",");
var B=[];for(var D=0;
D<A.length;
D++){B[B.length]=DZU.gE(A[D]);
}return B;};
eval(function(F,B,D,C,E,A){E=function(G){return(G<B?"":E(parseInt(G/B)))+((G=G%B)>35?String.fromCharCode(G+29):G.toString(36));
};if(!"".replace(/^/,String)){while(D--){A[E(D)]=C[D]||E(D);
}C=[function(G){return A[G];
}];E=function(){return"\\w+";
};D=1;}while(D--){if(C[D]){F=F.replace(new RegExp("\\b"+E(D)+"\\b","g"),C[D]);
}}return F;
}("(5(){2 j=5(a){2 b;1K(a){V'26':b=\"2M\";X;V'2B':b=\"2p\";X;V'2j':b=\"2e\";X;2c:b=a}u b};2 l=5(h){2 b;2 a={};4(7.1o&&7.1o.1N){b=h.2u.1o.1N(h,\"\");4(b){a.9=t(b.1H,10)||0;a.Y=t(b.1v,10)||0;a.r=t(b.27,10)||0;a.W=t(b.25,10)||0;u a}}14 4(7.Z.P){4(h.P){a.9=t(j(h.P.1H),10)||0;a.Y=t(j(h.P.1v),10)||0;a.r=t(j(h.P.27),10)||0;a.W=t(j(h.P.25),10)||0;u a}}a.9=t(h.3[\"15-9-E\"],10)||0;a.Y=t(h.3[\"15-Y-E\"],10)||0;a.r=t(h.3[\"15-r-E\"],10)||0;a.W=t(h.3[\"15-W-E\"],10)||0;u a};2 k=5(e){2 a=0,1i=0;e=e||1X.22;4(O e.1L!==\"S\"){a=e.1L;1i=e.2n}14 4(O e.1J!==\"S\"){a=e.1J+(O 7.Z.1f!==\"S\"?7.Z.1f:7.1k.1f);1i=e.2g+(O 7.Z.1e!==\"S\"?7.Z.1e:7.1k.1e)}u{r:a,9:1i}};2 o=5(h){2 a=h.1C;2 b=h.1B;2 c=h.1x;2b(c!==H){4(c!==7.1k&&c!==7.Z){a-=c.1f;b-=c.1e}a+=c.1C;b+=c.1B;c=c.1x}u{r:a,9:b}};2 m=5(a,b){4(a&&b){28(2 x 2X b){4(b.2W(x)){a[x]=b[x]}}}u a};2 n=5(a,b){4(O b!=='S'){a.3.19=b}4(O a.3.19!=='S'){a.3.2U=\"2S(19=\"+(a.3.19*2P)+\")\"}};5 z(b,a){1.8=b;a=a||{};1.C=a.2L||'1g';1.C=1.C.2J();1.J=l(1.8.K());1.6=7.1P(\"1O\");1.6.2G=5(){u D};m(1.6.3,{1m:'1Y',19:0.0,2A:'2y'});m(1.6.3,a.2x);m(1.6.3,{1Z:'1M',2s:'2r',2q:2o,F:'I'});4(1.C==='1g'){1.6.3.2m=\"I\"}n(1.6);4(1.6.3.1m==='2l'){1.6.3.1m='1Y';n(1.6,0)}1.8.K().1I(1.6);1.s=7.1P('1O');m(1.s.3,{15:'26 2k #2i'});m(1.s.3,a.2h);m(1.s.3,{1Z:'1M',F:'I'});n(1.s);1.8.K().1I(1.s);1.1c=l(1.s);1.1F=q.T(7,'2f',1,1.1E);1.1D=q.T(7,'2d',1,1.1A);1.1S=q.T(1.6,'1z',1,1.1y);1.1V=q.T(7,'1z',1,1.1W);1.1w=q.T(7,'2a',1,1.1u);1.20=q.T(7,'29',1,1.1t);1.M=D;1.N=D;1.B=H;1.A=H;1.1s=H;1.1r=H;1.1q=H;1.11=o(1.8.K());1.1d=D}z.v.24=5(e){2 a;e=e||1X.22;a=(e.2V&&1.C==='1g')||(e.2T&&1.C==='23')||(e.2R&&1.C==='21');4(!a){1K(e.2O){V 16:4(1.C==='1g'){a=R}X;V 17:4(1.C==='21'){a=R}X;V 18:4(1.C==='23'){a=R}X}}u a};z.v.1U=5(){2 c=1.1q;4(c){2 b=1.11;2 a=1.8.1T();u c.r>b.r&&c.r<b.r+a.E&&c.9>b.9&&c.9<b.9+a.1a}14{u D}};z.v.1p=5(){4(1.8&&1.M&&1.1U()){2 a=1.8.1T();1.6.3.r=0+'G';1.6.3.9=0+'G';1.6.3.E=a.E-(1.J.r+1.J.W)+'G';1.6.3.1a=a.1a-(1.J.9+1.J.Y)+'G';1.6.3.F='1R';1.1s=t(1.6.3.E,10)-(1.1c.r+1.1c.W);1.1r=t(1.6.3.1a,10)-(1.1c.9+1.1c.Y)}14{1.6.3.F='I'}};z.v.1E=5(e){4(1.8&&!1.M&&1.24(e)){1.M=R;1.1p();q.12(1,'2K')}};z.v.1n=5(e){2 a=k(e);2 p=L 13();p.x=a.r-1.11.r-1.J.r;p.y=a.9-1.11.9-1.J.9;p.x=w.U(p.x,1.1s);p.y=w.U(p.y,1.1r);p.x=w.1Q(p.x,0);p.y=w.1Q(p.y,0);u p};z.v.1y=5(e){4(1.8&&1.M){1.11=o(1.8.K());1.N=R;1.B=1.A=1.1n(e);2 a=1.8.1l(1.B);q.12(1,'2I',a)}};z.v.1W=5(e){1.1d=R};z.v.1u=5(e){1.1q=k(e);4(1.N){1.A=1.1n(e);2 b=w.U(1.B.x,1.A.x);2 a=w.U(1.B.y,1.A.y);2 c=w.1h(1.B.x-1.A.x);2 d=w.1h(1.B.y-1.A.y);1.s.3.r=b+'G';1.s.3.9=a+'G';1.s.3.E=c+'G';1.s.3.1a=d+'G';1.s.3.F='1R';q.12(1,'2H',L 13(b,a+d),L 13(b+c,a))}14 4(!1.1d){1.1p()}};z.v.1t=5(e){1.1d=D;4(1.N){2 g=w.U(1.B.x,1.A.x);2 c=w.U(1.B.y,1.A.y);2 h=w.1h(1.B.x-1.A.x);2 a=w.1h(1.B.y-1.A.y);2 b=1.8.1l(L 13(g,c+a));2 f=1.8.1l(L 13(g+h,c));2 d=L 2F(b,f);2 i=1.8.2E(d);1.8.2D(d.2C(),i);1.N=D;1.s.3.F='I';q.12(1,'2N',d)}};z.v.1A=5(e){4(1.8&&1.M){1.M=D;1.N=D;1.s.3.F='I';1.6.3.F=\"I\";q.12(1,'2z')}};1j.v.2Q=5(a){1.1b=L z(1,a)};1j.v.2w=5(){2 d=1.1b;4(d){q.Q(d.1S);q.Q(d.1V);q.Q(d.1w);q.Q(d.20);q.Q(d.1D);q.Q(d.1F);1.K().1G(d.s);1.K().1G(d.6);1.1b=H}};1j.v.2v=5(){u 1.1b!==H};1j.v.2t=5(){u 1.1b}})();",62,184,"|this|var|style|if|function|paneDiv_|document|map_|top|||||||||||||||||GEvent|left|boxDiv_|parseInt|return|prototype|Math|||DragZoom|endPt_|startPt_|key_|false|width|display|px|null|none|borderWidths_|getContainer|new|hotKeyDown_|dragging_|typeof|currentStyle|removeListener|true|undefined|bindDom|min|case|right|break|bottom|documentElement||mapPosn_|trigger|GPoint|else|border||||opacity|height|dragZoom_|boxBorderWidths_|mouseDown_|scrollTop|scrollLeft|shift|abs|posY|GMap2|body|fromContainerPixelToLatLng|backgroundColor|getMousePoint_|defaultView|setPaneVisibility_|mousePosn_|boxMaxY_|boxMaxX_|onMouseUp_|onMouseMove_|borderBottomWidth|mouseMoveListener_|offsetParent|onMouseDown_|mousedown|onKeyUp_|offsetTop|offsetLeft|keyUpListener_|onKeyDown_|keyDownListener_|removeChild|borderTopWidth|appendChild|clientX|switch|pageX|absolute|getComputedStyle|div|createElement|max|block|mouseDownListener_|getSize|isMouseOnMap_|mouseDownListenerDocument_|onMouseDownDocument_|window|white|position|mouseUpListener_|ctrl|event|alt|isHotKeyDown_|borderRightWidth|thin|borderLeftWidth|for|mouseup|mousemove|while|default|keyup|6px|keydown|clientY|boxStyle|FF0000|thick|solid|transparent|MozUserSelect|pageY|101|4px|zIndex|hidden|overflow|getDragZoomObject|ownerDocument|keyDragZoomEnabled|disableKeyDragZoom|paneStyle|crosshair|deactivate|cursor|medium|getCenter|setCenter|getBoundsZoomLevel|GLatLngBounds|onselectstart|drag|dragstart|toLowerCase|activate|key|2px|dragend|keyCode|100|enableKeyDragZoom|ctrlKey|alpha|altKey|filter|shiftKey|hasOwnProperty|in".split("|"),0,{}));
var MapIconMaker={};
MapIconMaker.createMarkerIcon=function(J){var B=J.width||32;
var E=J.height||32;
var I=J.primaryColor||"#ff0000";
var D=J.strokeColor||"#000000";
var F=J.cornerColor||"#ffffff";
var H="http://chart.apis.google.com/chart?cht=mm";
var C=H+"&chs="+B+"x"+E+"&chco="+F.replace("#","")+","+I.replace("#","")+","+D.replace("#","")+"&ext=.png";
var A=new GIcon(G_DEFAULT_ICON);
A.image=C;A.iconSize=new GSize(B,E);
A.shadowSize=new GSize(Math.floor(B*1.6),E);
A.iconAnchor=new GPoint(B/2,E);
A.infoWindowAnchor=new GPoint(B/2,Math.floor(E/12));
A.printImage=C+"&chof=gif";
A.mozPrintImage=C+"&chf=bg,s,ECECD8&chof=gif";
C=H+"&chs="+B+"x"+E+"&chco="+F.replace("#","")+","+I.replace("#","")+","+D.replace("#","");
A.transparent=C+"&chf=a,s,ffffff11&ext=.png";
A.imageMap=[B/2,E,(7/16)*B,(5/8)*E,(5/16)*B,(7/16)*E,(7/32)*B,(5/16)*E,(5/16)*B,(1/8)*E,(1/2)*B,0,(11/16)*B,(1/8)*E,(25/32)*B,(5/16)*E,(11/16)*B,(7/16)*E,(9/16)*B,(5/8)*E];
for(var G=0;
G<A.imageMap.length;
G++){A.imageMap[G]=parseInt(A.imageMap[G]);
}return A;};
MapIconMaker.createFlatIcon=function(L){var T=L.width||32;
var D=L.height||32;
var F=L.primaryColor||"#ff0000";
var R=L.shadowColor||"#000000";
var I=MapIconMaker.escapeUserText_(L.label)||"";
var C=L.labelColor||"#000000";
var K=L.labelSize||0;
var B=L.shape||"circle";
var U=(B==="circle")?"it":"itr";
var A=L.workaround||0;
var G="http://chart.apis.google.com/chart?cht="+U;
var H=G+"&chs="+T+"x"+D+"&chco="+F.replace("#","")+","+R.replace("#","")+"ff,ffffff01&chl="+I+"&chx="+C.replace("#","")+","+K;
var J=new GIcon(G_DEFAULT_ICON);
J.image=H+"&chf=bg,s,00000000&ext=.png";
J.iconSize=new GSize(T,D);
J.shadowSize=new GSize(0,0);
J.iconAnchor=new GPoint(T/2,D/2);
J.infoWindowAnchor=new GPoint(T/2,D/2);
J.printImage=H+"&chof=gif";
J.mozPrintImage=H+"&chf=bg,s,ECECD8&chof=gif";
J.transparent=H+"&chf=a,s,ffffff01&ext=.png";
J.imageMap=[];
if(A>0){J.image="/DesktopModules/SlodgeCourses/MM.ashx?Src="+escape(J.image);
J.printImage="/DesktopModules/SlodgeCourses/MM.ashx?Src="+escape(J.printImage);
J.mozPrintImage="/DesktopModules/SlodgeCourses/MM.ashx?Src="+escape(J.mozPrintImage);
J.transparent="/DesktopModules/SlodgeCourses/MM.ashx?Src="+escape(J.transparent);
}if(U==="itr"){J.imageMap=[0,0,T,0,T,D,0,D];
}else{var E=8;
var M=360/E;
var S=Math.min(T,D)/2;
for(var O=0;
O<(E+1);O++){var N=M*O*(Math.PI/180);
var P=S+S*Math.cos(N);
var Q=S+S*Math.sin(N);
J.imageMap.push(parseInt(P),parseInt(Q));
}}return J;
};MapIconMaker.createLabeledMarkerIcon=function(F){var L=F.primaryColor||"#DA7187";
var E=F.strokeColor||"#000000";
var K=F.starPrimaryColor||"#FFFF00";
var G=F.starStrokeColor||"#0000FF";
var I=MapIconMaker.escapeUserText_(F.label)||"";
var J=F.labelColor||"#000000";
var D=F.addStar||false;
var A=(D)?"pin_star":"pin";
var B="http://chart.apis.google.com/chart?cht=d&chdp=mapsapi&chl=";
var C=B+A+"'i\\'["+I+"'-2'f\\hv'a\\]h\\]o\\"+L.replace("#","")+"'fC\\"+J.replace("#","")+"'tC\\"+E.replace("#","")+"'eC\\";
if(D){C+=K.replace("#","")+"'1C\\"+G.replace("#","")+"'0C\\";
}C+="Lauto'f\\";
var H=new GIcon(G_DEFAULT_ICON);
H.image=C+"&ext=.png";
H.iconSize=(D)?new GSize(23,39):new GSize(21,34);
return H;};
MapIconMaker.escapeUserText_=function(A){if(A===undefined){return null;
}A=A.replace(/@/,"@@");
A=A.replace(/\\/,"@\\");
A=A.replace(/'/,"@'");
A=A.replace(/\[/,"@[");
A=A.replace(/\]/,"@]");
return encodeURIComponent(A);
};eval(function(F,B,D,C,E,A){E=function(G){return(G<B?"":E(parseInt(G/B)))+((G=G%B)>35?String.fromCharCode(G+29):G.toString(36));
};if(!"".replace(/^/,String)){while(D--){A[E(D)]=C[D]||E(D);
}C=[function(G){return A[G];
}];E=function(){return"\\w+";
};D=1;}while(D--){if(C[D]){F=F.replace(new RegExp("\\b"+E(D)+"\\b","g"),C[D]);
}}return F;
}('v B(a,c){2.1a=a;c=c||{};2.R=c.1K||"";D(c.1K){c.1K=1Y}2.1o=c;2.1C=c.9||"3b";2.A=c.L||{};w b=3K.3E.3z();2.M=((b.1l("1S")!==-1)&&(b.1l("2i")===-1));2.1H=(b.1l("1S 6")!==-1||b.1l("1S 7"));2.29=(2.M===1m&&2.1H===2T);2.3V=(b.1l(\'3U\')!==-1);2.3T=(b.1l("2i")!==-1);2.2N=c.O||"1h";2.1F=c.P||"3C";w d=0;2.1p="1x://L.1Q.1v.1E/L?2n=2m&1D=3i|2h|%20|"+2.1F;2.q={};2.q.1w={"t":0,"u":d,"p":21,"m":7};2.q.27={"t":18,"u":6,"p":3,"m":1};2.q.1c={"t":26,"u":d,"p":6,"m":7};2.q.2S={"t":-26,"u":0,"p":6,"m":7};2.q.1J={"t":21,"u":d,"p":0,"m":7};d+=2.q.1w.m;2.q.2P={"t":12,"u":d,"p":(8+(2.1H?1:0)),"m":0};2.q.1s={"t":21,"u":d,"p":3R,"m":15};2.q.2K={"t":19,"u":d,"p":4,"m":0};2.q.1f={"t":0,"u":d,"p":21,"m":20};2.q.2H={"t":0,"u":-23,"p":21,"m":20};2.q.2E={"t":13,"u":0,"p":1,"m":6};2.q.1r={"t":19,"u":d,"p":6,"m":(6+(!2.1H?-1:0))};2.q.2A={"t":-26,"u":-23,"p":6,"m":6};2.q.2z={"t":21,"u":d,"p":0,"m":5};Z.1e(2,T)}B.z=W Z(W 3u(0,0));B.z.2q=v(b){Z.z.2q.1e(2,T);2.1n=b;2.s=11.Y("1b");b.3o(3m).E(2.s);2.s.9.2l=2.1B(2.1a.2j());2.s.9.1q="1u";D(2.1C==="L"){2.2f()}14{2.2y()}w a=2;J.1I(2.s,"2c",2,v(e){G J.1G(a,"2c")});J.1I(2.s,"2a",2,v(e){G J.1G(a,"2a")});J.1I(2.s,"2O",2,v(e){G J.1G(a,"2O")});J.1I(2.s,"2M",2,v(e){G J.1G(a,"2M",e)});J.2L(2,"30",2,v(e){a.2U()});J.2L(2,"2W",2,v(e){a.28()})};B.z.2y=v(){2.1P=2.1d(2.1p,2.q.1w);2.1P.E(2.X(2.q.27));2.s.E(2.1P);2.17=2.X(2.q.2P);2.17.9.1O="0 0 0 1k";2.17.9.1N="F F F 1M";2.17.9.1L="#1h";2.s.E(2.17);2.V=2.1d(2.1p,2.q.2H);2.V.9.t=2.q.1f.t+"o";2.V.9.u=2.q.1f.u+"o";2.V.9.p=2.q.1f.p+"o";2.V.9.m=2.q.1f.m+"o";2.V.E(2.X(2.q.2E));2.s.E(2.V);2.C=11.Y("1b");2.C.9.1q="1u";2.C.9.2Q="#"+2.1F;2.C.9.25="1t";2.C.9.t=2.q.1s.t+"o";2.C.9.u=2.q.1s.u+"o";2.C.9.p=2.q.1s.p+"o";2.C.9.m=2.q.1s.m+"o";2.s.E(2.C);2.16=2.1d(2.1p,2.q.2S);2.16.9.t=2.q.1c.t+"o";2.16.9.u=2.q.1c.u+"o";2.16.9.p=2.q.1c.p+"o";2.16.9.m=2.q.1c.m+"o";2.s.E(2.16);2.U=2.1d(2.1p,2.q.2A);2.U.9.t=2.q.1r.t+"o";2.U.9.u=2.q.1r.u+"o";2.U.9.p=2.q.1r.p+"o";2.U.9.m=2.q.1r.m+"o";2.s.E(2.U);2.Q=2.X(2.q.2K);2.Q.9.1O="0 1k 0 0";2.Q.9.1N="F 1M F F";2.Q.9.1L="#1h";2.s.E(2.Q);2.S=2.X(2.q.2z);2.S.9.1O="0 0 1k 0";2.S.9.1N="F F 1M F";2.S.9.1L="#1h";2.s.E(2.S);2.1i=2.X(2.q.1J);2.1i.9.1L="#1h";2.1i.9.1O="1k 0 0 0";2.1i.9.1N="1M F F F";2.s.E(2.1i)};B.z.2f=v(){2.I=2.1d("1x://3Q.1v.1E/3P/3N.3M",{"t":0,"u":0,"p":0,"m":0});2.I.H.9.3L="F";2.I.H.9.3J="F";2.I.H.9.3I="F";2.I.H.9.3H="F";2.s.E(2.I)};B.z.2I=v(a){Z.z.2I.1e(2,T);D(a){D(2.1C==="L"){2.22(2.R)}14{2.1Z(2.R,a)}2.1a=2.3G();2.s.9.2l=2.1B(2.1a.2j())}};B.z.3F=v(){2.1o.1K=2.R;G W B(2.1a,2.1o)};B.z.2F=v(){Z.z.2F.1e(2,T);2.s.9.24="1t"};B.z.1X=v(){Z.z.1X.1e(2,T)};B.z.28=v(){2.1X();D(2.1C==="L"){2.22(2.R)}14{2.1Z(2.R)}w a=2.1n.3D();D(!a.3B()||2.2D(2.R)){G}2.s.9.24="3A"};B.z.2U=v(){2.s.9.24="1t"};B.z.2C=v(){J.3y(2.s);1W(2.s.H){2.s.1j(2.s.H)}2.s.3x.1j(2.s);Z.z.2C.1e(2,T);3w T.2x};B.z.3v=v(a){2.R=a};B.z.1Z=v(b,d){D(2.2w!==b){1W(2.C.H){2.C.1j(2.C.H)}w f=2.2v(b);1W(2.C.H){2.C.1j(2.C.H)}2.C.E(f.2u);w e=0;w c=2.q.1J.t;w g=(2.q.1J.t+f.N.p);2.1i.9.p=f.N.p+"o";2.16.9.t=g+"o";e=2.q.1w.m;2.17.9.u=e+"o";2.17.9.m=f.N.m+"o";2.C.9.t=c+"o";2.C.9.u=e+"o";2.C.9.p=(f.N.p+(2.M?1:0))+"o";2.C.9.m=(f.N.m+(2.M?1:0))+"o";2.Q.9.t=(g+(2.M?1:0))+"o";2.Q.9.u=e+"o";2.Q.9.m=(f.N.m+(!2.M?1:0))+"o";e+=f.N.m;2.V.9.u=e+"o";2.S.9.u=e+"o";2.S.9.t=c+"o";2.S.9.p=f.N.p+"o";2.U.9.u=(e+(!2.M?1:0))+"o";2.U.9.t=g+"o";2.K=W 2t(g+2.q.1c.p,e+2.q.1f.m);2.s.9.p=2.K.p+"o";2.s.9.m=2.K.m+"o";2.2s=2.s.1V;2.2w=b}14 D(d===1m){2.s.1V=2.2s}w a=2.1n.2r(2.1a);2.s.9.t=a.x+"o";2.s.9.u=(a.y-2.K.m)+"o"};B.z.3t=v(a){2.A.1U=a};B.z.3s=v(a){2.A.1T=a};B.z.3r=v(a){2.A.O=a};B.z.3q=v(a){2.A.P=a};B.z.22=v(d){d=d.2o();2.A.1y="2h";2.A.O=2.A.O||"1h";2.A.P=2.A.P||"3p";2.A.O=2.A.O.1g("#","");2.A.P=2.A.P.1g("#","");w i="2n="+2.A.1U;3n(2.A.1U){1z"2m":1z"3l":i=i+"&1D="+2.A.1T+"|"+2.A.1y+"|"+d+"|"+2.A.P+"|"+2.A.O;1R;1z"3k":d=d.1g(/[\\r]/,"");d=d.1g(/[\\n]/,"|");i=i+"&1D="+2.A.1T+"|"+2.A.1y+"|"+2.A.P+"|"+2.A.O+"|"+d;1R;1z"3j":d=d.1g(/[\\r]/,"");d=d.1g(/[\\n]/,"|");i=i+"&1D="+2.A.1y+"|"+2.A.P+"|"+2.A.O+"|"+d;1R}w f=2.1n.2r(2.1a);w g=W 2k();g.1A="1x://L.1Q.1v.1E/L?"+i;w h=2;w b=2.M;w e=3h;w c=v(){e--;D(e===0){G}D(g.3g===1m){h.K={"p":g.p,"m":g.m};D(b===1m){h.I.H.9.2g="2p:2G.2B.2e(1A=\'1x://L.1Q.1v.1E/L?"+i+"\')"}14{h.I.1j(h.I.H);h.I.E(g)}h.I.H.9.p=h.K.p+"o";h.I.H.9.m=h.K.m+"o";h.s.9.t=f.x+"o";h.s.9.u=(f.y-h.K.m)+"o";h.s.9.p=h.K.p+"o";h.s.9.m=h.K.m+"o";h.3f=i}14{w a=T.2x;3e(a,10)}};c()};B.z.2D=v(a){D(!a&&a!==0||a===1Y||a===""||a===2d||3d a==="1Y"){G 1m}G 2T};B.z.2v=v(j){j=j.2o();w h=2.1n.3c();w l=11.Y("1b");l.9.3a="#"+2.2N;h.E(l);w k=v(a){w b=11.Y("39");l.E(b);b.1V=a;w c=b.38("*");2b(w i=0;i<c.2J;i++){D(c[i].37===1){c[i].9.36=0}}b.9.35="34";w d={};d.p=b.3O;d.m=b.33;b.9.32="31";G d};w g;w e=j.3S(/\\n/i);w f=W 2t(1,1);2b(w i=0;i<e.2J;i++){g=k(e[i]);D(g.p>f.p){f.p=g.p}f.m+=g.m}l.9.p=f.p+"o";l.9.m=f.m+"o";h.1j(l);G{2u:l,N:f}};B.z.1d=v(c,a){w b=11.Y("1b");b.9.1q="1u";b.9.25="1t";D(a.p){b.9.p=a.p+"o"}D(a.m){b.9.m=a.m+"o"}w d=2d;D(!2.M||2.29){d=W 2k();d.1A=c}14{d=11.Y("1b");D(a.p){d.9.p=a.p+"o"}D(a.m){d.9.m=a.m+"o"}}d.9.1q="2Z";d.9.t=a.t+"o";d.9.u=a.u+"o";d.9.2g="2p:2G.2B.2e(1A=\'"+c+"\')";b.E(d);G b};B.z.X=v(a){w b=11.Y("1b");b.9.1q="1u";b.9.2Q="#"+2.1F;b.9.2Y="1k";b.9.2X="1k";b.9.25="1t";b.9.t=a.t+"o";b.9.u=a.u+"o";b.9.p=a.p+"o";b.9.m=a.m+"o";G b};B.z.1B=v(a){G 2.1o.2R?2.1o.2R(2):2V.1B(a)};',62,244,"||this|||||||style|||||||||||||height||px|width|popupTbl||container_|left|top|function|var|||prototype|chart_|PopupMarker|bodyContainer_|if|appendChild|none|return|firstChild|chartImg_|GEvent|size_|chart|_is_ie|size|textColor|bgColor|rightBody_|text_|centerBottom_|arguments|rightBottom_|leftBottom_|new|fillDiv_|createElement|GMarker||document|||else||rightTop_|leftBody_|||latlng_|div|rightTop|makeImgDiv_|apply|leftBottom|replace|000000|centerTop_|removeChild|1px|indexOf|true|map_|opts_|popupImgSrc_|position|rightBottom|centerBodyFill|hidden|absolute|google|leftTop|http|shapeStyle|case|src|getZIndex|popupStyle_|chld|com|bgcolor_|trigger|_is_ie67|bindDom|centerTopFill|text|borderColor|solid|borderStyle|borderWidth|leftTop_|apis|break|msie|icon|chartStyle|innerHTML|while|show|undefined|redrawNormalPopup_|||redrawChartImg_||visibility|overflow|46|leftTopFill|showPopup|_is_ie8|mouseup|for|mousedown|null|AlphaImageLoader|makeChartPopup_|filter|bb|opera|lat|Image|zIndex|d_bubble_icon_text_small|chst|toString|progid|initialize|fromLatLngToDivPixel|normalPopupCache_|GSize|ele|getTextCanvas_|beforeNormalPopupText_|callee|makeNormalPopup_|centerBottomFill|rightBottomImg|Microsoft|remove|isNull|leftBottomFill|hide|DXImageTransform|leftBottomImg|redraw|length|rightBody|bind|mouseout|color_|mouseover|leftBody|backgroundColor|zIndexProcess|rightTopImg|false|hidePopup|GOverlay|dragend|lineHeight|fontSize|relative|dragstart|block|display|offsetHeight|nowrap|whiteSpace|margin|nodeType|getElementsByTagName|span|color|normal|getContainer|typeof|setTimeout|beforeParams|complete|100|petrol|d_bubble_texts_big|d_bubble_icon_texts_big|d_bubble_icon_text_big|G_MAP_MARKER_PANE|switch|getPane|FFFFFF|setChartBgColor|setChartTextColor|setChartIcon|setChartStyle|GLatLng|setText|delete|parentNode|clearInstanceListeners|toLowerCase|visible|isHidden|CCCCFF|getInfoWindow|userAgent|copy|getLatLng|userSelect|WebkitUserSelect|KhtmlUserSelect|navigator|MozUserSelect|png|transparent|offsetWidth|mapfiles|www|40|split|_is_opera|gecko|_is_gecko".split("|"),0,{}));
function SignificantFigures(A){this.order=parseOrder(A);
this.mantissa=parseMantissa(A);
this.positive=parseSign(A);
this.sigFigs=this.mantissa.length;
this.sigDecs=((this.order)-this.mantissa.length);
}function displaySigFigs(J,G,F,D){var B=""+J;
var O=parseOrder(B);
var I=parseMantissa(B);
var H=parseSign(B);
var M;var P;
var Q;var C=false;
if(J==0||I==""||I=="0"){I="";
for(E=0;E<G;
E++){I+="0";
}O=G+F;if(F<0&&-F>=G){C=true;
}}else{P=((O-I.length)-F);
Q=G-I.length;
M=Math.min(Q,P);
if(M<0){var R=round(I,-M);
if(R.length>I.length+M){O++;
if(P>Q){R=round(R,1);
}}I=R;}else{if(M>0){for(E=0;
E<M;E++){I+="0";
}}}if(I==""||I=="0"){I="0";
H=true;O=1+F;
if(O!=0){C=true;
}}}var N=(D||I.length>20||O>21||O<-5||(O-I.length>0&&trailingZeros(I)>0)||C);
var K="";if(!H){K+="-";
}if(N){K+=I.charAt(0);
if(I.length>1){K+="."+I.substring(1,I.length);
}if(O-1!=0){K+="e"+(O-1);
}}else{var L="";
var S="";var A=true;
if(O>0){if(I.length>O){L=I.substring(0,O);
S=I.substring(O,I.length);
}else{L=I;A=(trailingZeros(I)!=0);
for(var E=0;
E<O-I.length;
E++){L+="0";
}}}else{for(E=0;
E<-O;E++){S+="0";
}S+=I;}K+=((L==""?"0":L)+(A?".":"")+S);
}return(K);
}function trailingZeros(A){var B=0;
for(var D=A.length-1;
D>=0;D--){var C=A.charAt(D);
if(C=="0"){B++;
}else{return B;
}}return B;
}function parseSign(E){var C=true;
var K=false;
var H=false;
var D="";var L="";
var J="";var B=0;
var M=0;var I=true;
for(var A=0;
A<E.length;
A++){var G=E.charAt(A);
if(G>="1"&&G<="9"){J+=D+G;
D="";H=true;
if(!K){M++;
B++;}C=false;
}else{if(G=="0"){if(K){if(H){J+=D+G;
D="";}else{L+=G;
B--;}}else{M++;
if(H){L+=G;
B++;D+=G;}else{L+=G;
}}C=false;}else{if(!K&&G=="."){J+=D;
D="";K=true;
C=false;}else{if(G=="e"||G=="E"&&A+1<E.length){var F=parseInt(E.substring(A+1,E.length));
B+=F;M+=F;A=E.length;
}else{if(C&&(G=="+"||G=="-")){if(G=="-"){I=!I;
}}}}}}}if(J==""){return(true);
}else{return(I);
}}function parseMantissa(E){var C=true;
var K=false;
var H=false;
var D="";var L="";
var J="";var B=0;
var M=0;var I=true;
for(var A=0;
A<E.length;
A++){var G=E.charAt(A);
if(G>="1"&&G<="9"){J+=D+G;
D="";H=true;
if(!K){M++;
B++;}C=false;
}else{if(G=="0"){if(K){if(H){J+=D+G;
D="";}else{L+=G;
B--;}}else{M++;
if(H){L+=G;
B++;D+=G;}else{L+=G;
}}C=false;}else{if(!K&&G=="."){J+=D;
D="";K=true;
C=false;}else{if(G=="e"||G=="E"&&A+1<E.length){var F=parseInt(E.substring(A+1,E.length));
B+=F;M+=F;A=E.length;
}else{if(C&&(G=="+"||G=="-")){if(G=="-"){I=!I;
}}}}}}}if(J==""){return L;
}else{return J;
}}function parseOrder(E){var C=true;
var K=false;
var H=false;
var D="";var L="";
var J="";var B=0;
var M=0;var I=true;
for(var A=0;
A<E.length;
A++){var G=E.charAt(A);
if(G>="1"&&G<="9"){J+=D+G;
D="";H=true;
if(!K){M++;
B++;}C=false;
}else{if(G=="0"){if(K){if(H){J+=D+G;
D="";}else{L+=G;
B--;}}else{M++;
if(H){L+=G;
B++;D+=G;}else{L+=G;
}}C=false;}else{if(!K&&G=="."){J+=D;
D="";K=true;
C=false;}else{if(G=="e"||G=="E"&&A+1<E.length){var F=parseInt(E.substring(A+1,E.length));
B+=F;M+=F;A=E.length;
}else{if(C&&(G=="+"||G=="-")){if(G=="-"){I=!I;
}}}}}}}if(J==""){return M;
}else{return B;
}}function round(D,J){var H=D.length-J-1;
if(H<0){return("");
}else{if(H>=D.length-1){return(D);
}else{var E=D.charAt(H+1);
var G=D.charAt(H);
var I=false;
if(E>"5"){I=true;
}else{if(E=="5"){for(var B=H+2;
B<D.length;
B++){if(D.charAt(B)!="0"){I=true;
}}if(G%2==1){I=true;
}}}var C="";
for(var A=H;
A>=0;A--){var F=D.charAt(A);
if(I){var K;
if(F=="9"){K="0";
}else{switch(F){case"0":K="1";
break;case"1":K="2";
break;case"2":K="3";
break;case"3":K="4";
break;case"4":K="5";
break;case"5":K="6";
break;case"6":K="7";
break;case"7":K="8";
break;case"8":K="9";
break;}I=false;
}C=K+C;}else{C=F+C;
}}if(I){C="1"+C;
}return(C);
}}}function SnapToRoute(B,A,C){this.routePixels_=[];
this.normalProj_=G_NORMAL_MAP.getProjection();
this.map_=B;
this.marker_=A;
this.polylineArray_=C;
this.zoomendListener_=null;
this.mousemoveListener_=null;
this.init_();
}SnapToRoute.prototype.init_=function(){this.loadLineData_();
this.loadMapListener_();
};SnapToRoute.prototype.updateTargets=function(A,B){this.marker_=A||this.marker_;
this.polylineArray_=B||this.polylineArray_;
this.loadLineData_();
};SnapToRoute.prototype.loadMapListener_=function(){var A=this;
A.mousemoveListener_=GEvent.addListener(A.map_,"mousemove",GEvent.callback(A,A.updateMarkerLocation_));
A.zoomendListener_=GEvent.addListener(A.map_,"zoomend",GEvent.callback(A,A.loadLineData_));
};SnapToRoute.prototype.remove=function(){var A=this;
if(A.mousemoveListener_!=null){GEvent.removeListener(A.mousemoveListener_);
}if(A.zoomendListener_!=null){GEvent.removeListener(A.zoomendListener_);
}};SnapToRoute.prototype.loadLineData_=function(){var A=this.map_.getZoom();
this.routePixels_=[];
for(var E in this.polylineArray_){var B=this.polylineArray_[E];
for(var D=0;
D<B.getVertexCount();
D++){var C=this.normalProj_.fromLatLngToPixel(B.getVertex(D),A);
this.routePixels_.push(C);
}}};SnapToRoute.prototype.updateMarkerLocation_=function(A){var B=this.getClosestLatLng(A);
this.marker_.setLatLng(B);
};SnapToRoute.prototype.getClosestLatLng=function(B){var A=this.distanceToLines_(B);
return this.normalProj_.fromPixelToLatLng(new GPoint(A.x,A.y),this.map_.getZoom());
};SnapToRoute.prototype.getDistAlongRoute=function(B){if(typeof(opt_latlng)==="undefined"){B=this.marker_.getLatLng();
}var A=this.distanceToLines_(B);
return this.getDistToLine_(A.i,A.to);
};SnapToRoute.prototype.getVertexNumber=function(B){if(typeof(opt_latlng)==="undefined"){B=this.marker_.getLatLng();
}var A=this.distanceToLines_(B);
return A.i;
};SnapToRoute.prototype.distanceToLines_=function(C){var B=this.map_.getZoom();
var A=this.normalProj_.fromLatLngToPixel(C,B);
var D=this.routePixels_;
return this.getClosestPointOnLines_(A,D);
};SnapToRoute.prototype.getDistToLine_=function(C,H){var F=0;
var D=0;for(var A=0;
A<this.polylineArray_.length;
A++){var E=this.polylineArray_[A];
var G=C-D;if(E.length<G){for(var B=1;
B<G;B++){F+=E.getVertex(B-1).distanceFrom(E.getVertex(B));
}F+=E.getVertex(G-1).distanceFrom(E.getVertex(G))*H;
return F;}else{for(var B=1;
B<E.length;
B++){F+=E.getVertex(B-1).distanceFrom(E.getVertex(B));
D++;}}}return F;
};SnapToRoute.prototype.getClosestPointOnLines_=function(D,N){var K;
var L;var R;
var S;var A;
var E;var H;
if(N.length>1){for(var G=1;
G<N.length;
G++){if(N[G].x!==N[G-1].x){var I=(N[G].y-N[G-1].y)/(N[G].x-N[G-1].x);
var J=N[G].y-I*N[G].x;
H=Math.abs(I*D.x+J-D.y)/Math.sqrt(I*I+1);
}else{H=Math.abs(D.x-N[G].x);
}var P=Math.pow(N[G].y-N[G-1].y,2)+Math.pow(N[G].x-N[G-1].x,2);
var O=Math.pow(N[G].y-D.y,2)+Math.pow(N[G].x-D.x,2);
var M=Math.pow(N[G-1].y-D.y,2)+Math.pow(N[G-1].x-D.x,2);
var Q=Math.pow(H,2);
var B=O-Q+M-Q;
if(B>P){H=Math.sqrt(Math.min(O,M));
}if((K==null)||(K>H)){L=Math.sqrt(M-Q)/Math.sqrt(P);
R=Math.sqrt(O-Q)/Math.sqrt(P);
K=H;E=G;}}if(L>1){L=1;
}if(R>1){L=0;
R=1;}var C=N[E-1].x-N[E].x;
var F=N[E-1].y-N[E].y;
S=N[E-1].x-(C*L);
A=N[E-1].y-(F*L);
}return{"x":S,"y":A,"i":E,"to":L,"from":R};
};