var ab=null;var bb=null;var cb=null;var db=null;var eb=new Array();var fb=new Array();var gb=new Array();var hb=null;var ib=0.0;var jb=new Array();var kb=new Array();var UNITS_US=1;var UNITS_METRIC=2;var lb=UNITS_US;var mb=true;var nb=null;var ob;var ROUTETYPE_WALK=0;var ROUTETYPE_DRIVE=1;var ROUTETYPE_STRAIGHT=2;var pb=false;var mb=true;var qb=null;var rb=null;var sb="";var tb;var ub=null;var vb=null;var pn=0;xb();function yb(){document.getVars=[];var zb=String(document.location).split('?');if(zb[1]){var $b=zb[1].split('&');for(var i=0;i<=($b.length);i++){if($b[i]){var _b=$b[i].split('=');document.getVars[_b[0]]=_b[1];}
}
}
}
function xb(){yb();}
function ac(){var bc="";var cc=document.URL.indexOf('?');if(cc!=-1){bc=document.URL.substring(cc+1,document.URL.length);var Variables=bc.split("/*/");alert("variables[0] is "+Variables[0]);}
}
function wb(){return"If you leave this page, you will lose any unsaved route information.  Are you sure that you want to continue?";}
function Mu(){GUnload();if(ub!=null){ub.remove();}
}
function I1(slt,sln){document.mapform.totaldistance.value=ib;document.mapform.mapsize.value="medium";document.mapform.routeType.value=ROUTETYPE_WALK;document.mapform.units[0].checked=true;document.mapform.distmarkers.checked=true;document.getElementById("map_streetview_container").style.display="none";dc(ROUTETYPE_WALK);ec(true);fc(false);var gc=new GDraggableObject(document.getElementById("map_streetview_container"),{draggingCursor:"pointer",draggableCursor:"pointer"}
);if(GBrowserIsCompatible()){hc={draggableCursor:"crosshair"}
;ab=new GMap2(document.getElementById("map_canvas"),hc);ab.disableDoubleClickZoom();var ic=new GLatLng(slt, sln);ab.setMapType(G_NORMAL_MAP);ab.setCenter(ic,13);ab.checkResize();ab.enableScrollWheelZoom();bb=new MarkerManager(ab);jc(ic);var kc=new GMapTypeControl();ab.addControl(kc);ab.addControl(new GLargeMapControl());ab.addMapType(G_PHYSICAL_MAP);cb=new GClientGeocoder();hb=document.getElementById("route");db=new GDirections(null,hb);GEvent.addListener(db,"load",lc);GEvent.addListener(db,"error",mc);GEvent.addDomListener(document.getElementById("map_streetview"),"mouseover",function(){if(gc!=null)gc.disable();}
);GEvent.addDomListener(document.getElementById("map_streetview"),"mouseout",function(){if(gc!=null)gc.enable();}
);GEvent.addDomListener(document.getElementById("map_streetview_container"),"dblclick",function(){alert('click');}
);nc();var oc=ab.getBounds();var pc=oc.getSouthWest();var qc=oc.getNorthEast();var rc=qc.lng()-pc.lng();var sc=qc.lat()-pc.lat();GEvent.addListener(ab,"click",tc);GEvent.addListener(ab,'moveend',function(){}
);GEvent.addListener(ab,'dblclick',uc);}
document.mapform.totaldistance.value=0;if(typeof document.getVars["maproute"]!="undefined"){vc(document.getVars["maproute"]);}
}
function uc(wc,xc){xc=nb;eb.push(new GLatLng(xc.lat(),xc.lng()));if(eb.length==1){yc(xc,0.0,eb.length-1);}
for(var i=0;i<eb.length;i++){}
if(eb.length>=2){var zc=[eb[eb.length-2],eb[eb.length-1]];if(ob==ROUTETYPE_WALK){db.loadFromWaypoints(zc,{travelMode:G_TRAVEL_MODE_WALKING,getPolyline:true}
);}
else if(ob==ROUTETYPE_DRIVE){db.loadFromWaypoints(zc,{travelMode:G_TRAVEL_MODE_DRIVING,getPolyline:true}
);}
else
{$c();}
}
else
{jc(xc);}
}
function tc(wc,xc){if(xc){nb=xc;jc(xc);_c(xc);var ad=Math.round(xc.lat()*10000)/10000;var bd=Math.round(xc.lng()*10000)/10000;var cd="Lat: "+ad+"  Lon: "+bd;if(eb.length>0){var dd=eb[eb.length-1].distanceFrom(xc);if(lb==UNITS_US){dd=Math.round(dd*100/1609.344)/100;cd="Lat: "+ad+"  Lon: "+bd+"<br>Straight line distance from last point: "+dd+" miles";}
else
{dd=Math.round(dd/10)/100;cd="Lat: "+ad+"  Lon: "+bd+"<br>Straight line distance from last point: "+dd+" kilometers";}
}
}
}
function nc(){qb=new GMarker(new GLatLng(0,0),{draggable:true}
);qb.visible=false;qb.pointindex=-1;rb=new GMarker(new GLatLng(0,0),{draggable:true}
);rb.visible=false;rb.pointindex=-1;GEvent.addListener(qb,"dragstart",function(){ab.closeInfoWindow();}
);GEvent.addListener(qb,"dragend",function(){ed(qb);}
);GEvent.addListener(qb,"dblclick",function(xc){uc(null,xc);}
);GEvent.addListener(qb,"click",function(xc){if (xc) {nb=xc};}
);GEvent.addListener(rb,"dragstart",function(){ab.closeInfoWindow();}
);GEvent.addListener(rb,"dragend",function(){ed(rb);}
);}
function yc(xc,fd,gd){if(gd==0){qb.setLatLng(xc);qb.pointindex=0;if(qb.visible==false){qb.visible=true;hd(qb);}
}
else
{rb.setLatLng(xc);rb.pointindex=gd;if(rb.visible==false){rb.visible=true;hd(rb);}
qb.disableDragging();}
}
function Sa(id){if(cb){cb.getLatLng(id,function(jd){if(!jd){if(id.length>0){alert(id+" not found");}}
else{ab.setCenter(jd,13);var kd;kd=new GIcon(G_DEFAULT_ICON,"mapyellow.png");ld={icon:kd,draggable:true}
;var md=new GMarker(jd,ld);hd(md);}
}
);}
}
function nd(xc,od){var ad=Math.round(xc.lat()*10000)/10000
var bd=Math.round(xc.lng()*10000)/10000
var cd="Lat: "+ad+"  Lon: "+bd;cd="Lat: "+ad+"  Lon: "+bd;var dd=od;if(lb==UNITS_US){dd=Math.round(dd*100/1609.344)/100;cd+="<br>Distance: "+dd+" miles";}
else
{dd=Math.round(dd/10)/100;cd+="<br>Distance: "+dd+" kilometers";}
ab.openInfoWindow(xc,cd);}
function ed(md){eb[eb.length-1]=md.getLatLng();jc(md.getLatLng());if(eb.length>=2){pd();var zc=[eb[eb.length-2],eb[eb.length-1]];if(ob==ROUTETYPE_WALK){db.loadFromWaypoints(zc,{travelMode:G_TRAVEL_MODE_WALKING,getPolyline:true}
);}
else if(ob==ROUTETYPE_DRIVE){db.loadFromWaypoints(zc,{travelMode:G_TRAVEL_MODE_DRIVING,getPolyline:true}
);}
else
{$c();}
}
else
{ab.panTo(md.getLatLng());}
}
function qd(gd,xc){eb[gd]=xc;jc(xc);if(eb.length>=2){pd();var zc=[eb[eb.length-2],eb[eb.length-1]];if(ob==ROUTETYPE_WALK){db.loadFromWaypoints(zc,{travelMode:G_TRAVEL_MODE_WALKING,getPolyline:true}
);}
else if(ob==ROUTETYPE_DRIVE){db.loadFromWaypoints(zc,{travelMode:G_TRAVEL_MODE_DRIVING,getPolyline:true}
);}
else
{$c();}
}
}
function $c(){var length=eb.length;var rd=eb[length-2].distanceFrom(eb[length-1]);gb.push(rd);var sd=ib;ib+=rd;td();var zc=[eb[length-2],eb[length-1]];var ud=new GPolyline(zc,"#ff0000",4);fb.push(ud);ab.addOverlay(ud);yc(eb[length-1],ib,eb.length-1);jc(eb[length-1]);vd(ud,sd,jb,UNITS_US);vd(ud,sd,kb,UNITS_METRIC);}
function mc(){alert("Unable to route to selected point. ");eb.pop();rb.setLatLng(eb[eb.length-1]);ab.panTo(eb[eb.length-1]);}
function lc(){var wd=gb[gb.length-1];var rd=db.getDistance().meters;var ud=db.getPolyline();var xd=eb[eb.length-2];var yd=ud.getVertex(0).distanceFrom(xd);var zd=new Array();_c(xd);zd.push(xd);for(var i=0;i<ud.getVertexCount();i++){_c(ud.getVertex(i));zd.push(ud.getVertex(i));}
var $d=new GPolyline(zd,"#ff0000",4);ud=$d;ab.addOverlay(ud);fb.push(ud);gb.push(rd+yd);var sd=ib;ib+=(rd+yd);td();var _d=fb.length;var ae=ud.getVertexCount();jc(ud.getVertex(ae-1));yc(ud.getVertex(ae-1),ib,eb.length-1);var be=eb.length;eb[be-1]=ud.getVertex(ae-1);vd(ud,sd,jb,UNITS_US);vd(ud,sd,kb,UNITS_METRIC);}
function vd(ud,sd,ce,de){var ee=0;var fe=gb.length;var ge;var _d=0;var he=sd;var ie=sd;do
{if(de==1)ge=(ce.length+1)*1609.344;else
ge=(ce.length+1)*1000;if(ce.length>=99){break;}
if(ib>ge){for(;_d<(ud.getVertexCount()-1);_d++){he=ie;ie+=ud.getVertex(_d).distanceFrom(ud.getVertex(_d+1));if(ie>ge){break;}
}
if(ie<=ge){ee=0;}
else
{var je=ud.getVertex(_d);var ke=ud.getVertex(_d+1);var le=(ge-he)/(ie-he);var me=new GLatLng(je.lat()+(ke.lat()-je.lat())*le,je.lng()+(ke.lng()-je.lng())*le);var kd;if(ce.length<99){kd=new GIcon(G_DEFAULT_ICON,"mm"+(ce.length+1)+".png");}
else
{kd=new GIcon(G_DEFAULT_ICON,"genMarker.php?num="+(ce.length+1));}
ld={icon:kd}
;ne=new GMarker(me,ld);if(de==lb)oe(ne);if(!mb){ne.hide();}
ce.push(ne);ee=1;ie=he;}
}
else
{ee=0;}
}
while(ee==1);return ee;}
function R2(pe){if(pe||confirm("You are about to lose all unsaved changes.  Proceed?")){ib=0.0;document.mapform.totaldistance.value=ib;ab.clearOverlays();qe();eb.length=0;fb.length=0;gb.length=0;jb.length=0;kb.length=0;qb.visible=false;rb.visible=false;qb.enableDragging();}
}
function Arr(){var re=fb.length;for(var i=re-1;i>=0;i--){var ud=fb[i];var zd=new Array();for(var j=ud.getVertexCount()-1;j>=0;j--){var xc=new GLatLng(ud.getVertex(j).lat(),ud.getVertex(j).lng());zd.push(xc);}
var $d=new GPolyline(zd,"#0000FF",1,0.75);$d.mi_r=true;fb.push($d);ab.addOverlay($d);eb.push(eb[i]);gb.push(gb[i]);var sd=ib;ib+=gb[i];vd($d,sd,jb,UNITS_US);vd($d,sd,kb,UNITS_METRIC);}
if(re>0){rb.setLatLng(qb.getLatLng());td();}
}
function Ulp(){if(eb.length>0){eb.length--;}
if(eb.length==0){if(qb.visible){qb.visible=false;se(qb);}
}
else if(eb.length==1){if(rb.visible){rb.visible=false;se(rb);}
qb.enableDragging();ab.panTo(qb.getLatLng());}
else
{var ud=fb[fb.length-2];rb.setLatLng(ud.getVertex(ud.getVertexCount()-1));ab.panTo(rb.getLatLng());}
if(fb.length>0){ab.removeOverlay(fb[fb.length-1]);fb.length--;}
if(gb.length>0){ib-=gb[gb.length-1];if(ib<0)ib=0;gb.length--;td();}
while(ib<(1609.344*jb.length)){var te=jb.pop();ue(te);}
while(ib<(1000.0*kb.length)){var te=kb.pop();ue(te);}
}
function pd(){if(fb.length>0){ab.removeOverlay(fb[fb.length-1]);fb.length--;}
if(gb.length>0){ib-=gb[gb.length-1];gb.length--;td();}
while(ib<(1609.344*jb.length)){var te=jb.pop();ue(te);}
while(ib<(1000.0*kb.length)){var te=kb.pop();ue(te);}
if(eb.length>1){ab.panTo(rb.getLatLng());}
else
{ab.panTo(qb.getLatLng());}
}
function inn(n){return !isNaN(parseFloat(n)) && isFinite(n);} 
function hd(md){ab.addOverlay(md);}
function oe(md){bb.addMarker(md,11);}
function se(md){ab.removeOverlay(md);}
function ue(md){bb.removeMarker(md);}
function qe(){bb.clearMarkers();}
function td(){var ve;if(lb==1)ve=ib/1609.344;else
ve=ib/1000.0;var we=Math.round(ve*10000)/10000;document.mapform.totaldistance.value=we;}
function xe(ye){return Math.round(ye*1000)/1000.0;}
function ze(ye){return Math.round(ye*100000);}
function $e(ye){return ye/100000.0;}
function Sr(){var _e=[];var af=0;if(eb.length==0){alert("No route to save.  Double click on the map to create a route.");return;}
_e[af++]="1.01";_e[af++]=ab.getZoom();_e[af++]=lb;_e[af++]=ob;if(mb){_e[af++]="p";}
else
{_e[af++]="a";}
if(tb){_e[af++]="s";}
else
{_e[af++]="a";}
if(eb.length>0){_e[af++]=ze(eb[0].lat());_e[af++]=ze(eb[0].lng());_e[af++]=fb.length;for(var i=0;i<fb.length;i++){var ud=fb[i];_e[af++]=xe(gb[i]);if(typeof ud.mi_r!="undefined"){_e[af++]="r";}
else
{_e[af++]="a";}
_e[af++]=ud.getVertexCount();for(var j=0;j<ud.getVertexCount();j++){_e[af++]=ze(ud.getVertex(j).lat());_e[af++]=ze(ud.getVertex(j).lng());}
}
}
_e[af++]="end";bf=_e.join(";");var cf="md="+ib+"&map_data="+bf;sb=bf;var df="mapSaveRoute.php";var ef=GXmlHttp.create();ef.open("POST",df,true);ef.setRequestHeader("Content-type","application/x-www-form-urlencoded");ef.setRequestHeader("Content-length",cf.length);ef.onreadystatechange=function(){if(ef.readyState==4&&ef.status==200){/*document.getElementById("save_link").innerHTML="<a href='"+ef.responseText+"'>"+ef.responseText+"</a>";*/if(ef.responseText.substring(0,7)=="http://"){alert("Route was saved successfully.  Your route link is: " + ef.responseText);window.location.href=ef.responseText;}
else
{if(ef.responseText.substring(0,4)=="MSG:"){alert(ef.responseText.substring(4));}
else{alert("Route save failed.");}
}
}
else if(ef.readyState==4){}
else
{}
}
ef.send(cf);}


