﻿var isAdvRouteStarted=false;var isAdvRouteVisible=false;var startPinID=null;var thisLine=null;var advRouteLayer=null;var allRouteLayer=null;var returnToAlertWindow=false;function ix(username){var display=true;jQ("AdvancedRoutePlanning",display);jQ("AlertEditRoute",display);jQ("MapControlRouteNames",display);iE("MapControlRouteNames");};function iM(show,returnToAlert){if(show){if(!m_bLoggedIn){iA("You must be logged in to use this feature.");return;}if(m_demoUser||demo2_user){iA("Sorry, this feature has been disabled in demonstration mode.");return;}db();bj("divAdvRouteOverlay");jk(false);isAdvRouteVisible=true;eR();eS();iD(false,true);iE("ddlRouteNames");}else{aF("divAdvRouteOverlay");isAdvRouteVisible=false;eS();eR();aF("divColorPopOverLay");}returnToAlertWindow=returnToAlert;};function iD(value,onlyPoints){if(onlyPoints){document.getElementById("AdvRouteDeleteMessage").innerHTML="All points for this route will be deleted.  Are you Sure you want to Delete ALL of the points?";document.getElementById("AdvRouteDeleteYes").onclick=function(){ge();};}else{var m_routeID=document.getElementById("ddlRouteNames");var routeID=m_routeID.options[m_routeID.selectedIndex].value;if(routeID== -1){iA("You must select the route to delete.");return;}document.getElementById("AdvRouteDeleteMessage").innerHTML="The route and all alerts for this route will be deleted.  Are you Sure you want to Delete the route?";document.getElementById("AdvRouteDeleteYes").onclick=function(){hG();};}if(value){iS("advRouteEdit",false);iS("advRouteDelete",true);}else{iS("advRouteDelete",false);iS("advRouteEdit",true);}};function ik(){isAdvRouteStarted=true;iS("imgAdvRouteStart",false);iS("imgAdvRouteStop",true);};function eS(){isAdvRouteStarted=false;iS("imgAdvRouteStop",false);iS("imgAdvRouteStart",true);};function jw(routeID){eR();if(routeID== -1){var img=document.getElementById("imgAdvRouteStart");img.onmousedown="this.src='./images/StartButton0.gif'";img.onmouseout="this.src='./images/StartButton0.gif'";img.onmouseover="this.src='./images/StartButton1.gif'";img.src="./images/StartButton0.gif";}else{var img=document.getElementById("imgAdvRouteStart");img.onmousedown="this.src='./images/EditCannedResponses0.png'";img.onmouseout="this.src='./images/EditCannedResponses0.png'";img.onmouseover="this.src='./images/EditCannedResponses1.png'";img.src="./images/EditCannedResponses0.png";iv(routeID);}};function iv(routeID){var dtRoute=DAL.GetAdvRoute(routeID);var dtRouteDetail=DAL.GetAdvRouteDetail(routeID);if(dtRoute.value.Rows.length!=0){with(dtRoute.value.Rows[0]){if(isChecked("radFeet")){document.getElementById("tbRadius").value=Radius;}else{document.getElementById("tbRadius").value=iB((Radius*0.3048),0,true);}document.getElementById("tbAMinRadius").value=Radius;document.getElementById("tbARadius").value=Radius;document.getElementById("AdvRouteName").value=RouteName;document.getElementById("tbAdvRouteColor").value=Color;}if(dtRouteDetail.value.Rows.length!=0){var points=new Array();for(var i=0;i<dtRouteDetail.value.Rows.length;i++){var point=new VELatLong(dtRouteDetail.value.Rows[i].Lat,dtRouteDetail.value.Rows[i].Lon);points.push(point);gU(point);}advRouteLayer=iG("Advanced Route Layer","Layer contains advanced route.");var startPin=iF(advRouteLayer,points[0],"./images/redpushpin.gif",true,"","");startPin.Title="AdvRoutePin";startPinID=startPin.GetID();if(points.length>1){thisLine=iL(advRouteLayer,points,eV("tbAdvRouteColor"));eK(null,"tbRadius");}SetMapView(points);}}iC();};function it(){var m_lbAdvRoutePointList=document.getElementById("lbAdvRoutePointList");var routeName=document.getElementById("AdvRouteName").value;var m_routeID=document.getElementById("ddlRouteNames");var color=document.getElementById("tbAdvRouteColor").value;var routeID=m_routeID.options[m_routeID.selectedIndex].value;var radius=eT("tbRadius");if(radius==null){return;}if(routeName==""){iA("You must specify a name for the route.");return;}if(m_lbAdvRoutePointList.options.length==0){iA("You must include points for the route.");return;}var points=new Array();for(var x=0;x<m_lbAdvRoutePointList.options.length;x++){points[x]=m_lbAdvRoutePointList.options[x].text;}DAL.SaveAdvRoute(m_CurrentUser,routeID,routeName,radius.toString(),color,points);eR();eS();iE("ddlRouteNames");__doPostBack(UPRList,m_CurrentUser);if(returnToAlertWindow){iM(false,false);fR();iS("alertAddRoute",true);iE("ddlRouteName");routeID=SelectIndexOfText("ddlRouteName",routeName);jw(routeID);}};function hG(){var m_routeID=document.getElementById("ddlRouteNames");var routeID=m_routeID.options[m_routeID.selectedIndex].value;if(routeID== -1){iA("You must select the route to delete.");return;}var rtn=DAL.DeleteAdvRoute(routeID);if(rtn.value){eR();eS();iE("ddlRouteNames");iD(false,true);__doPostBack(UPRList,m_CurrentUser);}else{iA("An unexpected error occurred while attempting to delete this route. Please try again.");}};function iq(mapX,mapY){var latLon=map.PixelToLatLong(new VEPixel(mapX,mapY));var index=document.getElementById("lbAdvRoutePointList").selectedIndex;if(index!= -1){index++;}is(latLon,index);iC();};function is(latLon,index){io(latLon,index);gU(latLon,index);jx();iC();};function io(latLon,index){if(advRouteLayer==null){advRouteLayer=iG("Advanced Route Layer","Layer contains advanced route.");var startPin=iF(advRouteLayer,latLon,"./images/redpushpin.gif",true,"","");startPin.Title="AdvRoutePin";startPinID=startPin.GetID();}else if(thisLine==null){var startPoint=advRouteLayer.GetShapeByID(startPinID).GetPoints()[0];thisLine=iL(advRouteLayer,[startPoint,latLon],eV("tbAdvRouteColor"));eK(null,"tbRadius");}else{ja(thisLine,latLon,index);eK(null,"tbRadius");}};function iw(pin){var id=pin.GetID();var m_lbAdvRoutePointList=document.getElementById("lbAdvRoutePointList");if(m_lbAdvRoutePointList==null){return;}if(id==startPinID){m_lbAdvRoutePointList.options[0].text=iB(pin.Latitude,5,false)+", "+iB(pin.Longitude,5,false);jJ(thisLine,new VELatLong(pin.Latitude,pin.Longitude),0);return;}for(var i=0;i<m_lbAdvRoutePointList.options.length;i++){if(m_lbAdvRoutePointList.options[i].selectedMarkerID==id){m_lbAdvRoutePointList.options[i].text=iB(pin.Latitude,5,false)+", "+iB(pin.Longitude,5,false);jJ(thisLine,new VELatLong(pin.Latitude,pin.Longitude),i);if(i==0){var startPin=advRouteLayer.GetShapeByID(startPinID);startPin.SetPoints(new VELatLong(pin.Latitude,pin.Longitude));}break;}}iC();};function gU(latLon,index){var list=document.getElementById("lbAdvRoutePointList");if(index== -1){index=list.options.length;}var option=new Option(iB(latLon.Latitude,5,false)+", "+iB(latLon.Longitude,5,false),index);option.selected=true;ClearSelected("lbAdvRoutePointList");ListInsertItem("lbAdvRoutePointList",option,index);if(-1<index&&index<(list.options.length-1)){list.value=list.options[index].value;}};function iu(){var m_lbAdvRoutePointList=document.getElementById("lbAdvRoutePointList");if(m_lbAdvRoutePointList==null){return;}if(m_lbAdvRoutePointList.selectedIndex== -1){return;}while(m_lbAdvRoutePointList.selectedIndex!= -1){var index=m_lbAdvRoutePointList.selectedIndex;if(m_lbAdvRoutePointList.options[index].selectedMarkerID!=null){advRouteLayer.DeleteShape(advRouteLayer.GetShapeByID(m_lbAdvRoutePointList.options[index].selectedMarkerID));}m_lbAdvRoutePointList.remove(index);if(m_lbAdvRoutePointList.options.length<1){ge();}else if(m_lbAdvRoutePointList.options.length<2){advRouteLayer.DeleteShape(thisLine);thisLine=null;}else{jc(thisLine,index);}if(index==0&&startPinID){advRouteLayer.DeleteShape(advRouteLayer.GetShapeByID(startPinID));if(m_lbAdvRoutePointList.options.length>0){var s=m_lbAdvRoutePointList.options[0].text.split(",");var startPin=advRouteLayer.GetShapeByID(startPinID);startPin.SetPoints(new VELatLong(s[0],s[1]));}}}iC();};function fB(){startPinID=null;thisLine=null;iJ(advRouteLayer);advRouteLayer=null;};function ge(){iK("lbAdvRoutePointList");fB();iD(false,true);iC();};function eR(){ge();eU(false);jk(false);document.getElementById("tbRadius").value="300";document.getElementById("tbAdvRouteColor").value="000000";document.getElementById("AdvRouteName").value="";iC();};function il(){iz("lbAdvRoutePointList");jx();};function jx(){var m_lbAdvRoutePointList=document.getElementById("lbAdvRoutePointList");if(m_lbAdvRoutePointList==null){return;}if(m_lbAdvRoutePointList.selectedIndex== -1){return;}for(var i=0;i<m_lbAdvRoutePointList.options.length;i++){if(m_lbAdvRoutePointList.options[i].selected){if(m_lbAdvRoutePointList.options[i].selectedMarkerID==null){var s=m_lbAdvRoutePointList.options[i].text.split(",");var selectedMarker=iF(advRouteLayer,new VELatLong(s[0],s[1]),"./images/AddressMarker.png",true,"","");selectedMarker.Title="AdvRoutePin";m_lbAdvRoutePointList.options[i].selectedMarkerID=selectedMarker.GetID();m_lbAdvRoutePointList.options[i].focus();}}else{if(m_lbAdvRoutePointList.options[i].selectedMarkerID!=null){advRouteLayer.DeleteShape(advRouteLayer.GetShapeByID(m_lbAdvRoutePointList.options[i].selectedMarkerID));m_lbAdvRoutePointList.options[i].selectedMarkerID=null;}}}};function jL(markerID){var m_lbAdvRoutePointList=document.getElementById("lbAdvRoutePointList");for(var i=0;i<m_lbAdvRoutePointList.options.length;i++){if(m_lbAdvRoutePointList.options[i].selectedMarkerID==markerID){m_lbAdvRoutePointList.selectedIndex=i;jx();return;}}};function eK(feet,tbID){if(feet==null){feet=eT(tbID);}if(feet==null){feet=100;}if(thisLine){var width=jv(map.GetZoomLevel(),feet);thisLine.SetLineWidth(width);}};function eT(tbID){var m_tbRadius=document.getElementById(tbID);var r=m_tbRadius.value;if(isNaN(r)){iA("You must enter a number in the radius field.");return null;}r=iB(r,0,true);if((tbID=="tbRadius"&&isChecked("radFeet"))||(tbID=="tbARadius"&&isChecked("radAFeet"))){if(r<100){iA("Radius must not be less than 100 feet.");return null;}else if(r>5280){iA("Radius must not be more than 5280 feet (1 mile).");return null;}return r;}else{if(r<30){iA("Radius must not be less than 30 meters.");return null;}else if(r>1609){iA("Radius must not be more than 1609 meters (1 mile).");return null;}return iB((r*3.2808399),0,true);}};function iP(tbID){var r=jT(tbID);r=iB((r*3.2808399),0,true);r=(r<100?100:r);r=(r>5281?5281:r);document.getElementById(tbID).value=r;eK(r,tbID);if(tbID=="tbRadius"){iC();}};function iR(tbID){var r=jT(tbID);eK(r,tbID);r=iB((r*0.3048),0,true);r=(r<30?30:r);r=(r>1610?1610:r);document.getElementById(tbID).value=r;if(tbID=="tbRadius"){iC();}};function jv(zoomLevel,feet){var width=feet/Math.pow(2,(18-zoomLevel));if(width<2){width=2;}return width;};function iV(){if(thisLine){thisLine.SetLineColor(eV("tbAdvRouteColor"));}};function iE(ddlID){var ddl=document.getElementById(ddlID);ddl.options.length=0;var index=1;var routeList=jD();if(routeList==null){return;}routeList=routeList.value;if(ddlID=="ddlRouteNames"){ddl.options[0]=new Option("New Route",-1);}else{ddl.options[0]=new Option("Select Route",-1);}if(ddlID=="MapControlRouteNames"){ddl.options[1]=new Option("All Routes",-2);index=2;}for(var i=0;i<routeList.Rows.length;i++){ddl.options[index]=new Option(routeList.Rows[i].RouteName,routeList.Rows[i].RouteID);index++;}ddl.selectedIndex=0;jw(-1);};function jD(){if(m_CurrentUser!=null&&m_CurrentUser!=''&&m_CurrentUser!= -1){var response;response=DAL.GetAdvRouteNames(m_CurrentUser);return response;}};function iC(){var milesOrKilometers=(isChecked("radFeet")?GeoCodeCalc.EarthRadiusInMiles:GeoCodeCalc.EarthRadiusInKilometers);var mileage=0;if(thisLine!=null){mileage=iB(iZ(thisLine.GetPoints(),milesOrKilometers),2,true);}document.getElementById("distanceLabel").innerHTML=mileage.toString()+" "+(isChecked("radFeet")?"Miles":"Kilometers");};function iZ(points,radius){if(points==null){return 0;}var mileage=0;for(var i=0;i<points.length-1;i++){mileage+=GeoCodeCalc.CalcDistance(points[i].Latitude,points[i].Longitude,points[i+1].Latitude,points[i+1].Longitude,radius);}return mileage;};function im(){jd("ddlAdvRouteVehicles","lbAdvRouteVehicleList");};function gP(value){var m_lbAdvRouteVehicleList=document.getElementById("lbAdvRouteVehicleList");if(m_lbAdvRouteVehicleList==null){return;}if(value){m_lbAdvRouteVehicleList.options.length=0;}else{if(m_lbAdvRouteVehicleList.selectedIndex!= -1){m_lbAdvRouteVehicleList.remove(m_lbAdvRouteVehicleList.selectedIndex);}}};function iI(){var r=eT("tbARadius");var minRadius=parseInt(document.getElementById("tbAMinRadius").value);if(r==null){r=minRadius;}eK(r);};function jA(routeID){var response;var m_lbAdvRouteVehicleList=document.getElementById("lbAdvRouteVehicleList");m_lbAdvRouteVehicleList.options.length=0;response=DAL.GetAdvRouteVehicles(routeID);if(response.value.Rows.length==0){var m_ddlAdvRouteVehicles=document.getElementById("ddlAdvRouteVehicles");for(i=1;i<m_ddlAdvRouteVehicles.length;i++){m_lbAdvRouteVehicleList.options[m_lbAdvRouteVehicleList.length]=new Option(m_ddlAdvRouteVehicles.options[i].text,m_ddlAdvRouteVehicles.options[i].value);}}else{for(i=0;i<response.value.Rows.length;i++){m_lbAdvRouteVehicleList.options[m_lbAdvRouteVehicleList.length]=new Option(response.value.Rows[i].VehicleName,response.value.Rows[i].VehicleID);}}};var jl=false;function jk(Show){if(Show==true&&isAdvRouteVisible==true){iA("Sorry, you must close the Advanced Route Planner window to use this function.");return;}if(Show==true&&AlertEditorOpen==true){iA("Sorry, you must close the Alert Editor window to use this function.");return;}document.getElementById("RouteListTbl").style.visibility=(Show?"visible":"hidden");document.getElementById("MapControlTbl").style.visibility=(Show?"hidden":"visible");document.getElementById("sl0slider").style.visibility=(Show?"hidden":"visible");document.getElementById("RouteListTbl").style.display=(Show?"block":"none");document.getElementById("MapControlTbl").style.display=(Show?"none":"block");document.getElementById("sl0slider").style.display=(Show?"none":"block");};function iY(routeID){var dtRoute=DAL.GetAdvRoute(routeID);var dtRouteDetail=DAL.GetAdvRouteDetail(routeID);if(dtRoute.value.Rows.length!=0){if(dtRouteDetail.value.Rows.length!=0){var points=new Array();for(var i=0;i<dtRouteDetail.value.Rows.length;i++){var point=new VELatLong(dtRouteDetail.value.Rows[i].Lat,dtRouteDetail.value.Rows[i].Lon);points.push(point);}if(!jl){SetMapView(points);}if(allRouteLayer==null){allRouteLayer=iG("All Advanced Route Layer","Layer contains all advanced routes for the account.");}var radius=dtRoute.value.Rows[0].Radius;var aLine=iL(allRouteLayer,points,jz(dtRoute.value.Rows[0].Color));var width=jv(map.GetZoomLevel(),radius);aLine.SetLineWidth(width);aLine.Radius=radius;aLine.RouteID=routeID;}}};function jb(routeID){if(allRouteLayer==null){return;}for(var i=0;i<allRouteLayer.GetShapeCount();i++){if(allRouteLayer.GetShapeByIndex(i).RouteID==routeID){shape=allRouteLayer.GetShapeByIndex(i);break;}}if(shape==null){return;}allRouteLayer.DeleteShape(shape);};function iT(){if(allRouteLayer!=null){iJ(allRouteLayer);allRouteLayer=null;}};function iW(){var shapeCount=allRouteLayer.GetShapeCount();var shape=null;var width=1;for(var i=0;i<shapeCount;i++){shape=allRouteLayer.GetShapeByIndex(i);if(shape.Radius!=null){width=jv(map.GetZoomLevel(),shape.Radius);shape.SetLineWidth(width);}}};function iU(routeID,value){if(value==true){iY(routeID);}else{jb(routeID);jl=false;}jg();};function eU(check){jl=check;var list=document.aspnetForm.RouteCheckboxList;if(list==null){return;}for(var i=0;i<list.length;i++){if(list[i].checked!=check){list[i].checked=check;iU(list[i].value,check);}}if(check){SetMapView(allRouteLayer.GetBoundingRectangle());}else{iT();}};function jg(){var cb=document.getElementById("CBAllRoutes");var list=document.aspnetForm.RouteCheckboxList;if(list==null){return;}for(i=0;i<list.length;i++){if(list[i].checked==false){cb.checked=false;return;}}jl=true;cb.checked=true;}