if(typeof console=="undefined"){var console={};console.log=function(a){return }}function KMDelegateOption(a,b){this.RunDefaultHandler=a;this.ClientDelegateName=b;this.Clone=function(c,d){this.RunDefaultHandler=c;if(jQuery.isArray(d)){this.ClientDelegateName=d.slice()}else{this.ClientDelegateName=d}}}KMDirectionTurn={};KMDirectionTurn.UTurnPatterns=["U-turn","demi-tour"];KMDirectionTurn.LeftTurnPatterns=["Turn left","Tourner à gauche"];KMDirectionTurn.RightTurnPatterns=["Turn right","Tourner à droite"];KMDirectionTurn.LeftRampPatterns=["Bear left","ramp left","Prendre à gauche","la gauche"];KMDirectionTurn.RightRampPatterns=["Bear right","ramp right","Prendre à droite","la droite"];KMDirectionTurn.StraightPatterns=["Keep straight","Continuer"];KMDirectionTurn.DepartPatterns=["Depart","Départ"];KMDirectionTurn.ArrivePatterns=["Arrive","Arrivée"];KMDirectionTurn.IsTextMatchedToPattern=function(c,f){if(jQuery.isArray(c)&&!String.IsNullOrEmpty(f)){for(var b=0;b<c.length;b++){var e=c[b];var d=new RegExp(e,"gi");var a=f.match(d);if(a!=null&&a.length>0){return true}}}return false};KMDirectionTurn.GetDirectionTurnType=function(a){if(KMDirectionTurn.IsTextMatchedToPattern(KMDirectionTurn.UTurnPatterns,a)){return KMDirectionTurnType.UTurn}if(KMDirectionTurn.IsTextMatchedToPattern(KMDirectionTurn.LeftTurnPatterns,a)){return KMDirectionTurnType.LeftTurn}if(KMDirectionTurn.IsTextMatchedToPattern(KMDirectionTurn.RightTurnPatterns,a)){return KMDirectionTurnType.RightTurn}if(KMDirectionTurn.IsTextMatchedToPattern(KMDirectionTurn.LeftRampPatterns,a)){return KMDirectionTurnType.LeftRamp}if(KMDirectionTurn.IsTextMatchedToPattern(KMDirectionTurn.RightRampPatterns,a)){return KMDirectionTurnType.RightRamp}if(KMDirectionTurn.IsTextMatchedToPattern(KMDirectionTurn.StraightPatterns,a)){return KMDirectionTurnType.Straight}if(KMDirectionTurn.IsTextMatchedToPattern(KMDirectionTurn.DepartPatterns,a)){return KMDirectionTurnType.Depart}if(KMDirectionTurn.IsTextMatchedToPattern(KMDirectionTurn.ArrivePatterns,a)){return KMDirectionTurnType.Arrive}return KMDirectionTurnType.None
};var KMDirectionTurnType={None:0,UTurn:1,LeftTurn:2,RightTurn:3,LeftRamp:4,RightRamp:5,Straight:6,Depart:7,Arrive:8};String.IsNullOrEmpty=function(a){if(a){if(typeof (a)=="string"){if(a.length>0){return false}}if(a!=null){return false}}return true};String.prototype.Trim=function(){return this.replace(/^\s\s*/,"").replace(/\s\s*$/,"")};KMObject={};KMObject.Extend=function(c,a){function b(){}b.prototype=a.prototype;c.prototype=new b();c.prototype.constructor=c;c.baseConstructor=a;c.superClass=a.prototype};function KMRouteSegment(){this.SegmentType=KMRouteSegmentType.Unknown;this.DestinationIndex=-1;this.IndexArray=[];this.LegArray=[]}var KMRouteSegmentType={Unknown:0,Destination:1,Leg:2};GetQueryStringVariable=function(a){var c=window.location.search.substring(1);var d=c.split("&");for(var b=0;b<d.length;b++){var e=d[b].split("=");if(e[0]==a){return e[1]}}return""};DebugPointArray=function(b){if(jQuery.isArray(b)){var a="";for(var c=0;c<b.length;c++){a+=b[c].Debug()}return a}return""};DebugArray=function(a){if(jQuery.isArray(a)){var b="";for(var c=0;c<a.length;c++){b+="["+a[c]+"]"}return b}return""};FloatEquals=function(o,n,k){var d=false;var f=Math.floor(o);var e=Math.floor(n);if(f!=e){return false}var b=Math.pow(10,k);var c=Math.floor(o*b);var a=Math.floor(n*b);if(c==a){return true}var h=String(o).length;var g=String(n).length;if(h>=g){d=String(o).indexOf(String(n))==0}else{d=String(n).indexOf(String(o))==0}if(d){return true}var q=ChopFloatToPrecision(o,k);var p=ChopFloatToPrecision(n,k);d=q==p;if(d){return true}var m=parseFloat(o).toFixed(k);var l=parseFloat(n).toFixed(k);d=m==l;return d};GetFloatPrecision=function(a){var b=new String(a);if(b.indexOf(".")>-1){return b.length-b.indexOf(".")-1}else{return 0}};ChopFloatToPrecision=function(b,d){var c=GetFloatPrecision(b);if(c==0||c<=d){return b}var e=new String(b);var a=e.length;var h=e.indexOf(".");var f=a-(c-d);var g=e.substr(0,f);return parseFloat(g)};AddressKindOfEquals=function(f,e){if(String.IsNullOrEmpty(f)||String.IsNullOrEmpty(e)){return false}var d=f.replace(/\,/gi,"").replace(/\./gi,"");
var h=e.replace(/\,/gi,"").replace(/\./gi,"");if(String.IsNullOrEmpty(d)||String.IsNullOrEmpty(h)){return false}var g=new RegExp(h,"gi");var c=d.match(g);if(c!=null&&c.length>0){return true}g=new RegExp(d,"gi");c=h.match(g);if(c!=null&&c.length>0){return true}return false};AddressIndexInArray=function(c,b){if(jQuery.isArray(b)){for(var d=0;d<b.length;d++){if(AddressKindOfEquals(c,b[d])){return d}}}return -1};VEShapeLayer.prototype.ReferenceID=null;VEShapeLayer.prototype.Group=null;VEShapeLayer.prototype.GeocodeIndex=null;VEShape.prototype.ReferenceID=null;VEShape.prototype.ShapeLayerID=null;VEShape.prototype.IsClustered=false;VEShape.prototype.IsInMapView=false;VEShape.prototype.Payload=null;VEShape.prototype.Group=null;VELatLongRectangle.prototype.Centre=null;VELatLongRectangle.prototype.Zoom=null;VEPixel.prototype.IntX=function(){return this.x.toFixed()};VEPixel.prototype.IntY=function(){return this.y.toFixed()};VEPixel.prototype.Debug=function(){return"("+this.IntX()+","+this.IntY()+")"};VEPixel.prototype.IndexInArray=function(a){if(jQuery.isArray(a)){for(var c=0;c<a.length-1;c++){var e=a[c];var b=a[c+1];var f=false;var d=false;if(e.IntX()<=b.IntX()){if(this.IntX()>=e.IntX()&&this.IntX()<=b.IntX()){f=true}}else{if(this.IntX()>=b.IntX()&&this.IntX()<=e.IntX()){f=true}}if(e.IntY()<=b.IntY()){if(this.IntY()>=e.IntY()&&this.IntY()<=b.IntY()){d=true}}else{if(this.IntY()>=b.IntY()&&this.IntY()<=e.IntY()){d=true}}if(f&&d){return(c+1)}}}return -1};VELatLong.prototype.Debug=function(){return"("+this.Latitude+","+this.Longitude+")"};VELatLong.prototype.KindOfEquals=function(a,b){if(b===undefined){b=6}if(FloatEquals(this.Latitude,a.Latitude,b)&&FloatEquals(this.Longitude,a.Longitude,b)){return true}if(FloatEquals(this.Latitude,a.Latitude,b-1)&&FloatEquals(this.Longitude,a.Longitude,b-1)){return true}return false};VELatLong.prototype.KindOfInArray=function(a){if(jQuery.isArray(a)){for(var b=0;b<a.length;b++){if(a[b].KindOfEquals(this)){return b}}}return -1};VELatLongRectangle.prototype.Debug=function(){return"TopLeft: "+this.TopLeftLatLong.Debug()+", BottomRight: "+this.BottomRightLatLong.Debug()
};VEMap.prototype.GetShapeGuidFromPrimitiveID=function(a){var d=a.replace(/[^_]/g,"").length;if(d==3){var c=a.lastIndexOf("_");var b=a.substring(0,c);return b}return a};VEMap.prototype.LatLongToPixelArray=function(b){var c=[];for(var a=0;a<b.length;a++){c.push(this.LatLongToPixel(b[a],this.GetZoomLevel()))}return c};VEMap.prototype.PixelToLatLongArray=function(b){var c=[];for(var a=0;a<b.length;a++){c.push(this.PixelToLatLong(b[a]))}return c};VERoute.prototype.GetLocations=function(){var a=[];if(this.RouteLegs!=null){for(var b=0;b<=this.RouteLegs.length-1;b++){a.push(this.RouteLegs[b].StartLocation)}a.push(this.RouteLegs[this.RouteLegs.length-1].EndLocation)}return a};VERoute.prototype.GetShapePointsOfAllLegs=function(){if(this.RouteLegs!=null&&this.ShapePoints!=null){var f=new Array(this.RouteLegs.length);for(i=0;i<=this.RouteLegs.length-1;i++){f[i]=[];var d=this.RouteLegs[i];var e=d.StartLocation;var b=d.EndLocation;var a=0;for(var c=0;c<this.ShapePoints.length;c++){if(e.KindOfEquals(this.ShapePoints[c])){a=1}if(a==1){f[i].push(this.ShapePoints[c])}if(b.KindOfEquals(this.ShapePoints[c])){a=2;f[i].push(this.ShapePoints[c])}if(a==2){break}}}return f}return null};VERoute.prototype.GetShapePointsOfLeg=function(a){if(this.RouteLegs!=null&&this.ShapePoints!=null){var b=this.GetShapePointsOfAllLegs();if(b!=null){if(a>0&&a<b.length){return b[a]}}}return null};VERoute.prototype.GetRouteSegmentArray=function(f){if(this.RouteLegs==null||!jQuery.isArray(this.RouteLegs)){return null}if(!jQuery.isArray(f)){return null}var h=this.GetLocations();var c=[];for(var e=0;e<f.length;e++){var l=f[e];var g=l.KindOfInArray(h);c.push(g)}var m=[];var d=-1;var b=-1;for(var e=0;e<c.length;e++){b=d;d=c[e];if(e==0){var k=new KMRouteSegment();k.SegmentType=KMRouteSegmentType.Destination;k.DestinationIndex=e;k.IndexArray=null;k.LegArray=null;m.push(k)}if(e>0){if(d-b>=1){var a=new KMRouteSegment();a.SegmentType=KMRouteSegmentType.Leg;a.DestinationIndex=-1;a.IndexArray=[];a.LegArray=[];for(j=b;j<=d-1;j++){a.IndexArray.push(j);a.LegArray.push(this.RouteLegs[j])
}m.push(a)}var k=new KMRouteSegment();k.SegmentType=KMRouteSegmentType.Destination;k.DestinationIndex=e;k.IndexArray=null;k.LegArray=null;m.push(k)}}return m};function KMCacheManager(){var d;var c="divDataCache";function e(){if(!d&&GetQueryStringVariable("state")!="clear"){try{d=new JSTONE(JSON)}catch(f){}}}function b(f){if(f!=null&&typeof (f)=="string"){f=f.replace(/'/gi,"");f=f.replace(/#/gi,"");f=f.replace(/\$/gi,"");f=f.replace(/%/gi,"");f=f.replace(/\^/gi,"");f=f.replace(/!/gi,"");f=f.replace(/</gi,"");f=f.replace(/>/gi,"");f=f.replace(/~/gi,"");f=f.replace(/"/gi,"");f=f.replace(/\//gi,"");f=f.replace(/\*/gi,"")}return f}function a(f){if(f!=null&&typeof (f)=="string"){f=b(f);f=f.replace(/;/gi,"")}return f}this.Save=function(f,g){e();if(d==undefined||d==null){return""}d.write(f,g)};this.Retrieve=function(f){e();if(d==undefined||d==null){return""}return d.read(f)};this.SetClientCookie=function(h,l,g,n,k,m){var f=new Array();if(h!=null&&l!=null){f.push(a(h)+"="+a(l))}if(g!=null){f.push("expires="+g)}if(n!=null){f.push("path="+n)}if(k!=null){f.push("domain="+k)}if(m!=null&&m){f.push("secure")}document.cookie=f.join("; ")};this.GetClientCookie=function(){return b(document.cookie)};this.GetClientCookieByName=function(f){var l=document.cookie.split(";");var m=f+"=";var k=null;for(var h=0;h<l.length;h++){var g=l[h];while(g.charAt(0)==" "){g=g.substring(1,g.length)}if(g.indexOf(m)==0){k=g.substring(m.length,g.length)}}return k};this.SaveObjectToClientCache=function(h,k){if(typeof k!="object"){return }if(String.IsNullOrEmpty(h)){return }var g=JSON.stringify(k);if(jQuery("#"+c).length==0){var l=document.createElement("div");l.setAttribute("id",c);jQuery(l).css("display","none");jQuery(l).appendTo("body")}if(jQuery("#"+h).length==0){var f=document.createElement("div");f.setAttribute("id",h);jQuery("#"+c).append(f)}jQuery("#"+h).text(g)};this.GetObjectFromClientCache=function(g){if(String.IsNullOrEmpty(g)){return null}if(jQuery("#"+g).length==0){return null}var f=jQuery("#"+g).text();var k=null;try{k=JSON.parse(f)}catch(h){return null
}return k}}function KMClusterManager(mapInstance,shapeLayerManager,shapeManager){var _clusterManager=this;var _mapInstance=mapInstance;var _shapeLayerManager=shapeLayerManager;var _shapeManager=shapeManager;var _clusterShapeLayer=null;var _clusterMapDelegateOption=new KMDelegateOption(true,"");this.Debug=true;this.SetClusterShapeLayer=function(shapeLayer,image){_clusterShapeLayer=shapeLayer;var options=new VEClusteringOptions();options.Callback=this.OnClusterMapHandler;if(!String.IsNullOrEmpty(image)){var customIcon=new VECustomIconSpecification();customIcon.Image=image;options.Icon=customIcon}_clusterShapeLayer.SetClusteringConfiguration(VEClusteringType.Grid,options)};this.SetClusterShapeLayerByID=function(shapeLayerID,image){var shapeLayer=_shapeLayerManager.GetShapeLayer(shapeLayerID);this.SetClusterShapeLayer(shapeLayer,image)};this.GetClusterShapes=function(){if(_clusterShapeLayer!=null){return _clusterShapeLayer.GetClusteredShapes(VEClusteringType.Grid)}return null};this.SetClusterMapDelegateOption=function(option){_clusterMapDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName)};this.OnClusterMapHandler=function(clusters){if(_clusterMapDelegateOption.RunDefaultHandler){if(_clusterManager.Debug){console.log("KMClusterManager.OnClusterMapHandler: Number of clusters: %s",clusters.length)}}if(jQuery.isArray(_clusterMapDelegateOption.ClientDelegateName)){for(var i=0;i<_clusterMapDelegateOption.ClientDelegateName.length;i++){var delegate=_clusterMapDelegateOption.ClientDelegateName[i];if(!String.IsNullOrEmpty(delegate)){eval(delegate)(_clusterManager,clusters)}}}else{if(!String.IsNullOrEmpty(_clusterMapDelegateOption.ClientDelegateName)){eval(_clusterMapDelegateOption.ClientDelegateName)(_clusterManager,clusters)}}}}function KMListManager(listParentDiv){var _listParentDiv=listParentDiv;var _listItemMouseOverDelegateOption=new KMDelegateOption(true,"");var _listItemMouseOutDelegateOption=new KMDelegateOption(true,"");var _listItemMouseOverCSSClass=null;var _listItemMouseOutCSSClass=null;this.ItemCount=null;
this.SetListItemMouseOverDelegate=function(option){_listItemMouseOverDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName)};this.SetListItemMouseOutDelegate=function(option){_listItemMouseOutDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName)};this.ListItemMouseOverCSSClass=function(cssClass){_listItemMouseOverCSSClass=cssClass};this.ListItemMouseOutCSSClass=function(cssClass){_listItemMouseOutCSSClass=cssClass};this.CreateList=function(veShapeLayer,listItemDataBoundDelegate){this.ItemCount=veShapeLayer.GetShapeCount();if(_listParentDiv==null){return }if(this.ItemCount==0){return }if(String.IsNullOrEmpty(listItemDataBoundDelegate)){return }jQuery("#"+_listParentDiv).empty();for(var i=0;i<this.ItemCount;i++){var veShape=veShapeLayer.GetShapeByIndex(i);var itemDiv=jQuery(document.createElement("div"));var id="div_"+veShape.ReferenceID;jQuery(itemDiv).attr("id",id);BindHoverEvents(itemDiv);jQuery("#"+_listParentDiv).append(itemDiv);eval(listItemDataBoundDelegate)(veShape,itemDiv)}};function GetShapeId(divElement){var shapeId=null;if(divElement!=null){shapeId=divElement.id.replace("div_","")}return shapeId}function ListItemMouseOver(e){var target=e.currentTarget;var shapeId=GetShapeId(target);if(_listItemMouseOverCSSClass!=null){jQuery(target).addClass(_listItemMouseOverCSSClass)}if(!String.IsNullOrEmpty(_listItemMouseOverDelegateOption.ClientDelegateName)){eval(_listItemMouseOverDelegateOption.ClientDelegateName)(e,shapeId)}}function ListItemMouseOut(e){var target=e.currentTarget;var shapeId=GetShapeId(target);if(_listItemMouseOutCSSClass!=null){jQuery(target).addClass(_listItemMouseOutCSSClass)}if(!String.IsNullOrEmpty(_listItemMouseOutDelegateOption.ClientDelegateName)){eval(_listItemMouseOutDelegateOption.ClientDelegateName)(e,shapeId)}}function BindHoverEvents(div){jQuery(div).bind("mouseover",ListItemMouseOver);jQuery(div).bind("mouseout",ListItemMouseOut)}}function KMMapManager(){var _mapManager=this;var _mapInstance;var _shapeLayerManager;var _shapeManager;var _clusterManager;
var _resizeDelegateOption=new KMDelegateOption(true,"");var _changeMapStyleDelegateOption=new KMDelegateOption(true,"");var _changeViewDelegateOption=new KMDelegateOption(true,"");var _initModeDelegateOption=new KMDelegateOption(true,"");var _startPanDelegateOption=new KMDelegateOption(true,"");var _endPanDelegateOption=new KMDelegateOption(true,"");var _startZoomDelegateOption=new KMDelegateOption(true,"");var _endZoomDelegateOption=new KMDelegateOption(true,"");var _clickDelegateOption=new KMDelegateOption(true,"");var _doubleClickDelegateOption=new KMDelegateOption(true,"");var _mouseOverDelegateOption=new KMDelegateOption(true,"");var _mouseOutDelegateOption=new KMDelegateOption(true,"");var _obliqueEnterDelegateOption=new KMDelegateOption(true,"");var _obliqueLeaveDelegateOption=new KMDelegateOption(true,"");var _errorDelegateOption=new KMDelegateOption(true,"");this.MapInstance=null;this.MapDivName=null;this.MapElement=null;this.ShapeLayerManager=null;this.ShapeManager=null;this.ClusterManager=null;this.Debug=true;this.GetMap=function(divName,centerLatitude,centerLongitude,zoom,onLoadMap,enhancedRoad){this.MapDivName=divName;this.MapElement=document.getElementById(this.MapDivName);_mapInstance=new VEMap(this.MapDivName);this.MapInstance=_mapInstance;_shapeLayerManager=new KMShapeLayerManager(this.MapInstance);this.ShapeLayerManager=_shapeLayerManager;_shapeManager=new KMShapeManager(this.MapInstance,this.ShapeLayerManager);this.ShapeManager=_shapeManager;_clusterManager=new KMClusterManager(this.MapInstance,this.ShapeLayerManager,this.ShapeManager);this.ClusterManager=_clusterManager;if(!String.IsNullOrEmpty(onLoadMap)){_mapInstance.onLoadMap=onLoadMap}if(enhancedRoad===undefined){enhancedRoad=true}var mapOptions=new VEMapOptions();mapOptions.DashboardColor="black";mapOptions.UseEnhancedRoadStyle=true;mapOptions.EnableBirdseye=false;_mapInstance.LoadMap(new VELatLong(centerLatitude,centerLongitude),zoom,VEMapStyle.Road,false,VEMapMode.Mode2D,false,0,mapOptions);_mapInstance.SetScaleBarDistanceUnit(VEDistanceUnit.Kilometers);
_mapInstance.AttachEvent("onresize",this.OnResizeHandler);_mapInstance.AttachEvent("onchangemapstyle",this.OnChangeMapStyleHandler);_mapInstance.AttachEvent("onchangeview",this.OnChangeViewHandler);_mapInstance.AttachEvent("oninitmode",this.OnInitModeHandler);_mapInstance.AttachEvent("onstartpan",this.OnStartPanHandler);_mapInstance.AttachEvent("onendpan",this.OnEndPanHandler);_mapInstance.AttachEvent("onstartzoom",this.OnStartZoomHandler);_mapInstance.AttachEvent("onendzoom",this.OnEndZoomHandler);_mapInstance.AttachEvent("onclick",this.OnClickHandler);_mapInstance.AttachEvent("ondoubleclick",this.OnDoubleClickHandler);_mapInstance.AttachEvent("onmouseover",this.OnMouseOverHandler);_mapInstance.AttachEvent("onmouseout",this.OnMouseOutHandler);_mapInstance.AttachEvent("onobliqueenter",this.OnObliqueEnterHandler);_mapInstance.AttachEvent("onobliqueleave",this.OnObliqueLeaveHandler);_shapeManager.UpdateShapesInMapView()};this.AddControl=function(control){if(control==null){return }_mapInstance.AddControl(control)};this.DetachResizeHandler=function(){_mapInstance.DetachEvent("onresize",this.OnResizeHandler)};this.DetachChangeMapStyleHandler=function(){_mapInstance.DetachEvent("onchangemapstyle",this.OnChangeMapStyleHandler)};this.DetachChangeViewHandler=function(){_mapInstance.DetachEvent("onchangeview",this.OnChangeViewHandler)};this.DetachInitModeHandler=function(){_mapInstance.DetachEvent("oninitmode",this.OnInitModeHandler)};this.DetachStartPanHandler=function(){_mapInstance.DetachEvent("onstartpan",this.OnStartPanHandler)};this.DetachEndPanHandler=function(){_mapInstance.DetachEvent("onendpan",this.OnEndPanHandler)};this.DetachStartZoomHandler=function(){_mapInstance.DetachEvent("onstartzoom",this.OnStartZoomHandler)};this.DetachEndZoomHandler=function(){_mapInstance.DetachEvent("onendzoom",this.OnEndZoomHandler)};this.DetachClickHandler=function(){_mapInstance.DetachEvent("onclick",this.OnClickHandler)};this.DetachDoubleClickHandler=function(){_mapInstance.DetachEvent("ondoubleclick",this.OnDoubleClickHandler)};
this.DetachMouseOverHandler=function(){_mapInstance.DetachEvent("onmouseover",this.OnMouseOverHandler)};this.DetachMouseOutHandler=function(){_mapInstance.DetachEvent("onmouseout",this.OnMouseOutHandler)};this.DetachObliqueEnterHandler=function(){_mapInstance.DetachEvent("onobliqueenter",this.OnObliqueEnterHandler)};this.DetachObliqueLeaveHandler=function(){_mapInstance.DetachEvent("onobliqueleave",this.OnObliqueLeaveHandler)};this.SetResizeDelegateOption=function(option){_resizeDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName);_mapInstance.AttachEvent("onresize",this.OnResizeHandler)};this.SetChangeMapStyleDelegateOption=function(option){_changeMapStyleDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName);_mapInstance.AttachEvent("onchangemapstyle",this.OnChangeMapStyleHandler)};this.SetChangeViewDelegateOption=function(option){_changeViewDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName);_mapInstance.AttachEvent("onchangeview",this.OnChangeViewHandler)};this.SetInitModeDelegateOption=function(option){_initModeDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName);_mapInstance.AttachEvent("oninitmode",this.OnInitModeHandler)};this.SetStartPanDelegateOption=function(option){_startPanDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName);_mapInstance.AttachEvent("onstartpan",this.OnStartPanHandler)};this.SetEndPanDelegateOption=function(option){_endPanDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName);_mapInstance.AttachEvent("onendpan",this.OnEndPanHandler)};this.SetStartZoomDelegateOption=function(option){_startZoomDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName);_mapInstance.AttachEvent("onstartzoom",this.OnStartZoomHandler)};this.SetEndZoomDelegateOption=function(option){_endZoomDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName);_mapInstance.AttachEvent("onendzoom",this.OnEndZoomHandler)};this.SetClickDelegateOption=function(option){_clickDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName);
_mapInstance.AttachEvent("onclick",this.OnClickHandler)};this.SetDoubleClickDelegateOption=function(option){_doubleClickDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName);_mapInstance.AttachEvent("ondoubleclick",this.OnDoubleClickHandler)};this.SetMouseOverDelegateOption=function(option){_mouseOverDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName);_mapInstance.AttachEvent("onmouseover",this.OnMouseOverHandler)};this.SetMouseOutDelegateOption=function(option){_mouseOutDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName);_mapInstance.AttachEvent("onmouseout",this.OnMouseOutHandler)};this.SetObliqueEnterDelegateOption=function(option){_obliqueEnterDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName);_mapInstance.AttachEvent("onobliqueenter",this.OnObliqueEnterHandler)};this.SetObliqueLeaveDelegateOption=function(option){_obliqueLeaveDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName);_mapInstance.AttachEvent("onobliqueleave",this.OnObliqueLeaveHandler)};this.SetErrorDelegateOption=function(option){_errorDelegateOption.Clone(option.RunDefaultHandler,option.ClientDelegateName);_mapInstance.AttachEvent("onerror",this.OnErrorHandler)};this.OnResizeHandler=function(e){if(_resizeDelegateOption.RunDefaultHandler){_shapeManager.UpdateShapesInMapView();if(_mapManager.Debug){console.log("KMMapManager.OnResizeHandler: %s",_mapInstance.GetMapView().Debug())}}HandleClientDelegate(_resizeDelegateOption,e)};this.OnChangeMapStyleHandler=function(e){if(_changeMapStyleDelegateOption.RunDefaultHandler){if(_mapManager.Debug){console.log("KMMapManager.OnChangeMapStyleHandler: %s",_mapInstance.GetMapView().Debug())}}HandleClientDelegate(_changeMapStyleDelegateOption,e)};this.OnChangeViewHandler=function(e){if(_changeViewDelegateOption.RunDefaultHandler){_shapeManager.UpdateShapesInMapView();if(_mapManager.Debug){console.log("KMMapManager.OnChangeViewHandler: %s",_mapInstance.GetMapView().Debug())}}HandleClientDelegate(_changeViewDelegateOption,e)
};this.OnInitModeHandler=function(e){if(_initModeDelegateOption.RunDefaultHandler){_shapeManager.UpdateShapesInMapView();if(_mapManager.Debug){console.log("KMMapManager.OnInitModeHandler: %s",_mapInstance.GetMapView().Debug())}}HandleClientDelegate(_initModeDelegateOption,e)};this.OnStartPanHandler=function(e){if(_startPanDelegateOption.RunDefaultHandler){if(_mapManager.Debug){console.log("KMMapManager.OnStartPanHandler: %s",_mapInstance.GetMapView().Debug())}}HandleClientDelegate(_startPanDelegateOption,e)};this.OnEndPanHandler=function(e){if(_endPanDelegateOption.RunDefaultHandler){if(_mapManager.Debug){console.log("KMMapManager.OnEndPanHandler: %s",_mapInstance.GetMapView().Debug())}}HandleClientDelegate(_endPanDelegateOption,e)};this.OnStartZoomHandler=function(e){if(_startZoomDelegateOption.RunDefaultHandler){if(_mapManager.Debug){console.log("KMMapManager.OnStartZoomHandler: %s",_mapInstance.GetMapView().Debug())}}HandleClientDelegate(_startZoomDelegateOption,e)};this.OnEndZoomHandler=function(e){if(_endZoomDelegateOption.RunDefaultHandler){if(_mapManager.Debug){console.log("KMMapManager.OnEndZoomHandler: %s",_mapInstance.GetMapView().Debug())}}HandleClientDelegate(_endZoomDelegateOption,e)};this.OnClickHandler=function(e){if(_clickDelegateOption.RunDefaultHandler){if(_mapManager.Debug){console.log("KMMapManager.OnClickHandler: %s => %s",e.eventName,e.elementID)}}HandleClientDelegate(_clickDelegateOption,e)};this.OnDoubleClickHandler=function(e){if(_doubleClickDelegateOption.RunDefaultHandler){var zoom=_mapInstance.GetZoomLevel();if(_mapManager.Debug){console.log("KMMapManager.OnDoubleClickHandler: %s => %s",e.eventName,e.elementID)}}HandleClientDelegate(_doubleClickDelegateOption,e)};this.OnMouseOverHandler=function(e){if(_mouseOverDelegateOption.RunDefaultHandler){if(_mapManager.Debug){console.log("KMMapManager.OnMouseOverHandler: %s => %s",e.eventName,e.elementID)}}HandleClientDelegate(_mouseOverDelegateOption,e)};this.OnMouseOutHandler=function(e){if(_mouseOutDelegateOption.RunDefaultHandler){if(_mapManager.Debug){console.log("KMMapManager.OnMouseOutHandler: %s => %s",e.eventName,e.elementID)
}}HandleClientDelegate(_mouseOutDelegateOption,e)};this.OnObliqueEnterHandler=function(e){if(_obliqueEnterDelegateOption.RunDefaultHandler){if(_mapManager.Debug){console.log("KMMapManager.OnObliqueEnterHandler: %s",_mapInstance.GetMapView().Debug())}}HandleClientDelegate(_obliqueEnterDelegateOption,e)};this.OnObliqueLeaveHandler=function(e){if(_obliqueLeaveDelegateOption.RunDefaultHandler){if(_mapManager.Debug){console.log("KMMapManager.OnObliqueLeaveHandler: %s",_mapInstance.GetMapView().Debug())}}HandleClientDelegate(_obliqueLeaveDelegateOption,e)};this.OnErrorHandler=function(e){if(_errorDelegateOption.RunDefaultHandler){if(_mapManager.Debug){console.log("KMMapManager.OnErrorHandler: %s",e.error)}}HandleClientDelegate(_errorDelegateOption,e)};HandleClientDelegate=function(delegateOption,e){if(jQuery.isArray(delegateOption.ClientDelegateName)){for(var i=0;i<delegateOption.ClientDelegateName.length;i++){var delegate=delegateOption.ClientDelegateName[i];if(!String.IsNullOrEmpty(delegate)){eval(delegate)(_mapManager,e)}}}else{if(!String.IsNullOrEmpty(delegateOption.ClientDelegateName)){eval(delegateOption.ClientDelegateName)(_mapManager,e)}}}}KMNavigationManager={};KMNavigationManager.GetCurrentViewURL=function(b){if(b==null){return null}var e=window.location.href.replace(window.location.search,"");var k=b.GetMapView();var h=k.TopLeftLatLong;var a=k.BottomRightLatLong;var d=b.GetCenter();var l=h.Latitude+":"+h.Longitude+":"+a.Latitude+":"+a.Longitude;var g=d.Latitude+":"+d.Longitude;var f=b.GetZoomLevel();jQuery.query.SET("mv",l);jQuery.query.SET("c",g);jQuery.query.SET("z",f);return e+jQuery.query.toString()};KMNavigationManager.GetMapViewFromQueryString=function(){var f=window.location.href;var a=jQuery.query.get("mv");var g=a.split(":");if(g==null||g.length!=4){return null}var b=null;try{var e=new VELatLong(g[0],g[1]);var c=new VELatLong(g[2],g[3]);b=new VELatLongRectangle(e,c);b.Centre=KMNavigationManager.GetMapCenterFromQueryString();b.Zoom=KMNavigationManager.GetMapZoomFromQueryString()}catch(d){console.log("KMNavigationManager.GetMapViewFromQueryString: %s",g.toString());
return null}return b};KMNavigationManager.GetMapCenterFromQueryString=function(){var e=jQuery.query.get("c");var a=e.split(":");if(a==null||a.length!=2){return null}var d=null;try{d=new VELatLong(a[0],a[1])}catch(b){console.log("KMNavigationManager.GetMapCenterFromQueryString: %s",a.toString());return null}return d};KMNavigationManager.GetMapZoomFromQueryString=function(){return jQuery.query.get("z")};function KMShapeLayerManager(b){var c=b;var a=new Hashtable();this.DefaultGroupName="{9E2CA069-A266-4ff4-AAD7-C9CEDA52B47B}";this.Debug=true;this.AddShapeLayer=function(h,f,g,e){if(this.GetShapeLayer(h)==null){var d=new VEShapeLayer();d.ReferenceID=h;d.Group=!String.IsNullOrEmpty(f)?f:this.DefaultGroupName;if(!String.IsNullOrEmpty(g)){d.SetTitle(g)}if(!String.IsNullOrEmpty(e)){d.SetDescription(e)}c.AddShapeLayer(d);a.put(h,d)}};this.GetShapeLayerCollection=function(){return a.values()};this.ShowShapeLayer=function(e){var d=this.GetShapeLayer(e);if(d!=null){d.Show()}};this.HideShapeLayer=function(e){var d=this.GetShapeLayer(e);if(d!=null){d.Hide()}};this.IsShapeLayerVisible=function(e){var d=this.GetShapeLayer(e);if(d!=null){return d.IsVisible()}return false};this.GetShapeCount=function(e){var d=this.GetShapeLayer(e);if(d!=null){return d.GetShapeCount()}return 0};this.GetShapeLayer=function(d){return a.get(d)};this.DeleteShapeLayer=function(e){var d=this.GetShapeLayer(e);if(d!=null){c.DeleteShapeLayer(d);a.remove(e)}};this.ClearShapeLayer=function(e){var d=this.GetShapeLayer(e);if(d!=null){d.DeleteAllShapes()}};this.GetShapeLayersByGroup=function(f){var e=[];for(var g in a.keys()){var d=a.get(g);if(d!=null&&d.Group==f){e.push(d)}}return e};this.DeleteShapeLayersByGroup=function(e){var d=this.GetShapeLayersByGroup(e);if(d!=null&&d.length>0){for(var f in d){this.DeleteShapeLayer(f)}}};this.ShowShapeLayersByGroup=function(e){var d=this.GetShapeLayersByGroup(e);if(d!=null&&d.length>0){for(var f in d){this.ShowShapeLayer(f)}}};this.HideShapeLayersByGroup=function(e){var d=this.GetShapeLayersByGroup(e);if(d!=null&&d.length>0){for(var f in d){this.HideShapeLayer(f)
}}}}KMShapeLayerManager.CreateList=function(listParentDiv,veShapeList,listItemDataBoundDelegate){if(listParentDiv==null){return }jQuery("#"+listParentDiv).empty();if(veShapeList==null||veShapeList.length==0){return }if(String.IsNullOrEmpty(listItemDataBoundDelegate)){return }for(var i=0;i<veShapeList.length;i++){var veShape=veShapeList[i];var itemDiv=jQuery(document.createElement("div"));var id=veShape.ReferenceID;jQuery(itemDiv).attr("id",id);jQuery("#"+listParentDiv).append(itemDiv);eval(listItemDataBoundDelegate)(veShape,itemDiv)}};function KMShapeManager(b,e){var d=b;var a=e;var c=new Hashtable();this.DefaultShapeLayerID="{B3A792C8-21D8-4a9b-87FF-1C6D0B6C4D2D}";this.Debug=true;this.AddShapes=function(g,f){var l=a.GetShapeLayer(g);if(l!=null){var k=new Hashtable();if(jQuery.isArray(f)){for(var h=0;h<f.length;h++){if(!String.IsNullOrEmpty(f[h].ReferenceID)){k.put(f[h].ReferenceID,f[h])}}}else{if(!String.IsNullOrEmpty(f.ReferenceID)){k.put(f.ReferenceID,f)}}c.put(g,k);l.AddShape(f)}};this.DeleteShapes=function(f){var g=a.GetShapeLayer(f);if(g!=null){c.remove(f);g.DeleteAllShapes()}};this.DeleteShapesByGroup=function(g,m){var l=a.GetShapeLayer(g);var k=c.get(shapeLaterID);if(l!=null&&k!=null&&!String.IsNUllOrEmpty(m)){var f=this.GetShapesByGroup(g,m);for(var h=0;h<f.length;h++){k.remove(f[h].ReferenceID);l.DeleteShape(f[h])}}};this.GetShapeByElementID=function(f){var g=null;if(f!=null){g=d.GetShapeByID(f)}return g};this.GetShapeByReferenceID=function(h,k){var f=null;if(h!=null&&k!=null){var g=c.get(h);if(g!=null){f=g.get(k)}}return f};this.GetShapesByShapeLayerID=function(g){var f=c.get(g);if(f!=null){return f.values()}return null};this.GetShapesByGroup=function(l,m){var k=c.get(l);if(k!=null&&!String.IsNUllOrEmpty(m)){var f=[];var g=k.values();for(var h=0;h<g.length;h++){if(g[h].Group==m){f.push(g[h])}}return f}return null};this.IsPointInMapView=function(f){var g=d.GetMapView();var m=g.TopLeftLatLong;var o=g.BottomRightLatLong;var n=Math.min(m.Latitude,o.Latitude);var l=Math.max(m.Latitude,o.Latitude);var h=Math.min(m.Longitude,o.Longitude);
var k=Math.max(m.Longitude,o.Longitude);if(f!=null){if(f.Latitude>=n&&f.Latitude<=l&&f.Longitude>=h&&f.Longitude<=k){return true}}return false};this.UpdateShapesInMapView=function(){var k=c.values();for(var l=0;l<k.length;l++){var g=k[l].values();for(var h=0;h<g.length;h++){var f=g[h];var m=f.GetPoints();f.IsInMapView=this.IsPointInMapView(m[0])}}}};
