function AddressDistanceHelper(){}AddressDistanceHelper.AddressPolylineGraphic=null;AddressDistanceHelper.ClientCallback=null;AddressDistanceHelper.AddressGraphic=null;AddressDistanceHelper.Address=null;AddressDistanceHelper.Distance=0;AddressDistanceHelper.MeasureDistance=function(i,g,c,b,e,f){AddressFocusHelper.RemoveAddressFocus();AddressDistanceHelper.ClientCallback=f;AddressDistanceHelper.Address=e;var a=new esri.geometry.Point(i,g,new esri.SpatialReference({wkid:Configuration.SpatialReferenceWKID_BING}));var h=new esri.geometry.Point(c,b,new esri.SpatialReference({wkid:Configuration.SpatialReferenceWKID_BING}));var j=new esri.geometry.Polyline(new esri.SpatialReference({wkid:Configuration.SpatialReferenceWKID_BING}));j.addPath([a,h]);AddressDistanceHelper.AddressPolylineGraphic=new esri.Graphic(j,Configuration.AddressDistanceSymbol,null);var d=MapHelper.CreateGraphicsLayer("addressDistanceLayer");if(d!=null){MapHelper.ReorderGraphicsLayer("addressDistanceLayer",0);d.add(AddressDistanceHelper.AddressPolylineGraphic);Configuration.GeometryService.project([AddressDistanceHelper.AddressPolylineGraphic],new esri.SpatialReference({wkid:Configuration.SpatialReferenceWKID_BING}),function(k){Configuration.GeometryService.lengths([AddressDistanceHelper.AddressPolylineGraphic],function(l){AddressDistanceHelper.OnLengthsComplete(l)},function(l){alert("There was a problem getting the length of the graphic.\rCode: "+l.code+"\r\nMessage: "+l.message+"\r\nDetails:"+l.details)})},function(k){alert("There was a problem projecting the graphic.\rCode: "+k.code+"\r\nMessage: "+k.message+"\r\nDetails:"+k.details)});AddressDistanceHelper.AddressGraphic=new esri.Graphic(h,Configuration.AddressGraphicSymbol);d.add(AddressDistanceHelper.AddressGraphic);dojo.connect(d,"onClick",function(k){MapHelper.ShowAddressGraphicDistanceInfoWindow()});Map.Map.setExtent(AddressDistanceHelper.AddressPolylineGraphic.geometry.getExtent().expand(2))}};AddressDistanceHelper.OnLengthsComplete=function(d){Map.Map.infoWindow.hide();if(d.lengths!=undefined&&d.lengths!=null){var b="";var c=d.lengths[0]/1000;var a=c*0.621371192;b="Distance is "+(Math.round(a*100)/100)+" miles";AddressDistanceHelper.Distance=(Math.round(a*100)/100);MapHelper.ShowAddressGraphicDistanceInfoWindow();EventBinderHelper.EnableRemoveLinesButtons();if(AddressDistanceHelper.ClientCallback!=null){AddressDistanceHelper.ClientCallback()}}else{alert("No lengths returned")}};AddressDistanceHelper.ShowAddressDistanceFinder=function(){$("#address-distance-button").hide();$("#address-distance-finder-panel").show("fast",function(){MapHelper.UpdateInfoWindow()})};AddressDistanceHelper.HideAddressDistanceFinder=function(){$("#address-distance-finder-panel").hide();MapHelper.UpdateInfoWindow()};AddressDistanceHelper.GetDistance=function(){Configuration.IsMeasuringDistance=true;MapHelper.GeocodeAddress("#distance-finder-address")};AddressDistanceHelper.RemovePolylineOverlay=function(){MapHelper.CloseInfoWindow();if(AddressDistanceHelper.AddressPolylineGraphic!=null){MapHelper.ClearGraphicsLayer("addressDistanceLayer");Configuration.IsMeasuringDistance=false;EventBinderHelper.DisableRemoveLinesButtons()}};