function onGeocodeClick(address1){address=address1;StartGeocoding(address)}function StartGeocoding(address){map.Find(null,address,null,null,null,null,null,null,null,null,GeocodeCallback)}function GeocodeCallback(shapeLayer,findResults,places,moreResults,errorMsg){var resHtml="";if(places==null){alert((errorMsg==null)?"There were no results":errorMsg);return}var place=places[0];var location=place.LatLong;var latitude=location.Latitude;var longitude=location.Longitude;lati=latitude;longi=longitude;var pin=new VEShape(VEShapeType.Pushpin,location);pin.SetCustomIcon("<img src='"+pushpinUrl+"'>");map.AddShape(pin)}function ShowTurnByTurn(route){var turns="";turns+="<h3>Distance:</strong> "+route.Distance.toFixed(1)+" km";if(g_ShowTravelTime){turns+="<br/><strong>Time:</strong> "+GetTime(route.Time)}turns+="</h3>";turns+="<h4><img src='"+A_ico+"'>"+jQuery("#txtStart").val()+"</h4>";var legs=route.RouteLegs;var leg=null;var turnNum=0;turns+="<ol>";for(var i=0;i<legs.length;i++){leg=legs[i];var legNum=i+1;var turn=null;var legDistance=null;var itineraryLength=leg.Itinerary.Items.length;for(var j=0;j<leg.Itinerary.Items.length;j++){var routeTurnID=g_RouteTurnIDTemplate.replace("{0}",i).replace("{1}",j);turnNum++;turn=leg.Itinerary.Items[j];var turnShape=turn.Shape;var position=turn.LatLong;var shapeIconHtml="";var padding=(turnNum<10)?"&nbsp;":"";shapeIconHtml=g_TurnIconHtmlTemplate.replace("{0}",padding+turnNum+padding);var shape=new VEShape(VEShapeType.Pushpin,turn.LatLong);shape.SetCustomIcon(shapeIconHtml);shape.SetZIndex(2003,2000);shape.Hide();g_RouteShapeLayer.AddShape(shape);turns+="<li id='{0}' routeturntroup='1' shape_id='{1}'>".replace("{0}",routeTurnID).replace("{1}",shape.guid);turns+=turn.Text;legDistance=turn.Distance;if(legDistance>0){turns+=" ("+legDistance.toFixed(1)+" km";if(g_ShowTravelTime){if(turn.Time!=null){turns+="; "+GetTime(turn.Time)}}turns+=")"}turns+="</li>"}}turns+="</ol>";turns+="<h4><img src='"+B_ico+"'>"+jQuery("#txtEnd").val()+"</h4>";jQuery("[routeturntroup=1]").live("mouseover",RouteTurn_OnMouseOver);
jQuery("[routeturntroup=1]").live("mouseout",RouteTurn_OnMouseOut);jQuery("[routeturntroup=1]").live("click",RouteTurn_OnClick);SetDirections(turns)}function GetDirections(){var map=g_mapManager.MapInstance;var shapeLayerManager=g_mapManager.ShapeLayerManager;var shapeManager=g_mapManager.ShapeManager;g_RouteShapeLayer.DeleteAllShapes();g_DragPointShapeLayer.DeleteAllShapes();g_DestinationShapeLayer.DeleteAllShapes();g_PointArray=[];g_NumberOfGotRoute=1;var locations=[];locations.push(jQuery("#txtStart").val());if(jQuery("#useLatLongForDirections").val()=="true"){var latitude=jQuery("#latitude").val();var longitude=jQuery("#longitude").val();var latLong=new VELatLong(latitude,longitude);locations.push(latLong)}else{locations.push(jQuery("#txtEnd").val())}var options=GetRouteOptions();g_mapManager.MapInstance.GetDirections(locations,options)}function OnGotRoute(route){var map=g_mapManager.MapInstance;var shapeLayerManager=g_mapManager.ShapeLayerManager;var shapeManager=g_mapManager.ShapeManager;if(route.RouteLegs==null||route.RouteLegs.length==0){return}if(g_ShowTurnByTurn){ShowTurnByTurn(route)}if(g_PointArray.length==0){g_PointArray.push(route.RouteLegs[0].StartLocation);g_PointArray.push(route.RouteLegs[0].EndLocation)}if(g_NumberOfGotRoute==1){map.SetMapView(route.ShapePoints)}g_NumberOfGotRoute++;var shape=new VEShape(VEShapeType.Polyline,route.ShapePoints);shape.ReferenceID="Route";shape.SetLineColor(new VEColor(24,93,198,0.6));shape.SetLineWidth(5);shape.HideIcon();shape.SetTitle(g_RouteTitle);shape.SetZIndex(1000,2000);g_RouteShapeLayer.AddShape(shape);var startPoint=new VEShape(VEShapeType.Pushpin,route.RouteLegs[0].StartLocation);startPoint.ReferenceID="0";startPoint.SetCustomIcon(A_ico);startPoint.SetZIndex(2001,2000);g_RouteShapeLayer.AddShape(startPoint);var numLegs=route.RouteLegs.length;if(numLegs>1){for(i=1;i<=numLegs-1;i++){var wayPoint=new VEShape(VEShapeType.Pushpin,route.RouteLegs[i].StartLocation);wayPoint.ReferenceID=i;wayPoint.SetCustomIcon("/images/POI_dd-via.png");wayPoint.SetZIndex(2001,2000);
g_RouteShapeLayer.AddShape(wayPoint);var primitiveID=wayPoint.Primitives[0].iid;jQuery("#"+primitiveID).contextMenu({menu:"myRouteContextMenu"},function(action,el,pos){RouteContextMenuAction(action,el,pos)})}}var endPoint=new VEShape(VEShapeType.Pushpin,route.RouteLegs[numLegs-1].EndLocation);endPoint.ReferenceID=numLegs;endPoint.SetCustomIcon(B_ico);endPoint.SetZIndex(2002,2000);g_RouteShapeLayer.AddShape(endPoint);map.AttachEvent("onmouseover",HandleMouseOverRoute)}function HandleMouseOverRoute(e){var map=g_mapManager.MapInstance;var shapeLayerManager=g_mapManager.ShapeLayerManager;var shapeManager=g_mapManager.ShapeManager;if(e.elementID!=null){if(map.GetShapeByID(e.elementID).GetTitle().match(g_RouteTitle)){map.DetachEvent("onmouseover",HandleMouseOverRoute);var x=e.mapX;var y=e.mapY;var LL=map.PixelToLatLong(new VEPixel(x,y));g_DragPoint=new VEShape(VEShapeType.Pushpin,LL);g_DragPoint.SetCustomIcon("/images/POI_dd-via.png");g_DragPoint.SetZIndex(1000,2000);g_DragPointShapeLayer.AddShape(g_DragPoint);map.AttachEvent("onmousemove",HandleMouseOverRouteMove)}}}function HandleMouseOverRouteMove(e){var map=g_mapManager.MapInstance;var shapeLayerManager=g_mapManager.ShapeLayerManager;var shapeManager=g_mapManager.ShapeManager;if(e.elementID!=null){if(map.GetShapeByID(e.elementID).GetTitle().match(g_RouteTitle)){var x=e.mapX;var y=e.mapY;var LL=map.PixelToLatLong(new VEPixel(x,y));g_DragPoint.SetPoints(LL);map.AttachEvent("onmousedown",HandleMouseDown)}}else{map.DetachEvent("onmousedown",HandleMouseDown);map.DetachEvent("onmousemove",HandleMouseOverRouteMove);g_DragPointShapeLayer.DeleteAllShapes();map.AttachEvent("onmouseover",HandleMouseOverRoute)}}function HandleMouseDown(e){var map=g_mapManager.MapInstance;if(e.elementID!=null&&e.leftMouseButton){map.DetachEvent("onmousemove",HandleMouseOverRouteMove);map.AttachEvent("onmousemove",HandleDragPointMove);map.AttachEvent("onmouseup",HandleMouseUp)}}function HandleDragPointMove(e){var map=g_mapManager.MapInstance;var x=e.mapX;var y=e.mapY;var LL=map.PixelToLatLong(new VEPixel(x,y));
g_DragPoint.SetPoints(LL);return true}function HandleMouseUp(e){var map=g_mapManager.MapInstance;map.DetachEvent("onmousemove",HandleDragPointMove);map.DetachEvent("onmouseup",HandleMouseUp);if(e.leftMouseButton){var x=e.mapX;var y=e.mapY;var LL=map.PixelToLatLong(new VEPixel(x,y));g_PointArray.splice(g_PointArray.length-1,0,LL);g_DragPoint=null;g_DragPointShapeLayer.DeleteAllShapes();Reroute()}}function Reroute(){var map=g_mapManager.MapInstance;var shapeLayerManager=g_mapManager.ShapeLayerManager;var shapeManager=g_mapManager.ShapeManager;g_RouteShapeLayer.DeleteAllShapes();var options=GetRouteOptions();map.GetDirections(g_PointArray,options)}function GetRouteOptions(){var options=new VERouteOptions();options.DrawRoute=false;options.DistanceUnit=VERouteDistanceUnit.Kilometer;options.SetBestMapView=false;options.RouteCallback=OnGotRoute;return options}function SetDirections(s){var d=document.getElementById("directions");d.innerHTML=s}function GetTime(time){if(time==null){return("")}if(time>60){var seconds=time%60;var minutes=time-seconds;minutes=minutes/60;if(minutes>60){var minLeft=minutes%60;var hours=minutes-minLeft;hours=hours/60;return(hours+" hour(s), "+minLeft+" minute(s), "+seconds+" second(s)")}else{return(minutes+" minutes, "+seconds+" seconds")}}else{return(time+" seconds")}}function RouteTurn_OnMouseOver(e){var id=e.srcElement.id;if(!String.IsNullOrEmpty(id)){jQuery("#"+id).removeClass().addClass("RouteTurnHoverStyle");var shape_id=jQuery("#"+id).attr("shape_id");var shape=g_RouteShapeLayer.GetShapeByID(shape_id);if(shape!=null){shape.Show()}}}function RouteTurn_OnMouseOut(e){var id=e.srcElement.id;if(!String.IsNullOrEmpty(id)){jQuery("#"+id).removeClass().addClass("RouteTurnStyle");var shape_id=jQuery("#"+id).attr("shape_id");var shape=g_RouteShapeLayer.GetShapeByID(shape_id);if(shape!=null){shape.Hide()}}}function RouteTurn_OnClick(e){var id=e.srcElement.id;if(!String.IsNullOrEmpty(id)){var shape_id=jQuery("#"+id).attr("shape_id");var shape=g_RouteShapeLayer.GetShapeByID(shape_id);if(shape!=null){g_mapManager.MapInstance.SetCenter(shape.GetPoints()[0])
}}}function MapContextMenuAction(action,el,pos){if(action=="add_destination"){if(g_PointArray!=null&&g_PointArray.length>0){var map=g_mapManager.MapInstance;var shapeIconHtml="<img src='/images/blue_dot.gif'>";var pixel=new VEPixel(pos.x+5,pos.y+5);var shape=new VEShape(VEShapeType.Pushpin,map.PixelToLatLong(pixel));shape.SetCustomIcon(shapeIconHtml);shape.SetZIndex(2004,2000);shape.Hide();var LL=map.PixelToLatLong(pixel);g_PointArray.splice(g_PointArray.length-1,0,LL);g_DragPoint=null;g_DragPointShapeLayer.DeleteAllShapes();Reroute()}}}function RouteContextMenuAction(action,el,pos){if(action=="delete_destination"){var map=g_mapManager.MapInstance;var primitiveID=jQuery(el).attr("id");var shape=map.GetShapeByID(primitiveID);if(shape!=null){if(g_PointArray!=null&&g_PointArray.length>0){if(shape.ReferenceID>0&&shape.ReferenceID<g_PointArray.length-1){g_PointArray.splice(shape.ReferenceID,1);g_RouteShapeLayer.DeleteShape(shape);g_DragPoint=null;g_DragPointShapeLayer.DeleteAllShapes();Reroute()}}}}}function callGetDirections(){$("#directionsBox").show();GetDirections()}function hideDirections(){$("#directions").fadeOut(300)}function showDirections(){$("#directions").fadeIn(300)};