function Sr2(){var _e=[];var af=0;if(eb.length==0){alert("Double click on the map to create a route before refreshing elevation graph.");return;}
_e[af++]="1.01";_e[af++]=ab.getZoom();_e[af++]=lb;_e[af++]=ob;if(mb){_e[af++]="p";}
else
{_e[af++]="a";}
if(tb){_e[af++]="s";}
else
{_e[af++]="a";}
if(eb.length>0){_e[af++]=ze(eb[0].lat());_e[af++]=ze(eb[0].lng());_e[af++]=fb.length;for(var i=0;i<fb.length;i++){var ud=fb[i];_e[af++]=xe(gb[i]);if(typeof ud.mi_r!="undefined"){_e[af++]="r";}
else
{_e[af++]="a";}
_e[af++]=ud.getVertexCount();for(var j=0;j<ud.getVertexCount();j++){_e[af++]=ze(ud.getVertex(j).lat());_e[af++]=ze(ud.getVertex(j).lng());}
}
}
_e[af++]="end";bf=_e.join(";");var cf="md="+ib+"&map_data="+bf;sb=bf;var df="mapPrepareElevation.php";var ef=GXmlHttp.create();ef.open("POST",df,true);ef.setRequestHeader("Content-type","application/x-www-form-urlencoded");ef.setRequestHeader("Content-length",cf.length);ef.onreadystatechange=function(){if(ef.readyState==4&&ef.status==200){if(inn(ef.responseText)){
displayElevation(ef.responseText, lb);
}
else
{ //  error mgmg
}
}
else if(ef.readyState==4){}
else
{}
}
ef.send(cf);}

