var g_omniFlightSuite="VE6.0 SDK FIX";function MapEvents(){var a=this;a.PopupPrefix="VPOP";a.PinPrefix="VPIN";a.pins=[];a.CurrentPopupID=0;a.debugCache=false;a.pinsCacheEnabled=true;a.pinsCache=new CacheList;a.detailsCacheEnabled=true;a.detailsCache=new CacheList;a.mapLoadErrors=0;a.mapControl=null;a.pinIconTemplate="{0}";a.pinIDTemplate='<div class="cgoPopHiddenID">[[{0}]]</div>'}MapEvents.prototype.CreatePinStyle=function(){this.pinIconTemplate='<div id="'+this.PinPrefix+'{0}" class="{1}MapPinPosition {2}">{3}</div>'};MapEvents.prototype.LoadCrossBrowserScripts=function(){this.CreatePinStyle()};MapEvents.prototype.LoadMapSettings=function(){var a=false,e=null,d=null;try{if(mapSettings.CanUseVE()==true){var g=document.getElementById("MapSettingsInTemplate"),c=document.getElementById("MapSettingsIsland"),b=c.value.substr(0,c.value.length-1)+","+g.value.substr(1);b=b.replace(/'/g,'"');e=mapService.GetJsonObject(b);var h=document.getElementById("MapCategoryIsland");d=mapCommon.ToArray(mapService.GetJsonObject(h.value));a=true;var j=document.getElementById("EventMapHelpLink");j.className="cgoEventMapHelpLinkShow"}}catch(k){}var f=document.getElementById("EventMapArea");if(f!=null){var i="cgoEventMapAreaEnabled";if(a==true)a=mapSettings.Initialise(e,d);f.className=i}return a};MapEvents.prototype.JumpToMap=function(b,d,c){var a=new VELatLong(d,c);if(b!=-1)mapEvents.mapControl.SetCenterAndZoom(a,b);else mapEvents.mapControl.SetCenterAndZoom(a,1)};MapEvents.prototype.TryLoadVEMap=function(){var a=this;try{a.LoadVEMap()}catch(b){if(a.mapLoadErrors<3){a.mapLoadErrors++;setTimeout("TryLoadVEMap()",1000)}else alert("Map failed to load x"+a.mapLoadErrors+" times, try again by refreshing the page.")}};MapEvents.prototype.LoadVEMap=function(){var a=this,c=null,b=true;a.LoadCrossBrowserScripts();if(a.LoadMapSettings()==b){a.mapControl=new VEMap(mapSettings.ControlHostName);a.mapControl.SetDashboardSize(mapSettings.MapViewControlStyle);mapPanel=document.getElementById(mapSettings.ControlHostName);var i=new VELatLong(mapSettings.Data.StartupLatitude,mapSettings.Data.StartupLongitude),g=mapSettings.Data.StartupZoomLevel;a.mapControl.LoadMap(i,g,mapSettings.MapStyle,false,mapSettings.MapMode);a.mapControl.SetScaleBarDistanceUnit(VEDistanceUnit.Kilometers);if(mapCommon.Compare(mapSettings.Data.ToolbarState,"Disabled")!=b&&document.getElementById("CategoryOptionList")!=c){mapToolbar.LoadIcons();if(mapCommon.Compare(mapSettings.Data.ToolbarState,"Expanded")==b)mapToolbar.doSlideOut(mapSettings.MapToolbarName);if(mapCommon.Compare(mapSettings.Data.ToolbarState,"Collapsed")==b)mapToolbar.doSlideIn(mapSettings.MapToolbarName);mapToolbar.SetAllCategories(mapToolbar.selectedClass,b,false)}a.mapControl.AttachEvent("onendzoom",a.GetPinData);a.mapControl.AttachEvent("onmouseover",a.PinHover);a.mapControl.AttachEvent("onmouseout",a.PinOut);a.mapControl.AttachEvent("onstartzoom",a.HideBalloon);a.mapControl.AttachEvent("onendcontinuouspan",a.HideBalloon);var e=document.getElementById("MapClusterIsland"),d=c;if(e!=c)d=mapCommon.ToArray(mapService.GetJsonObject(e.value));if(d!=c&&mapSettings.Data.MapClusterSwitch==0){var h=mapEvents.mapControl.GetMapStyle();if(h!=VEMapStyle.Birdseye&&h!=VEMapStyle.BirdseyeHybrid){a.DrawClusteredPins(d);if(a.pinsCacheEnabled==b){var f="";if(mapToolbar.SelectedCategories!=c)f=mapToolbar.SelectedCategories.ToString();a.pinsCache.Add(a.GetPinsCacheKey(g,f),d)}}}else a.GetPinData()}};MapEvents.prototype.GetPinsCacheKey=function(a,b){return mapCommon.Format("_{0}_{1}",a,b)};MapEvents.prototype.GetDetailsCacheKey=function(a){return mapCommon.Format("_{0}",a)};MapEvents.prototype.GetPinData=function(){var e=mapEvents.mapControl.GetZoomLevel(),a="";if(mapToolbar.SelectedCategories!=null)a=mapToolbar.SelectedCategories.ToString();var b=mapEvents.GetPinsCacheKey(e,a),i=mapEvents.pinsCache.IndexOf(b),f=mapEvents.mapControl.GetMapStyle(),c;if(f!=VEMapStyle.Birdseye&&f!=VEMapStyle.BirdseyeHybrid)if(i==-1||mapEvents.pinsCacheEnabled==false){var d=[],k=new VEPixel(0,0),j=new VEPixel(mapSettings.Data.MapWidth+mapSettings.MapUnit,mapSettings.Data.MapHeight+mapSettings.MapUnit);d.push(mapEvents.mapControl.PixelToLatLong(k));d.push(mapEvents.mapControl.PixelToLatLong(j));c=mapEncoding.CreateEncodings(d);if(mapSettings.Data.MapClusterSwitch==0)mapService.SubmitRequest(mapSettings.GetPinsUrl(c,e,a),function PassPinsCacheKey(){mapEvents.ProcessPinDataResponse(b)});else mapService.SubmitRequest(mapSettings.GetPinsUrl(c,14,a),function m(){mapEvents.ProcessPinDataResponse(b)})}else if(mapSettings.Data.MapClusterSwitch==0)mapEvents.DrawClusteredPins(mapEvents.pinsCache.Item(b));else mapEvents.DrawAllPins(mapEvents.pinsCache.Item(b));if(mapSettings.Data.MapLinkListAreaId!=""&&mapSettings.Data.MapClusterSwitch!=0){var h=document.getElementById(mapSettings.Data.MapLinkListAreaId),g=h.innerHTML;if(g=="")mapService.SubmitRequest(mapSettings.GetPinsUrl(c,14,a),function l(){mapEvents.ProcessFixPinDataResponse()})}};MapEvents.prototype.ProcessPinDataResponse=function(b){var a=mapService.GetJsonResponse();if(a!=null){if(mapSettings.Data.MapClusterSwitch==0)mapEvents.DrawClusteredPins(a);else mapEvents.DrawAllPins(a);mapEvents.pinsCache.Add(b,a)}};MapEvents.prototype.ProcessFixPinDataResponse=function(){var a=mapService.GetJsonResponse();mapEvents.LoadLinkList(a)};MapEvents.prototype.DrawClusteredPins=function(e){var a=this;a.pins=mapCommon.ToArray(e);var d=a.pins.length,c=[];for(pinID=0;pinID<d;pinID++){var b=a.pins[pinID].Geocode;if(b==null)a.pins.pop(pinID);else c.push(a.CreatePin(pinID,b.Lat,b.Lon))}a.mapControl.DeleteAllShapes();if(c.length>0)a.mapControl.AddShape(c)};MapEvents.prototype.DrawAllPins=function(e){var a=this,g=[];for(var b=0;b<e.length;b++)for(var f=0;f<e[b].StoryPins.length;f++)g.push(e[b].StoryPins[f]);a.pins=g;var h=a.pins.length,d=[];for(pinID=0;pinID<h;pinID++){var c=a.pins[pinID].Geocode;if(c==null)a.pins.pop(pinID);else d.push(a.CreatePin(pinID,c.Lat,c.Lon))}a.mapControl.DeleteAllShapes();if(d.length>0)a.mapControl.AddShape(d)};MapEvents.prototype.CreatePin=function(a,d,e){var c=mapCommon.Format(this.pinIconTemplate,a,mapSettings.Data.MapPinIconStyle,mapIcons.PinDisplayClass,mapSettings.Data.MapNumberSwitch==0?a+1:""),b=new VEShape(VEShapeType.Pushpin,new VELatLong(d,e));b.SetCustomIcon(c);this.SetPinContent(b,a,mapSettings.Data.PinDetailLoadingText);return b};MapEvents.prototype.HideBalloon=function(){var b=this.PopupPrefix+this.CurrentPopupID,a=document.getElementById(b);if(a!=null&&a!="undefined"){a.style.left="-9999px";a.style.top="-9999px"}};MapEvents.prototype.ExtractPinID=function(a){startIndex=a.indexOf("[[")+2;endIndex=a.indexOf("]]");return a.substr(startIndex,endIndex-startIndex)};MapEvents.prototype.PinHover=function(d){var c=d.elementID,a=mapEvents.mapControl.GetShapeByID(c),b=mapEvents.GetShapeIconAnchor(a);if(b!=null)a.SetIconAnchor(b);mapEvents.KnownShapePinHover(a,c)};MapEvents.prototype.PinOut=function(d){var c=d.elementID,a=mapEvents.mapControl.GetShapeByID(c),b=mapEvents.GetShapeIconAnchor(a);if(b!=null)a.SetIconAnchor(b);mapEvents.KnownShapePinOut(a,c)};MapEvents.prototype.GetShapeIconAnchor=function(c){var b=null;if(c!=null){var d=c.GetPoints(),a=this.mapControl.LatLongToPixel(d[0]);a.x+=mapSettings.PinHoverOffsetTop;a.y+=mapSettings.PinHoverOffsetLeft;b=this.mapControl.PixelToLatLong(a)}return b};MapEvents.prototype.KnownShapePinHover=function(i,d){var a=this,g=true,c=null,f=false,k=f,o=f,e=c,b=c,t=c,m=c;if(i!=c&&a.pins!=c){b=a.ExtractPinID(i.GetDescription());t=a.PopupPrefix+b;m=a.PinPrefix+b;if(b<=a.pins.length){e=a.pins[b].StoryID;o=g}}if(m!=c){var s=document.getElementById(m),q=mapSettings.CanUsePNG(),l="PNG";if(q==g)l="PNG";else l="NoPNG";s.className=mapSettings.Data.MapPinIconStyle+"MapPinPosition_hover "+mapSettings.Data.MapPinIconStyle+"MapPin"+mapSettings.Data.MapPinStyle+l+"_hover"}if(i==c||d==c){if(k)alert(mapCommon.Format("NO SHAPE: VESHAPE.ELEMENTID: {0}; PINS.LENGTH: {1}; PINID: {2}; STORYID: {3}",d,pins.length,b,e))}else if(o){a.CurrentPopupID=b;var j=f,h=a.GetDetailsCacheKey(e),p=a.detailsCache.IndexOf(h);if(a.detailsCacheEnabled==g&&p!=-1){var n=a.detailsCache.Item(h);j=n.indexOf(mapPopout.ContentCheckValue)!=-1;if(j==g){var r=a.mapControl.GetShapeByID(d);a.SetPinContent(r,b,n);if(a.debugCache)alert("GRABBED FROM CACHE: "+h+"; COUNT: "+a.detailsCache.Count()+"; CONTENT: "+a.detailsCache.Item(h));if(a.debugThis)alert(mapCommon.Format("PUL LED FROM CACHE: VESHAPE.ELEMENTID: {0}; PINS.LENGTH: {1}; PINID: {2}; STORYID: {3}",d,a.pins.length,b,e))}}if(j==f){mapService.SubmitRequest(mapSettings.GetPinDetailsUrl(e),function u(){mapEvents.ProcessPinDetailsResponse(b,d)});if(k)alert(mapCommon.Format("REQUEST SUBMITTED: VESHAPE.ELEMENTID: {0}; PINS.LENGTH: {1}; PINID: {2}; STORYID: {3}",d,a.pins.length,b,e))}}else{a.SetPinContent(i,b,mapSettings.Data.PinDetailErrorText);if(k)alert(mapCommon.Format("REQUEST FAILED: VESHAPE.ELEMENTID: {0}; PINS.LENGTH: {1}; PINID: {2}; STORYID: {3}",d,a.pins.length,b,e))}};MapEvents.prototype.KnownShapePinOut=function(f){var b=this,a=null,l=false,h=false,i=a,c=a,k=a,e=a;if(f!=a&&b.pins!=a){c=b.ExtractPinID(f.GetDescription());k=b.PopupPrefix+c;e=b.PinPrefix+c;if(c<=b.pins.length){i=b.pins[c].StoryID;h=true}}if(e!=a){var j=document.getElementById(e),g=mapSettings.CanUsePNG(),d="PNG";if(g==true)d="PNG";else d="NoPNG";j.className=mapSettings.Data.MapPinIconStyle+"MapPinPosition "+mapSettings.Data.MapPinIconStyle+"MapPin"+mapSettings.Data.MapPinStyle+d}};MapEvents.prototype.SetPinContent=function(b,a,c){var d=false;if(d){var e=ExtractPinID(b.GetDescription());alert(mapCommon.Format("SET CONTENT: ORIGINALID: {0}; NEWID: {1}",e,a))}b.SetDescription(mapCommon.Format(this.pinIDTemplate,a)+c)};MapEvents.prototype.ProcessPinDetailsResponse=function(b,a){var c=false,d=mapService.GetJsonResponse();if(b==mapEvents.CurrentPopupID)mapEvents.DrawPinDetailsContent(d,b,a);else{var e=mapEvents.mapControl.GetShapeByID(a);mapEvents.KnownShapePinHover(e,a);if(c)alert(mapCommon.Format("WRONG PINID: CURRENT: {0}; NEW: {1}",mapEvents.CurrentPopupID,b))}};MapEvents.prototype.DrawPinDetailsContent=function(b,w,r){var c=this,d=true,f=null,h=false,A=h,j=new StringList,a=new EventPin,e=h,i="",m="",y=mapSettings.Data.PinDetailErrorText;if(b!=f){try{var v=b.Eventdetails.location.pins.pin;a.Latitude=v.latitude;a.Longitude=v.longitude;m=b.StoryID;e=d}catch(C){e=false;j.Add(y)}if(e==d){e=h;i=b.ContentID;a.ContentID=i;a.Title=b.Headline;a.Description=b.Summary;if(i==""&&a.ContentID==""){i="null";a.ContentID="null"}if(b.Eventdetails.image!=f){var s=b.Eventdetails.image;a.ThumbnailSrc=s.src;a.ThumbnailAltText=s.alternatetext}if(b.Eventdetails.location!=f){var g=b.Eventdetails.location;a.ZoomLevel=g.precision;a.LocationInfo.Add(g.address);a.LocationInfo.Add(g.street);a.LocationInfo.Add(g.postcode);a.LocationInfo.Add(g.city);a.LocationInfo.Add(g.region)}if(b.Eventdetails.categorylist!=f){var o=mapCommon.ToArray(b.Eventdetails.categorylist),z=o.length;for(x=0;x<z;x++)a.CategoryList.Add(o[x])}if(b.Eventdetails.relatedlinks!=f){var p=mapCommon.ToArray(b.Eventdetails.relatedlinks),B=p.length;for(x=0;x<B;x++){var l=p[x];if(mapCommon.NotEmpty(l.text)==d){a.RelatedLinkList.Add(l.text);a.RelatedUrlList.Add(l.url)}}}j=mapPopout.CreateContent(a,j);e=d}}else return;var u=h,t=h,n=c.mapControl.GetShapeByID(r);if(n!=f){var q=j.ToString();c.SetPinContent(n,w,q);if(e==d)c.mapControl.ShowInfoBox(n);u=d;if(e==d&&c.detailsCacheEnabled==d){var k=c.GetDetailsCacheKey(m);c.detailsCache.Add(k,q);t=d;if(c.debugCache)alert("ADDED TO CACHE: "+k+"; COUNT: "+c.detailsCache.Count()+"; CONTENT: "+c.detailsCache.Item(k))}}if(A)alert(mapCommon.Format("DRAW PIN: DETAILS OK: {0}; SHAPE OK: {1}; CURRENT ID: {2}; PIN ID: {3}; ELEMENTID: {4}; STORYID: {5}; CACHENOW: {6}",e,u,c.CurrentPopupID,w,r,m,t))};MapEvents.prototype.ClickShowHelp=function(){try{mapTracking.TrackShowHelp();helpBubble=document.getElementById("EventMapHelpBubble");helpBubble.className=mapIcons.HelpBoxShowClass;if(event!=null)event.returnValue=false}catch(a){if(event!=null)event.returnValue=true}};MapEvents.prototype.ClickCloseHelp=function(){try{helpBubble=document.getElementById("EventMapHelpBubble");helpBubble.className=mapIcons.HelpBoxHideClass;if(event!=null)event.returnValue=false}catch(a){if(event!=null)event.returnValue=true}};MapEvents.prototype.OnFailed=function(a){var b="<br/>",d=a.get_stackTrace(),h=a.get_message(),e=a.get_statusCode(),c=a.get_exceptionType(),g=a.get_timedOut(),f="Stack Trace: "+d+b+"Service Error: "+h+b+"Status Code: "+e+b+"Exception Type: "+c+b+"Timedout: "+g;alert(f)};MapEvents.prototype.Dispose=function(){var a=this,b=null;a.pins=b;a.pinsCache=b;a.detailsCache=b;if(a.mapControl!=b){a.mapControl.Dispose();a.mapControl=b}};MapEvents.prototype.LoadLinkList=function(c){var f=document.getElementById(mapSettings.Data.MapLinkListAreaId),a=f.innerHTML;if(a==""&&c!=null){var b=[];for(var d=0;d<c.length;d++)for(var e=0;e<c[d].StoryPins.length;e++)b.push(c[d].StoryPins[e]);var h=b.length;a+='<ol class="orderedlist1">';for(pinID=0;pinID<h;pinID++){var g=b[pinID].Geocode;a+="<li><a href=\"#\" onclick=\"javascript:mapEvents.JumpToMap('14','"+g.Lat+"','"+g.Lon+'\'); return false;" title="'+b[pinID].HeadLine+'">'+b[pinID].HeadLine+"</a></li>"}a+="</ol>";a+="<ul><li><a href=\"#\" onclick=\"javascript: mapEvents.JumpToMap('-1','0','0'); return false;\" title=\"Show All\">Show All</a></li></ul>";f.innerHTML=a}};var mapCommon=new MapCommon,mapService=new MapService,mapSettings=new MapSettings,mapIcons=new MapIcons,mapPopout=new MapPopout,mapTracking=new MapTracking,mapSharingTools=new MapSharingTools,mapEncoding=new MapEncoding,mapToolbar=new MapToolbar,mapEvents=new MapEvents;function GetMap(){mapEvents.LoadVEMap();mapTracking.Initialise()}function MapDispose(){var a=null;if(mapService!=a){mapService.Dispose();mapService=a}if(mapTracking!=a){mapTracking.Dispose();mapTracking=a}if(mapSettings!=a){mapSettings.Dispose();mapSettings=a}if(mapIcons!=a){mapIcons.Dispose();mapIcons=a}if(mapPopout!=a){mapPopout.Dispose();mapPopout=a}if(mapSharingTools!=a){mapSharingTools.Dispose();mapSharingTools=a}if(mapEncoding!=a){mapEncoding.Dispose();mapEncoding=a}if(mapToolbar!=a){mapToolbar.Dispose();mapToolbar=a}if(mapCommon!=a){mapCommon.Dispose();mapCommon=a}if(mapEvents!=a){mapEvents.Dispose();mapEvents=a}try{if(window.detachEvent){window.detachEvent("onload",GetMap);window.detachEvent("onunload",MapDispose)}else{window.detachEventListener("load",GetMap,false);window.detachEventListener("unload",MapDispose,false)}}catch(b){}finally{}}if(window.attachEvent){window.attachEvent("onload",GetMap);window.attachEvent("onunload",MapDispose)}else{window.addEventListener("load",GetMap,false);window.addEventListener("unload",MapDispose,false)};