function vc(ff){var df="mapGetRoute.php"+"?route_num="+ff;pn=ff;GDownloadUrl(df,gf);}
function gf(hf){if(hf.substr(0,6)=="route="){Lr(hf.substr(6)); /*displayElevation(pn, lb)*/}
else
{alert("Route was not found.");}
}
function Lr(jf){var kf;if(typeof jf!="undefined"){if(jf.length!=0){kf=jf;}
else
{kf=sb;}
}
else
{if(document.mapform.routenum.value!=""){vc(document.mapform.routenum.value);return;}
else
{kf=sb;}
}
var lf;var mf;var nf;var of=kf.split(";");var _d=0;var pf;var qf;var rf;if(of.length>=3){if(of[_d++]=="1.01"){R2(true);sf=parseInt(of[_d++]);pf=parseInt(of[_d++]);tf=parseInt(of[_d++]);qf=of[_d++];rf=of[_d++];if(of.length>=9){var mf=$e(parseFloat(of[_d++]));var nf=$e(parseFloat(of[_d++]));var uf=parseInt(of[_d++]);for(var vf=0;vf<uf;vf++){var zd=new Array();var wf=0.0;wf=parseFloat(of[_d++]);gb.push(wf);var xf=of[_d++];var yf=parseInt(of[_d++]);for(var zf=0;zf<yf;zf++){var $f=$e(parseFloat(of[_d++]));var _f=$e(parseFloat(of[_d++]));zd.push(new GLatLng($f,_f));}
var ud;if(xf=="r"){ud=new GPolyline(zd,"#0000FF",1,0.75);ud.mi_r=true;}
else
{ud=new GPolyline(zd,"#ff0000",4);}
fb.push(ud);ab.addOverlay(ud);}
var ic=new GLatLng(mf,nf);ab.setCenter(ic,sf);dc(tf);if(fb.length>0){var ag=fb[0].getVertex(0);var me=new GLatLng(ag.lat(),ag.lng());eb.push(me);yc(me,0.0,eb.length-1);for(var vf=0;vf<fb.length;vf++){var ag=fb[vf].getVertex(fb[vf].getVertexCount()-1);var me=new GLatLng(ag.lat(),ag.lng());eb.push(me);}
yc(eb[eb.length-1],0.0,eb.length-1);}
else
{var xc=new GLatLng(mf,nf);eb.push(xc);yc(xc,0.0,eb.length-1);}
for(var i=0;i<gb.length;i++){ib+=gb[i];}
td();Uu(pf);if(pf==UNITS_US){document.mapform.units[0].checked=true;}
else
{document.mapform.units[1].checked=true;}
ec(qf=="p");fc(rf=="s");var bg=0.0;for(var x=0;x<fb.length;x++){ud=fb[x];vd(ud,bg,jb,UNITS_US);vd(ud,bg,kb,UNITS_METRIC);bg+=gb[x];}
}
}
}
}
function Uu(cg){var dg=lb;lb=cg;if(dg!=lb){td();if(dg==UNITS_US){for(var i=0;i<jb.length;i++){ue(jb[i]);}
for(var i=0;i<kb.length;i++){oe(kb[i]);}
}
else
{for(var i=0;i<kb.length;i++){ue(kb[i]);}
for(var i=0;i<jb.length;i++){oe(jb[i]);}
}
}
}
function dc(eg){ob=eg;document.mapform.routeType[eg].checked=true;}
function Crt(eg){ob=eg;}
function Cms(fg){gg=document.getElementById("map_canvas");if(fg=="extralarge"){gg.style.height="900px";}
else if(fg=="large"){gg.style.height="700px";}
else if(fg=="medium"){gg.style.height="500px";}
else if(fg=="small"){gg.style.height="375px";}
else if(fg=="tiny"){gg.style.height="285px";}
ab.checkResize();}
function ec(hg){mb=hg;document.mapform.distmarkers.checked=hg;ig();}
function ig(){if(mb){if(lb==UNITS_US){for(var i=0;i<jb.length;i++){jb[i].show();}
}
else
for(var i=0;i<kb.length;i++){kb[i].show();}
{}
}
else
{if(lb==UNITS_US){for(var i=0;i<jb.length;i++){jb[i].hide();}
}
else
{for(var i=0;i<kb.length;i++){kb[i].hide();}
}
}
}
function Tdm(){mb=document.mapform.distmarkers.checked;ig();}
function Shh(jg,kg){var lg=document.getElementById(jg);if(lg.style.display=="block"){lg.style.display="none";if(kg!=null){kg.innerHTML="MORE";}
}
else
{lg.style.display="block";if(kg!=null){kg.innerHTML="Hide";}
}
return false;
}
function _c(mg){}
function Tsv(){tb=document.mapform.streetview.checked;if(tb){if(vb!=null){jc(vb);}
document.getElementById("map_streetview_container").style.display="block";}
else if(ub!=null){GEvent.clearListeners(ub,"error");ub.remove();ub=null;document.getElementById("map_streetview_container").style.display="none";}
}
function fc(ng){tb=ng;document.mapform.streetview.checked=ng;Tsv();}
function og(pg){if(pg==603){pb=true;document.getElementById("map_streetview_container").style.display="none";return;}
}
function jc(mg){if(!pb){vb=new GLatLng(mg.lat(),mg.lng());if(tb){if(ub!=null){GEvent.clearListeners(ub,"error");ub.hide();}
ub=new GStreetviewPanorama(document.getElementById("map_streetview"));GEvent.addListener(ub,"error",og);ub.setLocationAndPOV(vb);}
}
}
  var dt1='<span style="float:left;width:380px">Elevation graph</span><span><a href="#" onclick="return ue2();">Update</a></span>';
  var dt2='<span><a href="#" onclick="return ug10();">Elevation graph</a></span>';  
  function uf11()
  {
	var edx=$("#elevationdialog");edx.dialog({autoOpen:false,draggable:false,resizable:true,title:dt2});
    var p = $("#map_canvas").position();p.top -= $(window).scrollTop();p.left -= $(window).scrollLeft();
    edx.dialog('option','position', [p.left+100,p.top+7]);edx.hide("slide",{direction:"up"},0);edx.dialog({close: function(event, ui) { uf10(); }});	  
  }
  function uf10()
  {
  	var edx=$("#elevationdialog");edx.dialog('option','title',dt2);//edx.dialog('option','width',155);	
	edx.hide("slide",{direction:"up"},100);$("#elevationbutton").show();return false;}
  function ug10()
  {
	var edx=$("#elevationdialog");
	edx.dialog('option','title',dt1);edx.dialog('option','width',500);
    var p = $("#map_canvas").position();p.top -= $(window).scrollTop();p.left -= $(window).scrollLeft();
    edx.dialog('option','position', [p.left+100,p.top+7]);edx.dialog('open');edx.show( "slide", {direction:"up"}, 100 );
	ue2();$("#elevationbutton").hide();
	return false;
  }  
  function ue2()  {	var iid = document.getElementById("elevationgraphimgid");if (ib > 0) {iid.src="/images/elevation_retrieving.png";Sr2();} else {iid.src="/images/elevation_noroute.png";} return false; }


