[
http://jira.jboss.com/jira/browse/RF-2670?page=all ]
Pavel Yaschenko updated RF-2670:
--------------------------------
Priority: Minor (was: Major)
JavaScript -
http://localhost:8080/virtualEarth-sample/
Inline script thread
Error:
name: SyntaxError
message: Statement on line 1: RegExp.prototype.compile: syntax error in pattern or string
Backtrace:
Line 1 of linked script
http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6
if (a.Locale != null)
a.Locale = "en-US";
if (a.UserAgent.indexOf("MSIE") != - 1)
else
Line 1 of linked script
http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6
if (a.UserAgent.indexOf("Gecko") != - 1)
else
e();
g();
d();
f();
h();
i();
j();
c();
b();
Line 1 of linked script
http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6
var a = this;
this.Type = null;
this.BrowserCaps = 0;
this.CLRType = 0;
this.MajorVersion = null;
this.MinorVersion = null;
this.versionString = null;
this.UserAgent = null;
this.OSType = null;
this.Locale = null;
if (arguments.length == 0)
else
this.IsCompatibleWith = (function (c)
{
for (var b = 0;b < c.length;b++)
{
var a = c[b];
if (a.Type == this.Type && (this.MajorVersion > a.MajorVersion ||
a.MajorVersion == this.MajorVersion && a.MinorVersion >= this.MinorVersion))
return true;
}
return false;
}
);
this.GetVersionString = (function ()
{
if (this.versionString == null)
if (a.UserAgent.indexOf("Win") != - 1 &&
a.UserAgent.indexOf("MSIE") != - 1)
{
var b = null, c;
try
{
b = document.createElement("<DIV
STYLE='behavior:url(#default#clientCaps); display: none'
ID='__clientCaps'>");
document.body.appendChild(b);
c = b.getComponentVersion("{89820200-ECBD-11CF-8B85-00AA005B4383}",
"componentid");
}
catch (d)
{
c = a.MajorVersion + "." + a.MinorVersion;
}
finally
{
if ($ID("__clientCaps") != null)
($ID("__clientCaps")).parentNode.removeChild(b);
}
this.versionString = c;
}
else
if (a.MajorVersion != null && a.MajorVersion != null)
this.versionString = a.MajorVersion + "." + a.MinorVersion;
else
this.versionString = "";
return this.versionString;
}
);
k();
Line 1 of linked script
http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6
var L_invalidinvoketarget_text = "Invalid invoke target specified.",
L_invaliddirections_text = "Invalid argument passed; both start and end must be
present.", L_invalidpageindex_text = "Invalid search results page index is
passed.", L_invalidelement_text = "Invalid element id; unable to find the
element in the document body.", L_noheadelement_text = "Head element is missing
for the current document; cannot initialize the API framework.", L_noserviceurl_text
= "Either a service url or script url is required to create VENetwork
instance.", L_noscripturl_text = "Invalid script source url is assigned; cannot
download the assigned script.", L_nostylesurl_text = "Invalid style source url
is assigned; cannot attach the assigned styles.", L_invalidwhatwhere_text =
"Invalid what/where parameters; either 'what' or 'where' must be
present.", L_notinitialized_text = "Map is not loaded; cannot perform this
operation.", L_noroute_text = "Cannot calculate route at this point; try again
later.", L_invalidpushpin_text = "Invalid pushpin instance.",
L_invalidpushpinid_text = "Invalid pushpin id; either id is empty or another pushpin
already exists with that id.", L_invalidpolylineid_text = "Invalid polyline id;
either id is empty or another polyline already exists with that id.",
L_invalidpolygonid_text = "Invalid polygon id; either id is empty or another polygon
already exists with that id.", L_invalidargument_text = "Invalid argument; input
argument '%1' is not a valid '%2' value.", L_invalidlayerid_text =
"Invalid layer id; either id is empty or another layer already exists with that
id.", L_invalidlayertype_text = "Invalid layer type.",
L_invalidlayersource_text = "Invalid layer source; either layer is empty or does not
exist.", L_invalidsourceid_text = "Invalid source id; either id is empty or
another tile source already exists with that id.", L_invalidminmaxzoom_text =
"Min zoom is greater than max zoom.", L_invalidopacity_text = "Invalid
opacity value.", L_loadxml_text = "Unable to load source file.",
L_Help_Text = "Help", L_ErrorServerBusy_Text = "The server is temporarily
unavailable. Try again later.", L_error_text = "Error", L_close_text =
"close", L_what_text = "What", L_where_text = "Where",
L_find_text = "Find", L_selectlocation_text = "Select a location",
L_Start_Text = "Start", L_End_Text = "End",
L_DirectionsGetDirections_Text = "Get directions", L_loading_text = "..
Loading ..", L_arriveat_text = "Arrive at", L_startat_text = "Start
at", L_step_text = "Step %1 of %2", L_DirectionsStep_Text =
"Step", L_invalidroute = "Virtual Earth cannot find a route for the
locations you entered. Ensure that your start and end locations are correct, and try
again.", L_invalidlocation = "The location you entered cannot be found.",
L_CollectionManagerViewerDefaultTitle_Text = "Shared Collection",
L_CollectionManagerUnsavedCollectionTitle_Text = "Unsaved Collection",
L_AnnotationConfDefaultTitle_Text = "Untitled item", L_TrafficPopupSeverity_Text
= "Severity", L_TrafficPopupLocation_Text = "Location",
L_TrafficPopupDescription_Text = "Description", L_TrafficPopupStartTime_Text =
"Start time", L_TrafficPopupEstEndTime_Text = "Est. end time",
L_TrafficManagerSerious_Text = "Serious", L_TrafficManagerModerate_Text =
"Moderate", L_TrafficManagerMinor_Text = "Minor",
L_TrafficManager_Zoomout_Text = "Zoom out to view Traffic information",
L_TrafficManager_Zoomin_Text = "Zoom in to view Traffic information",
L_ClientTokenInvalid = "Invalid client token.", L_ClientTokenExpired =
"Expired client token.", L_Shp_IncorrectPoints = "The number of points does
not match the specified VEShape type.", L_Shp_IncorrectLineWidth = "The line
width must be a positive integer.", L_Shp_IncorrectZoomLevel = "The specified
zoom level is invalid. The valid range is 1 to 21,inclusive.",
L_Shp_IncorrectZoomLevel2 = "Max zoom is less than min zoom.",
L_shp_Notinitialized_text = "Shape is not initialized.", L_ShpExist_text =
"This shape has already been added to layer.", L_invalidzindex_text =
"Invalid z-Index parameters; either 'icon' or 'polyshape' must be
present.", L_altitudemodemismatch = "All altitudes must have the same
altitudeMode in a VEShape.", L_invalidwhere_text = "Invalid argument; input
argument 'where' is not a valid 'string, VELatLong, VELatLongRectangle, or
VEPlace ' value.", L_invalidnonnegativeint_text = "Invalid argument; input
argument '%1' must be a non-negative int value.", L_invalidbetweenint_text =
"Invalid argument; input argument '%1' must be between %2 and %3,
inclusive.", L_invalidsearchlocation = "%1 could not find a match for the
location. Please check your spelling, enter the complete address including country name
and commas, and try again.", L_DashboardBirdsEye_Text = "Bird's eye",
L_DashboardBirdsEyeText_Text = "See this location in bird's eye view",
L_Dashboard3DText_Text = "See this location in Virtual Earth 3D",
L_ObliqueCompassSelectDirection_Text = "Change the direction of the view",
L_ObliqueModeImageNotAvailable_Text = "Sorry, bird's eye images aren't
available here.", L_MinimapHybrid_Text = "H", L_MinimapRoad_Text =
"R", L_MinimapHideToolTip_Text = "Hide the mini map",
L_MinimapShowToolTip_Text = "Show the mini map", L_MinimapLargerToolTip_Text =
"Larger mini map", L_MinimapSmallerToolTip_Text = "Smaller mini map",
L_MinimapRoadToolTip_Text = "Switch to road view", L_MinimapHybridToolTip_Text =
"Switch to hybrid view", L_MinimapDragToolTip_Text = "Drag to move the
map", L_MinimapReticuleDragToolTip_Text = "Drag to center map",
L_ScaleBarMiles_Text = "miles", L_ScaleBarKilometers_Text = "km",
L_ScaleBarMeters_Text = "m", L_ScaleBarYards_Text = "yds",
L_NavActionFlatland_Text = "2D", L_NavActionView3D_Text = "3D",
L_NavActionRoad_Text = "Road", L_NavActionAerial_Text = "Aerial",
L_NavActionHybrid_Text = "Hybrid", L_NavActionTraffic_Text =
"Traffic", L_NavActionHideToolTip_Text = "Hide the view control",
L_NavActionShowToolTip_Text = "Show the view control",
L_NavActionFlatlandToolTip_Text = "View map in 2D mode",
L_NavActionView3DToolTip_Text = "View map in 3D mode with Virtual Earth 3D
(Beta)", L_NavActionOrthoToolTip_Text = "Switch to map view",
L_NavActionObliqueToolTip_Text = "Switch to bird's eye view",
L_NavActionStreetSideToolTip_Text = "Street-level view",
L_NavAction3DOrthoToolTip_Text = "Look down", L_NavAction3DObliqueToolTip_Text =
"Look down at an angle", L_NavAction3DStreetSideToolTip_Text = "Look toward
horizon", L_NavActionShowTrafficToolTip_Text = "Show traffic on the map",
L_NavActionHideTrafficToolTip_Text = "Hide traffic on the map",
L_NavActionRoadToolTip_Text = "Switch to road view",
L_NavActionAerialToolTip_Text = "Switch to aerial view",
L_NavActionHybridToolTip_Text = "Switch to hybrid view",
L_NavActionObliqueRotationToolTip_CW_Text = "Rotate the camera angle
counterclockwise", L_NavActionObliqueRotationToolTip_CCW_Text = "Rotate the
camera angle clockwise", L_NavActionShowObliqueToolTip_Text = "Switch to
bird's eye view", L_NavActionCompassPan = "Pan in any direction",
L_ZoomBarMinusToolTip_Text = "Zoom out. To zoom continuously, click and hold the
mouse button.", L_ZoomBarPlusToolTip_Text = "Zoom in. To zoom continuously,
click and hold the mouse button.", L_ZoomBarSliderToolTip_Text = "Move slider to
zoom in or zoom out", L_BrowserNotSupported_Text = "To use this feature, open
Live Search in Windows Internet Explorer version 6 or 7. For more information, and to
download the latest version, visit the Microsoft Internet Explorer website
(%1%3%2).", L_BrowserNotSupported3D_Text = "Virtual Earth 3D is currently not
supported for your browser. For a list of supported browsers, see Help.",
L_NoHardwareAcceleration_Text = "Virtual Earth 3D has detected that hardware
acceleration is turned off.", L_3DLoading_Text = "Initializing Virtual Earth 3D
(Beta).", L_MapLegendTrafficSlow_Text = "Slow", L_MapLegendTrafficFast_Text
= "Fast", L_GeoRssInvalidFormatError_Text = "The GeoRSS file you have tried
to import is improperly formatted.", L_MapControlNavteq_Text = "© 2007
NAVTEQ", L_MapControlImageCourtesyOfNASA_Text = "Image courtesy of NASA",
L_MapControlHarrisCorp_Text = "© Harris Corp, Earthstar Geographics
LLC", L_MapControlImageCourtesyOfUSGS_Text = "Image courtesy of USGS",
L_MapControlImageCourtesyOfPictometry_Text = "© 2007 Pictometry
International Corp.", L_MapControlImageCourtesyOfEarthData_Text = "©
EarthData", L_MapControlImageCourtesyOfGetmapping_Text = "© Getmapping
plc", L_MapControlImageCourtesyOfAND_Text = "© AND",
L_MapControlImageCourtesyOfBlom_Text = "© 2007 Blom",
L_MapCopyrightMicrosoft = "© 2007 Microsoft Corporation",
L_MapCopyrightTraffic = "Traffic.com", L_MapControlPlatformName_Text =
"Virtual Earth", L_MapControlImageCourtesyOfGeoEye_Text = "© 2007
GeoEye", L_MapControlImageCourtesyOfMapDataSciences_Text = "© 2006
MapData Sciences Pty Ltd", L_MapControlImageCourtesyOfZenrin_Text = "©
2007 Zenrin", L_MapControlImageCourtesyOfPasco_Text = "© 2005
Pasco", L_MapControlImageCourtesyOfIntergraph_Text = "© GeoContent /
(p) Intergraph", L_MapControlImageCourtesyOfTerraItaly_Text = "© 2007
TerraItaly", L_MapControlImageCourtesyOfIntermap_Text = "© 2007
Intermap", L_MapControlImageCourtesyOfIndianaMap_Text = "Image courtesy of the
IndianaMap", L_MapControlImageCourtesyOfStateOfNevada_Text = "Image courtesy of
the Nevada State Mapping Advisory Committee", L_SupportedBrowserDownloadUrl_Text =
"http://www.microsoft.com/windows/ie/downloads/default.mspx";
_VERegisterNamespaces("MapControl");
MapControl.Features = {PlatformName : L_MapControlPlatformName_Text, Copyright : {Navteq :
L_MapControlNavteq_Text, ImageCourtesyOfNASA : L_MapControlImageCourtesyOfNASA_Text,
HarrisCorp : L_MapControlHarrisCorp_Text, ImageCourtesyOfUSGS :
L_MapControlImageCourtesyOfUSGS_Text, ImageCourtesyOfPictometry :
L_MapControlImageCourtesyOfPictometry_Text}, Image : {PoweredLogo :
"logo_powered_by.png"}, MapStyle : {Road : true, Shaded : true, Aerial : true,
Hybrid : true, BirdsEye : true, View3D : true}, BirdsEyeAtZoomLevel : 10,
ScaleBarKilometers : false, Traffic : {Flow : {Slow : "0-25 mph", Moderate :
"25-45 mph", Fast : "45+ mph"}}, Minimap : {ShowByDefault : false}};
_VERegisterNamespaces("Msn.MVC");
Msn.MVC.AbstractView = (function ()
{
this._contextPin = null;
}
);
Msn.MVC.AbstractView.prototype.OnBeforeSwitchAway = (function ()
{
}
);
Msn.MVC.AbstractView.prototype.ShowShimIfSupported = (function ()
{
}
);
Msn.MVC.AbstractView.prototype.UpdateShimIfSupported = (function ()
{
}
);
_VERegisterNamespaces("Msn.MVC");
Msn.MVC.FlatlandView = (function ()
{
this._superObj = Msn.MVC.FlatlandView.prototype;
this._mapDrawingView = null;
}
);
Msn.MVC.FlatlandView.prototype = new Msn.MVC.AbstractView();
Msn.MVC.FlatlandView.prototype.OnBeforeSwitchAway = (function ()
{
if (window.__drawingLoaded)
{
this._ClearAllCollectionLayers();
VE_MapDispatch.Clear();
}
}
);
_VERegisterNamespaces("Msn.MVC");
Msn.MVC.View3D = (function ()
{
this._superObj = Msn.MVC.View3D.prototype;
this._hackUniqueLayerId = "UniqueLayer_Hack";
this._entityIdShapePostfix = "_Shape";
this._spacecontrol = null;
}
);
Msn.MVC.View3D.prototype = new Msn.MVC.AbstractView();
Msn.MVC.View3D.prototype.OnBeforeSwitchAway = (function ()
{
this._SetView3DControl(null);
}
);
Msn.MVC.View3D.prototype._SetView3DControl = (function (a)
{
this._spacecontrol = a;
}
);
Msn.MVC.View3D.prototype.ShowShimIfSupported = (function (b,a)
{
ShowShim(b, a);
}
);
Msn.MVC.View3D.prototype.UpdateShimIfSupported = (function (b,a)
{
UpdateIFrameShim(b, a);
}
);
_VERegisterNamespaces("Msn.MVC");
Msn.MVC.ViewFacade = (function ()
{
this._mvcFlatlandView = null;
this._mvcView3D = null;
this._curMvcView = null;
}
);
Msn.MVC.ViewFacade.prototype.OnSwitchToFlatlandView = (function ()
{
if (this._mvcFlatlandView == null)
this._mvcFlatlandView = new Msn.MVC.FlatlandView();
if (this._curMvcView == this._mvcFlatlandView)
return ;
if (this._curMvcView != null)
this._curMvcView.OnBeforeSwitchAway();
this._curMvcView = this._mvcFlatlandView;
if (window.__drawingLoaded)
this._curMvcView.OnAllCollectionLayersRepaint();
}
);
Msn.MVC.ViewFacade.prototype.OnSwitchToView3D = (function (a)
{
if (this._mvcView3D == null)
this._mvcView3D = new Msn.MVC.View3D();
this._mvcView3D._SetView3DControl(a);
if (this._curMvcView == this._mvcView3D)
return ;
if (this._curMvcView != null)
this._curMvcView.OnBeforeSwitchAway();
this._curMvcView = this._mvcView3D;
if (window.__drawingLoaded)
this._curMvcView.OnAllCollectionLayersRepaint();
}
);
Msn.MVC.ViewFacade.prototype.ShowShimIfSupported = (function (b,a)
{
if (this._curMvcView == null)
return ;
return this._curMvcView.ShowShimIfSupported(b, a);
}
);
Msn.MVC.ViewFacade.prototype.UpdateShimIfSupported = (function (b,a)
{
if (this._curMvcView == null)
return ;
return this._curMvcView.UpdateShimIfSupported(b, a);
}
);
var mvcViewFacade = new Msn.MVC.ViewFacade(), windowWidth = 0, windowHeight = 0,
scrollbarWidth = null;
_VERegisterNamespaces("Msn.VE");
Msn.VE.DistanceUnit = {Kilometers : "km", Miles : "mi"};
Msn.VE.DistanceUnit.IsValidType = (function (a)
{
if (typeof a == "string")
if (a == Msn.VE.DistanceUnit.Miles || a == Msn.VE.DistanceUnit.Kilometers)
return true;
return false;
}
);
VEException.prototype.Name = this.name;
VEException.prototype.Source = this.source;
VEException.prototype.Message = this.message;
VEParameter.prototype.Name = this.name;
VEParameter.prototype.Value = this.value;
VENetwork.GetExecutionID = (function ()
{
var a = new Date(), b = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate(),
a.getHours(), a.getMinutes(), a.getSeconds(), a.getMilliseconds());
b += Math.round(Math.random() * 1000000);
return b;
}
);
VENetwork.AttachStyleSheetCallback = (function (a)
{
if (a)
a();
}
);
VENetwork.AttachStyleSheet = (function (a,b,d,c)
{
if (a == null || a == "undefined" || a.length == 0)
throw new VEException("VENetwork:AttachStylesheet",
"err_nostylesurl", "");
elStyle = document.createElement("link");
if (d == true)
elStyle.rel = "alternate stylesheet";
else
elStyle.rel = "stylesheet";
if (c)
elStyle.media = c;
elStyle.type = "text/css";
elStyle.rev = "stylesheet";
elStyle.id = VENetwork.GetExecutionID();
elStyle.href = a;
VENetwork.GetAttachTarget().appendChild(elStyle);
if (navigator.userAgent.indexOf("IE") >= 0)
elStyle.onreadystatechange = (function ()
{
if (elStyle && ("loaded" == elStyle.readyState || "complete"
== elStyle.readyState))
{
elStyle.onreadystatechange = null;
VENetwork.AttachStyleSheetCallback(b);
}
}
);
else
VENetwork.AttachStyleSheetCallback(b);
return ;
}
);
VENetwork.DownloadScriptCallback = (function (a,b)
{
if (a)
a(b);
}
);
VENetwork.DownloadScript = (function (b,c,d)
{
if (b == null || b == "undefined" || b.length == 0)
throw new VEException("VENetwork:DownloadScript",
"err_noscripturl", L_noscripturl_text);
var a = document.createElement("script");
a.type = "text/javascript";
a.language = "javascript";
a.id = VENetwork.GetExecutionID();
a.src = b;
if (navigator.userAgent.indexOf("IE") >= 0)
a.onreadystatechange = (function ()
{
if (a && ("loaded" == a.readyState || "complete" ==
a.readyState))
{
a.onreadystatechange = null;
VENetwork.DownloadScriptCallback(c, d);
}
}
);
else
a.onload = (function ()
{
a.onload = null;
VENetwork.DownloadScriptCallback(c, d);
}
);
VENetwork.GetAttachTarget().appendChild(a);
return a.id;
}
);
VENetwork.DownloadXml = (function (e,c,b,d)
{
var a = GetXmlHttp();
a.open(c, e, true);
a.onreadystatechange = (function ()
{
if (a.readyState == 4)
{
if (b)
b(a.responseXML, d);
a = null;
}
}
);
a.send(null);
}
);
VENetwork.GetAttachTarget = (function ()
{
if ((document.getElementsByTagName("head"))[0] != null)
return (document.getElementsByTagName("head"))[0];
else
throw new VEException("VENetwork:cstr", "err_noheadelement",
L_noheadelement_text);
}
);
VENetwork.prototype.BeginInvoke = BeginInvoke;
VENetwork.prototype.EndInvoke = EndInvoke;
JSONConstant.culture = "culture";
JSONConstant.format = "format";
JSONConstant.json = "json";
JSONConstant.requestid = "rid";
_VERegisterNamespaces("Msn.Drawing");
var MC_PointID = 10000, MC_PolylineID = 30000, MC_PolygonID = 50000, MC_SYMBOL_IID =
70000, MC_TEXT_IID = 90000, MC_ENTITY_IID = 200000, MC_COL_IID = 1000, MC_GEO_TYPE_SYMBOL
= "Symbol", MC_GEO_TYPE_POINT = "Point", MC_GEO_TYPE_POLYLINE =
"Polyline", MC_GEO_TYPE_POLYGON = "Polygon", MC_GEO_TYPE_TEXT =
"Text", MC_GEO_TYPE_COL = "Collection", MC_GEO_TYPE_ENTITY =
"Entity", VEShapeType = {Pushpin : "Point", Polyline :
"Polyline", Polygon : "Polygon"};
Msn.Drawing.GetGeoUID = (function (b)
{
var a = "";
switch (b)
{
case VEShapeType.Polygon:
a = MC_PolygonID++;
break ;
case VEShapeType.Pushpin:
a = MC_PointID++;
break ;
case VEShapeType.Polyline:
a = MC_PolylineID++;
break ;
case MC_GEO_TYPE_SYMBOL:
a = MC_SYMBOL_IID++;
break ;
case MC_GEO_TYPE_TEXT:
a = MC_TEXT_IID++;
break ;
case MC_GEO_TYPE_COL:
a = MC_COL_IID++;
break ;
case MC_GEO_TYPE_ENTITY:
a = MC_ENTITY_IID++;
}
return a.toString();
}
);
Msn.Drawing.Exception = (function (a)
{
this.message = a;
this.name = "Msn.Drawing.Exception";
}
);
Msn.Drawing.Exception.prototype.toString = (function ()
{
return this.name + ": " + this.message;
}
);
Msn.Drawing.Point = (function (a,b)
{
this.id = 0;
this.points = [];
this.points.push(a);
this.points.push(b);
this.iid = Msn.Drawing.GetGeoUID(VEShapeType.Pushpin);
}
);
Msn.Drawing.Point.prototype.altitudes = null;
Msn.Drawing.Point.prototype.altitudeMode = "Ground";
Msn.Drawing.Point.prototype.type = VEShapeType.Pushpin;
Msn.Drawing.Point.prototype.name = null;
Msn.Drawing.Point.prototype.symbol = null;
Msn.Drawing.Point.prototype.isLabel = true;
Msn.Drawing.Point.prototype.isOnLegend = false;
Msn.Drawing.Point.prototype.Destroy = (function ()
{
this.symbol = null;
this.points = null;
this.altitudes = null;
this.altitudeMode = null;
}
);
Msn.Drawing.Point.prototype.toString = (function ()
{
return this.points[0] + "," + this.points[1];
}
);
Msn.Drawing.PolyLine = (function (a)
{
this.id = 0;
this.iid = Msn.Drawing.GetGeoUID(VEShapeType.Polyline);
this.points = a ? a : [];
this.minX = null;
this.minY = null;
this.maxX = null;
this.maxY = null;
this.length = - 1;
}
);
Msn.Drawing.PolyLine.prototype.toString = (function ()
{
if (this.points != null)
return this.points.join(" ");
else
return "";
}
);
Msn.Drawing.PolyLine.prototype.altitudes = null;
Msn.Drawing.PolyLine.prototype.altitudeMode = "Ground";
Msn.Drawing.PolyLine.prototype.extruded = false;
Msn.Drawing.PolyLine.prototype.minZ = null;
Msn.Drawing.PolyLine.prototype.maxZ = null;
Msn.Drawing.PolyLine.prototype.minX = null;
Msn.Drawing.PolyLine.prototype.minY = null;
Msn.Drawing.PolyLine.prototype.maxX = null;
Msn.Drawing.PolyLine.prototype.maxY = null;
Msn.Drawing.PolyLine.prototype.iid = Msn.Drawing.GetGeoUID(VEShapeType.Polyline);
Msn.Drawing.PolyLine.prototype.labelPosX = null;
Msn.Drawing.PolyLine.prototype.labelPosY = null;
Msn.Drawing.PolyLine.prototype.labelPosZ = null;
Msn.Drawing.PolyLine.prototype.name = null;
Msn.Drawing.PolyLine.prototype.type = VEShapeType.Polyline;
Msn.Drawing.PolyLine.prototype.symbol = null;
Msn.Drawing.PolyLine.prototype.isLabel = true;
Msn.Drawing.PolyLine.prototype.isOnLegend = false;
Msn.Drawing.PolyLine.prototype.Destroy = (function ()
{
this.symbol = null;
this.points = null;
this.altitudes = null;
this.altitudeMode = null;
this.extruded = null;
this.minX = null;
this.minY = null;
this.maxX = null;
this.maxY = null;
this.minZ = null;
this.maxZ = null;
}
);
Msn.Drawing.PolyLine.prototype.GetLength = (function ()
{
if (this.length < 0)
this.length = CalculateShapeLengthP(this.points);
return this.length;
}
);
Msn.Drawing.PolyLine.prototype.SetLength = (function (a)
{
this.length = a;
}
);
Msn.Drawing.Polygon = (function (a)
{
this.id = 0;
this.iid = Msn.Drawing.GetGeoUID(VEShapeType.Polygon);
this.points = a;
this.length = - 1;
this.area = - 1;
this.minX = null;
this.minY = null;
this.maxX = null;
this.maxY = null;
}
);
Msn.Drawing.Polygon.prototype.altitudes = null;
Msn.Drawing.Polygon.prototype.altitudeMode = "Ground";
Msn.Drawing.Polygon.prototype.extruded = false;
Msn.Drawing.Polygon.prototype.minZ = null;
Msn.Drawing.Polygon.prototype.maxZ = null;
Msn.Drawing.Polygon.prototype.labelPosX = null;
Msn.Drawing.Polygon.prototype.labelPosY = null;
Msn.Drawing.Polygon.prototype.labelPosZ = null;
Msn.Drawing.Polygon.prototype.symbol = null;
Msn.Drawing.Polygon.prototype.isLabel = true;
Msn.Drawing.Polygon.prototype.isOnLegend = false;
Msn.Drawing.Polygon.prototype.type = VEShapeType.Polygon;
Msn.Drawing.Polygon.prototype.name = null;
Msn.Drawing.Polygon.prototype.Destroy = (function ()
{
this.symbol = null;
this.points = null;
this.altitudes = null;
this.altitudeMode = null;
this.extruded = null;
this.minX = null;
this.minY = null;
this.maxX = null;
this.maxY = null;
this.minZ = null;
this.maxZ = null;
}
);
Msn.Drawing.Polygon.prototype.GetLength = (function ()
{
if (this.length < 0)
this.length = CalculateShapeLength(this);
return this.length;
}
);
Msn.Drawing.Polygon.prototype.SetLength = (function (a)
{
this.length = a;
}
);
Msn.Drawing.Polygon.prototype.GetArea = (function ()
{
if (this.area < 0)
this.area = CalculateAreaP(this.points);
if (this.area < 0)
this.area = CalculateAreaP(this.points, false);
return this.area;
}
);
Msn.Drawing.Polygon.prototype.SetArea = (function (a)
{
this.area = a;
}
);
Msn.Drawing.Stroke = (function ()
{
this.width = 1;
this.linecap = "round";
this.opacity = 1;
this.linejoin = "miter";
this.color = new Msn.Drawing.Color(255, 255, 255, 1);
this.fillcolor = new Msn.Drawing.Color(0, 255, 0, 1);
}
);
Msn.Drawing.Color = (function (d,c,b,a)
{
this.R = d ? d : 0;
this.G = c ? c : 0;
this.B = b ? b : 0;
this.A = a ? a : 0;
this.ToHexString = (function ()
{
return "#" + Number(this.R).toString(16) + (this.R < 16 ? "0" :
"") + Number(this.G).toString(16) + (this.G < 16 ? "0" :
"") + Number(this.B).toString(16) + (this.B < 16 ? "0" :
"");
}
);
}
);
VEShapeStyle = (function ()
{
this.iid = Msn.Drawing.GetGeoUID(MC_GEO_TYPE_SYMBOL);
this.id = this.iid;
}
);
VEShapeStyle.prototype.point_type = "v:rect";
VEShapeStyle.prototype.name = "symbol";
VEShapeStyle.prototype.highlight_stroke_color = "#336666";
VEShapeStyle.prototype.highlight_fill_color = "#FFCC33";
VEShapeStyle.prototype.shape_drawtype = "v:shape";
VEShapeStyle.prototype.shape_fill = "false";
VEShapeStyle.prototype.shape_filled = "false";
VEShapeStyle.prototype.shape_unselectable = "off";
VEShapeStyle.prototype.style_zIndex = 60;
VEShapeStyle.prototype.style_zIndex_polyshape = 50;
VEShapeStyle.prototype.style_position = "absolute";
VEShapeStyle.prototype.style_filter = "alpha(opacity=30)";
VEShapeStyle.prototype.style_width = "10";
VEShapeStyle.prototype.style_height = "10";
VEShapeStyle.prototype.style_visibility = "visible";
VEShapeStyle.prototype.style_display = "block";
VEShapeStyle.prototype.stroke_drawtype = "v:stroke";
VEShapeStyle.prototype.stroke_on = "true";
VEShapeStyle.prototype.stroke_joinstyle = "miter";
VEShapeStyle.prototype.stroke_endcap = "round";
VEShapeStyle.prototype.stroke_opacity = "1";
VEShapeStyle.prototype.stroke_color = "#0000FF";
VEShapeStyle.prototype.stroke_weight = "2pt";
VEShapeStyle.prototype.stroke_style = "Single";
VEShapeStyle.prototype.stroke_filltype = "solid";
VEShapeStyle.prototype.stroke_color2 = "red";
VEShapeStyle.prototype.stroke_dashstyle = "Solid";
VEShapeStyle.prototype.stroke_startarrow = "none";
VEShapeStyle.prototype.stroke_startarrowwidth = "medium";
VEShapeStyle.prototype.stroke_startarrowlength = "medium";
VEShapeStyle.prototype.stroke_endarrow = "none";
VEShapeStyle.prototype.stroke_endarrowwidth = "medium";
VEShapeStyle.prototype.stroke_endarrowlength = "medium";
VEShapeStyle.prototype.fill_drawtype = "v:fill";
VEShapeStyle.prototype.fill_color = "#008000";
VEShapeStyle.prototype.fill_colors = "30% yellow";
VEShapeStyle.prototype.fill_color2 = "blue";
VEShapeStyle.prototype.fill_type = "solid";
VEShapeStyle.prototype.fill_opacity = "0.3";
VEShapeStyle.prototype.fill_on = "false";
VEShapeStyle.prototype.textbox_drawtype = "v:textbox";
VEShapeStyle.prototype.textbox_text = "name";
VEShapeStyle.prototype.textbox_color = "#FFFFFF";
VEShapeStyle.prototype.textbox_bold = false;
VEShapeStyle.prototype.textbox_italic = false;
VEShapeStyle.prototype.textbox_underscore = false;
VEShapeStyle.prototype.textbox_font = "Arial";
VEShapeStyle.prototype.textbox_size = 7;
VEShapeStyle.prototype.imagedata_on = false;
VEShapeStyle.prototype.imagedata_src = null;
VEShapeStyle.prototype.isOn = false;
VEShapeStyle.prototype.textbox_OffsetX = 0;
VEShapeStyle.prototype.textbox_OffsetY = 0;
VEShapeStyle.prototype.textbox_backcolor = "#0000FF";
VEShapeStyle.textbox_color_opacity = "1";
VEShapeStyle.textbox_backcolor_opacity = "1";
VEShapeStyle.prototype.img_offsetX = 0;
VEShapeStyle.prototype.img_offsetY = 0;
VEShapeStyle.prototype.img_width = 22;
VEShapeStyle.prototype.img_height = 22;
VEShapeStyle.prototype.Clone = (function ()
{
var a = new VEShapeStyle();
a.point_type = this.point_type;
a.name = this.name;
a.line_color = this.line_color;
a.line_width = this.line_width;
a.line_dasharray = this.line_dasharray;
a.highlight_stroke_color = this.highlight_stroke_color;
a.highlight_fill_color = this.highlight_fill_color;
a.shape_drawtype = this.shape_drawtype;
a.shape_fill = this.shape_fill;
a.shape_filled = this.shape_filled;
a.shape_unselectable = this.shape_unselectable;
a.style_zIndex = this.style_zIndex;
a.style_zIndex_polyshape = this.style_zIndex_polyshape;
a.style_position = this.style_position;
a.style_filter = this.style_filter;
a.style_width = this.style_width;
a.style_height = this.style_height;
a.style_visibility = this.style_visibility;
a.style_display = this.style_display;
a.stroke_drawtype = this.stroke_drawtype;
a.stroke_on = this.stroke_on;
a.stroke_joinstyle = this.stroke_joinstyle;
a.stroke_endcap = this.stroke_endcap;
a.stroke_opacity = this.stroke_opacity;
a.stroke_color = this.stroke_color;
a.stroke_weight = this.stroke_weight;
a.stroke_style = this.stroke_style;
a.stroke_filltype = this.stroke_filltype;
a.stroke_color2 = this.stroke_color2;
a.stroke_dashstyle = this.stroke_dashstyle;
a.stroke_startarrow = this.stroke_startarrow;
a.stroke_startarrowwidth = this.stroke_startarrowwidth;
a.stroke_startarrowlength = this.stroke_startarrowlength;
a.stroke_endarrow = this.stroke_endarrow;
a.stroke_endarrowwidth = this.stroke_endarrowwidth;
a.stroke_endarrowlength = this.stroke_endarrowlength;
a.fill_drawtype = this.fill_drawtype;
a.fill_color = this.fill_color;
a.fill_colors = this.fill_colors;
a.fill_color2 = this.fill_color2;
a.fill_type = this.fill_type;
a.fill_opacity = this.fill_opacity;
a.fill_on = this.fill_on;
a.textbox_drawtype = this.textbox_drawtype;
a.textbox_text = this.textbox_text;
a.textbox_color = this.textbox_color;
a.textbox_bold = this.textbox_bold;
a.textbox_italic = this.textbox_italic;
a.textbox_underscore = this.textbox_underscore;
a.textbox_backcolor = this.textbox_backcolor;
a.imagedata_on = this.imagedata_on;
a.imagedata_src = this.imagedata_src;
a.isOn = this.isOn;
a.textbox_OffsetX = this.textbox_OffsetX;
a.textbox_OffsetY = this.textbox_OffsetY;
a.img_offsetX = this.img_offsetX;
a.img_offsetY = this.img_offsetY;
a.img_width = this.img_width;
a.img_height = this.img_height;
return a;
}
);
VE_LineClip = new VE_MapLineClip();
var L_GraphicsInitError_Text = "Your Web browser does not support SVG or VML. Some
graphics features may not function properly.";
_VERegisterNamespaces("Msn.Drawing");
Msn.Drawing.Graphic = (function ()
{
}
);
Msn.Drawing.Graphic.CreateGraphic = (function (e,b)
{
if (document.all)
return new Msn.Drawing.VMLGraphic(e, b);
else
{
if (navigator.userAgent.indexOf("KHTML") !== - 1)
return new Msn.Drawing.SVGGraphic(e, b);
var c = 0, f = 0, g = new RegExp("Firefox/(.*)"), d =
g.exec(navigator.userAgent);
if (d && d.length >= 2)
{
var a = d[1].split(".");
if (a)
{
c = a[0];
f = a[1];
if (parseInt(c) > 0 && parseInt(f) >= 5 || parseInt(c) >=
2)
return new Msn.Drawing.SVGGraphic(e, b);
}
}
throw new Msn.Drawing.Exception(L_GraphicsInitError_Text);
}
}
);
Msn.Drawing.BaseGraphic = (function ()
{
this._stroke = new Msn.Drawing.Stroke();
}
);
Msn.Drawing.BaseGraphic.prototype.CreatePrimitive = (function ()
{
}
);
Msn.Drawing.BaseGraphic.prototype.DrawPrimitive = (function (d,c,a)
{
var b = new VEShapeStyle();
if (a._stroke)
{
b.stroke_weight = a._stroke.width;
b.stroke_joinstyle = a._stroke.linejoin;
b.stroke_color = a._stroke.color.ToHexString();
b.stroke_dashstyle = a._stroke.linecap;
b.stroke_opacity = a._stroke.color.A.toString();
b.fill_color = a._stroke.fillcolor.ToHexString();
b.fill_opacity = a._stroke.fillcolor.A.toString();
}
c.symbol = b;
var e = a.CreatePrimitive(d, c, "");
return e;
}
);
Msn.Drawing.BaseGraphic.prototype.SetStroke = (function (a)
{
this._stroke = a;
}
);
Msn.Drawing.VMLGraphic = (function (c,d)
{
Msn.Drawing.BaseGraphic.call();
var g = new Msn.Drawing.Color(255, 0, 0, 1), f = new Msn.Drawing.Color(255, 0, 0, 1), e
= 1, a = c;
c.unselectable = "on";
var b = [];
this.DrawPrimitive = (function (f,e)
{
var c = Msn.Drawing.VMLGraphic.prototype.DrawPrimitive(d, f, this);
if (a && c)
{
if (e)
a.appendChild(wrapVmlElementInDiv(c));
else
a.appendChild(c);
b.push(c);
}
}
);
this.resetOffset = (function ()
{
}
);
this.SetZIndex = (function (a)
{
e = a;
}
);
this.Clear = (function ()
{
var a = null, c = null;
while (a = b.pop())
{
c = a.parentElement;
if (c)
c.removeChild(a);
a = null;
}
}
);
this.Destroy = (function ()
{
this.Clear();
a = null;
}
);
}
);
Msn.Drawing.VMLGraphic.prototype = new Msn.Drawing.BaseGraphic();
Msn.Drawing.VMLGraphic.prototype.CreatePrimitive = (function (d,a)
{
var b = null;
if (a.type == VEShapeType.Pushpin)
{
if (a.symbol.shape_drawtype == "v:oval" || a.symbol.shape_drawtype ==
"v:rect" || a.symbol.shape_drawtype == "v:roundrect")
b = document.createElement(a.symbol.shape_drawtype);
else
b = document.createElement("v:roundrect");
var f = LatLongtoRoundedPixel(d, a.points[1], a.points[0]);
b.style.width = a.symbol.style_width;
b.style.height = a.symbol.style_height;
b.style.left = - 5 + f.x + d.GetOffsetX() + "px";
b.style.top = - 5 + f.y + d.GetOffsetY() + "px";
b.style.position = a.symbol.style_position;
}
else
{
b = document.createElement("v:shape");
var g = null;
g = GetVmlPath(d, a);
var h = d.GetMapWidth(), i = d.GetMapHeight();
b.style.top = "0px";
b.style.left = "0px";
b.style.width = h + "px";
b.style.height = i + "px";
b.coordsize = h + " " + i;
b.style.position = a.symbol.style_position;
b.path = g;
}
b.id = a.id != 0 ? a.id : a.iid;
b.style.zIndex = a.symbol.style_zIndex_polyshape;
b.unselectable = a.symbol.shape_unselectable;
var c = document.createElement("v:stroke");
c.joinstyle = a.symbol.stroke_joinstyle;
c.endcap = a.symbol.stroke_endcap;
c.opacity = a.symbol.stroke_opacity;
c.dashstyle = a.symbol.stroke_dashstyle;
c.filltype = a.symbol.stroke_filltype;
c.color2 = a.symbol.stroke_color2;
c.color = a.symbol.stroke_color;
c.weight = a.symbol.stroke_weight;
c.linestyle = a.symbol.stroke_style;
if (a.type == VEShapeType.Polygon)
{
var e = document.createElement("v:fill");
e.color = a.symbol.fill_color;
e.colors = a.symbol.fill_colors;
e.color2 = a.symbol.fill_color2;
e.type = a.symbol.fill_type;
e.opacity = a.symbol.fill_opacity;
b.appendChild(e);
}
else
if (a.type == VEShapeType.Polyline)
{
b.fill = false;
b.filled = false;
}
else
if (a.type == VEShapeType.Pushpin)
{
b.style.filter = a.symbol.style_filter;
b.style.zIndex = a.symbol.style_zIndex;
b.style.display = a.symbol.style_display;
b.unselectable = a.symbol.shape_unselectable;
b.fill = true;
b.filled = true;
b.fillcolor = a.symbol.fill_color;
}
b.appendChild(c);
return b;
}
);
Msn.Drawing.VMLGraphic.prototype.UpdatePoints = (function (d,a,b,c)
{
if (c && (a.type == VEShapeType.Polyline || a.type == VEShapeType.Polygon))
{
var e = GetVmlPath(d, a);
b.path = e;
}
return b;
}
);
Msn.Drawing.VMLGraphic.prototype.UpdateStyle = (function (f,a,e)
{
e.style.zIndex = a.symbol.style_zIndex_polyshape;
e.unselectable = a.symbol.shape_unselectable;
var c = e.firstChild, b = null, d = null;
while (c != null)
{
if (c.tagName == "stroke")
b = c;
else
if (c.tagName == "fill")
d = c;
c = c.nextSibling;
}
if (b)
{
b.joinstyle = a.symbol.stroke_joinstyle;
b.endcap = a.symbol.stroke_endcap;
b.opacity = a.symbol.stroke_opacity;
b.dashstyle = a.symbol.stroke_dashstyle;
b.filltype = a.symbol.stroke_filltype;
b.color2 = a.symbol.stroke_color2;
b.color = a.symbol.stroke_color;
b.weight = a.symbol.stroke_weight;
b.linestyle = a.symbol.stroke_style;
}
if (a.type == VEShapeType.Polygon && d)
{
d.color = a.symbol.fill_color;
d.color2 = a.symbol.fill_color2;
d.type = a.symbol.fill_type;
d.opacity = a.symbol.fill_opacity;
}
return e;
}
);
Msn.Drawing.SVGGraphic = (function (c,b)
{
Msn.Drawing.BaseGraphic.call();
var g = new Msn.Drawing.Color(255, 0, 0, 1), f = new Msn.Drawing.Color(0, 255, 0, 1);
_curmap = b;
this._svgLayer = null;
var d = 60, e = c, a = [];
this.DrawPrimitive = (function (d)
{
var c = Msn.Drawing.SVGGraphic.prototype.DrawPrimitive(b, d, this);
if (c)
a.push(c);
}
);
this.resetOffset = (function ()
{
_curmap.resetSvgLayer();
}
);
this.SetZIndex = (function (a)
{
d = a;
if (this._svgLayer != null)
this._svgLayer.SetZIndex(a);
}
);
this.Destroy = (function ()
{
this.Clear();
}
);
this.Clear = (function ()
{
if (this._svgLayer == null)
return ;
var b = null, c = null;
while (b = a.pop())
{
c = b.parentNode;
if (c)
c.removeChild(b);
b = null;
}
}
);
}
);
Msn.Drawing.SVGGraphic.prototype = new Msn.Drawing.BaseGraphic();
Msn.Drawing.SVGGraphic.prototype.CreatePrimitive = (function (a,b,c)
{
this._svgLayer = a.getSvgLayer();
return this._svgLayer.addShape(b, c);
}
);
Msn.Drawing.SVGGraphic.prototype.UpdatePoints = (function (a,b,c)
{
this._svgLayer = a.getSvgLayer();
return this._svgLayer.UpdatePoints(b, c);
}
);
Msn.Drawing.SVGGraphic.prototype.UpdateStyle = (function (a,b,c)
{
this._svgLayer = a.getSvgLayer();
return this._svgLayer.UpdateStyle(b, c);
}
);
Msn.Drawing.SvgLayer = (function (f,g)
{
function d(b)
{
var a = parseFloat(b);
if (a == NaN)
a = 0.3;
else
if (a > 1)
a /= 100;
else
if (a < 0)
a = 0;
return a;
}
var c = g, b = null, e = false, h = false;
if (e == false)
{
e = true;
b =
document.createElementNS("http://www.w3.org/2000/svg",
"svg");
b.setAttribute("height", "100%");
b.setAttribute("width", "100%");
f.appendChild(b);
this.lineDashStyles = [];
var a = this.lineDashStyles;
a[0] = ["Solid", "none"];
a[1] = ["ShortDash", "6,2"];
a[2] = ["ShortDot", "2,2"];
a[3] = ["ShortDashDot", "6,2,2,2"];
a[4] = ["ShortDashDotDot", "6,2,2,2,2,2"];
a[5] = ["Dot", "2,6"];
a[6] = ["Dash", "10,6"];
a[7] = ["LongDash", "20,6"];
a[8] = ["DashDot", "10,6,2,6"];
a[9] = ["LongDashDot", "20,6,2,6"];
a[10] = ["LongDashDotDot", "20,6,2,6,2,6"];
}
this.addShape = (function (e)
{
if (b == null)
return ;
var a = null;
if (e.type == VEShapeType.Pushpin)
{
a =
document.createElementNS("http://www.w3.org/2000/svg",
"rect");
var h = LatLongtoRoundedPixel(c, e.points[1], e.points[0]);
a.setAttribute("x", h.x - 4);
a.setAttribute("y", h.y - 4);
a.setAttribute("width", "8pt");
a.setAttribute("height", "8pt");
a.setAttribute("stroke-width", e.symbol.stroke_weight);
a.setAttribute("stroke", e.symbol.stroke_color);
a.setAttribute("fill", e.symbol.fill_color);
b.appendChild(a);
}
else
if (e.type == VEShapeType.Polyline || e.type == VEShapeType.Polygon)
{
a =
document.createElementNS("http://www.w3.org/2000/svg",
"polyline");
a.setAttribute("points", GetSvgPath(c, e.points));
a.setAttribute("stroke", e.symbol.stroke_color);
a.setAttribute("stroke-width", e.symbol.stroke_weight);
a.setAttribute("stroke-linejoin", e.symbol.stroke_joinstyle);
a.setAttribute("stroke-opacity", d(e.symbol.stroke_opacity));
var g = this.lineDashStyles;
for (var f = 0;f < g.length;f++)
if (e.symbol.stroke_dashstyle == g[f][0])
a.setAttribute("stroke-dasharray", g[f][1]);
if (e.type == VEShapeType.Polyline)
a.setAttribute("fill", "none");
else
{
a.setAttribute("fill", e.symbol.fill_color);
a.setAttribute("fill-opacity", d(e.symbol.fill_opacity));
}
}
if (a)
{
a.setAttribute("id", e.id != 0 ? e.id : e.iid);
b.appendChild(a);
}
return a;
}
);
this.SetZIndex = (function (a)
{
if (! c.bShowSVG)
return ;
(c.GetsvgDiv()).style.zIndex = a;
}
);
this.UpdatePoints = (function (a,b)
{
if (a.type == VEShapeType.Polyline || a.type == VEShapeType.Polygon)
b.setAttribute("points", GetSvgPath(c, a.points));
}
);
this.UpdateStyle = (function (a,c)
{
if (b == null)
return ;
if (a.type != VEShapeType.Pushpin)
{
c.setAttribute("stroke", a.symbol.stroke_color);
c.setAttribute("stroke-width", a.symbol.stroke_weight);
c.setAttribute("stroke-linejoin", a.symbol.stroke_joinstyle);
c.setAttribute("stroke-opacity", d(a.symbol.stroke_opacity));
var f = this.lineDashStyles;
for (var e = 0;e < f.length;e++)
if (a.symbol.stroke_dashstyle == f[e][0])
c.setAttribute("stroke-dasharray", f[e][1]);
if (a.type == VEShapeType.Polyline)
c.setAttribute("fill", "none");
else
{
c.setAttribute("fill", a.symbol.fill_color);
c.setAttribute("fill-opacity", d(a.symbol.fill_opacity));
}
}
return a;
}
);
}
);
VE_LatLongThreshold = {PixelDiff : 12, DistDiff : 0.5, OriginLat : 0, OriginLon : 0,
LatDiff : 0, LonDiff : 0, UseThreshold : true, IsNotInit : true};
Msn.Drawing.ComputeBoundingBox = (function (a)
{
if (typeof a == "undefined" || a == null || a.length == 0)
return null;
var c = [], f = Infinity, g = Infinity, d = - Infinity, e = - Infinity;
for (var b = 0;b < a.length;b = b + 2)
{
f = Math.min(f, a[b]);
g = Math.min(g, a[(b + 1)]);
d = Math.max(d, a[b]);
e = Math.max(e, a[(b + 1)]);
}
c[0] = f;
c[1] = g;
c[2] = d;
c[3] = e;
return c;
}
);
_VERegisterNamespaces("Msn.VE");
$MVEM = new (function ()
{
this.IsEnabled = (function (a)
{
if (a == undefined)
throw new VEException("$MVEM.IsEnabled", "err_invalidfeature",
"Specified feature is invalid.");
return a;
}
);
}
)();
VEException.prototype.Name = this.name;
VEException.prototype.Source = this.source;
VEException.prototype.Message = this.message;
_VERegisterNamespaces("Msn.VE.Css");
Msn.VE.CurrentDomain = typeof Msn.VE.API != "undefined" && Msn.VE.API !=
null ? Msn.VE.API.Globals.vecurrentdomain : ".";
Msn.VE.Css = {Cursors : {Auto : "auto", Default : "default", Crosshair
: "crosshair", Pointer : "pointer", Move : "move", Wait :
"wait", Text : "text", Help : "help", NResize :
"n-resize", NEResize : "ne-resize", NWResize : "nw-resize",
SResize : "s-resize", SEResize : "se-resize", SWResize :
"sw-resize", EResize : "e-resize", WResize : "w-resize",
CustomCursors : null, defineCustomCursors : (function (c)
{
Msn.VE.Css.Cursors.CustomCursors = c;
var b, d = c.length;
for (b = 0;b < d;b++)
{
var a = c[b];
Msn.VE.Css.Cursors[a.name] = "url(\"" + a.domain + a.path +
"\"), " + a.fallback;
}
}
)}, RegEx : {RectClip :
/rect\((auto|\d+px|\d*\.*\d+em|\d*\.*\d+pt)\s*,*\s*(auto|\d+px|\d*\.*\d+em|\d*\.*\d+pt)\s*,*\s*(auto|\d+px|\d*\.*\d+em|\d*\.*\d+pt)\s*,*\s*(auto|\d+px|\d*\.*\d+em|\d*\.*\d+pt)\)/},
Functions : {addClass : (function (a)
{
this.alterClass(a, arguments, true);
}
), removeClass : (function (a)
{
this.alterClass(a, arguments, false);
}
), alterClass : (function (a,e,g)
{
var c, h = e.length;
for (c = 1;c < h;c++)
{
var d = e[c], d = e[c].replace(/^\s*/, "").replace(/\s*$/, "");
if (d.indexOf(" ") != - 1)
continue ;
var f = new RegExp("(^| )" + d + "( |$)", "i");
if (g)
{
if (! f.test(a.className))
if (a.className == "")
a.className = d;
else
a.className += " " + d;
}
else
{
var b = a.className;
b = b.replace(f, "$1");
b = b.replace(/ $/, "");
a.className = b;
}
}
}
), getComputedStyle : (function (b,c)
{
var a = null;
if (document.defaultView && document.defaultView.getComputedStyle &&
typeof document.defaultView.getComputedStyle != "undefined")
a = document.defaultView.getComputedStyle(b, null);
else
a = b.currentStyle;
return a[c];
}
), setClip : (function (c,d,e)
{
var b = Msn.VE.Css.Functions.getClip(c, 0), f = Msn.VE.Css.RegEx.RectClip, a =
f.exec(b);
a[d] = e;
if (d == 0)
c.style.clip = a[0];
else
{
a[d] = e;
a.shift();
b = "rect(" + a.join(" ") + ")";
c.style.clip = b;
}
}
), getClip : (function (d,e)
{
var b = d.style.clip;
if (b == "")
{
var b = window.opera ? "auto" : Msn.VE.Css.Functions.getComputedStyle(d,
"clip");
if (b == "auto")
b = "rect(auto auto auto auto)";
else
if (typeof b == "undefined" || b == null)
{
var c = d.currentStyle;
if (typeof c != "undefined" && c != null)
b = "rect(" + c.clipTop + " " + c.clipRight + "
" + c.clipBottom + " " + c.clipLeft + ")";
}
}
var f = Msn.VE.Css.RegEx.RectClip, a = f.exec(b);
if (e == 0)
return a[0];
a[1] = a[1] == "auto" ? 0 : a[1];
a[4] = a[4] == "auto" ? 0 : a[4];
a[2] = a[2] == "auto" ? d.offsetWidth : a[2];
a[3] = a[3] == "auto" ? d.offsetHeight : a[3];
if (e == 5)
return a;
else
return a[e];
}
)}};
_VERegisterNamespaces("Msn.VE");
Msn.VE.OSType = {Windows : 1, Windows95 : 2, Windows98 : 3, WindowsMillenium : 4,
WindowsNT : 5, WindowsNT4 : 6, Windows2000 : 7, Windows2000SP1 : 8, WindowsXP : 9,
WindowsXPSP2 : 10, WindowsServer2003 : 11, WindowsServer2003SP1 : 12, WindowsVista : 13,
MacOS : 30, MacOS9 : 31, MacOSX : 32, Linux : 40, Unknown : 100};
Msn.VE.CLRType = {CLR10 : 1, CLR11 : 2, CLR20 : 4, CLR30 : 8};
Msn.VE.BrowserType = {Firefox : 1, MSIE : 2, Opera : 3, Unknown : 10};
Msn.VE.BrowserCaps = {VML : 1, SVG : 2, WindowlessSelectElement : 4, RightMouseButton : 8,
AddFavourite : 16, VectorCapable : 3};
Msn.VE.BrowserInfo = (function ()
{
function b()
{
if (a.UserAgent.indexOf("Mac") == - 1 &&
(a.UserAgent.indexOf("Gecko") != - 1 || a.UserAgent.indexOf("MSIE") !=
- 1))
a.BrowserCaps |= Msn.VE.BrowserCaps.RightMouseButton;
}
function c()
{
if (a.UserAgent.indexOf("MSIE 7") != - 1 ||
a.UserAgent.indexOf("Gecko") != - 1)
a.BrowserCaps |= Msn.VE.BrowserCaps.WindowlessSelectElement;
}
function j()
{
if (a.UserAgent.indexOf("Mac") == - 1 &&
(a.UserAgent.indexOf("MSIE 5") != - 1 || a.UserAgent.indexOf("MSIE 6")
!= - 1 || a.UserAgent.indexOf("MSIE 7") != - 1))
a.BrowserCaps |= Msn.VE.BrowserCaps.VML;
}
function i()
{
if (a.UserAgent.indexOf("MSIE") == - 1)
{
var d = 0, e = 0, f = new RegExp("Firefox/(.*)"), c =
f.exec(a.UserAgent);
if (c && c.length >= 2)
{
var b = c[1].split(".");
if (b)
{
d = b[0];
e = b[1];
if (parseInt(d) > 0 && parseInt(e) >= 5)
a.BrowserCaps |= Msn.VE.BrowserCaps.SVG;
}
}
}
}
function h()
{
try
{
if (a.UserAgent.indexOf("MSIE") != - 1)
a.BrowserCaps |= Msn.VE.BrowserCaps.AddFavourite;
}
catch (b)
{}
}
function e()
{
if (a.UserAgent.indexOf("MSIE") != - 1)
{
var c = new RegExp("MSIE ([0-9]).([0-9])"), b = c.exec(a.UserAgent);
if (b != null)
{
a.MajorVersion = parseInt(b[1]);
a.MinorVersion = parseInt(b[2]);
return ;
}
}
else
if (a.UserAgent.indexOf("Firefox") != - 1)
{
var c = new RegExp("Firefox/([0-9]).([0-9])(.*)"), b =
c.exec(a.UserAgent);
if (b != null)
{
a.MajorVersion = parseInt(b[1]);
a.MinorVersion = parseInt(b[2]);
return ;
}
}
else
if (a.UserAgent.indexOf("Opera") != - 1)
{
var c = new RegExp("Opera/([0-9]).([0-9])"), b =
c.exec(a.UserAgent);
if (b != null)
{
a.MajorVersion = parseInt(b[1]);
a.MinorVersion = parseInt(b[2]);
return ;
}
}
a.MajorVersion = null;
a.MinorVersion = null;
}
function g()
{
if (a.UserAgent.indexOf("Mac OS X") != - 1)
a.OSType = Msn.VE.OSType.MacOSX;
else
if (a.UserAgent.indexOf("Mac") != - 1)
a.OSType = Msn.VE.OSType.MacOS;
else
if (a.UserAgent.indexOf("Linux") != - 1)
a.OSType = Msn.VE.OSType.Linux;
else
if (a.UserAgent.indexOf("Win95") != - 1 ||
a.UserAgent.indexOf("Windows 95") != - 1)
a.OSType = Msn.VE.OSType.Windows95;
else
if (a.UserAgent.indexOf("Win98") != - 1 ||
a.UserAgent.indexOf("Windows 98") != - 1)
a.OSType = Msn.VE.OSType.Windows98;
else
if (a.UserAgent.indexOf("Win 9x 4.90") != - 1)
a.OSType = Msn.VE.OSType.WindowsMillenium;
else
if (a.UserAgent.indexOf("Windows NT 4.0") != - 1)
a.OSType = Msn.VE.OSType.WindowsNT4;
else
if (a.UserAgent.indexOf("Windows NT 5.01") != - 1)
a.OSType = Msn.VE.OSType.Windows2000SP1;
else
if (a.UserAgent.indexOf("Windows NT 5.0") != - 1)
a.OSType = Msn.VE.OSType.Windows2000;
else
if (a.UserAgent.indexOf("Windows NT 5.1") != - 1
&& a.UserAgent.indexOf("SV1") != - 1)
a.OSType = Msn.VE.OSType.WindowsXPSP2;
else
if (a.UserAgent.indexOf("Windows NT 5.1") != - 1)
a.OSType = Msn.VE.OSType.WindowsXP;
else
if (a.UserAgent.indexOf("Windows NT 5.2") != - 1
&& a.UserAgent.indexOf("SV1") != - 1)
a.OSType = Msn.VE.OSType.WindowsServer2003SP1;
else
if (a.UserAgent.indexOf("Windows NT 5.2") != - 1)
a.OSType = Msn.VE.OSType.WindowsServer2003;
else
if (a.UserAgent.indexOf("Windows NT 6.0") != - 1)
a.OSType = Msn.VE.OSType.WindowsVista;
else
if (a.UserAgent.indexOf("Windows NT") != - 1)
a.OSType = Msn.VE.OSType.WindowsNT;
else
if (a.UserAgent.indexOf("Win") != - 1)
a.OSType = Msn.VE.OSType.Windows;
else
a.OSType = Msn.VE.OSType.Unknown;
}
function d()
{
if (
a.UserAgent.indexOf(".NET CLR 1.0") != - 1)
a.CLRType |= Msn.VE.CLRType.CLR10;
if (
a.UserAgent.indexOf(".NET CLR 1.1") != - 1)
a.CLRType |= Msn.VE.CLRType.CLR11;
if (
a.UserAgent.indexOf(".NET CLR 2.0") != - 1)
a.CLRType |= Msn.VE.CLRType.CLR20;
if (
a.UserAgent.indexOf(".NET CLR 3.0") != - 1)
a.CLRType |= Msn.VE.CLRType.CLR30;
}
function f()
{
if (a.Locale != null)
return ;
a.Locale = "en-US";
if (a.UserAgent.indexOf("MSIE") != - 1)
{
if (navigator.browserLanguage)
a.Locale = navigator.browserLanguage;
if (navigator.userLanguage)
a.Locale = navigator.userLanguage;
if (navigator.systemLanguage)
a.Locale = navigator.systemLanguage;
}
else
if (a.UserAgent.indexOf("Gecko") != - 1)
{
var c = new RegExp("; (.*); rv:"), b = c.exec(a.UserAgent);
if (b && b.length >= 2)
a.Locale = b[1].substring(b[1].lastIndexOf(" "), b[1].length + 1);
}
else
if (a.UserAgent.indexOf("Opera") != - 1)
{
var c = new RegExp(" (.*))"), b = c.exec(a.UserAgent);
if (b && b.length >= 2)
a.Locale = b[1].substring(b[1].lastIndexOf(" "), b[1].length +
1);
}
}
function k()
{
if (a.UserAgent.indexOf("Gecko") != - 1)
a.Type = Msn.VE.BrowserType.Firefox;
else
if (a.UserAgent.indexOf("MSIE") != - 1)
a.Type = Msn.VE.BrowserType.MSIE;
else
if (a.UserAgent.indexOf("Opera") != - 1)
a.Type = Msn.VE.BrowserType.Opera;
else
a.Type = Msn.VE.BrowserType.Unknown;
e();
g();
d();
f();
h();
i();
j();
c();
b();
}
var a = this;
this.Type = null;
this.BrowserCaps = 0;
this.CLRType = 0;
this.MajorVersion = null;
this.MinorVersion = null;
this.versionString = null;
this.UserAgent = null;
this.OSType = null;
this.Locale = null;
if (arguments.length == 0)
{
this.UserAgent = window.navigator.userAgent;
this.currentBrowser = true;
}
else
{
this.UserAgent = arguments[0];
this.currentBrowser = false;
if (arguments.length >= 2)
this.Locale = arguments[1];
}
this.IsCompatibleWith = (function (c)
{
for (var b = 0;b < c.length;b++)
{
var a = c[b];
if (a.Type == this.Type && (this.MajorVersion > a.MajorVersion ||
a.MajorVersion == this.MajorVersion && a.MinorVersion >= this.MinorVersion))
return true;
}
return false;
}
);
this.GetVersionString = (function ()
{
if (this.versionString == null)
if (a.UserAgent.indexOf("Win") != - 1 &&
a.UserAgent.indexOf("MSIE") != - 1)
{
var b = null, c;
try
{
b = document.createElement("<DIV
STYLE='behavior:url(#default#clientCaps); display: none'
ID='__clientCaps'>");
document.body.appendChild(b);
c = b.getComponentVersion("{89820200-ECBD-11CF-8B85-00AA005B4383}",
"componentid");
}
catch (d)
{
c = a.MajorVersion + "." + a.MinorVersion;
}
finally
{
if ($ID("__clientCaps") != null)
($ID("__clientCaps")).parentNode.removeChild(b);
}
this.versionString = c;
}
else
if (a.MajorVersion != null && a.MajorVersion != null)
this.versionString = a.MajorVersion + "." + a.MinorVersion;
else
this.versionString = "";
return this.versionString;
}
);
k();
}
);
Msn.VE.Environment = (function ()
{
}
);
Msn.VE.Environment.Redirect = (function (a)
{
window.location.href = a;
}
);
Msn.VE.Environment.BrowserInfo = new Msn.VE.BrowserInfo();
Msn.VE.Environment.IsFF20 = (function ()
{
var a = Msn.VE.Environment.BrowserInfo;
if (a.Type == Msn.VE.BrowserType.Firefox)
{
var b = a.MajorVersion;
if (b >= 2)
return true;
}
return false;
}
);
Msn.VE.Environment.IsIE50 = (function ()
{
var a = Msn.VE.Environment.BrowserInfo;
if (a.Type == Msn.VE.BrowserType.MSIE)
{
var b = a.MajorVersion;
if (b >= 5)
return true;
}
return false;
}
);
_VERegisterNamespaces("Msn.VE");
Msn.VE.PushPinTypes = {Default : 0, SearchResultPrecise : 1, Annotation : 2, Direction :
3, DirectionTemp : 4, TrafficLight : 5, TrafficOthers : 6, YouAreHere : 7, AdStandard : 8,
AdWide : 9, AdCategory : 10, AdRoofStandard : 11, AdRoofWide : 12, AdSponsor : 13,
DirectionStep : 14, Context : 15, SearchResultNonprecise : 16};
Msn.VE.MapActionMode = {ModeUnknown : 0, Mode2D : 1, Mode3D : 2, ModeOblique : 3};
Msn.VE.BirdsEyeSearchSpinDirection = {ClockwiseSpin : - 1, NoSpin : 0,
CounterclockwiseSpin : 1};
Msn.VE.LineJoinMode = {Straight : "miter", Round : "round"};
Msn.VE.Css.Cursors.defineCustomCursors([{name : "Grab", domain : ".",
path : "/cursors/grab.cur", fallback : "move"}, {name :
"Grabbing", domain : ".", path : "/cursors/grabbing.cur",
fallback : "move"}, {name : "Target", domain : ".", path :
"/cursors/target.cur", fallback : "crosshair"}]);
Msn.VE.MapControl = (function (p_elSource,p_htParams,p_parentAPIControl)
{
function SetChildDiv(a)
{
map.appendChild(a);
}
function EnableGeoCommunity(a)
{
hijackMouseMove = a;
}
function IsGeoCommunityEnabled()
{
return hijackMouseMove;
}
function HijackMouseCursor(a)
{
hijackMouseCursor = a;
}
function IsHijackMouseCursor()
{
return hijackMouseCursor;
}
function GetOffsetX()
{
return offsetX;
}
function GetOffsetY()
{
return offsetY;
}
function GetGraphic(a)
{
if (! graphicCanvas)
try
{
graphicCanvas = Msn.Drawing.Graphic.CreateGraphic(map, a);
graphicCanvas.SetZIndex(17);
}
catch (b)
{}
return graphicCanvas;
}
function OnView3DScaleBarPositionUpdate()
{
var a = VE_TrafficManager.turnedOn ? 25 : 0;
if (spacecontrol != null)
spacecontrol.RaiseEvent("CB24F613-FE72-442e-857A-BB2FD6BFBAA5",
"OnScaleBarPositionChange", a);
}
function UpdateFromParent()
{
var a = g(p_elSource).getPagePosition();
x = a.x;
y = a.y;
width = p_elSource.offsetWidth;
height = p_elSource.offsetHeight;
}
function CreateDashboard(c,d,b,f,e,a)
{
if (currentMode == threeDMode && currentMode != null)
b = Msn.VE.DashboardSize.Normal;
dashboard = Msn.VE.NavControlFactory(p_elSource, p_this, b, f, e, a);
dashboard.Init();
dashboardContainer = dashboard.GetElement();
if (a == 5)
{
if (isFinite(parseInt(c)))
dashboardContainer.style.left = c + "px";
if (isFinite(parseInt(d)))
dashboardContainer.style.top = d + "px";
}
}
function CreateMinimap(b,c,a,e,f,h,d)
{
minimapContainer = document.createElement("div");
if (typeof a != "undefined" && a != null)
minimapContainer.id = a;
else
minimapContainer.id = "MSVE_minimap";
p_elSource.appendChild(minimapContainer);
minimapContainer.attachEvent("onmousedown", IgnoreEvent);
minimapContainer.attachEvent("onmouseup", IgnoreEvent);
minimapContainer.attachEvent("onmousemove",
DashboardContainerMouseMoveEvent);
minimapContainer.attachEvent("onmousewheel", IgnoreEvent);
minimapContainer.attachEvent("ondblclick", IgnoreEvent);
minimapContainer.attachEvent("oncontextmenu", IgnoreEvent);
minimapContainer.attachEvent("onkeydown", IgnoreEvent);
minimapContainer.attachEvent("onkeyup", IgnoreEvent);
minimapControl = new Msn.VE.Minimap(minimapContainer, p_this, f, h);
if (d)
minimapControl.SetClientToken(d);
var g = e || GetMapStyle() == "o" ||
$MVEM.IsEnabled(MapControl.Features.Minimap.ShowByDefault);
if (g)
minimapControl.Init();
if (typeof b != "undefined" && b != null && typeof c !=
"undefined" && c != null)
minimapControl.SetPosition(b, c);
return minimapControl;
}
function OnChangeView()
{
if (currentView.mapStyle == obliqueStyle)
{
var b = GetObliqueScene();
if (b != null && targetTool)
{
var a = Msn.VE.Geometry, e = g(p_elSource).getPagePosition(), c = new
a.Point(e.x + map.offsetLeft - originX, e.y + map.offsetTop - originY), d = 2 /
currentView.zoomLevel, h = new a.Point(c.x + b.GetWidth() / d, c.y + b.GetHeight() / d), f
= new a.Rectangle(c, h);
f.scale(- 256);
targetTool.setBoundingArea(f);
a = null;
}
b = null;
}
if (obliqueMode)
obliqueMode.UpdateAvailability();
}
function SetDefaultView()
{
var a = new Msn.VE.MapView(p_this);
a.SetCenterLatLong(new Msn.VE.LatLong(0, 0));
a.SetZoomLevel(1);
a.SetMapStyle(roadStyle);
SetBaseTileSource(a);
SetView(a);
Initialized2D = true;
}
function SetAltitude(b)
{
Sync3dView();
var a = currentView.MakeCopy();
a.SetAltitude(b);
SetView(a);
}
function SetTilt(b)
{
Sync3dView();
var a = currentView.MakeCopy();
a.SetTilt(b);
SetView(a);
}
function SetDirection(b)
{
Sync3dView();
var a = currentView.MakeCopy();
a.SetDirection(b);
SetView(a);
}
function GetCurrentMode()
{
return currentMode;
}
function GetMapWidth()
{
return width;
}
function GetMapHeight()
{
return height;
}
function SetMapHeight(a)
{
height = a;
p_this.h = a;
p_elSource.style.height = a;
}
function GetCurrentMapView()
{
return preferredView.MakeCopy();
}
function SetCenter(c,b)
{
Sync3dView();
var a = preferredView.MakeCopy();
a.SetCenterLatLong(new Msn.VE.LatLong(c, b));
SetView(a);
}
function SetCenterAccurate(c,b)
{
Sync3dView();
var a = preferredView.MakeCopy();
a.SetCenterLatLongAccurate(new Msn.VE.LatLong(c, b));
SetView(a);
}
function SetMapStyle(b,e,c,d)
{
Sync3dView();
var a = currentView.MakeCopy();
a.SetMapStyle(ValidateMapStyle(b), e, c, d);
if (currentView.mapStyle != b)
if (b == obliqueStyle)
{
Fire("onstartmapstyleoblique");
a.SetZoomLevel(1);
lastOrthoZoomLevel = currentView.zoomLevel;
lastOrthoMapStyle = currentView.mapStyle;
}
else
if (currentView.mapStyle == obliqueStyle)
{
Fire("onendmapstyleoblique");
a.SetZoomLevel(lastOrthoZoomLevel);
}
a.latlong.latitude = GetCenterLatitude();
a.latlong.longitude = GetCenterLongitude();
SetView(a);
}
function SetScaleBarDistanceUnit(a)
{
currentScaleBarUnit = a;
if (scaleBar != null)
{
scaleBar.SetDistanceUnit(a);
scaleBar.Update();
}
if (currentMode == threeDMode && spacecontrol != null)
{
if (a == null)
bUseKilometers = $MVEM.IsEnabled(MapControl.Features.ScaleBarKilometers);
else
bUseKilometers = a == Msn.VE.DistanceUnit.Kilometers;
spacecontrol.DisplayMetricUnits = bUseKilometers;
}
}
function ValidateMapStyle(a)
{
if (a == aerialStyle || a == hybridStyle || a == obliqueStyle || a == shadedStyle)
return a;
else
return roadStyle;
}
function GetCenterLatitude()
{
if (currentMode == threeDMode)
{
if (view3DCreated)
{
var a = spacecontrol.GetCenterLatitude();
return isNaN(a) ? null : a;
}
return null;
}
else
if (currentView != null && currentView != "undefined" &&
currentView.latlong != null && currentView.latlong != "undefined"
&& currentView.latlong.latitude != null && currentView.latlong.latitude !=
"undefined")
return (currentView.GetCenterLatLong()).latitude;
return null;
}
function GetCenterLongitude()
{
if (currentMode == threeDMode)
{
if (view3DCreated)
{
var a = spacecontrol.GetCenterLongitude();
return isNaN(a) ? null : a;
}
return null;
}
else
if (currentView != null && currentView != "undefined" &&
currentView.latlong != null && currentView.latlong != "undefined"
&& currentView.latlong.longitude != null && currentView.latlong.longitude
!= "undefined")
return (currentView.GetCenterLatLong()).longitude;
return null;
}
function ComputeCenterPoint(a)
{
currentView.latlong = currentMode.PixelToLatLong(currentView.center,
currentView.zoomLevel);
if (a)
preferredView.Copy(currentView);
}
function GetLatitude(c)
{
var b = new VEPixel(originX + offsetX + width / 2, originY + offsetY + c), a =
currentMode.PixelToLatLong(b, currentView.zoomLevel);
if (! a)
return null;
return a.latitude;
}
function GetLongitude(c)
{
var b = new VEPixel(originX + offsetX + c, originY + offsetY + height / 2), a =
currentMode.PixelToLatLong(b, currentView.zoomLevel);
if (! a)
return null;
return a.longitude;
}
function GetY(b)
{
var c = new Msn.VE.LatLong(b, currentView.center.longitude), a = LatLongToPixel(c);
if (! a)
return null;
return MathRound(a.y);
}
function GetX(b)
{
var c = new Msn.VE.LatLong(currentView.center.latitude, b), a = LatLongToPixel(c);
if (! a)
return null;
return MathRound(a.x);
}
function LatLongToPixel(c,a)
{
if (a == null || typeof a == "undefined")
a = currentView.zoomLevel;
var b = currentMode.LatLongToPixel(c, a);
if (b != null)
if (currentMode != threeDMode)
{
b.x -= originX + offsetX;
b.y -= originY + offsetY;
}
return b;
}
function LatLongToPixelAsync(c,a,d)
{
if (a == null || typeof a == "undefined")
a = currentView.zoomLevel;
var b = (function (a)
{
if (a != null && typeof a != "undefined" && currentMode !=
threeDMode)
for (var b = 0;b < a.length;++b)
if (a[b] != null)
{
a[b].x -= originX + offsetX;
a[b].y -= originY + offsetY;
}
d(a);
}
);
currentMode.LatLongToPixelAsync(c, a, b);
}
function PixelToLatLong(b,a)
{
if (a == null || typeof a == "undefined")
a = currentView.zoomLevel;
var c = new VEPixel(b.x + originX + offsetX, b.y + originY + offsetY);
return currentMode.PixelToLatLong(c, a);
}
function PixelToLatLongAsync(c,b,e)
{
if (b == null || typeof b == "undefined")
b = currentView.zoomLevel;
var d = [];
for (var a = 0;a < c.length;++a)
d[a] = new VEPixel(c[a].x + originX + offsetX, c[a].y + originY + offsetY);
currentMode.PixelToLatLongAsync(d, b, e);
}
function GetZoomLevel()
{
return currentView.zoomLevel;
}
function GetMapStyle()
{
return currentView.mapStyle;
}
function GetMapMode()
{
var a = Msn.VE.MapActionMode.ModeUnknown;
if (currentMode != null)
if (currentMode == threeDMode)
a = Msn.VE.MapActionMode.Mode3D;
else
if (currentMode == orthoMode)
a = Msn.VE.MapActionMode.Mode2D;
else
if (currentMode == obliqueMode)
a = Msn.VE.MapActionMode.ModeOblique;
return a;
}
function GetMode()
{
var a = Msn.VE.MapActionMode.ModeUnknown;
if (currentMode != null)
if (currentMode == threeDMode)
a = Msn.VE.MapActionMode.Mode3D;
else
if (currentMode == orthoMode)
a = Msn.VE.MapActionMode.Mode2D;
else
if (currentMode == obliqueMode)
if (this.GetDashboard().GetMode() == 1)
a = Msn.VE.MapActionMode.Mode2D;
else
a = Msn.VE.MapActionMode.Mode3D;
return a;
}
function GetAltitude()
{
return currentView.GetAltitude();
}
function GetTilt()
{
return currentView.GetTilt();
}
function GetDirection()
{
return currentView.GetDirection();
}
function EnableMode(b,a)
{
switch (b)
{
case Msn.VE.MapActionMode.Mode3D:
this._Enable3DMode(a);
break ;
case Msn.VE.MapActionMode.Mode2D:
default:
this._Disable3DMode(a);
UnHidePins();
}
}
function _Enable3DMode(a)
{
if (currentMode != threeDMode && currentMode != null)
{
VE_3DPhotoPluginObj = 0;
VE_3DGeoCommunityPluginObj = 0;
PluginEventRegistered = 0;
PhotoPluginEventRegistered = 0;
GeoCommunityPluginEventRegistered = 0;
previousMode = currentMode;
currentMode = threeDMode;
this.Destroy2DOnly();
if (typeof a != "undefined")
init3dparam = a;
this.Init3DOnly();
}
}
function _Disable3DMode(a)
{
if (currentMode == threeDMode && currentMode != null)
{
previousMode = currentMode;
currentMode = orthoMode;
this.Destroy3DOnly();
this.Init2DOnly(a);
}
}
function ControlReady()
{
return IsModeEnabled(Msn.VE.MapActionMode.Mode2D) ||
IsModeEnabled(Msn.VE.MapActionMode.Mode3D) && Get3DControl() != null;
}
function Get3DControl()
{
if (view3DCreated)
return spacecontrol;
return null;
}
function IsModeEnabled(b)
{
var a = currentMode != null && currentMode == threeDMode;
switch (b)
{
case Msn.VE.MapActionMode.Mode2D:
return ! a;
break ;
case Msn.VE.MapActionMode.Mode3D:
return a;
}
return false;
}
function Get3DVisibleArea(acceptRegionAroundCenter)
{
if (! view3DCreated)
return null;
var lat1, lon1, lat2, lon2, lat3, lon3, lat4, lon4, aroundcenter, ret =
spacecontrol.QueryRegion();
eval(ret);
if ((acceptRegionAroundCenter == "undefined" || acceptRegionAroundCenter ==
false) && aroundcenter == 1)
return null;
var points = [];
points.push(new Msn.VE.LatLong(lat1, lon1));
points.push(new Msn.VE.LatLong(lat2, lon2));
points.push(new Msn.VE.LatLong(lat3, lon3));
points.push(new Msn.VE.LatLong(lat4, lon4));
return points;
}
function Show3DTraffic(a)
{
if (view3DCreated)
if (! traffic3dAdded || a)
{
spacecontrol.AddImageSource("Terrain", "Traffic",
GetManifestUrl("http://go.microsoft.com/fwlink/?LinkID=98777"), 1, 0.6);
traffic3dAdded = true;
}
}
function Remove3DTraffic()
{
if (view3DCreated && traffic3dAdded)
{
spacecontrol.RemoveImageSource("Terrain", "Traffic");
traffic3dAdded = false;
}
}
function Sync3dView()
{
if (spacecontrol && spaceCameraIsFlying)
spacecontrol.RaiseCameraChangedEvent();
}
function OnBeginCameraUpdate()
{
cameraUpdateCount++;
spaceCameraIsFlying = true;
}
function OnEndCameraUpdate()
{
spaceCameraIsFlying = false;
}
function IsCameraFlying()
{
return spaceCameraIsFlying;
}
function GetMetersPerPixel(b,a)
{
if (! b)
b = currentView.latlong.latitude;
if (! a)
a = currentView.zoomLevel;
return Math.cos(DegToRad(b)) * currentMode.MetersPerPixel(a);
}
function Fill()
{
var b = g(p_elSource).getStyle("width"), a =
g(p_elSource).getStyle("height"), f = parseInt(b) - width, h = parseInt(a) -
height;
if (! /px$/.test(b))
width = p_elSource.clientWidth || p_elSource.offsetWidth;
else
width = parseInt(b);
if (! /px$/.test(a))
height = p_elSource.clientHeight || p_elSource.offsetHeight;
else
height = parseInt(a);
if (! panning)
if (currentMode != threeDMode)
{
panning = true;
var e = g(map).getComputedPosition(), c = {x : e.x + f / 2, y : e.y + h / 2};
offsetX = - c.x;
offsetY = - c.y;
var d = new VEPixel(width / 2 + originX + offsetX, height / 2 + originY +
offsetY);
currentView.SetCenter(d);
preferredView.SetCenter(new VEPixel(d.x, d.y));
window.setTimeout(tileLayerManager.PanView, 1);
g(map).slideToPoint(c, "quickly", "MAP_SLIDE", (function ()
{
panning = false;
}
), Gimme.Animation.AccelerationLines.quickStartDecelerate);
}
else
PanToView(currentView);
}
function Resize(b,a)
{
if (resizeTimer != null && typeof resizeTimer == "number")
window.clearTimeout(resizeTimer);
p_this.w = b;
p_this.h = a;
resizeTimer = window.setTimeout(p_this.FireResize, 250);
}
function IsObliqueAvailable()
{
return obliqueMode ? obliqueMode.IsAvailable() : false;
}
function GetObliqueScene()
{
return obliqueMode ? obliqueMode.GetScene() : null;
}
function SetAnimationEnabled(a)
{
animatedMovementEnabled = a;
}
function IsAnimationEnabled()
{
return animatedMovementEnabled && currentMode != threeDMode;
}
function SetObliqueScene(a)
{
if (obliqueMode)
SetMapStyle(obliqueStyle, a, null);
}
function SetObliqueLocation(e,b,c,d)
{
if (obliqueMode)
{
Sync3dView();
var a = currentView.MakeCopy();
a.SetMapStyle(obliqueStyle, null, b);
a.SetZoomLevel(c);
if (currentView.mapStyle != obliqueStyle)
{
Fire("onstartmapstyleoblique");
lastOrthoZoomLevel = currentView.zoomLevel;
lastOrthoMapStyle = currentView.mapStyle;
}
a.SetCenterLatLong(e);
a.callback = d;
SetView(a);
}
}
function SetObliqueOrientation(b,a)
{
if (obliqueMode)
SetMapStyle(obliqueStyle, null, b, a);
}
function Debug(a)
{
debug = a;
}
function GetMapLegend()
{
return mapLegend;
}
function SetFocus()
{
if (currentMode == threeDMode)
spacecontrol.Focus();
else
keyboard.focus();
}
function StopKeyboardPan()
{
if (panning && keyboardPan)
StopContinuousPan();
}
function UpdatePreferredView()
{
preferredView.Copy(currentView);
}
function GetCenterOffset()
{
if (currentMode != null && currentMode == threeDMode)
return new VEPixel(0, 0);
return mapCenterOffset;
}
function SetCenterOffset(a)
{
if (typeof a != "undefined" && a != null)
mapCenterOffset = a;
}
function GetLastViewChangeType()
{
var a = lastViewChangeType;
lastViewChangeType = null;
return a;
}
function ShowNonIENotSupportedDialog()
{
Fire("onerror", CreateEvent(currentView.latlong, currentView.zoomLevel,
L_BrowserNotSupported_Text.replace(/%1/g, "<a href=\"" +
L_SupportedBrowserDownloadUrl_Text + "\"
target=\"_blank\">").replace(/%3/g,
L_SupportedBrowserDownloadUrl_Text).replace(/%2/g, "</a>")));
}
function DelayedHWDialog()
{
ShowMessage(L_NoHardwareAcceleration_Text);
}
function SetShowMapModeSwitch(a)
{
if (dashboard && dashboard.constructor == Msn.VE.NavAction)
dashboard.SetShowMapModeSwitch(a);
}
function SetTilePixelBuffer(a)
{
buffer = a < maxTilePixelBuffer ? a : maxTilePixelBuffer;
}
function SetClientToken(a)
{
m_clientToken = a;
if (tileLayerManager)
{
tileLayerManager.SetClientToken(mapTiles, m_clientToken);
tileLayerManager.SetClientToken(trafficTiles, m_clientToken);
}
if (minimapControl)
minimapControl.SetClientToken(m_clientToken);
if (obliqueMode)
obliqueMode.SetClientToken(m_clientToken);
}
function GetTopPx()
{
if (typeof p_elSource != "undefined" && p_elSource != null)
return (g(p_elSource).getPagePosition()).y;
else
return 0;
}
function GetLeftPx()
{
if (typeof p_elSource != "undefined" && p_elSource != null)
return (g(p_elSource).getPagePosition()).x;
else
return 0;
}
function GetObliqueAvailability(b,a)
{
if (obliqueMode)
obliqueMode.GetObliqueAvailability(b, a);
else
if (typeof a == "function")
a(false);
}
function GetMapSurface()
{
return map;
}
function ClipView(b,c)
{
var a = ShiftView(b, c, 0, 0);
if (typeof a != "undefined" && a != null)
b.SetCenter(new VEPixel(b.center.x + a.x, b.center.y + a.y));
}
function ShiftView(b,a,c,d)
{
if (b != null && b.center != null && a != null && a !=
"undefined")
{
c = ClipDelta(c, width, b.center.x - width / 2, b.zoomLevel, a.z1, a.x1, a.x2,
b.mapStyle);
d = ClipDelta(d, height, b.center.y - height / 2, b.zoomLevel, a.z1, a.y1, a.y2,
b.mapStyle);
return new VEPixel(c, d);
}
}
function ClipDelta(a,b,d,g,f,i,h,j)
{
var c = tileSize * i * Math.pow(2, g - f), e = tileSize * h * Math.pow(2, g - f);
if (j == obliqueStyle)
{
c -= Math.ceil(b / 2);
e += Math.ceil(b / 2);
}
if (b > e - c)
a = (e - c - b) / 2 - d + c;
else
if (d + a < c)
a = c - d;
else
if (d + b + a > e)
a = e - d - b;
return a;
}
function VECopyrightTableEntry(b,a,e,f,c,d)
{
this.MinZoomLevel = b;
this.MaxZoomLevel = a;
this.MinLatitude = e;
this.MinLongitude = f;
this.MaxLatitude = c;
this.MaxLongitude = d;
}
function VECopyrightTable()
{
var b = [];
b[Msn.VE.MapStyle.Oblique] = [L_MapControlImageCourtesyOfPictometry_Text,
L_MapControlImageCourtesyOfBlom_Text];
b[Msn.VE.MapStyle.Road] = [L_MapControlNavteq_Text,
L_MapControlImageCourtesyOfAND_Text, L_MapControlImageCourtesyOfMapDataSciences_Text,
L_MapControlImageCourtesyOfZenrin_Text, L_MapControlImageCourtesyOfIntermap_Text];
b[Msn.VE.MapStyle.Aerial] = [L_MapControlImageCourtesyOfNASA_Text,
L_MapControlHarrisCorp_Text, L_MapControlImageCourtesyOfUSGS_Text,
L_MapControlImageCourtesyOfEarthData_Text, L_MapControlImageCourtesyOfGetmapping_Text,
L_MapControlImageCourtesyOfGeoEye_Text, L_MapControlImageCourtesyOfPasco_Text,
L_MapControlImageCourtesyOfIntergraph_Text, L_MapControlImageCourtesyOfTerraItaly_Text,
L_MapControlImageCourtesyOfIntermap_Text, L_MapControlImageCourtesyOfIndianaMap_Text,
L_MapControlImageCourtesyOfStateOfNevada_Text];
var a = [];
a[Msn.VE.MapStyle.Oblique] = [];
a[Msn.VE.MapStyle.Oblique][L_MapControlImageCourtesyOfPictometry_Text] = [];
a[Msn.VE.MapStyle.Oblique][L_MapControlImageCourtesyOfBlom_Text] = [];
a[Msn.VE.MapStyle.Road] = [];
a[Msn.VE.MapStyle.Road][L_MapControlNavteq_Text] = [];
a[Msn.VE.MapStyle.Road][L_MapControlImageCourtesyOfAND_Text] = [];
a[Msn.VE.MapStyle.Road][L_MapControlImageCourtesyOfMapDataSciences_Text] = [];
a[Msn.VE.MapStyle.Road][L_MapControlImageCourtesyOfZenrin_Text] = [];
a[Msn.VE.MapStyle.Road][L_MapControlImageCourtesyOfIntermap_Text] = [];
a[Msn.VE.MapStyle.Aerial] = [];
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfNASA_Text] = [];
a[Msn.VE.MapStyle.Aerial][L_MapControlHarrisCorp_Text] = [];
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfUSGS_Text] = [];
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfEarthData_Text] = [];
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfGetmapping_Text] = [];
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfGeoEye_Text] = [];
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfPasco_Text] = [];
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfIntergraph_Text] = [];
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfTerraItaly_Text] = [];
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfIntermap_Text] = [];
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfIndianaMap_Text] = [];
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfStateOfNevada_Text] = [];
a[Msn.VE.MapStyle.Oblique][L_MapControlImageCourtesyOfPictometry_Text].push(new
VECopyrightTableEntry(1, 20, 24, - 125, 49, - 66));
a[Msn.VE.MapStyle.Oblique][L_MapControlImageCourtesyOfBlom_Text].push(new
VECopyrightTableEntry(1, 20, 34, - 13, 72, 35));
a[Msn.VE.MapStyle.Road][L_MapControlNavteq_Text].push(new VECopyrightTableEntry(1, 9,
- 90, - 180, 90, 180));
a[Msn.VE.MapStyle.Road][L_MapControlNavteq_Text].push(new VECopyrightTableEntry(10,
19, 16, - 180, 90, - 50));
a[Msn.VE.MapStyle.Road][L_MapControlNavteq_Text].push(new VECopyrightTableEntry(10,
19, 27, - 32, 40, - 13));
a[Msn.VE.MapStyle.Road][L_MapControlNavteq_Text].push(new VECopyrightTableEntry(10,
19, 35, - 11, 72, 20));
a[Msn.VE.MapStyle.Road][L_MapControlNavteq_Text].push(new VECopyrightTableEntry(10,
19, 21, 20, 72, 32));
a[Msn.VE.MapStyle.Road][L_MapControlNavteq_Text].push(new VECopyrightTableEntry(10,
17, 21.92, 113.14, 22.79, 114.52));
a[Msn.VE.MapStyle.Road][L_MapControlNavteq_Text].push(new VECopyrightTableEntry(10,
17, 21.73, 119.7, 25.65, 122.39));
a[Msn.VE.MapStyle.Road][L_MapControlNavteq_Text].push(new VECopyrightTableEntry(10,
17, 0, 98.7, 8, 120.17));
a[Msn.VE.MapStyle.Road][L_MapControlNavteq_Text].push(new VECopyrightTableEntry(10,
17, 0.86, 103.2, 1.92, 104.45));
a[Msn.VE.MapStyle.Road][L_MapControlImageCourtesyOfAND_Text].push(new
VECopyrightTableEntry(10, 19, - 90, - 180, 90, 180));
a[Msn.VE.MapStyle.Road][L_MapControlImageCourtesyOfMapDataSciences_Text].push(new
VECopyrightTableEntry(5, 17, - 45, 111, - 9, 156));
a[Msn.VE.MapStyle.Road][L_MapControlImageCourtesyOfMapDataSciences_Text].push(new
VECopyrightTableEntry(5, 17, - 49.7, 164.42, - 30.82, 180));
a[Msn.VE.MapStyle.Road][L_MapControlImageCourtesyOfZenrin_Text].push(new
VECopyrightTableEntry(4, 18, 23.5, 122.5, 46.65, 151.66));
a[Msn.VE.MapStyle.Road][L_MapControlImageCourtesyOfIntermap_Text].push(new
VECopyrightTableEntry(1, 21, 49, - 11, 60, 2));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfNASA_Text].push(new
VECopyrightTableEntry(1, 8, - 90, - 180, 90, 180));
a[Msn.VE.MapStyle.Aerial][L_MapControlHarrisCorp_Text].push(new
VECopyrightTableEntry(9, 13, - 90, - 180, 90, 180));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfUSGS_Text].push(new
VECopyrightTableEntry(14, 19, 17.99, - 150.11, 61.39, - 65.57));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfEarthData_Text].push(new
VECopyrightTableEntry(14, 19, 21.25, - 158.3, 21.72, - 157.64));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfEarthData_Text].push(new
VECopyrightTableEntry(14, 19, 39.99, - 80.53, 40.87, - 79.43));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfEarthData_Text].push(new
VECopyrightTableEntry(14, 19, 34.86, - 90.27, 35.39, - 89.6));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfGetmapping_Text].push(new
VECopyrightTableEntry(14, 19, 49.94, - 6.35, 58.71, 1.78));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfGeoEye_Text].push(new
VECopyrightTableEntry(14, 17, 44.43, - 63.75, 45.06, - 63.45));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfGeoEye_Text].push(new
VECopyrightTableEntry(14, 17, 45.39, - 73.78, 45.66, - 73.4));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfGeoEye_Text].push(new
VECopyrightTableEntry(14, 17, 45.2, - 75.92, 45.59, - 75.55));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfGeoEye_Text].push(new
VECopyrightTableEntry(14, 17, 42.95, - 79.81, 44.06, - 79.42));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfGeoEye_Text].push(new
VECopyrightTableEntry(14, 17, 50.35, - 114.26, 51.25, - 113.82));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfGeoEye_Text].push(new
VECopyrightTableEntry(14, 17, 48.96, - 123.33, 49.54, - 122.97));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfGeoEye_Text].push(new
VECopyrightTableEntry(14, 17, - 35.42, 138.32, - 34.47, 139.07));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfGeoEye_Text].push(new
VECopyrightTableEntry(14, 17, - 32.64, 115.58, - 32.38, 115.85));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfGeoEye_Text].push(new
VECopyrightTableEntry(14, 17, - 34.44, 150.17, - 33.27, 151.49));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfGeoEye_Text].push(new
VECopyrightTableEntry(14, 17, - 28.3, 152.62, - 26.94, 153.64));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfPasco_Text].push(new
VECopyrightTableEntry(14, 17, 23.5, 122.5, 46.65, 151.66));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfIntergraph_Text].push(new
VECopyrightTableEntry(14, 19, 47, 5, 55.5, 16));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfTerraItaly_Text].push(new
VECopyrightTableEntry(14, 21, 43.15, 6.5, 47.15, 14));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfTerraItaly_Text].push(new
VECopyrightTableEntry(14, 21, 41.3, 9.9, 43.15, 16.4));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfTerraItaly_Text].push(new
VECopyrightTableEntry(14, 21, 36.5, 7.9, 41.3, 18.7));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfIntermap_Text].push(new
VECopyrightTableEntry(1, 21, 49, - 11, 60, 2));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfIndianaMap_Text].push(new
VECopyrightTableEntry(14, 19, 37.7, - 88.2, 41.9, - 84.7));
a[Msn.VE.MapStyle.Aerial][L_MapControlImageCourtesyOfStateOfNevada_Text].push(new
VECopyrightTableEntry(14, 17, 34.85, - 120.2, 42.12, - 113.91));
this.CreditsFor = (function (c,k,l,j)
{
var g = [];
if (c != "undefined" && c != null && typeof b[c] !=
"undefined" && b[c] != null)
{
var m = b[c].length;
for (var e = 0;e < m;++e)
{
var h = b[c][e], f = a[c][h], i = f.length;
for (var d = 0;d < i;++d)
if (f[d].IsMatch(k, l, j))
{
g.push(h);
break ;
}
}
}
return g;
}
);
this.CreditsForView = (function (a)
{
var b = [];
b.push(L_MapCopyrightMicrosoft);
if (a.mapStyle == Msn.VE.MapStyle.Hybrid)
{
b = b.concat(this.CreditsFor(Msn.VE.MapStyle.Road, a.zoomLevel, a.latlong.latitude,
a.latlong.longitude));
b = b.concat(this.CreditsFor(Msn.VE.MapStyle.Aerial, a.zoomLevel,
a.latlong.latitude, a.latlong.longitude));
}
else
b = b.concat(this.CreditsFor(a.mapStyle, a.zoomLevel, a.latlong.latitude,
a.latlong.longitude));
if (view3DCreated && a.mapStyle != Msn.VE.MapStyle.Oblique &&
photoplugin3dActive)
b = b.concat(this.CreditsFor(Msn.VE.MapStyle.Oblique, a.zoomLevel, a.latlong.latitude,
a.latlong.longitude));
if (VE_TrafficManager.turnedOn)
{
var d = false;
for (var c = 0;c < b.length;c++)
if (b[c] == L_MapControlNavteq_Text)
{
d = true;
b.splice(c + 1, 0, L_MapCopyrightTraffic);
break ;
}
if (! d)
b.push(L_MapCopyrightTraffic);
}
return b;
}
);
}
function Copyright(f)
{
function e()
{
var e = 0;
if (c && c.style.display !== "none")
{
var h = parseInt(g(c).getStyle("height")), f =
parseInt(c.style.bottom);
e += (isNaN(h) ? 0 : h) + (isNaN(f) ? 0 : f);
}
d.style.bottom = e + "px";
a.style.bottom = e + 1 + "px";
if (b)
window.setTimeout(b.Reposition, 1);
}
function j()
{
var g = g_sVECopyrightTable.CreditsForView(currentView), c = "", f =
"";
for (var b = 0;b < g.length;++b)
{
if (b > 0)
if (b == 2)
c += "\n";
else
c += " ";
f += "<span>" + g[b] + "</span> ";
c += g[b];
}
if (view3DCreated)
spacecontrol.SetCopyrightString(c);
d.innerHTML = f;
a.innerHTML = f;
e();
}
function i()
{
e();
}
function k(c)
{
b = c;
if (b)
b.SetPinElement(a);
}
function h(a)
{
c = a;
e();
}
var d = document.createElement("div"), a =
document.createElement("div"), c = null, b = null;
this.Show = (function ()
{
f.appendChild(d);
f.appendChild(a);
}
);
this.Hide = (function ()
{
try
{
f.removeChild(d);
f.removeChild(a);
}
catch (b)
{}
}
);
this.Init = (function ()
{
d.className = "MSVE_Copyright MSVE_CopyrightBackground";
a.className = "MSVE_Copyright MSVE_CopyrightForeground";
e();
this.Show();
}
);
this.Destroy = (function ()
{
this.Hide();
c = null;
b = null;
d = a = null;
}
);
this.Reposition = e;
this.Update = j;
this.SetOffset = i;
this.PinTo = k;
this.SetPinElement = h;
}
function MapEvent(f,d,e,a,c,b,g)
{
this.view = f;
this.oblique = d;
this.error = e;
this.requestedView = a;
this.elementID = c;
this.mouseButton = b;
this.e = g;
}
function CreateEvent(b,f,c,d,e,n,g,h)
{
var a = currentView.MakeCopy();
if (b != null && b instanceof Msn.VE.LatLong)
{
if (Msn.VE.API != null)
{
var m = new VELatLongFactory(new VELatLongFactorySpecFromMapView(a));
a.LatLong = m.CreateVELatLong(b.latitude, b.longitude);
a.latlong = b;
}
else
a.latlong = b;
if (typeof g != "undefined" && g != null)
a.altitude = parseFloat(g);
}
if (f != null && typeof f == "number")
a.zoomLevel = f;
if (c == null || typeof c == "undefined")
c = "";
var j = null;
if (obliqueMode)
j = obliqueMode.GetEventInfo();
var i = null;
if (d != null && d instanceof Msn.VE.MapView)
i = d.MakeCopy();
var k = null;
if (typeof e != "undefined" && e != null)
k = e;
var l = null;
if (typeof h != "undefined" && h != null)
l = h;
return new MapEvent(a, j, c, i, k, n, l);
}
function CreateCustomEvent(h,b,d)
{
var a = new MapEvent();
if (d)
a.error = d.error;
a.eventName = h;
a.zoomLevel = currentView.zoomLevel;
a.mapStyle = currentView.mapStyle;
if (currentMode != threeDMode)
{
a.birdseyeSceneID = currentView.sceneId;
a.birdseyeSceneOrientation = currentView.sceneOrientation;
if (b)
{
a.leftMouseButton = IsLeftMouseButton(b);
a.rightMouseButton = IsRightMouseButton(b);
a.middleMouseButton = IsMiddleMouseButton(b);
a.mouseWheelChange = GetMouseScrollDelta(b);
a.screenX = b.screenX;
a.screenY = b.screenY;
var e = Gimme.Screen.getMousePosition(b);
a.clientX = e.x;
a.clientY = e.y;
var f = g(p_elSource).getPagePosition();
a.mapX = a.clientX - f.x;
a.mapY = a.clientY - f.y;
a.keyCode = b.keyCode;
a.altKey = b.altKey;
a.ctrlKey = b.ctrlKey;
a.shiftKey = b.shiftKey;
a.elementID = null;
var c = GetTarget(b);
while (typeof c != "undefined" && c != null)
if (typeof c.id != "undefined" && c.id != null &&
c.id.indexOf(MC_IID_NAMESPACE) == 0)
{
a.elementID = c.id;
break ;
}
else
if (typeof c.className != "undefined" && c.className !=
null && c.className == "MSVE_MapContainer")
break ;
else
c = c.parentElement;
}
}
else
if (d)
{
if (d.view)
a.latLong = d.view.LatLong;
else
a.latLong = null;
a.elementID = d.elementID;
a.leftMouseButton = d.mouseButton == "Left";
a.rightMouseButton = d.mouseButton == "Right";
a.middleMouseButton = d.mouseButton == "Middle";
a.mouseWheelChange = 0;
a.keyCode = 0;
a.altKey = false;
a.ctrlKey = false;
a.shiftKey = false;
}
return a;
}
function AttachEvent(d,c)
{
var a = defaultEventTable[d];
if (! a)
{
a = [];
defaultEventTable[d] = a;
}
for (var b = 0;b < a.length;b++)
if (a[b] == c)
return true;
a.push(c);
}
function DetachEvent(d,c)
{
var a = defaultEventTable[d];
if (! a)
return ;
for (var b = 0;b < a.length;b++)
if (a[b] == c)
a.splice(b, 1);
}
function AttachCustomEvent(d,c)
{
var a = customEventTable[d];
if (! a)
{
a = [];
customEventTable[d] = a;
}
for (var b = 0;b < a.length;b++)
if (a[b] == c)
return true;
a.push(c);
}
function DetachCustomEvent(d,c)
{
var a = customEventTable[d];
if (a)
for (var b = 0;b < a.length;b++)
if (a[b] == c)
a.splice(b, 1);
}
function IsEventAttached(a)
{
var b = customEventTable[a], c = defaultEventTable[a];
return c != null || b != null;
}
function Fire(b,a)
{
FireCustomEvent(b, a);
FireDefaultEvent(b, a);
}
function FireDefaultEvent(d,b)
{
var a = defaultEventTable[d];
if (! b)
b = CreateEvent();
if (a)
for (var c = 0;c < a.length;c++)
a[c](b);
}
function FireCustomEvent(d,a)
{
var b = false, c = customEventTable[d];
if (c)
{
var f = window.event;
if (a && MapEvent.prototype.isPrototypeOf(a))
a = CreateCustomEvent(d, f, a);
else
a = CreateCustomEvent(d, f, null);
for (var e = 0;e < c.length;e++)
b = b | c[e](a);
}
return b;
}
function DisposeAllCustomEvent()
{
while (customEventTable.length)
{
var a = customEventTable.pop();
while (a.length)
a.pop();
a = null;
}
}
function DestroyEventTable()
{
while (defaultEventTable.length)
{
var a = defaultEventTable.pop();
while (a.length)
a.pop();
a = null;
}
defaultEventTable = null;
DisposeAllCustomEvent();
customEventTable = null;
}
function KeyDown(c)
{
if (isMinimap)
return false;
c = GetEvent(c);
if (FireCustomEvent("onkeydown", c))
return false;
var e = c.ctrlKey ? 5 : 1, d = keyboardPanSpeed * e, a = panningX, b = panningY;
switch (c.keyCode)
{
case 9:
case 17:
case 18:
if (panning && keyboardPan)
StopContinuousPan();
return true;
case 37:
a = - d;
break ;
case 38:
b = - d;
break ;
case 39:
a = d;
break ;
case 40:
b = d;
break ;
case 107:
case 187:
case 61:
case 43:
a = 0;
b = 0;
$VE_A.Log($VE_A.PgName.Map, "Zoom", "Keyboard");
ZoomIn();
break ;
case 109:
case 189:
a = 0;
b = 0;
$VE_A.Log($VE_A.PgName.Map, "Zoom", "Keyboard");
ZoomOut();
break ;
case 65:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Aerial))
{
a = 0;
b = 0;
$VE_A.Log($VE_A.PgName.Map, "MapStyleAerial",
"Keyboard");
SetMapStyle(aerialStyle);
}
break ;
case 72:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Hybrid))
{
a = 0;
b = 0;
$VE_A.Log($VE_A.PgName.Map, "MapStyleHybrid",
"Keyboard");
SetMapStyle(hybridStyle);
}
break ;
case 82:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Road))
{
a = 0;
b = 0;
$VE_A.Log($VE_A.PgName.Map, "MapStyleRoad", "Keyboard");
SetMapStyle(roadStyle);
}
break ;
case 66:
case 79:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.BirdsEye))
if (obliqueMode && obliqueMode.IsAvailable())
{
a = 0;
b = 0;
$VE_A.Log($VE_A.PgName.Map, "MapStyleOblique",
"Keyboard");
SetMapStyle(obliqueStyle);
}
break ;
case 51:
case 99:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.View3D))
{
$VE_A.Log($VE_A.PgName.Map, "Mode3D", "Keyboard");
p_this.EnableMode(Msn.VE.MapActionMode.Mode3D);
}
}
if (a || b)
ContinuousPan(a, b, null, true);
FireDefaultEvent("onkeydown");
return false;
}
function KeyUp(a)
{
a = GetEvent(a);
if (FireCustomEvent("onkeyup", a))
return false;
var b = panningX, c = panningY, d = true;
switch (a.keyCode)
{
case 37:
b = 0;
break ;
case 38:
c = 0;
break ;
case 39:
b = 0;
break ;
case 40:
c = 0;
break ;
default:
d = false;
}
if (d)
{
ContinuousPan(b, c, null, true);
$VE_A.Log($VE_A.PgName.Map, "PAN", "Keyboard");
}
if (FireCustomEvent("onkeypress", a))
return false;
}
function AddLine(h,f,g,l,n,m,a,d,i,k,j)
{
if (h == null || f == null || g == null || a == null || d == null)
return null;
var e = [];
for (var b = 0;b < a.length;b++)
e.push(BuildRegionHeap(a[b], 0, a[b].length - 1));
var c = new Line();
c.Init(h, f, g, l, n, m, e, d, i, k, j);
lines.push(c);
return c;
}
function RemoveLine(c)
{
for (var a = 0;a < lines.length;a++)
{
var b = lines[a];
if (b.id == c)
{
lines.splice(a, 1);
b.Destroy();
return ;
}
}
}
function ClearLines()
{
while (lines.length > 0)
lines.pop().Destroy();
}
function ShowLines()
{
graphicCanvas.Clear();
for (var a = 0;a < lines.length;a++)
{
lines[a].StartLine();
lines[a].Show();
}
}
function HideLines()
{
for (var a = 0;a < lines.length;a++)
{
lines[a].Hide();
lines[a].RemoveFromMap();
}
}
function UpdateLines()
{
if (typeof graphicCanvas === "object" && graphicCanvas !== null)
graphicCanvas.Clear();
if (! document.all)
currentView.GetMap().resetSvgLayer();
for (var a = 0;a < lines.length;a++)
lines[a].UpdateLine();
}
function BuildRegionHeap(f,e,g)
{
var h = g - e + 1;
if (h < 1)
return null;
else
if (h == 1)
return f[e];
var d = null, c = null;
if (h == 2)
{
d = f[e];
c = f[g];
}
else
{
var i = Math.round((e + g) / 2);
d = BuildRegionHeap(f, e, i);
c = BuildRegionHeap(f, i + 1, g);
}
if (d != null && c != null)
{
var b = d.boundingRectangle, a = c.boundingRectangle, l = b[0].latitude >
a[0].latitude ? b[0].latitude : a[0].latitude, k = b[0].longitude > a[0].longitude ?
b[0].longitude : a[0].longitude, m = b[1].latitude < a[1].latitude ? b[1].latitude :
a[1].latitude, n = b[1].longitude < a[1].longitude ? b[1].longitude : a[1].longitude, j
= [new Msn.VE.LatLong(l, k), new Msn.VE.LatLong(m, n)];
return new Msn.VE.LineRegion(j, null, [d, c]);
}
else
if (d != null)
return d;
else
if (c != null)
return c;
return null;
}
function Line()
{
function F(m,u,C,c,j,k,p,s,l,f,o)
{
if (! c)
c = t;
if (! j)
j = v;
if (! k)
k = defaultZIndex;
if (! f)
f = w;
n = o;
this.id = m;
e = m;
if (l)
d.linejoin = l;
A = c + "pt";
i = j;
r = k;
a = u;
b = C;
g = s;
h = p;
y = a[0];
x = b[0];
B = a[(a.length - 1)];
z = b[(b.length - 1)];
d.color = i;
d.width = c;
d.linecap = f;
q();
if (! IsDrivingEventAttached)
{
AttachEvent("onstartzoom", HideLines);
AttachEvent("onchangeview", UpdateLines);
IsDrivingEventAttached = true;
}
this._Draw3D();
AttachEvent("oninitmode", this._Draw3D);
}
function E()
{
if (view3DCreated)
spacecontrol.DeleteGeometry(0, e);
DetachEvent("oninitmode", this._Draw3D);
m();
a = b = h = c = null;
}
function m()
{
if (graphicCanvas)
graphicCanvas.Clear();
}
function G()
{
if (! f)
{
j();
return ;
}
if (c)
c.style.display = "block";
}
function j()
{
if (c)
c.style.display = "none";
}
function u(a)
{
f = a;
if (! f)
j();
}
function q()
{
l();
o();
}
function D()
{
l();
o();
}
function l()
{
var a = height < 900 ? 900 : height, b = width < 900 ? 900 : width;
northLatitude = GetLatitude(- 0.5 * a);
southLatitude = GetLatitude(1.5 * a);
westLongitude = GetLongitude(- 0.5 * b);
eastLongitude = GetLongitude(1.5 * b);
}
function o()
{
if (currentView.mapStyle == obliqueStyle)
{
graphicCanvas.Clear();
return ;
}
if (view3DCreated)
return ;
var b = [], a = g.length - 1;
while (g[a] < currentView.zoomLevel && a >= 0)
a--;
k(h[a], b);
C(b);
}
function k(f,c)
{
if (s(f.boundingRectangle[0], f.boundingRectangle[1]))
return ;
if (f.childRegions != null)
for (var j = 0;j < f.childRegions.length;j++)
k(f.childRegions[j], c);
else
{
var h = f.indices, e = new Msn.VE.LatLong(a[h[0]], b[h[0]]), d, g = false;
if (p(e.latitude, e.longitude))
{
c.push(e.longitude);
c.push(e.latitude);
g = true;
}
for (var i = 1;i < h.length;i++)
{
d = new Msn.VE.LatLong(a[h[i]], b[h[i]]);
if (p(d.latitude, d.longitude))
{
if (! g)
{
c.push(e.longitude);
c.push(e.latitude);
}
g = true;
c.push(d.longitude);
c.push(d.latitude);
}
else
if (g)
{
g = false;
c.push(d.longitude);
c.push(d.latitude);
}
e = d;
}
}
}
function C(g)
{
if (! graphicCanvas)
return ;
var a = new Msn.Drawing.PolyLine(g);
a.id = e;
var b = VE_LatLongThreshold.UseThreshold;
VE_LatLongThreshold.UseThreshold = false;
graphicCanvas.SetZIndex(r);
graphicCanvas.SetStroke(d);
graphicCanvas.DrawPrimitive(a, n);
VE_LatLongThreshold.UseThreshold = b;
c = $ID(e);
if (f)
c.style.display = "block";
else
c.style.display = "none";
}
function p(a,b)
{
return a >= southLatitude && a <= northLatitude && b >=
westLongitude && b <= eastLongitude;
}
function s(a,b)
{
return a.latitude > northLatitude && b.latitude > northLatitude ||
a.latitude < southLatitude && b.latitude < southLatitude || a.longitude >
eastLongitude && b.longitude > eastLongitude || a.longitude < westLongitude
&& b.longitude < westLongitude;
}
var t = 5, v = new Msn.Drawing.Color(0, 169, 235, 0.7), w = "Solid", d = new
Msn.Drawing.Stroke(), H = 4, c = null, e = "", f = true, A = "", i =
"", r = 0, y = 0, x = 0, B = 0, z = 0, a = null, b = null, h = null, g = null, I
= 0, J = 0, n = false;
this._Draw3D = (function ()
{
if (view3DCreated)
{
var c = [];
for (var f = 0;f < a.length;f++)
{
c.push(b[f]);
c.push(",");
c.push(a[f]);
if (f != a.length - 1)
c.push(" ");
}
var g = c.join("");
spacecontrol.AddPolyline("0", e, g, i.ToHexString(), 0.75, d.width);
}
}
);
this.Init = F;
this.Destroy = E;
this.RemoveFromMap = m;
this.Show = G;
this.Hide = j;
this.ChangeVisibility = u;
this.StartLine = q;
this.UpdateLine = D;
}
function Logo(b)
{
var a = null;
this.Init = (function ()
{
if (navigator.userAgent.toLowerCase().indexOf("msie") != - 1)
{
a = document.createElement("div");
a.className = "MSVE_PoweredByLogo MSVE_PoweredByLogo_ie";
if (Msn.VE.API != null)
a.style.filter =
"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" +
Msn.VE.API.Globals.vecurrentdomain + "/i/bin/" +
Msn.VE.API.Globals.vecurrentversion + "/" +
MapControl.Features.Image.PoweredLogo + "', sizingMethod='scale')";
}
else
{
a = document.createElement("img");
var d = "http://" + location.host, c = "";
if (Msn.VE.API != null)
{
d = Msn.VE.API.Globals.vecurrentdomain;
c = Msn.VE.API.Globals.vecurrentversion;
}
else
c = window.buildVersion;
a.src = d + "/i/bin/" + c + "/" +
MapControl.Features.Image.PoweredLogo;
a.className = "MSVE_PoweredByLogo";
}
b.appendChild(a);
}
);
this.Destroy = (function ()
{
b.removeChild(a);
a = null;
}
);
}
function MouseDown(a)
{
a = GetEvent(a);
CancelEvent(a);
if (currentMode != threeDMode && FireCustomEvent("onmousedown", a))
return false;
if (zooming)
return false;
if (panning)
StopContinuousPan();
if (obliqueMode)
obliqueMode.CancelRequest();
if (! mouseZoomDisabled)
if (a.which && a.which == 2)
currentTool = boxTool;
else
if (! a.which && a.button && a.button == 4)
currentTool = boxTool;
else
if (a.ctrlKey | a.altKey)
currentTool = boxTool;
if (! document.all && ! isEnablingDefaultDblClick)
isEnablingDefaultDblClick = true;
dragging = true;
var b = typeof a.which != "undefined" ? a.which : a.button;
if (! hijackMouseMove && ! hijackMouseCursor && b == 1)
p_this.SetCursor(cssCursors.Grabbing);
if (currentTool)
currentTool.OnMouseDown(a);
return false;
}
function MouseMove(a)
{
a = GetEvent(a);
var b = Gimme.Screen.getMousePosition(a);
lastmouseX = b.x;
lastmouseY = b.y;
if (currentMode != threeDMode && FireCustomEvent("onmousemove", a))
return false;
if (hijackMouseMove)
{
a = GetEvent(a);
CancelEvent(a);
var c = g(p_elSource).getPagePosition();
x = c.x;
y = c.y;
var e = originX + offsetX + lastmouseX - x, f = originY + offsetY + lastmouseY -
y, d = CreateEvent(currentMode.PixelToLatLong(new VEPixel(e, f), currentView.zoomLevel));
FireDefaultEvent("onmousemove", d);
return ;
}
if (currentTool && dragging)
currentTool.OnMouseMove(a);
return false;
}
function MouseUp(a)
{
a = GetEvent(a);
CancelEvent(a);
if (a)
isLastButtonMiddle = IsMiddleMouseButton(a);
if (currentMode != threeDMode && FireCustomEvent("onmouseup", a))
return false;
dragging = false;
if (! hijackMouseMove && ! hijackMouseCursor)
p_this.SetCursor(cssCursors.Grab);
var b;
if (currentTool)
b = currentTool.OnMouseUp(a);
if (targetTool && targetTool.isOutOfBounds())
targetTool.OnMouseUp(a);
var c = true;
if (typeof b != "undefined" && b.view != null)
{
isEnablingDefaultDblClick = b.view.disableDbClick != true;
c = b.view.disableMapFocus != true;
}
else
isEnablingDefaultDblClick = true;
currentTool = panTool;
try
{
if (c)
keyboard.focus();
}
catch (d)
{}
return false;
}
function IsOnscreen(c,d)
{
var b = tileSize * Math.pow(2, currentView.zoomLevel), a = originX + offsetX + c - x;
if (a < 0 || a > b)
return false;
a = originY + offsetY + d - y;
if (a < 0 || a > b)
return false;
return true;
}
function MouseDoubleClick(a)
{
a = GetEvent(a);
CancelEvent(a);
var b = Gimme.Screen.getMousePosition(a);
if (currentMode != threeDMode && FireCustomEvent("ondoubleclick",
a))
return false;
if (hijackMouseMove)
return false;
if (isEnablingDefaultDblClick)
{
UpdateFromParent();
if (panning || zooming || mouseZoomDisabled)
return false;
if (GetMapStyle() != Msn.VE.MapStyle.Oblique && ! IsOnscreen(b.x, b.y))
return false;
var c = preferredView.MakeCopy();
c.SetCenter(new VEPixel(originX + offsetX + b.x - x - mapCenterOffset.x, originY +
offsetY + b.y - y - mapCenterOffset.y));
$VE_A.Log($VE_A.PgName.Map, "Zoom");
if (a.ctrlKey | a.altKey)
c.SetZoomLevel(currentView.zoomLevel - 1);
else
c.SetZoomLevel(currentView.zoomLevel + 1);
SetView(c);
return false;
}
else
isEnablingDefausltDblClick = true;
}
function MouseWheel(a)
{
a = GetEvent(a);
CancelEvent(a);
if (currentMode != threeDMode && FireCustomEvent("onmousewheel",
a))
return false;
if (currentMode != null && currentMode == threeDMode)
return false;
if (panning || zooming || mouseZoomDisabled)
return false;
var f = GetMouseScrollDelta(a) > 0;
if (mousewheelZoomToCenter || GetMapStyle() == Msn.VE.MapStyle.Oblique || !
IsOnscreen(lastmouseX, lastmouseY))
if (f)
ZoomIn();
else
ZoomOut();
else
{
var b = f ? currentView.zoomLevel + 1 : currentView.zoomLevel - 1;
if (b <= GetCurrentViewMaxZoomLevel(currentView))
{
UpdateFromParent();
var g = lastmouseX - x, h = lastmouseY - y, d = originX + offsetX + g, e =
originY + offsetY + h, c = preferredView.MakeCopy();
d = currentView.ScaleCoord(d, b);
e = currentView.ScaleCoord(e, b);
$VE_A.Log($VE_A.PgName.Map, "Zoom");
c.SetZoomLevel(b);
c.SetCenter(new VEPixel(d - g + width / 2, e - h + height / 2));
SetView(c);
}
}
return false;
}
function ContextMenu(a)
{
if (mouseZoomDisabled)
return false;
a = GetEvent(a);
CancelEvent(a);
if (currentMode != threeDMode && FireCustomEvent("onclick", a))
return false;
var e = g(p_elSource).getPagePosition();
x = e.x;
y = e.y;
var c, d, b = Gimme.Screen.getMousePosition(a);
if (currentMode == threeDMode)
{
c = b.x - x;
d = b.y - y;
}
else
{
c = originX + offsetX + b.x - x;
d = originY + offsetY + b.y - y;
}
var f = currentMode.PixelToLatLong(new VEPixel(c, d), currentView.zoomLevel);
if (f != null)
{
if (currentMode == threeDMode && Get3DControl().UIHasFocus())
return false;
var h = CreateEvent(f);
FireDefaultEvent("oncontextmenu", h);
}
return false;
}
function MouseClick(a)
{
a = GetEvent(a);
CancelEvent(a);
if (! isLastButtonMiddle)
if (currentMode != threeDMode && FireCustomEvent("onclick", a))
return false;
}
function MouseOut(a)
{
a = GetEvent(a);
var b = a && a.srcElement && a.srcElement.tagName;
if (currentMode != threeDMode && (b == "shape" || b ==
"polyline") && FireCustomEvent("onmouseout", a))
{
CancelEvent(a);
return false;
}
}
function MouseOver(a)
{
a = GetEvent(a);
var b = a && a.srcElement && a.srcElement.tagName;
if (currentMode != threeDMode && (b == "shape" || b ==
"polyline") && FireCustomEvent("onmouseover", a))
{
CancelEvent(a);
return false;
}
}
function MouseEnter(a)
{
a = GetEvent(a);
var b = a.relatedTarget || a.fromElement;
if (currentMode != threeDMode && b != null &&
FireCustomEvent("onmouseover", a))
{
CancelEvent(a);
return false;
}
if (! hijackMouseMove && ! hijackMouseCursor)
p_this.SetCursor(cssCursors.Grab);
}
function MouseLeave(a)
{
a = GetEvent(a);
if (currentMode != threeDMode && FireCustomEvent("onmouseout", a))
{
CancelEvent(a);
return false;
}
}
function PanMap(c,d)
{
if (c == 0 && d == 0 || isNaN(c) || isNaN(d))
return false;
if (currentMode != threeDMode)
{
var a = ShiftView(currentView, currentBounds, c, d);
if (typeof a != "undefined" && a != null)
{
var f = g(map).getComputedPosition(), e = f.x - a.x, h = f.y - a.y;
map.style.left = e + "px";
map.style.top = h + "px";
offsetX = - e;
offsetY = - h;
var b = new VEPixel(width / 2 + originX + offsetX, height / 2 + originY +
offsetY);
if (keyboardPan && (c != 0 && a.x == 0 || d != 0 &&
a.y == 0))
{
if (typeof currentMode.RequestPending != "undefined" &&
! currentMode.RequestPending())
{
b.x += c;
b.y += d;
var i = PixelToLatLong(b);
targetTool.centeringTrigger = true;
SetCenter(i.latitude, i.longitude);
}
}
else
{
currentView.SetCenter(b);
preferredView.SetCenter(new VEPixel(b.x, b.y));
window.setTimeout(tileLayerManager.PanView, 1);
}
Fire("onpan");
}
}
else
return false;
if (copyright)
copyright.Update();
return true;
}
function ContinuousPan(a,b,c,d)
{
if (zooming)
return ;
if (! c)
c = - 1;
panningX = a;
panningY = b;
panCounter = c;
if (! a && ! b)
{
StopContinuousPan();
return ;
}
keyboardPan = d;
if (view3DCreated)
{
spacecontrol.ContinuousPan(a, b);
Fire("onstartpan");
}
else
if (! panning)
{
panning = true;
StepPan();
Fire("onstartpan");
}
}
function StepPan()
{
if (panning)
{
PanMap(panningX, panningY);
if (panCounter > 0)
panCounter--;
if (panCounter != 0)
window.setTimeout(StepPan, 10);
else
StopContinuousPan();
}
}
function StopContinuousPan()
{
panningX = 0;
panningY = 0;
panning = false;
keyboardPan = false;
if (currentMode != threeDMode)
if (panLatitude != null && panLongitude != null)
{
var b = new Msn.VE.LatLong(panLatitude, panLongitude), a = LatLongToPixel(b), c
= a.x - width / 2, d = a.y - height / 2;
PanMap(c, d);
currentView.latlong.latitude = panLatitude;
currentView.latlong.longitude = panLongitude;
preferredView.Copy(currentView);
panLatitude = null;
panLongitude = null;
if (obliqueMode)
obliqueMode.UpdateAvailability();
}
else
ComputeCenterPoint(true);
else
if (view3DCreated)
spacecontrol.ContinuousPan(0, 0);
Fire("onendpan");
Fire("onchangeview");
if (resizeInProgress)
resizeInProgress = false;
}
function PanToLatLong(b,a,c)
{
if (currentMode == threeDMode)
SetCenter(b, a);
else
{
panLatitude = b;
panLongitude = a;
if (currentView.mapStyle == obliqueStyle && PanInOblique(new
Msn.VE.LatLong(b, a), null, c))
{}
else
PanToPixel(LatLongToPixel(new Msn.VE.LatLong(b, a)), c);
}
}
function PanByPixel(a,b)
{
a.x = width / 2 + a.x;
a.y = height / 2 + a.y;
PanToPixel(a, b);
}
function PanToView(a)
{
var b = a.center.x - originX + offsetX, c = a.center.y - originY + offsetY;
PanToPixel(new VEPixel(b, c));
}
function PanToPixel(c,e)
{
if (currentView.mapStyle == obliqueStyle && PanInOblique(null, c, e))
return ;
var a = c.x - width / 2, b = c.y - height / 2, d = Math.sqrt(a * a + b * b);
if (! e && (! IsAnimationEnabled() || MathAbs(a) > 2 * width || MathAbs(b)
> 2 * height || d > 1.5 * Math.sqrt(width * width + height * height)))
{
var i = preferredView.MakeCopy(), j = c.x + originX + offsetX, k = c.y + originY +
offsetY;
i.SetCenter(new VEPixel(j, k));
SetView(i);
if (resizeInProgress)
resizeInProgress = false;
return ;
}
var f = Math.atan2(b, a), g = MathCeil(d / panToLatLongSpeed), h = MathRound(d / g);
a = MathRound(Math.cos(f) * h);
b = MathRound(Math.sin(f) * h);
ContinuousPan(a, b, g);
}
function PanInOblique(a,d)
{
obliqueLoop++;
if (obliqueLoop > 30)
{
obliqueLoop = 0;
return false;
}
var c = obliqueMode.GetScene();
if (! a)
a = PixelToLatLong(d);
if (! c || ! c.ContainsLatLong(a, currentView.zoomLevel))
{
var b = preferredView.MakeCopy();
b.sceneId = null;
b.SetCenterLatLong(a);
SetView(b);
if (resizeInProgress)
resizeInProgress = false;
return true;
}
else
return false;
}
function PushPinOffset(a,b)
{
this.x = a;
this.y = b;
}
function getPushPinOffset(c)
{
var a = Msn.VE.PushPinTypes, b;
switch (c)
{
case a.Annotation:
b = new PushPinOffset(- 2, - 29 / 2 - 5);
break ;
case a.SearchResultPrecise:
case a.SearchResultNonprecise:
case a.AdSponsor:
b = new PushPinOffset(0, - 29 / 2 + 3);
break ;
case a.Direction:
b = new PushPinOffset(- 3, - 26 / 2 - 3);
break ;
case a.DirectionTemp:
b = new PushPinOffset(2, - 26 / 2 + 3);
break ;
case a.TrafficLight:
b = new PushPinOffset(0, - 26 / 2);
break ;
case a.TrafficOthers:
b = new PushPinOffset(0, - 29 / 2);
break ;
case a.YouAreHere:
b = new PushPinOffset(0, - 26 / 2);
break ;
case a.AdStandard:
b = new PushPinOffset(0, - 42 / 2 + 2);
break ;
case a.AdWide:
b = new PushPinOffset(0, - 27 / 2);
break ;
case a.AdCategory:
b = new PushPinOffset(0, - 16 / 2);
break ;
case a.Default:
default:
b = new PushPinOffset(0, 0);
}
return b;
}
function GetPushpins()
{
return pushpins;
}
function AddPushpin(m,k,l,j,h,e,f,i,g,b,c,d)
{
var a = new Pushpin();
a.Init(m, k, l, j, h, e, f, i, g, d);
if (typeof b == "undefined" || b == false || b == null)
{
if (IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
{
if (! (typeof c != "undefined" && c == false))
View3DAddPushpin(a);
map.appendChild(a.pin);
a.Hide();
}
else
map.appendChild(a.pin);
pushpins.push(a);
}
return a.pin;
}
function GetPushpinIndex(b)
{
for (var a = 0;a < pushpins.length;a++)
if (pushpins[a].id == b)
return a;
return - 1;
}
function RemovePushpin(b)
{
var a = GetPushpinIndex(b);
if (a >= 0)
{
var c = pushpins[a];
pushpins.splice(a, 1);
if (IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
View3DRemovePushpin(b);
c.Destroy();
}
}
function ClearPushpins()
{
while (pushpins.length > 0)
{
var a = pushpins.pop();
if (IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
View3DRemovePushpin(a.id);
a.Destroy();
}
}
function Relay3DPushpins()
{
for (var b = 0;b < pushpins.length;b++)
{
var a = pushpins[b];
if (a.id && a.id.constructor == String &&
a.id.indexOf("Layer") == - 1)
View3DAddPushpin(a);
}
}
function NeedToPlaceAccurately(a)
{
switch (a.pinType)
{
case Msn.VE.PushPinTypes.SearchResultPrecise:
case Msn.VE.PushPinTypes.AdStandard:
case Msn.VE.PushPinTypes.AdCategory:
case Msn.VE.PushPinTypes.AdWide:
case Msn.VE.PushPinTypes.AdSponsor:
return true;
default:
return false;
}
}
function _RepositionPushpins()
{
for (var a = 0;a < pushpins.length;a++)
{
pushpins[a].pin.style.display = "";
pushpins[a].Reposition();
}
}
function RepositionPushpins()
{
var d = [], h, i = (function (b)
{
if (currentMode != obliqueMode || null == currentMode.GetScene() || h !=
currentMode.GetScene().GetID())
return ;
if (b)
for (var a = 0;a < d.length;a++)
{
var c = GetPushpinIndex(d[a]);
if (c >= 0)
if (b[a])
pushpins[c].SetAccuratePixel(b[a]);
}
_RepositionPushpins();
}
);
if (pushpins && pushpins.length > 0)
{
if (null == Msn.VE.API && currentMode == obliqueMode)
{
var c = currentMode.GetScene(), f = [], a = 0;
if (c)
{
h = c.GetID();
for (var e = 0;e < pushpins.length;e++)
{
var b = pushpins[e], g = new Msn.VE.LatLong(b.GetLatitude(),
b.GetLongitude());
if (NeedToPlaceAccurately(b) && c.ContainsLatLong(g))
{
f[a] = g;
d[a] = b.id;
a++;
}
}
if (a > 0)
{
currentMode.LatLongToPixelAsync(f, currentView.GetZoomLevel(), i);
return ;
}
}
}
_RepositionPushpins();
}
}
function HidePins()
{
for (var a = 0;a < pushpins.length;a++)
pushpins[a].Hide();
}
function UnHidePins()
{
for (var a = 0;a < pushpins.length;a++)
pushpins[a].UnHide();
}
function GetPushpinPixel(b,c,d,e)
{
var a = currentMode.LatLongToPixel(b, c);
if (a)
{
a.x = MathRound(a.x - d);
a.y = MathRound(a.y - e);
}
return a;
}
function GetPushpinMapPixel(a,b)
{
return GetPushpinPixel(a, b, originX, originY);
}
function Pushpin()
{
var a = this;
this.visible = true;
this.pin = document.createElement("a");
this.img = document.createElement("img");
this.img.className = "VE_PushpinImage";
this.pin.href = "javascript://pushin hover";
this.pin.onclick = (function ()
{
return ParseShiftKeyForLinks(event);
}
);
this.pin.vePushpin = this;
this.x1 = 0;
this.y1 = 0;
this.x2 = 0;
this.y2 = 0;
this.center = null;
this.w = 0;
this.h = 0;
this.n = zoomTotalSteps + 1;
this.xs = new Array(this.n);
this.ys = new Array(this.n);
this.Offset = 0;
this.beLatLongOffset = null;
this.Destroy = (function ()
{
a.RemoveFromMap();
a.pin.onclick = null;
a.pin.vePushpin = null;
a.pin = null;
while (a.xs.length > 0)
a.xs.pop();
while (a.ys.length > 0)
a.ys.pop();
a = null;
}
);
}
function ScaleBar(c)
{
function k()
{
var c = 0;
if (e && e.style.display !== "none")
{
var i = parseInt(g(e).getStyle("height")), h =
parseInt(e.style.bottom);
c += (isNaN(i) ? 0 : i) + (isNaN(h) ? 0 : h);
}
a.setStyle("bottom", c + "px");
b.setStyle("bottom", 1 + c + "px");
d.style.bottom = c + "px";
f.style.bottom = 1 + c + "px";
}
function o(a)
{
return a * 0.001;
}
function q(a)
{
return a * 0.000621371192;
}
function r(a)
{
return a * 1.0936133;
}
function t(a)
{
i = a;
}
function p(a)
{
j = a;
}
function n()
{
try
{
var f = GetMetersPerPixel(), c = f * i, e;
if (j == null)
e = $MVEM.IsEnabled(MapControl.Features.ScaleBarKilometers);
else
e = j == Msn.VE.DistanceUnit.Kilometers;
if (e)
{
var d = L_ScaleBarKilometers_Text, b = o(c), a = h(b);
if (a < 0.5)
{
d = L_ScaleBarMeters_Text;
b = c;
a = h(b);
}
l("metric", d, a, Math.round(a / b * i));
}
else
{
var d = L_ScaleBarMiles_Text, b = q(c), a = h(b);
if (a < 0.5)
{
d = L_ScaleBarYards_Text;
b = r(c);
a = h(b);
}
l("us", d, a, Math.round(a / b * i));
}
}
catch (g)
{}
}
function h(d)
{
var g = Math.log(d) / Math.log(10), e = Math.floor(g), a = Math.pow(10, e), c = d /
a, b = Math.floor(c);
if (b >= 3)
return b * a;
var f = Math.floor(c * 2) * 0.5;
return f * a;
}
function l(j,i,c,g)
{
if (c < 1)
c = c.toFixed(1);
var e = GetMapStyle() != roadStyle;
if (e != m)
{
if (e)
{
a.swapClass("MSVE_ScaleBarLabelBg",
"MSVE_ScaleBarLabelBgInv");
b.swapClass("MSVE_ScaleBarLabelFg",
"MSVE_ScaleBarLabelFgInv");
}
else
{
a.swapClass("MSVE_ScaleBarLabelBgInv",
"MSVE_ScaleBarLabelBg");
b.swapClass("MSVE_ScaleBarLabelFgInv",
"MSVE_ScaleBarLabelFg");
}
m = e;
}
var h = c + " " + i;
a.setHTML(h);
b.setHTML(h);
d.style.width = 4 + g + "px";
f.style.width = g + "px";
}
function s(a)
{
e = a;
k();
}
var e = null, j = null, a = g(document.createElement("div")), b =
g(document.createElement("div")), m = false, d =
document.createElement("div"), f = document.createElement("div"), i =
150;
this.Init = (function ()
{
a.addClass("MSVE_ScaleBarLabel MSVE_ScaleBarLabelBg");
b.addClass("MSVE_ScaleBarLabel MSVE_ScaleBarLabelFg");
d.className = "MSVE_ScaleBar MSVE_ScaleBarBg";
f.className = "MSVE_ScaleBar MSVE_ScaleBarFg";
n();
k();
c.appendChild(a.element());
c.appendChild(b.element());
c.appendChild(d);
c.appendChild(f);
}
);
this.Destroy = (function ()
{
c.removeChild(a.element());
c.removeChild(b.element());
c.removeChild(d);
c.removeChild(f);
e = null;
a = b = d = BarFg = null;
}
);
this.SetBarWidth = t;
this.SetDistanceUnit = p;
this.Update = n;
this.Reposition = k;
this.SetPinElement = s;
}
function MapLegend(h)
{
function k(d)
{
if (d && ! b)
i();
a.style.display = d ? "" : "none";
if (c)
window.setTimeout(c.Reposition, 1);
g();
}
function i()
{
if (e && ! b)
{
b = document.createElement("div");
b.className = "MSVE_LegendGroup";
b.id = "MSVE_TrafficLegend";
e.appendChild(b);
var a = document.createElement("span");
a.id = "MSVE_TL_Slow";
a.appendChild(document.createTextNode(L_MapLegendTrafficSlow_Text));
b.appendChild(a);
a = document.createElement("span");
a.id = "MSVE_TL_Fast";
a.appendChild(document.createTextNode(L_MapLegendTrafficFast_Text));
b.appendChild(a);
a = document.createElement("img");
a.id = "MSVE_TL_Key";
var c = GetUrlPrefix(), f = window.buildVersion;
if (Msn.VE.API != null)
{
c = Msn.VE.API.Globals.vecurrentdomain + "/";
f = Msn.VE.API.Globals.vecurrentversion;
}
a.src = c + "i/bin/" + f + "/traffic/tf_legend.gif";
a.alt = "";
b.appendChild(a);
d = document.createElement("div");
d.className = "MSVE_LegendGroup";
d.id = "MSVE_TrafficMsg";
e.appendChild(d);
}
}
function l(a)
{
while (a.hasChildNodes())
a.removeChild(a.childNodes[0]);
}
function j(a)
{
if (d)
{
l(d);
d.appendChild(document.createTextNode(a));
g();
}
}
function o(b)
{
c = b;
if (c)
c.SetPinElement(a);
}
function p()
{
if (c)
{
c.SetPinElement(null);
c = null;
}
}
function n(b,c)
{
if (a)
{
a.style.left = b + "px";
a.style.top = c + "px";
a.style.bottom = "auto";
a.style.right = "auto";
}
}
function g()
{
if (a)
mvcViewFacade.UpdateShimIfSupported(a);
}
function m()
{
if (a)
destroyIFrameShim(a.id);
}
var q = this, f = h, a = null, e = null, b = null, d = null, c = null;
h = null;
this.Init = (function ()
{
a = document.createElement("div");
a.id = "MSVE_MapLegend";
a.style.display = "none";
f.appendChild(a);
e = document.createElement("div");
e.className = "MSVE_LegendGroup";
a.appendChild(e);
a.attachEvent("onmousedown", IgnoreEvent);
a.attachEvent("onmouseup", IgnoreEvent);
a.attachEvent("onmousemove", IgnoreEvent);
a.attachEvent("onmousewheel", IgnoreEvent);
a.attachEvent("ondblclick", IgnoreEvent);
a.attachEvent("oncontextmenu", IgnoreEvent);
a.attachEvent("onkeydown", IgnoreEvent);
a.attachEvent("onkeyup", IgnoreEvent);
}
);
this.Destroy = (function ()
{
if (a)
{
a.detachEvent("onmousedown", IgnoreEvent);
a.detachEvent("onmouseup", IgnoreEvent);
a.detachEvent("onmousemove", IgnoreEvent);
a.detachEvent("onmousewheel", IgnoreEvent);
a.detachEvent("ondblclick", IgnoreEvent);
a.detachEvent("oncontextmenu", IgnoreEvent);
a.detachEvent("onkeydown", IgnoreEvent);
a.detachEvent("onkeyup", IgnoreEvent);
f.removeChild(a);
a = null;
}
f = null;
e = null;
d = null;
c = null;
}
);
this.ShowTrafficLegend = k;
this.SetTrafficLegendMsg = j;
this.UnPin = p;
this.PinTo = o;
this.MoveTo = n;
this.UpdateShim = g;
this.RemoveShim = m;
}
function RequestTile(b,c,i,h,d,g,e,f)
{
var a = new Tile();
a.Init(b, c, i, h, b * tileSize - originX, c * tileSize - originY, d, g, e, f);
return a;
}
function ClearTiles(a)
{
while (a.length > 0)
{
var b = a.pop();
b.Destroy();
b = null;
}
}
function GetResponseRangeCounts()
{
var b = 0;
for (var a = 0;a < responseRangeCounts.length;a++)
b += responseRangeCounts[a];
if (b == 0)
return responseRangeCounts;
var c = new Array(responseRangeCounts.length);
for (var a = 0;a < responseRangeCounts.length;a++)
c[a] = responseRangeCounts[a] / b;
return c;
}
function ResetResponseRangeCounts()
{
for (var a = 0;a < responseRangeCounts.length;a++)
responseRangeCounts[a] = 0;
}
function GetFailureRate()
{
return totalFailureCount / totalRequestCount;
}
function Tile()
{
function x(c,d,b,a)
{
e = c;
f = d;
i = b;
h = a;
}
function F(c,d,b,a)
{
j = c;
l = d;
p = b;
n = a;
}
function L()
{
for (var a = 0;a <= zoomTotalSteps;a++)
{
k[a] = e + "px";
m[a] = f + "px";
q[a] = i + "px";
o[a] = h + "px";
}
}
function v()
{
for (var a = 0;a <= zoomTotalSteps;a++)
{
var b = a / zoomTotalSteps, c = 1 - b;
k[a] = MathFloor(c * e + b * j) + "px";
m[a] = MathFloor(c * f + b * l) + "px";
q[a] = MathCeil(c * i + b * p) + "px";
o[a] = MathCeil(c * h + b * n) + "px";
}
}
function H(e)
{
if (a == null || zooming && ! z)
return ;
var b = a.style;
b.left = k[e];
b.top = m[e];
b.width = q[e];
b.height = o[e];
if (debug && e == 0)
{
if (! c)
D();
var f = c.style;
b.border = "1px dashed red";
f.left = k[e];
f.top = m[e];
}
if (a.parentNode != map)
{
b.position = "absolute";
b.zIndex = g;
if (B > 0)
if (b && typeof b.filter != "undefined")
if (Msn.VE.Environment.BrowserInfo.MajorVersion <= 6)
{
r = document.createElement("div");
var b = r.style;
b.left = k[e];
b.top = m[e];
b.width = q[e];
b.height = o[e];
b.position = "absolute";
b.zIndex = g;
if (d != 1)
b.filter =
"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + a.src +
"',sizingMethod='scale'), alpha(opacity=" + d * 100 +
")";
else
b.filter =
"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + a.src +
"',sizingMethod='scale')";
map.appendChild(r);
}
else
{
b.zIndex = g;
if (d < 1)
b.filter = "alpha(opacity=" + d * 100 +
");opacity:" + d + ";";
map.appendChild(a);
}
else
{
b.zIndex = g;
b.opacity = d;
map.appendChild(a);
}
else
{
if (b && typeof b.filter != "undefined")
{
if (d < 1)
b.filter = "alpha(opacity=" + d * 100 +
");opacity:" + d;
}
else
b.opacity = d;
map.appendChild(a);
}
if (debug && c && c.parentNode != map)
{
var h = a.src;
c.innerHTML = h.substring(h.lastIndexOf("/") + 1,
h.lastIndexOf("."));
f.position = "absolute";
f.zIndex = g + 1;
map.appendChild(c);
}
}
}
function G()
{
var a = 0;
a = e;
e = j;
j = a;
a = f;
f = l;
l = a;
a = i;
i = p;
p = a;
a = h;
h = n;
n = a;
}
function E()
{
if (b)
{
b.onload = null;
b.onerror = null;
b = null;
}
if (a)
{
if (a.parentNode == map)
map.removeChild(a);
a = null;
}
if (c)
{
if (c.parentNode == map)
map.removeChild(c);
c = null;
}
if (r)
if (r.parentNode == map)
map.removeChild(r);
}
function O()
{
if (currentView && s != currentView.zoomLevel || b == null)
return ;
var d = new Date(), c = d.getTime() - y.getTime();
C(c);
totalRequestTime += c;
totalRequestCount++;
if (debug)
window.status = "last=" + c + ", average=" + totalRequestTime
/ totalRequestCount;
b.onload = null;
b.onerror = null;
a = b;
a.onmousedown = (function ()
{
return false;
}
);
b = null;
if (! zooming)
H(zoomCounter);
}
function N()
{
if (s != currentView.zoomLevel || b == null)
return ;
var c = new Date(), a = c.getTime() - y.getTime();
C(a);
totalRequestTime += a;
totalRequestCount++;
totalFailureCount++;
b.onload = null;
b.onerror = null;
b = null;
}
function C(b)
{
for (var a = 0;a < responseRangeCeilings[A].length;a++)
if (b < responseRangeCeilings[A][a])
{
responseRangeCounts[a]++;
return ;
}
responseRangeCounts[(responseRangeCounts.length - 1)]++;
}
function I(k,m,r,c,d,q)
{
x(e - offsetX, f - offsetY, i, h);
var o = q - r, b = Math.pow(2, o);
j = MathFloor((k + e) * b - c);
l = MathFloor((m + f) * b - d);
p = MathCeil((k + e + i) * b - c) - j;
n = MathCeil((m + f + h) * b - d) - l;
z = true;
v();
g = baseZIndex;
if (a != null)
a.style.zIndex = g;
}
function J(m,o,r,d,k,q)
{
var s = r - q, a = Math.pow(2, s);
j = MathFloor((d + e) * a - m);
l = MathFloor((k + f) * a - o);
p = MathCeil((d + e + i) * a - m) - j;
n = MathCeil((k + f + h) * a - o) - l;
var c = MathCeil(tileViewportWidth * 0.25), b = MathCeil(tileViewportHeight *
0.25);
z = q < r && (t < tileViewportX1 + c || t > tileViewportX2 - c || u
< tileViewportY1 + b || u > tileViewportY2 - b);
G();
v();
g = swapZIndex;
}
function M(b)
{
if (! c)
D();
if (a != null)
a.style.border = b ? "1px dashed red" : "0px";
c.style.display = b ? "block" : "none";
}
function K()
{
p = i;
n = h;
}
function D()
{
c = document.createElement("div");
c.style.font = "7pt Verdana, sans-serif";
c.style.color = "Red";
c.style.backgroundColor = "White";
}
var a = null, b = null, c = null, r = null, t = 0, u = 0, s = 0, A = 0, g = 0, d = 1,
w = zoomTotalSteps + 1, k = new Array(w), m = new Array(w), q = new Array(w), o = new
Array(w), z = false, e = 0, f = 0, i = 0, h = 0, j = 0, l = 0, p = 0, n = 0, y = null, B =
0;
this.Init = (function (k,l,m,j,c,e,f,a,h,i)
{
t = k;
u = l;
s = m;
A = j;
g = i;
d = h;
if (! currentMode.IsValidTile(t, u, s))
return ;
x(c, e, tileSize, tileSize);
F(c, e, tileSize, tileSize);
v();
if (a == mapTiles || a == trafficTiles)
B = 0;
else
B = 1;
b = document.createElement("img");
b.onload = O;
b.onerror = N;
y = new Date();
b.src = currentMode.GetFilename(t, u, s, f, a);
}
);
this.Destroy = (function ()
{
if (a)
a.onmousedown = null;
E();
while (k.length > 0)
k.pop();
while (m.length > 0)
m.pop();
while (q.length > 0)
q.pop();
while (o.length > 0)
o.pop();
k = m = q = o = null;
}
);
this.SetCurrentState = x;
this.SetNextState = F;
this.ClearSteps = L;
this.PrecomputeSteps = v;
this.SetFactor = H;
this.SwapStates = G;
this.RemoveFromMap = E;
this.PrepareBaseTile = I;
this.PrepareSwapTile = J;
this.Debug = M;
this.ClearStates = K;
}
function SetBaseTileSource(a)
{
if (! a)
a = currentView;
var c = a && shadedTileSpec && shadedTileSpec.SourceName &&
a.mapStyle == Msn.VE.MapStyle.Road &&
$MVEM.IsEnabled(MapControl.Features.MapStyle.Shaded) && currentView.doRoadShading
|| a.mapStyle == Msn.VE.MapStyle.Shaded, b = c ? shadedTileSpec : orthoTileSpec;
tileLayerManager.AddTileSource(b);
}
function SetView(a)
{
if (currentMode != null && currentMode == threeDMode)
return SetView3DSpecialized(a);
if (a == null)
return CreateNewView();
if (zooming || dragging)
return true;
if (panning)
StopContinuousPan();
var b = a.latlong;
if (a.GetViewType() == Msn.VE.MapViewType.LatLongRect)
b = a.latlongRect.Center();
if (a.mapStyle == obliqueStyle)
return SetViewOblique(a, b);
else
return SetViewOrtho(a, b);
}
function SetView3DSpecialized(a)
{
var b = false;
if (a == null)
{
a = new Msn.VE.MapView();
a.Copy(currentView);
b = true;
}
if (! view3DCreated)
b = true;
return SetView3D(a, b);
}
function SetViewOblique(a,c)
{
function b()
{
var b = HandleSetViewObliqueResolve(a, c, preferredView);
if (! b && typeof a.callback == "function")
a.callback(obliqueMode.GetScene());
}
if (obliqueMode == null)
return true;
preferredView.Copy(a);
currentMode = obliqueMode;
if (Msn.VE.API)
p_elSource.style.background = "#000 url(\"" +
Msn.VE.API.Globals.vecurrentdomain + "/i/bin/" +
Msn.VE.API.Globals.vecurrentversion + "/oblique/oblique_bg.gif\") repeat";
else
p_elSource.style.background = "#000 url(\"./i/bin/" +
window.buildVersion + "/oblique/oblique_bg.gif\") repeat";
a.Resolve(currentMode, width, height, b);
}
function HandleSetViewObliqueResolve(a,c,i)
{
if (targetTool.centeringTrigger)
{
targetTool.centeringTrigger = false;
obliqueMode.RequestSceneAtLatLong(c, a.sceneOrientation, true);
return true;
}
var b = obliqueMode.GetScene(), e = b && b.ContainsLatLong(c, a.zoomLevel);
if (a.bySceneId)
{
if (! b || b.GetID() != a.sceneId)
{
obliqueMode.RequestScene(a.sceneId);
return true;
}
else
if (! e)
{
var l = b.GetBounds();
a.SetCenterLatLong(b.PixelToLatLong(new VEPixel(b.GetWidth() / 4,
b.GetHeight() / 4), 1));
a.Resolve(currentMode, width, height);
e = true;
}
}
else
if (! b || ! e || b.GetOrientation() != a.sceneOrientation)
{
obliqueMode.RequestSceneAtLatLong(c, a.sceneOrientation, true, null, a.callback,
a.spinDirection);
return true;
}
c = a.latlong;
i.Copy(a);
SetBaseTileSource(a);
currentMode.ValidateZoomLevel(a);
currentBounds = currentMode.GetBounds(a);
ClipView(a, currentBounds);
if (a.Equals(currentView) && ! resizeInProgress)
return false;
var g = a.GetX(currentView.zoomLevel) - currentView.center.x, h =
a.GetY(currentView.zoomLevel) - currentView.center.y, d = Math.sqrt(g * g + h * h);
previousCenter = currentView.latlong;
var f = 0;
if (! previousCenter.Equals(a.latlong))
f += Msn.VE.ViewChangeType.Pan;
if (currentView.zoomLevel != a.zoomLevel)
f += Msn.VE.ViewChangeType.Zoom;
SetLastViewChangeType(f);
var k = d < width && d < height && a.zoomLevel ==
currentView.zoomLevel && IsAnimationEnabled() && a.mapStyle ==
currentView.mapStyle && (a.sceneId == null || a.sceneId == currentView.sceneId);
if (k)
{
PanToPixel(new VEPixel(a.center.x - originX - offsetX, a.center.y - originY -
offsetY), true);
return false;
}
previousZoomLevel = currentView.zoomLevel;
if (currentView.zoomLevel != a.zoomLevel)
{
Fire("onstartzoom", CreateEvent(null, null, null, a));
zooming = true;
}
var j = d < width && d < height && (a.zoomLevel ==
currentView.zoomLevel - 1 || a.zoomLevel == currentView.zoomLevel + 1) &&
IsAnimationEnabled() && a.mapStyle == currentView.mapStyle && (a.sceneId
== null || a.sceneId == currentView.sceneId);
if (j)
{
tileLayerManager.zoomView(a);
return false;
}
UpdateTiles(a);
return false;
}
function SetViewOrtho(a,f)
{
currentMode = orthoMode;
if (a.mapStyle == Msn.VE.MapStyle.Road || a.mapStyle == Msn.VE.MapStyle.Shaded)
{
p_elSource.style.backgroundColor = "#e9e7d4";
p_elSource.style.backgroundImage = "none";
}
else
p_elSource.style.backgroundColor = "black";
a.Resolve(currentMode, width, height);
f = a.latlong;
preferredView.Copy(a);
SetBaseTileSource(a);
currentMode.ValidateZoomLevel(a);
currentBounds = currentMode.GetBounds(a);
ClipView(a, currentBounds);
a.Resolve(currentMode, width, height);
if (a.Equals(currentView) && ! resizeInProgress)
return false;
if (! currentView.center)
currentView.center = a.center;
var d = a.GetX(currentView.zoomLevel) - currentView.center.x, e =
a.GetY(currentView.zoomLevel) - currentView.center.y, b = Math.sqrt(d * d + e * e);
previousCenter = currentView.GetCenterLatLong();
var c = 0;
if (! previousCenter.Equals(a.GetCenterLatLong()))
c += Msn.VE.ViewChangeType.Pan;
if (currentView.zoomLevel != a.zoomLevel)
c += Msn.VE.ViewChangeType.Zoom;
SetLastViewChangeType(c);
var h = b < width && b < height && a.zoomLevel ==
currentView.zoomLevel && IsAnimationEnabled() && a.mapStyle ==
currentView.mapStyle && (a.sceneId == null || a.sceneId == currentView.sceneId);
if (h)
{
PanToLatLong(a.latlong.latitude, a.latlong.longitude, true);
return true;
}
previousZoomLevel = currentView.zoomLevel;
if (currentView.zoomLevel != a.zoomLevel)
{
Fire("onstartzoom", CreateEvent(null, null, null, a));
zooming = true;
}
var g = b < width && b < height && (a.zoomLevel ==
currentView.zoomLevel - 1 || a.zoomLevel == currentView.zoomLevel + 1) &&
IsAnimationEnabled() && a.mapStyle == currentView.mapStyle && (a.sceneId
== null || a.sceneId == currentView.sceneId);
if (g)
{
tileLayerManager.zoomView(a);
return true;
}
UpdateTiles(a);
return true;
}
function CreateNewView()
{
var a = new Msn.VE.MapView();
a.Copy(currentView);
a.SetAltitude(- 1000);
a.SetTilt(- 90);
a.SetDirection(0);
var b = a.latlong, c = ClipLatitude(b.latitude);
if (b.latitude != c)
{
a.SetCenterLatLong(new Msn.VE.LatLong(c, b.longitude));
a.Resolve(currentMode, width, height);
}
if (a.mapStyle == obliqueStyle)
currentMode = obliqueMode;
else
currentMode = orthoMode;
SetBaseTileSource(a);
currentMode.ValidateZoomLevel(a);
UpdateTiles(a);
return true;
}
function UpdateTiles(a)
{
currentView.Destroy();
currentView = a;
tileLayerManager.SetViewPort();
tileLayerManager.LoadBaseLayer("Road", mapTiles, 1, 1);
tileLayerManager.RefreshTileLayers();
tileLayerManager.FinalizeView();
RepositionPushpins();
}
function SetLastViewChangeType(a)
{
if (Msn.VE.ViewChangeType.IsValid(a))
lastViewChangeType = a;
}
function View3DAddPushpin(a)
{
if (g(a.pin).hasClass("inactiveAbbreviationPin"))
return ;
var d = parseInt(a.pinType), h = TranslatePushpinURL(a.className, a.innerHtml, d), b =
Msn.VE.PushPinTypes, e = parseFloat(a.lat), f = parseFloat(a.lon), c =
"zindex=\"" + a.zIndex + "\"";
switch (d)
{
case b.DirectionStep:
case b.SearchResultNonprecise:
c += " textoffset=\"50%, 50%\"";
case b.SearchResultPrecise:
case b.AdSponsor:
c += " text=\"" + extractText(a.innerHtml) + "\"";
}
spacecontrol.AddPointWithProperties(0, a.id, e, f, h, c);
}
function extractText(b)
{
var a = document.createElement("div");
a.innerHTML = b;
var c = a.textContent || a.innerText;
a = null;
return c;
}
function View3DRemovePushpin(a)
{
spacecontrol.DeleteGeometry(0, a);
}
function AddView3DParameter(d,c,b)
{
var a = document.createElement("param");
a.name = c;
a.value = b;
d.appendChild(a);
}
function CreateView3DControl(a)
{
initial3dView = new Msn.VE.MapView();
initial3dView.Copy(a);
if (sentinel3D == null)
sentinel3D = GetSentinel();
if (null == sentinel3D)
{
View3DUnavailable();
return false;
}
if (sentinel3D != null && sentinel3D.CurrentVersion < 2.00071113001)
{
var e = sentinel3D.CurrentVersion;
sentinel3D = null;
if (e > 0)
View3DUpgrade();
return false;
}
try
{
sentinel3D.InitializeRuntime();
}
catch (f)
{}
spacediv = document.createElement("div");
spacediv.id = "MSVE_spacediv";
spacediv.className = "MSVE_SLMap";
spacediv.style.position = "relative";
spacediv.style.height = "100%";
spacediv.style.overflow = "hidden";
spacecontrol = document.createElement("object");
var b = a.cameraLatlong == null ? a.latlong : a.cameraLatlong;
AddView3DParameter(spacecontrol, "StartLongitude", b.longitude);
AddView3DParameter(spacecontrol, "StartLatitude", b.latitude);
AddView3DParameter(spacecontrol, "StartPitch", a.GetTilt());
AddView3DParameter(spacecontrol, "StartHeading", - a.GetDirection());
var c = a.GetAltitude();
if (c > - 1000)
AddView3DParameter(spacecontrol, "StartAltitude", c);
else
AddView3DParameter(spacecontrol, "StartZoomLevel", a.zoomLevel);
spacediv.appendChild(spacecontrol);
try
{
if (window.navigator.userAgent.indexOf("MSIE") != - 1)
spacecontrol.classid = "clsid:68BFC611-B963-4e8c-B0FE-0DD4FB832796";
else
spacecontrol.type = "application/x-virtual-earth-3d";
}
catch (f)
{
View3DUnavailable();
spacecontrol = false;
return false;
}
spacecontrol.ControlId = init3dparam;
AttachEvent("onresize", ResizeControl);
p_elSource.appendChild(spacediv);
ResizeControl();
setStyle = false;
var d = ValidateControl();
if (d)
IterativeCameraRefinement();
if (typeof state != "undefined" && state != null)
state.Set3DViewInstallInProgress("");
return d;
}
function View3DUnavailable()
{
if (IsEventAttached("onmodenotavailable"))
Fire("onmodenotavailable", Msn.VE.MapActionMode.Mode3D);
else
if (typeof Msn.VE.API != "undefined" && Msn.VE.API != null)
if (sentinel3D != null)
window.open(Get3dInstallUrl("View3DUnavailable.htm"),
"_blank",
"width=600,height=550,menubar=0,resizeable=0,status=0,titlebar=0,toolbar=0,scrollbars=0");
else
if (window.navigator.userAgent.indexOf("MSIE") != - 1)
window.open(Get3dInstallUrl("View3DIEInstall.htm"),
"_blank",
"width=650,height=520,menubar=0,resizeable=0,status=0,titlebar=0,toolbar=0,scrollbars=0");
else
if (window.navigator.userAgent.indexOf("Windows") != - 1)
window.open(Get3dInstallUrl("View3DFInstall.htm"),
"_blank",
"width=760,height=580,menubar=0,resizeable=0,status=0,titlebar=0,toolbar=0,scrollbars=0");
}
function CallIterativeCameraRefinement()
{
var a = GetMapControlInstance(null);
if (a)
a.IterativeCameraRefinement();
}
function IterativeCameraRefinement()
{
if (cameraUpdateCount > 0)
return ;
if (IsModeEnabled(Msn.VE.MapActionMode.Mode3D) && spacecontrol)
if (! spacecontrol.AllTilesLoaded)
setTimeout(CallIterativeCameraRefinement, 1000);
else
{
var a = false, c = currentView.GetAltitude(), d = initial3dView.GetAltitude();
if (d > - 1000 && c > - 1000)
a = Math.abs(c - d) > 1;
else
a = currentView.GetZoomLevel() != initial3dView.GetZoomLevel();
if (a)
{
var b = initial3dView.MakeCopy();
b.SetMapStyle(currentView.mapStyle);
SetView3D(b, true);
}
}
}
function ValidateControl()
{
if (typeof Msn.VE.API == "undefined" || Msn.VE.API == null)
if (0 == spacecontrol.HardwareClassificationLevel)
setStyle = true;
var a = false, b = 300;
if (spacecontrol.Created)
{
while (! spacecontrol.FirstFrameRendered && ! spacecontrol.LoadFailed
&& ! spacecontrol.AlreadyLoaded && b > 0)
{
b--;
spacecontrol.ProcessEvents();
}
a = spacecontrol.FirstFrameRendered;
}
if (spacecontrol.Created && ! spacecontrol.HardwareAccelerationEnabled
&& spacecontrol.LoadFailed)
{
if (typeof Msn.VE.API == "undefined" || Msn.VE.API == null)
{
window.setTimeout(DelayedHWDialog, 2759);
window.setTimeout(OnHardwareAccelHelpFired, 4000);
}
else
if (IsEventAttached("onmodenotavailable"))
Fire("onmodenotavailable", Msn.VE.MapActionMode.Mode3D);
if (mode == Msn.VE.MapActionMode.Mode3D)
EnableMode(Msn.VE.MapActionMode.Mode2D);
return false;
}
else
if (! spacecontrol.Created || ! spacecontrol.Enabled || !
spacecontrol.IsHandleCreated || ! a && ! spacecontrol.AlreadyLoaded)
{
View3DUnavailable();
spacecontrol = false;
return false;
}
else
{
spacecontrol.focus();
view3DCreated = true;
return true;
}
}
function ResizeControl()
{
if (spacecontrol)
{
spacecontrol.style.height = spacediv.offsetHeight + "px";
spacecontrol.style.width = spacediv.offsetWidth + "px";
}
RepositionShims();
}
function SetView3D(a,g)
{
currentMode.ValidateZoomLevel(a);
a.Resolve(orthoMode, width, height);
preferredView.Copy(a);
if (! view3DCreated && ! spacecontrol)
{
var l = CreateView3DControl(a);
if (setStyle)
{
a.mapStyle = "h";
previousMapStyle = "h";
}
if (! l)
return false;
if (a.GetTilt() != - 90 && a.cameraLatlong == null)
{
a.Resolve(orthoMode, width, height);
cameraUpdateCount = - 1;
}
else
{
cameraUpdateCount = 0;
a._supressFlyToCall = true;
}
p_elSource.style.backgroundColor = "#e9e7d4";
originX = 0;
originY = 0;
offsetX = 0;
offsetY = 0;
UpdateFromParent();
}
if (! g && a.Equals(currentView))
{
if (! spaceCameraIsFlying)
ProcessQueuedRequest(null, null);
return false;
}
var c = false;
if (a.GetAltitude() > - 1000)
c = Math.abs(a.GetAltitude() - currentView.GetAltitude()) > 0.0001;
else
c = currentView.zoomLevel != a.zoomLevel;
currentView.Destroy();
currentView = a;
if (view3DCreated)
{
if (previousMapStyle)
{
if (currentView.mapStyle != null && previousMapStyle !=
currentView.mapStyle)
{
var b = "http://go.microsoft.com/fwlink/?LinkID=98770";
if (currentView.mapStyle == "a")
{
b = "http://go.microsoft.com/fwlink/?LinkID=98771";
spacecontrol.ShowAtmosphere = true;
}
if (currentView.mapStyle == "h")
{
b = "http://go.microsoft.com/fwlink/?LinkID=98772";
spacecontrol.ShowAtmosphere = true;
}
if (currentView.mapStyle == "r")
{
spacecontrol.TexturesVisible = false;
if (spacecontrol.HardwareClassificationLevel < 3)
b = "http://go.microsoft.com/fwlink/?LinkID=98769";
spacecontrol.ShowAtmosphere = false;
}
else
spacecontrol.TexturesVisible = true;
spacecontrol.AddImageSource("Terrain", "Texture",
GetManifestUrl(b), 0, 1);
Fire("onchangemapstyle");
previousMapStyle = currentView.mapStyle;
}
}
else
previousMapStyle = currentView.mapStyle;
var d = a.cameraLatlong, i = a.zoomLevel, j = a.GetAltitude(), k = a.GetTilt(), h
= a.GetDirection(), e = a._needsPivotOperation;
if (c)
Fire("onstartzoom");
if (a._supressFlyToCall)
a._supressFlyToCall = false;
else
{
var f = spacecontrol.FlyTo(d.latitude, d.longitude, i, j, k, h, e ? 1 : 0);
if (! f && ! spaceCameraIsFlying)
ProcessQueuedRequest(null, null);
}
if (a.sceneId && a.sceneId != - 1)
{
ProcessPhotoPluginActionIn3D("PhotosEnabled", "1",
spacecontrol);
ProcessPhotoPluginActionIn3D("SelectSceneId", "SceneId=" +
a.sceneId, spacecontrol, null);
}
if (c)
Fire("onendzoom");
if (copyright)
copyright.Update();
return true;
}
return false;
}
function SetOn3DAnimationInterruptedCallback(a)
{
on3DAnimationInterruptedCallback = a;
}
function GetOn3DAnimationInterruptedCallback()
{
return on3DAnimationInterruptedCallback;
}
function SetViewport(b,d,c,e)
{
Sync3dView();
var a = preferredView.MakeCopy();
a.sceneId = null;
a.SetLatLongRectangle(new Msn.VE.LatLongRectangle(new Msn.VE.LatLong(ClipLatitude(b),
ClipLongitude(d)), new Msn.VE.LatLong(ClipLatitude(c), ClipLongitude(e))));
a.SetTilt(- 90);
a.SetDirection(0);
return SetView(a);
}
function SetBestMapView(b)
{
var a = GetBestMapViewBounds(b);
if (! a || a.constructor != Array)
return false;
if (a.length == 4)
return SetViewport(a[0], a[1], a[2], a[3]);
}
function GetBestMapViewBounds(a)
{
var b = [];
if (! a || a.constructor != Array)
return null;
var c = a[0].latitude, d = a[0].longitude, f = c, g = d;
for (var e = 1;e < a.length;e++)
{
c = MathMin(c, a[e].latitude);
d = MathMin(d, a[e].longitude);
f = MathMax(f, a[e].latitude);
g = MathMax(g, a[e].longitude);
}
var h = (f - c) * 0.1, i = (g - d) * 0.1;
c -= h;
d -= i;
f += h;
g += i;
if (! b || b.constructor != Array)
return null;
else
{
b.push(ClipLatitude(c));
b.push(ClipLongitude(d));
b.push(ClipLatitude(f));
b.push(ClipLongitude(g));
return b;
}
}
function IncludePointInViewport(d,c)
{
var a = new Msn.VE.LatLong(d, c);
if (currentView.mapStyle == obliqueStyle)
{
var b = obliqueMode.GetScene();
if (! b || ! b.ContainsLatLong(a))
SetMapStyle(lastOrthoMapStyle);
}
SetBestMapView([currentView.latlong, a]);
}
function ClipLatitude(a)
{
return Clip(a, minLatitude, maxLatitude);
}
function ClipLongitude(a)
{
return Clip(a, minLongitude, maxLongitude);
}
function Clip(a,c,b)
{
if (a < c)
return c;
if (a > b)
return b;
return a;
}
function SetZoom(b)
{
Sync3dView();
var a = preferredView.MakeCopy();
a.SetZoomLevel(b);
SetView(a);
}
function ZoomIn()
{
Sync3dView();
var a = preferredView.MakeCopy();
a.SetZoomLevel(currentView.zoomLevel + 1);
$VE_A.Log($VE_A.PgName.Map, "Zoom");
SetView(a);
}
function ZoomOut()
{
Sync3dView();
var a = preferredView.MakeCopy();
a.SetZoomLevel(currentView.zoomLevel - 1);
$VE_A.Log($VE_A.PgName.Map, "Zoom");
SetView(a);
}
function SetCenterAndZoom(d,b,c)
{
Sync3dView();
var a = preferredView.MakeCopy();
a.sceneId = null;
a.SetCenterLatLong(new Msn.VE.LatLong(d, b));
a.SetZoomLevel(c);
SetView(a);
}
function GetCurrentViewMaxZoomLevel(b)
{
var a = b;
if (typeof a == "undefined" || a == null)
a = preferredView;
if (! currentMode)
return tileLayerManager.GetMaxTileZoom();
return currentMode.GetCurrentMaxZoomLevel(a);
}
function ObliqueMode()
{
function L(c,d,b)
{
return a.IsValidTile(c, d, b);
}
function J(b,c,d)
{
return a.GetTileFilename(b, c, d);
}
function E(e)
{
if (! a)
return 0;
var b = new VEPixel(MathRound(originX + offsetX + width / 2), MathRound(originY +
offsetY + height / 2)), f = a.PixelToLatLong(b, e);
b.x++;
var g = a.PixelToLatLong(b, e), h = Math.sin(DegToRad(f.latitude)), i =
Math.sin(DegToRad(g.latitude)), c = earthRadius / 2 * MathAbs(Math.log((1 + h) / (1 - h))
- Math.log((1 + i) / (1 - i))), d = earthRadius * MathAbs(DegToRad(f.longitude) -
DegToRad(g.longitude));
return Math.sqrt(d * d + c * c);
}
function F(c,b)
{
return a ? a.PixelToLatLong(c, b) : null;
}
function z(c,d,b)
{
if (a)
a.PixelToLatLongAsync(c, d, b);
else
b(null);
}
function D(c,b)
{
return a ? a.LatLongToPixel(c, b) : null;
}
function y(c,d,b)
{
if (a)
a.LatLongToPixelAsync(c, d, b);
else
b(null);
}
function w()
{
return 2;
}
function B(a)
{
if (a.zoomLevel >= 2)
tileLayerManager.SetMarketMaxZoom(2);
if (a.zoomLevel < 1)
a.SetZoomLevel(1);
else
if (a.zoomLevel > 2)
a.SetZoomLevel(2);
}
function N()
{
return a;
}
function M()
{
return a.GetBounds();
}
function K()
{
return b;
}
function G()
{
if (! b)
return null;
var a = {};
return a;
}
function A()
{
if (currentView != null && currentView.mapStyle != obliqueStyle &&
currentView.zoomLevel > 0)
if (currentView.zoomLevel < MapControl.Features.BirdsEyeAtZoomLevel)
{
a = null;
h = b;
b = false;
o();
}
else
r(currentView.latlong, "North", false, 500);
}
function r(e,i,p,n,m,f)
{
j();
l = p;
if (! O(e))
{
a = null;
h = b;
b = false;
o(m);
return ;
}
k = t;
c = [];
c.push(new VEParameter("latitude", e.latitude));
c.push(new VEParameter("longitude", e.longitude));
c.push(new VEParameter("level", 20));
var d = "NoSpin";
if (f == Msn.VE.BirdsEyeSearchSpinDirection.ClockwiseSpin)
d = "CounterclockwiseSpin";
else
if (f == Msn.VE.BirdsEyeSearchSpinDirection.CounterclockwiseSpin)
d = "ClockwiseSpin";
c.push(new VEParameter("spinDirection", "\"" + d +
"\""));
if (i)
c.push(new VEParameter("orientation", "\"" + i +
"\""));
else
c.push(new VEParameter("orientation", "\"" +
Msn.VE.Orientation.North + "\""));
if (n)
g = window.setTimeout(q, n);
else
{
q(m);
g = - 1;
}
}
function H(b)
{
if (a && a.GetID() == b)
return ;
j();
l = true;
k = u;
c = [];
c.push(new VEParameter("sceneId", b));
q();
}
function j()
{
try
{
if (g != - 1)
window.clearTimeout(g);
}
catch (a)
{}
g = - 1;
}
function q(b)
{
function a(a)
{
if (typeof s == "function")
s(a, b);
}
j();
if (! k)
return ;
i = true;
if (e)
c.push(new VEParameter(Msn.VE.API.Constants.clienttoken, e));
JSONRequestInvoke(k, c, a);
}
function s(c,d)
{
if (p)
p.__HandleAuthentication(c);
h = b;
a = null;
b = false;
if (c != null)
if (c.Scene)
{
a = I(c.Scene);
if (Msn.VE.API && e)
a.SetClientToken(e);
a.SetGUID(m);
b = true;
}
o(d);
}
function I(a)
{
switch (a.O)
{
case 0:
a.O = Msn.VE.Orientation.North;
break ;
case 2:
a.O = Msn.VE.Orientation.East;
break ;
case 4:
a.O = Msn.VE.Orientation.South;
break ;
case 6:
a.O = Msn.VE.Orientation.West;
}
return new Msn.VE.ObliqueScene(a.S, a.Q, a.RI, a.O, a.L, null, a.Fcx, a.Fcy, [[a.QA,
a.QB, a.QC], [a.QD, a.QE, a.QF], [a.QG, a.QH, a.QI]], [[a.XA, a.XB, a.XC], [a.XD, a.XE,
a.XF], [a.XG, a.XH, a.XI]]);
}
function o(e)
{
i = false;
if (typeof e == "function")
if (b)
e(a);
else
e(null);
if (l)
{
l = false;
if (b)
{
var c = preferredView.MakeCopy();
if (c.mapStyle != obliqueStyle)
{
c.SetZoomLevel(1);
c.SetCenterLatLong(new Msn.VE.LatLong().Copy(preferredView.latlong));
}
c.SetMapStyle(obliqueStyle, a.GetID(), a.GetOrientation());
SetView(c);
Fire("onobliquechange");
}
else
{
var c = preferredView.MakeCopy();
c.SetMapStyle(lastOrthoMapStyle);
if (c.GetViewType() != "latlongRect")
c.SetZoomLevel(lastOrthoZoomLevel);
SetView(c);
Fire("onendmapstyleoblique");
Fire("onerror", CreateEvent(currentView.latlong,
currentView.zoomLevel, L_ObliqueModeImageNotAvailable_Text));
}
}
if (h != b)
if (b)
Fire("onobliqueenter");
else
Fire("onobliqueleave");
if (d.length > 0)
v(b);
}
function O(a)
{
if (! a || ! f || f.length == 0)
return false;
var b = C(a, f[0].length);
return n(b, 0, f.length - 1);
}
function C(g,c)
{
var e = orthoMode.LatLongToPixel(g, c), h = MathFloor(e.x / tileSize), i =
MathFloor(e.y / tileSize), d = "";
for (var b = c;b > 0;b--)
{
var a = 0, f = 1 << b - 1;
if ((h & f) != 0)
a++;
if ((i & f) != 0)
a += 2;
d += a + "";
}
return d;
}
function n(a,d,c)
{
if (c < d)
return false;
var b = MathFloor((d + c) / 2);
if (f[b] == a)
return true;
if (a < f[b])
return n(a, d, b - 1);
return n(a, b + 1, c);
}
function x(a,c)
{
if (i)
{
if (d[a] != true)
{
var e = d.push({callbackName : a, callback : c});
d[a] = true;
}
}
else
if (typeof c == "function")
c(b);
}
function v(c)
{
var e = d.length;
for (var b = 0;b < e;b++)
{
var a = d.shift();
delete d[a.callbackName];
if (typeof a.callback == "function")
a.callback(c);
}
}
var a = null, b = false, h = false, t = null, u = null, l = false, k = null, c = null,
g = - 1, e = null, m = null, p = null, f = ["02121222233",
"02121222322", "02121222323", "02121222332",
"02121222333", "02121223222", "02121223223",
"02121223232", "02123000101", "02123000103",
"02123000110", "02123000111", "02123000112",
"02123000113", "02123000123", "02123000130",
"02123000131", "02123000132", "02123000133",
"02123000301", "02123000303", "02123000310",
"02123000311", "02123000312", "02123000313",
"02123000321", "02123000330", "02123000331",
"02123000332", "02123000333", "02123001000",
"02123001001", "02123001002", "02123001003",
"02123001010", "02123001012", "02123001013",
"02123001020", "02123001021", "02123001022",
"02123001023", "02123001030", "02123001031",
"02123001032", "02123001033", "02123001103",
"02123001112", "02123001120", "02123001121",
"02123001122", "02123001123", "02123001130",
"02123001132", "02123001200", "02123001201",
"02123001202", "02123001203", "02123001210",
"02123001211", "02123001212", "02123001220",
"02123001221", "02123001222", "02123001223",
"02123001232", "02123001300", "02123001301",
"02123001302", "02123002103", "02123002110",
"02123002111", "02123002112", "02123002113",
"02123002121", "02123002123", "02123002130",
"02123002131", "02123002132", "02123002133",
"02123002233", "02123002301", "02123002303",
"02123002310", "02123002311", "02123002312",
"02123002313", "02123002320", "02123002321",
"02123002322", "02123002323", "02123002330",
"02123002331", "02123002332", "02123002333",
"02123003000", "02123003001", "02123003002",
"02123003003", "02123003010", "02123003011",
"02123003012", "02123003020", "02123003021",
"02123003022", "02123003023", "02123003030",
"02123003032", "02123003200", "02123003201",
"02123003202", "02123003203", "02123003210",
"02123003220", "02123003221", "02123003222",
"02123003223", "02123003232", "02123020011",
"02123020013", "02123020031", "02123020100",
"02123020101", "02123020102", "02123020103",
"02123020110", "02123020111", "02123020112",
"02123020113", "02123020120", "02123021000",
"02123021001", "02123021002", "02123022103",
"02123022112", "02123022113", "02123022121",
"02123022122", "02123022123", "02123022130",
"02123022131", "02123022132", "02123022133",
"02123022211", "02123022233", "02123022300",
"02123022301", "02123022302", "02123022303",
"02123022310", "02123022311", "02123022312",
"02123022313", "02123022320", "02123022321",
"02123022322", "02123022323", "02123022330",
"02123022331", "02123023200", "02123023202",
"02123023220", "02123100233", "02123100322",
"02123102011", "02123102012", "02123102013",
"02123102030", "02123102031", "02123102032",
"02123102033", "02123102100", "02123102102",
"02123102103", "02123102111", "02123102112",
"02123102113", "02123102120", "02123102121",
"02123102122", "02123102123", "02123102130",
"02123102131", "02123102132", "02123102133",
"02123102210", "02123102211", "02123103002",
"02123103020", "02123103022", "02123200011",
"02123200013", "02123200031", "02123200033",
"02123200100", "02123200101", "02123200102",
"02123200103", "02123200120", "02123200121",
"02123200122", "02123223233", "02123223322",
"02123302112", "02123302113", "02123302130",
"02123302131", "02123302132", "02123302133",
"02123302310", "02123302311", "02123302313",
"02123303002", "02123303003", "02123303020",
"02123303021", "02123303022", "02123303023",
"02123303030", "02123303032", "02123303033",
"02123303200", "02123303201", "02123303202",
"02123303203", "02123303210", "02123303211",
"02123303220", "02123303221", "02132222202",
"02132222203", "02132222210", "02132222211",
"02132222212", "02132222213", "02132222220",
"02132222221", "02132222222", "02132222223",
"02132222230", "02132222231", "02132222232",
"02132222233", "02132222300", "02132222301",
"02132222302", "02132222303", "02132222310",
"02132222312", "02132222320", "02132222321",
"02132222330", "02133031332", "02133031333",
"02133033110", "02133033111", "02133033112",
"02133033113", "02133033130", "02133033131",
"02133033133", "02133103133", "02133103311",
"02133103313", "02133112022", "02133112023",
"02133112032", "02133112033", "02133112200",
"02133112201", "02133112210", "02133112211",
"02133120222", "02133120223", "02133120232",
"02133120233", "02133122000", "02133122001",
"02133122002", "02133122003", "02133122010",
"02133122011", "02133122012", "02133122013",
"02133122020", "02133122021", "02133122022",
"02133122023", "02133122030", "02133122031",
"02133122032", "02133122113", "02133122131",
"02133122133", "02133122212", "02133122213",
"02133122230", "02133122231", "02133122232",
"02133122233", "02133122302", "02133122303",
"02133122311", "02133122312", "02133122313",
"02133122320", "02133122321", "02133122322",
"02133122323", "02133122330", "02133122331",
"02133122332", "02133122333", "02133123002",
"02133123003", "02133123012", "02133123020",
"02133123021", "02133123022", "02133123023",
"02133123030", "02133123032", "02133123200",
"02133123201", "02133123202", "02133123210",
"02133123213", "02133123231", "02133123232",
"02133123233", "02133123301", "02133123302",
"02133123303", "02133123310", "02133123312",
"02133123313", "02133123320", "02133123321",
"02133123322", "02133123323", "02133123330",
"02133123331", "02133123332", "02133123333",
"02133130013", "02133130021", "02133130023",
"02133130030", "02133130031", "02133130032",
"02133130033", "02133130102", "02133130120",
"02133130122", "02133211123", "02133211132",
"02133211133", "02133211231", "02133211233",
"02133211301", "02133211303", "02133211310",
"02133211311", "02133211312", "02133211313",
"02133211320", "02133211321", "02133211322",
"02133211323", "02133211330", "02133211331",
"02133211332", "02133211333", "02133213010",
"02133213011", "02133213012", "02133213013",
"02133213031", "02133213100", "02133213101",
"02133213102", "02133213103", "02133233123",
"02133233132", "02133233133", "02133233211",
"02133233213", "02133233222", "02133233223",
"02133233231", "02133233232", "02133233233",
"02133233300", "02133233301", "02133233302",
"02133233303", "02133233310", "02133233311",
"02133233312", "02133233313", "02133233320",
"02133233321", "02133233322", "02133233323",
"02133233330", "02133233331", "02133233332",
"02133300010", "02133300011", "02133300012",
"02133300013", "02133300022", "02133300100",
"02133300101", "02133300102", "02133300103",
"02133300110", "02133300111", "02133300112",
"02133300113", "02133300200", "02133300202",
"02133300220", "02133300221", "02133300222",
"02133300223", "02133300230", "02133300231",
"02133300232", "02133300233", "02133300322",
"02133301010", "02133301011", "02133301012",
"02133301013", "02133301023", "02133301030",
"02133301031", "02133301032", "02133301033",
"02133301100", "02133301101", "02133301102",
"02133301103", "02133301110", "02133301111",
"02133301112", "02133301113", "02133301120",
"02133301121", "02133301122", "02133301123",
"02133301130", "02133301131", "02133301132",
"02133301133", "02133301201", "02133301210",
"02133301211", "02133301213", "02133301231",
"02133301233", "02133301300", "02133301301",
"02133301302", "02133301303", "02133301310",
"02133301311", "02133301312", "02133301320",
"02133301321", "02133301322", "02133301323",
"02133301330", "02133301332", "02133302000",
"02133302001", "02133302002", "02133302003",
"02133302010", "02133302011", "02133302012",
"02133302013", "02133302020", "02133302021",
"02133302030", "02133302031", "02133302100",
"02133302102", "02133302120", "02133310020",
"02133310022", "02133310200", "02133310222",
"02133310223", "02133310232", "02133310233",
"02133310322", "02133312000", "02133312001",
"02133312002", "02133312003", "02133312010",
"02133312011", "02133312012", "02133312013",
"02133312021", "02133312030", "02133312031",
"02133312100", "02133312102", "02133320011",
"02133320013", "02133320031", "02133320033",
"02133320100", "02133320101", "02133320102",
"02133320103", "02133320110", "02133320112",
"02133320120", "02133320121", "02133320122",
"02133320123", "02133320130", "02133320132",
"02133320211", "02133320300", "02133320301",
"02133320310", "02133322022", "02133322023",
"02133322032", "02133322200", "02133322201",
"02133322202", "02133322203", "02133322210",
"02133322212", "02133322220", "02133322221",
"02133322223", "02133322230", "02133322232",
"02133333033", "02133333112", "02133333121",
"02133333122", "02133333123", "02133333130",
"02133333131", "02133333132", "02133333133",
"02133333201", "02133333203", "02133333210",
"02133333211", "02133333212", "02133333213",
"02133333300", "02133333301", "02133333302",
"02133333303", "02133333310", "02301000113",
"02301000131", "02301000133", "02301000311",
"02301001002", "02301001011", "02301001013",
"02301001020", "02301001022", "02301001100",
"02301001200", "02301002223", "02301002232",
"02301002233", "02301002322", "02301002323",
"02301003323", "02301003332", "02301003333",
"02301012103", "02301012112", "02301012113",
"02301012121", "02301012123", "02301012130",
"02301012131", "02301012132", "02301012133",
"02301012310", "02301012311", "02301012312",
"02301012313", "02301012330", "02301012331",
"02301020001", "02301020003", "02301020010",
"02301020011", "02301020012", "02301020013",
"02301020030", "02301020031", "02301020033",
"02301020100", "02301020101", "02301020102",
"02301020103", "02301020110", "02301020112",
"02301020120", "02301020121", "02301020122",
"02301020123", "02301020130", "02301020131",
"02301020132", "02301020133", "02301020211",
"02301020300", "02301020301", "02301020310",
"02301020311", "02301020312", "02301020313",
"02301020331", "02301020332", "02301020333",
"02301021011", "02301021013", "02301021021",
"02301021022", "02301021023", "02301021030",
"02301021031", "02301021032", "02301021033",
"02301021100", "02301021101", "02301021102",
"02301021103", "02301021110", "02301021111",
"02301021112", "02301021113", "02301021120",
"02301021121", "02301021122", "02301021123",
"02301021130", "02301021131", "02301021132",
"02301021133", "02301021200", "02301021201",
"02301021202", "02301021203", "02301021210",
"02301021211", "02301021212", "02301021213",
"02301021220", "02301021221", "02301021222",
"02301021223", "02301021230", "02301021231",
"02301021232", "02301021233", "02301021300",
"02301021301", "02301021302", "02301021303",
"02301021310", "02301021311", "02301021312",
"02301021313", "02301021320", "02301021321",
"02301021322", "02301021323", "02301021330",
"02301021331", "02301021332", "02301021333",
"02301022110", "02301022111", "02301022112",
"02301022113", "02301022131", "02301023000",
"02301023001", "02301023002", "02301023003",
"02301023010", "02301023011", "02301023012",
"02301023013", "02301023020", "02301023021",
"02301023022", "02301023023", "02301023030",
"02301023031", "02301023032", "02301023033",
"02301023100", "02301023101", "02301023102",
"02301023103", "02301023110", "02301023111",
"02301023112", "02301023113", "02301023120",
"02301023122", "02301023130", "02301023131",
"02301023133", "02301023201", "02301023210",
"02301023211", "02301023212", "02301023213",
"02301023223", "02301023230", "02301023231",
"02301023232", "02301023233", "02301023300",
"02301023302", "02301023320", "02301023322",
"02301030222", "02301030223", "02301031102",
"02301031103", "02301031120", "02301031121",
"02301031131", "02301031133", "02301032000",
"02301032001", "02301032002", "02301032003",
"02301032212", "02301032230", "02301032231",
"02301032232", "02301032233", "02301032303",
"02301032312", "02301032313", "02301032320",
"02301032321", "02301032322", "02301032323",
"02301032330", "02301032331", "02301032332",
"02301032333", "02301033220", "02301033222",
"02301033223", "02301120020", "02301120022",
"02301132111", "02301132113", "02301132131",
"02301132133", "02301132311", "02301132313",
"02301133000", "02301133001", "02301133002",
"02301133003", "02301133010", "02301133012",
"02301133013", "02301133020", "02301133021",
"02301133022", "02301133023", "02301133030",
"02301133031", "02301133032", "02301133033",
"02301133102", "02301133103", "02301133120",
"02301133121", "02301133122", "02301133123",
"02301133200", "02301133201", "02301133202",
"02301133203", "02301133210", "02301133211",
"02301133212", "02301133213", "02301133300",
"02301133301", "02301133302", "02301133303",
"02301201001", "02301201010", "02301201011",
"02301201013", "02301201100", "02301201101",
"02301201103", "02301201110", "02301201112",
"02301201121", "02301201130", "02301201131",
"02301201132", "02301201133", "02301210011",
"02301210030", "02301210031", "02301210032",
"02301210033", "02301210100", "02301210101",
"02301210103", "02301210110", "02301210111",
"02301210112", "02301210113", "02301210120",
"02301210121", "02301210122", "02301210123",
"02301211000", "02301211001", "02301211202",
"02301211203", "02301211212", "02301211220",
"02301211221", "02301211222", "02301211223",
"02301211230", "02301211232", "02301211233",
"02301212003", "02301212012", "02301212021",
"02301212023", "02301212030", "02301212032",
"02301212033", "02301212210", "02301212211",
"02301212213", "02301212302", "02301212303",
"02301212320", "02301212321", "02301212323",
"02301212330", "02301212331", "02301212332",
"02301212333", "02301213000", "02301213001",
"02301213002", "02301213010", "02301213011",
"02301213012", "02301213013", "02301213020",
"02301213021", "02301213022", "02301213031",
"02301213100", "02301213102", "02301213120",
"02301213211", "02301213213", "02301213221",
"02301213222", "02301213223", "02301213232",
"02301213233", "02301213300", "02301213301",
"02301213302", "02301213303", "02301213310",
"02301213311", "02301213312", "02301213313",
"02301213320", "02301213321", "02301213322",
"02301213323", "02301213330", "02301213331",
"02301213332", "02301213333", "02301231001",
"02301231003", "02301231010", "02301231011",
"02301231012", "02301231013", "02301231031",
"02301231100", "02301231101", "02301231102",
"02301231103", "02301231110", "02301231111",
"02301231112", "02301231113", "02301231120",
"02301231121", "02301231130", "02301231131",
"02301231132", "02301231133", "02301231303",
"02301231310", "02301231311", "02301231312",
"02301231321", "02301231330", "02301231331",
"02301300230", "02301300231", "02301300232",
"02301300233", "02301300302", "02301300320",
"02301301113", "02301301131", "02301301133",
"02301301311", "02301301332", "02301301333",
"02301302123", "02301302132", "02301302133",
"02301302200", "02301302201", "02301302202",
"02301302203", "02301302210", "02301302211",
"02301302212", "02301302213", "02301302220",
"02301302221", "02301302222", "02301302223",
"02301302230", "02301302231", "02301302232",
"02301302233", "02301302300", "02301302301",
"02301302302", "02301302303", "02301302310",
"02301302311", "02301302312", "02301302313",
"02301302320", "02301302321", "02301302322",
"02301302323", "02301302330", "02301302331",
"02301302332", "02301302333", "02301303021",
"02301303022", "02301303110", "02301303111",
"02301303200", "02301303201", "02301310002",
"02301310020", "02301310021", "02301310022",
"02301310023", "02301310030", "02301310032",
"02301310033", "02301310200", "02301310201",
"02301310210", "02301310211", "02301310212",
"02301310213", "02301312033", "02301312211",
"02301312300", "02301312302", "02301312320",
"02301312321", "02301312332", "02301320000",
"02301320001", "02301320002", "02301320003",
"02301320010", "02301320011", "02301320012",
"02301320013", "02301320020", "02301320021",
"02301320022", "02301320023", "02301320030",
"02301320031", "02301320032", "02301320033",
"02301320100", "02301320101", "02301320102",
"02301320103", "02301320110", "02301320111",
"02301320112", "02301320113", "02301320120",
"02301320121", "02301320122", "02301320123",
"02301320130", "02301320131", "02301320132",
"02301320133", "02301320200", "02301320201",
"02301320203", "02301320210", "02301320211",
"02301320212", "02301320213", "02301320230",
"02301320231", "02301320300", "02301320301",
"02301320302", "02301320303", "02301320310",
"02301320311", "02301320312", "02301320320",
"02301320321", "02301320322", "02301320323",
"02301320330", "02301320332", "02301321001",
"02301321002", "02301321003", "02301321010",
"02301321011", "02301321012", "02301321013",
"02301321020", "02301321021", "02301321022",
"02301321023", "02301321030", "02301321032",
"02301321033", "02301321100", "02301321101",
"02301321102", "02301321103", "02301321201",
"02301321210", "02301321211", "02301321212",
"02301321213", "02301322100", "02301322101",
"02301322102", "02301322103", "02301322110",
"02301322111", "02301322112", "02301322113",
"02301322120", "02301322121", "02301322122",
"02301322123", "02301322130", "02301322131",
"02301322132", "02301322133", "02301322301",
"02301322310", "02301323000", "02301323002",
"02301323020", "02301330011", "02301330100",
"02301330101", "02301330102", "02301330103",
"02301330110", "02301331312", "02301331313",
"02301331330", "02301331331", "02301332031",
"02301332033", "02301332120", "02301332121",
"02301332122", "02301332123", "02301332210",
"02301332211", "02310000010", "02310000011",
"02310000012", "02310000013", "02310000030",
"02310000031", "02310000032", "02310000033",
"02310000102", "02310000120", "02310000122",
"02310000211", "02310012303", "02310012312",
"02310012313", "02310012321", "02310012330",
"02310012331", "02310032321", "02310032330",
"02310032331", "02310032332", "02310032333",
"02310033202", "02310033203", "02310033212",
"02310033220", "02310033221", "02310033222",
"02310033223", "02310033230", "02310033231",
"02310033232", "02310033233", "02310101012",
"02310101021", "02310101023", "02310101030",
"02310101032", "02310101033", "02310101122",
"02310101201", "02310101203", "02310101210",
"02310101211", "02310101212", "02310101220",
"02310101221", "02310101222", "02310101223",
"02310101230", "02310101231", "02310101232",
"02310101233", "02310101300", "02310101301",
"02310101322", "02310101323", "02310101332",
"02310101333", "02310103000", "02310103001",
"02310103003", "02310103010", "02310103011",
"02310103012", "02310103013", "02310103021",
"02310103023", "02310103030", "02310103031",
"02310103032", "02310103033", "02310103100",
"02310103101", "02310103102", "02310103103",
"02310103110", "02310103111", "02310103112",
"02310103113", "02310103120", "02310103121",
"02310103122", "02310103130", "02310103131",
"02310103203", "02310103210", "02310103211",
"02310103212", "02310103213", "02310103231",
"02310103233", "02310103300", "02310103302",
"02310103320", "02310103322", "02310110222",
"02310110223", "02310110232", "02310112000",
"02310112001", "02310112002", "02310112003",
"02310112010", "02310112012", "02310112020",
"02310112021", "02310112030", "02310121011",
"02310121100", "02310121102", "02310210322",
"02310210323", "02310210332", "02310210333",
"02310211203", "02310211212", "02310211213",
"02310211221", "02310211222", "02310211223",
"02310211230", "02310211231", "02310211232",
"02310211233", "02310211302", "02310211303",
"02310211320", "02310211321", "02310211322",
"02310212011", "02310212100", "02310212101",
"02310212110", "02310212111", "02310212112",
"02310212130", "02310212132", "02310213000",
"02310213001", "02310213002", "02310213003",
"02310213010", "02310213011", "02310213012",
"02310213100", "02310213112", "02310213113",
"02310213130", "02310213131", "02310213132",
"02310213133", "02310213310", "02310213311",
"02310220021", "02310220023", "02310220030",
"02310220031", "02310220032", "02310220033",
"02310220122", "02310220200", "02310220201",
"02310220202", "02310220203", "02310220210",
"02310220211", "02310220212", "02310220213",
"02310220220", "02310220221", "02310220223",
"02310220230", "02310220231", "02310220232",
"02310220233", "02310220300", "02310220302",
"02310220303", "02310220320", "02310220321",
"02310220322", "02310220323", "02310220330",
"02310222310", "02310222311", "02310222312",
"02310222313", "02310222331", "02310222333",
"02310223200", "02310223201", "02310223202",
"02310223203", "02310223212", "02310223220",
"02310223221", "02310223222", "02310223223",
"02310223230", "02310223232", "02310300110",
"02310300111", "02310300112", "02310300113",
"02310300122", "02310300123", "02310300130",
"02310300131", "02310300300", "02310300301",
"02310300302", "02310300303", "02310300320",
"02310300321", "02310300322", "02310300323",
"02310302002", "02310302003", "02310302012",
"02310302013", "02310302020", "02310302021",
"02310302022", "02310302023", "02310302030",
"02310302031", "02310302032", "02310302033",
"02310302101", "02310302120", "02310302121",
"02310302122", "02310302123", "02310302200",
"02310302201", "02310302210", "02310302211",
"02310302212", "02310302213", "02310302230",
"02310302231", "02310302232", "02310302233",
"02310302300", "02310302301", "02310302302",
"02310302320", "02310311230", "02310311231",
"02310311232", "02310311233", "02310311320",
"02310311321", "02310311322", "02310311323",
"02310311330", "02310311332", "02310313010",
"02310313011", "02310313012", "02310313013",
"02310313030", "02310313031", "02310313032",
"02310313033", "02310313100", "02310313101",
"02310313102", "02310313103", "02310313110",
"02310313112", "02310313120", "02310313121",
"02310313122", "02310313123", "02310313130",
"02310313132", "02310313210", "02310313211",
"02310313212", "02310313213", "02310313300",
"02310313301", "02310313302", "02310313303",
"02310313310", "02310313312", "02310322223",
"02310322232", "02310322233", "02310331033",
"02310331211", "02310331213", "02310331231",
"02310331300", "02310331301", "02310331302",
"02310331303", "02310331320", "02310331321",
"02311011000", "02311011001", "02311011002",
"02311011003", "02311011010", "02311011011",
"02311011012", "02311011013", "02311011020",
"02311011021", "02311011022", "02311011023",
"02311011030", "02311011031", "02311011032",
"02311011033", "02311011100", "02311011101",
"02311013303", "02311013312", "02311013313",
"02311013321", "02311013323", "02311013330",
"02311013331", "02311013332", "02311013333",
"02311030103", "02311030112", "02311030113",
"02311030121", "02311030123", "02311030130",
"02311030131", "02311030132", "02311030133",
"02311030231", "02311030233", "02311030310",
"02311030311", "02311030313", "02311030320",
"02311030321", "02311030322", "02311030323",
"02311030330", "02311030331", "02311030332",
"02311030333", "02311031002", "02311031003",
"02311031020", "02311031021", "02311031022",
"02311031023", "02311031200", "02311031201",
"02311031202", "02311031203", "02311032011",
"02311032013", "02311032031", "02311032100",
"02311032101", "02311032102", "02311032103",
"02311032110", "02311032111", "02311032112",
"02311032113", "02311032120", "02311032121",
"02311032130", "02311032131", "02311033303",
"02311033312", "02311033313", "02311033321",
"02311033323", "02311033330", "02311033331",
"02311033332", "02311033333", "02311102011",
"02311102013", "02311102030", "02311102031",
"02311102032", "02311102033", "02311102100",
"02311102101", "02311102102", "02311102103",
"02311102120", "02311102121", "02311102122",
"02311102123", "02311102130", "02311102131",
"02311102132", "02311102133", "02311102202",
"02311102210", "02311102211", "02311102212",
"02311102213", "02311102220", "02311102222",
"02311102230", "02311102231", "02311102232",
"02311102233", "02311102300", "02311102301",
"02311102302", "02311102303", "02311102310",
"02311102311", "02311102312", "02311102313",
"02311102320", "02311102321", "02311102322",
"02311102323", "02311102330", "02311102331",
"02311102332", "02311102333", "02311103020",
"02311103022", "02311103200", "02311103202",
"02311103220", "02311103222", "02311103233",
"02311103320", "02311103321", "02311103322",
"02311103323", "02311103330", "02311103332",
"02311113322", "02311113323", "02311113330",
"02311113331", "02311113332", "02311113333",
"02311120011", "02311120100", "02311120101",
"02311120103", "02311120110", "02311120111",
"02311120112", "02311120113", "02311120121",
"02311120130", "02311120131", "02311121000",
"02311121002", "02311121011", "02311121013",
"02311121020", "02311121031", "02311121100",
"02311121101", "02311121102", "02311121103",
"02311121110", "02311121112", "02311121120",
"02311121121", "02311121130", "02311123013",
"02311123031", "02311123033", "02311123102",
"02311123103", "02311123112", "02311123120",
"02311123121", "02311123122", "02311123123",
"02311123130", "02311123132", "02311123211",
"02311123300", "02311123301", "02311123310",
"02311131011", "02311131013", "02311131031",
"02311131100", "02311131101", "02311131102",
"02311131103", "02311131110", "02311131111",
"02311131112", "02311131113", "02311131120",
"02311131121", "02311131123", "02311131130",
"02311131131", "02311131132", "02311210121",
"02311210123", "02311210130", "02311210131",
"02311210132", "02311210133", "02311210231",
"02311210232", "02311210233", "02311210301",
"02311210302", "02311210303", "02311210310",
"02311210311", "02311210312", "02311210313",
"02311210320", "02311210321", "02311210322",
"02311210323", "02311210330", "02311210331",
"02311210332", "02311210333", "02311211020",
"02311211021", "02311211022", "02311211023",
"02311211030", "02311211031", "02311211032",
"02311211033", "02311211101", "02311211103",
"02311211110", "02311211111", "02311211112",
"02311211113", "02311211120", "02311211121",
"02311211122", "02311211123", "02311211130",
"02311211131", "02311211132", "02311211133",
"02311211200", "02311211201", "02311211202",
"02311211203", "02311211210", "02311211212",
"02311211300", "02311211301", "02311211303",
"02311211310", "02311211311", "02311211312",
"02311211313", "02311212011", "02311212013",
"02311212100", "02311212101", "02311212102",
"02311212103", "02311212110", "02311212111",
"02311212112", "02311212113", "02311212120",
"02311212121", "02311212122", "02311212123",
"02311212130", "02311212131", "02311212132",
"02311212133", "02311212301", "02311212310",
"02311212311", "02311221100", "02311221101",
"02311221102", "02311221103", "02311221110",
"02311221111", "02311221112", "02311221113",
"02311221120", "02311221121", "02311221122",
"02311221123", "02311221130", "02311221131",
"02311221132", "02311221133", "02311222102",
"02311222120", "02311222121", "02311222122",
"02311222123", "02311222300", "02311222301",
"02311230002", "02311230020", "02311230022",
"02311230121", "02311230123", "02311230130",
"02311230131", "02311230132", "02311230133",
"02311230212", "02311230213", "02311230230",
"02311230231", "02311230232", "02311230233",
"02311230301", "02311230302", "02311230303",
"02311230310", "02311230311", "02311230312",
"02311230313", "02311230320", "02311230321",
"02311230322", "02311230323", "02311230330",
"02311230331", "02311230332", "02311230333",
"02311231020", "02311231021", "02311231022",
"02311231023", "02311231030", "02311231032",
"02311231033", "02311231200", "02311231201",
"02311231202", "02311231203", "02311231210",
"02311231211", "02311231212", "02311231213",
"02311231220", "02311231221", "02311231222",
"02311231223", "02311231230", "02311231231",
"02311231232", "02311231233", "02311231300",
"02311231302", "02311231320", "02311231322",
"02311232010", "02311232011", "02311232012",
"02311232013", "02311232023", "02311232030",
"02311232031", "02311232032", "02311232033",
"02311232100", "02311232101", "02311232102",
"02311232103", "02311232110", "02311232111",
"02311232112", "02311232113", "02311232120",
"02311232121", "02311232122", "02311232123",
"02311232130", "02311232131", "02311232132",
"02311232133", "02311232201", "02311232210",
"02311232211", "02311232212", "02311232213",
"02311232230", "02311232231", "02311232233",
"02311232300", "02311232301", "02311232302",
"02311232303", "02311232310", "02311232311",
"02311232312", "02311232313", "02311232320",
"02311232321", "02311232330", "02311232331",
"02311232333", "02311233000", "02311233001",
"02311233002", "02311233003", "02311233010",
"02311233011", "02311233012", "02311233013",
"02311233020", "02311233021", "02311233022",
"02311233023", "02311233030", "02311233031",
"02311233032", "02311233033", "02311233100",
"02311233101", "02311233102", "02311233103",
"02311233110", "02311233111", "02311233112",
"02311233113", "02311233120", "02311233130",
"02311233131", "02311233133", "02311233200",
"02311233201", "02311233202", "02311233203",
"02311233210", "02311233211", "02311233212",
"02311233213", "02311233220", "02311233221",
"02311233222", "02311233223", "02311233230",
"02311233231", "02311233302", "02311300101",
"02311300103", "02311300110", "02311300111",
"02311300112", "02311300113", "02311300121",
"02311300123", "02311300130", "02311300131",
"02311300132", "02311300133", "02311300310",
"02311300311", "02311300312", "02311300313",
"02311300330", "02311300331", "02311301000",
"02311301001", "02311301002", "02311301003",
"02311301010", "02311301012", "02311301020",
"02311301021", "02311301022", "02311301023",
"02311301030", "02311301200", "02311301201",
"02311301202", "02311301203", "02311301220",
"02311301221", "02311303133", "02311303311",
"02311312022", "02311312023", "02311312030",
"02311312031", "02311312032", "02311312033",
"02311312120", "02311312122", "02311312200",
"02311312201", "02311312202", "02311312203",
"02311312210", "02311312211", "02311312212",
"02311312213", "02311312230", "02311312231",
"02311312233", "02311312300", "02311312302",
"02311312320", "02311312322", "02311313110",
"02311313111", "02311313112", "02311313113",
"02311313130", "02311313131", "02311313132",
"02311313133", "02311313233", "02311313301",
"02311313303", "02311313310", "02311313311",
"02311313312", "02311313313", "02311313320",
"02311313321", "02311313322", "02311313323",
"02311313330", "02311313331", "02311313332",
"02311313333", "02311320230", "02311320231",
"02311320232", "02311320233", "02311320320",
"02311320322", "02311322000", "02311322002",
"02311322010", "02311322011", "02311322020",
"02311322022", "02311322100", "02311322102",
"02311323131", "02311323133", "02311323311",
"02311331011", "02311331013", "02311331100",
"02311331101", "02311331102", "02311331103",
"02311331110", "02311331111", "02311331112",
"02311331113", "02311331123", "02311331130",
"02311331131", "02311331132", "02311331133",
"02311331311", "02311332020", "02311332021",
"02311332022", "02311332023", "02311332032",
"02311332200", "02311332201", "02311332210",
"02311333210", "02311333211", "02311333212",
"02311333213", "02311333311", "02311333312",
"02311333313", "02311333330", "02311333331",
"02311333332", "02311333333", "02312001000",
"02312001001", "02312001002", "02312100001",
"02312100003", "02312100010", "02312100011",
"02312100012", "02312100013", "02312100031",
"02312100033", "02312100100", "02312100102",
"02312100120", "02312100122", "02313003321",
"02313003323", "02313003330", "02313003331",
"02313003332", "02313003333", "02313010111",
"02313010112", "02313010113", "02313010121",
"02313010123", "02313010130", "02313010131",
"02313010132", "02313010133", "02313010213",
"02313010231", "02313010233", "02313010302",
"02313010303", "02313010310", "02313010311",
"02313010312", "02313010320", "02313010321",
"02313010322", "02313010323", "02313010330",
"02313010332", "02313011002", "02313011020",
"02313012001", "02313012003", "02313012010",
"02313012011", "02313012012", "02313012013",
"02313012021", "02313012023", "02313012030",
"02313012031", "02313012032", "02313012033",
"02313012100", "02313012101", "02313012102",
"02313012103", "02313012110", "02313012112",
"02313012120", "02313012121", "02313012122",
"02313012123", "02313012130", "02313012210",
"02313012211", "02313012220", "02313012222",
"02313012223", "02313012300", "02313012301",
"02313013110", "02313013111", "02313013112",
"02313013113", "02313013123", "02313013130",
"02313013131", "02313013132", "02313013133",
"02313013301", "02313013310", "02313013311",
"02313013312", "02313013313", "02313013330",
"02313013331", "02313013333", "02313021101",
"02313021103", "02313021110", "02313021111",
"02313021112", "02313021113", "02313021121",
"02313021130", "02313021131", "02313023021",
"02313023022", "02313023023", "02313023030",
"02313023032", "02313023033", "02313023122",
"02313023200", "02313023201", "02313023203",
"02313023210", "02313023211", "02313023212",
"02313023213", "02313023221", "02313023230",
"02313023300", "02313023302", "02313023303",
"02313023312", "02313030000", "02313030001",
"02313030002", "02313030003", "02313030010",
"02313030020", "02313030333", "02313031131",
"02313031133", "02313031222", "02313031223",
"02313032013", "02313032030", "02313032031",
"02313032032", "02313032033", "02313032111",
"02313032112", "02313032113", "02313032120",
"02313032121", "02313032122", "02313032123",
"02313032130", "02313032131", "02313032132",
"02313032133", "02313032210", "02313032211",
"02313032213", "02313032300", "02313032301",
"02313032302", "02313032303", "02313032310",
"02313032311", "02313032312", "02313032313",
"02313033000", "02313033001", "02313033002",
"02313033003", "02313033020", "02313033021",
"02313033022", "02313100312", "02313100313",
"02313100330", "02313100331", "02313100333",
"02313101201", "02313101202", "02313101203",
"02313101212", "02313101220", "02313101221",
"02313101222", "02313101223", "02313101230",
"02313101232", "02313102002", "02313102003",
"02313102020", "02313102021", "02313102022",
"02313102023", "02313102030", "02313102032",
"02313102033", "02313102133", "02313102200",
"02313102201", "02313102202", "02313102203",
"02313102210", "02313102211", "02313102212",
"02313102213", "02313102220", "02313102221",
"02313102222", "02313102223", "02313102230",
"02313102231", "02313102232", "02313102233",
"02313102302", "02313102311", "02313102320",
"02313102322", "02313102332", "02313102333",
"02313103000", "02313103001", "02313103002",
"02313103003", "02313103010", "02313103012",
"02313103020", "02313103021", "02313103022",
"02313103023", "02313103032", "02313103033",
"02313103200", "02313103201", "02313103202",
"02313103203", "02313103210", "02313103211",
"02313103212", "02313103221", "02313111201",
"02313111203", "02313111210", "02313111211",
"02313111212", "02313111213", "02313111223",
"02313111232", "02313111233", "02313111300",
"02313111302", "02313112031", "02313112032",
"02313112033", "02313112120", "02313112121",
"02313112122", "02313112123", "02313112210",
"02313112211", "02313112300", "02313112301",
"02313113000", "02313113001", "02313113002",
"02313113003", "02313113010", "02313113011",
"02313113012", "02313113020", "02313113021",
"02313113023", "02313113030", "02313113031",
"02313113032", "02313113033", "02313113121",
"02313113122", "02313113123", "02313113130",
"02313113132", "02313113133", "02313113210",
"02313113211", "02313113212", "02313113213",
"02313113230", "02313113231", "02313113232",
"02313113233", "02313113300", "02313113301",
"02313113302", "02313113303", "02313113310",
"02313113311", "02313113312", "02313113313",
"02313113320", "02313113321", "02313113322",
"02313113323", "02313113330", "02313113331",
"02313113332", "02313113333", "02313120000",
"02313120001", "02313120002", "02313120003",
"02313120010", "02313120011", "02313120012",
"02313120013", "02313120020", "02313120021",
"02313120022", "02313120023", "02313120030",
"02313120031", "02313120032", "02313120100",
"02313120101", "02313120102", "02313120103",
"02313120110", "02313120111", "02313120120",
"02313120201", "02313131100", "02313131101",
"02313131103", "02313131110", "02313131111",
"02313131112", "02313131113", "02313131121",
"02313131130", "02313131131", "02313131132",
"02313131133", "02313210123", "02313210132",
"02313210211", "02313210213", "02313210231",
"02313210300", "02313210301", "02313210302",
"02313210303", "02313210310", "02313210311",
"02313210312", "02313210313", "02313210320",
"02313210321", "02313210322", "02313210323",
"02313210330", "02313210331", "02313210332",
"02313210333", "02313212101", "02313212110",
"03022023330", "03022023331", "03022023332",
"03022023333", "03022032201", "03022032202",
"03022032203", "03022032210", "03022032212",
"03022032220", "03022032221", "03022032222",
"03022032223", "03022032230", "03022200132",
"03022200133", "03022200310", "03022200311",
"03022200312", "03022200313", "03022200330",
"03022200331", "03022200332", "03022200333",
"03022201022", "03022201023", "03022201032",
"03022201033", "03022201103", "03022201110",
"03022201111", "03022201112", "03022201113",
"03022201120", "03022201121", "03022201122",
"03022201123", "03022201130", "03022201131",
"03022201132", "03022201133", "03022201200",
"03022201201", "03022201202", "03022201203",
"03022201210", "03022201211", "03022201212",
"03022201213", "03022201220", "03022201221",
"03022201222", "03022201223", "03022201230",
"03022201231", "03022201232", "03022201233",
"03022201300", "03022201301", "03022201302",
"03022201303", "03022201320", "03022201321",
"03022201322", "03022202203", "03022202212",
"03022202213", "03022202220", "03022202221",
"03022202222", "03022202223", "03022202230",
"03022202231", "03022202232", "03022202233",
"03022202302", "03022202303", "03022202320",
"03022202321", "03022202322", "03022202323",
"03022202330", "03022202332", "03022203201",
"03022203202", "03022203203", "03022203210",
"03022203211", "03022203212", "03022203213",
"03022203220", "03022203221", "03022203222",
"03022203223", "03022203230", "03022203231",
"03022203232", "03022203233", "03022203300",
"03022203302", "03022203320", "03022203322",
"03022210000", "03022210002", "03022210020",
"03022212211", "03022212213", "03022212300",
"03022212301", "03022212302", "03022212303",
"03022212310", "03022212312", "03022212313",
"03022212320", "03022212321", "03022212322",
"03022212323", "03022212330", "03022212331",
"03022212332", "03022212333", "03022213202",
"03022213203", "03022213212", "03022213220",
"03022213221", "03022213222", "03022213223",
"03022213230", "03022213232", "03022220000",
"03022220001", "03022220002", "03022220003",
"03022220010", "03022220011", "03022220012",
"03022220013", "03022220020", "03022220021",
"03022220030", "03022220031", "03022220033",
"03022220100", "03022220101", "03022220102",
"03022220103", "03022220110", "03022220112",
"03022220113", "03022220120", "03022220121",
"03022220122", "03022220123", "03022220130",
"03022220131", "03022220132", "03022220133",
"03022220211", "03022220213", "03022220231",
"03022220300", "03022220301", "03022220302",
"03022220303", "03022220310", "03022220311",
"03022220312", "03022220320", "03022220321",
"03022220322", "03022220323", "03022220330",
"03022220331", "03022220332", "03022220333",
"03022221000", "03022221001", "03022221003",
"03022221010", "03022221011", "03022221012",
"03022221013", "03022221021", "03022221023",
"03022221030", "03022221031", "03022221032",
"03022221033", "03022221100", "03022221102",
"03022221120", "03022221121", "03022221122",
"03022221201", "03022221210", "03022221211",
"03022221212", "03022221213", "03022221220",
"03022221221", "03022221222", "03022221223",
"03022221230", "03022221231", "03022221232",
"03022221233", "03022221300", "03022221302",
"03022221320", "03022221322", "03022221323",
"03022222111", "03022222113", "03022222131",
"03022223000", "03022223001", "03022223002",
"03022223003", "03022223010", "03022223011",
"03022223012", "03022223013", "03022223020",
"03022223021", "03022223023", "03022223030",
"03022223031", "03022223032", "03022223033",
"03022223100", "03022223101", "03022223102",
"03022223103", "03022223120", "03022223121",
"03022223122", "03022223123", "03022223130",
"03022223131", "03022223132", "03022223133",
"03022223201", "03022223203", "03022223210",
"03022223211", "03022223212", "03022223213",
"03022223221", "03022223230", "03022223231",
"03022223300", "03022223301", "03022223302",
"03022223303", "03022223310", "03022223311",
"03022223312", "03022223313", "03022223330",
"03022223331", "03022230101", "03022230103",
"03022230110", "03022230111", "03022230112",
"03022230113", "03022230121", "03022230130",
"03022230131", "03022230233", "03022230300",
"03022230301", "03022230302", "03022230303",
"03022230310", "03022230311", "03022230312",
"03022230313", "03022230320", "03022230321",
"03022230322", "03022230323", "03022230330",
"03022230331", "03022230332", "03022230333",
"03022231000", "03022231001", "03022231002",
"03022231003", "03022231010", "03022231012",
"03022231020", "03022231021", "03022231030",
"03022231113", "03022231130", "03022231131",
"03022231132", "03022231133", "03022231200",
"03022231202", "03022231203", "03022231220",
"03022231221", "03022231222", "03022231223",
"03022231301", "03022231303", "03022231310",
"03022231311", "03022231312", "03022231313",
"03022231321", "03022231323", "03022231330",
"03022231331", "03022231332", "03022231333",
"03022232003", "03022232010", "03022232011",
"03022232012", "03022232013", "03022232021",
"03022232030", "03022232031", "03022232033",
"03022232100", "03022232101", "03022232102",
"03022232103", "03022232110", "03022232111",
"03022232112", "03022232113", "03022232120",
"03022232121", "03022232122", "03022232123",
"03022232130", "03022232131", "03022232132",
"03022232133", "03022232211", "03022232300",
"03022232301", "03022232310", "03022232311",
"03022233000", "03022233002", "03022233020",
"03022233022", "03022233200", "03022233212",
"03022233213", "03022233230", "03022233231",
"03022233232", "03022233233", "03022233302",
"03022233303", "03022233320", "03022233321",
"03022233322", "03022233323", "03022302230",
"03022302231", "03022302232", "03022302233",
"03022302320", "03022302321", "03022302322",
"03022302323", "03022302332", "03022313312",
"03022313313", "03022313321", "03022313323",
"03022313330", "03022313331", "03022313332",
"03022313333", "03022320002", "03022320003",
"03022320010", "03022320011", "03022320012",
"03022320013", "03022320020", "03022320021",
"03022320022", "03022320023", "03022320030",
"03022320031", "03022320033", "03022320100",
"03022320101", "03022320102", "03022320103",
"03022320112", "03022320113", "03022320120",
"03022320121", "03022320122", "03022320123",
"03022320130", "03022320131", "03022320132",
"03022320133", "03022320200", "03022320201",
"03022320202", "03022320203", "03022320210",
"03022320211", "03022320212", "03022320213",
"03022320220", "03022320221", "03022320222",
"03022320223", "03022320230", "03022320231",
"03022320232", "03022320233", "03022320300",
"03022320301", "03022320302", "03022320303",
"03022320310", "03022320311", "03022320312",
"03022320313", "03022320320", "03022320321",
"03022320322", "03022320323", "03022320330",
"03022320331", "03022320332", "03022320333",
"03022321002", "03022321003", "03022321020",
"03022321021", "03022321022", "03022321023",
"03022321200", "03022321201", "03022321202",
"03022322030", "03022322031", "03022322032",
"03022322033", "03022322103", "03022322110",
"03022322120", "03022322121", "03022322122",
"03022322123", "03022322130", "03022322131",
"03022322132", "03022322133", "03022322210",
"03022322211", "03022322212", "03022322213",
"03022322230", "03022322231", "03022322300",
"03022322301", "03022322302", "03022322303",
"03022322320", "03022322321", "03022323021",
"03022323022", "03022323023", "03022323122",
"03022323123", "03022323132", "03022323133",
"03022323200", "03022323201", "03022323202",
"03022323203", "03022323210", "03022323211",
"03022323212", "03022323213", "03022323231",
"03022323233", "03022323300", "03022323301",
"03022323302", "03022323303", "03022323310",
"03022323311", "03022323312", "03022323313",
"03022323320", "03022323321", "03022323322",
"03022323323", "03022323330", "03022323331",
"03022330332", "03022330333", "03022331110",
"03022331111", "03022331112", "03022331113",
"03022331121", "03022331123", "03022331130",
"03022331131", "03022331132", "03022331133",
"03022331211", "03022331212", "03022331213",
"03022331220", "03022331221", "03022331222",
"03022331223", "03022331230", "03022331231",
"03022331232", "03022331233", "03022331300",
"03022331301", "03022331302", "03022331303",
"03022331310", "03022331311", "03022331312",
"03022331313", "03022331320", "03022331321",
"03022331322", "03022331323", "03022331330",
"03022331332", "03022332002", "03022332003",
"03022332010", "03022332011", "03022332012",
"03022332013", "03022332020", "03022332021",
"03022332022", "03022332023", "03022332030",
"03022332031", "03022332032", "03022332033",
"03022332101", "03022332103", "03022332110",
"03022332111", "03022332112", "03022332113",
"03022332122", "03022332123", "03022332132",
"03022332200", "03022332201", "03022332202",
"03022332203", "03022332210", "03022332211",
"03022332212", "03022332213", "03022332220",
"03022332221", "03022332230", "03022332231",
"03022332232", "03022332233", "03022332300",
"03022332301", "03022332302", "03022332303",
"03022332310", "03022332312", "03022332320",
"03022332321", "03022332322", "03022332323",
"03022332330", "03022332332", "03022332333",
"03022333000", "03022333001", "03022333002",
"03022333003", "03022333010", "03022333011",
"03022333012", "03022333013", "03022333100",
"03022333101", "03022333110", "03022333220",
"03022333221", "03022333222", "03022333223",
"03022333230", "03022333232", "03023202202",
"03023202203", "03023202212", "03023202213",
"03023202220", "03023202221", "03023202222",
"03023202223", "03023202230", "03023202231",
"03023202232", "03023202233", "03023202302",
"03023202303", "03023202320", "03023202321",
"03023202322", "03023202323", "03023202330",
"03023202331", "03023202332", "03023202333",
"03023203130", "03023203131", "03023203132",
"03023203133", "03023203202", "03023203203",
"03023203212", "03023203213", "03023203220",
"03023203221", "03023203222", "03023203223",
"03023203230", "03023203231", "03023203232",
"03023203233", "03023203300", "03023203301",
"03023203302", "03023203303", "03023203310",
"03023203311", "03023203312", "03023203313",
"03023203320", "03023203321", "03023203322",
"03023203323", "03023203330", "03023203331",
"03023203332", "03023203333", "03023210110",
"03023210111", "03023210112", "03023210113",
"03023210131", "03023210133", "03023210230",
"03023210231", "03023210232", "03023210233",
"03023210311", "03023210313", "03023210322",
"03023210331", "03023210333", "03023211000",
"03023211001", "03023211002", "03023211003",
"03023211010", "03023211011", "03023211012",
"03023211013", "03023211020", "03023211021",
"03023211022", "03023211023", "03023211030",
"03023211031", "03023211032", "03023211033",
"03023211131", "03023211132", "03023211133",
"03023211200", "03023211201", "03023211202",
"03023211203", "03023211210", "03023211211",
"03023211212", "03023211213", "03023211220",
"03023211221", "03023211222", "03023211223",
"03023211230", "03023211232", "03023211310",
"03023211311", "03023211312", "03023211313",
"03023211330", "03023211331", "03023212001",
"03023212002", "03023212003", "03023212010",
"03023212011", "03023212012", "03023212013",
"03023212020", "03023212021", "03023212022",
"03023212023", "03023212030", "03023212031",
"03023212032", "03023212033", "03023212100",
"03023212102", "03023212111", "03023212120",
"03023212122", "03023212200", "03023212201",
"03023212202", "03023212203", "03023212210",
"03023212211", "03023212212", "03023212213",
"03023212220", "03023212222", "03023212223",
"03023212232", "03023212233", "03023212300",
"03023212312", "03023212313", "03023212330",
"03023212331", "03023212332", "03023212333",
"03023213000", "03023213001", "03023213112",
"03023213121", "03023213123", "03023213130",
"03023213132", "03023213133", "03023213220",
"03023213221", "03023213222", "03023213223",
"03023213230", "03023213232", "03023213300",
"03023213301", "03023213303", "03023213310",
"03023213311", "03023213312", "03023213313",
"03023213321", "03023213323", "03023213330",
"03023213331", "03023213332", "03023213333",
"03023220000", "03023220001", "03023220002",
"03023220003", "03023220010", "03023220011",
"03023220012", "03023220013", "03023220020",
"03023220021", "03023220022", "03023220023",
"03023220030", "03023220031", "03023220032",
"03023220033", "03023220100", "03023220101",
"03023220102", "03023220103", "03023220110",
"03023220111", "03023220112", "03023220113",
"03023220120", "03023220122", "03023220123",
"03023220130", "03023220131", "03023220132",
"03023220133", "03023220200", "03023220201",
"03023220202", "03023220210", "03023220211",
"03023220212", "03023220213", "03023220230",
"03023220231", "03023220232", "03023220233",
"03023220300", "03023220301", "03023220302",
"03023220303", "03023220310", "03023220311",
"03023220312", "03023220313", "03023220320",
"03023220321", "03023220322", "03023220323",
"03023220330", "03023220331", "03023220332",
"03023220333", "03023221000", "03023221001",
"03023221002", "03023221003", "03023221010",
"03023221011", "03023221012", "03023221013",
"03023221020", "03023221021", "03023221022",
"03023221023", "03023221030", "03023221031",
"03023221032", "03023221033", "03023221100",
"03023221101", "03023221102", "03023221103",
"03023221110", "03023221111", "03023221112",
"03023221113", "03023221120", "03023221121",
"03023221122", "03023221123", "03023221130",
"03023221131", "03023221132", "03023221200",
"03023221201", "03023221202", "03023221203",
"03023221210", "03023221211", "03023221212",
"03023221213", "03023221220", "03023221221",
"03023221222", "03023221223", "03023221230",
"03023221231", "03023221232", "03023221233",
"03023221300", "03023221301", "03023221302",
"03023221303", "03023221310", "03023221312",
"03023221313", "03023221320", "03023221321",
"03023221322", "03023221323", "03023221330",
"03023221331", "03023221332", "03023221333",
"03023222010", "03023222011", "03023222100",
"03023222101", "03023222110", "03023222111",
"03023223000", "03023223001", "03023223010",
"03023223011", "03023223100", "03023223101",
"03023223110", "03023223111", "03023223301",
"03023223303", "03023223310", "03023223311",
"03023223312", "03023223313", "03023223321",
"03023223323", "03023223330", "03023223331",
"03023223332", "03023223333", "03023230000",
"03023230001", "03023230002", "03023230003",
"03023230010", "03023230012", "03023230013",
"03023230020", "03023230021", "03023230030",
"03023230031", "03023230102", "03023230110",
"03023230111", "03023230113", "03023230120",
"03023230331", "03023230333", "03023231000",
"03023231001", "03023231002", "03023231003",
"03023231010", "03023231011", "03023231012",
"03023231013", "03023231021", "03023231023",
"03023231030", "03023231031", "03023231032",
"03023231033", "03023231100", "03023231101",
"03023231102", "03023231103", "03023231110",
"03023231111", "03023231112", "03023231113",
"03023231120", "03023231121", "03023231122",
"03023231123", "03023231130", "03023231131",
"03023231132", "03023231133", "03023231200",
"03023231201", "03023231202", "03023231203",
"03023231210", "03023231211", "03023231212",
"03023231213", "03023231220", "03023231221",
"03023231222", "03023231223", "03023231230",
"03023231231", "03023231232", "03023231233",
"03023231300", "03023231301", "03023231302",
"03023231303", "03023231310", "03023231311",
"03023231312", "03023231313", "03023231320",
"03023231321", "03023231322", "03023231323",
"03023231330", "03023231331", "03023231332",
"03023231333", "03023232101", "03023232102",
"03023232103", "03023232110", "03023232111",
"03023232112", "03023232113", "03023232120",
"03023232121", "03023232122", "03023232123",
"03023232130", "03023232131", "03023232132",
"03023232133", "03023232200", "03023232201",
"03023232202", "03023232203", "03023232220",
"03023232221", "03023232222", "03023232223",
"03023232230", "03023232232", "03023232301",
"03023232310", "03023232311", "03023232312",
"03023232313", "03023232321", "03023232322",
"03023232323", "03023232331", "03023232332",
"03023232333", "03023233000", "03023233002",
"03023233010", "03023233011", "03023233012",
"03023233013", "03023233020", "03023233021",
"03023233022", "03023233023", "03023233030",
"03023233031", "03023233032", "03023233033",
"03023233100", "03023233101", "03023233102",
"03023233103", "03023233110", "03023233111",
"03023233112", "03023233113", "03023233120",
"03023233121", "03023233122", "03023233123",
"03023233130", "03023233131", "03023233132",
"03023233133", "03023233200", "03023233201",
"03023233202", "03023233203", "03023233210",
"03023233211", "03023233212", "03023233213",
"03023233220", "03023233221", "03023233222",
"03023233223", "03023233230", "03023233231",
"03023233232", "03023233233", "03023233300",
"03023233301", "03023233302", "03023233303",
"03023233310", "03023233311", "03023233312",
"03023233313", "03023233320", "03023233321",
"03023233322", "03023233323", "03023233330",
"03023233331", "03023233332", "03023233333",
"03023300020", "03023300022", "03023300023",
"03023300200", "03023300201", "03023300202",
"03023300203", "03023300210", "03023300212",
"03023300220", "03023300221", "03023300222",
"03023300223", "03023301313", "03023301322",
"03023301323", "03023301330", "03023301331",
"03023301332", "03023301333", "03023302323",
"03023302330", "03023302331", "03023302332",
"03023302333", "03023303100", "03023303101",
"03023303103", "03023303110", "03023303111",
"03023303112", "03023303113", "03023303121",
"03023303123", "03023303130", "03023303131",
"03023303132", "03023303133", "03023303213",
"03023303220", "03023303222", "03023303223",
"03023303230", "03023303231", "03023303232",
"03023303233", "03023303302", "03023303310",
"03023303311", "03023303320", "03023303322",
"03023303323", "03023310200", "03023310201",
"03023310202", "03023310203", "03023310220",
"03023310221", "03023310222", "03023310223",
"03023312000", "03023312001", "03023312002",
"03023312003", "03023312010", "03023312011",
"03023312012", "03023312013", "03023312020",
"03023312021", "03023312022", "03023312200",
"03023320020", "03023320021", "03023320022",
"03023320023", "03023320030", "03023320031",
"03023320032", "03023320033", "03023320101",
"03023320103", "03023320110", "03023320111",
"03023320112", "03023320113", "03023320120",
"03023320121", "03023320122", "03023320123",
"03023320130", "03023320131", "03023320132",
"03023320133", "03023320200", "03023320201",
"03023320202", "03023320203", "03023320210",
"03023320211", "03023320212", "03023320213",
"03023320220", "03023320221", "03023320222",
"03023320223", "03023320230", "03023320231",
"03023320232", "03023320233", "03023320300",
"03023320301", "03023320302", "03023320303",
"03023320310", "03023320311", "03023320312",
"03023320313", "03023320320", "03023320321",
"03023320322", "03023320323", "03023320330",
"03023320331", "03023320332", "03023320333",
"03023321000", "03023321001", "03023321002",
"03023321003", "03023321010", "03023321011",
"03023321012", "03023321013", "03023321020",
"03023321021", "03023321022", "03023321023",
"03023321030", "03023321031", "03023321032",
"03023321033", "03023321100", "03023321101",
"03023321102", "03023321103", "03023321120",
"03023321121", "03023321122", "03023321123",
"03023321130", "03023321132", "03023321200",
"03023321201", "03023321202", "03023321203",
"03023321210", "03023321211", "03023321212",
"03023321213", "03023321220", "03023321221",
"03023321222", "03023321223", "03023321230",
"03023321231", "03023321232", "03023321233",
"03023321300", "03023321301", "03023321302",
"03023321320", "03023321321", "03023321322",
"03023321323", "03023321332", "03023322000",
"03023322001", "03023322002", "03023322003",
"03023322010", "03023322011", "03023322012",
"03023322013", "03023322020", "03023322021",
"03023322022", "03023322023", "03023322030",
"03023322031", "03023322032", "03023322033",
"03023322100", "03023322101", "03023322102",
"03023322103", "03023322110", "03023322111",
"03023322112", "03023322113", "03023322120",
"03023322121", "03023322122", "03023322123",
"03023322130", "03023322131", "03023322132",
"03023322133", "03023322200", "03023322201",
"03023322202", "03023322203", "03023322210",
"03023322211", "03023322212", "03023322213",
"03023322220", "03023322221", "03023322222",
"03023322223", "03023322230", "03023322231",
"03023322232", "03023322233", "03023322300",
"03023322301", "03023322302", "03023322303",
"03023322310", "03023322311", "03023322312",
"03023322313", "03023322320", "03023322321",
"03023322322", "03023322323", "03023322330",
"03023322332", "03023322333", "03023323000",
"03023323001", "03023323002", "03023323003",
"03023323010", "03023323011", "03023323012",
"03023323013", "03023323020", "03023323021",
"03023323023", "03023323030", "03023323031",
"03023323032", "03023323033", "03023323100",
"03023323101", "03023323102", "03023323103",
"03023323110", "03023323112", "03023323113",
"03023323120", "03023323121", "03023323122",
"03023323123", "03023323130", "03023323131",
"03023323132", "03023323133", "03023323201",
"03023323210", "03023323211", "03023323300",
"03023323301", "03023323302", "03023323303",
"03023323310", "03023323311", "03023323312",
"03023323313", "03023330222", "03023330223",
"03023332000", "03023332001", "03023332002",
"03023332003", "03023332010", "03023332012",
"03023332020", "03023332021", "03023332022",
"03023332023", "03023332030", "03023332032",
"03023332201", "03023332202", "03023332203",
"03023332212", "03023332220", "03023332221",
"03131010323", "03131010332", "03131012110",
"03131013121", "03131013123", "03131013130",
"03131013131", "03131013132", "03131013133",
"03131013211", "03131013213", "03131013300",
"03131013301", "03131013302", "03131013310",
"03131013311", "03131023011", "03131023100",
"03131100121", "03131100123", "03131100130",
"03131100132", "03131102020", "03131102022",
"03131103110", "03131103111", "03131103112",
"03131103113", "03131110332", "03131110333",
"03131111222", "03131112110", "03131112111",
"03131112112", "03131112113", "03131112310",
"03131112311", "03131113000", "03131113002",
"03131113020", "03131113021", "03131113022",
"03131113023", "03131113200", "03131113201",
"03131113321", "03131113323", "03131121111",
"03131121113", "03131121130", "03131121131",
"03131121132", "03131121133", "03131121310",
"03131121311", "03131121312", "03131121313",
"03131121322", "03131123011", "03131123100",
"03131123110", "03131123111", "03131123112",
"03131123113", "03131123313", "03131123331",
"03131130000", "03131130002", "03131130022",
"03131130023", "03131130031", "03131130032",
"03131130033", "03131130112", "03131130113",
"03131130121", "03131130123", "03131130130",
"03131130131", "03131130132", "03131130133",
"03131130200", "03131130201", "03131130210",
"03131130211", "03131130301", "03131130303",
"03131130310", "03131130311", "03131130312",
"03131130313", "03131130331", "03131130333",
"03131131003", "03131131012", "03131131020",
"03131131021", "03131131022", "03131131030",
"03131131123", "03131131132", "03131131200",
"03131131202", "03131131203", "03131131211",
"03131131212", "03131131213", "03131131220",
"03131131221", "03131131222", "03131131230",
"03131131231", "03131131300", "03131131301",
"03131131302", "03131131310", "03131131313",
"03131131320", "03131131331", "03131132000",
"03131132002", "03131132003", "03131132011",
"03131132012", "03131132021", "03131132030",
"03131132031", "03131132032", "03131132033",
"03131132100", "03131132111", "03131132113",
"03131132120", "03131132122", "03131132132",
"03131132133", "03131132202", "03131132203",
"03131132211", "03131132212", "03131132213",
"03131132220", "03131132221", "03131132230",
"03131132231", "03131132233", "03131132300",
"03131132302", "03131132310", "03131132311",
"03131132320", "03131132321", "03131132322",
"03131132323", "03131132330", "03131132332",
"03131132333", "03131133000", "03131133002",
"03131133003", "03131133020", "03131133021",
"03131133022", "03131133023", "03131133030",
"03131133032", "03131133100", "03131133101",
"03131133102", "03131133103", "03131133200",
"03131133201", "03131133203", "03131133210",
"03131133212", "03131133220", "03131133221",
"03131133222", "03131133223", "03131133230",
"03131133232", "03131133323", "03131133330",
"03131133332", "03131301222", "03131301223",
"03131301232", "03131301323", "03131301332",
"03131301333", "03131303000", "03131303001",
"03131303010", "03131303101", "03131303102",
"03131303103", "03131303110", "03131303111",
"03131303112", "03131303120", "03131303121",
"03131303130", "03131303131", "03131303233",
"03131303312", "03131303322", "03131310010",
"03131310011", "03131310012", "03131310013",
"03131310022", "03131310031", "03131310033",
"03131310100", "03131310101", "03131310102",
"03131310103", "03131310110", "03131310111",
"03131310112", "03131310113", "03131310120",
"03131310121", "03131310130", "03131310131",
"03131310200", "03131310212", "03131310213",
"03131310230", "03131310231", "03131310302",
"03131310323", "03131310332", "03131311000",
"03131311001", "03131311002", "03131311003",
"03131311011", "03131311012", "03131311013",
"03131311030", "03131311031", "03131311032",
"03131311033", "03131311100", "03131311102",
"03131311113", "03131311120", "03131311121",
"03131311122", "03131311123", "03131311131",
"03131311210", "03131311211", "03131311213",
"03131311220", "03131311221", "03131311222",
"03131311223", "03131311231", "03131311232",
"03131311233", "03131311300", "03131311301",
"03131311302", "03131311303", "03131311310",
"03131311312", "03131311320", "03131311321",
"03131311322", "03131311323", "03131311330",
"03131311331", "03131311332", "03131311333",
"03131312000", "03131312001", "03131312002",
"03131312003", "03131312010", "03131312012",
"03131312013", "03131312020", "03131312021",
"03131312030", "03131312031", "03131312101",
"03131312103", "03131312110", "03131312112",
"03131312312", "03131312313", "03131312322",
"03131312323", "03131312330", "03131312331",
"03131312332", "03131312333", "03131313001",
"03131313002", "03131313003", "03131313010",
"03131313011", "03131313012", "03131313013",
"03131313020", "03131313021", "03131313023",
"03131313030", "03131313031", "03131313032",
"03131313033", "03131313100", "03131313101",
"03131313102", "03131313103", "03131313110",
"03131313111", "03131313112", "03131313113",
"03131313120", "03131313121", "03131313122",
"03131313123", "03131313130", "03131313131",
"03131313132", "03131313133", "03131313202",
"03131313203", "03131313210", "03131313211",
"03131313212", "03131313220", "03131313221",
"03131313222", "03131313223", "03131313230",
"03131313232", "03131313233", "03131313321",
"03131313322", "03131313323", "03131313330",
"03131313331", "03131313332", "03131313333",
"03131320131", "03131320133", "03131321011",
"03131321013", "03131321020", "03131321021",
"03131321022", "03131321023", "03131321031",
"03131321033", "03131321100", "03131321102",
"03131321120", "03131330001", "03131330003",
"03131330010", "03131330012", "03131330100",
"03131330101", "03131330110", "03133113232",
"03133113233", "03133131010", "03133131011",
"03133131222", "03133131223", "03133131303",
"03133131321", "03133213132", "03133213133",
"03133213310", "03133213311", "03133213312",
"03133213313", "03133213330", "03133213331",
"03133221113", "03133221310", "03133221311",
"03133221312", "03133221313", "03133221321",
"03133221330", "03133221331", "03133221332",
"03133223133", "03133223311", "03133223312",
"03133223313", "03133223330", "03133223331",
"03133223332", "03133223333", "03133230002",
"03133230100", "03133230101", "03133230212",
"03133230213", "03133230231", "03133231032",
"03133231133", "03133231210", "03133232022",
"03133232200", "03133232201", "03133233133",
"03133233311", "03133233333", "03133302200",
"03133303201", "03133303202", "03133303203",
"03133303210", "03133303212", "03133303220",
"03133303221", "03133311102", "03133311103",
"03133311120", "03133311121", "03133312303",
"03133312312", "03133312321", "03133320022",
"03133320332", "03133321212", "03133321213",
"03133322110", "03133322120", "03133322121",
"03133322122", "03133322123", "03133322222",
"03133323222", "03133330112", "03133330130",
"03133333021", "03133333023", "03133333030",
"03133333031", "03133333032", "03133333033",
"03200000320", "03200000321", "03200000322",
"03200000323", "03200000330", "03200000331",
"03200000332", "03200000333", "03200002100",
"03200002101", "03200002102", "03200002103",
"03200002110", "03200002111", "03200002112",
"03200002113", "03200002120", "03200002121",
"03200002130", "03200002131", "03200002220",
"03200002222", "03200003002", "03200003003",
"03200003012", "03200003013", "03200003020",
"03200003021", "03200003022", "03200003023",
"03200003030", "03200003031", "03200003032",
"03200003033", "03200003200", "03200003201",
"03200003210", "03200003211", "03200010232",
"03200010233", "03200010302", "03200010303",
"03200010312", "03200010313", "03200010320",
"03200010321", "03200010322", "03200010323",
"03200010330", "03200010331", "03200010332",
"03200010333", "03200011010", "03200011011",
"03200011100", "03200011101", "03200011201",
"03200011203", "03200011210", "03200011211",
"03200011212", "03200011213", "03200011220",
"03200011221", "03200011223", "03200011230",
"03200011231", "03200011232", "03200011233",
"03200011322", "03200011323", "03200011333",
"03200012010", "03200012011", "03200012012",
"03200012013", "03200012030", "03200012031",
"03200012100", "03200012101", "03200012102",
"03200012103", "03200012110", "03200012111",
"03200012112", "03200012113", "03200012120",
"03200012121", "03200012122", "03200012123",
"03200012130", "03200012131", "03200012132",
"03200012133", "03200012301", "03200012310",
"03200012311", "03200013011", "03200013013",
"03200013100", "03200013101", "03200013102",
"03200013103", "03200013111", "03200013113",
"03200013121", "03200013123", "03200013130",
"03200013131", "03200013132", "03200013133",
"03200013301", "03200013303", "03200013310",
"03200013311", "03200013312", "03200013313",
"03200013321", "03200013330", "03200013331",
"03200013332", "03200013333", "03200020000",
"03200020001", "03200020002", "03200020003",
"03200020010", "03200020012", "03200021301",
"03200021303", "03200021310", "03200021312",
"03200021321", "03200021323", "03200021330",
"03200023113", "03200023130", "03200023131",
"03200023132", "03200023133", "03200023311",
"03200023313", "03200030113", "03200030130",
"03200030131", "03200030132", "03200030133",
"03200030310", "03200030311", "03200030312",
"03200030313", "03200030331", "03200031002",
"03200031003", "03200031012", "03200031020",
"03200031021", "03200031022", "03200031023",
"03200031030", "03200031032", "03200031110",
"03200031111", "03200031200", "03200031201",
"03200031202", "03200031203", "03200031210",
"03200031212", "03200031220", "03200031310",
"03200031311", "03200031312", "03200031313",
"03200031321", "03200031323", "03200031330",
"03200031331", "03200031332", "03200031333",
"03200032002", "03200032020", "03200032021",
"03200032022", "03200032023", "03200032200",
"03200032201", "03200032202", "03200032203",
"03200033110", "03200033111", "03200100221",
"03200100222", "03200100223", "03200100230",
"03200100231", "03200100232", "03200100233",
"03200100311", "03200100312", "03200100313",
"03200100320", "03200100322", "03200100323",
"03200100330", "03200100331", "03200100332",
"03200100333", "03200101202", "03200101220",
"03200101221", "03200101222", "03200101223",
"03200102000", "03200102001", "03200102002",
"03200102003", "03200102010", "03200102011",
"03200102012", "03200102013", "03200102020",
"03200102021", "03200102022", "03200102023",
"03200102030", "03200102031", "03200102032",
"03200102100", "03200102101", "03200102102",
"03200102103", "03200102110", "03200102111",
"03200102112", "03200102113", "03200102120",
"03200102121", "03200102122", "03200102123",
"03200102130", "03200102131", "03200102132",
"03200102133", "03200102200", "03200102201",
"03200102202", "03200102203", "03200102210",
"03200102212", "03200102220", "03200102221",
"03200102222", "03200102223", "03200102230",
"03200102232", "03200102300", "03200102301",
"03200102303", "03200102310", "03200102311",
"03200102312", "03200102313", "03200103000",
"03200103001", "03200103002", "03200103003",
"03200103020", "03200103021", "03200103022",
"03200103023", "03200103200", "03200103201",
"03200103202", "03200103203", "03200110010",
"03200110011", "03200110100", "03200110101",
"03200110110", "03200110111", "03200110112",
"03200110113", "03200110121", "03200110130",
"03200110131", "03200110132", "03200110133",
"03200110310", "03200110311", "03200110312",
"03200110313", "03200110323", "03200110330",
"03200110331", "03200110332", "03200110333",
"03200111000", "03200111001", "03200111002",
"03200111003", "03200111010", "03200111012",
"03200111020", "03200111021", "03200111022",
"03200111023", "03200111030", "03200111031",
"03200111032", "03200111033", "03200111122",
"03200111123", "03200111132", "03200111200",
"03200111201", "03200111202", "03200111203",
"03200111210", "03200111211", "03200111212",
"03200111213", "03200111220", "03200111221",
"03200111222", "03200111223", "03200111230",
"03200111231", "03200111300", "03200111301",
"03200111302", "03200111303", "03200111310",
"03200111312", "03200111320", "03200111321",
"03200111322", "03200111323", "03200111330",
"03200112101", "03200112103", "03200112110",
"03200112111", "03200112112", "03200112113",
"03200113000", "03200113001", "03200113002",
"03200113003", "03200120000", "03200120001",
"03200120010", "03200120120", "03200120121",
"03200120122", "03200120123", "03200120132",
"03200120200", "03200120202", "03200120211",
"03200120213", "03200120220", "03200120222",
"03200120300", "03200120301", "03200120302",
"03200120303", "03200120310", "03200120311",
"03200120312", "03200120320", "03200120321",
"03200121113", "03200121121", "03200121123",
"03200121130", "03200121131", "03200121132",
"03200121133", "03200121310", "03200121311",
"03200121312", "03200121313", "03200130020",
"03200130022", "03200130123", "03200130200",
"03200130201", "03200130202", "03200130203",
"03200130301", "03200130310", "03200133020",
"03200133021", "03200133022", "03200133023",
"03200201223", "03200201232", "03200201233",
"03200202000", "03200202001", "03200202002",
"03200202003", "03200202010", "03200202012",
"03200202020", "03200202021", "03200202022",
"03200202023", "03200202030", "03200202031",
"03200202032", "03200202033", "03200202120",
"03200202121", "03200202122", "03200202123",
"03200202130", "03200202131", "03200202132",
"03200202133", "03200202200", "03200202201",
"03200202202", "03200202203", "03200202210",
"03200202211", "03200202212", "03200202213",
"03200202220", "03200202221", "03200202222",
"03200202223", "03200202230", "03200202231",
"03200202232", "03200202233", "03200202300",
"03200202301", "03200202302", "03200202303",
"03200202310", "03200202311", "03200202312",
"03200202313", "03200202320", "03200202321",
"03200202322", "03200202323", "03200202330",
"03200202331", "03200202332", "03200202333",
"03200203001", "03200203003", "03200203010",
"03200203011", "03200203012", "03200203013",
"03200203020", "03200203021", "03200203022",
"03200203023", "03200203030", "03200203031",
"03200203032", "03200203033", "03200203200",
"03200203202", "03200203203", "03200203212",
"03200203220", "03200203221", "03200203222",
"03200203223", "03200203230", "03200203232",
"03200203233", "03200203322", "03200203323",
"03200203332", "03200203333", "03200210002",
"03200210003", "03200210012", "03200210013",
"03200210020", "03200210021", "03200210022",
"03200210023", "03200210030", "03200210031",
"03200210032", "03200210033", "03200210120",
"03200210122", "03200210200", "03200210201",
"03200210210", "03200210211", "03200210212",
"03200210213", "03200210230", "03200210231",
"03200210232", "03200210233", "03200210300",
"03200210301", "03200210302", "03200210303",
"03200210310", "03200210320", "03200210321",
"03200210322", "03200210323", "03200211131",
"03200211133", "03200211233", "03200211301",
"03200211303", "03200211310", "03200211311",
"03200211312", "03200211313", "03200211321",
"03200211322", "03200211330", "03200211331",
"03200211332", "03200212010", "03200212011",
"03200212013", "03200212030", "03200212031",
"03200212032", "03200212033", "03200212100",
"03200212101", "03200212102", "03200212120",
"03200212121", "03200212122", "03200212123",
"03200212202", "03200212203", "03200212210",
"03200212211", "03200212212", "03200212213",
"03200212220", "03200212221", "03200212222",
"03200212223", "03200212230", "03200212231",
"03200212232", "03200212233", "03200212300",
"03200212301", "03200212302", "03200212303",
"03200212312", "03200212313", "03200212320",
"03200212321", "03200212322", "03200212323",
"03200212330", "03200212331", "03200212332",
"03200212333", "03200213003", "03200213010",
"03200213011", "03200213012", "03200213013",
"03200213021", "03200213022", "03200213023",
"03200213030", "03200213031", "03200213032",
"03200213033", "03200213100", "03200213101",
"03200213102", "03200213103", "03200213110",
"03200213112", "03200213113", "03200213120",
"03200213121", "03200213122", "03200213123",
"03200213130", "03200213131", "03200213132",
"03200213133", "03200213200", "03200213201",
"03200213202", "03200213203", "03200213210",
"03200213211", "03200213220", "03200213221",
"03200213222", "03200213223", "03200213300",
"03200220000", "03200220001", "03200220002",
"03200220003", "03200220010", "03200220011",
"03200220012", "03200220013", "03200220020",
"03200220021", "03200220022", "03200220023",
"03200220030", "03200220031", "03200220032",
"03200220033", "03200220100", "03200220101",
"03200220102", "03200220103", "03200220110",
"03200220111", "03200220112", "03200220113",
"03200220120", "03200220121", "03200220122",
"03200220123", "03200220130", "03200220131",
"03200220132", "03200220133", "03200220200",
"03200220201", "03200220210", "03200220211",
"03200220213", "03200220230", "03200220231",
"03200220232", "03200220233", "03200220300",
"03200220301", "03200220302", "03200220303",
"03200220310", "03200220311", "03200220312",
"03200220313", "03200220320", "03200220321",
"03200220322", "03200220323", "03200220330",
"03200220331", "03200220332", "03200220333",
"03200221000", "03200221001", "03200221002",
"03200221003", "03200221010", "03200221011",
"03200221012", "03200221013", "03200221020",
"03200221021", "03200221022", "03200221023",
"03200221030", "03200221031", "03200221032",
"03200221033", "03200221100", "03200221101",
"03200221102", "03200221103", "03200221110",
"03200221111", "03200221112", "03200221113",
"03200221120", "03200221121", "03200221122",
"03200221123", "03200221130", "03200221131",
"03200221132", "03200221133", "03200221200",
"03200221201", "03200221202", "03200221203",
"03200221210", "03200221211", "03200221212",
"03200221213", "03200221220", "03200221221",
"03200221222", "03200221223", "03200221300",
"03200221301", "03200221302", "03200221303",
"03200221310", "03200221311", "03200221312",
"03200221313", "03200221331", "03200222000",
"03200222001", "03200222002", "03200222003",
"03200222010", "03200222011", "03200222012",
"03200222013", "03200222021", "03200222023",
"03200222030", "03200222031", "03200222032",
"03200222033", "03200222100", "03200222101",
"03200222102", "03200222103", "03200222110",
"03200222111", "03200222112", "03200222113",
"03200222120", "03200222121", "03200222122",
"03200222123", "03200222130", "03200222131",
"03200222132", "03200222133", "03200222200",
"03200222201", "03200222202", "03200222203",
"03200222210", "03200222211", "03200222213",
"03200222220", "03200222221", "03200222222",
"03200222231", "03200222300", "03200222301",
"03200222302", "03200222303", "03200222310",
"03200222311", "03200222312", "03200222320",
"03200222321", "03200222330", "03200223000",
"03200223001", "03200223002", "03200223003",
"03200223020", "03200223021", "03200223022",
"03200223023", "03200223200", "03200223201",
"03200230000", "03200230001", "03200230002",
"03200230010", "03200230011", "03200230020",
"03200230021", "03200230022", "03200230023",
"03200230030", "03200230032", "03200230033",
"03200230100", "03200230101", "03200230102",
"03200230103", "03200230110", "03200230111",
"03200230112", "03200230113", "03200230120",
"03200230121", "03200230122", "03200230123",
"03200230130", "03200230131", "03200230132",
"03200230133", "03200230200", "03200230201",
"03200230202", "03200230203", "03200230210",
"03200230211", "03200230212", "03200230213",
"03200230220", "03200230221", "03200230222",
"03200230223", "03200230230", "03200230231",
"03200230232", "03200230300", "03200230302",
"03200231000", "03200231002", "03200231020",
"03200231103", "03200231112", "03200231113",
"03200231121", "03200231123", "03200231130",
"03200231131", "03200231132", "03200231133",
"03200231301", "03200231303", "03200231310",
"03200231311", "03200231312", "03200231313",
"03200231331", "03200232120", "03200232121",
"03200232122", "03200232123", "03200232130",
"03200232131", "03200232132", "03200232133",
"03200232211", "03200232213", "03200232300",
"03200232301", "03200232302", "03200232303",
"03200232310", "03200232311", "03200232312",
"03200232313", "03200233033", "03200233122",
"03200233123", "03200233132", "03200233211",
"03200233300", "03200233301", "03200233302",
"03200233303", "03200233310", "03200300003",
"03200300012", "03200300020", "03200300021",
"03200300022", "03200300023", "03200300030",
"03200300031", "03200300032", "03200300033",
"03200300120", "03200300122", "03200300200",
"03200300201", "03200300202", "03200300203",
"03200300210", "03200300211", "03200300212",
"03200300213", "03200300220", "03200300221",
"03200300222", "03200300223", "03200300230",
"03200300231", "03200300232", "03200300233",
"03200300300", "03200300302", "03200300320",
"03200300322", "03200301203", "03200301212",
"03200301221", "03200301222", "03200301223",
"03200301230", "03200301231", "03200301232",
"03200301233", "03200301320", "03200301322",
"03200302001", "03200302002", "03200302003",
"03200302010", "03200302011", "03200302012",
"03200302013", "03200302020", "03200302021",
"03200302022", "03200302023", "03200302030",
"03200302031", "03200302032", "03200302100",
"03200302102", "03200302222", "03200302223",
"03200302232", "03200303001", "03200303010",
"03200303011", "03200303023", "03200303032",
"03200303033", "03200303102", "03200303103",
"03200303112", "03200303120", "03200303121",
"03200303122", "03200303123", "03200303130",
"03200303132", "03200303133", "03200303201",
"03200303210", "03200303211", "03200303212",
"03200303213", "03200303300", "03200303301",
"03200303302", "03200303303", "03200303310",
"03200303311", "03200303312", "03200303321",
"03200303330", "03200310123", "03200310130",
"03200310131", "03200310132", "03200310133",
"03200310233", "03200310301", "03200310310",
"03200310311", "03200310322", "03200310323",
"03200310332", "03200310333", "03200311020",
"03200311021", "03200311022", "03200311023",
"03200311030", "03200311031", "03200311032",
"03200311033", "03200311120", "03200311121",
"03200311122", "03200311123", "03200311130",
"03200311131", "03200311132", "03200311133",
"03200311200", "03200311201", "03200311203",
"03200311210", "03200311211", "03200311212",
"03200311213", "03200311300", "03200311301",
"03200311302", "03200311303", "03200311310",
"03200311311", "03200311312", "03200311313",
"03200311330", "03200311331", "03200311332",
"03200311333", "03200312000", "03200312001",
"03200312002", "03200312003", "03200312010",
"03200312011", "03200312012", "03200312013",
"03200312021", "03200312030", "03200312031",
"03200312032", "03200312033", "03200312100",
"03200312101", "03200312102", "03200312103",
"03200312110", "03200312111", "03200312112",
"03200312113", "03200312120", "03200312121",
"03200312122", "03200312123", "03200312130",
"03200312131", "03200312132", "03200312133",
"03200312300", "03200312301", "03200312310",
"03200312311", "03200320000", "03200320001",
"03200320002", "03200320003", "03200320010",
"03200320012", "03200320013", "03200320020",
"03200320021", "03200320022", "03200320023",
"03200320030", "03200320031", "03200320032",
"03200320033", "03200320102", "03200320103",
"03200320112", "03200320120", "03200320121",
"03200320123", "03200320130", "03200320132",
"03200320200", "03200320201", "03200320202",
"03200320203", "03200320210", "03200320211",
"03200320212", "03200320213", "03200320220",
"03200320230", "03200320231", "03200320300",
"03200320302", "03200321131", "03200321133",
"03200321301", "03200321302", "03200321303",
"03200321312", "03200321320", "03200321321",
"03200321322", "03200321323", "03200321330",
"03200321332", "03200322012", "03200322013",
"03200322030", "03200322031", "03200322033",
"03200322102", "03200322103", "03200322120",
"03200322121", "03200322122", "03200322211",
"03200322300", "03200322301", "03200330000",
"03200330001", "03200330002", "03200330003",
"03200330010", "03200330011", "03200330012",
"03200330013", "03200330020", "03200330021",
"03200330022", "03200330023", "03200330030",
"03200330031", "03200330032", "03200330033",
"03200330100", "03200330102", "03200330103",
"03200330120", "03200330121", "03200330122",
"03200330123", "03200330200", "03200330201",
"03200330210", "03200330211", "03200331132",
"03200331133", "03200331310", "03200331311",
"03200332110", "03200332111", "03200332112",
"03200332113", "03200332131", "03200332133",
"03200332203", "03200332212", "03200332220",
"03200332221", "03200332222", "03200332223",
"03200332230", "03200332231", "03200332232",
"03200332233", "03200332302", "03200332303",
"03200332320", "03200332321", "03200332322",
"03200333000", "03200333001", "03200333002",
"03200333003", "03200333012", "03200333020",
"03200333021", "03200333022", "03200333023",
"03200333030", "03201000333", "03201001021",
"03201001023", "03201001030", "03201001031",
"03201001032", "03201001033", "03201001110",
"03201001111", "03201001120", "03201001122",
"03201001201", "03201001203", "03201001210",
"03201001211", "03201001212", "03201001213",
"03201001220", "03201001221", "03201001222",
"03201001223", "03201001230", "03201001231",
"03201001232", "03201001233", "03201001300",
"03201001301", "03201001302", "03201001303",
"03201001310", "03201001311", "03201001312",
"03201001313", "03201001320", "03201001321",
"03201001322", "03201001323", "03201001330",
"03201001331", "03201001332", "03201001333",
"03201002111", "03201002113", "03201002303",
"03201002311", "03201002312", "03201002313",
"03201002321", "03201002330", "03201002331",
"03201002332", "03201002333", "03201003000",
"03201003001", "03201003002", "03201003003",
"03201003010", "03201003011", "03201003012",
"03201003013", "03201003022", "03201003023",
"03201003030", "03201003031", "03201003032",
"03201003033", "03201003100", "03201003101",
"03201003102", "03201003103", "03201003110",
"03201003111", "03201003112", "03201003113",
"03201003120", "03201003121", "03201003122",
"03201003123", "03201003130", "03201003131",
"03201003132", "03201003133", "03201003200",
"03201003201", "03201003202", "03201003203",
"03201003210", "03201003211", "03201003212",
"03201003213", "03201003220", "03201003221",
"03201003222", "03201003223", "03201003230",
"03201003231", "03201003232", "03201003233",
"03201003300", "03201003301", "03201003302",
"03201003303", "03201003310", "03201003311",
"03201003312", "03201003320", "03201003321",
"03201003322", "03201003323", "03201010000",
"03201010001", "03201010003", "03201010010",
"03201010011", "03201010012", "03201010013",
"03201010030", "03201010031", "03201010032",
"03201010033", "03201010100", "03201010101",
"03201010102", "03201010103", "03201010110",
"03201010111", "03201010112", "03201010113",
"03201010120", "03201010121", "03201010122",
"03201010123", "03201010130", "03201010131",
"03201010132", "03201010133", "03201010201",
"03201010202", "03201010203", "03201010210",
"03201010211", "03201010212", "03201010213",
"03201010220", "03201010221", "03201010222",
"03201010223", "03201010230", "03201010231",
"03201010232", "03201010233", "03201010300",
"03201010301", "03201010302", "03201010303",
"03201010310", "03201010311", "03201010312",
"03201010313", "03201010320", "03201010321",
"03201010322", "03201010323", "03201010330",
"03201010331", "03201010332", "03201010333",
"03201011000", "03201011001", "03201011002",
"03201011003", "03201011010", "03201011011",
"03201011012", "03201011013", "03201011020",
"03201011021", "03201011022", "03201011023",
"03201011030", "03201011031", "03201011032",
"03201011033", "03201011100", "03201011101",
"03201011102", "03201011103", "03201011110",
"03201011111", "03201011112", "03201011113",
"03201011120", "03201011121", "03201011122",
"03201011123", "03201011130", "03201011131",
"03201011132", "03201011200", "03201011201",
"03201011202", "03201011203", "03201011210",
"03201011211", "03201011212", "03201011213",
"03201011220", "03201011221", "03201011222",
"03201011223", "03201011230", "03201011231",
"03201011232", "03201012000", "03201012001",
"03201012002", "03201012003", "03201012010",
"03201012011", "03201012012", "03201012013",
"03201012020", "03201012021", "03201012022",
"03201012023", "03201012030", "03201012031",
"03201012032", "03201012033", "03201012100",
"03201012101", "03201012102", "03201012103",
"03201012110", "03201012111", "03201012112",
"03201012113", "03201012120", "03201012121",
"03201012122", "03201012123", "03201012130",
"03201012131", "03201012132", "03201012133",
"03201012200", "03201012201", "03201012210",
"03201012211", "03201012213", "03201012300",
"03201012301", "03201012302", "03201012303",
"03201012310", "03201012311", "03201012312",
"03201012313", "03201012321", "03201012323",
"03201012330", "03201012331", "03201012332",
"03201013000", "03201013001", "03201013002",
"03201013003", "03201013010", "03201013012",
"03201013020", "03201013021", "03201013022",
"03201013023", "03201013030", "03201013200",
"03201013201", "03201020110", "03201020111",
"03201020112", "03201020113", "03201020132",
"03201020133", "03201020332", "03201020333",
"03201021000", "03201021001", "03201021002",
"03201021003", "03201021010", "03201021011",
"03201021012", "03201021013", "03201021031",
"03201021100", "03201021101", "03201021102",
"03201022110", "03201022111", "03201022112",
"03201022113", "03201022130", "03201022131",
"03201023000", "03201023002", "03201023003",
"03201023020", "03201023021", "03201023033",
"03201023122", "03201023123", "03201023132",
"03201023211", "03201023230", "03201023231",
"03201023232", "03201023233", "03201023300",
"03201023301", "03201023302", "03201023303",
"03201023310", "03201023312", "03201023313",
"03201023320", "03201023321", "03201023322",
"03201023323", "03201023330", "03201023331",
"03201023332", "03201023333", "03201030031",
"03201030033", "03201030100", "03201030101",
"03201030102", "03201030103", "03201030120",
"03201030121", "03201030122", "03201030123",
"03201032202", "03201032220", "03201032222",
"03201100000", "03201100001", "03201100002",
"03201100003", "03201100010", "03201100011",
"03201100012", "03201100013", "03201100020",
"03201100021", "03201100100", "03201100101",
"03201100102", "03201100110", "03201200020",
"03201200022", "03201200023", "03201200200",
"03201200201", "03201200202", "03201200203",
"03201200210", "03201200211", "03201200212",
"03201200213", "03201200220", "03201200221",
"03201200222", "03201200223", "03201200230",
"03201200231", "03201200233", "03201200300",
"03201200301", "03201200302", "03201200303",
"03201200312", "03201200320", "03201200321",
"03201200322", "03201200323", "03201200330",
"03201200332", "03201201010", "03201201011",
"03201201100", "03201201101", "03201201110",
"03201201111", "03201210000", "03201210002",
"03201210020", "03201210021", "03201210022",
"03201210023", "03201210201", "03201210203",
"03201210210", "03201210212", "03201210230",
"03201210232", "03201212002", "03201212003",
"03201212010", "03201212012", "03201220022",
"03201220200", "03202000003", "03202000012",
"03202000013", "03202000021", "03202000023",
"03202000030", "03202000031", "03202000032",
"03202000033", "03202000100", "03202000101",
"03202000102", "03202000103", "03202000111",
"03202000112", "03202000113", "03202000120",
"03202000121", "03202000122", "03202000123",
"03202000130", "03202000131", "03202000132",
"03202000201", "03202000210", "03202000211",
"03202000212", "03202000213", "03202000221",
"03202000222", "03202000223", "03202000230",
"03202000231", "03202000232", "03202000233",
"03202000300", "03202000301", "03202000302",
"03202000303", "03202000310", "03202000311",
"03202000312", "03202000313", "03202000320",
"03202000321", "03202000322", "03202000323",
"03202000330", "03202000331", "03202000332",
"03202000333", "03202001002", "03202001020",
"03202001022", "03202001200", "03202001201",
"03202001202", "03202001203", "03202001212",
"03202001213", "03202001220", "03202001221",
"03202001222", "03202001223", "03202001230",
"03202001231", "03202001232", "03202001233",
"03202001302", "03202001320", "03202001321",
"03202001322", "03202001323", "03202001330",
"03202001331", "03202001332", "03202001333",
"03202002000", "03202002001", "03202002002",
"03202002003", "03202002010", "03202002011",
"03202002012", "03202002013", "03202002021",
"03202002022", "03202002023", "03202002030",
"03202002031", "03202002032", "03202002033",
"03202002100", "03202002101", "03202002102",
"03202002103", "03202002110", "03202002111",
"03202002112", "03202002113", "03202002120",
"03202002121", "03202002122", "03202002123",
"03202002130", "03202002131", "03202002200",
"03202002201", "03202002202", "03202002210",
"03202002211", "03202002220", "03202002222",
"03202003000", "03202003001", "03202003002",
"03202003003", "03202003010", "03202003011",
"03202003012", "03202003013", "03202003020",
"03202003021", "03202003023", "03202003030",
"03202003032", "03202003033", "03202003101",
"03202003110", "03202003111", "03202003112",
"03202003113", "03202003121", "03202003123",
"03202003130", "03202003131", "03202003132",
"03202003133", "03202010220", "03202010221",
"03202010222", "03202010223", "03202010230",
"03202010232", "03202010333", "03202011222",
"03202011223", "03202011232", "03202012000",
"03202012001", "03202012002", "03202012003",
"03202012010", "03202012012", "03202012020",
"03202012021", "03202012022", "03202012030",
"03202012111", "03202012113", "03202012130",
"03202012131", "03202013000", "03202013001",
"03202013002", "03202013003", "03202013010",
"03202013012", "03202013020", "03202013021",
"03202013111", "03202013112", "03202013113",
"03202013121", "03202013123", "03202013130",
"03202013131", "03202013132", "03202013133",
"03202020000", "03202101311", "03202101313",
"03202101323", "03202101332", "03202101333",
"03202102000", "03202102001", "03202102002",
"03202102003", "03202102010", "03202102012",
"03202102020", "03202102021", "03202102022",
"03202102023", "03202102030", "03202102032",
"03202102331", "03202102333", "03202103101",
"03202103103", "03202103110", "03202103111",
"03202103112", "03202103113", "03202103121",
"03202103122", "03202103123", "03202103130",
"03202103131", "03202103132", "03202103133",
"03202103202", "03202103203", "03202103212",
"03202103213", "03202103220", "03202103221",
"03202103222", "03202103223", "03202103230",
"03202103231", "03202103232", "03202103233",
"03202103301", "03202103302", "03202103310",
"03202103311", "03202103312", "03202103313",
"03202103320", "03202103321", "03202103322",
"03202103323", "03202110001", "03202110003",
"03202110010", "03202110011", "03202110012",
"03202110013", "03202110100", "03202110200",
"03202110201", "03202110202", "03202110203",
"03202110220", "03202112000", "03202112002",
"03202112003", "03202112020", "03202112021",
"03202112022", "03202112023", "03202112200",
"03202112201", "03202121001", "03202121010",
"03202121011", "03202121023", "03202121032",
"03202121033", "03202121100", "03202121101",
"03202121102", "03202121111", "03202121113",
"03202121201", "03202121203", "03202121210",
"03202121211", "03202121212", "03202121213",
"03202121300", "03202121302", "03202121311",
"03202121313", "03202121323", "03202121331",
"03202121332", "03202121333", "03202123000",
"03202123001", "03202123002", "03202123003",
"03202123010", "03202123011", "03202123012",
"03202123013", "03202123020", "03202123021",
"03202123022", "03202123023", "03202123030",
"03202123031", "03202123032", "03202123033",
"03202123100", "03202123101", "03202123102",
"03202123103", "03202123110", "03202123111",
"03202123112", "03202123113", "03202123120",
"03202123121", "03202123122", "03202123123",
"03202123130", "03202123131", "03202123132",
"03202123133", "03202123201", "03202123210",
"03202123211", "03202123212", "03202123213",
"03202123300", "03202123301", "03202123310",
"03202123311", "03202130000", "03202130002",
"03202130003", "03202130010", "03202130012",
"03202130013", "03202130020", "03202130021",
"03202130022", "03202130023", "03202130030",
"03202130031", "03202130032", "03202130033",
"03202130122", "03202130200", "03202130201",
"03202130202", "03202130203", "03202130210",
"03202130211", "03202130212", "03202130213",
"03202130220", "03202130221", "03202130222",
"03202130223", "03202130230", "03202130231",
"03202130232", "03202130233", "03202130300",
"03202130302", "03202130320", "03202130321",
"03202130322", "03202130323", "03202132000",
"03202132001", "03202132002", "03202132003",
"03202132010", "03202132011", "03202132012",
"03202132013", "03202132020", "03202132021",
"03202132022", "03202132023", "03202132030",
"03202132031", "03202132032", "03202132033",
"03202132100", "03202132101", "03202132102",
"03202132103", "03202132112", "03202132120",
"03202132121", "03202132122", "03202132123",
"03202132130", "03202132132", "03202132133",
"03202132200", "03202132201", "03202132210",
"03202132211", "03202132300", "03202132301",
"03202132302", "03202132303", "03202132310",
"03202132311", "03202132312", "03202132313",
"03202301011", "03202301013", "03202301031",
"03202301100", "03202301102", "03202301103",
"03202301112", "03202301113", "03202301120",
"03202301121", "03202301122", "03202301123",
"03202301130", "03202301131", "03202301132",
"03202301133", "03202301300", "03202301301",
"03202301310", "03202301311", "03202310013",
"03202310020", "03202310022", "03202310031",
"03202310033", "03202310101", "03202310102",
"03202310103", "03202310110", "03202310111",
"03202310112", "03202310113", "03202310120",
"03202310121", "03202310122", "03202310123",
"03202310130", "03202310131", "03202310132",
"03202310133", "03202310200", "03202310211",
"03202310300", "03202310301", "03202310310",
"03202310311", "03202310312", "03202310313",
"03202310321", "03202310323", "03202310330",
"03202310331", "03202310332", "03202310333",
"03202311000", "03202311002", "03202311020",
"03202311022", "03202311200", "03202311202",
"03202311220", "03202311222", "03202312100",
"03202312101", "03202312102", "03202312103",
"03202312110", "03202312111", "03202312112",
"03202312113", "03202312121", "03202312123",
"03202312130", "03202312131", "03202312132",
"03202312133", "03202313000", "03202313002",
"03311001130", "03311001131", "03311001132",
"03311001133", "03311001313", "03311001331",
"03311003101", "03311003103", "03311003110",
"03311003112", "03311003232", "03311003233",
"03311003322", "03311003323", "03311010202",
"03311010220", "03311011111", "03311013033",
"03311013233", "03311013322", "03311021001",
"03311021003", "03311021010", "03311021011",
"03311021012", "03311021013", "03311021100",
"03311021102", "03311021103", "03311021121",
"03311032210", "03311032211", "03311032212",
"03311032213", "03311033103", "03311033112",
"03311033121", "03311033123", "03311033130",
"03311033131", "03311033132", "03311100000",
"03311100121", "03311100322", "03311101000",
"03311101020", "03311101021", "03311101023",
"03311101030", "03311101031", "03311101032",
"03311101033", "03311101120", "03311101121",
"03311101122", "03311101123", "03311101130",
"03311101201", "03311101203", "03311101210",
"03311101211", "03311101212", "03311101213",
"03311101230", "03311101231", "03311101300",
"03311101301", "03311103000", "03311103001",
"03311103221", "03311103223", "03311110231",
"03311110233", "03311110320", "03311110322",
"03311111333", "03311113103", "03311113112",
"03311113113", "03311113120", "03311113121",
"03311113122", "03311113123", "03311113130",
"03311113132", "03311113300", "03311113301",
"03311113310", "03311113330", "03311113331",
"03311113332", "03311113333", "03311120231",
"03311120233", "03311120320", "03311120321",
"03311120322", "03311120323", "03311121213",
"03311121232", "03311122323", "03311122330",
"03311122331", "03311122332", "03311122333",
"03311123032", "03311123033", "03311123210",
"03311123211", "03311123220", "03311123221",
"03311123222", "03311123223", "03311123231",
"03311123233", "03311123320", "03311123322",
"03311123331", "03311131031", "03311131033",
"03311131101", "03311131103", "03311131112",
"03311131113", "03311131120", "03311131121",
"03311131122", "03311131123", "03311131130",
"03311131131", "03311131132", "03311131202",
"03311131203", "03311131211", "03311131212",
"03311131213", "03311131220", "03311131221",
"03311131230", "03311131231", "03311131300",
"03311131301", "03311131302", "03311131320",
"03311132110", "03311132203", "03311132212",
"03311132220", "03311132221", "03311132222",
"03311132223", "03311132230", "03311133001",
"03311133003", "03311133010", "03311133012",
"03311211011", "03311211100", "03311211102",
"03311300011", "03311300013", "03311300020",
"03311300021", "03311300022", "03311300023",
"03311300100", "03311300101", "03311300110",
"03312122131", "03312122133", "03312123020",
"03312123022", "03312130032", "03312130033",
"03312130210", "12000313012", "12000313013",
"12000313030", "12000313031", "12000313102",
"12001113301", "12001113303", "12001113310",
"12001113312", "12001130332", "12001130333",
"12001132110", "12001132111", "12001212211",
"12001212213", "12001303030", "12001303032",
"12001303033", "12001310032", "12001310033",
"12001310210", "12001310211", "12001310213",
"12001320203", "12001320212", "12001320213",
"12001320221", "12001320230", "12001320231",
"12002013303", "12002013312", "12002013321",
"12002013330", "12002013332", "12002122202",
"12002122220", "12002122222", "12002131010",
"12002131012", "12002131031", "12002131033",
"12002131120", "12002131121", "12002131122",
"12002131123", "12002131130", "12002131131",
"12002131132", "12002131133", "12002131202",
"12002131203", "12002131211", "12002131212",
"12002131221", "12002131230", "12002131300",
"12002131301", "12002131303", "12002132132",
"12002132133", "12002132310", "12002132311",
"12002132312", "12002132313", "12002133123",
"12002133130", "12002133131", "12002133132",
"12002133133", "12002133310", "12002300000",
"12002330131", "12002330133", "12002331020",
"12002331021", "12002331022", "12002331023",
"12002332032", "12002332033", "12002332123",
"12002332132", "12002332210", "12002332211",
"12002332301", "12002332310", "12002332331",
"12002332333", "12002333023", "12002333032",
"12002333201", "12002333210", "12002333220",
"12002333222", "12003013022", "12003013023",
"12003013032", "12003013200", "12003013201",
"12003013210", "12003023102", "12003023103",
"12003031321", "12003031323", "12003031330",
"12003031332", "12003032130", "12003032132",
"12003033103", "12003033112", "12003033121",
"12003033130", "12003102021", "12003102023",
"12003102030", "12003102032", "12003111013",
"12003111102", "12003111120", "12003113301",
"12003113303", "12003113310", "12003113311",
"12003113312", "12003113313", "12003120033",
"12003120122", "12003120211", "12003120213",
"12003120300", "12003120302", "12003122033",
"12003122101", "12003122103", "12003122110",
"12003122111", "12003122112", "12003122113",
"12003122121", "12003122122", "12003122123",
"12003122130", "12003122131", "12003122132",
"12003122133", "12003122211", "12003122300",
"12003122310", "12003122311", "12003123002",
"12003123020", "12003123022", "12003200211",
"12003200213", "12003200300", "12003200302",
"12003200303", "12003200312", "12003200321",
"12003200330", "12003201132", "12003201133",
"12003201310", "12003201311", "12003202032",
"12003202033", "12003202122", "12003202123",
"12003202210", "12003202211", "12003202300",
"12003202301", "12003203022", "12003203023",
"12003203032", "12003203133", "12003203200",
"12003203201", "12003203210", "12003203311",
"12003211013", "12003211031", "12003211033",
"12003211102", "12003211120", "12003211122",
"12003211200", "12003211201", "12003212020",
"12003212021", "12003212022", "12003212023",
"12003212200", "12003220103", "12003220112",
"12003220121", "12003220130", "12003221220",
"12003221221", "12003221222", "12003221223",
"12003222311", "12003222312", "12003222313",
"12003222321", "12003222323", "12003222330",
"12003222331", "12003222332", "12003222333",
"12003223200", "12003223202", "12003223220",
"12003223222", "12003230033", "12003230122",
"12003230211", "12003230300", "12003230302",
"12003231302", "12003231320", "12003231321",
"12003231322", "12003231323", "12003232202",
"12003233022", "12003233023", "12003233200",
"12003233201", "12010030022", "12010030023",
"12010030200", "12010030201", "12010030202",
"12010030203", "12010213322", "12010213323",
"12010230223", "12010230232", "12010230233",
"12010231100", "12010231101", "12010232001",
"12010232010", "12010232011", "12010232012",
"12010321022", "12010321023", "12010321032",
"12010321200", "12010321201", "12010321210",
"12012000101", "12012000103", "12012000110",
"12012000111", "12012000112", "12012000113",
"12012000130", "12012000131", "12012001000",
"12012001002", "12012001020", "12012001230",
"12012001231", "12012001232", "12012001233",
"12012003233", "12012003303", "12012003312",
"12012003313", "12012003320", "12012003321",
"12012003322", "12012003323", "12012003330",
"12012003331", "12012003332", "12012003333",
"12012010221", "12012010222", "12012010223",
"12012010230", "12012010232", "12012011331",
"12012013200", "12012013201", "12012013202",
"12012013203", "12012013220", "12012013221",
"12012021011", "12012021013", "12012021100",
"12012021101", "12012021102", "12012021103",
"12012021110", "12012021111", "12012021112",
"12012021113", "12012100202", "12012100203",
"12012100220", "12012100221", "12012100222",
"12020020202", "12020020220", "12020022312",
"12020022313", "12020022330", "12020022331",
"12020022332", "12020022333", "12020023202",
"12020023220", "12020023221", "12020023222",
"12020023223", "12020023230", "12020023232",
"12020033213", "12020033230", "12020033231",
"12020033320", "12020033321", "12020033332",
"12020033333", "12020101131", "12020101133",
"12020110020", "12020110022", "12020110101",
"12020110103", "12020110110", "12020110112",
"12020110113", "12020110121", "12020110123",
"12020110130", "12020110131", "12020110132",
"12020111030", "12020111031", "12020111032",
"12020111033", "12020111210", "12020111211",
"12020112103", "12020112112", "12020112121",
"12020112130", "12020113203", "12020113212",
"12020113221", "12020113223", "12020113230",
"12020113232", "12020121222", "12020121223",
"12020121303", "12020121312", "12020121321",
"12020121330", "12020122000", "12020122001",
"12020122002", "12020122003", "12020122012",
"12020122013", "12020122030", "12020122031",
"12020122100", "12020122101", "12020122102",
"12020122103", "12020122121", "12020122123",
"12020122232", "12020122233", "12020122302",
"12020122303", "12020122311", "12020122312",
"12020122313", "12020122321", "12020122323",
"12020123000", "12020123001", "12020123112",
"12020123113", "12020123130", "12020123131",
"12020123223", "12020130020", "12020130021",
"12020130023", "12020130202", "12020130203",
"12020130220", "12020130221", "12020131000",
"12020131001", "12020131002", "12020131003",
"12020131120", "12020131121", "12020131122",
"12020131123", "12020132003", "12020132012",
"12020132020", "12020132021", "12020132022",
"12020132023", "12020132030", "12020132031",
"12020132032", "12020132033", "12020133220",
"12020133221", "12020133222", "12020133223",
"12020200002", "12020200003", "12020200020",
"12020200021", "12020200022", "12020200023",
"12020200132", "12020200133", "12020200220",
"12020200221", "12020200222", "12020200223",
"12020200230", "12020200231", "12020200232",
"12020200233", "12020200302", "12020200303",
"12020200310", "12020200311", "12020200322",
"12020200330", "12020201001", "12020201010",
"12020202000", "12020202001", "12020202002",
"12020202003", "12020202010", "12020202011",
"12020202012", "12020202013", "12020202020",
"12020202021", "12020202022", "12020202023",
"12020202030", "12020202031", "12020202032",
"12020202033", "12020202100", "12020202101",
"12020202102", "12020202113", "12020202120",
"12020202121", "12020202122", "12020202123",
"12020202130", "12020202131", "12020202201",
"12020202223", "12020202230", "12020202231",
"12020202232", "12020202233", "12020202300",
"12020202301", "12020202303", "12020202310",
"12020202311", "12020202312", "12020202320",
"12020203002", "12020203020", "12020210133",
"12020210313", "12020211022", "12020211023",
"12020211032", "12020211033", "12020211101",
"12020211103", "12020211110", "12020211111",
"12020211112", "12020211121", "12020211122",
"12020211123", "12020211130", "12020211131",
"12020211132", "12020211133", "12020211200",
"12020211201", "12020211202", "12020211203",
"12020211210", "12020211211", "12020211212",
"12020211213", "12020211220", "12020211221",
"12020211230", "12020211231", "12020211232",
"12020211233", "12020211300", "12020211301",
"12020211311", "12020211331", "12020212022",
"12020212023", "12020212032", "12020212121",
"12020212123", "12020212130", "12020212132",
"12020212133", "12020212210", "12020212223",
"12020212230", "12020212231", "12020212232",
"12020212233", "12020212300", "12020212301",
"12020212302", "12020212303", "12020212311",
"12020212312", "12020212313", "12020212330",
"12020212331", "12020212333", "12020213000",
"12020213001", "12020213002", "12020213003",
"12020213010", "12020213011", "12020213022",
"12020213023", "12020213110", "12020213111",
"12020213112", "12020213113", "12020213130",
"12020213131", "12020213200", "12020213201",
"12020213202", "12020213203", "12020213212",
"12020213213", "12020213220", "12020213221",
"12020213222", "12020213223", "12020213230",
"12020213231", "12020213232", "12020213233",
"12020213312", "12020213313", "12020213330",
"12020213331", "12020213333", "12020220001",
"12020230010", "12020230011", "12020230012",
"12020230013", "12020230111", "12020230113",
"12020230130", "12020230131", "12020231000",
"12020231001", "12020231002", "12020231020",
"12020231021", "12020231022", "12020231023",
"12020231030", "12020231032", "12020231110",
"12020231111", "12020231112", "12020231113",
"12020232310", "12020232311", "12020232312",
"12020232313", "12020300010", "12020300011",
"12020300012", "12020300013", "12020300021",
"12020300022", "12020300023", "12020300030",
"12020300031", "12020300032", "12020300101",
"12020300103", "12020300110", "12020300112",
"12020300113", "12020300130", "12020300131",
"12020300200", "12020300201", "12020300202",
"12020300203", "12020300210", "12020300220",
"12020300221", "12020300303", "12020300312",
"12020300321", "12020300323", "12020300330",
"12020300332", "12020301003", "12020301012",
"12020301013", "12020301021", "12020301030",
"12020301031", "12020301102", "12020301103",
"12020301112", "12020301120", "12020301121",
"12020301130", "12020301210", "12020301211",
"12020301212", "12020301213", "12020301300",
"12020301302", "12020301320", "12020301321",
"12020301322", "12020301323", "12020301333",
"12020302012", "12020302013", "12020302030",
"12020302031", "12020302202", "12020302203",
"12020302212", "12020302220", "12020302221",
"12020302222", "12020302230", "12020302231",
"12020302232", "12020302233", "12020302321",
"12020302330", "12020302332", "12020303032",
"12020303033", "12020303103", "12020303112",
"12020303121", "12020303130", "12020303211",
"12020303303", "12020303320", "12020303321",
"12020303322", "12020303323", "12020303330",
"12020310012", "12020310013", "12020310022",
"12020310023", "12020310030", "12020310110",
"12020310111", "12020310112", "12020310113",
"12020310123", "12020310201", "12020311000",
"12020311002", "12020311032", "12020311033",
"12020311100", "12020311101", "12020311210",
"12020311211", "12020312121", "12020312123",
"12020312130", "12020312132", "12020312221",
"12020312223", "12020312230", "12020312232",
"12020313000", "12020313002", "12020313310",
"12020313312", "12020313313", "12020313330",
"12020313331", "12020320000", "12020320002",
"12020320003", "12020320010", "12020320011",
"12020321113", "12020322101", "12020322103",
"12020322110", "12020322212", "12020322213",
"12020322230", "12020322231", "12020322311",
"12020322313", "12020323022", "12020323023",
"12020323033", "12020323113", "12020323122",
"12020323131", "12020323132", "12020323133",
"12020323200", "12020323201", "12020323202",
"12020323310", "12020323311", "12020323331",
"12020323333", "12020330001", "12020330002",
"12020330003", "12020330112", "12020330113",
"12020330130", "12020330131", "12020330212",
"12020330213", "12020330231", "12020330320",
"12020331222", "12020331323", "12020331332",
"12020332020", "12020332022", "12020332023",
"12020332200", "12020332201", "12020332220",
"12020332222", "12020332223", "12020332233",
"12020332302", "12020332320", "12020332322",
"12020333000", "12020333112", "12020333121",
"12020333123", "12020333130", "12020333131",
"12020333132", "12020333133", "12020333310",
"12020333311", "12021000100", "12021000101",
"12021000102", "12021000103", "12021000110",
"12021000111", "12021000112", "12021000113",
"12021000120", "12021000121", "12021000122",
"12021000123", "12021000130", "12021000131",
"12021000300", "12021000301", "12021001000",
"12021001002", "12021001003", "12021001010",
"12021001011", "12021001012", "12021001013",
"12021001020", "12021001021", "12021001030",
"12021002322", "12021002323", "12021003203",
"12021003212", "12021003221", "12021003223",
"12021003230", "12021003232", "12021003301",
"12021003303", "12021003310", "12021003321",
"12021020100", "12021020101", "12021021011",
"12021021100", "12021021213", "12021021231",
"12021023231", "12021023233", "12021023320",
"12021023322", "12021023323", "12021200021",
"12021200023", "12021200030", "12021200032",
"12021200110", "12021200111", "12021200112",
"12021200113", "12021200210", "12021200302",
"12021200303", "12021200312", "12021200320",
"12021200321", "12021200330", "12021201001",
"12021201003", "12021201010", "12021201011",
"12021201012", "12021201100", "12021201101",
"12021202011", "12021202013", "12021202100",
"12021202102", "12021202103", "12021202112",
"12021202113", "12021202120", "12021202121",
"12021202123", "12021202130", "12021202131",
"12021202132", "12021202202", "12021202203",
"12021202212", "12021202220", "12021202221",
"12021202230", "12021202320", "12021202321",
"12021202322", "12021202323", "12021203221",
"12021203222", "12021203223", "12021203301",
"12021203303", "12021203310", "12021203312",
"12021210010", "12021210012", "12021210221",
"12021210223", "12021210230", "12021212123",
"12021212300", "12021212301", "12021220102",
"12021220103", "12021220120", "12021220121",
"12021220221", "12021220223", "12021220230",
"12021220232", "12021222320", "12021222321",
"12021222322", "12021222323", "12022002211",
"12022002213", "12022002300", "12022002302",
"12022010312", "12022010313", "12022013302",
"12022013303", "12022013320", "12022013321",
"12022020023", "12022020032", "12022020201",
"12022020210", "12022021003", "12022021021",
"12022022112", "12022022113", "12022022130",
"12022022131", "12022031013", "12022031031",
"12022032003", "12022032012", "12022032021",
"12022032030", "12022033013", "12022033030",
"12022033031", "12022033033", "12022033102",
"12022033120", "12022033122", "12022033200",
"12022033201", "12022033202", "12022033203",
"12022100012", "12022100013", "12022100030",
"12022100031", "12022101031", "12022101033",
"12022101110", "12022101112", "12022101113",
"12022101120", "12022101122", "12022101123",
"12022101221", "12022101223", "12022101230",
"12022101232", "12022101300", "12022101301",
"12022101322", "12022101333", "12022102130",
"12022102131", "12022102132", "12022102133",
"12022102212", "12022102221", "12022102230",
"12022103003", "12022103012", "12022103021",
"12022103030", "12022103031", "12022103032",
"12022103033", "12022103100", "12022103210",
"12022103211", "12022103311", "12022103313",
"12022103332", "12022103333", "12022110001",
"12022110011", "12022110012", "12022110013",
"12022110030", "12022110031", "12022110033",
"12022110100", "12022110101", "12022110102",
"12022110103", "12022110111", "12022110112",
"12022110113", "12022110120", "12022110121",
"12022110122", "12022110130", "12022110131",
"12022110222", "12022111000", "12022111001",
"12022111002", "12022111200", "12022111201",
"12022111301", "12022111303", "12022111310",
"12022111312", "12022112023", "12022112031",
"12022112032", "12022112033", "12022112120",
"12022112121", "12022112122", "12022112130",
"12022112200", "12022112201", "12022112202",
"12022112203", "12022112210", "12022112220",
"12022112221", "12022112300", "12022112301",
"12022112302", "12022112303", "12022113012",
"12022113030", "12022113331", "12022120123",
"12022120230", "12022120231", "12022120232",
"12022120233", "12022120300", "12022120301",
"12022120310", "12022121001", "12022121003",
"12022121010", "12022121012", "12022121110",
"12022121111", "12022122023", "12022122201",
"12022122210", "12022122220", "12022122222",
"12022122223", "12022123123", "12022123132",
"12022123232", "12022123233", "12022123301",
"12022123310", "12022123313", "12022123322",
"12022123331", "12022131333", "12022132000",
"12022132001", "12022132002", "12022132003",
"12022132012", "12022132013", "12022132021",
"12022132030", "12022132031", "12022132032",
"12022132102", "12022132120", "12022132122",
"12022132123", "12022132130", "12022132131",
"12022132132", "12022132133", "12022132202",
"12022132210", "12022132211", "12022132212",
"12022132213", "12022132220", "12022132230",
"12022132231", "12022132233", "12022132300",
"12022132301", "12022132302", "12022132320",
"12022132321", "12022132322", "12022132330",
"12022133023", "12022133032", "12022133111",
"12022133201", "12022133210", "12022133222",
"12022133223", "12022133323", "12022133332",
"12022202133", "12022202311", "12022203022",
"12022203200", "12022211011", "12022211013",
"12022211100", "12022211102", "12022212123",
"12022212132", "12022212212", "12022212230",
"12022212301", "12022212310", "12022213002",
"12022213003", "12022213010", "12022213011",
"12022213012", "12022213013", "12022213020",
"12022213021", "12022213030", "12022213032",
"12022213310", "12022213311", "12022213312",
"12022213313", "12022213330", "12022213331",
"12022222031", "12022222033", "12022222330",
"12022222331", "12022222332", "12022222333",
"12022223030", "12022223033", "12022223111",
"12022223122", "12022223123", "12022223132",
"12022223211", "12022223212", "12022223213",
"12022223220", "12022223230", "12022223300",
"12022223301", "12022223302", "12022230020",
"12022230022", "12022232000", "12022301010",
"12022301011", "12022301013", "12022301100",
"12022301102", "12022301112", "12022301113",
"12022301212", "12022301213", "12022301331",
"12022302133", "12022302311", "12022303021",
"12022303022", "12022303023", "12022303030",
"12022303031", "12022303102", "12022303120",
"12022303200", "12022310000", "12022310001",
"12022310002", "12022310003", "12022310110",
"12022310111", "12022310203", "12022310210",
"12022310211", "12022310212", "12022310213",
"12022310220", "12022310333", "12022311012",
"12022311013", "12022311030", "12022311031",
"12022311032", "12022311033", "12022311120",
"12022311121", "12022311122", "12022311123",
"12022311130", "12022311132", "12022311222",
"12022311301", "12022311310", "12022311311",
"12022312111", "12022313000", "12022313001",
"12022313003", "12022313010", "12022313012",
"12022313013", "12022313030", "12022313031",
"12022313032", "12022313033", "12022313101",
"12022313102", "12022313103", "12022313110",
"12022313112", "12022313113", "12022313120",
"12022313121", "12022313123", "12022313130",
"12022313131", "12022313132", "12022313133",
"12022313210", "12022331112", "12022331113",
"12022331130", "12022331131", "12022332332",
"12023000002", "12023000003", "12023000120",
"12023000121", "12023000122", "12023000123",
"12023000203", "12023000212", "12023000220",
"12023000221", "12023000222", "12023000223",
"12023000230", "12023000232", "12023001331",
"12023002100", "12023002101", "12023002102",
"12023002103", "12023002202", "12023002203",
"12023002220", "12023002221", "12023003003",
"12023003012", "12023010201", "12023010202",
"12023010203", "12023010212", "12023010220",
"12023010221", "12023011202", "12023011203",
"12023011220", "12023011221", "12023020200",
"12023021132", "12023021133", "12023021232",
"12023021233", "12023021310", "12023022023",
"12023022032", "12023022111", "12023022113",
"12023022121", "12023022123", "12023022130",
"12023022132", "12023022201", "12023022210",
"12023022211", "12023022213", "12023022232",
"12023022233", "12023022301", "12023022302",
"12023022303", "12023022310", "12023022311",
"12023022312", "12023022321", "12023022323",
"12023022330", "12023022332", "12023023000",
"12023023002", "12023023010", "12023023011",
"12023023101", "12023023103", "12023023121",
"12023023123", "12023023130", "12023023132",
"12023023133", "12023030023", "12023030032",
"12023200003", "12023200010", "12023200011",
"12023200012", "12023200021", "12023200030",
"12023200200", "12023200201", "12023200202",
"12023200212", "12023200213", "12023200230",
"12023200231", "12023200301", "12023200303",
"12023200310", "12023200312", "12023200320",
"12023200322", "12023200323", "12023200333",
"12023202002", "12023202020", "12023202022",
"12023202110", "12023202111", "12023202112",
"12023202113", "12023202131", "12023202133",
"12023202202", "12023202211", "12023202213",
"12023202220", "12023202323", "12023202332",
"12023203000", "12023203002", "12023203003",
"12023203012", "12023203020", "12023203021",
"12023203022", "12023203030", "12023203122",
"12023203123", "12023203300", "12023203301",
"12023220101", "12023220110", "12023220133",
"12023220300", "12023220301", "12023220302",
"12023220303", "12023220311", "12023220323",
"12023220332", "12023220333", "12023221000",
"12023221002", "12023221022", "12023221102",
"12023221103", "12023221112", "12023221121",
"12023221123", "12023221130", "12023221132",
"12023221200", "12023221201", "12023221202",
"12023221203", "12023221222", "12023222101",
"12023222103", "12023222110", "12023222111",
"12023222112", "12023222113", "12023222121",
"12023222130", "12023222131", "12023223000",
"12023223001", "12023223002", "12023223003",
"12023223022", "12023223023", "12023223031",
"12023223033", "12023223120", "12023223122",
"12023223200", "12023223201", "12023230200",
"12023230201", "12023230202", "12023230203",
"12023232022", "12023232023", "12023232033",
"12023232131", "12023232221", "12023232222",
"12023232223", "12023232231", "12023232233",
"12023232320", "12023232322", "12023233030",
"12023233032", "12023233200", "12023233212",
"12023233230", "12023233302", "12023233303",
"12023233320", "12023233321", "12023233331",
"12023233333", "12023322220", "12023322222",
"12200101131", "12200101133", "12200110002",
"12200110003", "12200110020", "12200110021",
"12200110101", "12200110110", "12200110222",
"12200110223", "12200110300", "12200110301",
"12200110302", "12200110303", "12200112000",
"12200112001", "12200112211", "12200112213",
"12200112300", "12200112302", "12201001111",
"12201001113", "12201010000", "12201010001",
"12201010002", "12201010003", "12201010010",
"12201010011", "12201010012", "12201010013",
"12201010030", "12201010031", "12201010100",
"12201010102", "12201010120", "12201011021",
"12201011030", "12201011101", "12201011103",
"12201011110", "12201011112", "12201011130",
"12201013300", "12201013323", "12201013330",
"12201013332", "12201013333", "12201020313",
"12201020331", "12201020332", "12201020333",
"12201021211", "12201021213", "12201021300",
"12201021302", "12201023113", "12201023131",
"12201030313", "12201031011", "12201031013",
"12201031022", "12201031023", "12201031110",
"12201031200", "12201031201", "12201031202",
"12201031203", "12201031220", "12201031221",
"12201032001", "12201032002", "12201032003",
"12201032103", "12201032112", "12201032132",
"12201032203", "12201032212", "12201032213",
"12201032230", "12201032231", "12201032302",
"12201032310", "12201032311", "12201032312",
"12201032313", "12201032320", "12201100023",
"12201100032", "12201100121", "12201100130",
"12201100201", "12201100210", "12201100311",
"12201102203", "12201102221", "12210000021",
"12210000030", "12210000031", "12210000032",
"12210000033", "12210020311", "12210020312",
"12210020313", "12210020321", "12210020330",
"12210020331", "12210020332", "12210020333",
"12210021200", "12210021202", "12210021220",
"12210021222"], i = false, d = [];
this.Init = (function (a)
{
t = a + "/GetBirdsEyeSceneByLocation";
u = a + "/GetBirdsEyeSceneById";
}
);
this.SetClientToken = (function (b)
{
e = b;
if (a)
a.SetClientToken(e);
}
);
this.SetGUID = (function (b)
{
m = b;
if (a)
a.SetGUID(m);
if (typeof VEMap != "undefined")
p = VEMap._GetMapFromGUID(m);
}
);
this.Destroy = (function ()
{
e = null;
}
);
this.RequestPending = (function ()
{
return i;
}
);
this.IsValidTile = L;
this.GetFilename = J;
this.MetersPerPixel = E;
this.PixelToLatLong = F;
this.PixelToLatLongAsync = z;
this.LatLongToPixel = D;
this.LatLongToPixelAsync = y;
this.GetBounds = M;
this.ValidateZoomLevel = B;
this.IsAvailable = K;
this.UpdateAvailability = A;
this.CancelRequest = j;
this.GetEventInfo = G;
this.GetScene = N;
this.RequestSceneAtLatLong = r;
this.RequestScene = H;
this.GetCurrentMaxZoomLevel = w;
this.GetObliqueAvailability = x;
}
function OrthoMode()
{
function j(a,b,d)
{
var c = 1 << d;
return a >= 0 && b >= 0 && a < c && b < c;
}
function i(c,d,f,b)
{
var a = new VETileContext();
a.XPos = c;
a.YPos = d;
a.ZoomLevel = f;
a.MapStyle = currentView.mapStyle;
var e = b.GetTilePath(a);
return e;
}
function b(a)
{
return earthCircumference / (1 << a) * tileSize;
}
function h(d,e)
{
var c = b(e), f = d.x * c - projectionOffset, g = projectionOffset - d.y * c, a =
new Msn.VE.LatLong();
a.latitude = RadToDeg(Math.PI / 2 - 2 * Math.atan(Math.exp(- g / earthRadius)));
a.longitude = RadToDeg(f / earthRadius);
return a;
}
function e(d,g,e)
{
var b = [];
for (var a = 0;a < d.length;++a)
{
var c = this.PixelToLatLong(d[a], g);
if (Msn.VE.API != null)
{
var f = new VELatLong(c.latitude, c.longitude);
b[a] = f;
}
else
b[a] = c;
}
if (e)
e(b);
}
function g(d,f)
{
var e = Math.sin(DegToRad(d.latitude)), g = earthRadius * DegToRad(d.longitude), h =
earthRadius / 2 * Math.log((1 + e) / (1 - e)), c = b(f), a = new VEPixel();
a.x = (projectionOffset + g) / c;
a.y = (projectionOffset - h) / c;
return a;
}
function d(b,e,d)
{
var c = [];
for (var a = 0;a < b.length;++a)
c[a] = this.LatLongToPixel(b[a], e);
if (d)
d(c);
}
function k(c)
{
if (c == undefined)
c = currentView;
var d = c.zoomLevel, f = c.center.x + mapCenterOffset.x, g = c.center.y +
mapCenterOffset.y;
for (var b = 0;b < a.length;b++)
{
var h = d - a[b].z1, e = tileSize * Math.pow(2, h), k = a[b].x1 * e, i = a[b].x2
* e, l = a[b].y1 * e, j = a[b].y2 * e;
if (f >= k && f <= i && g >= l && g <= j)
if (d >= a[b].z1 && d <= a[b].z2 || d <=
tileLayerManager.GetMaxTileZoom())
return a[b];
}
}
function c(e)
{
var f = e.center.x + mapCenterOffset.x, g = e.center.y + mapCenterOffset.y, c = 0;
for (var b = 0;b < a.length;b++)
{
var d = tileSize * Math.pow(2, e.zoomLevel - a[b].z1), j = a[b].x1 * d, h =
a[b].x2 * d, k = a[b].y1 * d, i = a[b].y2 * d;
if (f >= j && f <= h && g >= k && g <= i)
c = Math.max(c, a[b].z2);
}
c = Math.max(c, tileLayerManager.GetMaxTileZoom());
return c;
}
function f(d)
{
var f = d.center.x + mapCenterOffset.x, g = d.center.y + mapCenterOffset.y, c = 0;
for (var b = 0;b < a.length;b++)
{
var e = tileSize * Math.pow(2, d.zoomLevel - a[b].z1), j = a[b].x1 * e, h =
a[b].x2 * e, k = a[b].y1 * e, i = a[b].y2 * e;
if (f >= j && f <= h && g >= k && g <= i)
{
c = 0;
if (a[b].z2 >= d.zoomLevel)
{
tileLayerManager.SetMarketMaxZoom(a[b].z2);
return ;
}
else
if (a[b].z2 > c)
{
tileLayerManager.SetMarketMaxZoom(a[b].z2);
c = a[b].z2;
if (c < tileLayerManager.GetMaxTileZoom())
if (d.zoomLevel <= tileLayerManager.GetMaxTileZoom())
c = d.zoomLevel;
else
c = tileLayerManager.GetMaxTileZoom();
}
}
}
d.SetZoomLevel(c);
}
var a = [new Msn.VE.Bounds(1, 17, 0, 0, 2, 2), new Msn.VE.Bounds(18, 19, 35680, 82915,
83740, 113061), new Msn.VE.Bounds(18, 19, 122880, 53248, 155649, 103425), new
Msn.VE.Bounds(18, 19, 12379, 112260, 20388, 119266), new Msn.VE.Bounds(18, 19, 80099,
115425, 85051, 119645), new Msn.VE.Bounds(18, 19, 220032, 93184, 240640, 113792)];
this.Init = (function ()
{
}
);
this.Destroy = (function ()
{
}
);
this.IsValidTile = j;
this.GetFilename = i;
this.MetersPerPixel = b;
this.PixelToLatLong = h;
this.PixelToLatLongAsync = e;
this.LatLongToPixel = g;
this.LatLongToPixelAsync = d;
this.GetBounds = k;
this.ValidateZoomLevel = f;
this.GetCurrentMaxZoomLevel = c;
}
function ThreeDMode()
{
function IsValidTile(b,c,a)
{
return internalOrthoMode.IsValidTile(b, c, a);
}
function GetFilename(a,b,d,c)
{
return internalOrthoMode.GetFilename(a, b, d, c);
}
function MetersPerPixel(a)
{
return internalOrthoMode.MetersPerPixel(a);
}
function PixelToLatLong(pixel)
{
if (! view3DCreated)
return null;
var lat, lon, latlonvalid, result = spacecontrol.PixelToLatLong(pixel.x, pixel.y);
eval(result);
if (latlonvalid != 0)
{
var latlong = new Msn.VE.LatLong();
latlong.latitude = RadToDeg(lat);
latlong.longitude = RadToDeg(lon);
return latlong;
}
return null;
}
function PixelToLatLongAsync(d,g,e)
{
var b = [];
for (var a = 0;a < d.length;++a)
{
var c = this.PixelToLatLong(d[a], g);
if (Msn.VE.API != null)
{
var f = new VELatLong(c.latitude, c.longitude);
b[a] = f;
}
else
b[a] = c;
}
if (e)
e(b);
}
function LatLongToPixel(latlong)
{
if (! view3DCreated)
return null;
var x, y, xyvalid = 0, result =
spacecontrol.LatLongToPixel(parseFloat(latlong.latitude), parseFloat(latlong.longitude));
eval(result);
if (xyvalid != 0)
{
var pixel = new VEPixel(x, y);
return pixel;
}
return null;
}
function LatLongToPixelAsync(b,e,d)
{
var c = [];
for (var a = 0;a < b.length;++a)
c[a] = this.LatLongToPixel(b[a], e);
if (d)
d(c);
}
function GetBounds()
{
return null;
}
function GetCurrentMaxZoomLevel()
{
return 19;
}
function ValidateZoomLevel(a)
{
if (a.zoomLevel < 1)
a.SetZoomLevel(1);
if (a.zoomLevel > 19)
a.SetZoomLevel(19);
}
function _InternalOrthoMode()
{
return internalOrthoMode;
}
var internalOrthoMode = new OrthoMode(), bounds = [new Msn.VE.Bounds(1, 17, 0, 0, 2,
2), new Msn.VE.Bounds(18, 19, 35680, 82915, 83740, 113061), new Msn.VE.Bounds(18, 19,
122880, 53248, 155649, 103425), new Msn.VE.Bounds(18, 19, 12379, 112260, 20388, 119266),
new Msn.VE.Bounds(18, 19, 80099, 115425, 85051, 119645), new Msn.VE.Bounds(18, 19, 220032,
93184, 240640, 113792)];
this.Init = (function ()
{
}
);
this.Destroy = (function ()
{
}
);
this._InternalOrthoMode = _InternalOrthoMode;
this.IsValidTile = IsValidTile;
this.GetFilename = GetFilename;
this.MetersPerPixel = MetersPerPixel;
this.PixelToLatLong = PixelToLatLong;
this.PixelToLatLongAsync = PixelToLatLongAsync;
this.LatLongToPixel = LatLongToPixel;
this.LatLongToPixelAsync = LatLongToPixelAsync;
this.GetBounds = GetBounds;
this.ValidateZoomLevel = ValidateZoomLevel;
this.GetCurrentMaxZoomLevel = GetCurrentMaxZoomLevel;
}
function BoxTool()
{
function k(i)
{
if (typeof VE_ContextMenu != "undefined" && VE_ContextMenu !=
null)
{
VE_ContextMenu.RemoveContextPin();
VE_ContextMenu.CloseMenu();
}
var b = Gimme.Screen.getMousePosition(i);
h = g(p_elSource).getPagePosition();
c = e = b.x - h.x + offsetX;
d = f = b.y - h.y + offsetY;
j(c, d, 1, 1);
o();
if (a.setCapture)
a.setCapture();
}
function l(i)
{
var a = Gimme.Screen.getMousePosition(i);
e = a.x - h.x + offsetX;
f = a.y - h.y + offsetY;
var g = e - c, b = f - d;
j(Math.min(c, c + g), Math.min(d, d + b), Math.abs(g), Math.abs(b));
}
function m(j)
{
if (MathAbs(c - e) > 1 && MathAbs(d - f) > 1)
{
var b = preferredView.MakeCopy();
b.SetZoomLevel(currentView.zoomLevel);
if (! j.shiftKey)
b.SetPixelRectangle(new Msn.VE.PixelRectangle(new VEPixel(originX + c, originY
+ d), new VEPixel(originX + e, originY + f)));
else
{
var h = width / MathAbs(e - c), i = height / MathAbs(f - d), g = h < i ?
h : i;
b.SetPixelRectangle(new Msn.VE.PixelRectangle(new VEPixel(originX -
Math.floor(width * (g - 1) / 2), originY - Math.floor(height * (g - 1) / 2)), new
VEPixel(originX + Math.floor(width * (g + 1) / 2), originY + Math.floor(height * (g + 1) /
2))));
}
SetView(b);
}
setTimeout(n, 250);
if (a.releaseCapture)
a.releaseCapture();
}
function j(e,f,d,c)
{
i(b, e + 1, f + 1, d, c);
i(a, e, f, d, c);
}
function i(a,d,e,c,b)
{
a.style.left = d + "px";
a.style.top = e + "px";
a.style.width = c + "px";
a.style.height = b + "px";
}
function o()
{
b.style.display = "block";
a.style.display = "block";
}
function n()
{
b.style.display = "none";
a.style.display = "none";
}
var b = document.createElement("div"), a =
document.createElement("div"), h, c = 0, d = 0, e = 0, f = 0;
this.Init = (function ()
{
b.className = "MSVE_ZoomBox_bg";
a.className = "MSVE_ZoomBox_fg";
b.attachEvent("onmouseup", MouseUp);
a.attachEvent("onmouseup", MouseUp);
if (map != null)
{
map.appendChild(b);
map.appendChild(a);
}
}
);
this.Destroy = (function ()
{
b.detachEvent("onmouseup", MouseUp);
a.detachEvent("onmouseup", MouseUp);
if (map != null)
{
map.removeChild(b);
map.removeChild(a);
}
}
);
this.OnMouseDown = k;
this.OnMouseMove = l;
this.OnMouseUp = m;
}
function PanTool()
{
function b(b)
{
a = false;
var d = Gimme.Screen.getMousePosition(b);
lastMouseX = d.x;
lastMouseY = d.y;
if (p_elSource.setCapture)
p_elSource.setCapture();
var e = g(p_elSource).getPagePosition();
x = e.x;
y = e.y;
var f = originX + offsetX + lastMouseX - x, h = originY + offsetY + lastMouseY - y,
c = CreateEvent(currentMode.PixelToLatLong(new VEPixel(f, h), currentView.zoomLevel),
currentView.zoomLevel, null, null, null, b.button, 0, b);
Fire("onstartpan", c);
FireDefaultEvent("onmousedown", c);
}
function c(e)
{
var d = Gimme.Screen.getMousePosition(e), b = d.x, c = d.y;
PanMap(lastMouseX - b, lastMouseY - c);
if (lastMouseX != b || lastMouseY != c)
a = true;
lastMouseX = b;
lastMouseY = c;
}
function d(c)
{
ComputeCenterPoint(true);
if (p_elSource.releaseCapture)
p_elSource.releaseCapture();
if (a)
{
Fire("onendpan");
Fire("onchangeview");
a = false;
$VE_A.Log($VE_A.PgName.Map, "PAN", "Mouse");
}
var d = Gimme.Screen.getMousePosition(c), e = originX + offsetX + d.x - x, f =
originY + offsetY + d.y - y, b = CreateEvent(currentMode.PixelToLatLong(new VEPixel(e, f),
currentView.zoomLevel), currentView.zoomLevel, null, null, null, c.button, 0, c);
FireDefaultEvent("onmouseup", b);
FireDefaultEvent("onclick", b);
return b;
}
var a = false;
this.Init = (function ()
{
}
);
this.Destroy = (function ()
{
}
);
this.OnMouseDown = b;
this.OnMouseMove = c;
this.OnMouseUp = d;
}
function TargetTool()
{
function g()
{
d = false;
a = false;
e = null;
c = false;
m_dragging = false;
}
var b = this, f = Msn.VE.Geometry, d, a, e, c;
this.centeringTrigger = false;
g();
this.init = (function ()
{
if (currentView.mapStyle == Msn.VE.MapStyle.Oblique)
b.trackMovement();
}
);
this.destroy = (function ()
{
b.ignoreMovement();
f = null;
}
);
this.isOutOfBounds = (function ()
{
return a;
}
);
this.trackMovement = (function ()
{
if (! d)
{
p_elSource.attachEvent("onmousemove", b.OnMouseMove);
d = true;
}
}
);
this.ignoreMovement = (function ()
{
p_elSource.detachEvent("onmousemove", b.OnMouseMove);
d = a = b.centeringTrigger = false;
p_this.SetCursor(cssCursors.Grab);
}
);
this.setBoundingArea = (function (a)
{
if (a instanceof f.Rectangle)
e = a;
}
);
this.OnMouseDown = (function ()
{
}
);
this.OnMouseMove = (function (b)
{
if (e == null)
return ;
if (! dragging)
{
var d = Gimme.Screen.getMousePosition(b);
if (! e.containsPoint(d))
{
if (! hijackMouseMove && (! c || p_elSource.style.cursor !=
cssCursors.Target))
{
a = c = true;
p_this.SetCursor(cssCursors.Target);
}
}
else
if (c)
{
a = c = false;
p_this.SetCursor(cssCursors.Grab);
}
}
}
);
this.OnMouseUp = (function (c)
{
if (typeof VE_ContextMenu != "undefined" && VE_ContextMenu != null)
{
VE_ContextMenu.RemoveContextPin();
VE_ContextMenu.CloseMenu();
}
var g = c.which || c.button;
if (a && g == 1)
{
c.cancelBubble = true;
b.centeringTrigger = true;
var e = originX + offsetX + Math.round(GetMapWidth() / 2), f = originY + offsetY +
Math.round(GetMapHeight() / 2), d = currentMode.PixelToLatLong(new VEPixel(e, f),
currentView.zoomLevel);
SetCenter(d.latitude, d.longitude);
}
}
);
}
function GetTrafficAvailability()
{
return trafficAvailable;
}
function GetSlidingExpirationForAutoRefresh()
{
return 1800000;
}
function GetAutoRefreshRate()
{
return 300000;
}
function GetMarketsFile()
{
return "http://t1.traffic.virtualearth.net/incidents/markets.js";
}
function GetIncidentsFile()
{
return "http://t1.traffic.virtualearth.net/incidents/market";
}
function SetTrafficView()
{
var a = new VETileSourceSpecification();
a.ID = trafficTiles;
a.SourceName = Msn.VE.API ? Msn.VE.API.Constants.traffictileserver :
"%0t%2.tiles.virtualearth.net/tiles/t%4";
var b = "?";
if (a.SourceName.match(/\?/))
b = "&";
a.SourceName = a.SourceName + b + "tc=" + Math.floor(new Date().getTime() /
GetAutoRefreshRate() * 0.8);
a.NumServers = 2;
tileLayerManager.AddTileSource(a);
tileLayerManager.LoadTileLayer("Traffic", a.ID, 0.6, 2);
}
function VETileLayerManager()
{
function j()
{
if (! zooming)
return ;
for (var a = 0;a < e[mapTiles].length;a++)
e[mapTiles][a].SetFactor(zoomCounter);
for (var a = 0;a < c[mapTiles].length;a++)
c[mapTiles][a].SetFactor(zoomCounter);
for (var b = 0;b < pushpins.length;b++)
pushpins[b].SetFactor(zoomCounter);
if (zoomCounter < zoomTotalSteps)
{
zoomCounter++;
window.setTimeout(j, 1);
}
else
{
zoomCounter = 0;
tileLayerManager.FinalizeView();
}
}
function i()
{
if (typeof Msn.VE.API.Globals.vemapinstances == "undefined" ||
Msn.VE.API.Globals.vemapinstances == null)
return null;
var b = 0;
for (a in Msn.VE.API.Globals.vemapinstances)
if (Msn.VE.API.Globals.vemapinstances[a] instanceof VEMap &&
Msn.VE.API.Globals.vemapinstances[a].vemapcontrol &&
Msn.VE.API.Globals.vemapinstances[a].GetMapMode() == VEMapMode.Mode3D)
return Msn.VE.API.Globals.vemapinstances[a].vemapcontrol.Get3DControl();
return null;
}
var d = [], b = [], a = [], c = {}, e = {}, f = {}, k = null, h = true, g = 17;
this.AddTileSource = (function (a)
{
d[a.ID] = a;
if (f[a.ID])
this.SetClientToken(a.ID, f[a.ID]);
}
);
this.Add3DTileSource = (function (f,c,h)
{
if (trafficTiles == f)
return ;
if (1 == b[f].zIndex)
return ;
var g = c.MaxZoom == 1 ? 21 : c.MaxZoom, a = "ID=\"" + c.ID +
"\" TILESOURCE=\"" + c.SourceName + "\"
MINZOOM=\"" + c.MinZoom + "\" MAXZOOM=\"" + g +
"\"", d = c.Bounds;
if (typeof d != "undefined" && d != null)
{
a = a + " Bounds=\"";
for (var e = 0;e < d.length;e++)
{
if (e > 0)
a = a + ",";
a = a + d[e].TopLeftLatLong.Longitude + "," +
d[e].BottomRightLatLong.Latitude + "," + d[e].BottomRightLatLong.Longitude +
"," + d[e].TopLeftLatLong.Latitude;
}
a = a + "\"";
}
h.AddImageSource(f, c.ID, a, b[f].zIndex, b[f].opacity);
}
);
this.AddAllTileSourcesTo3D = (function (d)
{
if (typeof Msn.VE.API != "undefined" && Msn.VE.API != null)
for (var c = 0;c < a.length;c++)
this.Add3DTileSource(a[c], b[a[c]], d);
}
);
this.LoadBaseLayer = (function (c,e,f,g)
{
if (b[c] == null || typeof b[c] == "undefined")
a.push(c);
b[c] = d[e];
b[c].opacity = f;
b[c].zIndex = g;
}
);
this.HideBaseTileLayer = (function ()
{
this.SetTileLayerVisibility(mapTiles, false);
this.RefreshTileLayer(mapTiles);
}
);
this.ShowBaseTileLayer = (function ()
{
this.SetTileLayerVisibility(mapTiles, true);
this.RefreshTileLayer(mapTiles);
}
);
this.SetTileLayerVisibility = (function (c,a)
{
if (b[c] != null && typeof a != "undefined")
b[c].IsVisible = a;
}
);
this.LoadTileLayer = (function (f,g,l,n)
{
if (! h)
return ;
if (b[f] == null || typeof b[f] == "undefined")
a.push(f);
b[f] = d[g];
if (c[f])
ClearTiles(c[f]);
if (typeof b[f].IsVisible != "undefined" && b[f].IsVisible == false)
return ;
c[f] = [];
e[f] = [];
if (l != null && l != "undefined")
b[f].opacity = l;
else
b[f].opacity = 1;
if (n != null && n != "undefined")
b[f].zIndex = n;
else
b[f].zIndex = 1;
var j = false;
if (typeof Msn.VE.API != "undefined" && Msn.VE.API != null)
{
var m = i();
if (typeof m != "undefined" && m != null)
tileLayerManager.Add3DTileSource(f, d[g], m);
}
var k = d[g].MaxZoom;
if (k == 1)
k = d[mapTiles].MaxZoom;
if (currentView.zoomLevel >= d[g].MinZoom && currentView.zoomLevel <= k)
if (d[g].Bounds != "undefined" && d[g].Bounds != null)
j = tileLayerManager.CheckTilesAvailability(g, f);
else
j = true;
if (j)
{
b[f].isActive = true;
for (var p = tileViewportY1;p <= tileViewportY2;p++)
for (var o = tileViewportX1;o <= tileViewportX2;o++)
{
var q = RequestTile(o, p, currentView.zoomLevel, currentView.mapStyle, b[f],
g, b[f].opacity, b[f].zIndex);
c[f].push(q);
}
}
}
);
this.SetViewPort = (function ()
{
map.style.top = "0px";
map.style.left = "0px";
originX = MathRound(currentView.center.x - width / 2);
originY = MathRound(currentView.center.y - height / 2);
offsetX = 0;
offsetY = 0;
tileViewportX1 = MathFloor((originX - buffer) / tileSize);
tileViewportY1 = MathFloor((originY - buffer) / tileSize);
tileViewportX2 = MathFloor((originX + width + buffer) / tileSize);
tileViewportY2 = MathFloor((originY + height + buffer) / tileSize);
tileViewportWidth = tileViewportX2 - tileViewportX1 + 1;
tileViewportHeight = tileViewportY2 - tileViewportY1 + 1;
Fire("onmapoffsetreset");
}
);
this.FinalizeView = (function ()
{
zooming = false;
for (var b = 0;b < a.length;b++)
{
if (e[a[b]])
{
ClearTiles(e[a[b]]);
e[a[b]] = null;
}
for (var d = 0;d < c[a[b]].length;d++)
{
var f = c[a[b]];
f[d].SwapStates();
f[d].ClearSteps();
f[d].SetFactor(0);
f[d].ClearStates();
}
}
for (var b = 0;b < pushpins.length;b++)
{
pushpins[b].SwapStates();
pushpins[b].ClearSteps();
pushpins[b].SetFactor(0);
}
if (copyright)
copyright.Update();
if (previousMapStyle != currentView.mapStyle)
{
Fire("onchangemapstyle");
previousMapStyle = currentView.mapStyle;
}
if (previousZoomLevel != currentView.zoomLevel)
Fire("onendzoom");
Fire("onchangeview");
try
{
CollectGarbage();
}
catch (g)
{}
}
);
this.CheckLayerUpdatability = (function (d)
{
var e = false;
if (b[a[d]].isActive == false)
this.RefreshTileLayer(b[a[d]].ID);
if (d >= 0)
e = b[a[d]].ID == mapTiles || c[a[d]].length > 0;
return e;
}
);
this.PanView = (function ()
{
if (! h)
return ;
if (zooming)
return ;
var i = originX + offsetX, j = originY + offsetY, k = MathFloor((i - buffer) /
tileSize), m = MathFloor((j - buffer) / tileSize), l = MathFloor((i + width + buffer) /
tileSize), n = MathFloor((j + height + buffer) / tileSize);
while (tileViewportX1 < k)
{
for (var e = tileViewportHeight - 1;e >= 0;e--)
for (var d = 0;d < a.length;d++)
if (tileLayerManager.CheckLayerUpdatability(d))
{
var g = (c[a[d]].splice(e * tileViewportWidth, 1))[0];
try
{
g.RemoveFromMap();
}
catch (o)
{}
}
tileViewportX1++;
tileViewportWidth--;
}
while (tileViewportX1 > k)
{
tileViewportX1--;
tileViewportWidth++;
for (var e = 0;e < tileViewportHeight;e++)
for (var d = 0;d < a.length;d++)
if (tileLayerManager.CheckLayerUpdatability(d))
{
var g = RequestTile(tileViewportX1, tileViewportY1 + e,
currentView.zoomLevel, currentView.mapStyle, b[a[d]], a[d], b[a[d]].opacity,
b[a[d]].zIndex);
c[a[d]].splice(e * tileViewportWidth, 0, g);
}
}
while (tileViewportY1 < m)
{
for (var f = 0;f < tileViewportWidth;f++)
for (var d = 0;d < a.length;d++)
if (tileLayerManager.CheckLayerUpdatability(d))
{
var g = c[a[d]].shift();
try
{
g.RemoveFromMap();
}
catch (o)
{}
}
tileViewportY1++;
tileViewportHeight--;
}
while (tileViewportY1 > m)
{
tileViewportY1--;
tileViewportHeight++;
for (var f = tileViewportWidth - 1;f >= 0;f--)
for (var d = 0;d < a.length;d++)
if (tileLayerManager.CheckLayerUpdatability(d))
{
var g = RequestTile(tileViewportX1 + f, tileViewportY1,
currentView.zoomLevel, currentView.mapStyle, b[a[d]], a[d], b[a[d]].opacity,
b[a[d]].zIndex);
c[a[d]].unshift(g);
}
}
while (tileViewportX2 > l)
{
for (var e = tileViewportHeight - 1;e >= 0;e--)
for (var d = 0;d < a.length;d++)
if (tileLayerManager.CheckLayerUpdatability(d))
{
var g = (c[a[d]].splice(e * tileViewportWidth + tileViewportWidth - 1,
1))[0];
try
{
g.RemoveFromMap();
}
catch (o)
{}
}
tileViewportX2--;
tileViewportWidth--;
}
while (tileViewportX2 < l)
{
tileViewportX2++;
tileViewportWidth++;
for (var e = 0;e < tileViewportHeight;e++)
for (var d = 0;d < a.length;d++)
if (tileLayerManager.CheckLayerUpdatability(d))
{
var g = RequestTile(tileViewportX2, tileViewportY1 + e,
currentView.zoomLevel, currentView.mapStyle, b[a[d]], a[d], b[a[d]].opacity,
b[a[d]].zIndex);
c[a[d]].splice(e * tileViewportWidth + tileViewportWidth - 1, 0, g);
}
}
while (tileViewportY2 > n)
{
for (var f = 0;f < tileViewportWidth;f++)
for (var d = 0;d < a.length;d++)
if (tileLayerManager.CheckLayerUpdatability(d))
{
var g = c[a[d]].pop();
try
{
g.RemoveFromMap();
}
catch (o)
{}
}
tileViewportY2--;
tileViewportHeight--;
}
while (tileViewportY2 < n)
{
tileViewportY2++;
tileViewportHeight++;
for (var f = 0;f < tileViewportWidth;f++)
for (var d = 0;d < a.length;d++)
if (tileLayerManager.CheckLayerUpdatability(d))
{
var g = RequestTile(tileViewportX1 + f, tileViewportY2,
currentView.zoomLevel, currentView.mapStyle, b[a[d]], a[d], b[a[d]].opacity,
b[a[d]].zIndex);
c[a[d]].push(g);
}
}
}
);
this.StepAnimation = j;
this.zoomView = (function (g)
{
if (! h)
return ;
var l = originX + offsetX, m = originY + offsetY, o = currentView.zoomLevel, k =
g.zoomLevel, i = MathRound(g.center.x - width / 2), j = MathRound(g.center.y - height /
2);
e[mapTiles] = c[mapTiles];
for (var d = 0;d < a.length;d++)
if (b[a[d]].ID == mapTiles)
c[a[d]] = [];
else
ClearTiles(c[a[d]]);
for (var f = 0;f < e[mapTiles].length;f++)
e[mapTiles][f].PrepareBaseTile(l, m, o, i, j, k);
for (var d = 0;d < pushpins.length;d++)
pushpins[d].PrepareForZoom(i, j, k);
currentView.Destroy();
currentView = g;
var n = [];
n = e[mapTiles];
this.SetViewPort();
this.RefreshTileLayers();
e[mapTiles] = n;
for (var f = 0;f < c[mapTiles].length;f++)
c[mapTiles][f].PrepareSwapTile(l, m, o, i, j, k);
zoomCounter = 1;
this.StepAnimation();
}
);
this.ClearTileLayers = (function ()
{
for (var d = 0;d < a.length;d++)
{
ClearTiles(c[a[d]]);
b[a[d]] = null;
delete b[a[d]];
a[d] = null;
}
a.length = 0;
}
);
this.ClearTileLayer = (function (d)
{
if (b[d] != null && b[d] != "undefined")
{
if (typeof Msn.VE.API != "undefined" && Msn.VE.API != null)
{
var f = i();
if (typeof f != "undefined" && f != null)
f.RemoveImageSource(d, b[d].ID);
}
ClearTiles(c[d]);
b[d] = null;
delete b[d];
}
for (var e = 0;e < a.length;e++)
if (a[e] == d)
{
a[e] = null;
a.splice(e, 1);
}
}
);
this.RefreshTileLayers = (function ()
{
if (a != null)
for (var c = 0;c < a.length;c++)
this.LoadTileLayer(a[c], b[a[c]].ID, b[a[c]].opacity, b[a[c]].zIndex);
}
);
this.RefreshTileLayer = (function (a)
{
this.LoadTileLayer(a, b[a].ID, b[a].opacity, b[a].zIndex);
}
);
this.SetTileSource = (function (a)
{
var b = new VETileSourceSpecification();
b.ID = a.ID;
b.SourceName = a.TileSource;
b.NumServers = a.NumServers;
b.Bounds = a.Bounds;
if (typeof a.MinZoomLevel != "undefined" && a.MinZoomLevel != null)
b.MinZoom = a.MinZoomLevel;
if (typeof a.MaxZoomLevel != "undefined" && a.MaxZoomLevel != null)
{
b.MaxZoom = a.MaxZoomLevel;
if (b.MaxZoom > g)
g = b.MaxZoom;
}
if (a.GetTilePath != "undefined" && a.GetTilePath != null)
b.GetTilePath = a.GetTilePath;
tileLayerManager.AddTileSource(b);
}
);
this.DeleteTileSource = (function (f)
{
if (d[f] != null && d[f] != "undefined")
{
d[f] = null;
delete d[f];
}
if (a != null)
for (var e = 0;e < a.length;e++)
if (b[a[e]] != null && b[a[e]] != "undefined" &&
b[a[e]].ID == f)
{
ClearTiles(c[a[e]]);
b[a[e]] = null;
delete b[a[e]];
a[e] = null;
a.splice(e, 1);
}
}
);
this.CheckTilesAvailability = (function (h,n)
{
var k = PixelToLatLong(new VEPixel(0, 0)), j = PixelToLatLong(new VEPixel(width,
height));
if (k == null || j == null)
return ;
var a = k.latitude, c = j.longitude, e = j.latitude, f = k.longitude;
if (a < e)
{
var i = a;
a = e;
e = i;
}
if (c < f)
{
var i = c;
c = f;
f = i;
}
var l = new Msn.VE.LatLongRectangle(new Msn.VE.LatLong(a, f), new Msn.VE.LatLong(e, c)),
o = d[h].Bounds.length;
for (var g = 0;g < o;g++)
{
a = d[h].Bounds[g].TopLeftLatLong.Latitude;
c = d[h].Bounds[g].BottomRightLatLong.Longitude;
e = d[h].Bounds[g].BottomRightLatLong.Latitude;
f = d[h].Bounds[g].TopLeftLatLong.Longitude;
if (a < e)
{
var i = a;
a = e;
e = i;
}
if (c < f)
{
var i = c;
c = f;
f = i;
}
var m = new Msn.VE.LatLongRectangle(new Msn.VE.LatLong(a, f), new Msn.VE.LatLong(e,
c));
if (tileLayerManager.BBOverlap(l, m))
return true;
}
b[n].isActive = false;
return false;
}
);
this.BBOverlap = (function (a,b)
{
return this.RectInBoundingBox(b, a);
}
);
this.RectInBoundingBox = (function (a,b)
{
return ! (a.southeast.latitude > b.northwest.latitude || a.southeast.longitude <
b.northwest.longitude || a.northwest.latitude < b.southeast.latitude ||
a.northwest.longitude > b.southeast.longitude);
}
);
this.ShowTrafficLegend = (function (a)
{
k = a;
Fire("onapitrafficdisplay");
}
);
this.HideTrafficLegend = (function ()
{
Fire("onapitraffichide");
}
);
this.GetTimeStamp = (function ()
{
return k;
}
);
this.GetMaxTileZoom = (function ()
{
return g;
}
);
this.SetMarketMaxZoom = (function (a)
{
marketMaxZoom = a;
d[mapTiles].MaxZoom = a;
}
);
this.SetClientToken = (function (a,b)
{
f[a] = b;
if (d[a])
d[a].SetClientToken(b);
}
);
}
function VETileSourceSpecification()
{
this.ID = "";
this.SourceName = "";
this.OriginalName = null;
this.NumServers = 0;
this.Bounds = null;
this.MinZoom = minZoom;
this.MaxZoom = 1;
this.IsVisible = true;
this.GetTilePath = (function (a)
{
try
{
if (a != null && a != "undefined")
{
var e = "", b = 0;
for (var c = a.ZoomLevel;c > 0;c--)
{
b = 0;
var d = 1 << c - 1;
if ((a.XPos & d) != 0)
b++;
if ((a.YPos & d) != 0)
b += 2;
e += b + "";
}
var c = b % this.NumServers;
return this.SourceName.replace(/%1/g, a.MapStyle).replace(/%2/g,
c).replace(/%3/g, a.MapStyle).replace(/%4/g, e).replace(/%5/g, a.MapStyle == roadStyle ?
"png" : "jpeg").replace(/%6/g, generations[a.MapStyle]);
}
else
return "";
}
catch (f)
{}
}
);
this.SetClientToken = (function (b)
{
if (this.OriginalName)
this.SourceName = this.OriginalName;
else
this.OriginalName = this.SourceName;
if (b)
{
var a;
if (this.SourceName.indexOf("?") >= 0)
a = "&";
else
a = "?";
this.SourceName = this.SourceName.concat(a, Msn.VE.API.Constants.clienttoken,
"=", b);
}
else
this.OriginalName = null;
}
);
}
function VETileLayerSpecification()
{
this.ID = "";
this.ZIndex = 0;
this.Opacity = 1;
}
function VETileContext()
{
this.XPos = 0;
this.YPos = 0;
this.ZoomLevel = 0;
this.MapStyle = "";
}
var offsetMeters = 20971520, baseMetersPerPixel = 163840, buffer = 0, maxTilePixelBuffer
= 768, animatedMovementEnabled = true, zoomTotalSteps = 6, keyboardPanSpeed = 15,
panToLatLongSpeed = 15, earthRadius = 6378137, earthCircumference = earthRadius * 2 *
Math.PI, projectionOffset = earthCircumference * 0.5, minZoom = 1, maxZoom = 19, emptyTile
= "http://virtualearth.msn.com/i/spacer.gif", minLatitude = - 85, maxLatitude =
85, minLongitude = - 180, maxLongitude = 180, tileSize = 256, generations = {},
zoomLevelToAdjustObliqueToOrthro = 18, kbInputZIndex = 0, containerZIndex = 0, mapZIndex =
1, swapZIndex = 1, baseZIndex = 2, debugZIndex = 3, baseZIndex = 11, topZIndex = 20,
p_this = this, m_clientToken = null, cssCursors = Msn.VE.Css.Cursors, cssFn =
Msn.VE.Css.Functions, roadStyle = "r", shadedStyle = "s", hybridStyle
= "h", aerialStyle = "a", obliqueStyle = "o";
generations[roadStyle] = 117;
generations[aerialStyle] = 117;
generations[hybridStyle] = 117;
generations[obliqueStyle] = 117;
var mapTiles = "Road", trafficTiles = "Traffic", marketMaxZoom = 1,
currentScaleBarUnit = null, currentView = new Msn.VE.MapView(p_this), preferredView = new
Msn.VE.MapView(p_this), previousZoomLevel = 1, previousCenter = null, lastViewChangeType =
null, previousMapStyle = null, lastOrthoZoomLevel = 15, lastOrthoMapStyle = roadStyle, x =
0, y = 0, width = 0, height = 0, trafficAvailable = false, tileLayerManager = new
VETileLayerManager(), originX = 0, originY = 0, offsetX = 0, offsetY = 0, tileViewportX1 =
0, tileViewportY1 = 0, tileViewportX2 = 0, tileViewportY2 = 0, tileViewportWidth = 0,
tileViewportHeight = 0, dragging = false, keyboardPan = false, lastMouseX = 0, lastMouseY
= 0, zooming = false, zoomCounter = 0, panning = false, panCounter = 0, panningX = 0,
panningY = 0, panLatitude = null, panLongitude = null, pushpins = [], lines = [], map =
document.createElement("div"), keyboard =
document.createElement("input");
keyboard.id = "wl_ve_mapInput";
var logo = null, scaleBar = null, mapLegend = null, copyright = null;
this.UpdateCopyright = (function ()
{
if (copyright)
copyright.Update();
}
);
var dashboardContainer = null, dashboard = null, minimapControl = null, minimapContainer
= null, mouseZoomDisabled = false, mousewheelZoomToCenter = true, isMinimap = false,
boxTool = null, panTool = null, targetTool = null, currentTool = null, orthoMode = null,
obliqueMode = null, threeDMode = null, currentMode = null, previousMode = null,
Initialized2D = false, currentBounds = null, defaultEventTable = [], customEventTable =
[], debug = false, graphicCanvas = null, svgLayer = null, svgDiv = null, bShowSVG = true;
this.GetsvgDiv = (function ()
{
return svgDiv;
}
);
var mapCenterOffset = new VEPixel(0, 0), resizeInProgress = false, view3DCreated =
false, spacecontrol = false, spacediv = null, spaceCameraIsFlying = false, init3dparam =
null, resizeTimer = null, traffic3dAdded = false, initial3dView = null, cameraUpdateCount
= 0, photoplugin3dActive = false;
this.Is3DPhotoPluginActive = (function ()
{
return photoplugin3dActive;
}
);
this.Set3DPhotoPluginActive = (function (a)
{
photoplugin3dActive = a;
}
);
this.Init = (function ()
{
orthoMode = new OrthoMode();
orthoMode.Init();
if (p_htParams.obliqueEnabled)
{
obliqueMode = new ObliqueMode();
obliqueMode.SetGUID(p_htParams.mapGUID);
obliqueMode.Init(p_htParams.obliqueUrl ? p_htParams.obliqueUrl :
"%0dev.virtualearth.net/services/v1/ImageryMetadataService/ImageryMetadataService.asmx");
}
if (p_htParams.clientToken)
this.SetClientToken(p_htParams.clientToken);
threeDMode = new ThreeDMode();
threeDMode.Init();
UpdateFromParent();
map.className = "MSVE_Map";
map.style.zIndex = mapZIndex;
p_elSource.appendChild(map);
cssFn.addClass(p_elSource, "MSVE_MapContainer");
keyboard.className = "MSVE_KeyboardInput";
p_elSource.appendChild(keyboard);
if (! p_htParams.fixedView)
{
p_elSource.attachEvent("onmousedown", MouseDown);
p_elSource.attachEvent("onmouseup", MouseUp);
p_elSource.attachEvent("onmousemove", MouseMove);
p_elSource.attachEvent("ondblclick", MouseDoubleClick);
p_elSource.attachEvent("oncontextmenu", ContextMenu);
p_elSource.attachEvent("onclick", MouseClick);
p_elSource.attachEvent("onmouseout", MouseOut);
p_elSource.attachEvent("onmouseover", MouseOver);
p_elSource.attachEvent("onmouseenter", MouseEnter);
p_elSource.attachEvent("onmouseleave", MouseLeave);
}
if (p_htParams.buffer != undefined && p_htParams.buffer != null)
SetTilePixelBuffer(p_htParams.buffer);
var startIn3DMode = false;
if (p_htParams.mapMode != "undefined" && p_htParams.mapMode != null
&& p_htParams.mapMode == Msn.VE.MapActionMode.Mode3D || p_htParams.altitude
&& p_htParams.altitude > - 1000 || p_htParams.tilt && p_htParams.tilt
!= - 90 || p_htParams.direction && p_htParams.direction != 0)
{
SetBaseTileSource();
startIn3DMode = true;
currentMode = threeDMode;
}
init3dparam = p_htParams.mapGUID;
if ((p_htParams.latitude != null && typeof p_htParams.latitude !=
"undefined" && p_htParams.longitude != null && typeof
p_htParams.longitude != "undefined" && p_htParams.zoomlevel != null
&& typeof p_htParams.zoomlevel != "undefined" || p_htParams.boundingBox
!= null && typeof p_htParams.boundingBox != "undefined") &&
p_htParams.mapstyle != null && typeof p_htParams.mapstyle !=
"undefined")
try
{
var initialView = new Msn.VE.MapView(p_this);
initialView.SetMapStyle(ValidateMapStyle(p_htParams.mapstyle),
p_htParams.obliqueSceneId);
if (startIn3DMode)
initialView.sceneId = p_htParams.obliqueSceneId;
if (p_htParams.boundingBox)
{
initialView.SetLatLongRectangle(p_htParams.boundingBox);
if (startIn3DMode)
initialView.Resolve(orthoMode, width, height);
}
else
{
initialView.SetZoomLevel(eval(p_htParams.zoomlevel));
initialView.SetCenterLatLong(new Msn.VE.LatLong(eval(p_htParams.latitude),
eval(p_htParams.longitude)));
}
if (p_htParams.altitude)
initialView.SetAltitude(p_htParams.altitude);
if (p_htParams.tilt)
initialView.SetTilt(p_htParams.tilt);
if (p_htParams.direction)
initialView.SetDirection(p_htParams.direction);
if (p_htParams.cameraPos)
{
initialView.cameraLatlong = new Msn.VE.LatLong(eval(p_htParams.cameraPos[0]),
eval(p_htParams.cameraPos[1]));
initialView._needsPivotOperation = false;
}
if (! startIn3DMode)
SetBaseTileSource();
currentView = initialView;
}
catch (a)
{
if (! startIn3DMode)
SetDefaultView();
else
currentView = initialView;
}
else
if (! startIn3DMode)
SetDefaultView();
else
currentView = initialView;
if (startIn3DMode)
this.Init3DOnly();
else
this.Init2DOnly();
if (typeof p_htParams.hideCopyright == "undefined" || !
p_htParams.hideCopyright)
{
copyright = new Copyright(p_elSource);
copyright.Init();
copyright.Update();
if (scaleBar)
copyright.PinTo(scaleBar);
if (mapLegend)
mapLegend.PinTo(copyright);
}
if (typeof p_htParams.showMinimap != "undefined" &&
p_htParams.showMinimap)
{
var loadMinimapNow = false;
if (obliqueMode != null && p_htParams.mapstyle == obliqueStyle)
loadMinimapNow = true;
CreateMinimap(null, null, null, loadMinimapNow, null, p_htParams.minimapVersion,
p_htParams.clientToken);
}
if (p_htParams.showDashboard)
{
if (p_htParams.showMapModeSwitch != false)
p_htParams.showMapModeSwitch = true;
CreateDashboard(p_htParams.dashboardX, p_htParams.dashboardY,
p_htParams.dashboardSize, p_htParams.dashboardId, p_htParams.showMapModeSwitch,
p_htParams.dashboardVersion);
}
if (p_htParams.showMapLegend)
this.CreateLegend();
if (startIn3DMode)
copyright.Hide();
}
);
AttachEvent("onstartmapstyleoblique", (function ()
{
if (targetTool)
targetTool.trackMovement();
}
));
AttachEvent("onendmapstyleoblique", (function ()
{
if (targetTool)
targetTool.ignoreMovement();
}
));
AttachEvent("onchangeview", OnChangeView);
this.Init2DOnly = (function (a)
{
mvcViewFacade.OnSwitchToFlatlandView();
currentView.doRoadShading = typeof p_htParams.doRoadShading != "undefined"
&& p_htParams.doRoadShading == true;
if (! p_htParams.fixedView)
{
boxTool = new BoxTool();
boxTool.Init();
panTool = new PanTool();
panTool.Init();
currentTool = panTool;
keyboard.attachEvent("onkeydown", KeyDown);
keyboard.attachEvent("onkeyup", KeyUp);
keyboard.attachEvent("onblur", StopKeyboardPan);
p_elSource.attachEvent("onmousewheel", MouseWheel);
}
targetTool = new TargetTool();
targetTool.init();
if (! p_htParams.disableLogo)
{
logo = new Logo(p_elSource);
logo.Init();
}
if (typeof copyright != "undefined" && copyright != null)
copyright.Show();
if (obliqueMode && currentMode != obliqueMode)
obliqueMode.UpdateAvailability();
graphicCanvas = GetGraphic(this);
tileLayerManager.Active = true;
if (currentView == null)
SetDefaultView();
else
{
if (a == true || ! Initialized2D)
{
SetView(currentView);
Initialized2D = true;
}
SetView(null);
}
if (p_htParams.showScaleBar)
{
scaleBar = new ScaleBar(p_elSource);
scaleBar.Init();
if (currentScaleBarUnit)
this.SetScaleBarDistanceUnit(currentScaleBarUnit);
if (copyright)
copyright.PinTo(scaleBar);
AttachEvent("onendzoom", scaleBar.Update);
AttachEvent("onendpan", scaleBar.Update);
AttachEvent("onobliquechange", scaleBar.Update);
AttachEvent("onchangemapstyle", scaleBar.Update);
AttachEvent("onresize", scaleBar.Reposition);
}
Fire("oninitmode", Msn.VE.MapActionMode.Mode2D);
}
);
this.Init3DOnly = (function ()
{
if (typeof LoadMapDrawing == "function")
LoadMapDrawing(null);
if (dashboard)
if (window.navigator.userAgent.indexOf("Firefox") < 0)
{
var d = dashboard.GetShimmedElements(), c;
for (c = 0;c < d.length;c++)
UpdateIFrameShim(d[c]);
}
if (mapLegend)
mapLegend.UpdateShim();
var b;
try
{
if (currentView == null)
b = SetDefaultView();
else
{
var a = currentView.MakeCopy();
if (currentView.mapStyle == obliqueStyle)
{
a.SetMapStyle(lastOrthoMapStyle);
a.SetZoomLevel(a.GetZoomLevel() + zoomLevelToAdjustObliqueToOrthro);
}
a.SetCenterLatLong(new Msn.VE.LatLong(currentView.latlong.latitude,
currentView.latlong.longitude));
a.cameraLatlong = currentView.cameraLatlong;
b = SetView(a);
}
}
catch (e)
{
b = false;
}
if (! b)
{
this._Disable3DMode(true);
return ;
}
if (! view3DCreated)
return ;
mvcViewFacade.OnSwitchToView3D(spacecontrol);
if (p_htParams.showDashboard)
spacecontrol.ShowNavigationControl = true;
if (typeof p_htParams.hideCopyright == "undefined" || !
p_htParams.hideCopyright)
spacecontrol.ShowCopyright = true;
if (typeof copyright != "undefined" && copyright != null)
copyright.Hide();
if (p_htParams.showScaleBar)
{
spacecontrol.ShowScale = true;
if (currentScaleBarUnit)
this.SetScaleBarDistanceUnit(currentScaleBarUnit);
}
if (window.locale)
{
spacecontrol.CurrentLocale = window.locale;
spacecontrol.DisplayMetricUnits = MapControl.Features.ScaleBarKilometers;
}
spacecontrol.AttachEvent("OnHardwareCapabilitiesUpdate",
"OnHardwareCapabilitiesUpdate");
if (spacecontrol.HardwareClassificationLevel > 0)
this.Setup3DManifests();
tileLayerManager.AddAllTileSourcesTo3D(spacecontrol);
AttachEvent("onchangetraffic", OnView3DScaleBarPositionUpdate);
spacecontrol.AttachEvent("OnCameraChanged",
"OnView3DUpdateViewpoint");
spacecontrol.AttachEvent("OnBeginCameraChange", "OnBeginFlyTo");
if (! p_htParams.fixedView)
{
spacecontrol.AttachEvent("OnHover", "OnView3DPushpinHover");
spacecontrol.AttachEvent("OnHoverEnd", "OnView3DHoverEnd");
spacecontrol.AttachEvent("OnDropGeometry",
"OnView3DDropGeometry");
spacecontrol.AttachEvent("OnLatLonAltClicked",
"OnView3DLatLonAltClicked");
spacecontrol.AttachEvent("OnMouseDown", "OnMouseDown3D");
spacecontrol.AttachEvent("OnMouseUp", "OnMouseUp3D");
spacecontrol.AttachEvent("OnClick", "OnClick3D");
spacecontrol.AttachEvent("OnMouseOver", "OnMouseOver3D");
spacecontrol.AttachEvent("OnMouseOut", "OnMouseOut3D");
spacecontrol.AttachEvent("OnDoubleClick", "OnDoubleClick3D");
spacecontrol.AttachEvent("OnModelViewSuccess", "
UniqueModelViewSuccess");
spacecontrol.AttachEvent("OnModelViewFailure", "
UniqueModelViewFailure");
}
else
spacecontrol.FixedView = true;
traffic3dAdded = false;
if (typeof VE_TrafficManager != "undefined" && VE_TrafficManager !=
null)
VE_TrafficManager.GetTrafficInfo(false);
if (typeof VE_BrandExplorationManager != "undefined" &&
VE_BrandExplorationManager != null)
VE_BrandExplorationManager.Clear();
if (! init3dparam)
Relay3DPushpins();
Fire("oninitmode", Msn.VE.MapActionMode.Mode3D);
}
);
this.Setup3DManifests = (function ()
{
var c = currentView.mapStyle, a =
"http://go.microsoft.com/fwlink/?LinkID=98770", b =
"http://go.microsoft.com/fwlink/?LinkID=98775", d =
"http://go.microsoft.com/fwlink/?LinkID=98774";
if (c == "a")
{
a = "http://go.microsoft.com/fwlink/?LinkID=98771";
spacecontrol.ShowAtmosphere = true;
}
if (c == "h")
{
a = "http://go.microsoft.com/fwlink/?LinkID=98772";
spacecontrol.ShowAtmosphere = true;
}
if (c == "r")
{
spacecontrol.TexturesVisible = false;
if (spacecontrol.HardwareClassificationLevel < 3)
a = "http://go.microsoft.com/fwlink/?LinkID=98769";
spacecontrol.ShowAtmosphere = false;
}
else
spacecontrol.TexturesVisible = true;
if (2 == spacecontrol.HardwareClassificationLevel)
{
d = "http://go.microsoft.com/fwlink/?LinkID=98773";
b = "http://go.microsoft.com/fwlink/?LinkID=98776";
}
else
if (1 == spacecontrol.HardwareClassificationLevel)
{
d = "http://go.microsoft.com/fwlink/?LinkID=98773";
b = "";
}
spacecontrol.AddImageSource("Terrain", "Texture", GetManifestUrl(a),
0, 1);
spacecontrol.AddElevationSource("Terrain", "DEM", GetManifestUrl(d),
0);
if (b != "")
spacecontrol.AddModelSource("Model", "Model", GetManifestUrl(b));
else
spacecontrol.RemoveModelSource("Model", "Model");
}
);
this.ShowSVG = (function (a)
{
bShowSVG = a;
}
);
this.getSvgLayer = (function ()
{
if (svgLayer == null)
{
svgDiv = document.createElement("div");
svgDiv.style.position = "absolute";
if (bShowSVG)
svgDiv.style.zIndex = 60;
else
svgDiv.style.zIndex = - 1;
this.resizeSVG();
map.appendChild(svgDiv);
svgLayer = new Msn.Drawing.SvgLayer(svgDiv, this);
}
return svgLayer;
}
);
this.resetSvgLayer = (function ()
{
this.getSvgLayer();
svgDiv.style.top = - parseInt(map.style.top) + "px";
svgDiv.style.left = - parseInt(map.style.left) + "px";
}
);
this.resizeSVG = (function ()
{
if (svgDiv != null)
{
var b = GetWindowWidth(), a = GetWindowHeight();
svgDiv.style.top = "0px";
svgDiv.style.left = "0px";
svgDiv.style.width = b + "px";
svgDiv.style.height = a + "px";
}
}
);
this.GetDashboard = (function ()
{
return dashboard;
}
);
this.GetMinimap = (function ()
{
return minimapControl;
}
);
this.DisableZoomEvents = (function (a)
{
mouseZoomDisabled = a;
}
);
this.GetMouseWheelZoomToCenter = (function ()
{
return mousewheelZoomToCenter;
}
);
this.SetMouseWheelZoomToCenter = (function (a)
{
mousewheelZoomToCenter = a;
}
);
this.SetMinimapMode = (function ()
{
mouseZoomDisabled = true;
isMinimap = true;
}
);
this.SetCursor = (function (a)
{
var b = p_elSource.style;
if (b.cursor != a)
b.cursor = a;
}
);
this.Destroy = (function ()
{
if (currentView)
{
currentView.Destroy();
currentView = null;
}
if (preferredView)
{
preferredView.Destroy();
preferredView = null;
}
if (copyright)
{
copyright.Destroy();
copyright = null;
}
if (currentMode == threeDMode && currentMode != null)
this.Destroy3DOnly();
else
{
this.Destroy2DOnly();
while (pushpins.length)
pushpins.pop().Destroy();
ClearLines();
}
if (! p_htParams.fixedView)
{
p_elSource.detachEvent("onmousedown", MouseDown);
p_elSource.detachEvent("onmouseup", MouseUp);
p_elSource.detachEvent("onmousemove", MouseMove);
p_elSource.detachEvent("ondblclick", MouseDoubleClick);
p_elSource.detachEvent("oncontextmenu", ContextMenu);
p_elSource.detachEvent("onmousewheel", MouseWheel);
p_elSource.detachEvent("onclick", MouseClick);
p_elSource.detachEvent("onmouseout", MouseOut);
p_elSource.detachEvent("onmouseover", MouseOver);
p_elSource.detachEvent("onmouseenter", MouseEnter);
p_elSource.detachEvent("onmouseleave", MouseLeave);
}
if (dashboard)
{
if (typeof dashboard.Destroy != "undefined")
dashboard.Destroy();
dashboard = null;
}
if (mapLegend)
{
DetachEvent("onendzoom", mapLegend.Update);
DetachEvent("onendpan", mapLegend.Update);
DetachEvent("onobliquechange", mapLegend.Update);
if (typeof VE_TrafficManager != "undefined" && VE_TrafficManager
!= null)
VE_TrafficManager.CloseTrafficLegend();
mapLegend.Destroy();
mapLegend = null;
}
if (dashboardContainer)
{
dashboardContainer.detachEvent("onmousedown", IgnoreEvent);
dashboardContainer.detachEvent("onmouseup", IgnoreEvent);
dashboardContainer.detachEvent("onmousemove",
DashboardContainerMouseMoveEvent);
dashboardContainer.detachEvent("onmousewheel", IgnoreEvent);
dashboardContainer.detachEvent("ondblclick", IgnoreEvent);
dashboardContainer.detachEvent("oncontextmenu", IgnoreEvent);
dashboardContainer.detachEvent("onkeydown", IgnoreEvent);
dashboardContainer.detachEvent("onkeyup", IgnoreEvent);
dashboardContainer = null;
}
if (minimapControl)
{
minimapControl.Destroy();
minimapControl = null;
}
if (minimapContainer)
{
minimapContainer.detachEvent("onmousedown", IgnoreEvent);
minimapContainer.detachEvent("onmouseup", IgnoreEvent);
minimapContainer.detachEvent("onmousemove",
DashboardContainerMouseMoveEvent);
minimapContainer.detachEvent("onmousewheel", IgnoreEvent);
minimapContainer.detachEvent("ondblclick", IgnoreEvent);
minimapContainer.detachEvent("oncontextmenu", IgnoreEvent);
minimapContainer.detachEvent("onkeydown", IgnoreEvent);
minimapContainer.detachEvent("onkeyup", IgnoreEvent);
minimapContainer = null;
}
if (orthoMode)
{
orthoMode.Destroy();
orthoMode = null;
}
if (obliqueMode)
{
obliqueMode.Destroy();
obliqueMode = null;
}
if (threeDMode)
{
threeDMode.Destroy();
threeDMode = null;
}
DestroyEventTable();
m_clientToken = null;
p_elSource.style.backgroundColor = "transparent";
p_elSource.style.filter = "";
keyboard = p_elSource = p_this = map = null;
tileLayerManager.ClearTileLayers();
cssCursors = null;
cssFn = null;
}
);
this.Destroy2DOnly = (function ()
{
if (! p_htParams.fixedView)
{
keyboard.detachEvent("onkeydown", KeyDown);
keyboard.detachEvent("onkeyup", KeyUp);
keyboard.detachEvent("onblur", StopKeyboardPan);
p_elSource.detachEvent("onmousewheel", MouseWheel);
}
tileLayerManager.Active = false;
if (scaleBar)
{
DetachEvent("onendzoom", scaleBar.Update);
DetachEvent("onendpan", scaleBar.Update);
DetachEvent("onobliquechange", scaleBar.Update);
DetachEvent("onchangemapstyle", scaleBar.Update);
DetachEvent("onresize", scaleBar.Reposition);
scaleBar.Destroy();
scaleBar = null;
}
if (copyright)
copyright.PinTo(null);
if (logo)
{
logo.Destroy();
logo = null;
}
if (boxTool)
{
boxTool.Destroy();
boxTool = null;
}
if (panTool)
{
panTool.Destroy();
panTool = null;
}
if (targetTool)
{
targetTool.destroy();
targetTool = null;
}
if (graphicCanvas)
{
graphicCanvas.Destroy();
graphicCanvas = null;
}
Fire("ondestroymode", Msn.VE.MapActionMode.Mode2D);
}
);
this.Destroy3DOnly = (function ()
{
DetachEvent("onchangetraffic", OnView3DScaleBarPositionUpdate);
view3DCreated = false;
try
{
spacecontrol.Close();
}
catch (c)
{}
spacecontrol = false;
window.status = "";
if (spacediv != null)
{
spacediv.removeNode(true);
spacediv = null;
}
if (dashboard && dashboard.GetShimmedElements)
{
var b = dashboard.GetShimmedElements(), a;
for (a = 0;a < b.length;a++)
destroyIFrameShim(b[a].id);
}
if (mapLegend)
mapLegend.RemoveShim();
Fire("ondestroymode", Msn.VE.MapActionMode.Mode3D);
}
);
this.FireResize = (function ()
{
if (resizeInProgress)
return ;
else
resizeInProgress = true;
var b = p_this.w, a = p_this.h;
if (! b || b <= 0 || ! a || a <= 0)
Fill();
else
{
p_elSource.style.width = b + "px";
p_elSource.style.height = a + "px";
UpdateFromParent();
if (currentMode == null || currentMode != threeDMode)
{
if (b && b >= 0)
width = b;
if (a && a >= 0)
height = a;
}
PanToView(currentView);
}
if (copyright)
copyright.Reposition();
if (scaleBar)
scaleBar.Reposition();
if (! document.all)
p_this.resizeSVG();
Fire("onresize");
}
);
this.CreateLegend = (function ()
{
if (! mapLegend)
{
mapLegend = new MapLegend(p_elSource);
mapLegend.Init();
if (copyright)
mapLegend.PinTo(copyright);
}
return mapLegend;
}
);
VECopyrightTableEntry.prototype.IsMatch = (function (b,c,a)
{
var d = false;
if (b >= this.MinZoomLevel && b <= this.MaxZoomLevel && c >=
this.MinLatitude && c <= this.MaxLatitude && a >= this.MinLongitude
&& a <= this.MaxLongitude)
d = true;
return d;
}
);
var g_sVECopyrightTable = new VECopyrightTable();
var currentShapeID = null;
var northLatitude = 0, southLatitude = 0, westLongitude = 0, eastLongitude = 0;
var IsDrivingEventAttached = false;
var hijackMouseMove = false, hijackMouseCursor = false, isLastButtonMiddle = false;
var lastmouseX = 0, lastmouseY = 0;
var isEnablingDefaultDblClick = true;
var obliqueLoop = 0;
Pushpin.prototype.Init = (function (i,g,h,f,e,c,d,j,a,b)
{
this.id = i;
this.lat = g;
this.lon = h;
this.width = f;
this.height = e;
this.className = c;
this.innerHtml = d;
this.zIndex = j;
this.pinType = a;
this.pin.id = i;
this.pin.className = c;
this.pin.style.position = "absolute";
this.pin.innerHTML = d;
this.pin.pinType = a || Msn.VE.PushPinTypes.Default;
this.Offset = getPushPinOffset(this.pin.pinType);
if (a == Msn.VE.PushPinTypes.SearchResultPrecise)
{
this.img.src = GetUrlPrefix() + "i/bin/" + window.buildVersion +
"/pins/poi_search.gif";
this.pin.appendChild(this.img);
}
else
if (a == Msn.VE.PushPinTypes.SearchResultNonprecise)
{
this.img.src = GetUrlPrefix() + "i/bin/" + window.buildVersion +
"/pins/poi_search_nonprecise.gif";
this.pin.appendChild(this.img);
}
else
if (a == Msn.VE.PushPinTypes.AdSponsor)
{
this.img.src = GetUrlPrefix() + "i/bin/" + window.buildVersion +
"/pins/poi_search.gif";
this.pin.appendChild(this.img);
}
this.pin.unselectable = "on";
this.center = new Msn.VE.LatLong(g, h);
this.w = f;
this.h = e;
if (b)
this.SetAccuratePixel(b);
var k = this.LatLongToPixelWithAccuracyOffset(currentView.zoomLevel, originX, originY);
this.SetPixelLocation(k);
}
);
Pushpin.prototype.SetAccuratePixel = (function (b)
{
var a = currentMode.PixelToLatLong(b, currentView.zoomLevel);
this.beLatLongOffset = new Msn.VE.LatLong(a.latitude - this.center.latitude, a.longitude
- this.center.longitude);
}
);
Pushpin.prototype.LatLongToPixelWithAccuracyOffset = (function (b,c,d)
{
var a = this.center;
if (this.beLatLongOffset && GetMapStyle() == Msn.VE.MapStyle.Oblique)
a = new Msn.VE.LatLong(this.center.latitude + this.beLatLongOffset.latitude,
this.center.longitude + this.beLatLongOffset.longitude);
return GetPushpinPixel(a, b, c, d);
}
);
Pushpin.prototype.GetLatitude = (function ()
{
return this.center.latitude;
}
);
Pushpin.prototype.GetLongitude = (function ()
{
return this.center.longitude;
}
);
Pushpin.prototype.ClearSteps = (function ()
{
var b = zoomTotalSteps;
for (var a = 0;a <= b;a++)
{
this.xs[a] = this.x1 - this.w / 2 + this.Offset.x + "px";
this.ys[a] = this.y1 - this.h / 2 + this.Offset.y + "px";
}
}
);
Pushpin.prototype.PrecomputeSteps = (function ()
{
var d = zoomTotalSteps;
for (var a = 0;a <= d;a++)
{
var b = a / d, c = 1 - b;
this.xs[a] = MathFloor(c * this.x1 + b * this.x2 - this.w / 2 + this.Offset.x) +
"px";
this.ys[a] = MathFloor(c * this.y1 + b * this.y2 - this.h / 2 + this.Offset.y) +
"px";
}
}
);
Pushpin.prototype.SetFactor = (function (a)
{
this.pin.style.left = this.xs[a];
this.pin.style.top = this.ys[a];
}
);
Pushpin.prototype.SetPixelLocation = (function (a)
{
if (a && this.visible)
{
this.x1 = a.x;
this.y1 = a.y;
this.x2 = this.x1;
this.y2 = this.y1;
this.PrecomputeSteps();
this.SetFactor(0);
this.pin.style.display = "block";
}
else
this.pin.style.display = "none";
}
);
Pushpin.prototype.SwapStates = (function ()
{
var a = 0;
a = this.x1;
this.x1 = this.x2;
this.x2 = a;
a = this.y1;
this.y1 = this.y2;
this.y2 = a;
}
);
Pushpin.prototype.Reposition = (function ()
{
var a = this.LatLongToPixelWithAccuracyOffset(currentView.zoomLevel, originX, originY);
if (a)
{
this.x1 = a.x;
this.y1 = a.y;
this.ClearSteps();
this.SetFactor(0);
if (this.pin.style.display != "none" && this.visible)
this.pin.style.display = "block";
}
else
this.pin.style.display = "none";
}
);
Pushpin.prototype.UnHide = (function ()
{
if (! this.visible)
{
this.pin.style.display = "block";
this.visible = true;
}
}
);
Pushpin.prototype.Hide = (function ()
{
if (this.visible)
{
this.pin.style.display = "none";
this.visible = false;
}
}
);
Pushpin.prototype.UnHide3D = (function ()
{
if (IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
View3DAddPushpin(this);
}
);
Pushpin.prototype.Hide3D = (function ()
{
if (IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
View3DRemovePushpin(this.id);
}
);
Pushpin.prototype.PrepareForZoom = (function (b,c,d)
{
this.x1 -= offsetX;
this.y1 -= offsetY;
var a = this.LatLongToPixelWithAccuracyOffset(d, b, c);
if (a)
{
this.x2 = a.x;
this.y2 = a.y;
this.PrecomputeSteps();
if (this.pin.style.display != "none" && this.visible)
this.pin.style.display = "block";
}
else
this.pin.style.display = "none";
}
);
Pushpin.prototype.RemoveFromMap = (function ()
{
if (this.pin.parentNode == map)
map.removeChild(this.pin);
}
);
Pushpin.prototype.Move = (function (a)
{
this.MoveToLatLon(PixelToLatLong(a));
}
);
Pushpin.prototype.MoveToLatLon = (function (a)
{
this.center = a;
this.Reposition();
}
);
var totalRequestTime = 0, totalRequestCount = 0, totalFailureCount = 0,
responseRangeCeilings = [];
responseRangeCeilings[roadStyle] = [325, 975];
responseRangeCeilings[shadedStyle] = responseRangeCeilings[roadStyle];
responseRangeCeilings[aerialStyle] = [350, 1050];
responseRangeCeilings[hybridStyle] = [425, 1275];
responseRangeCeilings[obliqueStyle] = [450, 1350];
var responseRangeCounts = [0, 0, 0];
var orthoTileSpec = new VETileSourceSpecification();
orthoTileSpec.ID = mapTiles;
orthoTileSpec.SourceName = Msn.VE.API ? Msn.VE.API.Constants.orthotileserver :
"%0t%2.tiles.virtualearth.net/tiles/%3%4.%5?g=%6";
orthoTileSpec.NumServers = 4;
var shadedTileSpec = new VETileSourceSpecification();
shadedTileSpec.ID = mapTiles;
shadedTileSpec.SourceName = Msn.VE.API ? Msn.VE.API.Constants.shadedtileserver :
"%0t%2.tiles.virtualearth.net/tiles/%3%4.%5?g=%6&shading=hill";
shadedTileSpec.SourceName = shadedTileSpec.SourceName.replace(/%1/g,
"r").replace(/%3/g, "r").replace(/%5/g,
"png").replace(/%6/g, generations["r"]);
shadedTileSpec.NumServers = 4;
_VERegisterNamespaces("Msn.VE.Geometry");
Msn.VE.Geometry.Point = (function (c,d)
{
var a = this, b = Msn.VE.Geometry;
this.x = c;
this.y = d;
this.add = (function (c,d)
{
var e = new b.Point(a.x + c, a.y + d);
return e;
}
);
this.getDistanceFrom = (function (b)
{
var c = Math.pow(b.x - a.x, 2) + Math.pow(b.y - a.y, 2), d = Math.sqrt(c);
return d;
}
);
}
);
Msn.VE.Geometry.Overlap = {Range : {GreaterThanX : 1, LessThanX : 2, GreaterThanY : 4,
LessThanY : 8, InXRange : 16, InYRange : 32, InRange : 48}, getInstance : (function (f,g)
{
function e()
{
if ((b.getP2()).x > (a.getP2()).x)
c += d.Range.GreaterThanX;
if ((b.getP1()).x < (a.getP1()).x)
c += d.Range.LessThanX;
if ((b.getP2()).y > (a.getP2()).y)
c += d.Range.GreaterThanY;
if ((b.getP1()).y < (a.getP1()).y)
c += d.Range.LessThanY;
if ((a.getP1()).x <= (b.getP1()).x && (b.getP2()).x <= (a.getP2()).x)
c += d.Range.InXRange;
if ((a.getP1()).y <= (b.getP1()).y && (b.getP2()).y <= (a.getP2()).y)
c += d.Range.InYRange;
}
var d = Msn.VE.Geometry.Overlap, a = f, b = g, c = 0;
e();
this.getRange = (function ()
{
return c;
}
);
this.getLeftXBleed = (function ()
{
if (c & d.Range.LessThanX)
return Math.abs((a.getP1()).x - (b.getP1()).x);
else
return 0;
}
);
this.getRightXBleed = (function ()
{
if (c & d.Range.GreaterThanX)
return (b.getP2()).x - (a.getP2()).x;
else
return 0;
}
);
this.getTopYBleed = (function ()
{
if (c & d.Range.LessThanY)
return Math.abs((a.getP1()).y - (b.getP1()).y);
else
return 0;
}
);
this.getBottomYBleed = (function ()
{
if (c & d.Range.GreaterThanY)
return (b.getP2()).y - (a.getP2()).y;
else
return 0;
}
);
}
)};
Msn.VE.Geometry.Rectangle = (function (h,i)
{
function f()
{
c();
}
function c()
{
d = b.y - a.y;
e = b.x - a.x;
}
var g = this, a = h, b = i, d, e;
f();
this.move = (function (c)
{
a.x = c.x;
a.y = c.y;
b.x = c.x + e;
b.y = c.y + d;
}
);
this.getP1 = (function ()
{
return a;
}
);
this.getP2 = (function ()
{
return b;
}
);
this.setP1 = (function (b)
{
a = b;
c();
}
);
this.setP2 = (function (a)
{
b = a;
c();
}
);
this.getWidth = (function ()
{
return e;
}
);
this.getHeight = (function ()
{
return d;
}
);
this.containsPoint = (function (c)
{
return c.x >= a.x && c.x <= b.x && c.y >= a.y && c.y
<= b.y;
}
);
this.scale = (function (d)
{
a.x -= d;
a.y -= d;
b.x += d;
b.y += d;
c();
}
);
this.getOverlap = (function (a)
{
var b = Msn.VE.Geometry;
return new b.Overlap.getInstance(g, a);
}
);
}
);
Msn.VE.Geometry.Functions = {getSlope : (function (a,b)
{
return (b.y - a.y) / (b.x - a.x);
}
), getYIntercept : (function (b,a)
{
return a.y - b * a.x;
}
), getBestBoundingPoint : (function (f,b,c)
{
var a = Msn.VE.Geometry;
if (! b)
b = g(f).getScreenPosition();
var e = new a.Rectangle(b, new a.Point(b.x + f.offsetWidth, b.y + f.offsetHeight)), j =
c.getOverlap(e), d = j.getRange();
if ((d & a.Overlap.Range.InRange) == a.Overlap.Range.InRange)
return b;
var h = b.x, i = b.y;
if (d & a.Overlap.Range.GreaterThanX)
h = (c.getP2()).x - e.getWidth();
if (d & a.Overlap.Range.LessThanX)
h = (c.getP1()).x;
if (d & a.Overlap.Range.GreaterThanY)
i = (c.getP2()).y - e.getHeight();
if (d & a.Overlap.Range.LessThanY)
i = (c.getP1()).y;
return new a.Point(h, i);
}
)};
view3DMode = false;
var sentinel3D, setStyle;
var on3DAnimationInterruptedCallback = null;
var setTrafficViewflag = true;
VEAuthenticationCode = (function ()
{
}
);
VEAuthenticationCode.None = "0";
VEAuthenticationCode.NoToken = "1";
VEAuthenticationCode.TokenValid = "2";
VEAuthenticationCode.TokenInvalid = "3";
VEAuthenticationCode.TokenExpired = "4";
this.__HandleAuthentication = (function (b)
{
if (b && b.ResponseSummary && b.ResponseSummary.AuthResultCode)
{
var a = b.ResponseSummary.AuthResultCode;
if (a != VEAuthenticationCode.None && a != VEAuthenticationCode.NoToken
&& a != VEAuthenticationCode.TokenValid)
if (a == VEAuthenticationCode.TokenExpired)
this.Fire("ontokenexpire");
else
this.Fire("ontokenerror");
}
}
);
this.SetCenter = SetCenter;
this.SetCenterAccurate = SetCenterAccurate;
this.SetMapStyle = SetMapStyle;
this.SetScaleBarDistanceUnit = SetScaleBarDistanceUnit;
this.GetCenterLatitude = GetCenterLatitude;
this.GetCenterLongitude = GetCenterLongitude;
this.GetLatitude = GetLatitude;
this.GetLongitude = GetLongitude;
this.GetY = GetY;
this.GetX = GetX;
this.LatLongToPixel = LatLongToPixel;
this.LatLongToPixelAsync = LatLongToPixelAsync;
this.PixelToLatLong = PixelToLatLong;
this.PixelToLatLongAsync = PixelToLatLongAsync;
this.GetZoomLevel = GetZoomLevel;
this.GetMapStyle = GetMapStyle;
this.GetMapMode = GetMapMode;
this.GetMode = GetMode;
this.GetAltitude = GetAltitude;
this.GetDirection = GetDirection;
this.GetTilt = GetTilt;
this.GetMetersPerPixel = GetMetersPerPixel;
this.Fill = Fill;
this.Resize = Resize;
this.PanMap = PanMap;
this.ContinuousPan = ContinuousPan;
this.StopContinuousPan = StopContinuousPan;
this.StopKeyboardPan = StopKeyboardPan;
this.PanToLatLong = PanToLatLong;
this.PanByPixel = PanByPixel;
this.GetPushpins = GetPushpins;
this.AddPushpin = AddPushpin;
this.RemovePushpin = RemovePushpin;
this.ClearPushpins = ClearPushpins;
this.GetPushpinMapPixel = GetPushpinMapPixel;
this.SetViewport = SetViewport;
this.SetBestMapView = SetBestMapView;
this.ClipLatitude = ClipLatitude;
this.ClipLongitude = ClipLongitude;
this.GetBestMapViewBounds = GetBestMapViewBounds;
this.IncludePointInViewport = IncludePointInViewport;
this.SetZoom = SetZoom;
this.SetTilt = SetTilt;
this.SetDirection = SetDirection;
this.SetAltitude = SetAltitude;
this.ZoomIn = ZoomIn;
this.ZoomOut = ZoomOut;
this.SetCenterAndZoom = SetCenterAndZoom;
this.AddLine = AddLine;
this.RemoveLine = RemoveLine;
this.ClearLines = ClearLines;
this.AttachEvent = AttachEvent;
this.DetachEvent = DetachEvent;
this.AttachCustomEvent = AttachCustomEvent;
this.DetachCustomEvent = DetachCustomEvent;
this.FireCustomEvent = FireCustomEvent;
this.DisposeAllCustomEvent = DisposeAllCustomEvent();
this.CreateEvent = CreateEvent;
this.Fire = Fire;
this.IsObliqueAvailable = IsObliqueAvailable;
this.GetObliqueScene = GetObliqueScene;
this.SetAnimationEnabled = SetAnimationEnabled;
this.IsAnimationEnabled = IsAnimationEnabled;
this.SetObliqueScene = SetObliqueScene;
this.SetObliqueLocation = SetObliqueLocation;
this.SetObliqueOrientation = SetObliqueOrientation;
this.SetView = SetView;
this.Debug = Debug;
this.GetResponseRangeCounts = GetResponseRangeCounts;
this.ResetResponseRangeCounts = ResetResponseRangeCounts;
this.GetFailureRate = GetFailureRate;
this.SetTrafficView = SetTrafficView;
this.GetTrafficAvailability = GetTrafficAvailability;
this.GetMarketsFile = GetMarketsFile;
this.GetIncidentsFile = GetIncidentsFile;
this.GetSlidingExpirationForAutoRefresh = GetSlidingExpirationForAutoRefresh;
this.GetAutoRefreshRate = GetAutoRefreshRate;
this.GetMapLegend = GetMapLegend;
this.SetFocus = SetFocus;
this.GetCurrentMode = GetCurrentMode;
this.GetMapWidth = GetMapWidth;
this.GetMapHeight = GetMapHeight;
this.GetCurrentMapView = GetCurrentMapView;
this.SetBaseTileSource = SetBaseTileSource;
this.SetTileSource = tileLayerManager.SetTileSource;
this.SetTileLayerVisibility = tileLayerManager.SetTileLayerVisibility;
this.LoadTileLayer = tileLayerManager.LoadTileLayer;
this.ClearTileLayer = tileLayerManager.ClearTileLayer;
this.ClearTileLayers = tileLayerManager.ClearTileLayers;
this.DeleteTileSource = tileLayerManager.DeleteTileSource;
this.HideBaseTileLayer = tileLayerManager.HideBaseTileLayer;
this.ShowBaseTileLayer = tileLayerManager.ShowBaseTileLayer;
this.RefreshTileLayer = tileLayerManager.RefreshTileLayer;
this.RefreshTileLayers = tileLayerManager.RefreshTileLayers;
this.ShowTrafficLegend = tileLayerManager.ShowTrafficLegend;
this.HideTrafficLegend = tileLayerManager.HideTrafficLegend;
this.GetTimeStamp = tileLayerManager.GetTimeStamp;
this.GetMaxTileZoom = tileLayerManager.GetMaxTileZoom;
this.PanView = tileLayerManager.PanView;
this.LoadBaseLayer = tileLayerManager.LoadBaseLayer;
this.GetCurrentViewMaxZoomLevel = GetCurrentViewMaxZoomLevel;
this.SetTilePixelBuffer = SetTilePixelBuffer;
this.SetClientToken = SetClientToken;
this.SetMapHeight = SetMapHeight;
this.GetMapSurface = GetMapSurface;
this.EnableMode = EnableMode;
this._Enable3DMode = _Enable3DMode;
this._Disable3DMode = _Disable3DMode;
this.ControlReady = ControlReady;
this.Get3DVisibleArea = Get3DVisibleArea;
this.Get3DControl = Get3DControl;
this.IsModeEnabled = IsModeEnabled;
this.Sync3dView = Sync3dView;
this.OnBeginCameraUpdate = OnBeginCameraUpdate;
this.OnEndCameraUpdate = OnEndCameraUpdate;
this.IsCameraFlying = IsCameraFlying;
this.Show3DTraffic = Show3DTraffic;
this.Remove3DTraffic = Remove3DTraffic;
this.IterativeCameraRefinement = IterativeCameraRefinement;
this.SetChildDiv = SetChildDiv;
this.EnableGeoCommunity = EnableGeoCommunity;
this.IsGeoCommunityEnabled = IsGeoCommunityEnabled;
this.HijackMouseCursor = HijackMouseCursor;
this.IsHijackMouseCursor = IsHijackMouseCursor;
this.GetOffsetX = GetOffsetX;
this.GetOffsetY = GetOffsetY;
this.GetCenterOffset = GetCenterOffset;
this.SetCenterOffset = SetCenterOffset;
this.UpdatePreferredView = UpdatePreferredView;
this.GetGraphic = GetGraphic;
this.CreateDashboard = CreateDashboard;
this.GetLastViewChangeType = GetLastViewChangeType;
this.SetOn3DAnimationInterruptedCallback = SetOn3DAnimationInterruptedCallback;
this.GetOn3DAnimationInterruptedCallback = GetOn3DAnimationInterruptedCallback;
this.SetShowMapModeSwitch = SetShowMapModeSwitch;
this.GetObliqueAvailability = GetObliqueAvailability;
this.GetTopPx = GetTopPx;
this.GetLeftPx = GetLeftPx;
this.CreateMinimap = CreateMinimap;
}
);
Msn.VE.Bounds = (function (e,f,a,c,b,d)
{
this.z1 = e;
this.z2 = f;
this.x1 = a;
this.y1 = c;
this.x2 = b;
this.y2 = d;
}
);
Msn.VE.DashboardStates = new (function ()
{
this.MapMode = new (function ()
{
this.Flatland = 1;
this.View3D = 2;
}
)();
this.MapView = new (function ()
{
this.Ortho = 4;
this.Oblique = 8;
this.StreetSide = 16;
}
)();
this.MapStyle = new (function ()
{
this.Road = 32;
this.Shaded = 64;
this.Aerial = 128;
this.Hybrid = 256;
}
)();
}
)();
VEMiniMapSize = (function ()
{
}
);
VEMiniMapSize.Small = "small";
VEMiniMapSize.Large = "large";
VEMiniMapExpandState = (function ()
{
}
);
VEMiniMapExpandState.Collapsed = "collapsed";
VEMiniMapExpandState.Expanded = "expanded";
VEMiniMapVersion = (function ()
{
}
);
VEMiniMapVersion[5] = "MSVE_Minimap_V5";
VEMiniMapVersion[6] = "MSVE_Minimap_V6";
Msn.VE.Minimap = (function (bb,l,cb,h)
{
function V()
{
var g = {};
g.latitude = a.GetCenterLatitude();
g.longitude = a.GetCenterLongitude();
var h = a.GetZoomLevel() - 4;
if (h < 1)
h = 1;
if (g.latitude == null || g.longitude == null)
{
g.latitude = 0;
g.longitude = 0;
h = 1;
}
g.zoomlevel = h;
g.mapstyle = Msn.VE.MapStyle.Road;
g.showScaleBar = false;
g.showMapLegend = false;
g.showDashboard = false;
g.showMinimap = false;
g.hideCopyright = true;
g.disableLogo = true;
g.clientToken = O;
b = new Msn.VE.MapControl(f, g);
b.Init();
b.SetMinimapMode();
G(D, "MSVE_minimap_r_style_button", "MSVE_minimap_style",
L_MinimapRoad_Text, L_MinimapRoadToolTip_Text, J,
$MVEM.IsEnabled(MapControl.Features.MapStyle.Road));
G(C, "MSVE_minimap_h_style_button", "MSVE_minimap_style",
L_MinimapHybrid_Text, L_MinimapHybridToolTip_Text, F,
$MVEM.IsEnabled(MapControl.Features.MapStyle.Hybrid));
K();
b.AttachEvent("onendpan", S);
b.AttachEvent("onclick", x);
a.AttachEvent("onendpan", R);
a.AttachEvent("onobliquechange", M);
a.AttachEvent("onendzoom", P);
a.AttachEvent("onchangeview", I);
var i = a.IsModeEnabled(Msn.VE.MapActionMode.Mode3D) ?
Msn.VE.DashboardStates.MapMode.View3D : Msn.VE.DashboardStates.MapMode.Flatland;
e = Msn.VE.DashboardStates.MapView.Ortho;
if (a.GetMapStyle() == Msn.VE.MapStyle.Oblique)
{
b.SetZoom(14);
e = Msn.VE.DashboardStates.MapView.Oblique;
}
d = new Msn.VE.CameraRotator(c, this, f);
q = true;
T(i);
y();
s();
}
function T(a)
{
t = a;
}
function y()
{
if (! N && typeof minimapRoller != "undefined" &&
minimapRoller != null && t == Msn.VE.DashboardStates.MapMode.Flatland)
if (e == Msn.VE.DashboardStates.MapView.Oblique)
{
if (! minimapRoller.isExpanded())
minimapRoller.rollOut(n.rollOutDirection);
}
else
if (e == Msn.VE.DashboardStates.MapView.Ortho)
if (minimapRoller.isExpanded() && !
$MVEM.IsEnabled(MapControl.Features.Minimap.ShowByDefault))
minimapRoller.rollIn(n.rollInDirection);
}
function s()
{
if (t == Msn.VE.DashboardStates.MapMode.Flatland)
if (e == Msn.VE.DashboardStates.MapView.Oblique)
{
var b = a.GetObliqueScene();
if (! b)
return ;
var c = b.GetOrientation();
d.SetStyle("oblique");
switch (c)
{
case "North":
d.SetOrientation(90);
break ;
case "South":
d.SetOrientation(270);
break ;
case "East":
d.SetOrientation(0);
break ;
case "West":
d.SetOrientation(180);
}
d.Show();
}
else
if (e == Msn.VE.DashboardStates.MapView.Ortho)
{
d.SetStyle("ortho");
d.Show();
}
else
d.Hide();
else
d.Hide();
}
function Z()
{
u = true;
a.PanToLatLong(b.GetCenterLatitude(), b.GetCenterLongitude());
}
function z()
{
var c = a.GetCenterLatitude(), d = a.GetCenterLongitude();
A = true;
b.PanToLatLong(c, d);
}
function W()
{
var b = e;
e = Msn.VE.DashboardStates.MapView.Ortho;
if (a.GetMapStyle() == Msn.VE.MapStyle.Oblique)
{
e = Msn.VE.DashboardStates.MapView.Oblique;
if (! q)
V();
}
if (q && e != b)
{
y();
s();
}
}
function S()
{
if (B)
{
B = false;
return ;
}
if (! A)
Z();
else
A = false;
}
function L()
{
var a = n.GetSize() == VEMiniMapSize.Small ? VEMiniMapSize.Large :
VEMiniMapSize.Small;
n.SetSize(a);
}
function R()
{
if (! j)
return ;
if (! u)
{
o = v();
z();
}
else
u = false;
}
function I()
{
if (! j)
return ;
var c = v();
if (a.GetMapStyle() != Msn.VE.MapStyle.Oblique && ! c.Equals(o))
{
b.SetView(c);
o = null;
}
}
function M()
{
if (! j)
return ;
z();
s();
}
function P()
{
if (! j)
return ;
o = v();
Q();
}
function v()
{
var d = b.GetCurrentMapView().MakeCopy(), e = a.GetCurrentMapView();
d.SetCenterLatLong(new Msn.VE.LatLong(e.latlong.latitude, e.latlong.longitude));
var c = 1;
if (e.style == Msn.VE.MapStyle.Oblique)
c = 14;
else
c = e.GetZoomLevel() - 4;
if (c < 1)
c = 1;
d.SetZoomLevel(c);
d.Resolve(b.GetCurrentMode(), b.GetMapWidth(), b.GetMapHeight());
return d;
}
function Q()
{
var c = 0;
if (a.GetMapStyle() == Msn.VE.MapStyle.Oblique)
c = 14;
else
c = a.GetZoomLevel() - 4;
if (c < 1)
c = 1;
if (b.GetZoomLevel() == c)
{
z();
return ;
}
b.SetCenterAndZoom(a.GetCenterLatitude(), a.GetCenterLongitude(), c);
}
function G(a,g,d,f,e,c,b)
{
a.innerText = f;
a.id = g;
a.title = e;
if (typeof b == "undefined" || b == true)
{
a.className = d;
a.attachEvent("onclick", c);
a.attachEvent("onmousedown", IgnoreEvent);
}
pseudoHover(a);
k.appendChild(a);
}
function E(a,b)
{
a.detachEvent("onclick", b);
a.detachEvent("onmousedown", IgnoreEvent);
}
function x()
{
f.title = "";
b.DetachEvent("onclick", x);
}
function J()
{
K();
}
function F()
{
X();
}
function X()
{
k.className = "MSVE_minimap_hybrid_style";
b.SetMapStyle("h");
}
function K()
{
k.className = "MSVE_minimap_road_style";
b.SetMapStyle("r");
}
function ab()
{
return h;
}
function H(b,g)
{
var f = l.GetMapStyle() == "o" ||
$MVEM.IsEnabled(MapControl.Features.Minimap.ShowByDefault), d, e, c =
$ID("MSVE_minimap"), a = $ID("MSVE_minimap_glyph");
if (! a || ! c)
return ;
switch (g)
{
case 5:
b.rollInDirection = Msn.VE.Animation.RollDirection.RightLeft;
b.rollOutDirection = Msn.VE.Animation.RollDirection.LeftRight;
d = 8;
e = 0;
break ;
case 6:
b.rollInDirection = Msn.VE.Animation.RollDirection.LeftRight |
Msn.VE.Animation.RollDirection.BottomUp;
b.rollOutDirection = Msn.VE.Animation.RollDirection.RightLeft |
Msn.VE.Animation.RollDirection.TopDown;
d = a.offsetWidth + 1;
e = a.offsetHeight;
break ;
default:
return ;
}
window.minimapRoller = new Msn.VE.Animation.Roller(c);
minimapRoller.setAccelerationFunction(AccelerationFunctions.CrazyElevator);
minimapRoller.setXLeave(d);
minimapRoller.setYLeave(e);
pseudoHover(a);
Y(c, minimapRoller, "MSVE_minimap_glyph");
if (! f)
minimapRoller.collapse(b.rollInDirection);
a.onclick = (function ()
{
var a = l.GetMinimap();
a.SetKeepRollState();
if (minimapRoller.isExpanded())
{
$VE_A.Log($VE_A.PgName.Map, "MiniMapCollapse");
minimapRoller.rollIn(a.rollInDirection);
}
else
{
$VE_A.Log($VE_A.PgName.Map, "MiniMapExpand");
minimapRoller.rollOut(a.rollOutDirection);
}
}
);
window.attachEvent("onunload", (function ()
{
a = c = null;
window.detachEvent("onunload", arguments.callee);
}
));
}
function Y(a,b,c)
{
b.hookEvent("afterrollin", (function ()
{
var d = Msn.VE.Css.Functions, b = l.GetMinimap();
d.removeClass(a, "expanded");
d.addClass(a, "collapsed");
if (b && b.IsInitialized())
b.SetDoUpdates(false);
$ID(c).title = L_MinimapShowToolTip_Text;
}
));
b.hookEvent("afterrollout", (function ()
{
var d = Msn.VE.Css.Functions, b = l.GetMinimap();
d.removeClass(a, "collapsed");
d.addClass(a, "expanded");
if (b && b.IsInitialized())
{
b.SetDoUpdates(true);
s();
}
$ID(c).title = L_MinimapHideToolTip_Text;
}
));
b.hookEvent("beforerollout", (function ()
{
var a = l.GetMinimap();
if (a && ! a.IsInitialized())
a.Init();
}
));
}
var n = this, db = Msn.VE.Css, U = Msn.VE.Css.Functions, t =
Msn.VE.DashboardStates.MapMode.Flatland, e = Msn.VE.DashboardStates.MapView.Ortho, N =
false, O = null, A = false, u = false, B = false, j = true, o = null, c = bb, b = null, a
= l, i = [];
i[VEMiniMapSize.Small] = "MSVE_smallMinimap";
i[VEMiniMapSize.Large] = "MSVE_normalMinimap";
var w = [];
w[VEMiniMapSize.Small] = L_MinimapLargerToolTip_Text;
w[VEMiniMapSize.Large] = L_MinimapSmallerToolTip_Text;
var r = [];
r[VEMiniMapSize.Small] = 138.5;
r[VEMiniMapSize.Large] = 180.5;
if (h != 5 && h != 6)
h = 5;
c.className = VEMiniMapExpandState.Expanded + " " + i[VEMiniMapSize.Small] +
" " + VEMiniMapVersion[h];
var p = document.createElement("div");
p.id = "MSVE_minimap_transparency";
c.appendChild(p);
var f = document.createElement("div");
f.id = "MSVE_minimap_content";
f.title = L_MinimapDragToolTip_Text;
p.appendChild(f);
var m = document.createElement("span");
m.id = "MSVE_minimap_glyph";
m.title = L_MinimapHideToolTip_Text;
if (cb != false && Msn.VE.Animation)
{
this.rollInDirection = null;
this.rollOutDirection = null;
c.appendChild(m);
H(this, h);
}
var d = null, q = false;
a.AttachEvent("onchangemapstyle", W);
var D = document.createElement("div"), C =
document.createElement("div"), k = document.createElement("div");
k.id = "MSVE_minimap_style_wrapper";
f.appendChild(k);
switch (h)
{
case 5:
var g = document.createElement("div");
g.id = "MSVE_minimap_resize";
g.attachEvent("onclick", L);
g.title = L_MinimapLargerToolTip_Text;
pseudoHover(g);
c.appendChild(g);
break ;
case 6:
m.title = L_MinimapShowToolTip_Text;
}
this.Init = V;
this.Destroy = (function ()
{
E(D, J);
E(C, F);
D = C = null;
if (d)
{
d.Destroy();
d = null;
}
a.DetachEvent("onendpan", R);
a.DetachEvent("onobliquechange", M);
a.DetachEvent("onendzoom", P);
a.DetachEvent("onchangeview", I);
if (b)
{
b.DetachEvent("onendpan", S);
b.DetachEvent("onclick", x);
b.Destroy();
b = null;
}
switch (h)
{
case 5:
g.detachEvent("onclick", L);
}
k = null;
p = null;
f = null;
m = null;
g = null;
n = null;
}
);
this.IsInitialized = (function ()
{
return q;
}
);
this.SetClientToken = (function (a)
{
O = a;
if (b)
b.SetClientToken(a);
}
);
this.SetMapMode = T;
this.SetRollerState = y;
this.ChangeOrientation = (function (b)
{
if (t == Msn.VE.DashboardStates.MapMode.Flatland)
if (e == Msn.VE.DashboardStates.MapView.Oblique)
switch (b)
{
case 0:
case 360:
a.SetObliqueOrientation("East");
break ;
case 270:
a.SetObliqueOrientation("South");
break ;
case 90:
a.SetObliqueOrientation("North");
break ;
case 180:
a.SetObliqueOrientation("West");
}
}
);
this.SetKeepRollState = (function ()
{
N = true;
}
);
this.Hide = (function ()
{
c.style.display = "none";
}
);
this.Show = (function ()
{
c.style.display = "block";
}
);
this.SetPosition = (function (a,b)
{
c.style.left = a + "px";
c.style.top = b + "px";
}
);
this.SetSize = (function (a)
{
var d = this.GetSize();
if (a != d)
{
U.removeClass(c, i[d]);
U.addClass(c, i[a]);
g.title = w[a];
if (c.className.indexOf(VEMiniMapExpandState.Expanded) >= 0)
{
B = true;
b.Resize(r[a], r[a]);
}
}
}
);
this.GetSize = (function ()
{
return c.className.indexOf(i[VEMiniMapSize.Large]) > - 1 ? VEMiniMapSize.Large :
VEMiniMapSize.Small;
}
);
this.SetDoUpdates = (function (a)
{
j = a;
if (j)
Q();
}
);
this.GetContainer = (function ()
{
return c;
}
);
this.GetVersion = ab;
this.creatMinimapRoller = H;
Msn.VE.CameraRotator = (function (g,j,d)
{
function i()
{
a = null;
}
function k()
{
a.style.display = "none";
}
function l()
{
a.style.display = "block";
}
function f(a)
{
b(a);
}
function h(a)
{
switch (a)
{
case "oblique":
c = "MSVE_direction";
b(90);
break ;
case "ortho":
c = "MSVE_ortho";
b(90);
break ;
default:
c = "MSVE_ortho";
b(90);
}
}
function b(b)
{
e = MathFloor((b + 45 + 720) / 90) % 4;
a.className = c + e;
}
var n = Msn.VE.Css, m = j, g = g, d = d, e = 0, c = "ortho", a =
document.createElement("div");
a.id = "MSVE_cameraPosition";
d.appendChild(a);
b(90);
this.Hide = k;
this.Show = l;
this.Destroy = i;
this.SetStyle = h;
this.SetOrientation = f;
}
);
}
);
Msn.VE.DashboardSize = new (function ()
{
this.Normal = "normal";
this.Small = "small";
this.Tiny = "tiny";
}
)();
Msn.VE.NavControlFactory = (function (f,g,c,b,e,d)
{
if (typeof c == "undefined" || c == null)
c = Msn.VE.DashboardSize.Normal;
if (typeof b == "undefined" || b == null)
b = "MSVE_dashboardId";
if (! isFinite(parseInt(d)))
d = 6;
var a;
switch (d)
{
case 5:
a = new Msn.VE.V5Control(f, g, c, b, e);
break ;
case 6:
default:
a = new Msn.VE.V6Control(f, g, c, b, e);
}
a.version = d;
a.GetVersion = (function ()
{
return a.version;
}
);
return a;
}
);
Msn.VE.V5Control = (function (z,a,i,B,x)
{
function D()
{
if (i == Msn.VE.DashboardSize.Normal)
{
controlsNeeded = [b.Mode, b.View, b.Style, b.OrthoZoom, b.ObliqueCompass,
b.ObliqueZoom];
e = new Msn.VE.CommonControls(a, controlsNeeded);
d = e.GetControls();
e.displaying3DNotification = false;
d[b.View].classRecipients = [o];
d[b.Mode].classRecipients = [c];
e.Init();
e.Oblique3DFunctionality = e.ObliqueFunctions.ObliqueTiltIn3D;
A(x);
this.HideToggleGlyph();
p.appendChild(d[b.View]);
l.appendChild(d[b.Style]);
l.appendChild(d[b.ObliqueCompass]);
m.appendChild(d[b.OrthoZoom]);
m.appendChild(d[b.ObliqueZoom]);
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.BirdsEye))
{
e.Create(b.ObliqueNotification);
n.appendChild(d[b.ObliqueNotification]);
}
if (Msn.VE.Animation)
t();
}
if (i == Msn.VE.DashboardSize.Small)
{
controlsNeeded = [b.Style];
e = new Msn.VE.CommonControls(a, controlsNeeded);
d = e.GetControls();
l.appendChild(d[b.Style]);
e.Init();
}
if (i == Msn.VE.DashboardSize.Small || i == Msn.VE.DashboardSize.Tiny)
{
controlsNeeded = [b.TinyZoom];
e = new Msn.VE.CommonControls(a, controlsNeeded);
d = e.GetControls();
m.appendChild(d[b.TinyZoom]);
var g = $ID("MSVE_navAction_tinyZoomBar_plus"), f =
$ID("MSVE_navAction_tinyZoomBar_minus");
if (g && f)
e.GetTinyZoom().HookupPlusMinusEvents(g, f);
}
}
function C()
{
if (i == Msn.VE.DashboardSize.Normal)
{
e.DestroyControl(d[b.OrthoZoom]);
e.DestroyControl(d[b.ObliqueZoom]);
e.DestroyControl(d[b.ObliqueCompass]);
y();
if (a)
{
try
{
a.DetachEvent("onobliquechange", OnObliqueChange);
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.BirdsEye))
{
a.DetachEvent("onobliqueenter", OnObliqueEnter);
a.DetachEvent("onobliqueleave", OnObliqueLeave);
}
}
catch (c)
{}
a = null;
}
}
if (i == Msn.VE.DashboardSize.Normal || i == Msn.VE.DashboardSize.Small)
{
e.DestroyControl(d[b.Style]);
l.removeChild(d[b.Style]);
}
if (i == Msn.VE.DashboardSize.Small || i == Msn.VE.DashboardSize.Tiny)
{
e.DestroyControl(d[b.TinyZoom]);
m.removeChild(d[b.TinyZoom]);
}
l = e.obliqueCompass = null;
p = q = null;
n = null;
j = null;
d[b.ObliqueNotification] = m = d[b.ObliqueCompass] = null;
}
function v()
{
if (! a.IsModeEnabled(Msn.VE.MapActionMode.Mode3D) && a.GetMapStyle() !=
"o")
{
n.appendChild(j);
j.style.top = - (f.offsetHeight / 2 + 6) + "px";
j.innerHTML += "<div
id=\"MSVE_threeDNotifyIcon\"> </div> <div
id=\"MSVE_threeDNotifyText\">" + L_Dashboard3DText_Text +
"</div>";
j.attachEvent("onclick", u);
window.setTimeout(w, 6000);
e.displaying3DNotification = true;
}
else
j.style.display = "none";
}
function A(a)
{
r(a);
h = document.createElement("a");
h.className = "MSVE_toggleGlyph";
h.title = L_NavActionHideToolTip_Text;
f.appendChild(h);
}
function r(a)
{
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.View3D) && a != false)
{
if (! k)
{
e.Create(b.Mode);
f.appendChild(d[b.Mode]);
v();
k = true;
}
f.className = "MSVE_header MSVE_with3D";
}
else
{
f.className = "MSVE_header MSVE_no3D";
k = false;
}
}
function y()
{
if (k)
{
e.DestroyControl(b.Mode);
if (d[b.Mode] != null)
f.removeChild(d[b.Mode]);
k = false;
}
f.removeChild(h);
c.removeChild(f);
h = f = null;
}
function u()
{
j.style.display = "none";
e.displaying3DNotification = false;
if (! a.IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
if (typeof ShowMessage != "undefined")
{
ShowMessage(L_3DLoading_Text);
window.setTimeout(View3DSwitch, 200);
}
else
a.EnableMode(Msn.VE.MapActionMode.Mode3D);
}
function w()
{
if (j)
{
j.style.display = "none";
e.displaying3DNotification = false;
}
if (a != null && ! a.IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
if (a.IsObliqueAvailable() &&
$MVEM.IsEnabled(MapControl.Features.MapStyle.BirdsEye))
e.DisplayObliqueNotification();
}
function t()
{
var b = (a.GetDashboard().GetHeader()).lastChild;
a.GetDashboard().ShowToggleGlyph();
window.dbRoller = new Msn.VE.Animation.Roller(a.GetDashboard().GetElement());
dbRoller.setAccelerationFunction(AccelerationFunctions.CrazyElevator);
dbRoller.setYLeave(32);
dbRoller.hookEvent("beforerollin", (function ()
{
dbRoller.setYLeave((a.GetDashboard().GetHeader()).offsetHeight);
if (a.GetMinimap())
{
a.GetMinimap().Hide();
if (a.GetMinimap().IsInitialized())
a.GetMinimap().SetDoUpdates(false);
}
}
));
dbRoller.hookEvent("afterrollin", (function ()
{
a.GetDashboard().GetElement().className =
(a.GetDashboard().GetElement()).className.replace(/\s*expanded/g, "");
a.GetDashboard().GetElement().className += " collapsed";
(a.GetDashboard().GetHeader()).lastChild.title = L_NavActionShowToolTip_Text;
}
));
dbRoller.hookEvent("beforerollout", (function ()
{
a.GetDashboard().GetElement().className =
(a.GetDashboard().GetElement()).className.replace(/\s*collapsed/g, "");
a.GetDashboard().GetElement().className += " expanded";
}
));
dbRoller.hookEvent("afterrollout", (function ()
{
if (a.GetMinimap())
{
a.GetMinimap().Show();
if (minimapRoller && minimapRoller.isExpanded() &&
a.GetMinimap().IsInitialized())
a.GetMinimap().SetDoUpdates(true);
}
(a.GetDashboard().GetHeader()).lastChild.title = L_NavActionHideToolTip_Text;
}
));
dbRoller.hookEvent("roll", RollShim);
b.onclick = (function ()
{
if (dbRoller.isExpanded())
dbRoller.rollIn(Msn.VE.Animation.RollDirection.BottomUp);
else
dbRoller.rollOut(Msn.VE.Animation.RollDirection.TopDown);
return false;
}
);
b = null;
}
Msn.VE.DashboardStates = new (function ()
{
this.MapMode = new (function ()
{
this.Flatland = 1;
this.View3D = 2;
}
)();
this.MapView = new (function ()
{
this.Ortho = 4;
this.Oblique = 8;
this.StreetSide = 16;
}
)();
this.MapStyle = new (function ()
{
this.Road = 32;
this.Shaded = 64;
this.Aerial = 128;
this.Hybrid = 256;
}
)();
}
)();
var s = {Style : "MSVE_navAction_mapStyleCell", Road :
"MSVE_navAction_RoadMapStyle", Aerial :
"MSVE_navAction_AerialMapStyle", Hybrid :
"MSVE_navAction_HybridMapStyle", Mode : "MSVE_navAction_modeCell",
Mode2D : "MSVE_navAction_FlatlandMapMode", Mode3D :
"MSVE_navAction_View3DMapMode", View :
"MSVE_navAction_mapViewCellInner", Ortho :
"MSVE_navAction_OrthoMapView", Oblique :
"MSVE_navAction_ObliqueMapView", StreetSide :
"MSVE_navAction_StreetSideMapView", Pan :
"MSVE_navAction_panContainer", PanUp : "MSVE_navAction_panUp", PanDown
: "MSVE_navAction_panDown", PanLeft : "MSVE_navAction_panLeft",
PanRight : "MSVE_navAction_panRight", TinyZoom : "MSVE_TinyZoomBar",
OrthoZoom : "MSVE_OrthoZoomBar", ObliqueZoom : "MSVE_ObliqueZoomBar",
ObliqueCompass : "MSVE_compassDiv", ObliqueNotification :
"MSVE_obliqueNotification", Traffic : "MSVE_navAction_traffic"};
Msn.VE.CommonControls = (function (c,r)
{
function gb(b)
{
function v()
{
b.style.display = "block";
}
function u()
{
b.style.display = "none";
}
function r(a)
{
a = GetEvent(a);
CancelEvent(a);
k();
n(h((Gimme.Screen.getMousePosition(a)).y));
return false;
}
function h(b)
{
b -= s + d.offsetHeight + a.offsetHeight;
var c = e.offsetHeight - a.offsetHeight;
if (b < 0)
b = 0;
else
if (b > c)
b = c;
return b;
}
function l()
{
c.ZoomOut();
}
function m()
{
c.ZoomIn();
}
function t()
{
d.detachEvent("onclick", l);
a.detachEvent("onmousedown", o);
a.detachEvent("onmousemove", p);
a.detachEvent("onmouseup", q);
a.detachEvent("onclick", IgnoreEvent);
e.detachEvent("onclick", r);
f.detachEvent("onclick", m);
b.detachEvent("onmousedown", IgnoreEvent);
b.detachEvent("onmousedown", IgnoreEvent);
b.detachEvent("onclick", IgnoreEvent);
b.detachEvent("ondblclick", IgnoreEvent);
d = a = e = f = null;
}
function o(b)
{
b = GetEvent(b);
CancelEvent(b);
k();
if (a.setCapture)
a.setCapture();
j = true;
return false;
}
function p(b)
{
b = GetEvent(b);
CancelEvent(b);
if (j)
a.style.top = h((Gimme.Screen.getMousePosition(b)).y) + "px";
return false;
}
function q(b)
{
b = GetEvent(b);
CancelEvent(b);
if (a.releaseCapture)
a.releaseCapture();
j = false;
n(h((Gimme.Screen.getMousePosition(b)).y));
i();
return false;
}
function k()
{
var a = g(b).getScreenPosition();
w = a.x;
s = a.y;
}
function n(f)
{
var b = e.offsetHeight - a.offsetHeight, d = 1 + MathRound((b - f) / b * 1);
$VE_A.Log($VE_A.PgName.Map, "Zoom");
c.SetZoom(d);
}
function i()
{
if (c.GetZoomLevel() == 1)
a.style.top = e.offsetHeight - a.offsetHeight + "px";
else
a.style.top = "0px";
}
var f = document.createElement("div"), e =
document.createElement("div"), a = document.createElement("div"), d =
document.createElement("div"), w = 0, s = 0, j = false;
this.Init = (function ()
{
d.className = "MSVE_ZoomBar_minus";
d.id = "MSVE_navAction_obliqueZoomBar_minus";
d.unselectable = "on";
d.title = L_ZoomBarMinusToolTip_Text;
d.attachEvent("onclick", l);
pseudoHover(d);
a.className = "MSVE_ZoomBar_slider";
a.id = "MSVE_navAction_obliqueZoomBar_slider";
a.unselectable = "on";
a.attachEvent("onmousedown", o);
a.attachEvent("onmousemove", p);
a.attachEvent("onmouseup", q);
a.attachEvent("onclick", IgnoreEvent);
pseudoHover(a);
e.className = "MSVE_ObliqueZoomBar_bar";
e.unselectable = "on";
e.appendChild(a);
e.attachEvent("onclick", r);
f.className = "MSVE_ZoomBar_plus";
f.id = "MSVE_navAction_obliqueZoomBar_plus";
f.title = L_ZoomBarPlusToolTip_Text;
f.unselectable = "on";
f.attachEvent("onclick", m);
pseudoHover(f);
b.className = "MSVE_ZoomBar";
b.id = "MSVE_ObliqueZoomBar";
b.appendChild(d);
b.appendChild(e);
b.appendChild(f);
b.attachEvent("onmousedown", IgnoreEvent);
b.attachEvent("onmouseup", IgnoreEvent);
b.attachEvent("onclick", IgnoreEvent);
b.attachEvent("ondblclick", IgnoreEvent);
i();
}
);
this.Destroy = t;
this.Show = v;
this.Hide = u;
this.UpdateFromMap = i;
}
function x(z,x,y)
{
function f(e)
{
if (d)
return ;
c = a.className;
a.className = "MSVE_obliqueCompassPointHover";
if (b.onmouseover)
b.onmouseover(e);
}
function i(a)
{
if (d)
return ;
f(a);
c = "MSVE_obliqueCompassPointOn";
if (b.onclick)
b.onclick(a);
}
function h(e)
{
if (d)
return ;
a.className = c;
if (b.onmouseout)
b.onmouseout(e);
}
function m()
{
c = "MSVE_obliqueCompassPointOn";
a.className = "MSVE_obliqueCompassPointOn";
}
function l()
{
c = "MSVE_obliqueCompassPointOff";
a.className = "MSVE_obliqueCompassPointOff";
}
function u()
{
d = true;
l();
}
function k()
{
d = false;
m();
}
function q()
{
return a;
}
function n()
{
return g;
}
function o(a)
{
g = a;
}
function w()
{
j.Reset();
k();
}
function p(b)
{
a.style.left = b.left;
a.style.top = b.top;
}
function v(s,o,p)
{
function n(a,b,c)
{
if (b >= c - a && b <= c + a)
return true;
return false;
}
function j()
{
a += b;
if (a > Math.PI * 2)
a -= Math.PI * 2;
else
if (a < 0)
a += Math.PI * 2;
if (n(q, a, d))
{
b = 0.3;
a = d;
f(a);
c = false;
return ;
}
f(a);
window.setTimeout(j, m);
}
function f(a)
{
var b = o + e * Math.sin(a), c = p + e * Math.cos(a);
h.style.left = b + "px";
h.style.top = c + "px";
}
function g(a)
{
if (c)
return ;
c = true;
d = a;
j();
}
function k(a,c)
{
i = c;
if (! i)
b *= - 1;
g(l * a);
}
function r()
{
c = false;
a = 0;
}
var h = s, a = 0, b = 0.3, d = 0, m = 40, c = false, l = Math.PI / 2, i = true, q =
b + 0.1;
this.RotateTo = g;
this.RotateToIndex = k;
this.Reset = r;
}
function t()
{
a.detachEvent("onmouseover", f);
a.detachEvent("onmouseout", h);
a.detachEvent("onclick", i);
a = null;
}
function s(a)
{
e = a;
}
function r()
{
return e;
}
var a = document.createElement("div");
a.setAttribute("id", z);
a.innerHTML = x;
var c = "MSVE_obliqueCompassPointOff", g = y;
a.attachEvent("onmouseover", f);
a.attachEvent("onmouseout", h);
a.attachEvent("onclick", i);
this.onclick = null;
this.onmouseover = null;
this.onmouseout = null;
var e = 25, b = this, d = false, j = new v(a, 17, 17);
this.SetRadius = s;
this.GetRadius = r;
this.GetElement = q;
this.GetCurrentPositionIndex = n;
this.SetCurrentPositionIndex = o;
this.SetCurrentPosition = p;
this.On = m;
this.Off = l;
this.RotateToIndex = j.RotateToIndex;
this.Reset = w;
this.Disable = u;
this.Enable = k;
this.Destroy = t;
}
function fb(D)
{
function p(a)
{
if (a < 0)
a = 4 - Math.abs(a);
return a;
}
function n(h,g)
{
var f = h.GetCurrentPositionIndex();
d.SetCurrentPositionIndex(p(d.GetCurrentPositionIndex() - f));
e.SetCurrentPositionIndex(p(e.GetCurrentPositionIndex() - f));
a.SetCurrentPositionIndex(p(a.GetCurrentPositionIndex() - f));
b.SetCurrentPositionIndex(p(b.GetCurrentPositionIndex() - f));
var c;
if (g)
c = g == Msn.VE.BirdsEyeSearchSpinDirection.CounterclockwiseSpin;
else
c = f != 3;
a.RotateToIndex(2 - a.GetCurrentPositionIndex() < 0 ? a.GetCurrentPositionIndex()
: 2 - a.GetCurrentPositionIndex(), c);
d.RotateToIndex(2 - d.GetCurrentPositionIndex() < 0 ? d.GetCurrentPositionIndex()
: 2 - d.GetCurrentPositionIndex(), c);
b.RotateToIndex(2 - b.GetCurrentPositionIndex() < 0 ? b.GetCurrentPositionIndex()
: 2 - b.GetCurrentPositionIndex(), c);
e.RotateToIndex(2 - e.GetCurrentPositionIndex() < 0 ? e.GetCurrentPositionIndex()
: 2 - e.GetCurrentPositionIndex(), c);
}
function g(a)
{
switch (a)
{
case 0:
h();
break ;
case 1:
A();
break ;
case 2:
B();
break ;
case 3:
C();
}
}
function h()
{
m.className = "MSVE_obliqueCompassArrowU";
}
function B()
{
m.className = "MSVE_obliqueCompassArrowD";
}
function A()
{
m.className = "MSVE_obliqueCompassArrowR";
}
function C()
{
m.className = "MSVE_obliqueCompassArrowL";
}
function s()
{
n(b);
g(0);
var a = c.GetObliqueScene();
if (a)
if (a.GetOrientation() != Msn.VE.Orientation.South)
c.SetObliqueOrientation("South");
}
function r()
{
n(a);
g(0);
var b = c.GetObliqueScene();
if (b)
if (b.GetOrientation() != Msn.VE.Orientation.North)
c.SetObliqueOrientation("North");
}
function t()
{
n(d);
g(0);
var a = c.GetObliqueScene();
if (a)
if (a.GetOrientation() != Msn.VE.Orientation.East)
c.SetObliqueOrientation("East");
}
function w()
{
n(e);
g(0);
var a = c.GetObliqueScene();
if (a)
if (a.GetOrientation() != Msn.VE.Orientation.West)
c.SetObliqueOrientation("West");
}
function v()
{
g(b.GetCurrentPositionIndex());
}
function y()
{
g(d.GetCurrentPositionIndex());
}
function z()
{
g(e.GetCurrentPositionIndex());
}
function u()
{
g(a.GetCurrentPositionIndex());
}
function H()
{
f.style.display = "none";
}
function I()
{
f.style.display = "block";
}
function q(j)
{
var i = c.GetObliqueScene();
if (! i)
return ;
var f = i.GetOrientation(), h;
switch (f)
{
case "North":
h = a;
break ;
case "South":
h = b;
break ;
case "East":
h = d;
break ;
case "West":
h = e;
}
n(h, j);
g(0);
if (f != Msn.VE.Orientation.North)
a.Enable();
else
a.Disable();
if (f != Msn.VE.Orientation.South)
b.Enable();
else
b.Disable();
if (f != Msn.VE.Orientation.East)
d.Enable();
else
d.Disable();
if (f != Msn.VE.Orientation.West)
e.Enable();
else
e.Disable();
}
function G()
{
a.Destroy();
d.Destroy();
b.Destroy();
e.Destroy();
i.detachEvent("onclick", r);
i.detachEvent("onmouseover", u);
i.detachEvent("onmouseout", h);
k.detachEvent("onclick", t);
k.detachEvent("onmouseover", y);
k.detachEvent("onmouseout", h);
j.detachEvent("onclick", s);
j.detachEvent("onmouseover", v);
j.detachEvent("onmouseout", h);
l.detachEvent("onclick", w);
l.detachEvent("onmouseover", z);
l.detachEvent("onmouseout", h);
f = null;
}
function F(c)
{
a.SetRadius(c);
b.SetRadius(c);
d.SetRadius(c);
e.SetRadius(c);
}
function E()
{
return a.GetRadius();
}
var o = [];
o.push({top : "-8px", left : "17px"});
o.push({top : "17px", left : "42px"});
o.push({top : "42px", left : "17px"});
o.push({top : "17px", left : "-8px"});
var f = document.createElement("div");
f.setAttribute("id", "MSVE_obliqueCompassContainer");
f.title = L_ObliqueCompassSelectDirection_Text;
var a = new x("MSVE_obliqueCompassPointN", "N", 0), i =
a.GetElement();
i.attachEvent("onclick", r);
i.attachEvent("onmouseover", u);
i.attachEvent("onmouseout", h);
var d = new x("MSVE_obliqueCompassPointE", "E", 1), k =
d.GetElement();
k.attachEvent("onclick", t);
k.attachEvent("onmouseover", y);
k.attachEvent("onmouseout", h);
var b = new x("MSVE_obliqueCompassPointS", "S", 2), j =
b.GetElement();
j.attachEvent("onclick", s);
j.attachEvent("onmouseover", v);
j.attachEvent("onmouseout", h);
var e = new x("MSVE_obliqueCompassPointW", "W", 3), l =
e.GetElement();
l.attachEvent("onclick", w);
l.attachEvent("onmouseover", z);
l.attachEvent("onmouseout", h);
var m = document.createElement("div");
m.id = "MSVE_navAction_obliqueCompassArrow";
f.appendChild(i);
f.appendChild(k);
f.appendChild(j);
f.appendChild(l);
f.appendChild(m);
D.appendChild(f);
q();
this.Hide = H;
this.Show = I;
this.UpdateFromMap = q;
this.SetRadius = F;
this.GetRadius = E;
this.Destroy = G;
}
function kb(b)
{
function u()
{
b.style.display = "block";
}
function t()
{
b.style.display = "none";
}
function k()
{
var a = g(b).getScreenPosition();
v = a.x;
s = a.y;
}
function o(b)
{
b = GetEvent(b);
CancelEvent(b);
k();
if (a.setCapture)
a.setCapture();
j = true;
return false;
}
function p(b)
{
b = GetEvent(b);
CancelEvent(b);
if (j)
a.style.top = h((Gimme.Screen.getMousePosition(b)).y) + "px";
return false;
}
function q(b)
{
b = GetEvent(b);
CancelEvent(b);
if (a.releaseCapture)
a.releaseCapture();
j = false;
n(h((Gimme.Screen.getMousePosition(b)).y));
i();
return false;
}
function m()
{
c.ZoomIn();
}
function l()
{
c.ZoomOut();
}
function r(a)
{
a = GetEvent(a);
CancelEvent(a);
k();
n(h((Gimme.Screen.getMousePosition(a)).y));
return false;
}
function h(b)
{
b -= s + d.offsetHeight + a.offsetHeight;
var c = e.offsetHeight - a.offsetHeight;
if (b < 0)
b = 0;
else
if (b > c)
b = c;
return b;
}
function n(f)
{
var b = e.offsetHeight - a.offsetHeight, d = 1 + MathRound((b - f) / b * 18);
$VE_A.Log($VE_A.PgName.Map, "Zoom");
c.SetZoom(d);
}
function i()
{
var b = e.offsetHeight - a.offsetHeight, d = b - (c.GetZoomLevel() - 1) / 18 * b;
a.style.top = d + "px";
}
var f = document.createElement("div"), e =
document.createElement("div"), a = document.createElement("div"), d =
document.createElement("div"), v = 0, s = 0, j = false;
this.Init = (function ()
{
d.className = "MSVE_ZoomBar_minus";
d.id = "MSVE_navAction_orthoZoomBar_minus";
d.title = L_ZoomBarMinusToolTip_Text;
d.unselectable = "on";
d.attachEvent("onclick", l);
pseudoHover(d);
a.className = "MSVE_ZoomBar_slider";
a.id = "MSVE_navAction_orthoZoomBar_slider";
a.title = L_ZoomBarSliderToolTip_Text;
a.unselectable = "on";
a.attachEvent("onmousedown", o);
a.attachEvent("onmousemove", p);
a.attachEvent("onmouseup", q);
a.attachEvent("onclick", IgnoreEvent);
pseudoHover(a);
e.className = "MSVE_OrthoZoomBar_bar";
e.unselectable = "on";
e.appendChild(a);
e.attachEvent("onclick", r);
f.className = "MSVE_ZoomBar_plus";
f.id = "MSVE_navAction_orthoZoomBar_plus";
f.title = L_ZoomBarPlusToolTip_Text;
f.unselectable = "on";
f.attachEvent("onclick", m);
pseudoHover(f);
b.className = "MSVE_ZoomBar";
b.id = "MSVE_OrthoZoomBar";
b.appendChild(d);
b.appendChild(e);
b.appendChild(f);
b.attachEvent("onmousedown", IgnoreEvent);
b.attachEvent("onmouseup", IgnoreEvent);
b.attachEvent("onclick", IgnoreEvent);
b.attachEvent("ondblclick", IgnoreEvent);
i();
}
);
this.Destroy = (function ()
{
d.detachEvent("onclick", l);
a.detachEvent("onmousedown", o);
a.detachEvent("onmousemove", p);
a.detachEvent("onmouseup", q);
a.detachEvent("onclick", IgnoreEvent);
e.detachEvent("onclick", r);
f.detachEvent("onclick", m);
b.detachEvent("onmousedown", IgnoreEvent);
b.detachEvent("onmousedown", IgnoreEvent);
b.detachEvent("onclick", IgnoreEvent);
b.detachEvent("ondblclick", IgnoreEvent);
d = a = e = f = null;
}
);
this.UpdateFromMap = i;
this.Show = u;
this.Hide = t;
}
function nb()
{
function m()
{
if (c.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
return true;
else
return c.IsAnimationEnabled();
}
function k()
{
g = "in";
c.ZoomIn();
}
function i()
{
window.setTimeout(l, m() ? 1 : 500);
}
function l()
{
if (g == "in" && c.GetZoomLevel() < 21)
c.ZoomIn();
else
if (g == "out" && c.GetZoomLevel() > 1)
c.ZoomOut();
}
function j()
{
g = "out";
c.ZoomOut();
}
function a()
{
g = false;
}
var h = document.createElement("div"), f =
document.createElement("div"), e = document.createElement("div"), g =
false, d = null, b = null;
this.Init = (function ()
{
f.className = "MSVE_ZoomBar_plus";
f.id = "MSVE_navAction_tinyZoomBar_plus";
f.title = L_ZoomBarPlusToolTip_Text;
f.unselectable = "on";
e.className = "MSVE_ZoomBar_minus";
e.id = "MSVE_navAction_tinyZoomBar_minus";
e.title = L_ZoomBarMinusToolTip_Text;
e.unselectable = "on";
c.AttachEvent("onendzoom", i);
h.className = "MSVE_ZoomBar";
h.id = "MSVE_TinyZoomBar";
h.appendChild(f);
h.appendChild(e);
return h;
}
);
this.HookupPlusMinusEvents = (function (e,c)
{
e.attachEvent("onmousedown", k);
e.attachEvent("onmouseup", a);
e.attachEvent("onmouseout", a);
d = e;
c.attachEvent("onmousedown", j);
c.attachEvent("onmouseup", a);
c.attachEvent("onmouseout", a);
b = c;
}
);
this.Destroy = (function ()
{
if (d != null)
{
d.detachEvent("onmousedown", k);
d.detachEvent("onmouseup", a);
d.detachEvent("onmouseout", a);
d = null;
}
if (b != null)
{
b.detachEvent("onmousedown", j);
b.detachEvent("onmouseup", a);
b.detachEvent("onmouseout", a);
b = null;
}
c.DetachEvent("onendzoom", i);
f = e = null;
}
);
}
function qb()
{
var e = $MVEM.IsEnabled(MapControl.Features.MapStyle.BirdsEye) &&
(c.IsObliqueAvailable() || c.GetMapStyle() == "o");
if (e)
{
i(a.Oblique, true);
if (b[a.ObliqueNotification] && c.GetMapStyle() != "o")
t();
}
else
{
i(a.Oblique, false);
if (b[a.ObliqueNotification])
p();
}
switch (c.GetMapStyle())
{
case "r":
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
h = Msn.VE.DashboardStates.MapStyle.Road;
y();
break ;
case "s":
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
h = Msn.VE.DashboardStates.MapStyle.Shaded;
y();
break ;
case "a":
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
h = Msn.VE.DashboardStates.MapStyle.Aerial;
J();
break ;
case "h":
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
h = Msn.VE.DashboardStates.MapStyle.Hybrid;
K();
break ;
case "o":
d = Msn.VE.DashboardStates.MapView.Oblique;
u();
}
if (c.IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
I();
else
H();
}
function pb()
{
var a;
for (a in r)
if (r.hasOwnProperty(a))
D(r[a]);
document.body.removeChild(n);
n = null;
}
function F(e)
{
switch (e)
{
case a.OrthoZoom:
b[e] = document.createElement("div");
f.orthoZoom = new kb(b[e]);
f.orthoZoom.Init();
c.AttachEvent("onendzoom", A);
n.appendChild(b[e]);
A();
return ;
case a.ObliqueZoom:
b[e] = document.createElement("div");
N = true;
b[e].id = e;
n.appendChild(b[e]);
return ;
case a.TinyZoom:
B = new nb();
b[e] = B.Init();
return ;
case a.ObliqueCompass:
b[e] = document.createElement("div");
b[e].id = e;
C = true;
return ;
case a.ObliqueNotification:
P();
return ;
case a.Oblique:
c.AttachEvent("onve3dphotostatechanged", ab);
}
var d = l[e], g = document.createElement("div");
b[d.Id] = g;
g.id = d.Id;
g.enabled = d.Enabled;
g.classRecipients = [g];
if (d.Text != null)
g.innerText = d.Text;
if (d.OnClickFunction != null && d.Enabled == true)
g.attachEvent("onclick", d.OnClickFunction);
if (d.StyleUpdateEvent != null && d.StyleUpdateFunction != null)
c.AttachEvent(d.StyleUpdateEvent, d.StyleUpdateFunction);
if (d.InitialClass)
{
g.className = d.InitialClass;
if (! g.enabled)
g.className += "_disabled";
}
if (d.Children != null)
{
var h;
for (h in d.Children)
if (d.Children.hasOwnProperty(h))
g.appendChild(F(d.Children[h]));
}
else
pseudoHover(g);
switch (e)
{
case a.Oblique:
case a.ObliqueCompass:
c.AttachEvent("onobliqueenter", hb);
c.AttachEvent("onobliqueleave", ib);
c.AttachEvent("onendmapstyleoblique", Y);
c.AttachEvent("onobliquechange", eb);
break ;
case a.Traffic:
c.AttachEvent("onchangetraffic", z);
z();
}
return g;
}
function D(e)
{
switch (e)
{
case a.OrthoZoom:
f.orthoZoom.Destroy();
b[e] = null;
c.DetachEvent("onendzoom", A);
try
{
n.removeChild(b[e]);
}
catch (j)
{}
return ;
case a.ObliqueZoom:
try
{
n.removeChild(b[e]);
}
catch (j)
{}
if (f.obliqueZoom)
{
f.obliqueZoom.Destroy();
f.obliqueZoom = null;
}
case a.TinyZoom:
B.Destroy();
b[e] = null;
return ;
case a.ObliqueCompass:
if (C && f.obliqueCompass)
{
f.obliqueCompass.onclick = null;
f.obliqueCompass.Destroy();
f.obliqueCompass = null;
}
return ;
case a.ObliqueNotification:
b[a.ObliqueNotification].detachEvent("onclick", w);
return ;
case a.Traffic:
c.DetachEvent("onchangetraffic", z);
}
var i = b[e];
if (i == null)
return ;
var d = l[e];
if (d.Children != null)
{
var g, h;
for (h in d.Children)
if (d.Children.hasOwnProperty(h))
{
g = d.Children[h];
try
{
i.removeChild(b[g]);
}
catch (j)
{}
D(g);
}
}
if (d.OnClickFunction != null)
i.detachEvent("onclick", d.OnClickFunction);
try
{
if (c && d.StyleUpdateEvent != null && d.StyleUpdateFunction !=
null)
c.DetachEvent(d.StyleUpdateEvent, d.StyleUpdateFunction);
}
catch (j)
{}
b[d.Id] = null;
}
function P()
{
b[a.ObliqueNotification] = document.createElement("div");
b[a.ObliqueNotification].id = a.ObliqueNotification;
b[a.ObliqueNotification].innerHTML += "<div
id=\"MSVE_obliqueNotifyIcon\"> </div> <div
id=\"MSVE_obliqueNotifyText\">" + L_DashboardBirdsEyeText_Text +
"</div>";
b[a.ObliqueNotification].attachEvent("onclick", w);
}
function bb()
{
$VE_A.Log($VE_A.PgName.Map, "MapStyleRoad", $VE_A.PgName.Map);
o();
}
function o()
{
if (h == Msn.VE.DashboardStates.MapStyle.Road && d ==
Msn.VE.DashboardStates.MapView.Ortho)
return ;
h = Msn.VE.DashboardStates.MapStyle.Road;
d = Msn.VE.DashboardStates.MapView.Ortho;
j(e + d + h);
}
function W()
{
$VE_A.Log($VE_A.PgName.Map, "MapStyleAerial", $VE_A.PgName.Map);
cb();
}
function cb()
{
if (h == Msn.VE.DashboardStates.MapStyle.Aerial && d ==
Msn.VE.DashboardStates.MapView.Ortho)
return ;
h = Msn.VE.DashboardStates.MapStyle.Aerial;
d = Msn.VE.DashboardStates.MapView.Ortho;
j(e + d + h);
}
function X()
{
$VE_A.Log($VE_A.PgName.Map, "MapStyleHybrid", $VE_A.PgName.Map);
db();
}
function db()
{
if (h == Msn.VE.DashboardStates.MapStyle.Hybrid && d ==
Msn.VE.DashboardStates.MapView.Ortho)
return ;
h = Msn.VE.DashboardStates.MapStyle.Hybrid;
d = Msn.VE.DashboardStates.MapView.Ortho;
j(e + d + h);
}
function m()
{
if (d == Msn.VE.DashboardStates.MapView.Ortho && e ==
Msn.VE.DashboardStates.MapMode.Flatland)
return ;
d = Msn.VE.DashboardStates.MapView.Ortho;
if (e == Msn.VE.DashboardStates.MapMode.Flatland)
switch (h)
{
case Msn.VE.DashboardStates.MapStyle.Aerial:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Aerial))
j(e + d + h);
else
o();
break ;
case Msn.VE.DashboardStates.MapStyle.Hybrid:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Hybrid))
j(e + d + h);
else
o();
break ;
default:
j(e + d + h);
}
else
j(e + d);
k();
}
function w()
{
if (typeof b[a.ObliqueNotification] != "undefined" &&
b[a.ObliqueNotification])
p();
if (e == Msn.VE.DashboardStates.MapMode.View3D)
f.Oblique3DFunctionality.ObliqueClickFunction();
else
{
if (d == Msn.VE.DashboardStates.MapView.Oblique)
return ;
$VE_A.Log($VE_A.PgName.Map, "MapStyleOblique", $VE_A.PgName.Map);
L();
}
}
function Q()
{
var e = new Date();
if (E != null)
if (e.getTime() - E.getTime() < 1000)
return ;
E = e;
var d = c.Get3DControl();
if (g(b[a.Oblique]).hasClass("MSVE_selected"))
{
ProcessPhotoPluginActionIn3D("PhotosEnabled", "0", d);
c.Set3DPhotoPluginActive(false);
}
else
{
ProcessPhotoPluginActionIn3D("PhotosEnabled", "1", d);
c.Set3DPhotoPluginActive(true);
}
c.UpdateCopyright();
}
function L()
{
d = Msn.VE.DashboardStates.MapView.Oblique;
j(e + d);
u();
}
function S()
{
if (d == Msn.VE.DashboardStates.MapView.StreetSide && e ==
Msn.VE.DashboardStates.MapMode.Flatland)
return ;
d = Msn.VE.DashboardStates.MapView.StreetSide;
j(e + d);
U();
}
function V()
{
$VE_A.Log($VE_A.PgName.Map, "Mode2D", $VE_A.PgName.Map);
c.EnableMode(Msn.VE.MapActionMode.Mode2D);
}
function Z()
{
if (! c.IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
{
$VE_A.Log($VE_A.PgName.Map, "Mode3D", $VE_A.PgName.Map);
if (typeof ShowMessage != "undefined")
{
ShowMessage(L_3DLoading_Text);
window.setTimeout(View3DSwitch, 200);
}
else
c.EnableMode(Msn.VE.MapActionMode.Mode3D);
}
}
function z()
{
if (VE_TrafficManager.turnedOn)
{
g(b[a.Traffic]).addClass("MSVE_selected");
b[a.Traffic].title = L_NavActionHideTrafficToolTip_Text;
}
else
{
g(b[a.Traffic]).removeClass("MSVE_selected");
b[a.Traffic].title = L_NavActionShowTrafficToolTip_Text;
}
}
function jb()
{
if (VE_TrafficManager.turnedOn)
VE_TrafficManager.ClearTraffic();
else
VE_TrafficManager.GetTrafficInfo(true);
}
function ab(c)
{
if (c.state == "1")
{
g(b[a.Oblique]).addClass("MSVE_selected");
$VE_A.Log($VE_A.PgName.Map, "LayerBirdsEyeOn", $VE_A.PgName.Map);
}
else
{
g(b[a.Oblique]).removeClass("MSVE_selected");
$VE_A.Log($VE_A.PgName.Map, "LayerBirdsEyeOff", $VE_A.PgName.Map);
}
}
function q(a)
{
switch (a.view.mapStyle)
{
case "s":
if (e == Msn.VE.DashboardStates.MapMode.Flatland &&
c.IsModeEnabled(Msn.VE.MapActionMode.Mode2D) && d !=
Msn.VE.DashboardStates.MapView.Ortho)
{
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
}
h = Msn.VE.DashboardStates.MapStyle.Shaded;
y();
break ;
case "r":
if (e == Msn.VE.DashboardStates.MapMode.Flatland &&
c.IsModeEnabled(Msn.VE.MapActionMode.Mode2D) && d !=
Msn.VE.DashboardStates.MapView.Ortho)
{
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
}
h = Msn.VE.DashboardStates.MapStyle.Road;
y();
break ;
case "a":
if (e == Msn.VE.DashboardStates.MapMode.Flatland &&
c.IsModeEnabled(Msn.VE.MapActionMode.Mode2D) && d !=
Msn.VE.DashboardStates.MapView.Ortho)
{
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
}
h = Msn.VE.DashboardStates.MapStyle.Aerial;
J();
break ;
case "h":
if (e == Msn.VE.DashboardStates.MapMode.Flatland &&
c.IsModeEnabled(Msn.VE.MapActionMode.Mode2D) && d !=
Msn.VE.DashboardStates.MapView.Ortho)
{
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
}
h = Msn.VE.DashboardStates.MapStyle.Hybrid;
K();
break ;
case "o":
d = Msn.VE.DashboardStates.MapView.Oblique;
u();
}
}
function M(a)
{
if (a == Msn.VE.MapActionMode.Mode3D)
I();
else
H();
}
function I()
{
if (e == Msn.VE.DashboardStates.MapMode.View3D)
return ;
e = Msn.VE.DashboardStates.MapMode.View3D;
if (typeof b[a.Mode] != "undefined" && b[a.Mode] != null)
g(b[a.Mode].classRecipients).swapClass("MSVE_FlatlandMapMode",
"MSVE_View3DMapMode");
i(a.StreetSide, true);
i(a.Road, true);
i(a.Aerial, true);
i(a.Hybrid, true);
if (! f.Oblique3DFunctionality.DependsOnObliqueAvailability)
i(a.Oblique, true);
else
{
if (b[a.ObliqueNotification] != null && b[a.ObliqueNotification].enabled)
t();
k();
}
if (typeof b[a.Ortho] != "undefined" && b[a.Ortho] != null)
b[a.Ortho].title = L_NavAction3DOrthoToolTip_Text;
if (typeof b[a.Oblique] != "undefined" && b[a.Oblique] != null)
if (b[a.Oblique].enabled)
{
b[a.Oblique].title = f.Oblique3DFunctionality.Title;
t();
}
else
b[a.Oblique].title = "";
if (typeof b[a.StreetSide] != "undefined" && b[a.StreetSide] !=
null)
b[a.StreetSide].title = L_NavAction3DStreetSideToolTip_Text;
var h = c.GetDashboard().GetShimmedElements(), d;
for (d = 0;d < h.length;d++)
mvcViewFacade.UpdateShimIfSupported(h[d]);
}
function H()
{
e = Msn.VE.DashboardStates.MapMode.Flatland;
if (typeof b[a.Mode] != "undefined" && b[a.Mode] != null)
g(b[a.Mode].classRecipients).swapClass("MSVE_View3DMapMode",
"MSVE_FlatlandMapMode");
if (typeof b[a.Ortho] != "undefined" && b[a.Ortho] != null)
b[a.Ortho].title = L_NavActionOrthoToolTip_Text;
if (typeof b[a.Oblique] != "undefined" && b[a.Oblique] != null)
b[a.Oblique].title = L_NavActionObliqueToolTip_Text;
g(b[a.Oblique]).removeClass("MSVE_selected");
photoState = 0;
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Road))
i(a.Road, true);
else
i(a.Road, false);
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Aerial))
i(a.Aerial, true);
else
i(a.Aerial, false);
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Hybrid))
i(a.Hybrid, true);
else
i(a.Hybrid, false);
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.BirdsEye))
{
c.GetObliqueAvailability("OnFlatlandModeUpdateUIObliqueReturned", O);
return ;
}
else
{
i(a.Oblique, false);
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
}
switch (d)
{
case Msn.VE.DashboardStates.MapView.Oblique:
if (c.IsObliqueAvailable() &&
$MVEM.IsEnabled(MapControl.Features.MapStyle.BirdsEye))
j(e + d);
else
m();
break ;
case Msn.VE.DashboardStates.MapView.StreetSide:
m();
break ;
case Msn.VE.DashboardStates.MapView.Ortho:
switch (h)
{
case Msn.VE.DashboardStates.MapStyle.Aerial:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Aerial))
j(e + d + h);
else
o();
break ;
case Msn.VE.DashboardStates.MapStyle.Hybrid:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Hybrid))
j(e + d + h);
else
o();
break ;
default:
j(e + d + h);
}
break ;
default:
m();
}
}
function O(b)
{
if (b)
{
i(a.Oblique, true);
if (f.obliqueZoom != null)
f.obliqueZoom.UpdateFromMap();
}
else
{
i(a.Oblique, false);
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
}
switch (d)
{
case Msn.VE.DashboardStates.MapView.Oblique:
if (b && $MVEM.IsEnabled(MapControl.Features.MapStyle.BirdsEye))
j(e + d);
else
m();
break ;
case Msn.VE.DashboardStates.MapView.StreetSide:
m();
break ;
case Msn.VE.DashboardStates.MapView.Ortho:
switch (h)
{
case Msn.VE.DashboardStates.MapStyle.Aerial:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Aerial))
j(e + d + h);
else
o();
break ;
case Msn.VE.DashboardStates.MapStyle.Hybrid:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Hybrid))
j(e + d + h);
else
o();
break ;
default:
j(e + d + h);
}
break ;
default:
m();
}
}
function A()
{
if (f.orthoZoom)
f.orthoZoom.UpdateFromMap();
if (f.obliqueZoom)
f.obliqueZoom.UpdateFromMap();
}
function hb()
{
if (c.GetMapStyle() == "o")
d = Msn.VE.DashboardStates.MapView.Oblique;
if (e == Msn.VE.DashboardStates.MapMode.Flatland || e ==
Msn.VE.DashboardStates.MapMode.View3D &&
f.Oblique3DFunctionality.DependsOnObliqueAvailability)
{
i(a.Oblique, true);
if (b[a.ObliqueNotification])
t();
}
}
function ib()
{
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
if (e == Msn.VE.DashboardStates.MapMode.Flatland || e ==
Msn.VE.DashboardStates.MapMode.View3D &&
f.Oblique3DFunctionality.DependsOnObliqueAvailability)
{
i(a.Oblique, false);
p();
}
}
function Y()
{
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
}
function eb()
{
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.BirdsEye))
{
if (d != Msn.VE.DashboardStates.MapView.Oblique)
{
d = Msn.VE.DashboardStates.MapView.Oblique;
i(a.Oblique, true);
u();
}
}
else
{
d = Msn.VE.DashboardStates.MapView.Oblique;
m();
}
if (b[a.ObliqueNotification])
p();
if (typeof f.obliqueCompass != "undefined" && f.obliqueCompass !=
null)
f.obliqueCompass.UpdateFromMap(v);
}
function y()
{
if (typeof b[a.Style] != "undefined" && b[a.Style] != null)
{
var c;
for (c = 0;c < b[a.Style].classRecipients.length;c++)
b[a.Style].classRecipients[c].className = "MSVE_RoadMapStyle";
}
}
function J()
{
if (typeof b[a.Style] != "undefined" && b[a.Style] != null)
{
var c;
for (c = 0;c < b[a.Style].classRecipients.length;c++)
b[a.Style].classRecipients[c].className = "MSVE_AerialMapStyle";
}
}
function K()
{
if (typeof b[a.Style] != "undefined" && b[a.Style] != null)
{
var c;
for (c = 0;c < b[a.Style].classRecipients.length;c++)
b[a.Style].classRecipients[c].className = "MSVE_HybridMapStyle";
}
}
function k()
{
if (typeof b[a.View] != "undefined" && b[a.View] != null)
{
var c = g(b[a.View].classRecipients);
c.removeClass("MSVE_StreetSideView");
c.removeClass("MSVE_ObliqueView");
c.addClass("MSVE_OrthoView");
}
if (b[a.Traffic] != null && e == Msn.VE.DashboardStates.MapMode.Flatland)
{
i(a.Traffic, true);
z();
}
}
function u()
{
if (typeof b[a.View] != "undefined" && b[a.View] != null)
{
var c = g(b[a.View].classRecipients);
c.removeClass("MSVE_StreetSideView");
c.removeClass("MSVE_OrthoView");
c.addClass("MSVE_ObliqueView");
}
if (C)
{
if (f.obliqueCompass == null)
{
f.obliqueCompass = new fb(b[a.ObliqueCompass]);
if (b[a.ObliqueCompass].radius)
f.obliqueCompass.SetRadius(b[a.ObliqueCompass].radius);
f.obliqueCompass.onclick = (function ()
{
v = Msn.VE.BirdsEyeSearchSpinDirection.NoSpin;
}
);
}
f.obliqueCompass.UpdateFromMap();
}
if (N)
{
if (f.obliqueZoom == null)
{
f.obliqueZoom = new gb(b[a.ObliqueZoom]);
f.obliqueZoom.Init();
}
f.obliqueZoom.UpdateFromMap();
}
if (b[a.Traffic] != null && e == Msn.VE.DashboardStates.MapMode.Flatland)
i(a.Traffic, false);
}
function U()
{
if (typeof b[a.View] != "undefined" && b[a.View] != null)
{
var c = g(b[a.View].classRecipients);
c.removeClass("MSVE_OrthoView");
c.removeClass("MSVE_ObliqueView");
c.addClass("MSVE_StreetSideView");
}
}
function t()
{
if (! b[a.ObliqueNotification])
return ;
if (! f.displaying3DNotification)
if (d != Msn.VE.DashboardStates.MapView.Oblique)
{
b[a.ObliqueNotification].style.display = "block";
mvcViewFacade.UpdateShimIfSupported(b[a.ObliqueNotification]);
window.setTimeout(p, 6000);
}
}
function p()
{
b[a.ObliqueNotification].style.display = "none";
mvcViewFacade.UpdateShimIfSupported(b[a.ObliqueNotification]);
}
function i(c,d)
{
if (b[c] == null)
return ;
if (b[c].enabled == d)
return ;
b[c].enabled = d;
var a = l[c];
if (a.InitialClass)
b[c].className = d ? a.InitialClass : a.InitialClass + "_disabled";
if (a.Title)
b[c].title = d ? a.Title : "";
if (a.OnClickFunction)
if (d)
b[c].attachEvent("onclick", a.OnClickFunction);
else
b[c].detachEvent("onclick", a.OnClickFunction);
}
function j(a)
{
var b = false;
if (a & Msn.VE.DashboardStates.MapStyle.Road)
{
c.SetMapStyle("r");
b = true;
}
else
if (a & Msn.VE.DashboardStates.MapStyle.Aerial)
{
c.SetMapStyle("a");
b = true;
}
else
if (a & Msn.VE.DashboardStates.MapStyle.Hybrid)
{
c.SetMapStyle("h");
b = true;
}
if (a & Msn.VE.DashboardStates.MapMode.Flatland)
{
if (a & Msn.VE.DashboardStates.MapView.Oblique && c.GetMapStyle() !=
Msn.VE.MapStyle.Oblique)
c.SetMapStyle("o");
}
else
if (a & Msn.VE.DashboardStates.MapMode.View3D && ! b)
if (a & Msn.VE.DashboardStates.MapView.Ortho)
c.SetTilt(- 90);
else
if (a & Msn.VE.DashboardStates.MapView.Oblique)
c.SetTilt(- 45);
else
if (a & Msn.VE.DashboardStates.MapView.StreetSide)
c.SetTilt(- 25);
}
function ob(a)
{
return b[a];
}
function lb()
{
return b;
}
function mb()
{
return B;
}
function R()
{
return v;
}
function T(a)
{
v = a;
}
var a = s, l = [];
l[a.Style] = {Id : a.Style, InitialClass : null, OnClickFunction : null,
StyleUpdateEvent : null, StyleUpdateFunction : null, Enabled : true, Title : null,
Children : [a.Road, a.Aerial, a.Hybrid], Text : null};
l[a.Road] = {Id : a.Road, InitialClass : "MSVE_MapStyle", OnClickFunction :
bb, StyleUpdateEvent : "onchangemapstyle", StyleUpdateFunction : q, Enabled :
MapControl.Features.MapStyle.Road, Title : L_NavActionRoadToolTip_Text, Children : null,
Text : L_NavActionRoad_Text};
l[a.Aerial] = {Id : a.Aerial, InitialClass : "MSVE_MapStyle", OnClickFunction
: W, StyleUpdateEvent : "onchangemapstyle", StyleUpdateFunction : q, Enabled :
MapControl.Features.MapStyle.Aerial, Title : L_NavActionAerialToolTip_Text, Children :
null, Text : L_NavActionAerial_Text};
l[a.Hybrid] = {Id : a.Hybrid, InitialClass : "MSVE_MapStyle", OnClickFunction
: X, StyleUpdateEvent : "onchangemapstyle", StyleUpdateFunction : q, Enabled :
MapControl.Features.MapStyle.Hybrid, Title : L_NavActionHybridToolTip_Text, Children :
null, Text : L_NavActionHybrid_Text};
l[a.Mode] = {Id : a.Mode, InitialClass : "MSVE_modeCell", OnClickFunction :
null, StyleUpdateEvent : null, StyleUpdateFunction : null, Enabled : true, Title : null,
Children : [a.Mode2D, a.Mode3D], Text : null};
l[a.Mode2D] = {Id : a.Mode2D, InitialClass : "MSVE_MapMode", OnClickFunction :
V, StyleUpdateEvent : "oninitmode", StyleUpdateFunction : M, Enabled : true,
Title : L_NavActionFlatlandToolTip_Text, Children : null, Text :
L_NavActionFlatland_Text};
l[a.Mode3D] = {Id : a.Mode3D, InitialClass : "MSVE_MapMode", OnClickFunction :
Z, StyleUpdateEvent : "oninitmode", StyleUpdateFunction : M, Enabled :
MapControl.Features.MapStyle.View3D, Title : L_NavActionView3DToolTip_Text, Children :
null, Text : L_NavActionView3D_Text};
l[a.View] = {Id : a.View, InitialClass : null, OnClickFunction : null, StyleUpdateEvent
: null, StyleUpdateFunction : null, Enabled : true, Title : null, Children : [a.Ortho,
a.Oblique, a.StreetSide], Text : null};
l[a.Ortho] = {Id : a.Ortho, InitialClass : "MSVE_MapStyle", OnClickFunction :
m, StyleUpdateEvent : "onchangemapstyle", StyleUpdateFunction : q, Enabled :
true, Title : L_NavActionOrthoToolTip_Text, Children : null, Text : null};
l[a.Oblique] = {Id : a.Oblique, InitialClass : "MSVE_MapStyle",
OnClickFunction : w, StyleUpdateEvent : "onchangemapstyle", StyleUpdateFunction
: q, Enabled : false, Title : L_NavActionObliqueToolTip_Text, Children : null, Text :
null};
l[a.StreetSide] = {Id : a.StreetSide, InitialClass : "MSVE_MapStyle",
OnClickFunction : S, StyleUpdateEvent : "onchangemapstyle", StyleUpdateFunction
: q, Enabled : false, Title : L_NavActionStreetSideToolTip_Text, Children : null, Text :
null};
l[a.Traffic] = {Id : a.Traffic, InitialClass : "MSVE_MapStyle",
OnClickFunction : jb, StyleUpdateEvent : null, StyleUpdateFunction : null, Enabled : true,
Title : L_NavActionShowTrafficToolTip_Text, Children : null, Text :
L_NavActionTraffic_Text};
this.ObliqueFunctions = [];
this.ObliqueFunctions.ObliqueImageryIn3D = {ObliqueClickFunction : Q, Title :
L_NavActionShowObliqueToolTip_Text, DependsOnObliqueAvailability : true};
this.ObliqueFunctions.ObliqueTiltIn3D = {ObliqueClickFunction : L, Title :
L_NavAction3DObliqueToolTip_Text, DependsOnObliqueAvailability : false};
var f = this, b = [], e = Msn.VE.DashboardStates.MapMode.Flatland, d =
Msn.VE.DashboardStates.MapView.Ortho, h = Msn.VE.DashboardStates.MapStyle.Road;
this.orthoZoom = null;
var B;
this.obliqueCompass = null;
this.obliqueZoom = null;
this.displaying3DNotification = false;
this.Oblique3DFunctionality = this.ObliqueFunctions.ObliqueImageryIn3D;
var n = document.createElement("div");
n.id = "MSVE_navAction_palette";
document.body.appendChild(n);
var C = false, N, v = Msn.VE.BirdsEyeSearchSpinDirection.NoSpin, G;
for (G in r)
if (r.hasOwnProperty(G))
F(r[G]);
var E = null;
this.SetMapViewState = (function (a)
{
d = a;
}
);
this.GetMapViewState = (function ()
{
return d;
}
);
this.SetMapModeState = (function (a)
{
e = a;
}
);
this.GetMapModeState = (function ()
{
return e;
}
);
this.GetLastRotationDirection = R;
this.SetLastRotationDirection = T;
this.Init = qb;
this.Create = F;
this.Destroy = pb;
this.DestroyControl = D;
this.GetControl = ob;
this.GetControls = lb;
this.GetTinyZoom = mb;
this.OnOrthoMapViewClick = m;
this.OnObliqueMapViewClick = w;
this.UpdateZoom = A;
this.SelectObliqueMapView = u;
this.SelectOrthoMapView = k;
this.DisplayObliqueNotification = t;
this.HideObliqueNotification = p;
}
);
var c = document.createElement("div");
c.id = B;
z.appendChild(c);
c.attachEvent("onmousedown", IgnoreEvent);
c.attachEvent("onmouseup", IgnoreEvent);
c.attachEvent("onmousemove", DashboardContainerMouseMoveEvent);
c.attachEvent("onmousewheel", IgnoreEvent);
c.attachEvent("ondblclick", IgnoreEvent);
c.attachEvent("oncontextmenu", IgnoreEvent);
c.attachEvent("onkeydown", IgnoreEvent);
c.attachEvent("onkeyup", IgnoreEvent);
c.className = "MSVE_Dashboard MSVE_Dashboard_V5 MSVE_FlatlandMapMode";
if (i == Msn.VE.DashboardSize.Normal)
c.className += " MSVE_Dashboard_Normal";
else
if (i == Msn.VE.DashboardSize.Small)
c.className += " MSVE_Dashboard_Small";
else
if (i == Msn.VE.DashboardSize.Tiny)
c.className += " MSVE_Dashboard_Tiny";
var h = null, f = document.createElement("div");
f.className = "MSVE_header";
f.id = "MSVE_navAction_header";
var e, d, b = s, o = document.createElement("div");
o.id = "MSVE_dashboardContainer";
var q = document.createElement("div");
q.id = "MSVE_mapViewRow";
o.appendChild(q);
var m = document.createElement("div");
m.id = "MSVE_zoomDiv";
var p = document.createElement("div");
p.id = "MSVE_navAction_mapViewCell";
p.className = "MSVE_dashboardMapModeContainer";
q.appendChild(m);
q.appendChild(p);
var l = document.createElement("div");
l.id = "MSVE_mapStyleRow";
o.appendChild(l);
var j = document.createElement("div");
j.id = "MSVE_threeDNotification";
var n = document.createElement("div");
n.id = "MSVE_lowerContainer";
n.appendChild(o);
c.className += " expanded";
c.appendChild(f);
c.appendChild(n);
var k = false;
this.SetX = (function (a)
{
c.style.left = a + "px";
}
);
this.GetElement = (function ()
{
return c;
}
);
this.GetShimmedElements = (function ()
{
return [c];
}
);
this.GetHeader = (function ()
{
return f;
}
);
this.GetY = (function ()
{
return (g(c).getScreenPosition()).y;
}
);
this.GetHeight = (function ()
{
return c.offsetHeight;
}
);
this.ShowToggleGlyph = (function ()
{
if (h != null && h != "undefined")
h.style.display = "block";
}
);
this.HideToggleGlyph = (function ()
{
if (h != null && h != "undefined")
h.style.display = "none";
}
);
this.SetShowMapModeSwitch = (function (a)
{
if (a != k)
{
if (! a)
{
e.DestroyControl(b.Mode);
f.removeChild(d[b.Mode]);
k = false;
}
r(a);
}
}
);
this.Hide = (function ()
{
if (c)
c.style.display = "none";
}
);
this.Show = (function ()
{
if (c)
c.style.display = "block";
}
);
this.Init = D;
this.Destroy = C;
this.createRoller = t;
}
);
Msn.VE.V6Control = (function (J,f,fb,db,C)
{
function W(o,c,d,b)
{
function k(m)
{
m = GetEvent(m);
CancelEvent(m);
var n = g(a).getPagePosition();
i = n.x;
j = n.y;
if (a.setCapture)
a.setCapture();
var k = (Gimme.Screen.getMousePosition(m)).x - i - c, l =
(Gimme.Screen.getMousePosition(m)).y - j - d, o = Math.sqrt(k * k + l * l);
if (o < b)
{
k = Math.floor(k / b * e);
l = Math.floor(l / b * e);
$VE_A.Log($VE_A.PgName.Map, "Pan", $VE_A.PgName.Map);
f.ContinuousPan(k, l, 0, true);
h = true;
}
return false;
}
function l(k)
{
k = GetEvent(k);
CancelEvent(k);
if (h)
{
var a = (Gimme.Screen.getMousePosition(k)).x - i - c, g =
(Gimme.Screen.getMousePosition(k)).y - j - d, l = Math.sqrt(a * a + g * g);
if (l < b)
{
a = Math.floor(a / b * e);
g = Math.floor(g / b * e);
f.ContinuousPan(a, g, 0, true);
}
}
return false;
}
function m(b)
{
b = GetEvent(b);
CancelEvent(b);
if (a.releaseCapture)
a.releaseCapture();
f.StopContinuousPan();
h = false;
return false;
}
function p()
{
a.style.display = "none";
}
function q()
{
a.style.display = "block";
}
function n()
{
return a;
}
var a = document.createElement("div"), i = 0, j = 0, h = false, e = 15;
this.Init = (function ()
{
a.id = "Compass";
a.attachEvent("onmousedown", k);
a.attachEvent("onmouseup", m);
a.attachEvent("onmousemove", l);
a.attachEvent("ondblclick", IgnoreEvent);
a.title = L_NavActionCompassPan;
o.appendChild(a);
if (isNaN(parseInt(c)))
c = a.offsetWidth / 2;
if (isNaN(parseInt(d)))
d = a.offsetHeight / 2;
if (isNaN(parseInt(b)))
b = Math.min(c, d);
}
);
this.Destroy = (function ()
{
a.detachEvent("onmousedown", k);
a.detachEvent("onmouseup", m);
a.detachEvent("onmousemove", l);
a.detachEvent("ondblclick", IgnoreEvent);
a = null;
}
);
this.Hide = p;
this.Show = q;
this.GetElement = n;
}
function ab()
{
f.AttachEvent("oninitmode", T);
z = [a.Mode, a.View, a.Style, a.TinyZoom, a.ObliqueNotification, a.ObliqueCompass];
if (typeof $MVEF != "undefined" &&
$MVEM.IsEnabled($MVEF.MapAction.Traffic))
if (typeof VE_TrafficManager != "undefined")
z.push(a.Traffic);
i = new Msn.VE.CommonControls(f, z);
b = i.GetControls();
b[a.Oblique].innerText = L_DashboardBirdsEye_Text;
c = document.createElement("div");
c.id = "MSVE_navAction_container";
c.className = "MSVE_Dashboard_V6";
e = document.createElement("div");
e.id = "MSVE_navAction_styleGroup";
d = document.createElement("div");
d.id = "MSVE_navAction_topBar";
b[a.View].classRecipients = [e, c];
b[a.Style].classRecipients = [e];
b[a.Mode].classRecipients = [d];
i.Oblique3DFunctionality = i.ObliqueFunctions.ObliqueImageryIn3D;
J.appendChild(c);
s = document.createElement("div");
s.id = "MSVE_navAction_topBackground";
s.className = "MSVE_navAction_background";
v = document.createElement("div");
v.id = "MSVE_navAction_compassBackground";
v.className = "MSVE_navAction_background";
w = document.createElement("div");
w.id = "MSVE_navAction_leftBackground";
w.className = "MSVE_navAction_background";
d.className = "MSVE_Dashboard MSVE_Dashboard_V6 MSVE_FlatlandMapMode";
m = document.createElement("div");
m.id = "MSVE_navAction_leftBar";
m.className = "MSVE_Dashboard MSVE_Dashboard_V6";
p = document.createElement("div");
p.id = "MSVE_navAction_compassContainer";
p.className = "MSVE_Dashboard MSVE_Dashboard_V6";
j = document.createElement("div");
j.id = "MSVE_navAction_toggleGlyphWrapper";
j.title = L_NavActionHideToolTip_Text;
pseudoHover(j);
c.appendChild(w);
c.appendChild(v);
c.appendChild(s);
c.appendChild(p);
c.appendChild(m);
c.appendChild(d);
c.appendChild(j);
if (! f.IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
M();
var B = g(c), A = B.select("> div");
A.addEvent("mousedown", IgnoreEvent);
A.addEvent("mouseup", IgnoreEvent);
A.addEvent("mousemove", DashboardContainerMouseMoveEvent);
A.addEvent("mousewheel", IgnoreEvent);
A.addEvent("dblclick", IgnoreEvent);
A.addEvent("contextmenu", IgnoreEvent);
A.addEvent("keydown", IgnoreEvent);
A.addEvent("keyup", IgnoreEvent);
A.addEvent("click", IgnoreEvent);
h = [];
for (r = 0;r < 4;r++)
{
h[r] = document.createElement("div");
h[r].className = "MSVE_navAction_separator";
h[r].id = "MSVE_navAction_separator" + r;
}
x = document.createElement("div");
x.id = "MSVE_navAction_toggleGlyphInner";
x.className = "MSVE_navAction_toggleGlyph";
j.appendChild(x);
b[a.Road].title = L_NavActionRoadToolTip_Text;
b[a.Aerial].title = L_NavActionAerialToolTip_Text;
b[a.Hybrid].title = L_NavActionHybridToolTip_Text;
b[a.Mode2D].title = L_NavActionFlatlandToolTip_Text;
b[a.Mode3D].title = L_NavActionView3DToolTip_Text;
e.appendChild(b[a.Road]);
e.appendChild(b[a.Aerial]);
e.appendChild(b[a.Hybrid]);
e.appendChild(h[1]);
e.appendChild(b[a.Oblique]);
if (C)
{
d.appendChild(b[a.Mode]);
d.appendChild(h[0]);
}
d.appendChild(e);
d.appendChild(h[2]);
if (b[a.Traffic] != null)
{
b[a.Traffic].title = L_NavActionShowTrafficToolTip_Text;
d.appendChild(b[a.Traffic]);
d.appendChild(h[3]);
}
else
B.addClass("notraffic");
q = document.createElement("div");
q.id = "MSVE_navAction_compassWrapper";
p.appendChild(q);
y = new W(q);
y.Init();
pseudoHover(y.GetElement());
b[a.ObliqueCompass].radius = 31;
q.appendChild(b[a.ObliqueCompass]);
m.appendChild(b[a.TinyZoom]);
o = document.createElement("div");
o.id = "MSVE_navAction_zoomPlusWrapper";
pseudoHover(o);
o.appendChild($ID("MSVE_navAction_tinyZoomBar_plus"));
b[a.TinyZoom].appendChild(o);
n = document.createElement("div");
n.id = "MSVE_navAction_zoomMinusWrapper";
pseudoHover(n);
n.appendChild($ID("MSVE_navAction_tinyZoomBar_minus"));
b[a.TinyZoom].appendChild(n);
i.GetTinyZoom().HookupPlusMinusEvents(o, n);
rotatorContainer = document.createElement("div");
rotatorContainer.id = "MSVE_navAction_rotatorContainer";
t = document.createElement("div");
t.id = "MSVE_navAction_ccw";
t.title = L_NavActionObliqueRotationToolTip_CCW_Text;
t.className = "MSVE_navAction_rotator";
u = document.createElement("div");
u.id = "MSVE_navAction_cw";
u.title = L_NavActionObliqueRotationToolTip_CW_Text;
u.className = "MSVE_navAction_rotator";
k = document.createElement("div");
k.id = "MSVE_navAction_ccwWrapper";
pseudoHover(k);
k.appendChild(t);
l = document.createElement("div");
l.id = "MSVE_navAction_cwWrapper";
pseudoHover(l);
l.appendChild(u);
g(k).addEvent("click", L);
g(l).addEvent("click", N);
rotatorContainer.appendChild(k);
rotatorContainer.appendChild(l);
m.appendChild(rotatorContainer);
b[a.Oblique].appendChild(b[a.ObliqueNotification]);
i.Init();
if (Msn.VE.Animation)
H();
}
function X()
{
b[a.Oblique].removeChild(b[a.ObliqueNotification]);
g(k).removeEvent("click", L);
g(l).removeEvent("click", N);
k.removeChild(t);
l.removeChild(u);
rotatorContainer.removeChild(k);
rotatorContainer.removeChild(l);
m.removeChild(rotatorContainer);
n.removeChild($ID("MSVE_navAction_tinyZoomBar_minus"));
b[a.TinyZoom].removeChild(n);
o.removeChild($ID("MSVE_navAction_tinyZoomBar_plus"));
b[a.TinyZoom].removeChild(o);
m.removeChild(b[a.TinyZoom]);
y.Destroy();
p.removeChild(q);
q.removeChild(b[a.ObliqueCompass]);
if (b[a.Traffic] != null)
{
d.removeChild(b[a.Traffic]);
d.removeChild(h[3]);
}
e.removeChild(b[a.Road]);
e.removeChild(b[a.Aerial]);
e.removeChild(b[a.Hybrid]);
e.removeChild(h[1]);
e.removeChild(b[a.Oblique]);
if (C)
{
d.removeChild(b[a.Mode]);
d.removeChild(h[0]);
}
d.removeChild(e);
d.removeChild(h[2]);
j.removeChild(x);
var r = g(c), f = r.select("> div");
f.removeEvent("mouseleave", A);
f.removeEvent("mouseenter", B);
f.removeEvent("mousedown", IgnoreEvent);
f.removeEvent("mouseup", IgnoreEvent);
f.removeEvent("mousemove", DashboardContainerMouseMoveEvent);
f.removeEvent("mousewheel", IgnoreEvent);
f.removeEvent("dblclick", IgnoreEvent);
f.removeEvent("contextmenu", IgnoreEvent);
f.removeEvent("keydown", IgnoreEvent);
f.removeEvent("keyup", IgnoreEvent);
f.removeEvent("click", IgnoreEvent);
c.removeChild(w);
c.removeChild(v);
c.removeChild(s);
c.removeChild(p);
c.removeChild(m);
c.removeChild(d);
c.removeChild(j);
J.removeChild(c);
i.Destroy();
if (Msn.VE.Animation)
D().onclick = null;
}
function A()
{
Gimme.Animation.end("MSVE_NAVACTION_FADEIN");
g(c).select("div.MSVE_navAction_background").fadeTo(null, E, I,
"MSVE_NAVACTION_FADEOUT");
}
function B()
{
Gimme.Animation.end("MSVE_NAVACTION_FADEOUT");
g(c).select("div.MSVE_navAction_background").fadeTo(null, S, I,
"MSVE_NAVACTION_FADEIN");
}
function T(a)
{
if (a == Msn.VE.MapActionMode.Mode3D)
U();
else
M();
}
function M()
{
var a = g(c), b = a.select("> div");
a.select("div.MSVE_navAction_background").setStyle("opacity", E);
b.addEvent("mouseleave", A);
b.addEvent("mouseenter", B);
}
function U()
{
var a = g(c), b = a.select("> div");
b.removeEvent("mouseleave", A);
b.removeEvent("mouseenter", B);
a.select("div.MSVE_navAction_background").setStyle("opacity", K);
}
function L()
{
G(Msn.VE.BirdsEyeSearchSpinDirection.CounterclockwiseSpin);
}
function N()
{
G(Msn.VE.BirdsEyeSearchSpinDirection.ClockwiseSpin);
}
function G(a)
{
i.SetLastRotationDirection(a);
var b = f.GetObliqueScene();
if (b)
{
var d = O[(b.GetOrientation())], c = Q[((d + a + 4) % 4)];
f.SetObliqueOrientation(c, a);
i.obliqueCompass.UpdateFromMap();
}
}
function V()
{
return c;
}
function P()
{
return [s, b[a.ObliqueNotification]];
}
function D()
{
return j;
}
function Y()
{
return i.GetMapModeState();
}
function bb()
{
if (c)
c.style.display = "block";
}
function Z()
{
if (c)
c.style.display = "none";
}
function H()
{
if (! f.GetDashboard().GetToggleGlyph())
return ;
f.GetDashboard().GetToggleGlyph().onclick = (function ()
{
var a = f.GetDashboard();
if (g(a.GetElement()).hasClass("collapsed"))
{
g(a.GetElement()).removeClass("collapsed");
a.GetToggleGlyph().title = L_NavActionHideToolTip_Text;
if (f.Get3DControl())
f.Get3DControl().ShowNavigationControl = true;
}
else
{
g(a.GetElement()).addClass("collapsed");
a.GetToggleGlyph().title = L_NavActionShowToolTip_Text;
if (f.Get3DControl())
f.Get3DControl().ShowNavigationControl = false;
}
var c = f.GetDashboard().GetShimmedElements(), b;
for (b = 0;b < c.length;b++)
mvcViewFacade.UpdateShimIfSupported(c[b]);
g("#MSVE_navAction_topBackground").setStyle("opacity", K);
}
);
}
function R()
{
i.ObliqueFunctions.ObliqueImageryIn3D.ObliqueClickFunction();
}
Msn.VE.DashboardStates = new (function ()
{
this.MapMode = new (function ()
{
this.Flatland = 1;
this.View3D = 2;
}
)();
this.MapView = new (function ()
{
this.Ortho = 4;
this.Oblique = 8;
this.StreetSide = 16;
}
)();
this.MapStyle = new (function ()
{
this.Road = 32;
this.Shaded = 64;
this.Aerial = 128;
this.Hybrid = 256;
}
)();
}
)();
var F = {Style : "MSVE_navAction_mapStyleCell", Road :
"MSVE_navAction_RoadMapStyle", Aerial :
"MSVE_navAction_AerialMapStyle", Hybrid :
"MSVE_navAction_HybridMapStyle", Mode : "MSVE_navAction_modeCell",
Mode2D : "MSVE_navAction_FlatlandMapMode", Mode3D :
"MSVE_navAction_View3DMapMode", View :
"MSVE_navAction_mapViewCellInner", Ortho :
"MSVE_navAction_OrthoMapView", Oblique :
"MSVE_navAction_ObliqueMapView", StreetSide :
"MSVE_navAction_StreetSideMapView", Pan :
"MSVE_navAction_panContainer", PanUp : "MSVE_navAction_panUp", PanDown
: "MSVE_navAction_panDown", PanLeft : "MSVE_navAction_panLeft",
PanRight : "MSVE_navAction_panRight", TinyZoom : "MSVE_TinyZoomBar",
OrthoZoom : "MSVE_OrthoZoomBar", ObliqueZoom : "MSVE_ObliqueZoomBar",
ObliqueCompass : "MSVE_compassDiv", ObliqueNotification :
"MSVE_obliqueNotification", Traffic : "MSVE_navAction_traffic"};
Msn.VE.CommonControls = (function (c,r)
{
function gb(b)
{
function v()
{
b.style.display = "block";
}
function u()
{
b.style.display = "none";
}
function r(a)
{
a = GetEvent(a);
CancelEvent(a);
k();
n(h((Gimme.Screen.getMousePosition(a)).y));
return false;
}
function h(b)
{
b -= s + d.offsetHeight + a.offsetHeight;
var c = e.offsetHeight - a.offsetHeight;
if (b < 0)
b = 0;
else
if (b > c)
b = c;
return b;
}
function l()
{
c.ZoomOut();
}
function m()
{
c.ZoomIn();
}
function t()
{
d.detachEvent("onclick", l);
a.detachEvent("onmousedown", o);
a.detachEvent("onmousemove", p);
a.detachEvent("onmouseup", q);
a.detachEvent("onclick", IgnoreEvent);
e.detachEvent("onclick", r);
f.detachEvent("onclick", m);
b.detachEvent("onmousedown", IgnoreEvent);
b.detachEvent("onmousedown", IgnoreEvent);
b.detachEvent("onclick", IgnoreEvent);
b.detachEvent("ondblclick", IgnoreEvent);
d = a = e = f = null;
}
function o(b)
{
b = GetEvent(b);
CancelEvent(b);
k();
if (a.setCapture)
a.setCapture();
j = true;
return false;
}
function p(b)
{
b = GetEvent(b);
CancelEvent(b);
if (j)
a.style.top = h((Gimme.Screen.getMousePosition(b)).y) + "px";
return false;
}
function q(b)
{
b = GetEvent(b);
CancelEvent(b);
if (a.releaseCapture)
a.releaseCapture();
j = false;
n(h((Gimme.Screen.getMousePosition(b)).y));
i();
return false;
}
function k()
{
var a = g(b).getScreenPosition();
w = a.x;
s = a.y;
}
function n(f)
{
var b = e.offsetHeight - a.offsetHeight, d = 1 + MathRound((b - f) / b * 1);
$VE_A.Log($VE_A.PgName.Map, "Zoom");
c.SetZoom(d);
}
function i()
{
if (c.GetZoomLevel() == 1)
a.style.top = e.offsetHeight - a.offsetHeight + "px";
else
a.style.top = "0px";
}
var f = document.createElement("div"), e =
document.createElement("div"), a = document.createElement("div"), d =
document.createElement("div"), w = 0, s = 0, j = false;
this.Init = (function ()
{
d.className = "MSVE_ZoomBar_minus";
d.id = "MSVE_navAction_obliqueZoomBar_minus";
d.unselectable = "on";
d.title = L_ZoomBarMinusToolTip_Text;
d.attachEvent("onclick", l);
pseudoHover(d);
a.className = "MSVE_ZoomBar_slider";
a.id = "MSVE_navAction_obliqueZoomBar_slider";
a.unselectable = "on";
a.attachEvent("onmousedown", o);
a.attachEvent("onmousemove", p);
a.attachEvent("onmouseup", q);
a.attachEvent("onclick", IgnoreEvent);
pseudoHover(a);
e.className = "MSVE_ObliqueZoomBar_bar";
e.unselectable = "on";
e.appendChild(a);
e.attachEvent("onclick", r);
f.className = "MSVE_ZoomBar_plus";
f.id = "MSVE_navAction_obliqueZoomBar_plus";
f.title = L_ZoomBarPlusToolTip_Text;
f.unselectable = "on";
f.attachEvent("onclick", m);
pseudoHover(f);
b.className = "MSVE_ZoomBar";
b.id = "MSVE_ObliqueZoomBar";
b.appendChild(d);
b.appendChild(e);
b.appendChild(f);
b.attachEvent("onmousedown", IgnoreEvent);
b.attachEvent("onmouseup", IgnoreEvent);
b.attachEvent("onclick", IgnoreEvent);
b.attachEvent("ondblclick", IgnoreEvent);
i();
}
);
this.Destroy = t;
this.Show = v;
this.Hide = u;
this.UpdateFromMap = i;
}
function w(z,x,y)
{
function f(e)
{
if (d)
return ;
c = a.className;
a.className = "MSVE_obliqueCompassPointHover";
if (b.onmouseover)
b.onmouseover(e);
}
function i(a)
{
if (d)
return ;
f(a);
c = "MSVE_obliqueCompassPointOn";
if (b.onclick)
b.onclick(a);
}
function h(e)
{
if (d)
return ;
a.className = c;
if (b.onmouseout)
b.onmouseout(e);
}
function m()
{
c = "MSVE_obliqueCompassPointOn";
a.className = "MSVE_obliqueCompassPointOn";
}
function l()
{
c = "MSVE_obliqueCompassPointOff";
a.className = "MSVE_obliqueCompassPointOff";
}
function u()
{
d = true;
l();
}
function k()
{
d = false;
m();
}
function q()
{
return a;
}
function n()
{
return g;
}
function o(a)
{
g = a;
}
function w()
{
j.Reset();
k();
}
function p(b)
{
a.style.left = b.left;
a.style.top = b.top;
}
function v(s,o,p)
{
function n(a,b,c)
{
if (b >= c - a && b <= c + a)
return true;
return false;
}
function j()
{
a += b;
if (a > Math.PI * 2)
a -= Math.PI * 2;
else
if (a < 0)
a += Math.PI * 2;
if (n(q, a, d))
{
b = 0.3;
a = d;
f(a);
c = false;
return ;
}
f(a);
window.setTimeout(j, m);
}
function f(a)
{
var b = o + e * Math.sin(a), c = p + e * Math.cos(a);
h.style.left = b + "px";
h.style.top = c + "px";
}
function g(a)
{
if (c)
return ;
c = true;
d = a;
j();
}
function k(a,c)
{
i = c;
if (! i)
b *= - 1;
g(l * a);
}
function r()
{
c = false;
a = 0;
}
var h = s, a = 0, b = 0.3, d = 0, m = 40, c = false, l = Math.PI / 2, i = true, q =
b + 0.1;
this.RotateTo = g;
this.RotateToIndex = k;
this.Reset = r;
}
function t()
{
a.detachEvent("onmouseover", f);
a.detachEvent("onmouseout", h);
a.detachEvent("onclick", i);
a = null;
}
function s(a)
{
e = a;
}
function r()
{
return e;
}
var a = document.createElement("div");
a.setAttribute("id", z);
a.innerHTML = x;
var c = "MSVE_obliqueCompassPointOff", g = y;
a.attachEvent("onmouseover", f);
a.attachEvent("onmouseout", h);
a.attachEvent("onclick", i);
this.onclick = null;
this.onmouseover = null;
this.onmouseout = null;
var e = 25, b = this, d = false, j = new v(a, 17, 17);
this.SetRadius = s;
this.GetRadius = r;
this.GetElement = q;
this.GetCurrentPositionIndex = n;
this.SetCurrentPositionIndex = o;
this.SetCurrentPosition = p;
this.On = m;
this.Off = l;
this.RotateToIndex = j.RotateToIndex;
this.Reset = w;
this.Disable = u;
this.Enable = k;
this.Destroy = t;
}
function fb(D)
{
function p(a)
{
if (a < 0)
a = 4 - Math.abs(a);
return a;
}
function n(h,g)
{
var f = h.GetCurrentPositionIndex();
d.SetCurrentPositionIndex(p(d.GetCurrentPositionIndex() - f));
e.SetCurrentPositionIndex(p(e.GetCurrentPositionIndex() - f));
a.SetCurrentPositionIndex(p(a.GetCurrentPositionIndex() - f));
b.SetCurrentPositionIndex(p(b.GetCurrentPositionIndex() - f));
var c;
if (g)
c = g == Msn.VE.BirdsEyeSearchSpinDirection.CounterclockwiseSpin;
else
c = f != 3;
a.RotateToIndex(2 - a.GetCurrentPositionIndex() < 0 ? a.GetCurrentPositionIndex()
: 2 - a.GetCurrentPositionIndex(), c);
d.RotateToIndex(2 - d.GetCurrentPositionIndex() < 0 ? d.GetCurrentPositionIndex()
: 2 - d.GetCurrentPositionIndex(), c);
b.RotateToIndex(2 - b.GetCurrentPositionIndex() < 0 ? b.GetCurrentPositionIndex()
: 2 - b.GetCurrentPositionIndex(), c);
e.RotateToIndex(2 - e.GetCurrentPositionIndex() < 0 ? e.GetCurrentPositionIndex()
: 2 - e.GetCurrentPositionIndex(), c);
}
function g(a)
{
switch (a)
{
case 0:
h();
break ;
case 1:
A();
break ;
case 2:
B();
break ;
case 3:
C();
}
}
function h()
{
m.className = "MSVE_obliqueCompassArrowU";
}
function B()
{
m.className = "MSVE_obliqueCompassArrowD";
}
function A()
{
m.className = "MSVE_obliqueCompassArrowR";
}
function C()
{
m.className = "MSVE_obliqueCompassArrowL";
}
function s()
{
n(b);
g(0);
var a = c.GetObliqueScene();
if (a)
if (a.GetOrientation() != Msn.VE.Orientation.South)
c.SetObliqueOrientation("South");
}
function r()
{
n(a);
g(0);
var b = c.GetObliqueScene();
if (b)
if (b.GetOrientation() != Msn.VE.Orientation.North)
c.SetObliqueOrientation("North");
}
function t()
{
n(d);
g(0);
var a = c.GetObliqueScene();
if (a)
if (a.GetOrientation() != Msn.VE.Orientation.East)
c.SetObliqueOrientation("East");
}
function x()
{
n(e);
g(0);
var a = c.GetObliqueScene();
if (a)
if (a.GetOrientation() != Msn.VE.Orientation.West)
c.SetObliqueOrientation("West");
}
function v()
{
g(b.GetCurrentPositionIndex());
}
function y()
{
g(d.GetCurrentPositionIndex());
}
function z()
{
g(e.GetCurrentPositionIndex());
}
function u()
{
g(a.GetCurrentPositionIndex());
}
function H()
{
f.style.display = "none";
}
function I()
{
f.style.display = "block";
}
function q(j)
{
var i = c.GetObliqueScene();
if (! i)
return ;
var f = i.GetOrientation(), h;
switch (f)
{
case "North":
h = a;
break ;
case "South":
h = b;
break ;
case "East":
h = d;
break ;
case "West":
h = e;
}
n(h, j);
g(0);
if (f != Msn.VE.Orientation.North)
a.Enable();
else
a.Disable();
if (f != Msn.VE.Orientation.South)
b.Enable();
else
b.Disable();
if (f != Msn.VE.Orientation.East)
d.Enable();
else
d.Disable();
if (f != Msn.VE.Orientation.West)
e.Enable();
else
e.Disable();
}
function G()
{
a.Destroy();
d.Destroy();
b.Destroy();
e.Destroy();
i.detachEvent("onclick", r);
i.detachEvent("onmouseover", u);
i.detachEvent("onmouseout", h);
k.detachEvent("onclick", t);
k.detachEvent("onmouseover", y);
k.detachEvent("onmouseout", h);
j.detachEvent("onclick", s);
j.detachEvent("onmouseover", v);
j.detachEvent("onmouseout", h);
l.detachEvent("onclick", x);
l.detachEvent("onmouseover", z);
l.detachEvent("onmouseout", h);
f = null;
}
function F(c)
{
a.SetRadius(c);
b.SetRadius(c);
d.SetRadius(c);
e.SetRadius(c);
}
function E()
{
return a.GetRadius();
}
var o = [];
o.push({top : "-8px", left : "17px"});
o.push({top : "17px", left : "42px"});
o.push({top : "42px", left : "17px"});
o.push({top : "17px", left : "-8px"});
var f = document.createElement("div");
f.setAttribute("id", "MSVE_obliqueCompassContainer");
f.title = L_ObliqueCompassSelectDirection_Text;
var a = new w("MSVE_obliqueCompassPointN", "N", 0), i =
a.GetElement();
i.attachEvent("onclick", r);
i.attachEvent("onmouseover", u);
i.attachEvent("onmouseout", h);
var d = new w("MSVE_obliqueCompassPointE", "E", 1), k =
d.GetElement();
k.attachEvent("onclick", t);
k.attachEvent("onmouseover", y);
k.attachEvent("onmouseout", h);
var b = new w("MSVE_obliqueCompassPointS", "S", 2), j =
b.GetElement();
j.attachEvent("onclick", s);
j.attachEvent("onmouseover", v);
j.attachEvent("onmouseout", h);
var e = new w("MSVE_obliqueCompassPointW", "W", 3), l =
e.GetElement();
l.attachEvent("onclick", x);
l.attachEvent("onmouseover", z);
l.attachEvent("onmouseout", h);
var m = document.createElement("div");
m.id = "MSVE_navAction_obliqueCompassArrow";
f.appendChild(i);
f.appendChild(k);
f.appendChild(j);
f.appendChild(l);
f.appendChild(m);
D.appendChild(f);
q();
this.Hide = H;
this.Show = I;
this.UpdateFromMap = q;
this.SetRadius = F;
this.GetRadius = E;
this.Destroy = G;
}
function kb(b)
{
function u()
{
b.style.display = "block";
}
function t()
{
b.style.display = "none";
}
function k()
{
var a = g(b).getScreenPosition();
v = a.x;
s = a.y;
}
function o(b)
{
b = GetEvent(b);
CancelEvent(b);
k();
if (a.setCapture)
a.setCapture();
j = true;
return false;
}
function p(b)
{
b = GetEvent(b);
CancelEvent(b);
if (j)
a.style.top = h((Gimme.Screen.getMousePosition(b)).y) + "px";
return false;
}
function q(b)
{
b = GetEvent(b);
CancelEvent(b);
if (a.releaseCapture)
a.releaseCapture();
j = false;
n(h((Gimme.Screen.getMousePosition(b)).y));
i();
return false;
}
function m()
{
c.ZoomIn();
}
function l()
{
c.ZoomOut();
}
function r(a)
{
a = GetEvent(a);
CancelEvent(a);
k();
n(h((Gimme.Screen.getMousePosition(a)).y));
return false;
}
function h(b)
{
b -= s + d.offsetHeight + a.offsetHeight;
var c = e.offsetHeight - a.offsetHeight;
if (b < 0)
b = 0;
else
if (b > c)
b = c;
return b;
}
function n(f)
{
var b = e.offsetHeight - a.offsetHeight, d = 1 + MathRound((b - f) / b * 18);
$VE_A.Log($VE_A.PgName.Map, "Zoom");
c.SetZoom(d);
}
function i()
{
var b = e.offsetHeight - a.offsetHeight, d = b - (c.GetZoomLevel() - 1) / 18 * b;
a.style.top = d + "px";
}
var f = document.createElement("div"), e =
document.createElement("div"), a = document.createElement("div"), d =
document.createElement("div"), v = 0, s = 0, j = false;
this.Init = (function ()
{
d.className = "MSVE_ZoomBar_minus";
d.id = "MSVE_navAction_orthoZoomBar_minus";
d.title = L_ZoomBarMinusToolTip_Text;
d.unselectable = "on";
d.attachEvent("onclick", l);
pseudoHover(d);
a.className = "MSVE_ZoomBar_slider";
a.id = "MSVE_navAction_orthoZoomBar_slider";
a.title = L_ZoomBarSliderToolTip_Text;
a.unselectable = "on";
a.attachEvent("onmousedown", o);
a.attachEvent("onmousemove", p);
a.attachEvent("onmouseup", q);
a.attachEvent("onclick", IgnoreEvent);
pseudoHover(a);
e.className = "MSVE_OrthoZoomBar_bar";
e.unselectable = "on";
e.appendChild(a);
e.attachEvent("onclick", r);
f.className = "MSVE_ZoomBar_plus";
f.id = "MSVE_navAction_orthoZoomBar_plus";
f.title = L_ZoomBarPlusToolTip_Text;
f.unselectable = "on";
f.attachEvent("onclick", m);
pseudoHover(f);
b.className = "MSVE_ZoomBar";
b.id = "MSVE_OrthoZoomBar";
b.appendChild(d);
b.appendChild(e);
b.appendChild(f);
b.attachEvent("onmousedown", IgnoreEvent);
b.attachEvent("onmouseup", IgnoreEvent);
b.attachEvent("onclick", IgnoreEvent);
b.attachEvent("ondblclick", IgnoreEvent);
i();
}
);
this.Destroy = (function ()
{
d.detachEvent("onclick", l);
a.detachEvent("onmousedown", o);
a.detachEvent("onmousemove", p);
a.detachEvent("onmouseup", q);
a.detachEvent("onclick", IgnoreEvent);
e.detachEvent("onclick", r);
f.detachEvent("onclick", m);
b.detachEvent("onmousedown", IgnoreEvent);
b.detachEvent("onmousedown", IgnoreEvent);
b.detachEvent("onclick", IgnoreEvent);
b.detachEvent("ondblclick", IgnoreEvent);
d = a = e = f = null;
}
);
this.UpdateFromMap = i;
this.Show = u;
this.Hide = t;
}
function nb()
{
function m()
{
if (c.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
return true;
else
return c.IsAnimationEnabled();
}
function k()
{
g = "in";
c.ZoomIn();
}
function i()
{
window.setTimeout(l, m() ? 1 : 500);
}
function l()
{
if (g == "in" && c.GetZoomLevel() < 21)
c.ZoomIn();
else
if (g == "out" && c.GetZoomLevel() > 1)
c.ZoomOut();
}
function j()
{
g = "out";
c.ZoomOut();
}
function a()
{
g = false;
}
var h = document.createElement("div"), f =
document.createElement("div"), e = document.createElement("div"), g =
false, d = null, b = null;
this.Init = (function ()
{
f.className = "MSVE_ZoomBar_plus";
f.id = "MSVE_navAction_tinyZoomBar_plus";
f.title = L_ZoomBarPlusToolTip_Text;
f.unselectable = "on";
e.className = "MSVE_ZoomBar_minus";
e.id = "MSVE_navAction_tinyZoomBar_minus";
e.title = L_ZoomBarMinusToolTip_Text;
e.unselectable = "on";
c.AttachEvent("onendzoom", i);
h.className = "MSVE_ZoomBar";
h.id = "MSVE_TinyZoomBar";
h.appendChild(f);
h.appendChild(e);
return h;
}
);
this.HookupPlusMinusEvents = (function (e,c)
{
e.attachEvent("onmousedown", k);
e.attachEvent("onmouseup", a);
e.attachEvent("onmouseout", a);
d = e;
c.attachEvent("onmousedown", j);
c.attachEvent("onmouseup", a);
c.attachEvent("onmouseout", a);
b = c;
}
);
this.Destroy = (function ()
{
if (d != null)
{
d.detachEvent("onmousedown", k);
d.detachEvent("onmouseup", a);
d.detachEvent("onmouseout", a);
d = null;
}
if (b != null)
{
b.detachEvent("onmousedown", j);
b.detachEvent("onmouseup", a);
b.detachEvent("onmouseout", a);
b = null;
}
c.DetachEvent("onendzoom", i);
f = e = null;
}
);
}
function qb()
{
var e = $MVEM.IsEnabled(MapControl.Features.MapStyle.BirdsEye) &&
(c.IsObliqueAvailable() || c.GetMapStyle() == "o");
if (e)
{
i(a.Oblique, true);
if (b[a.ObliqueNotification] && c.GetMapStyle() != "o")
s();
}
else
{
i(a.Oblique, false);
if (b[a.ObliqueNotification])
p();
}
switch (c.GetMapStyle())
{
case "r":
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
h = Msn.VE.DashboardStates.MapStyle.Road;
x();
break ;
case "s":
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
h = Msn.VE.DashboardStates.MapStyle.Shaded;
x();
break ;
case "a":
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
h = Msn.VE.DashboardStates.MapStyle.Aerial;
J();
break ;
case "h":
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
h = Msn.VE.DashboardStates.MapStyle.Hybrid;
K();
break ;
case "o":
d = Msn.VE.DashboardStates.MapView.Oblique;
t();
}
if (c.IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
I();
else
H();
}
function pb()
{
var a;
for (a in r)
if (r.hasOwnProperty(a))
C(r[a]);
document.body.removeChild(n);
n = null;
}
function E(e)
{
switch (e)
{
case a.OrthoZoom:
b[e] = document.createElement("div");
f.orthoZoom = new kb(b[e]);
f.orthoZoom.Init();
c.AttachEvent("onendzoom", z);
n.appendChild(b[e]);
z();
return ;
case a.ObliqueZoom:
b[e] = document.createElement("div");
N = true;
b[e].id = e;
n.appendChild(b[e]);
return ;
case a.TinyZoom:
A = new nb();
b[e] = A.Init();
return ;
case a.ObliqueCompass:
b[e] = document.createElement("div");
b[e].id = e;
B = true;
return ;
case a.ObliqueNotification:
P();
return ;
case a.Oblique:
c.AttachEvent("onve3dphotostatechanged", ab);
}
var d = l[e], g = document.createElement("div");
b[d.Id] = g;
g.id = d.Id;
g.enabled = d.Enabled;
g.classRecipients = [g];
if (d.Text != null)
g.innerText = d.Text;
if (d.OnClickFunction != null && d.Enabled == true)
g.attachEvent("onclick", d.OnClickFunction);
if (d.StyleUpdateEvent != null && d.StyleUpdateFunction != null)
c.AttachEvent(d.StyleUpdateEvent, d.StyleUpdateFunction);
if (d.InitialClass)
{
g.className = d.InitialClass;
if (! g.enabled)
g.className += "_disabled";
}
if (d.Children != null)
{
var h;
for (h in d.Children)
if (d.Children.hasOwnProperty(h))
g.appendChild(E(d.Children[h]));
}
else
pseudoHover(g);
switch (e)
{
case a.Oblique:
case a.ObliqueCompass:
c.AttachEvent("onobliqueenter", hb);
c.AttachEvent("onobliqueleave", ib);
c.AttachEvent("onendmapstyleoblique", Y);
c.AttachEvent("onobliquechange", eb);
break ;
case a.Traffic:
c.AttachEvent("onchangetraffic", y);
y();
}
return g;
}
function C(e)
{
switch (e)
{
case a.OrthoZoom:
f.orthoZoom.Destroy();
b[e] = null;
c.DetachEvent("onendzoom", z);
try
{
n.removeChild(b[e]);
}
catch (j)
{}
return ;
case a.ObliqueZoom:
try
{
n.removeChild(b[e]);
}
catch (j)
{}
if (f.obliqueZoom)
{
f.obliqueZoom.Destroy();
f.obliqueZoom = null;
}
case a.TinyZoom:
A.Destroy();
b[e] = null;
return ;
case a.ObliqueCompass:
if (B && f.obliqueCompass)
{
f.obliqueCompass.onclick = null;
f.obliqueCompass.Destroy();
f.obliqueCompass = null;
}
return ;
case a.ObliqueNotification:
b[a.ObliqueNotification].detachEvent("onclick", v);
return ;
case a.Traffic:
c.DetachEvent("onchangetraffic", y);
}
var i = b[e];
if (i == null)
return ;
var d = l[e];
if (d.Children != null)
{
var g, h;
for (h in d.Children)
if (d.Children.hasOwnProperty(h))
{
g = d.Children[h];
try
{
i.removeChild(b[g]);
}
catch (j)
{}
C(g);
}
}
if (d.OnClickFunction != null)
i.detachEvent("onclick", d.OnClickFunction);
try
{
if (c && d.StyleUpdateEvent != null && d.StyleUpdateFunction !=
null)
c.DetachEvent(d.StyleUpdateEvent, d.StyleUpdateFunction);
}
catch (j)
{}
b[d.Id] = null;
}
function P()
{
b[a.ObliqueNotification] = document.createElement("div");
b[a.ObliqueNotification].id = a.ObliqueNotification;
b[a.ObliqueNotification].innerHTML += "<div
id=\"MSVE_obliqueNotifyIcon\"> </div> <div
id=\"MSVE_obliqueNotifyText\">" + L_DashboardBirdsEyeText_Text +
"</div>";
b[a.ObliqueNotification].attachEvent("onclick", v);
}
function bb()
{
$VE_A.Log($VE_A.PgName.Map, "MapStyleRoad", $VE_A.PgName.Map);
o();
}
function o()
{
if (h == Msn.VE.DashboardStates.MapStyle.Road && d ==
Msn.VE.DashboardStates.MapView.Ortho)
return ;
h = Msn.VE.DashboardStates.MapStyle.Road;
d = Msn.VE.DashboardStates.MapView.Ortho;
j(e + d + h);
}
function W()
{
$VE_A.Log($VE_A.PgName.Map, "MapStyleAerial", $VE_A.PgName.Map);
cb();
}
function cb()
{
if (h == Msn.VE.DashboardStates.MapStyle.Aerial && d ==
Msn.VE.DashboardStates.MapView.Ortho)
return ;
h = Msn.VE.DashboardStates.MapStyle.Aerial;
d = Msn.VE.DashboardStates.MapView.Ortho;
j(e + d + h);
}
function X()
{
$VE_A.Log($VE_A.PgName.Map, "MapStyleHybrid", $VE_A.PgName.Map);
db();
}
function db()
{
if (h == Msn.VE.DashboardStates.MapStyle.Hybrid && d ==
Msn.VE.DashboardStates.MapView.Ortho)
return ;
h = Msn.VE.DashboardStates.MapStyle.Hybrid;
d = Msn.VE.DashboardStates.MapView.Ortho;
j(e + d + h);
}
function m()
{
if (d == Msn.VE.DashboardStates.MapView.Ortho && e ==
Msn.VE.DashboardStates.MapMode.Flatland)
return ;
d = Msn.VE.DashboardStates.MapView.Ortho;
if (e == Msn.VE.DashboardStates.MapMode.Flatland)
switch (h)
{
case Msn.VE.DashboardStates.MapStyle.Aerial:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Aerial))
j(e + d + h);
else
o();
break ;
case Msn.VE.DashboardStates.MapStyle.Hybrid:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Hybrid))
j(e + d + h);
else
o();
break ;
default:
j(e + d + h);
}
else
j(e + d);
k();
}
function v()
{
if (typeof b[a.ObliqueNotification] != "undefined" &&
b[a.ObliqueNotification])
p();
if (e == Msn.VE.DashboardStates.MapMode.View3D)
f.Oblique3DFunctionality.ObliqueClickFunction();
else
{
if (d == Msn.VE.DashboardStates.MapView.Oblique)
return ;
$VE_A.Log($VE_A.PgName.Map, "MapStyleOblique", $VE_A.PgName.Map);
L();
}
}
function Q()
{
var e = new Date();
if (D != null)
if (e.getTime() - D.getTime() < 1000)
return ;
D = e;
var d = c.Get3DControl();
if (g(b[a.Oblique]).hasClass("MSVE_selected"))
{
ProcessPhotoPluginActionIn3D("PhotosEnabled", "0", d);
c.Set3DPhotoPluginActive(false);
}
else
{
ProcessPhotoPluginActionIn3D("PhotosEnabled", "1", d);
c.Set3DPhotoPluginActive(true);
}
c.UpdateCopyright();
}
function L()
{
d = Msn.VE.DashboardStates.MapView.Oblique;
j(e + d);
t();
}
function S()
{
if (d == Msn.VE.DashboardStates.MapView.StreetSide && e ==
Msn.VE.DashboardStates.MapMode.Flatland)
return ;
d = Msn.VE.DashboardStates.MapView.StreetSide;
j(e + d);
U();
}
function V()
{
$VE_A.Log($VE_A.PgName.Map, "Mode2D", $VE_A.PgName.Map);
c.EnableMode(Msn.VE.MapActionMode.Mode2D);
}
function Z()
{
if (! c.IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
{
$VE_A.Log($VE_A.PgName.Map, "Mode3D", $VE_A.PgName.Map);
if (typeof ShowMessage != "undefined")
{
ShowMessage(L_3DLoading_Text);
window.setTimeout(View3DSwitch, 200);
}
else
c.EnableMode(Msn.VE.MapActionMode.Mode3D);
}
}
function y()
{
if (VE_TrafficManager.turnedOn)
{
g(b[a.Traffic]).addClass("MSVE_selected");
b[a.Traffic].title = L_NavActionHideTrafficToolTip_Text;
}
else
{
g(b[a.Traffic]).removeClass("MSVE_selected");
b[a.Traffic].title = L_NavActionShowTrafficToolTip_Text;
}
}
function jb()
{
if (VE_TrafficManager.turnedOn)
VE_TrafficManager.ClearTraffic();
else
VE_TrafficManager.GetTrafficInfo(true);
}
function ab(c)
{
if (c.state == "1")
{
g(b[a.Oblique]).addClass("MSVE_selected");
$VE_A.Log($VE_A.PgName.Map, "LayerBirdsEyeOn", $VE_A.PgName.Map);
}
else
{
g(b[a.Oblique]).removeClass("MSVE_selected");
$VE_A.Log($VE_A.PgName.Map, "LayerBirdsEyeOff", $VE_A.PgName.Map);
}
}
function q(a)
{
switch (a.view.mapStyle)
{
case "s":
if (e == Msn.VE.DashboardStates.MapMode.Flatland &&
c.IsModeEnabled(Msn.VE.MapActionMode.Mode2D) && d !=
Msn.VE.DashboardStates.MapView.Ortho)
{
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
}
h = Msn.VE.DashboardStates.MapStyle.Shaded;
x();
break ;
case "r":
if (e == Msn.VE.DashboardStates.MapMode.Flatland &&
c.IsModeEnabled(Msn.VE.MapActionMode.Mode2D) && d !=
Msn.VE.DashboardStates.MapView.Ortho)
{
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
}
h = Msn.VE.DashboardStates.MapStyle.Road;
x();
break ;
case "a":
if (e == Msn.VE.DashboardStates.MapMode.Flatland &&
c.IsModeEnabled(Msn.VE.MapActionMode.Mode2D) && d !=
Msn.VE.DashboardStates.MapView.Ortho)
{
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
}
h = Msn.VE.DashboardStates.MapStyle.Aerial;
J();
break ;
case "h":
if (e == Msn.VE.DashboardStates.MapMode.Flatland &&
c.IsModeEnabled(Msn.VE.MapActionMode.Mode2D) && d !=
Msn.VE.DashboardStates.MapView.Ortho)
{
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
}
h = Msn.VE.DashboardStates.MapStyle.Hybrid;
K();
break ;
case "o":
d = Msn.VE.DashboardStates.MapView.Oblique;
t();
}
}
function M(a)
{
if (a == Msn.VE.MapActionMode.Mode3D)
I();
else
H();
}
function I()
{
if (e == Msn.VE.DashboardStates.MapMode.View3D)
return ;
e = Msn.VE.DashboardStates.MapMode.View3D;
if (typeof b[a.Mode] != "undefined" && b[a.Mode] != null)
g(b[a.Mode].classRecipients).swapClass("MSVE_FlatlandMapMode",
"MSVE_View3DMapMode");
i(a.StreetSide, true);
i(a.Road, true);
i(a.Aerial, true);
i(a.Hybrid, true);
if (! f.Oblique3DFunctionality.DependsOnObliqueAvailability)
i(a.Oblique, true);
else
{
if (b[a.ObliqueNotification] != null && b[a.ObliqueNotification].enabled)
s();
k();
}
if (typeof b[a.Ortho] != "undefined" && b[a.Ortho] != null)
b[a.Ortho].title = L_NavAction3DOrthoToolTip_Text;
if (typeof b[a.Oblique] != "undefined" && b[a.Oblique] != null)
if (b[a.Oblique].enabled)
{
b[a.Oblique].title = f.Oblique3DFunctionality.Title;
s();
}
else
b[a.Oblique].title = "";
if (typeof b[a.StreetSide] != "undefined" && b[a.StreetSide] !=
null)
b[a.StreetSide].title = L_NavAction3DStreetSideToolTip_Text;
var h = c.GetDashboard().GetShimmedElements(), d;
for (d = 0;d < h.length;d++)
mvcViewFacade.UpdateShimIfSupported(h[d]);
}
function H()
{
e = Msn.VE.DashboardStates.MapMode.Flatland;
if (typeof b[a.Mode] != "undefined" && b[a.Mode] != null)
g(b[a.Mode].classRecipients).swapClass("MSVE_View3DMapMode",
"MSVE_FlatlandMapMode");
if (typeof b[a.Ortho] != "undefined" && b[a.Ortho] != null)
b[a.Ortho].title = L_NavActionOrthoToolTip_Text;
if (typeof b[a.Oblique] != "undefined" && b[a.Oblique] != null)
b[a.Oblique].title = L_NavActionObliqueToolTip_Text;
g(b[a.Oblique]).removeClass("MSVE_selected");
photoState = 0;
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Road))
i(a.Road, true);
else
i(a.Road, false);
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Aerial))
i(a.Aerial, true);
else
i(a.Aerial, false);
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Hybrid))
i(a.Hybrid, true);
else
i(a.Hybrid, false);
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.BirdsEye))
{
c.GetObliqueAvailability("OnFlatlandModeUpdateUIObliqueReturned", O);
return ;
}
else
{
i(a.Oblique, false);
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
}
switch (d)
{
case Msn.VE.DashboardStates.MapView.Oblique:
if (c.IsObliqueAvailable() &&
$MVEM.IsEnabled(MapControl.Features.MapStyle.BirdsEye))
j(e + d);
else
m();
break ;
case Msn.VE.DashboardStates.MapView.StreetSide:
m();
break ;
case Msn.VE.DashboardStates.MapView.Ortho:
switch (h)
{
case Msn.VE.DashboardStates.MapStyle.Aerial:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Aerial))
j(e + d + h);
else
o();
break ;
case Msn.VE.DashboardStates.MapStyle.Hybrid:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Hybrid))
j(e + d + h);
else
o();
break ;
default:
j(e + d + h);
}
break ;
default:
m();
}
}
function O(b)
{
if (b)
{
i(a.Oblique, true);
if (f.obliqueZoom != null)
f.obliqueZoom.UpdateFromMap();
}
else
{
i(a.Oblique, false);
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
}
switch (d)
{
case Msn.VE.DashboardStates.MapView.Oblique:
if (b && $MVEM.IsEnabled(MapControl.Features.MapStyle.BirdsEye))
j(e + d);
else
m();
break ;
case Msn.VE.DashboardStates.MapView.StreetSide:
m();
break ;
case Msn.VE.DashboardStates.MapView.Ortho:
switch (h)
{
case Msn.VE.DashboardStates.MapStyle.Aerial:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Aerial))
j(e + d + h);
else
o();
break ;
case Msn.VE.DashboardStates.MapStyle.Hybrid:
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.Hybrid))
j(e + d + h);
else
o();
break ;
default:
j(e + d + h);
}
break ;
default:
m();
}
}
function z()
{
if (f.orthoZoom)
f.orthoZoom.UpdateFromMap();
if (f.obliqueZoom)
f.obliqueZoom.UpdateFromMap();
}
function hb()
{
if (c.GetMapStyle() == "o")
d = Msn.VE.DashboardStates.MapView.Oblique;
if (e == Msn.VE.DashboardStates.MapMode.Flatland || e ==
Msn.VE.DashboardStates.MapMode.View3D &&
f.Oblique3DFunctionality.DependsOnObliqueAvailability)
{
i(a.Oblique, true);
if (b[a.ObliqueNotification])
s();
}
}
function ib()
{
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
if (e == Msn.VE.DashboardStates.MapMode.Flatland || e ==
Msn.VE.DashboardStates.MapMode.View3D &&
f.Oblique3DFunctionality.DependsOnObliqueAvailability)
{
i(a.Oblique, false);
p();
}
}
function Y()
{
d = Msn.VE.DashboardStates.MapView.Ortho;
k();
}
function eb()
{
if ($MVEM.IsEnabled(MapControl.Features.MapStyle.BirdsEye))
{
if (d != Msn.VE.DashboardStates.MapView.Oblique)
{
d = Msn.VE.DashboardStates.MapView.Oblique;
i(a.Oblique, true);
t();
}
}
else
{
d = Msn.VE.DashboardStates.MapView.Oblique;
m();
}
if (b[a.ObliqueNotification])
p();
if (typeof f.obliqueCompass != "undefined" && f.obliqueCompass !=
null)
f.obliqueCompass.UpdateFromMap(u);
}
function x()
{
if (typeof b[a.Style] != "undefined" && b[a.Style] != null)
{
var c;
for (c = 0;c < b[a.Style].classRecipients.length;c++)
b[a.Style].classRecipients[c].className = "MSVE_RoadMapStyle";
}
}
function J()
{
if (typeof b[a.Style] != "undefined" && b[a.Style] != null)
{
var c;
for (c = 0;c < b[a.Style].classRecipients.length;c++)
b[a.Style].classRecipients[c].className = "MSVE_AerialMapStyle";
}
}
function K()
{
if (typeof b[a.Style] != "undefined" && b[a.Style] != null)
{
var c;
for (c = 0;c < b[a.Style].classRecipients.length;c++)
b[a.Style].classRecipients[c].className = "MSVE_HybridMapStyle";
}
}
function k()
{
if (typeof b[a.View] != "undefined" && b[a.View] != null)
{
var c = g(b[a.View].classRecipients);
c.removeClass("MSVE_StreetSideView");
c.removeClass("MSVE_ObliqueView");
c.addClass("MSVE_OrthoView");
}
if (b[a.Traffic] != null && e == Msn.VE.DashboardStates.MapMode.Flatland)
{
i(a.Traffic, true);
y();
}
}
function t()
{
if (typeof b[a.View] != "undefined" && b[a.View] != null)
{
var c = g(b[a.View].classRecipients);
c.removeClass("MSVE_StreetSideView");
c.removeClass("MSVE_OrthoView");
c.addClass("MSVE_ObliqueView");
}
if (B)
{
if (f.obliqueCompass == null)
{
f.obliqueCompass = new fb(b[a.ObliqueCompass]);
if (b[a.ObliqueCompass].radius)
f.obliqueCompass.SetRadius(b[a.ObliqueCompass].radius);
f.obliqueCompass.onclick = (function ()
{
u = Msn.VE.BirdsEyeSearchSpinDirection.NoSpin;
}
);
}
f.obliqueCompass.UpdateFromMap();
}
if (N)
{
if (f.obliqueZoom == null)
{
f.obliqueZoom = new gb(b[a.ObliqueZoom]);
f.obliqueZoom.Init();
}
f.obliqueZoom.UpdateFromMap();
}
if (b[a.Traffic] != null && e == Msn.VE.DashboardStates.MapMode.Flatland)
i(a.Traffic, false);
}
function U()
{
if (typeof b[a.View] != "undefined" && b[a.View] != null)
{
var c = g(b[a.View].classRecipients);
c.removeClass("MSVE_OrthoView");
c.removeClass("MSVE_ObliqueView");
c.addClass("MSVE_StreetSideView");
}
}
function s()
{
if (! b[a.ObliqueNotification])
return ;
if (! f.displaying3DNotification)
if (d != Msn.VE.DashboardStates.MapView.Oblique)
{
b[a.ObliqueNotification].style.display = "block";
mvcViewFacade.UpdateShimIfSupported(b[a.ObliqueNotification]);
window.setTimeout(p, 6000);
}
}
function p()
{
b[a.ObliqueNotification].style.display = "none";
mvcViewFacade.UpdateShimIfSupported(b[a.ObliqueNotification]);
}
function i(c,d)
{
if (b[c] == null)
return ;
if (b[c].enabled == d)
return ;
b[c].enabled = d;
var a = l[c];
if (a.InitialClass)
b[c].className = d ? a.InitialClass : a.InitialClass + "_disabled";
if (a.Title)
b[c].title = d ? a.Title : "";
if (a.OnClickFunction)
if (d)
b[c].attachEvent("onclick", a.OnClickFunction);
else
b[c].detachEvent("onclick", a.OnClickFunction);
}
function j(a)
{
var b = false;
if (a & Msn.VE.DashboardStates.MapStyle.Road)
{
c.SetMapStyle("r");
b = true;
}
else
if (a & Msn.VE.DashboardStates.MapStyle.Aerial)
{
c.SetMapStyle("a");
b = true;
}
else
if (a & Msn.VE.DashboardStates.MapStyle.Hybrid)
{
c.SetMapStyle("h");
b = true;
}
if (a & Msn.VE.DashboardStates.MapMode.Flatland)
{
if (a & Msn.VE.DashboardStates.MapView.Oblique && c.GetMapStyle() !=
Msn.VE.MapStyle.Oblique)
c.SetMapStyle("o");
}
else
if (a & Msn.VE.DashboardStates.MapMode.View3D && ! b)
if (a & Msn.VE.DashboardStates.MapView.Ortho)
c.SetTilt(- 90);
else
if (a & Msn.VE.DashboardStates.MapView.Oblique)
c.SetTilt(- 45);
else
if (a & Msn.VE.DashboardStates.MapView.StreetSide)
c.SetTilt(- 25);
}
function ob(a)
{
return b[a];
}
function lb()
{
return b;
}
function mb()
{
return A;
}
function R()
{
return u;
}
function T(a)
{
u = a;
}
var a = F, l = [];
l[a.Style] = {Id : a.Style, InitialClass : null, OnClickFunction : null,
StyleUpdateEvent : null, StyleUpdateFunction : null, Enabled : true, Title : null,
Children : [a.Road, a.Aerial, a.Hybrid], Text : null};
l[a.Road] = {Id : a.Road, InitialClass : "MSVE_MapStyle", OnClickFunction :
bb, StyleUpdateEvent : "onchangemapstyle", StyleUpdateFunction : q, Enabled :
MapControl.Features.MapStyle.Road, Title : L_NavActionRoadToolTip_Text, Children : null,
Text : L_NavActionRoad_Text};
l[a.Aerial] = {Id : a.Aerial, InitialClass : "MSVE_MapStyle", OnClickFunction
: W, StyleUpdateEvent : "onchangemapstyle", StyleUpdateFunction : q, Enabled :
MapControl.Features.MapStyle.Aerial, Title : L_NavActionAerialToolTip_Text, Children :
null, Text : L_NavActionAerial_Text};
l[a.Hybrid] = {Id : a.Hybrid, InitialClass : "MSVE_MapStyle", OnClickFunction
: X, StyleUpdateEvent : "onchangemapstyle", StyleUpdateFunction : q, Enabled :
MapControl.Features.MapStyle.Hybrid, Title : L_NavActionHybridToolTip_Text, Children :
null, Text : L_NavActionHybrid_Text};
l[a.Mode] = {Id : a.Mode, InitialClass : "MSVE_modeCell", OnClickFunction :
null, StyleUpdateEvent : null, StyleUpdateFunction : null, Enabled : true, Title : null,
Children : [a.Mode2D, a.Mode3D], Text : null};
l[a.Mode2D] = {Id : a.Mode2D, InitialClass : "MSVE_MapMode", OnClickFunction :
V, StyleUpdateEvent : "oninitmode", StyleUpdateFunction : M, Enabled : true,
Title : L_NavActionFlatlandToolTip_Text, Children : null, Text :
L_NavActionFlatland_Text};
l[a.Mode3D] = {Id : a.Mode3D, InitialClass : "MSVE_MapMode", OnClickFunction :
Z, StyleUpdateEvent : "oninitmode", StyleUpdateFunction : M, Enabled :
MapControl.Features.MapStyle.View3D, Title : L_NavActionView3DToolTip_Text, Children :
null, Text : L_NavActionView3D_Text};
l[a.View] = {Id : a.View, InitialClass : null, OnClickFunction : null, StyleUpdateEvent
: null, StyleUpdateFunction : null, Enabled : true, Title : null, Children : [a.Ortho,
a.Oblique, a.StreetSide], Text : null};
l[a.Ortho] = {Id : a.Ortho, InitialClass : "MSVE_MapStyle", OnClickFunction :
m, StyleUpdateEvent : "onchangemapstyle", StyleUpdateFunction : q, Enabled :
true, Title : L_NavActionOrthoToolTip_Text, Children : null, Text : null};
l[a.Oblique] = {Id : a.Oblique, InitialClass : "MSVE_MapStyle",
OnClickFunction : v, StyleUpdateEvent : "onchangemapstyle", StyleUpdateFunction
: q, Enabled : false, Title : L_NavActionObliqueToolTip_Text, Children : null, Text :
null};
l[a.StreetSide] = {Id : a.StreetSide, InitialClass : "MSVE_MapStyle",
OnClickFunction : S, StyleUpdateEvent : "onchangemapstyle", StyleUpdateFunction
: q, Enabled : false, Title : L_NavActionStreetSideToolTip_Text, Children : null, Text :
null};
l[a.Traffic] = {Id : a.Traffic, InitialClass : "MSVE_MapStyle",
OnClickFunction : jb, StyleUpdateEvent : null, StyleUpdateFunction : null, Enabled : true,
Title : L_NavActionShowTrafficToolTip_Text, Children : null, Text :
L_NavActionTraffic_Text};
this.ObliqueFunctions = [];
this.ObliqueFunctions.ObliqueImageryIn3D = {ObliqueClickFunction : Q, Title :
L_NavActionShowObliqueToolTip_Text, DependsOnObliqueAvailability : true};
this.ObliqueFunctions.ObliqueTiltIn3D = {ObliqueClickFunction : L, Title :
L_NavAction3DObliqueToolTip_Text, DependsOnObliqueAvailability : false};
var f = this, b = [], e = Msn.VE.DashboardStates.MapMode.Flatland, d =
Msn.VE.DashboardStates.MapView.Ortho, h = Msn.VE.DashboardStates.MapStyle.Road;
this.orthoZoom = null;
var A;
this.obliqueCompass = null;
this.obliqueZoom = null;
this.displaying3DNotification = false;
this.Oblique3DFunctionality = this.ObliqueFunctions.ObliqueImageryIn3D;
var n = document.createElement("div");
n.id = "MSVE_navAction_palette";
document.body.appendChild(n);
var B = false, N, u = Msn.VE.BirdsEyeSearchSpinDirection.NoSpin, G;
for (G in r)
if (r.hasOwnProperty(G))
E(r[G]);
var D = null;
this.SetMapViewState = (function (a)
{
d = a;
}
);
this.GetMapViewState = (function ()
{
return d;
}
);
this.SetMapModeState = (function (a)
{
e = a;
}
);
this.GetMapModeState = (function ()
{
return e;
}
);
this.GetLastRotationDirection = R;
this.SetLastRotationDirection = T;
this.Init = qb;
this.Create = E;
this.Destroy = pb;
this.DestroyControl = C;
this.GetControl = ob;
this.GetControls = lb;
this.GetTinyZoom = mb;
this.OnOrthoMapViewClick = m;
this.OnObliqueMapViewClick = v;
this.UpdateZoom = z;
this.SelectObliqueMapView = t;
this.SelectOrthoMapView = k;
this.DisplayObliqueNotification = s;
this.HideObliqueNotification = p;
}
);
var a = F, b = null, i = null, z = null, c = null, s = null, v = null, w = null, d =
null, m = null, p = null, q = null, h = null, e = null, eb = null, j = null, n = null, o =
null, k = null, l = null, u = null, t = null, Q = ["North", "East",
"South", "West"], O = {North : 0, East : 1, South : 2, West : 3}, y,
x, r, I = 150, E = 0.7, S = 0.9, K = 1;
this.Init = ab;
this.Destroy = X;
this.GetElement = V;
this.GetToggleGlyph = D;
this.GetShimmedElements = P;
this.createRoller = H;
this.GetMode = Y;
this.Show = bb;
this.Hide = Z;
this.Oblique3DToggle = R;
}
);
Msn.VE.LatLong = (function (b,a)
{
this.latitude = b;
this.longitude = a;
}
);
Msn.VE.LatLong.prototype.ToString = (function ()
{
return "(" + this.latitude + ", " + this.longitude + ")";
}
);
Msn.VE.LatLong.prototype.Copy = (function (a)
{
if (! a)
return ;
this.latitude = a.latitude;
this.longitude = a.longitude;
}
);
Msn.VE.LatLong.prototype.Equals = (function (a)
{
if (a instanceof Msn.VE.LatLong)
return this.latitude == a.latitude && this.longitude == a.longitude;
else
return false;
}
);
Msn.VE.LatLongRectangle = (function (a,b)
{
this.northwest = a;
this.southeast = b;
this.ToString = (function ()
{
return "(" + (this.northwest ? this.northwest.ToString() : "null") +
", " + (this.southeast ? this.southeast.ToString() : "null") +
")";
}
);
this.Copy = (function (a)
{
if (! a)
return ;
if (! this.northwest)
this.northwest = new Msn.VE.LatLong();
if (! this.southeast)
this.southeast = new Msn.VE.LatLong();
this.northwest.Copy(a.northwest);
this.southeast.Copy(a.southeast);
}
);
this.Center = (function ()
{
var b = Math.sin(this.northwest.latitude * Math.PI / 180), c =
Math.sin(this.southeast.latitude * Math.PI / 180), d = 0.25 * (Math.log((1 + b) / (1 - b))
+ Math.log((1 + c) / (1 - c))), a = new Msn.VE.LatLong();
a.latitude = Math.atan(Math.exp(d)) * 360 / Math.PI - 90;
a.longitude = 0.5 * (parseFloat(this.northwest.longitude) +
parseFloat(this.southeast.longitude));
return a;
}
);
this.Contains = (function (c)
{
return c.latitude <= a.latitude && c.longitude >= a.longitude &&
c.latitude >= b.latitude && c.longitude <= b.longitude;
}
);
this.ContainsRectangle = (function (a)
{
return a.southeast.latitude >= this.southeast.latitude &&
a.southeast.longitude <= this.southeast.longitude && a.northwest.latitude <=
this.northwest.latitude && a.northwest.longitude >= this.northwest.longitude;
}
);
}
);
Msn.VE.MapStyle = new (function ()
{
this.Road = "r";
this.Shaded = "s";
this.Aerial = "a";
this.Hybrid = "h";
this.Oblique = "o";
}
)();
Msn.VE.MapViewType = (function ()
{
}
);
Msn.VE.MapViewType.Pixel = "pixel";
Msn.VE.MapViewType.PixelRect = "pixelRect";
Msn.VE.MapViewType.LatLong = "latlong";
Msn.VE.MapViewType.LatLongAccurate = "latlongaccurate";
Msn.VE.MapViewType.LatLongRect = "latlongRect";
Msn.VE.MapView = (function (map)
{
function MakeCopy()
{
var a = new Msn.VE.MapView();
a.Copy(p_this);
return a;
}
function Copy(a)
{
p_this.zoomLevel = a.zoomLevel;
p_this.mapStyle = a.mapStyle;
p_this.doRoadShading = a.doRoadShading;
p_this.tilt = a.tilt;
p_this.direction = a.direction;
p_this.altitude = a.altitude;
p_this.center.Copy(a.center);
if (a.cameraLatlong != null)
{
p_this.cameraLatlong = new Msn.VE.LatLong();
p_this.cameraLatlong.Copy(a.cameraLatlong);
}
p_this.latlong.Copy(a.latlong);
p_this.pixelRect.Copy(a.pixelRect);
p_this.latlongRect.Copy(a.latlongRect);
p_this.sceneId = a.sceneId;
p_this.sceneOrientation = a.sceneOrientation;
p_this.SetMap(a.GetMap());
viewType = a.GetViewType();
}
function Equals(a)
{
return a != null && p_this.zoomLevel == a.zoomLevel && p_this.mapStyle
== a.mapStyle && MathAbs(p_this.tilt - a.tilt) < 0.000001 &&
MathAbs(p_this.direction - a.direction) < 0.000001 && MathAbs(p_this.altitude -
a.altitude) < 0.000001 && MathAbs(p_this.center.x - a.center.x) < 0.000001
&& MathAbs(p_this.center.y - a.center.y) < 0.000001 && p_this.sceneId
== a.sceneId && p_this.GetMap() == a.GetMap() && p_this.sceneOrientation
== a.sceneOrientation;
}
function ToString()
{
return "(" + p_this.latlong.ToString() + ", " + p_this.zoomLevel +
", " + p_this.mapStyle + ")";
}
function SetCenter(a)
{
if (! a)
return ;
p_this.center = a;
viewType = Msn.VE.MapViewType.Pixel;
}
function SetCenterLatLong(a)
{
if (! a)
return ;
p_this.latlong = a;
p_this.cameraLatlong = null;
viewType = Msn.VE.MapViewType.LatLong;
}
function SetCenterLatLongAccurate(a)
{
if (a)
{
p_this.latlong = a;
p_this.cameraLatlong = null;
if (p_this.mapStyle == Msn.VE.MapStyle.Oblique)
viewType = Msn.VE.MapViewType.LatLongAccurate;
else
viewType = Msn.VE.MapViewType.LatLong;
}
}
function SetPixelRectangle(a)
{
p_this.pixelRect = a;
p_this.cameraLatlong = null;
p_this.tilt = - 90;
p_this.direction = 0;
viewType = Msn.VE.MapViewType.PixelRect;
}
function SetLatLongRectangle(a)
{
p_this.latlongRect = a;
p_this.cameraLatlong = null;
p_this.tilt = - 90;
p_this.direction = 0;
viewType = Msn.VE.MapViewType.LatLongRect;
}
function SetZoomLevel(a)
{
if (a <= 0)
a = 1;
var c = (mapInstance.GetCenterOffset()).x, d = (mapInstance.GetCenterOffset()).y;
switch (viewType)
{
case Msn.VE.MapViewType.Pixel:
var b = Math.pow(2, a - p_this.zoomLevel);
p_this.center.x = (p_this.center.x + c) * b - c;
p_this.center.y = (p_this.center.y + d) * b - d;
break ;
case Msn.VE.MapViewType.PixelRect:
var b = Math.pow(2, a - p_this.zoomLevel);
p_this.pixelRect.topLeft.x = p_this.pixelRect.topLeft.x * b;
p_this.pixelRect.topLeft.y = p_this.pixelRect.topLeft.y * b;
p_this.pixelRect.bottomRight.x = p_this.pixelRect.bottomRight.x * b;
p_this.pixelRect.bottomRight.y = p_this.pixelRect.bottomRight.y * b;
}
if (p_this.zoomLevel != a)
{
p_this.altitude = - 1000;
if (p_this.zoomLevel != 0)
p_this.cameraLatlong = null;
}
p_this.zoomLevel = a;
}
function SetMapStyle(a,b,c,d)
{
p_this.mapStyle = a;
if (viewType == Msn.VE.MapViewType.Pixel)
viewType = Msn.VE.MapViewType.LatLong;
if (a != "o")
{
p_this.sceneId = null;
p_this.sceneOrientation = null;
p_this.bySceneId = false;
}
else
{
p_this.sceneId = b;
p_this.sceneOrientation = c;
p_this.spinDirection = d;
if (b)
p_this.bySceneId = true;
else
p_this.bySceneId = false;
}
}
function SetTilt(a)
{
if (a >= 269.99999)
a = a - 360;
if (a < - 90)
a = - 90;
if (a > 90)
a = 90;
p_this.tilt = a;
p_this._needsPivotOperation = true;
}
function SetDirection(a)
{
if (a < 0 || a >= 360)
a = 0;
p_this.direction = a;
p_this._needsPivotOperation = true;
}
function SetAltitude(a)
{
if (a < - 1000 || a > 15000000)
a = - 1000;
p_this.altitude = a;
}
function GetTilt()
{
return p_this.tilt;
}
function GetDirection()
{
return p_this.direction;
}
function GetAltitude()
{
return p_this.altitude;
}
function ScaleCoord(a,b)
{
if (b)
a = a * Math.pow(2, b - p_this.zoomLevel);
return a;
}
function GetX(a)
{
return ScaleCoord(p_this.center.x, a);
}
function GetY(a)
{
return ScaleCoord(p_this.center.y, a);
}
function GetCenter(a)
{
var b = ScaleCoord(p_this.center.x + (mapInstance.GetCenterOffset()).x, a), c =
ScaleCoord(p_this.center.y + (mapInstance.GetCenterOffset()).y, a);
return new VEPixel(b, c);
}
function GetZoomLevel()
{
return p_this.zoomLevel;
}
function GetLatLongRectangle()
{
return p_this.latlongRect;
}
function GetPixelRectangle()
{
return p_this.pixelRect;
}
function GetCenterLatLong()
{
var b = p_this.center.x + (mapInstance.GetCenterOffset()).x, c = p_this.center.y +
(mapInstance.GetCenterOffset()).y, a = mapInstance.GetCurrentMode().PixelToLatLong(new
VEPixel(b, c), p_this.zoomLevel);
return a == null ? p_this.latlong : a;
}
function Resolve(b,d,c,a)
{
if (viewType == Msn.VE.MapViewType.LatLongAccurate)
ResolveAsync(b, d, c, a);
else
ResolveSync(b, d, c, a);
}
function ResolveAsync(b,e,d,a)
{
function c(c)
{
if (c != null && typeof c != "undefined" && c.length ==
1)
p_this.center = c[0];
if (p_this.cameraLatlong == null)
if (! p_this._UpdateCamera(b))
{
p_this.tilt = - 90;
p_this.cameraLatlong = p_this.latlong;
}
viewType = Msn.VE.MapViewType.Pixel;
if (a != null && typeof a == "function")
a();
}
b.LatLongToPixelAsync([p_this.latlong], p_this.zoomLevel, c);
}
function ResolveSync(a,d,c,b)
{
switch (viewType)
{
case Msn.VE.MapViewType.Pixel:
p_this.latlong = a.PixelToLatLong(p_this.center, p_this.zoomLevel);
break ;
case Msn.VE.MapViewType.LatLong:
p_this.center = a.LatLongToPixel(p_this.latlong, p_this.zoomLevel);
if (p_this.center != null)
{
p_this.center.x -= (mapInstance.GetCenterOffset()).x;
p_this.center.y -= (mapInstance.GetCenterOffset()).y;
}
break ;
case Msn.VE.MapViewType.PixelRect:
ResolveRectangle(a, d, c);
break ;
case Msn.VE.MapViewType.LatLongRect:
if (p_this.mapStyle == "o")
{
p_this.zoomLevel = 1;
var e = a.GetScene();
if (! e.ContainsLatLong(p_this.latlongRect.northwest) || !
e.ContainsLatLong(p_this.latlongRect.southeast))
{
p_this.latlong = p_this.latlongRect.Center();
p_this.center = a.LatLongToPixel(p_this.latlong, p_this.zoomLevel);
}
else
{
p_this.pixelRect.topLeft = a.LatLongToPixel(p_this.latlongRect.northwest,
p_this.zoomLevel);
p_this.pixelRect.bottomRight =
a.LatLongToPixel(p_this.latlongRect.southeast, p_this.zoomLevel);
ResolveRectangle(a, d, c);
}
}
else
{
p_this.zoomLevel = 12;
p_this.altitude = - 1000;
p_this.pixelRect.topLeft = a.LatLongToPixel(p_this.latlongRect.northwest,
p_this.zoomLevel);
p_this.pixelRect.bottomRight = a.LatLongToPixel(p_this.latlongRect.southeast,
p_this.zoomLevel);
ResolveRectangle(a, d, c);
}
}
if (p_this.cameraLatlong == null)
if (! p_this._UpdateCamera(a))
{
p_this.tilt = - 90;
p_this.cameraLatlong = p_this.latlong;
}
viewType = Msn.VE.MapViewType.Pixel;
if (b != null && typeof b == "function")
b();
}
function ResolveRectangle(i,k,j)
{
var c = 19, a = Math.pow(2, c - p_this.zoomLevel), g = MathMax(1,
MathAbs(p_this.pixelRect.topLeft.x - p_this.pixelRect.bottomRight.x) * a), f = MathMax(1,
MathAbs(p_this.pixelRect.topLeft.y - p_this.pixelRect.bottomRight.y) * a), d =
Math.log(2), e = c - Math.ceil(Math.log(g / k) / d), h = c - Math.ceil(Math.log(f / j) /
d), b = MathMin(e, h);
if (b <= 0)
b = 1;
a = Math.pow(2, b - p_this.zoomLevel);
p_this.center.x = 0.5 * (p_this.pixelRect.topLeft.x + p_this.pixelRect.bottomRight.x)
* a - (mapInstance.GetCenterOffset()).x;
p_this.center.y = 0.5 * (p_this.pixelRect.topLeft.y + p_this.pixelRect.bottomRight.y)
* a - (mapInstance.GetCenterOffset()).y;
p_this.zoomLevel = b;
p_this.altitude = - 1000;
p_this.latlong = i.PixelToLatLong(p_this.center, p_this.zoomLevel);
}
function _UpdateCamera(viewMode)
{
if (p_this.latlong == null)
if (p_this.center != null && p_this.zoomLevel != null && typeof
viewMode._InternalOrthoMode == "function")
{
var orthoMode = viewMode._InternalOrthoMode();
p_this.latlong = orthoMode.PixelToLatLong(p_this.center, p_this.zoomLevel);
if (p_this.latlong != null)
{
p_this.tilt = - 90;
p_this.direction = 0;
}
}
if (p_this.latlong == null)
return false;
p_this._needsPivotOperation = false;
if (mapInstance.IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
{
var control = mapInstance.Get3DControl();
if (control != null)
{
var cam = control.CameraPositionGivenTarget(p_this.latlong.latitude,
p_this.latlong.longitude, p_this.altitude, p_this.zoomLevel, p_this.tilt,
p_this.direction);
if (cam != null)
{
var lat, lon, alt;
eval(cam);
p_this.cameraLatlong = new Msn.VE.LatLong();
p_this.cameraLatlong.latitude = lat;
p_this.cameraLatlong.longitude = lon;
p_this.altitude = alt;
}
else
return false;
}
}
return true;
}
this.zoomLevel = 0;
this.mapStyle = null;
this.doRoadShading = false;
this.tilt = - 90;
this.direction = 0;
this.altitude = - 1000;
this.center = new VEPixel();
this.latlong = new Msn.VE.LatLong();
this.cameraLatlong = null;
this.pixelRect = new Msn.VE.PixelRectangle();
this.latlongRect = new Msn.VE.LatLongRectangle();
this.sceneId = null;
this.sceneOrientation = null;
this.bySceneId = false;
this.callback = null;
this._supressFlyToCall = false;
this._needsPivotOperation = true;
var mapInstance = map, p_this = this, viewType = Msn.VE.MapViewType.Pixel;
this.Destroy = (function ()
{
this.center = this.latlong = p_this = mapInstance = null;
}
);
this.GetViewType = (function ()
{
return viewType;
}
);
this.GetMap = (function ()
{
return mapInstance;
}
);
this.SetMap = (function (a)
{
mapInstance = a;
}
);
this.MakeCopy = MakeCopy;
this.Copy = Copy;
this.Equals = Equals;
this.ToString = ToString;
this.SetCenter = SetCenter;
this.SetCenterLatLong = SetCenterLatLong;
this.SetCenterLatLongAccurate = SetCenterLatLongAccurate;
this.SetPixelRectangle = SetPixelRectangle;
this.SetLatLongRectangle = SetLatLongRectangle;
this.SetZoomLevel = SetZoomLevel;
this.SetMapStyle = SetMapStyle;
this.SetTilt = SetTilt;
this.SetDirection = SetDirection;
this.SetAltitude = SetAltitude;
this.GetTilt = GetTilt;
this.GetDirection = GetDirection;
this.GetAltitude = GetAltitude;
this.ScaleCoord = ScaleCoord;
this.GetX = GetX;
this.GetY = GetY;
this.GetCenter = GetCenter;
this.Resolve = Resolve;
this.SetZoomLevel = SetZoomLevel;
this.GetZoomLevel = GetZoomLevel;
this.GetLatLongRectangle = GetLatLongRectangle;
this.GetPixelRectangle = GetPixelRectangle;
this.GetCenterLatLong = GetCenterLatLong;
this._UpdateCamera = _UpdateCamera;
}
);
Msn.VE.ViewChangeType = (function ()
{
}
);
Msn.VE.ViewChangeType.Zoom = 1;
Msn.VE.ViewChangeType.Pan = 2;
Msn.VE.ViewChangeType.Hybrid = 3;
Msn.VE.ViewChangeType.IsValid = (function (a)
{
return typeof a == "number" && a > 0 && a < 4;
}
);
Msn.VE.ObliqueScene = (function (e,F,A,C,E,J,c,g,t,s)
{
function z(d,e)
{
var c = Math.pow(2, e - 2), f = [[d.x / c], [d.y / c], [1]], a = MatrixMultiply(t, f),
b = new Msn.VE.LatLong();
b.longitude = a[0][0] / a[2][0];
b.latitude = a[1][0] / a[2][0];
return b;
}
function v(g,l,m)
{
if (a != null && typeof a != "undefined" && a.length >
0)
{
var i = Math.pow(2, l - 2), h = [];
for (var f = 0;f < g.length;++f)
h[f] = parseInt(g[f].x / i) + "," + parseInt(g[f].y / i);
var j = new VENetwork();
j.ServiceUrl = a;
var c = [];
if (b)
c.push(new VEParameter(Msn.VE.API.Constants.clienttoken, b));
if (d)
c.push(new VEParameter("mapguid", d));
c.push(new VEParameter("a", "P2L"));
c.push(new VEParameter("b", h.join(";")));
c.push(new VEParameter("s", e));
c.push(new VEParameter("f",
"__PixelToLatLongAsyncResponse"));
var k = (function (b)
{
var c = null;
if (b != null && (b.err == null || typeof b.err == "undefined"))
{
c = [];
for (var a = 0;a < b.length;++a)
if (b[a] != null)
if (Msn.VE.API != null)
{
var e = new VELatLong();
e._reserved = b[a];
c[a] = e;
}
else
{
var d = p.Decode(b[a]);
c[a] = new Msn.VE.LatLong(d[0], d[1]);
}
else
c[a] = null;
}
m(c);
}
);
j.BeginInvoke("__PixelToLatLongAsyncResponse", c, k, q);
}
}
function i(d,e)
{
var c = Math.pow(2, e - 2), f = [[d.longitude], [d.latitude], [1]], a =
MatrixMultiply(s, f), b = new VEPixel();
b.x = a[0][0] / a[2][0] * c;
b.y = a[1][0] / a[2][0] * c;
return b;
}
function u(i,k,l)
{
var g = [];
for (var f = 0;f < i.length;++f)
g[f] = p.Encode(i[f].latitude, i[f].longitude);
var c = [];
if (Msn.VE.API == null)
{
c.push(new VEParameter("a", "L2P"));
c.push(new VEParameter("b", g.join("")));
c.push(new VEParameter("s", e));
c.push(new VEParameter("f",
"__LatLongToPixelAsyncResponse"));
}
else
{
if (b)
c.push(new VEParameter(Msn.VE.API.Constants.clienttoken, b));
if (d)
c.push(new VEParameter("mapguid", d));
c.push(new VEParameter("locations", "\"" +
g.join("") + "\""));
c.push(new VEParameter("sceneId", e));
c.push(new VEParameter("encodingLength", 6));
}
if (Msn.VE.API != null)
{
var j = (function (d)
{
if (h)
h.__HandleAuthentication(d);
var c = null;
if (d != null && d.Pixels != null)
{
var e = Math.pow(2, k - 2);
c = [];
var b = d.Pixels;
for (var a = 0;a < b.length;++a)
if (b[a] != null && b[a].X != null && typeof b[a].X !=
"undefined" && b[a].Y != null && typeof b[a].Y !=
"undefined")
c[a] = new VEPixel(b[a].X * e, b[a].Y * e);
else
c[a] = null;
}
l(c);
}
);
VEAPIRequestInvoke(m, c, j);
}
else
{
var j = (function (a)
{
var c = null;
if (a != null && (a.err == null || typeof a.err == "undefined"))
{
var d = Math.pow(2, k - 2);
c = [];
for (var b = 0;b < a.length;++b)
if (a[b] != null && a[b].x != null && typeof a[b].x !=
"undefined" && a[b].y != null && typeof a[b].y !=
"undefined")
c[b] = new VEPixel(a[b].x * d, a[b].y * d);
else
c[b] = null;
}
l(c);
}
), n = new VENetwork();
n.ServiceUrl = a;
n.BeginInvoke("__LatLongToPixelAsyncResponse", c, j, q);
}
}
function B(a,b,d)
{
if (a < 0 || b < 0)
return false;
if (d == 1)
return a < c / 2 && b < g / 2;
return a < c && b < g;
}
function H()
{
return e;
}
function x(e,g,a)
{
var b = g * (a == 1 ? c / 2 : c) + e, d = Msn.VE.API ?
Msn.VE.API.Constants.obliquetileserver + f :
"%0t%3.tiles.virtualearth.net/tiles/o%4-%5-%6-%7.jpeg?g=%8";
return d.replace(/%3/g, b % 4).replace(/%4/g, F).replace(/%5/g, A).replace(/%6/g, E +
a - 2).replace(/%7/g, b).replace(/%8/g, k);
}
function r()
{
var a = Msn.VE.API ? Msn.VE.API.Constants.obliquethumbnailtileserver + f :
"%0t%1.tiles.virtualearth.net/tiles/ot%2.jpeg?g=%3";
return a.replace(/%1/g, e % 4).replace(/%2/g, e).replace(/%3/g, k);
}
function y()
{
return C;
}
function D()
{
return G;
}
function n()
{
return c * o;
}
function l()
{
return g * o;
}
function w(a)
{
if (! a)
return false;
var b = i(a, 2);
return j(b, 2);
}
function j(b,e)
{
var a = Math.pow(2, 2 - e), c = b.x * a, d = b.y * a;
return c >= 0 && d >= 0 && c < n() && d < l();
}
var b = null, f = "", d = null, h = null, k = "117", a = null, I =
null, m = null;
if (Msn.VE.API == null)
a = "%0dev.virtualearth.net/legacyService/ElevatedLoc.ashx";
else
{
m = Msn.VE.API.Constants.imageryurl + "/ConvertLatLongToPixelInBirdsEye";
a = "%0dev.virtualearth.net/legacyService/ElevatedLoc.ashx";
}
var p = new _xz1(), o = 256, q = this, G = new Msn.VE.Bounds(1, 2, 0, 0, c / 2, g / 2);
this.SetClientToken = (function (a)
{
b = a;
if (f)
f = "&" + Msn.VE.API.Constants.clienttoken + "=" + b;
else
f = "";
}
);
this.SetGUID = (function (a)
{
d = a;
if (typeof VEMap != "undefined")
h = VEMap._GetMapFromGUID(d);
}
);
this.PixelToLatLong = z;
this.PixelToLatLongAsync = v;
this.LatLongToPixel = i;
this.LatLongToPixelAsync = u;
this.IsValidTile = B;
this.GetID = H;
this.GetTileFilename = x;
this.GetThumbnailFilename = r;
this.GetOrientation = y;
this.GetBounds = D;
this.GetWidth = n;
this.GetHeight = l;
this.ContainsLatLong = w;
this.ContainsPixel = j;
}
);
Msn.VE.Orientation = new (function ()
{
this.North = "North";
this.East = "East";
this.West = "West";
this.South = "South";
}
)();
VEPixel = (function (a,b)
{
this.x = parseFloat(a);
this.y = parseFloat(b);
}
);
VEPixel.prototype.ToString = (function ()
{
return "(" + this.x + ", " + this.y + ")";
}
);
VEPixel.prototype.Copy = (function (a)
{
if (! a)
return ;
this.x = a.x;
this.y = a.y;
}
);
Msn.VE.PixelRectangle = (function (b,a)
{
this.topLeft = b;
this.bottomRight = a;
this.ToString = (function ()
{
return "(" + (this.topLeft ? this.topLeft.ToString() : "null") +
", " + (this.bottomRight ? this.bottomRight.ToString() : "null") +
")";
}
);
this.Copy = (function (a)
{
if (! a)
return ;
if (! this.topLeft)
this.topLeft = new VEPixel();
if (! this.bottomRight)
this.bottomRight = new VEPixel();
this.topLeft.Copy(a.topLeft);
this.bottomRight.Copy(a.bottomRight);
}
);
this.Contains = (function (a)
{
if (a instanceof VEPixel)
return a.x > this.topLeft.x && a.y > this.topLeft.y && a.x <
this.bottomRight.x && a.y < this.bottomRight.y;
}
);
}
);
Msn.VE.LineRegion = (function (b,a,c)
{
function d()
{
return "Bounding Rectangle: " + this.boundingRectangle[0].ToString() +
" to " + this.boundingRectangle[1].ToString() + " | Indices: [" + a +
"]";
}
this.boundingRectangle = b;
this.indices = a;
this.childRegions = c;
this.ToString = d;
}
);
var L_integerencodingoutofrange_text = "VEIntegerEncoding: The number encoded is out
of supported range", L_floatintegermapencodingoutofrange_text =
"VEFloatIntegerMap: The number encoded is out of supported range",
L_integerencodinginvalidstringlength_text = "VEIntegerEncoding: Invalid string
length", L_integerencodingunknowndigit_text = "VEIntegerEncoding: The encoded
string has an unknown digit";
var L_velatlongencodinginvalidstringlength_text = "_xz1: Invalid string
length";
var Shims = ["help", "msve_ScratchPad", "VE_MessageControl",
"contextMenu", "MSVE_dashboardId"], vedomain =
"http://dev.virtualearth.net/mapcontrol/v6", sceneParam = "Yes";
var UseClipToSize = window.navigator.userAgent.indexOf("Firefox") >= 0;
var __shapeIdBeingDragged = null;
VE_ModelActionType = {CreateModel : "CreateModel", AddModel :
"AssociateModel", DeleteModel : "DissociateModel", MoveModel :
"MoveModel", RotateModel : "RotateModel", ElevateModel :
"ElevateModel", EditModel : "EditModel"};
VE_ModelWhereType = {Scratchpad : "scratchpad", Taskbar : "taskbar",
ContextMenu : "contextmenu", CV : "cv"};
Msn.VE.FFSentinel = (function (a)
{
this.CurrentVersion = a;
}
);
var _VEHtmlToImgUrlHash = [];
VE_3DPlugin = {MovieRecorderGuid : "791BC97B-7526-4C74-85DB-8CC220E3A65E",
PhotoGuid : "B1FC67C1-F8CE-4CA5-A957-B5FF2215037B", PhotoManifest :
GetManifestUrl("http://go.microsoft.com/fwlink/?LinkID=99342"), PhotoUrl :
"http://go.microsoft.com/fwlink/?LinkID=98905", GeoCommunityGuid :
"49D0BC0C-67A7-44CD-93BA-C7CF6F20EAB9", GeoCommunityManifest :
GetManifestUrl("http://go.microsoft.com/fwlink/?LinkID=99343"), GeoCommunityUrl
: "http://go.microsoft.com/fwlink/?LinkID=98904"};
var VE_3DPhotoPluginObj = 0, VE_3DGeoCommunityPluginObj = 0, PluginEventRegistered = 0,
PhotoPluginEventRegistered = 0, GeoCommunityPluginEventRegistered = 0;
var __vemapcontrolisReady = true;
if (! window.__DEP_COL_HASH)
var CompatVersion = "";
if (typeof VEAPI_DisableAtlasCompat == "undefined" || !
VEAPI_DisableAtlasCompat)
_VERegisterNamespaces("Web.Browser", "Web.Debug.Performance");
if (! Web.Debug.Enabled)
Web.Browser.isSafari = (function ()
{
return navigator.userAgent.indexOf("KHTML") !== - 1;
}
);
Web.Browser.AttachSafariCompatibility = (function (e)
{
function a(a)
{
window.event = a;
}
function d(c,d,e)
{
var b = d.slice(2);
if (b !== "mouseenter" && b !== "mouseleave")
c.addEventListener(b, a, true);
else
{
c.addEventListener("mouseover", a, true);
c.addEventListener("mouseout", a, true);
}
c.addEventListener(b, e, false);
}
function c(d,b,c)
{
var a = b.slice(2);
if (b === "mousewheel")
a = "DOMMouseScroll";
d.removeEventListener(a, c, false);
}
function b(b)
{
var a, c = "";
for (a in b)
c += a + " = " + b[a] + "\n";
return c;
}
e.CollectGarbage = (function ()
{
}
);
Web.Browser.Button = {LEFT : 0, RIGHT : 2, MIDDLE : 1};
Object.prototype.attachEvent = (function (a,b)
{
if (a === "onmousewheel")
a = "onmousewheel";
if (a === "onclick")
a = "onmouseup";
d(this, a, b);
}
);
Object.prototype.detachEvent = (function (a,b)
{
if (a === "onclick")
a = "onmouseup";
c(this, a, b);
}
);
Object.prototype.isPrototypeOf = (function (a)
{
var c = b(a.constructor), d = b(this.constructor);
return c === d;
}
);
}
);
if (Web.Browser.isSafari())
var windowWidth = 0, windowHeight = 0, scrollbarWidth = null;
_VERegisterNamespaces("Msn.VE.API.Globals");
_VERegisterNamespaces("Msn.VE.API.Constants");
Msn.VE.API.Globals.vemapinstances = null;
Msn.VE.API.Globals.veonbegininvokeevent = null;
Msn.VE.API.Globals.veonendinvokeevent = null;
Msn.VE.API.Globals.vefindresultsnpanel = null;
Msn.VE.API.Globals.language = "en";
Msn.VE.API.Globals.locale = "en-us";
Msn.VE.API.Globals.vecurrentversion = "1.0.20070926140324.39";
Msn.VE.API.Globals.ishttpsenabled = false;
Msn.VE.API.Globals.protocol = Msn.VE.API.Globals.ishttpsenabled ? "https://" :
"http://";
Msn.VE.API.Globals.vecurrentdomain =
"http://dev.virtualearth.net/mapcontrol/v6";
Msn.VE.API.Globals.veanalyticsenabled = "__analyticsenabled__";
Msn.VE.API.Globals.veomnitureaccount = "__omnitureaccount__";
Msn.VE.API.Globals.vedebug = false;
Msn.VE.API.Globals.analyticsInitialized = false;
var VE_MapDispatch_SymbolLib = null;
Msn.VE.API.Constants.orthotileserver =
"%0t%2.tiles.virtualearth.net/tiles/%3%4.%5?g=%6".replace(/%0/g,
Msn.VE.API.Globals.protocol);
Msn.VE.API.Constants.obliquetileserver =
"%0t%3.tiles.virtualearth.net/tiles/o%4-%5-%6-%7.jpeg?g=%8".replace(/%0/g,
Msn.VE.API.Globals.protocol);
Msn.VE.API.Constants.obliquethumbnailtileserver =
"%0t%1.tiles.virtualearth.net/tiles/ot%2.jpeg?g=%3".replace(/%0/g,
Msn.VE.API.Globals.protocol);
Msn.VE.API.Constants.shadedtileserver =
"%0t%2.tiles.virtualearth.net/tiles/%3%4.%5?g=%6&shading=hill".replace(/%0/g,
Msn.VE.API.Globals.protocol);
Msn.VE.API.Constants.traffictileserver =
"%0t%2.tiles.virtualearth.net/tiles/t%4".replace(/%0/g,
Msn.VE.API.Globals.protocol);
Msn.VE.API.Constants.imageryurl =
"%0dev.virtualearth.net/services/v1/ImageryMetadataService/ImageryMetadataService.asmx".replace(/%0/g,
Msn.VE.API.Globals.protocol);
Msn.VE.API.Constants.collectionservice =
"%0maps.live.com/GeoCommunity.aspx".replace(/%0/g,
Msn.VE.API.Globals.protocol);
Msn.VE.API.Constants.searchservice =
"%0dev.virtualearth.net/legacyService/search.ashx".replace(/%0/g,
Msn.VE.API.Globals.protocol);
Msn.VE.API.Constants.legacyrouteservice =
"%0dev.virtualearth.net/legacyService/directions.ashx".replace(/%0/g,
Msn.VE.API.Globals.protocol);
Msn.VE.API.Constants.routeservice =
"%0dev.virtualearth.net/services/v1/RouteService/RouteService.asmx".replace(/%0/g,
Msn.VE.API.Globals.protocol);
Msn.VE.API.Constants.obliquecalcservice =
"%0dev.virtualearth.net/legacyService/ElevatedLoc.ashx".replace(/%0/g,
Msn.VE.API.Globals.protocol);
Msn.VE.API.Constants.geocodingservice =
"%0dev.virtualearth.net/services/v1/geocodeservice/geocodeservice.asmx".replace(/%0/g,
Msn.VE.API.Globals.protocol);
Msn.VE.API.Constants.iconurl = Msn.VE.API.Globals.vecurrentdomain + "/i/bin/" +
Msn.VE.API.Globals.vecurrentversion + "/pins/poi_usergenerated.gif";
Msn.VE.API.Constants.atlascompatjs = Msn.VE.API.Globals.vecurrentdomain +
"/js/atlascompat.js";
Msn.VE.API.Constants.stylesheet = Msn.VE.API.Globals.vecurrentdomain +
"/css/bin/" + Msn.VE.API.Globals.vecurrentversion + "/" +
Msn.VE.API.Globals.language + "/mapcontrol.css";
Msn.VE.API.Constants.stylesheetiev6 = Msn.VE.API.Globals.vecurrentdomain +
"/css/bin/" + Msn.VE.API.Globals.vecurrentversion + "/" +
Msn.VE.API.Globals.language + "/mapcontroliev6.css";
Msn.VE.API.Constants.vedirectionsstarticon = Msn.VE.API.Globals.vecurrentdomain +
"/i/bin/" + Msn.VE.API.Globals.vecurrentversion +
"/pins/mapicon_start.gif";
Msn.VE.API.Constants.vedirectionsendicon = Msn.VE.API.Globals.vecurrentdomain +
"/i/bin/" + Msn.VE.API.Globals.vecurrentversion +
"/pins/mapicon_end.gif";
Msn.VE.API.Constants.vedirectionsstepicon = Msn.VE.API.Globals.vecurrentdomain +
"/i/bin/" + Msn.VE.API.Globals.vecurrentversion +
"/pins/RedCircle%1.gif";
Msn.VE.API.Constants.trafficiconurl = Msn.VE.API.Globals.vecurrentdomain +
"/i/bin/" + Msn.VE.API.Globals.vecurrentversion +
"/Traffic/Traffic%1.gif";
Msn.VE.API.Constants.spacerurl = Msn.VE.API.Globals.vecurrentdomain + "/i/bin/"
+ Msn.VE.API.Globals.vecurrentversion + "/spacer.gif";
Msn.VE.API.Constants.mapguid = "mapguid";
Msn.VE.API.Constants.rim = "rim";
Msn.VE.API.Constants.rimargs = "rimargs";
Msn.VE.API.Constants.contextid = "contextid";
Msn.VE.API.Constants.clienttoken = "token";
Msn.VE.API.Constants.market = "mkt";
Msn.VE.API.Constants.culture = "culture";
Msn.VE.API.Constants.format = "format";
Msn.VE.API.Constants.json = "json";
Msn.VE.API.Constants.requestid = "rid";
Msn.VE.API.Globals.vemapmode = Msn.VE.MapActionMode.Mode2D;
Msn.VE.API.Globals.vemapheight = 400;
Msn.VE.API.Globals.vemapwidth = 600;
Msn.VE.API.Globals.vemapzoom = 4;
Msn.VE.API.Globals.vemaplatitude = 43.75;
Msn.VE.API.Globals.vemaplongitude = - 99.71;
Msn.VE.API.Globals.vemapstyle = "r";
Msn.VE.API.Globals.vemaxzoom = 26;
Msn.VE.API.Globals.vetilesize = 256;
Msn.VE.API.Globals.vepushpinpanelzIndex = 999;
Msn.VE.API.Globals.veshapeiconzindex = 1000;
Msn.VE.API.Globals.veshapepolyshapezindex = 50;
Msn.VE.API.Globals.vetilelayerdefaultzindex = 2;
Msn.VE.API.Globals.vemessagepanelheight = 75;
Msn.VE.API.Globals.vemessagepanelzIndex = 99;
Msn.VE.API.Globals.veplacelistpanelheight = 200;
Msn.VE.API.Globals.veplacelistpanelwidth = 350;
Msn.VE.API.Globals.veplacelistpanelzIndex = 300;
Msn.VE.API.Globals.vefindresultsnpanelwidth = 200;
Msn.VE.API.Globals.vefindresultsnpanelzIndex = 99;
Msn.VE.API.Globals.vefindresultsnpanelcolor = "blue";
Msn.VE.API.Globals.veiscommercialcontrol = false;
Msn.VE.API.Globals.veobliqueMode = null;
Msn.VE.API.Constants.maxasynlatlongs = 50;
Msn.VE.API.Globals.vefindnumresultsdefault = 10;
Msn.VE.API.Globals.vefindnumresultsmin = 1;
Msn.VE.API.Globals.vefindnumresultsmax = 20;
Msn.VE.API.Globals.Dispose = (function ()
{
Msn.VE.API.Globals.veonbegininvokeevent = null;
Msn.VE.API.Globals.veonendinvokeevent = null;
Msn.VE.API.Globals.vefindresultsnpanel = null;
}
);
Msn.VE.API.Globals.PosX = (function (a)
{
var b = 0;
if (! a)
var a = window.event;
if (a.pageX)
b = a.pageX;
else
if (a.clientX)
b = a.clientX + document.body.scrollLeft;
return b;
}
);
Msn.VE.API.Globals.PosY = (function (a)
{
var b = 0;
if (! a)
var a = window.event;
if (a.pageY)
b = a.pageY;
else
if (a.clientY)
b = a.clientY + document.body.scrollTop;
return b;
}
);
_VERegisterNamespaces("Msn.VE.Constants.Css");
var MSVE_header = (document.getElementsByTagName("body"))[0], VE_ContextMenu =
null;
s_account = Msn.VE.API.Globals.veomnitureaccount;
var Gimme = {};
(function ()
{
function c()
{
this.id = null;
this.tag = null;
this.classes = [];
this.attributes = [];
this.pseudos = [];
this.isEmpty = true;
}
function o(j)
{
var a = 0, e = [".#[:", ".[:", ".#[:", "]",
".#[:"], k = " >~+", b = "", d = e[a], h = [], f = new
c(), g, i, l = j.length;
for (i = 0;i < l;i++)
{
g = j.charAt(i);
if (d.indexOf(g) !== - 1)
{
if (b !== "")
{
f.addPart(b, a);
b = "";
}
switch (g)
{
case "#":
d = e[(a = 1)];
continue ;
case ".":
d = e[(a = 2)];
continue ;
case "[":
d = e[(a = 3)];
continue ;
case "]":
d = e[(a = 0)];
continue ;
case ":":
d = e[(a = 4)];
continue ;
}
}
else
if (a !== 3 && k.indexOf(g) !== - 1)
{
h.push(f.addPart(b, a));
h.push(g);
b = "";
f = new c();
d = e[(a = 0)];
}
else
b += g;
}
if (b !== "")
f.addPart(b, a);
if (! f.isEmpty)
h.push(f);
return h;
}
function p(c,n)
{
var o = n || document, l = c.id, b = c.tag, i = c.classes, h = c.attributes, j =
c.pseudos, f, e = [], g, d, k;
if (l)
{
f = $ID(l);
return a(f, null, b, i, h, j) ? [f] : [];
}
else
{
b = b || "*";
g = o.getElementsByTagName(b);
k = g.length;
for (d = 0;d < k;d++)
e[d] = g[d];
m(e, b === "*" ? null : b, i, h, j);
return e;
}
}
function m(c,j,g,e,h)
{
var a, b = 0, k = c.length;
while (b < k)
{
a = c[b];
if (e.length > 0 && ! f(a, e) || j & a.tagName !== j || g.length
> 0 && ! d(a, g) || h.length > 0 && ! i(a, h))
{
c.splice(b, 1);
k--;
}
else
b++;
}
}
function a(a,h,g,c,b,e)
{
if (! a)
return false;
if (g && g !== a.tagName)
return false;
if (h && a.id !== h)
return false;
if (b.length > 0 && ! f(a, b))
return false;
if (c.length > 0 && ! d(a, c))
return false;
if (e.length > 0 && ! i(a, e))
return false;
return true;
}
function d(d,c)
{
var a = d.className;
if (typeof a !== "string")
a = d.getAttribute("class");
if (! a)
return false;
var e = a.split(" "), b, f = c.length;
for (b = 0;b < f;b++)
if (! k(e, c[b]))
return false;
return true;
}
function f(k,h)
{
var c = false, f, l = h.length, d, j, b, i, a, g;
for (f = 0;f < l;f++)
{
d = h[f];
j = d.name;
b = d.val;
i = d.delim;
a = e(k, j);
if (! a)
continue ;
switch (i)
{
case "=":
c = a === b;
break ;
case "^=":
c = a.indexOf(b) === 0;
break ;
case "$=":
g = a.lastIndexOf(b);
c = g !== - 1 && g + b.length === a.length;
break ;
case "*=":
c = a.indexOf(b) !== - 1;
break ;
case "|=":
c = a === b || a.indexOf(b + "-") === 0;
break ;
case "!=":
c = a !== b;
break ;
case null:
default:
c = a !== null;
}
if (! c)
break ;
}
return c;
}
function e(a,b)
{
if (typeof a.getAttribute === "unknown")
return a.attributes && a.attributes[b] ? a.attributes[b].nodeValue :
"";
return a.getAttribute(b, 2) || (a.attributes && a.attributes[b] ?
a.attributes[b].nodeValue : a.getAttribute(b));
}
function n(d)
{
var e = /\=|\^=|\$=|\*=|\|=|!=/, a = d.match(e);
a = a && a[0];
var c = d.split(a), f = c[0] && b(c[0].replace(/[\[\]"]/g,
"")), g = c[1] && b(c[1].replace(/[\[\]"]/g, ""));
return {name : f, delim : a, val : g};
}
function i(h,i)
{
var j, e, g, c, d, b = false, f, a, k = i.length;
for (f = 0;f < k;f++)
{
j = h.parentNode;
e = j.childNodes;
g = e.length;
switch (i[f])
{
case "first-child":
for (a = 0;a < g;a++)
{
c = e[a];
if (c.nodeType === 1)
break ;
}
if (c.nodeType !== 1)
b = false;
else
b = c === h;
break ;
case "last-child":
for (a = g - 1;a >= 0;a--)
{
d = e[a];
if (d.nodeType === 1)
break ;
}
if (d.nodeType !== 1)
b = false;
else
b = d === h;
break ;
default:
b = false;
}
if (! b)
break ;
}
return b;
}
function h(c,b)
{
if (b === 0)
return c;
var e = b > 0 ? "nextSibling" : "previousSibling", a = c, f =
Math.abs(b), d = 0;
while (d < f)
{
a = a[e];
if (! a)
break ;
if (a.nodeType === 1)
d++;
}
return a;
}
function b(a)
{
return a.replace(/^\s+|\s+$/g, "");
}
function j(a)
{
return b(a).replace(/\s{2,}/g, " ");
}
Gimme.id = (function (a)
{
return $ID(a);
}
);
Gimme.query = (function (e,z,w)
{
if (! e)
return [];
if (e instanceof Array)
return e;
if (typeof e !== "string")
return [e];
var B = [];
e = j(e).replace(/\s*(\+|>|~|,)\s*/g, "$1");
var i = o(e), v = i.length, m = p(i[(v - 1)], z);
passed = true;
var C, u, s, c, l, r, k, d, q = 0, f = 0, t = 0, x = m.length;
while (q < x)
{
t = 0;
u = true;
d = c = s = m[q];
a:
for (f = v - 3;f >= 0;f -= 2)
{
var y = i[(f + 1)], b = i[f];
switch (y)
{
case " ":
d = d.parentNode;
while (d && d !== document)
{
if (a(d, b.id, b.tag, b.classes, b.attributes, b.pseudos))
{
c = d;
continue a;
}
d = d.parentNode;
}
passed = false;
break a;
case ">":
while (k !== document)
{
k = c.parentNode;
if (a(k, b.id, b.tag, b.classes, b.attributes, b.pseudos))
{
c = k;
continue a;
}
else
if (i[(f + 3)] !== " ")
break ;
c = k;
}
passed = false;
break a;
case "+":
l = h(c, - 1);
if (l)
if (a(l, b.id, b.tag, b.classes, b.attributes, b.pseudos))
{
c = l;
continue a;
}
passed = false;
break a;
case "~":
r = c.parentNode.childNodes;
var A = r.length;
while (t < A)
{
var n = r[(t++)];
if (n.nodeType === 3)
continue ;
if (n === s)
{
u = false;
break ;
}
if (a(n, b.id, b.tag, b.classes, b.attributes, b.pseudos))
{
c = n;
continue a;
}
}
passed = false;
break a;
}
}
if (! passed)
{
m.splice(q, 1);
x--;
}
else
{
if (typeof w === "function")
w(g(s));
q++;
}
passed = true;
}
_gimmeCallback = null;
return m;
}
);
c.prototype.addPart = (function (a,b)
{
this.isEmpty = false;
switch (b)
{
case 0:
this.tag = a.toUpperCase();
break ;
case 1:
this.id = a;
break ;
case 2:
this.classes.push(a);
break ;
case 3:
this.attributes.push(n(a));
break ;
case 4:
this.pseudos.push(a);
}
return this;
}
);
var l = (function ()
{
function b(b,a)
{
return b.indexOf(a);
}
function a(b,c)
{
var a, d = b.length;
for (a = 0;a < d;a++)
if (b[a] === c)
return a;
return - 1;
}
return typeof Array.prototype.indexOf !== "undefined" ? b : a;
}
)(), k = (function ()
{
function b(b,a)
{
return b.contains(a);
}
function a(b,a)
{
return l(b, a) !== - 1;
}
return typeof Array.prototype.contains !== "undefined" ? b : a;
}
)();
Gimme.helper = {indexOf : l, contains : k, trim : b, normalize : j, hasClass : d,
readAttribute : e, getSibling : h};
}
)();
Gimme.object = (function (a)
{
this.entities = a;
this.length = this.entities.length;
}
);
Gimme.ext = Gimme.object.prototype;
(function ()
{
function d(a)
{
if (typeof a.guid === "undefined")
a.guid = j++;
return a.guid;
}
function e(a)
{
return a === window ? "theWindow" : a === document ? "theDocument"
: a.uniqueID;
}
function i(c,a,b)
{
if (c === a)
return false;
var d = 0;
while (a && a != c)
{
d++;
a = a.parentNode;
}
b = b || d;
return a === c && b === d;
}
function c(c)
{
var e = d(c), b = a[e];
if (typeof b === "undefined")
b = a[e] = (function (b)
{
var a = b.relatedTarget;
if (this === a || i(this, a))
return ;
c.call(this, b);
}
);
return b;
}
function h(c,b)
{
if (/px$/.test(c))
return parseInt(c, 10);
if (! b)
b = document.body;
var a = document.createElement("div");
a.style.visbility = "hidden";
a.style.position = "absolute";
a.style.lineHeight = "0";
if (/%$/.test(c) || b.tagName === "IMG")
{
b = b.parentNode || b;
a.style.height = c;
}
else
{
a.style.borderStyle = "solid";
a.style.borderBottomWidth = "0";
a.style.borderTopWidth = c;
}
b.appendChild(a);
var d = a.offsetHeight;
b.removeChild(a);
return d || 0;
}
var b = Gimme.helper, o = b.contains, q = b.indexOf, n = b.normalize, f = b.hasClass, p
= b.readAttribute, l = b.getSibling;
Gimme.ext.element = (function (a)
{
return this.entities[(a || 0)];
}
);
Gimme.ext.parent = (function (a)
{
return this.entities[(a || 0)].parentNode;
}
);
Gimme.ext.addClass = (function (b)
{
var a = b.split(/\s+/);
this.forEach((function (b)
{
g(a).forEach((function (a)
{
if (! f(b, [a]))
if (b.className === "")
b.className = a;
else
b.className += " " + a;
}
));
}
));
return this;
}
);
Gimme.ext.removeClass = (function (a)
{
return this.swapClass(a, "$1");
}
);
Gimme.ext.swapClass = (function (b,a)
{
if (a !== "$1")
a = " " + a + " ";
var c = b.split(/\s+/);
this.forEach((function (d)
{
var b = d.className;
g(c).forEach((function (c)
{
var d = new RegExp("(^| )" + c + "( |$)");
b = b.replace(d, a);
}
));
d.className = n(b);
}
));
return this;
}
);
Gimme.ext.hasClass = (function (a,b)
{
return f(this.entities[(b || 0)], [a]);
}
);
Gimme.ext.getAncestor = (function (b,d)
{
var a = this.entities[(d || 0)], c = b;
while (c-- > 0)
if (a)
a = a.parentNode;
else
break ;
return a;
}
);
Gimme.ext.getSibling = (function (a,b)
{
return l(this.entities[(b || 0)], a);
}
);
Gimme.ext.select = (function (a)
{
return new Gimme.object(Gimme.query(a, this.entities[0]));
}
);
Gimme.ext.setHTML = (function (a)
{
this.forEach((function (b)
{
b.innerHTML = a;
}
));
return this;
}
);
Gimme.ext.getHTML = (function (a)
{
return this.entities[(a || 0)].innerHTML;
}
);
Gimme.ext.setValue = (function (a)
{
this.forEach((function (b)
{
if (typeof b.value !== "undefined")
b.value = a;
}
));
return this;
}
);
Gimme.ext.getValue = (function (a)
{
return this.entities[(a || 0)].value || "";
}
);
Gimme.ext.readAttribute = (function (a,b)
{
return p(this.entities[(b || 0)], a);
}
);
Gimme.ext.writeAttribute = (function (a,b)
{
this.forEach((function (c)
{
c.setAttribute(a, b);
}
));
return this;
}
);
Gimme.ext.filter = (function (d)
{
var b = this.entities, a = 0, c = b.length;
while (a < c)
if (! d(b[a]))
{
b.splice(a, 1);
c--;
}
else
a++;
return this;
}
);
Gimme.ext.iterate = (function (b)
{
var c = this.entities, a, e = c.length;
for (a = 0;a < e;a++)
{
var d = g(c[a]);
b.call(d, a);
}
b = null;
return this;
}
);
Gimme.ext.getStyle = (function (a,n,e)
{
var b = this.entities[(n || 0)];
if (a === "opacity")
{
var d = k(b);
if (isNaN(d))
a = d;
else
return d;
}
if (e !== false)
e = true;
var c = "";
if (typeof document.defaultView !== "undefined" && typeof
document.defaultView.getComputedStyle !== "undefined")
c = document.defaultView.getComputedStyle(b, null);
else
if (typeof b.currentStyle !== "undefined")
{
c = b.currentStyle;
var g = c[a];
if (g === "auto")
{
if (a === "height")
return (b.clientHeight || b.offsetHeight) + "px";
if (a === "width")
return (b.clientWidth || b.offsetWidth) + "px";
if (a === "top")
return b.offsetTop + "px";
else
if (a === "left")
return b.offsetLeft + "px";
else
if (e && (a === "right" || a === "bottom"))
{
var f = {bottom : ["top", "Height"], right :
["left", "Width"]}, l = parseInt(this.getComputedStyle(b, f[a][0],
false), 10);
return b.parentNode[("client" + f[a][1])] -
b[("offset" + f[a][1])] - l + "px";
}
else
return "0px";
}
var m = /(em|ex|%|in|cm|mm|pt|pc|small|medium|large|thin|thick)$/, j =
/border(.*)Width/i, i = j.test(a) ? a.replace(j, "border$1Style") : null;
if (m.test(g))
if (i !== null && c[i] === "none")
return "0px";
else
return h(g, b);
}
return c[a];
}
);
Gimme.ext.setStyle = (function (a,b)
{
this.forEach((function (c)
{
if (a === "opacity")
m(c, b);
else
c.style[a] = b;
}
));
return this;
}
);
Gimme.ext.addEvent = (function (b,f,g)
{
this.forEach((function (h)
{
if (typeof h.addEventListener !== "undefined")
if (b === "mouseenter")
h.addEventListener("mouseover", c(f), g);
else
if (b === "mouseleave")
h.addEventListener("mouseout", c(f), g);
else
h.addEventListener(b, f, g);
else
if (typeof h.attachEvent !== "undefined")
{
var j = "{" + e(h) + "/" + b + "/" + d(f) +
"}", i = a[j];
if (typeof i !== "undefined")
return ;
i = (function (a)
{
a.target = a.srcElement;
if (b == "mouseover")
a.relatedTarget = a.fromElement;
else
if (b == "mouseout")
a.relatedTarget = a.toElement;
a.preventDefault = (function ()
{
a.returnValue = false;
}
);
a.stopPropagation = (function ()
{
a.cancelBubble = true;
}
);
f.call(h, a);
a.target = null;
a.relatedTarget = null;
a.preventDefault = null;
a.stopPropagation = null;
a = null;
}
);
a[j] = i;
h.attachEvent("on" + b, i);
window.attachEvent("onunload", (function ()
{
h.detachEvent("on" + b, i);
window.detachEvent("onunload", arguments.callee);
}
));
j = null;
}
}
));
return this;
}
);
Gimme.ext.removeEvent = (function (b,f,g)
{
this.forEach((function (h)
{
if (typeof h.removeEventListener !== "undefined")
if (b === "mouseenter")
h.removeEventListener("mouseover", c(f), g);
else
if (b === "mouseleave")
h.removeEventListener("mouseout", c(f), g);
else
h.removeEventListener(b, f, g);
else
if (typeof h.detachEvent !== "undefined")
{
var i = "{" + e(h) + "/" + b + "/" + d(f) +
"}", j = a[i];
if (typeof j !== "undefined")
{
h.detachEvent("on" + b, j);
delete a[i];
}
i = null;
j = null;
}
}
));
return this;
}
);
Gimme.ext.forEach = (function ()
{
function b(b,a)
{
this.entities.forEach(b, a);
return this;
}
function a(e,d)
{
var b = this.entities, a, c, f = b.length;
for (a = 0;a < f;a++)
{
c = b[a];
e.call(d, c, a, b);
}
return this;
}
return typeof Array.prototype.forEach !== "undefined" ? b : a;
}
)();
Gimme.ext.map = (function ()
{
function b(b,a)
{
return this.entities.map(b, a);
}
function a(c,b)
{
var a = [];
this.forEach((function (d)
{
a.push(c.call(b, d));
}
));
return a;
}
return typeof Array.prototype.map !== "undefined" ? b : a;
}
)();
Gimme.ext.contains = (function (a)
{
return o(this.entities, a);
}
);
Gimme.ext.indexOf = (function (a)
{
return q(this.entities, a);
}
);
var j = 0, a = {}, m = (function ()
{
function c(a,b)
{
a.style.opacity = b;
}
function d(a,b)
{
a.style.filter = "alpha(opacity=" + b * 100 + ")";
}
var a, b = document.createElement("div");
if (typeof b.style.opacity !== "undefined")
a = c;
else
if (typeof b.style.filter !== "undefined")
a = d;
else
a = (function ()
{
}
);
b = null;
return a;
}
)(), k = (function ()
{
function c(a)
{
return parseFloat(a.style.opacity) || "opacity";
}
function d(c)
{
var b = c.currentStyle.filter, a = b.match(/pacity\s*=\s*(\d{1,3}.?\d*)\)/);
if (! a)
return 1;
else
return parseFloat(a[1]) / 100;
}
var a, b = document.createElement("div");
if (typeof b.style.opacity !== "undefined")
a = c;
else
if (typeof b.style.filter !== "undefined")
a = d;
else
a = (function ()
{
}
);
b = null;
return a;
}
)();
}
)();
Gimme.Screen = new (function ()
{
this.getViewportSize = (function ()
{
var a = {width : 0, height : 0};
if (typeof window.innerWidth !== "undefined")
a = {width : window.innerWidth, height : window.innerHeight};
else
if (typeof document.documentElement !== "undefined" && typeof
document.documentElement.clientWidth !== "undefined" &&
document.documentElement.clientWidth !== 0)
a = {width : document.documentElement.clientWidth, height :
document.documentElement.clientHeight};
else
a = {width : (document.getElementsByTagName("body"))[0].clientWidth,
height : (document.getElementsByTagName("body"))[0].clientHeight};
return a;
}
);
this.getMousePosition = (function (a)
{
if (! a)
a = window.event;
var b = {x : 0, y : 0};
if (typeof a.pageX !== "undefined" && typeof a.x !==
"undefined")
{
b.x = a.pageX;
b.y = a.pageY;
}
else
{
var c = this.getScrollPosition();
b.x = a.clientX + c.x;
b.y = a.clientY + c.y;
}
return b;
}
);
this.getScrollPosition = (function ()
{
var a = {x : 0, y : 0};
if (typeof window.pageYOffset !== "undefined")
{
a.x = window.pageXOffset;
a.y = window.pageYOffset;
}
else
if (typeof document.documentElement.scrollTop !== "undefined")
{
a.x = document.documentElement.scrollLeft;
a.y = document.documentElement.scrollTop;
}
else
if (typeof document.body.scrollTop !== "undefined")
{
a.x = document.body.scrollLeft;
a.y = document.body.scrollTop;
}
return a;
}
);
}
)();
Gimme.ext.getPosition = (function (f,g)
{
var b, a = this.entities[(g || 0)], c = 0, d = 0;
while (a !== null)
{
b = typeof a.scrollTop !== "undefined" && a !== document.body
&& a !== document.documentElement && a.tagName !== "TEXTAREA"
&& a.tagName !== "INPUT" ? 1 : 0;
c += a.offsetLeft - b * a.scrollLeft;
d += a.offsetTop - b * a.scrollTop;
a = a.offsetParent;
}
if (f)
{
var e = Gimme.Screen.getScrollPosition();
c -= e.x;
d -= e.y;
}
return {x : c, y : d};
}
);
Gimme.ext.getScreenPosition = (function (a)
{
return this.getPosition(true, a);
}
);
Gimme.ext.getPagePosition = (function (a)
{
return this.getPosition(false, a);
}
);
Gimme.ext.getComputedPosition = (function (b)
{
var a = this.entities[(b || 0)];
return {x : parseInt(g(a).getStyle("left"), 10), y :
parseInt(g(a).getStyle("top"), 10)};
}
);
Gimme.Util = new (function ()
{
function a(a,c)
{
function d()
{
e.apply(this, Array.prototype.slice.call(a, 2));
if (! c)
e = null;
}
var e = a[0], b = a[1];
if (c === true)
return window.setInterval(d, b);
else
return window.setTimeout(d, b);
}
this.setTimeout = (function ()
{
return a(arguments, false);
}
);
this.setInterval = (function ()
{
return a(arguments, true);
}
);
}
)();
Gimme.Animation = new (function ()
{
var a = {}, b = false;
this.Speeds = {snail : 2000, turtle : 1250, slowly : 1250, rabbit : 1000, greyhound :
750, quickly : 750, cheetah : 500, lightning : 250};
this.Directions = {vertically : 1, horizontally : 2, both : 3};
this.start = (function (b,f,e)
{
var c = setInterval(f, e), d = a[b];
if (typeof d === "undefined")
a[b] = {iids : [c], callback : null};
else
d.iids.push(c);
}
);
this.end = (function ()
{
var c, e = arguments.length;
for (c = 0;c < e;c++)
{
var d = arguments[c], b = a[d];
if (typeof b !== "undefined")
{
g(b.iids).forEach((function (a)
{
clearTimeout(a);
}
));
if (typeof b.callback === "function")
{
b.callback.call();
b.callback = null;
}
delete a[d];
}
}
}
);
this.isRunning = (function (b)
{
return typeof a[b] !== "undefined";
}
);
this.whenDone = (function (c,b)
{
var d = a[c];
if (typeof d === "undefined")
a[c] = {iids : [], callback : b};
else
d.callback = b;
}
);
this.startGroup = (function ()
{
b = true;
}
);
this.endGroup = (function ()
{
b = false;
}
);
this.isGrouping = (function ()
{
return b === true;
}
);
}
)();
Gimme.Animation.BezierCurve = (function ()
{
this.points = [];
this.args = arguments;
}
);
Gimme.Animation.BezierCurve.prototype.initialize = (function ()
{
function j(j)
{
var d, h = 0, i = 0;
for (d = 0;d <= b;d++)
{
var f = c[b] / c[d] * c[(b - d)], e = Math.pow(1 - j, b - d), g = Math.pow(j, d);
h += f * a[d].x * e * g;
i += f * a[d].y * e * g;
}
return {x : h, y : i};
}
function i(d)
{
var a, c = 1, b = [1];
for (a = 1;a <= d;a++)
{
c *= a;
b.push(c);
}
return b;
}
var d = this.args, h = d.length, g = d[(h - 1)] || 100, k = h - 1, e, f, b, c, a;
for (e = 0;e < k;e++)
{
a = d[e];
c = i(a.length);
b = a.length - 1;
for (f = 0;f <= g;f++)
this.points.push(j(f / g));
}
this.args = d = null;
return g;
}
);
Gimme.Animation.BezierCurve.prototype.getPoint = (function (c)
{
var a = this.points.length;
if (a === 0)
a = this.initialize();
var b = Math.floor(c * a);
if (b > a - 1)
b = a - 1;
return this.points[b];
}
);
Gimme.Animation.AccelerationLine = (function (a,c)
{
var d = a[(a.length - 1)], b = g(a).map((function (a)
{
return {x : a / d, y : 0};
}
));
this.bezier = new Gimme.Animation.BezierCurve(b, c);
this.points = this.bezier.points;
}
);
Gimme.Animation.AccelerationLine.prototype.getValue = (function (a)
{
return (this.bezier.getPoint(a)).x;
}
);
Gimme.Animation.AccelerationLines = {zoom : new Gimme.Animation.AccelerationLine([1, 2, 3,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 500, 501, 502, 503, 504,
505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520], 75),
slowStartAccelerate : new Gimme.Animation.AccelerationLine([0, 1, 2, 3, 8, 50], 100),
quickStartDecelerate : new Gimme.Animation.AccelerationLine([0, 50, 55, 56, 57, 58], 100),
linear : new Gimme.Animation.AccelerationLine([0, 10], 100)};
Gimme.Animation.AccelerationLines.defaultLine = Gimme.Animation.AccelerationLines.zoom;
Gimme.ext.fadeIn = (function (b,c,a)
{
g(this.entities).fadeTo(null, 0.99999, b, c, a);
a = null;
return this;
}
);
Gimme.ext.fadeOut = (function (b,c,a)
{
g(this.entities).fadeTo(null, 0, b, c, a);
a = null;
return this;
}
);
Gimme.ext.fadeTo = (function (b,c,e,h,d,a)
{
function i(e)
{
var a = b === 0 ? 0 : b || Number(g(e).getStyle("opacity")), d = c - a;
return {startOpacity : a, deltaO : d};
}
function f(e,b,c,a)
{
var f = c.getValue(b), d = a.startOpacity + f * a.deltaO;
g(e).setStyle("opacity", d);
}
a = a || Gimme.Animation.AccelerationLines.linear;
g(this.entities).animate(a, e, h, d, f, i);
return this;
}
);
Gimme.ext.veil = (function (b,d,h,c,e)
{
function i(c)
{
var d = parseInt(g(c).getStyle("height"), 10), e =
parseInt(g(c).getStyle("width"), 10);
c.style.overflow = "hidden";
if ((b & a.horizontally) === a.horizontally)
c.style.height = d + "px";
return {deltaH : d, deltaW : e};
}
function f(c,f,i,d)
{
var e, g, h;
if (f >= 1)
{
c.style.display = "none";
c.style.height = c.style.width = "auto";
}
else
{
e = i.getValue(f);
if ((b & a.vertically) === a.vertically)
{
g = d.deltaH - e * d.deltaH;
c.style.height = g + "px";
}
if ((b & a.horizontally) === a.horizontally)
{
h = d.deltaW - e * d.deltaW;
c.style.width = h + "px";
}
}
}
var a = Gimme.Animation.Directions;
b = Math.floor(b) || a[b] || a.vertically;
g(this.entities).animate(e, d, h, c, f, i);
return this;
}
);
Gimme.ext.unveil = (function (b,d,h,c,e)
{
function i(d)
{
var h = d.style.width, g = d.style.height, f = d.style.overflow, c =
d.cloneNode(true);
c.style.visibility = "hidden";
c.style.margin = "0";
c.style.padding = "0";
c.style.border = "0";
c.style.position = "absolute";
c.style.display = "block";
d.parentNode.appendChild(c);
var e = c.offsetHeight, i = c.offsetWidth;
c.parentNode.removeChild(c);
d.style.visibility = "visible";
d.style.display = "block";
d.style.overflow = "hidden";
if ((b & a.horizontally) === a.horizontally)
d.style.height = e + "px";
return {deltaH : e, deltaW : i, styleH : g, styleW : h, styleOverflow : f};
}
function f(d,f,i,c)
{
var e, g, h;
if (f >= 1)
{
d.style.overflow = c.styleOverflow;
d.style.width = c.styleW;
d.style.height = c.styleH;
}
else
{
e = i.getValue(f);
if ((b & a.vertically) === a.vertically)
{
g = e * c.deltaH;
d.style.height = g + "px";
}
if ((b & a.horizontally) === a.horizontally)
{
h = e * c.deltaW;
d.style.width = h + "px";
}
}
}
var a = Gimme.Animation.Directions;
b = Math.floor(b) || a[b] || a.vertically;
g(this.entities).animate(e, d, h, c, f, i);
return this;
}
);
Gimme.ext.scrollTo = (function (b,e,a,c)
{
function f(c)
{
var a = Gimme.Screen.getScrollPosition(), b = (g(c).getPagePosition()).y - a.y;
return {scrollPos : a, deltaY : b};
}
function d(f,b,c,a)
{
var d = c.getValue(b), e = a.scrollPos.y + d * a.deltaY;
window.scrollTo(0, Math.floor(e));
}
g(this.entities[0]).animate(c, b, e, a, d, f);
return this;
}
);
Gimme.ext.slideToPoint = (function (a,c,f,b,d)
{
function h(e)
{
var b = g(e).getComputedPosition();
if (a.x === null)
a.x = b.x;
if (a.y === null)
a.y = b.y;
var d = a.y - b.y, c = a.x - b.x;
return {startPt : b, deltaX : c, deltaY : d};
}
function e(c,e,f,a)
{
var b = a.startPt, g = a.deltaX, h = a.deltaY, d = f.getValue(e), i = b.x + d * g, j =
b.y + d * h;
c.style.top = Math.floor(Math.round(j)) + "px";
c.style.left = Math.floor(Math.round(i)) + "px";
}
g(this.entities).animate(d, c, f, b, e, h);
return this;
}
);
Gimme.ext.followPath = (function (f,a,d,e,c)
{
function h(b)
{
var a = g(b).getComputedPosition();
return {startPt : a};
}
function b(c,e,g,f)
{
var b = f.startPt, d = g.getPoint(e), h = b.x + d.x * a, i = b.y + d.y * a;
c.style.top = Math.floor(Math.round(i)) + "px";
c.style.left = Math.floor(Math.round(h)) + "px";
}
a = a || 1;
g(this.entities).animate(f, d, e, c, b, h);
return this;
}
);
Gimme.ext.animate = (function (b,c,a,h,d,e)
{
function i(h)
{
var i = e(h);
return (function ()
{
var l = new Date().getTime(), k = (l - j) / c;
if (k >= 1)
{
if (typeof d === "function")
d(h, 1, b, i);
if (++g === f)
{
Gimme.Animation.end(a);
e = null;
d = null;
}
}
else
d(h, k, b, i);
}
);
}
var f = this.entities.length;
if (f < 1)
return ;
b = b || Gimme.Animation.AccelerationLines.defaultLine;
c = Math.floor(c) || Gimme.Animation.Speeds[c] || Gimme.Animation.Speeds.quickly;
a = a || "AUTOGUID_" + Math.random(new Date().getTime());
if (! Gimme.Animation.isGrouping() && Gimme.Animation.isRunning(a))
return ;
Gimme.Animation.whenDone(a, h);
var g = 0, k = b.points.length, j = new Date().getTime();
this.forEach((function (c,b)
{
Gimme.Animation.start(a, i(c, b), 10);
}
));
}
);
Gimme.ext.getRelativePosition = (function (d,e)
{
var a = this.entities[(e || 0)], b = 0, c = 0;
while (a !== null && a !== d)
{
b += a.offsetLeft;
c += a.offsetTop;
a = a.offsetParent;
}
return {x : b, y : c};
}
);
Gimme.ext.addShim = (function (d,e)
{
var b = this.entities[0];
if (b.shim)
{
b.shim.parentNode.removeChild(b.shim);
b.shim = null;
}
var a = document.createElement("iframe");
a.frameBorder = "0";
a.scrolling = "no";
a.className = "iframeShim";
a.style.position = "absolute";
a.style.zIndex = e || "1";
a.style.background = "#fff";
a.style.height = b.offsetHeight + "px";
a.style.width = b.offsetWidth + "px";
var c = g(b);
a.style.top = c.getStyle("top");
a.style.left = c.getStyle("left");
a.style.marginTop = c.getStyle("marginTop");
a.style.marginLeft = c.getStyle("marginLeft");
a.style.marginRight = c.getStyle("marginRight");
a.style.marginBottom = c.getStyle("marginBottom");
this.entities.push(a);
d = d || b;
(d.parentNode || document.body).insertBefore(a, d);
b.shim = a;
return this;
}
);
Gimme.ext.removeShim = (function ()
{
var b = this.entities[0], a = b.shim;
if (a)
{
a.parentNode.removeChild(a);
b.shim = null;
}
return this;
}
);
Gimme.ext.toggle = (function (a)
{
if (a !== true)
a = false;
this.forEach((function (c)
{
var b = g(c);
if (a)
b.setStyle("visibility", b.getStyle("visibility") ===
"visible" ? "hidden" : "visible");
else
b.setStyle("display", b.getStyle("display") !== "none" ?
"none" : "block");
}
));
return this;
}
);
VE_SelectItem.prototype.toString = (function ()
{
return this.description;
}
);
var IOSec = new OutputEncoder();
VE_Panel.panels = [];
VE_Panel.shadowThickness = 3;
VE_Panel._CreateElement = (function (d,e,b,c)
{
var a = document.createElement(d);
a.id = e;
a.className = b;
a.style.zIndex = c;
return a;
}
);
VE_Panel._PositionElement = (function (a,d,e,c,b)
{
a.style.top = e + "px";
a.style.left = d + "px";
a.style.width = c + "px";
a.style.height = b + "px";
}
);
VE_Panel.prototype.SetPosition = (function (c,d,b,a)
{
this.x = c;
this.y = d;
this.width = b;
this.height = a;
if (map.IsModeEnabled(Msn.VE.MapActionMode.Mode3D) && this.usesShimIn3D)
UpdateIFrameShim(this.el);
}
);
VE_Panel.prototype.SetToolbarSize = (function (toolbarHeight)
{
this.toolbarHeight = toolbarHeight;
var d = eval(toolbarHeight) > 0 ? "block" : "none";
this.tb.style.display = d;
this.Resize();
}
);
VE_Panel.prototype.SetFooterSize = (function (footerHeight)
{
if (! this.isLegacyPanel)
{
this.footerHeight = footerHeight;
var d = eval(footerHeight) > 0 ? "block" : "none";
this.foot.style.display = d;
this.Resize();
}
}
);
VE_Panel.prototype.Resize = (function ()
{
if (typeof globals != "undefined")
{
var geoFn = Msn.VE.Geometry.Functions, taskAreaHeight =
(Gimme.Screen.getViewportSize()).y -
(g(globals["taskArea"]).getScreenPosition()).y -
globals["footer"].offsetHeight;
if (taskAreaHeight >= 0 && typeof taskAreaHeight == "number")
globals["taskArea"].style.height = taskAreaHeight - 2 + "px";
if (this.el.id == "contextMenu" || this.el.id == "scratchpad" ||
this.el.id == "annotationPanel" || this.el.id == "annotationPopup" ||
this.el.id == "searchPopup" || this.el.id == "help")
{
if (this.height != "auto" && typeof this.height ==
"number")
this.el.style.height = eval(this.height) + "px";
if (this.width != "auto" && typeof this.width ==
"number")
this.el.style.width = eval(this.width) + "px";
if (this.x != "auto" && typeof this.x == "number")
this.el.style.left = eval(this.x) + "px";
if (this.y != "auto" && typeof this.y == "number")
this.el.style.top = eval(this.y) + "px";
}
if (this.el.shimElement)
ShowShim(this.el);
}
}
);
VE_Panel.prototype.SetHeightToFit = (function ()
{
var contentid = this.id + "_body_table", content = $ID(contentid);
if (! content)
return false;
this.height = 0;
var width = Math.max(eval(this.width), 100);
if (content.offsetWidth > width - 14)
this.height += scrollbarWidth;
this.height += this.titleDisabled ? 14 : 21 + 14;
this.height += this.toolbarHeight;
this.height += content.offsetHeight;
this.height += this.footerHeight;
this.height = Math.min(this.dynamicHeightMax, this.height);
}
);
VE_Panel.prototype.DisableClosebox = (function ()
{
if (! this.isLegacyPanel)
{
if (this.closeboxDisabled)
return ;
this.closeboxDisabled = true;
this.el.removeChild(this.cb);
}
}
);
VE_Panel.prototype.EnableClosebox = (function ()
{
if (! this.isLegacyPanel)
{
if (! this.closeboxDisabled)
return ;
this.closeboxDisabled = false;
this.el.appendChild(this.cb);
}
}
);
VE_Panel.prototype.DisableTitle = (function ()
{
if (! this.isLegacyPanel)
{
if (this.titleDisabled)
return ;
this.titleDisabled = true;
this.el.removeChild(this.cb);
this.el.removeChild(this.title);
}
}
);
VE_Panel.prototype.EnableTitle = (function ()
{
if (! this.isLegacyPanel)
{
if (! this.titleDisabled)
return ;
this.titleDisabled = false;
this.el.insertBefore(this.cb, this.tb);
this.el.insertBefore(this.title, this.cb);
}
}
);
VE_Panel.prototype.SetTitle = (function (c)
{
if (! this.isLegacyPanel)
{
var b = document.createTextNode(c), a = this.title.firstChild;
if (a)
if (a.firstChild)
a.replaceChild(b, a.firstChild);
else
a.appendChild(b);
}
}
);
VE_Panel.prototype.SetToolbar = (function (a)
{
this.tb.innerHTML = a;
}
);
VE_Panel.prototype.SetBody = (function (a)
{
this.body.innerHTML = a;
}
);
VE_Panel.prototype.SetDynamicBody = (function (a)
{
this.body.innerHTML = "<table id=\"" + this.id +
"_body_table\"><tr><td>" + a +
"</td></tr></table>";
}
);
VE_Panel.prototype.SetFooter = (function (a)
{
if (! this.isLegacyPanel)
this.foot.innerHTML = a;
}
);
VE_Panel.prototype.SetOpacity = (function (o)
{
if (o >= 100)
o = 99.99;
with (this.el.style)
{
filter = "alpha(opacity:" + o + ")";
o *= 0.01;
KHTMLOpacity = o;
MozOpacity = o;
opacity = o;
}
}
);
VE_Panel.prototype.SetColor = (function (a)
{
if (! this.isLegacyPanel)
{
this.color = a;
this.title.className = "VE_Panel_title VE_Panel_title_" + a;
this.foot.className = "VE_Panel_foot VE_Panel_foot_" + a;
this.cb.className = "VE_Panel_cb VE_Panel_cb_" + a;
}
}
);
VE_Panel.prototype.Minimize = (function ()
{
this.el.className = " VE_Panel_el_minimized";
if (this.onMinimize)
this.onMinimize(this._CreateEvent());
}
);
VE_Panel.prototype.Maximize = (function ()
{
this.el.className = "VE_Panel_el";
if (this.onMaximize)
this.onMaximize(this._CreateEvent());
this.Resize();
}
);
VE_Panel.prototype.isMaximized = (function ()
{
return this.el.className == "VE_Panel_el";
}
);
VE_Panel.prototype.Show = (function ()
{
this.el.style.display = "block";
this.visible = true;
if (this.usesShimIn3D)
mvcViewFacade.ShowShimIfSupported(this.el);
}
);
VE_Panel.prototype.Hide = (function ()
{
this.el.style.display = "none";
this.visible = false;
HideShim(this.el);
}
);
VE_Panel.prototype.IsVisible = (function ()
{
return this.el.style.display != "none";
}
);
VE_Panel.prototype._CreateEvent = (function ()
{
return new VE_PanelEvent(this);
}
);
VE_Panel._OnTitleClick = (function (c)
{
if (! c)
c = window.event;
var d = GetTarget(c), b = VE_Panel.panels;
for (var a = 0;a < b.length;a++)
if (b[a].title == d || b[a].title == d.parentNode)
{
if (b[a].onTitleClick)
b[a].onTitleClick(b[a]._CreateEvent());
return ;
}
}
);
VE_Panel._OnCloseClick = (function (c)
{
if (! c)
c = window.event;
var d = GetTarget(c), b = VE_Panel.panels;
for (var a = 0;a < b.length;a++)
if (b[a].cb == d)
{
if (b[a].onCloseClick)
b[a].onCloseClick(b[a]._CreateEvent());
return ;
}
}
);
Ad.prototype.ToHtml = (function ()
{
var a = "<li>" + "<a href = \"" + this.url +
"\" target = \"_blank\">" + IOSec.EncodeHtml(this.title) +
"</a>" + "$AdDescription$" + "</li>";
if (this.description && this.description.length > 0)
a = a.replace("$AdDescription$", "<p>" +
IOSec.EncodeHtml(this.description) + "</p>");
return a;
}
);
Ad.prototype.HasAddress = (function ()
{
return this.address1.length > 0 && this.city.length > 0 &&
this.state.length > 0 && this.zip.length > 0;
}
);
Ad.prototype.GetAdDescription = (function ()
{
var a = this.description;
if (this.HasAddress())
a = this.address1 + ", " + this.city + ", " + this.state + "
" + this.zip;
return a;
}
);
Msn.VE.DirectionsDecoder = (function ()
{
function e(a,c,m,l)
{
if (! a || a.length < c)
return [];
var k = a.length - a.length % c, i = [], f = false, b = 0, j = c - 1;
for (var d = 0;d < k;d++)
{
var e = a.charCodeAt(d), h = d % c;
if (l && h == 0)
{
f = e & 128;
e &= 127;
}
b |= e;
if (h == j)
{
var g = b / m;
i.push(f ? - g : g);
b = 0;
f = false;
}
else
b <<= 8;
}
return i;
}
function d(c)
{
return e(c, a, b, true);
}
function c(c)
{
var l = true;
if (! c || c.length < a)
return [];
var j = [], g = false, d = 0, k = a - 1, m = c.length;
for (var e = 0;e < m;++e)
{
var f = c[e], i = e % a;
if (l && i == 0)
{
g = f & 128;
f &= 127;
}
d |= f;
if (i == k)
{
var h = d / b;
j.push(g ? - h : h);
d = 0;
g = false;
}
else
d <<= 8;
}
return j;
}
var a = 4, b = 1000000;
this.DecodeCoordinatesString = d;
this.DecodeCoordinatesByteArray = c;
}
);
var HelpHistory = [];
VE_Help.helpZIndex = 31;
VE_Help.introZIndex = 31;
VE_Help.introPanel = null;
VE_Help.helpPanel = null;
VE_Help.margins = 110;
VE_Help.LiveHelp = new (function ()
{
this.Keyword = "keyword";
this.Search = "search";
this.Topic = "topic";
}
)();
VE_Help.CreateHelpPanel = (function ()
{
VE_Help.CreateSizedHelpPanel(220, 160, windowWidth <= 430 ? 300 : windowWidth - 430,
windowHeight <= 220 ? 200 : windowHeight - 220);
}
);
VE_Help.CreateSizedHelpPanel = (function (e,f,c,b)
{
if (typeof VE_Help.helpPanel != "undefined" && VE_Help.helpPanel !=
null)
{
VE_Help.helpPanel.SetBody("");
VE_Help.helpPanel.Destroy();
VE_Help.helpPanel = null;
}
var d = "<iframe id=\"helpFrame\" src=\"about:blank\"
width=\"100%\" height=\"100%\" allowtransparency=\"true\"
frameborder=\"0\"></iframe>", a = new VE_Panel("help",
e, f, c <= 300 ? 300 : c, b <= 200 ? 200 : b, "blue", VE_Help.helpZIndex,
L_Help_Text, d, "");
a.body.className = "VE_Panel_body_help";
a.Hide();
a.SetToolbarSize(0);
a.SetFooterSize(0);
a.SetOpacity(95);
a.onCloseClick = (function ()
{
VE_Help.DisablePreventLayer();
VE_Help.ClosePanel();
}
);
VE_Help.helpPanel = a;
}
);
VE_Help.EnablePreventLayer = (function ()
{
var a = $ID("__preventLayer__");
if (! a)
a = document.createElement("div");
a.id = "__preventLayer__";
a.className = "preventLayer";
document.body.appendChild(a);
}
);
VE_Help.DisablePreventLayer = (function ()
{
var a = $ID("__preventLayer__");
if (a)
document.body.removeChild(a);
}
);
VE_Help.EnableDrawingPreventLayer = (function ()
{
var c = $ID("msve_header");
if (c)
{
var b = $ID("__preventLayerHeader__");
if (! b)
b = document.createElement("div");
b.id = "__preventLayerHeader__";
b.className = "preventLayer";
b.style.left = c.clientLeft;
b.style.top = c.clientTop;
b.style.width = c.clientWidth;
b.style.height = c.clientHeight;
document.body.appendChild(b);
}
var d = $ID("msve_footer");
if (d)
{
var a = $ID("__preventLayerFooter__");
if (! a)
a = document.createElement("div");
a.id = "__preventLayerFooter__";
a.className = "preventLayer";
a.style.left = 0;
a.style.top = GetWindowHeight() - d.clientHeight;
a.style.width = d.clientWidth;
a.style.height = d.clientHeight;
document.body.appendChild(a);
}
}
);
VE_Help.DisableDrawingPreventLayer = (function ()
{
var d = $ID("__preventLayerHeader__");
if (d)
document.body.removeChild(d);
var b = $ID("__preventLayerTaskArea__");
if (b)
document.body.removeChild(b);
var a = $ID("__preventLayerActionBar__");
if (a)
document.body.removeChild(a);
var c = $ID("__preventLayerFooter__");
if (c)
document.body.removeChild(c);
}
);
VE_Help.Open = (function (b,c)
{
VE_Help.EnablePreventLayer();
VE_Help.helpPanel.Show();
VE_Help.helpPanel.SetTitle(b);
VE_Help.helpPanel.SetBody("<iframe id = \"helpFrame\" src =
\"about:blank\" width = \"100%\" allowtransparency =
\"true\" scrolling = \"auto\" frameborder =
\"0\"></iframe>");
var a = $ID("helpFrame");
a.src = c;
VE_Help.Redraw();
}
);
VE_Help.OpenSized = (function (d,e,a,b)
{
if (a > windowWidth - 10)
a = windowWidth - 10;
if (b > windowHeight - 10)
b = windowHeight - 10;
VE_Help.CreateSizedHelpPanel((windowWidth - a) / 2, (windowHeight - b) / 2, a, b);
VE_Help.EnablePreventLayer();
VE_Help.helpPanel.Show();
VE_Help.helpPanel.SetTitle(d);
VE_Help.helpPanel.SetBody("<iframe id = \"helpFrame\" src =
\"about:blank\" width = \"100%\" allowtransparency =
\"true\" scrolling = \"no\" frameborder =
\"0\"></iframe>");
var c = $ID("helpFrame");
c.src = e;
}
);
VE_Help.OpenLiveHelp = (function (b,a,c)
{
var g = "_live_help", f = 550, e = 575, i = (screen.availWidth - f) * 0.5, j =
(screen.availHeight - e) * 0.5, h = "resizable=yes,top=" + j +
",width=" + f + ",height=" + e + ",left=" + i;
if (typeof b == "undefined" || b == null || b == "")
b = liveLocalHelpProjectCode;
if (typeof a == "undefined" || a == null || a == "")
a = VE_Help.LiveHelp.Keyword;
if (typeof c == "undefined" || c == null || c == "")
c = "qaf";
var k = liveHelpUrl + "&project=" + b + "&querytype=" + a +
"&query=" + c, d = window.open(k, g, h);
if (d != null && typeof d == "object")
d.focus();
}
);
VE_Help.Redraw = (function ()
{
var b = VE_Help.helpPanel;
if (! b)
return ;
var c = Gimme.Screen.getViewportSize(), a = g(b.el);
a.setStyle("top", (c.height - (a.element()).offsetHeight) / 2 +
"px");
a.setStyle("left", (c.width - (a.element()).offsetWidth) / 2 +
"px");
ShowShim(b.el);
}
);
VE_Help.CloseIntro = (function ()
{
if (VE_Help.introPanel)
VE_Help.introPanel.Hide();
}
);
VE_Help.ClosePanel = (function ()
{
if (VE_Help.helpPanel)
{
VE_Help.helpPanel.Hide();
VE_Help.DisablePreventLayer();
}
}
);
VE_Help.Destroy = (function ()
{
if (VE_Help.introPanel)
{
VE_Help.introPanel.Destroy();
VE_Help.introPanel = null;
}
if (VE_Help.helpPanel)
{
VE_Help.helpPanel.Destroy();
VE_Help.helpPanel = null;
}
}
);
VEValidator.ValidateFloat = (function (b,c)
{
var a = "";
if (arguments != null && arguments.caller != null)
a = VEValidator.GetCaller(arguments.caller);
if (a == "")
a = "VEValidator.ValidateFloat";
if (b == null || b == "undefined")
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"float"));
try
{
if (isNaN(parseFloat(b)))
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"float"));
return true;
}
catch (d)
{
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"float"));
}
}
);
VEValidator.ValidateInt = (function (b,c)
{
var a = "";
if (arguments != null && arguments.caller != null)
a = VEValidator.GetCaller(arguments.caller);
if (a == "")
a = "VEValidator.ValidateInt";
if (b == null || b == "undefined")
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"int"));
try
{
if (isNaN(parseInt(b)) || parseFloat(b) != parseInt(b))
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"int"));
return true;
}
catch (d)
{
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"int"));
}
}
);
VEValidator.ValidateNonNegativeInt = (function (a,c)
{
var b = "";
if (arguments != null && arguments.caller != null)
b = VEValidator.GetCaller(arguments.caller);
if (b == "")
b = "VEValidator.ValidateNonNegativeInt";
if (a == null || a == "undefined")
throw new VEException(b, "err_invalidargument",
L_invalidnonnegativeint_text.replace("%1", c));
try
{
if (isNaN(parseInt(a)) || parseFloat(a) != parseInt(a) || parseInt(a) < 0)
throw new VEException(b, "err_invalidargument",
L_invalidnonnegativeint_text.replace("%1", c));
return true;
}
catch (d)
{
throw new VEException(b, "err_invalidargument",
L_invalidnonnegativeint_text.replace("%1", c));
}
}
);
VEValidator.ValidateFunction = (function (b,c)
{
var a = "";
if (arguments != null && arguments.caller != null)
a = VEValidator.GetCaller(arguments.caller);
if (a == "")
a = "VEValidator.ValidateFunction";
if (b == null || typeof b != "function")
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"function"));
}
);
VEValidator.ValidateNonNull = (function (b,c)
{
var a = "";
if (arguments != null && arguments.caller != null)
a = VEValidator.GetCaller(arguments.caller);
if (a == "")
a = "VEValidator.ValidateNonNull";
if (b == null || b == "undefined")
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2", "non
null"));
}
);
VEValidator.ValidateBetween = (function (b,e,d,c)
{
var a = "";
if (arguments != null && arguments.caller != null)
a = VEValidator.GetCaller(arguments.caller);
if (a == "")
a = "VEValidator.ValidateBetween";
if (b < d || b > c)
throw new VEException(a, "err_invalidargument",
L_invalidbetweenint_text.replace("%1", e).replace("%2",
d).replace("%3", c));
}
);
VEValidator.ValidateBoolean = (function (b,c)
{
var a = "";
if (arguments != null && arguments.caller != null)
a = VEValidator.GetCaller(arguments.caller);
if (a == "")
a = "VEValidator.ValidateBoolean";
if (b != true && b != false)
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"bool"));
}
);
VEValidator.ValidateMapStyle = (function (a,c)
{
var b = "";
if (arguments != null && arguments.caller != null)
b = VEValidator.GetCaller(arguments.caller);
if (b == "")
b = "VEValidator.ValidateMapStyle";
if (a == null || a == "undefined")
throw new VEException(b, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"MapStyle"));
if (a == "r" || a == "R" || a == "s" || a == "S"
|| a == "a" || a == "A" || a == "o" || a == "O" ||
a == "h" || a == "H")
return true;
throw new VEException(b, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"MapStyle"));
}
);
VEValidator.ValidateMapMode = (function (b,c)
{
var a = "";
if (arguments != null && arguments.caller != null)
a = VEValidator.GetCaller(arguments.caller);
if (a = "")
a = "VEValidator.ValidateMapMode";
if (b == null || b == "undefined")
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"MapMode"));
if (b == VEMapMode.Mode2D || b == VEMapMode.Mode3D)
return true;
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"MapMode"));
}
);
VEValidator.ValidateDistanceUnit = (function (b,c)
{
var a = "";
if (arguments != null && arguments.caller != null)
a = VEValidator.GetCaller(arguments.caller);
if (a == "")
a = "VEValidator.ValidateDistanceUnit";
if (b == null || b == "undefined")
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"VEDistanceUnit"));
if (b == VEDistanceUnit.Miles || b == VEDistanceUnit.Kilometers)
return true;
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"VEDistanceUnit"));
}
);
VEValidator.ValidateMaxZoom = (function (b,c)
{
var a = "";
if (arguments != null && arguments.caller != null)
a = VEValidator.GetCaller(arguments.caller);
if (a == "")
a = "VEValidator.ValidateMaxZoom";
if (b == null || b == "undefined")
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"ValidateMaxZoom"));
if (b <= Msn.VE.API.Globals.vemaxzoom)
return true;
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"ValidateMaxZoom"));
}
);
VEValidator.ValidateLayerType = (function (a,c)
{
var b = "";
if (arguments != null && arguments.caller != null)
b = VEValidator.GetCaller(arguments.caller);
if (b == "")
b = "VEValidator.ValidateLayerType";
if (a == null || a == "undefined")
throw new VEException(b, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"VEDataType"));
if (a == VEDataType.GeoRSS || a == VEDataType.VECollection || a ==
VEDataType.VETileSource)
return true;
throw new VEException(b, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"VEDataType"));
}
);
VEValidator.ValidateDashboardSize = (function (a,c)
{
var b = "";
if (arguments != null && arguments.caller != null)
b = VEValidator.GetCaller(arguments.caller);
if (b == "")
b = "VEValidator.ValidateDashboardSize";
if (a == null || a == "undefined")
throw new VEException(b, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"VEDashboardSize"));
if (a == VEDashboardSize.Normal || a == VEDashboardSize.Small || a ==
VEDashboardSize.Tiny)
return true;
throw new VEException(b, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"VEDashboardSize"));
}
);
VEValidator.ValidateMiniMapSize = (function (b,c)
{
var a = "";
if (arguments != null && arguments.caller != null)
a = VEValidator.GetCaller(arguments.caller);
if (a == "")
a = "VEValidator.ValidateMiniMapSize";
if (b == null || b == "undefined")
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"VEMiniMapSize"));
if (b == VEMiniMapSize.Small || b == VEMiniMapSize.Large)
return true;
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"VEMiniMapSize"));
}
);
VEValidator.ValidateAltitudeMode = (function (b,c)
{
var a = "";
if (arguments != null && arguments.caller != null)
a = VEValidator.GetCaller(arguments.caller);
if (a == "")
a = "VEValidator.ValidateAltitudeMode";
if (b == null)
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"VEAltitudeMode"));
if (b != VEAltitudeMode.Absolute && b != VEAltitudeMode.RelativeToGround)
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"VEAltitudeMode"));
return true;
}
);
VEValidator.ValidateObject = (function (b,c,e,d)
{
var a = "";
if (arguments != null && arguments.caller != null)
a = VEValidator.GetCaller(arguments.caller);
if (a == "")
a = "VEValidator.ValidateObject";
if (b == null || b == "undefined")
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2", "non
null"));
if (! e.prototype.isPrototypeOf(b))
throw new VEException(a, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2", d));
}
);
VEValidator.ValidateObjectArray = (function (a,d,f,e)
{
var b = "";
if (arguments != null && arguments.caller != null)
b = VEValidator.GetCaller(arguments.caller);
if (b == "")
b = "VEValidator.ValidateObject";
if (a == null || typeof a == "undefined" || a.length == null || typeof
a.length == "undefined")
throw new VEException(b, "err_invalidargument",
L_invalidargument_text.replace("%1", d).replace("%2",
"array"));
for (var c = 0;c < a.length;++c)
if (a[c] == null || typeof a[c] == "undefined" || !
f.prototype.isPrototypeOf(a[c]))
throw new VEException(b, "err_invalidargument",
L_invalidargument_text.replace("%1", d).replace("%2", e));
}
);
VEValidator.ValidateOrientation = (function (a,c)
{
var b = "";
if (arguments != null && arguments.caller != null)
b = VEValidator.GetCaller(arguments.caller);
if (b == "")
b = "VEValidator.ValidateOrientation";
if (a == null || a == "undefined")
throw new VEException(b, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"VEOrientation"));
if (a != VEOrientation.North && a != VEOrientation.East && a !=
VEOrientation.West && a != VEOrientation.South)
throw new VEException(b, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"VEOrientation"));
}
);
VEValidator.ValidateBounds = (function (a,c)
{
var b = "";
if (arguments != null && arguments.caller != null)
b = VEValidator.GetCaller(arguments.caller);
if (b == "")
b = "VEValidator.ValidateBounds";
if (a == null || a == "undefined")
throw new VEException(b, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"VELatLongRectangle"));
if (a.TopLeftLatLong == null || a.BottomRightLatLong == null ||
a.TopLeftLatLong.Latitude <= a.BottomRightLatLong.Latitude ||
a.TopLeftLatLong.Longitude >= a.BottomRightLatLong.Longitude)
throw new VEException(b, "err_invalidargument",
L_invalidargument_text.replace("%1", c).replace("%2",
"VELatLongRectangle"));
}
);
VEValidator.GetCaller = (function (b)
{
if (b != null || b != "")
{
try
{
var a = (b.toString().match(/function (\w*)/))[1];
}
catch (c)
{
a = "";
}
if (a == null || a.length == 0)
return "";
else
return a;
}
else
return "";
}
);
VEPushpin.ShowDetailOnMouseOver = true;
VEPushpin.OnMouseOverCallback = null;
VEPushpin.prototype.Dispose = (function ()
{
this.DetailsStyle == null;
this.TitleStyle = null;
this.IconStyle = null;
this.Details = null;
this.IconUrl = null;
this.Title = null;
this.LatLong = null;
this.ID = null;
this.m_vemapcontrol = null;
this.m_vemap = null;
}
);
VEPushpin.Hide = (function (a)
{
if (window.ero != null)
{
if (a == "undefined" || a == null)
a = false;
window.ero.hide(a);
}
}
);
VEPushpin.GetEroContent = (function (c,b,e,d)
{
var a = "<p>";
if (c != null && c != "undefined" && c.length > 0)
a += "<div class=\"" + e + "\">" + unescape(c) +
"</div>";
if (b != null && b != "undefined" && b.length > 0)
a += "<div class=\"" + d + "\">" + unescape(b) +
"</div>";
if (! document.all && (c.length == 0 || b.length == 0))
a += "<br/><br/>";
a += "</p>";
return a;
}
);
VEPushpin.Show = (function (l,m,k,h,d,c,g,e)
{
var a = VEMap._GetMapFromGUID(l);
if (a == null || a == "undefined")
return ;
var i = a.vemapcontrol.GetX(h) + a.GetLeft(), j = a.vemapcontrol.GetY(k) + a.GetTop();
if (VEPushpin.ShowDetailOnMouseOver)
{
var b = $ID(m + "_" + a.GUID);
if (b != null && b != "undefined")
{
var f = VEPushpin.GetEroContent(d, c, g, e);
window.ero.setContent(f);
window.ero.setBoundingArea(null);
window.ero.getBoundingArea().move(Gimme.Screen.getScrollPosition());
window.ero.dockToElement(b);
}
}
if (VEPushpin.OnMouseOverCallback != null)
VEPushpin.OnMouseOverCallback(i, j, d, unescape(c));
}
);
VEPushpin.Show3D = (function (a,c,b,f,d)
{
if (VEPushpin.ShowDetailOnMouseOver)
{
var e = VEPushpin.GetEroContent(c, b, f, d);
window.ero.setContent(e);
ero.setGlitz(false, false, false, true);
window.ero.dockToRect(a, null, - 1);
}
if (VEPushpin.OnMouseOverCallback != null)
VEPushpin.OnMouseOverCallback((a.getP1()).x, (a.getP1()).y, c, unescape(b));
}
);
VEPushpin.DisposeERO = (function ()
{
if (window.ero != null && window.ero != "undefined")
{
window.ero.destroy();
window.ero = null;
}
}
);
VEPushpin.prototype._SetMapInstance = (function (a)
{
this.m_vemap = a;
this.m_vemapcontrol = a.vemapcontrol;
}
);
VEPushpin.prototype.GetContent = GetContent;
VE_ScratchpadManager.AddGeoLocation = (function ()
{
return ;
}
);
VE_ScratchpadManager.AddLocation = VE_ScratchpadManager.AddGeoLocation;
VE_Scratchpad = VE_ScratchpadManager;
VEGraphicsManager.prototype.RemoveLine = (function (a)
{
this.RemoveLinebyId(a.ID);
}
);
VEGraphicsManager.prototype.RemoveLinebyId = (function (b)
{
if (this.m_vegraphiccanvas == null || this.m_vegraphiccanvas == "undefined")
{
throw new VEException("VEMap:RemoveLinebyId",
"err_GraphicsInitError", L_GraphicsInitError_Text);
return ;
}
var c = this.m_vegraphicspolylines.length, a = 0;
while (a < c && b != this.m_vegraphicspolylines[a].ID)
a++;
if (a < c)
this.m_vegraphicspolylines.splice(a, 1);
else
{
throw new VEException("VEMap:RemoveLinebyId",
"err_GraphicsInitError", L_invalidpolylineid_text);
return ;
}
if (this.m_vemap.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
this.Clear3DShape(b);
else
{
this.Clear();
this.Draw();
}
}
);
VEGraphicsManager.prototype.RemoveAllLines = (function ()
{
if (this.m_vemap.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
this.ClearAll3DShape();
this.m_vegraphicspolylines = [];
this.Clear();
this.Draw();
}
);
VEGraphicsManager.prototype.DrawLine = (function (a)
{
if (this.m_vegraphiccanvas == null || this.m_vegraphiccanvas == "undefined")
{
throw new VEException("VEMap:DrawLine", "err_GraphicsInitError",
L_GraphicsInitError_Text);
return ;
}
VEValidator.ValidateObject(a, "vePolyline", VEPolyline,
"VEPolyline");
var c = this.m_vegraphicspolylines.length;
for (var b = 0;b < c;b++)
if (a.ID == this.m_vegraphicspolylines[b].ID)
throw new VEException("VEMap:DrawLine", "err_invalidpolylineid",
L_invalidpolylineid_text);
this.m_vegraphicspolylines.push(a);
this.DrawOne(a, true);
}
);
VEGraphicsManager.prototype.RemovePolygon = (function (a)
{
this.RemovePolygonbyId(a.ID);
}
);
VEGraphicsManager.prototype.RemovePolygonbyId = (function (b)
{
if (this.m_vegraphiccanvas == null || this.m_vegraphiccanvas == "undefined")
{
throw new VEException("VEMap:RemovePolygonbyId",
"err_GraphicsInitError", L_GraphicsInitError_Text);
return ;
}
var c = this.m_vegraphicspolygons.length, a = 0;
while (a < c && b != this.m_vegraphicspolygons[a].ID)
a++;
if (a < c)
this.m_vegraphicspolygons.splice(a, 1);
else
{
throw new VEException("VEMap:RemovePolygonbyId",
"err_GraphicsInitError", L_invalidpolygonid_text);
return ;
}
if (this.m_vemap.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
this.Clear3DShape(b);
else
{
this.Clear();
this.Draw();
}
}
);
VEGraphicsManager.prototype.RemoveAllPolygons = (function ()
{
if (this.m_vemap.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
this.ClearAll3DShape();
this.m_vegraphicspolygons = [];
this.Clear();
this.Draw();
}
);
VEGraphicsManager.prototype.DrawPolygon = (function (a)
{
if (this.m_vegraphiccanvas == null || this.m_vegraphiccanvas == "undefined")
{
throw new VEException("VEMap:DrawPolygon",
"err_GraphicsInitError", L_GraphicsInitError_Text);
return ;
}
VEValidator.ValidateObject(a, "vePolygon", VEPolygon, "VEPolygon");
var c = this.m_vegraphicspolygons.length;
for (var b = 0;b < c;b++)
if (a.ID == this.m_vegraphicspolygons[b].ID)
throw new VEException("VEMap:DrawPolygon",
"err_invalidpolygonid", L_invalidpolygonid_text);
this.m_vegraphicspolygons.push(a);
this.DrawOne(a, false);
}
);
VEGraphicsManager.prototype.Dispose = (function ()
{
if (this.m_vegraphiccanvas != null)
{
this.m_vegraphiccanvas.Clear();
this.m_vegraphiccanvas.Destroy();
this.m_vegraphiccanvas = null;
}
if (this.m_vegraphicspolylines != null && this.m_vegraphicspolylines !=
"undefined")
{
var b = this.m_vegraphicspolylines.length;
for (var a = 0;a < b;a++)
this.m_vegraphicspolylines.pop().Dispose();
}
if (this.m_vegraphicspolygons != null && this.m_vegraphicspolygons !=
"undefined")
{
var c = this.m_vegraphicspolygons.length;
for (var a = 0;a < c;a++)
this.m_vegraphicspolygons.pop().Dispose();
}
if (this.m_vemap != null)
{
this.m_vemapcontrol.DetachEvent("onchangeview", this.Update);
this.m_vemapcontrol.DetachEvent("onobliquechange", this.Update);
this.m_vemapcontrol.DetachEvent("onstartzoom", this.Clear);
}
}
);
VEGraphicsManager.prototype.DrawAll3DPushpins = (function ()
{
if (this.m_vemap.GetMapMode() != Msn.VE.MapActionMode.Mode3D)
return ;
if (! this.m_vemap.pushpins)
return ;
if (typeof this._spacecontrol == "undefined" || this._spacecontrol == null)
this._spacecontrol = this.m_vemapcontrol.Get3DControl();
if (! this._spacecontrol)
return ;
var c = this.m_vemap.pushpins, e = c.length;
for (var a = 0;a < e;a++)
{
var b = c[a], d = b.LatLong;
this.Add3DPushpin(b.ID, d.Latitude, d.Longitude, 25, 25, "VEAPI_Pushpin",
b, Msn.VE.API.Globals.vepushpinpanelzIndex - 1);
}
}
);
VEGraphicsManager.prototype.Add3DPushpin = (function (b,e,f,n,l,g,d,m)
{
var h = f, j = e, k = this._hackUniqueLayerId, o = "text=\"\"", c;
c = GetImageFullUrl(d.Iconurl);
var i = b;
this.m_vemapcontrol.Get3DControl().AddPointWithProperties(k, i, j, h, c, o);
var a = null;
if (! $ID(b))
{
a = this.m_vemapcontrol.AddPushpin(b, e, f, n, l, g, d.GetContent(), m,
"VEAPI_Pushpin", false, false);
if (a)
a.style.display = "none";
}
}
);
VEGraphicsManager.prototype.Remove3DPushpin = (function (a)
{
if (typeof this._spacecontrol == "undefined" || this._spacecontrol == null)
this._spacecontrol = this.m_vemapcontrol.Get3DControl();
this.Clear3DShape(a);
this.m_vemapcontrol.RemovePushpin(a);
}
);
VEGraphicsManager.prototype.ClearAllPushpins = (function (b)
{
if (typeof this._spacecontrol == "undefined" || this._spacecontrol == null)
this._spacecontrol = this.m_vemapcontrol.Get3DControl();
var d = b.length;
for (var c = 0;c < d;c++)
{
var a = b.pop();
if (! a.IsInLayer)
{
this.Clear3DShape(a.ID);
a.Dispose();
}
}
this.m_vemapcontrol.ClearPushpins();
}
);
VEGraphicsManager.prototype.ClearAll3DShape = (function ()
{
var c = null, b = 0;
if (this.m_vegraphicspolylines != null && this.m_vegraphicspolylines !=
"undefined")
{
b = this.m_vegraphicspolylines.length;
for (var a = 0;a < b;a++)
{
c = this.m_vegraphicspolylines[a];
this.Clear3DShape(c.ID);
}
}
if (this.m_vegraphicspolygons != null && this.m_vegraphicspolygons !=
"undefined")
{
b = this.m_vegraphicspolygons.length;
for (var a = 0;a < b;a++)
{
c = this.m_vegraphicspolygons[a];
this.Clear3DShape(c.ID);
}
}
}
);
VEGraphicsManager.prototype.Clear3DShape = (function (c)
{
var a = c;
this._spacecontrol.DeleteGeometry(this._hackUniqueLayerId, a);
var b = a + this._entityIdShapePostfix;
this._spacecontrol.DeleteGeometry(this._hackUniqueLayerId, b);
}
);
VELatLong.prototype.SetAltitude = (function (b,a)
{
VEValidator.ValidateFloat(b, "altitude");
this.Altitude = b;
if (a != null)
{
VEValidator.ValidateAltitudeMode(a, "altitudeMode");
this.AltitudeMode = a;
}
else
this.AltitudeMode = VEAltitudeMode.Default;
}
);
VELatLong.prototype.HasAltitude = (function ()
{
return this.Altitude != null;
}
);
VELatLong.prototype.toString = toString;
VELatLong.prototype.Clone = Clone;
VEAltitudeMode = new (function ()
{
this.Default = "Ground";
this.Absolute = "Datum";
this.RelativeToGround = "Ground";
}
)();
VEPolyline.prototype.SetColor = SetColor;
VEPolyline.prototype.SetWidth = SetWidth;
VEPolyline.prototype.GetLatLongs = GetLatLongs;
VEPolyline.prototype.Dispose = Dispose;
VEPolygon.prototype.SetFillColor = SetFillColor;
VEPolygon.prototype.SetOutlineColor = SetOutlineColor;
VEPolygon.prototype.SetOutlineWidth = SetOutlineWidth;
VEPolygon.prototype.GetLatLongs = GetLatLongs;
VEPolygon.prototype.Dispose = Dispose;
var L_integerencodingoutofrange_text = "VEIntegerEncoding: The number encoded is out
of supported range", L_floatintegermapencodingoutofrange_text =
"VEFloatIntegerMap: The number encoded is out of supported range",
L_integerencodinginvalidstringlength_text = "VEIntegerEncoding: Invalid string
length", L_integerencodingunknowndigit_text = "VEIntegerEncoding: The encoded
string has an unknown digit";
var L_velatlongencodinginvalidstringlength_text = "_xz1: Invalid string
length";
VEMapMode = new (function ()
{
this.Mode2D = 1;
this.Mode3D = 2;
}
)();
VEMapViewSpecification.prototype.Clone = MapViewSpecClone;
VEMapStyle = new (function ()
{
this.Road = Msn.VE.MapStyle.Road;
this.Shaded = Msn.VE.MapStyle.Shaded;
this.Aerial = Msn.VE.MapStyle.Aerial;
this.Hybrid = Msn.VE.MapStyle.Hybrid;
this.Oblique = Msn.VE.MapStyle.Oblique;
this.Birdseye = Msn.VE.MapStyle.Oblique;
}
)();
VEOrientation = new (function ()
{
this.North = Msn.VE.Orientation.North;
this.East = Msn.VE.Orientation.East;
this.West = Msn.VE.Orientation.West;
this.South = Msn.VE.Orientation.South;
}
)();
VEMap.prototype.__HandleAuthentication = (function (a)
{
if (this.vemapcontrol)
this.vemapcontrol.__HandleAuthentication(a);
}
);
$VE_A.PgName = {Ads : "Ads Response", AdsListing : "Ads", Business :
"Business Listing", BusinessWebsite : "Business Website", Call :
"Click to Call", CategoryBrowser : "Category Browser", Collection :
"Collections", ColBrowser : "Collection Browser", DD : "Driving
Directions", Default : "Default", Details : "Details", Email :
"Email", ERO : "ERO", Fav : "Favorites", Help :
"Help", Home : "Home Page", MAB : "Map Action Bar", Map :
"Map Control", Mobile : "Send to Mobile", PartyMap : "Party
Map", PersonalLocations : "Personal Locations", PLink :
"Permanlink", Print : "Print", SP : "Scratchpad", SReq :
"Search Request", SRes : "Search Response", Traffic :
"Traffic", WIP : "Welcome Panel", Inst3D : "Install 3D",
Model3D : "3D Models", Quality3D : "3D Performance Options", TD :
"Transit Directions"};
$VE_A.MapMode = ["ModeUnknown", "Mode2D", "Mode3D",
"ModeOblique"];
$VE_A.analyticsEnabled = Msn.VE.API ? false : true;
$VE_A.logDelay = 500;
$VE_A.LogHelp = (function ()
{
$VE_A.Log($VE_A.PgName.Help, "Help");
}
);
$VE_A.FireLog3DPan = (function ()
{
$VE_A.Log($VE_A.PgName.Map, "3D PAN");
}
);
$VE_A.LogCategoryBrowser = (function (a)
{
if (a == null || typeof a == "undefined")
return ;
if (a.EntryPoint != null)
s.prop17 = a.EntryPoint;
if (a.CategoryMode != null)
s.eVar13 = a.CategoryMode;
if (a.SearchId != null)
s.eVar15 = a.SearchId;
if (a.IsSearchRequest)
s.events = "Event8";
if (a.CategoryId != null)
s.eVar14 = a.CategoryId;
$VE_A.Log($VE_A.PgName.CategoryBrowser, a.NavAction);
}
);
$VE_A.LogSearchResponse = (function (a)
{
if (a == null || typeof a == "undefined")
return ;
s.events = "Event10";
$VE_A.SetProperties(null, map.GetMapMode() == Msn.VE.MapActionMode.ModeOblique ? 1 :
map.GetZoomLevel(), a.CenterPoint.Latitude, a.CenterPoint.Longitude);
if (a.BoundingBox != null)
{
var b = a.BoundingBox.NorthEastCorner, c = a.BoundingBox.SouthWestCorner;
s.prop30 = "(" + b.Latitude + "," + b.Longitude +
"),(" + c.Latitude + "," + c.Longitude + ")";
}
if (a.WhatString != null && a.WhatString != "")
s.eVar22 = a.WhatString;
if (a.WhereString != null && a.WhereString != "")
s.eVar23 = a.WhereString;
if (a.Classification != null && a.Classification != "")
s.eVar25 = a.Classification;
if (a.SearchId != null && a.SearchId != "")
s.eVar15 = a.SearchId;
if (a.PageNumber != null && a.PageNumber != - 1)
s.prop7 = a.PageNumber;
if (a.LocalSearchResultCount != null && a.LocalSearchResultCount != - 1)
s.prop27 = a.LocalSearchResultCount;
if (a.SortOrder != null && a.SortOrder != "")
s.prop28 = a.SortOrder;
if (a.SuggestedSearchTerm != null && a.SuggestedSearchTerm != "")
s.eVar19 = a.SuggestedSearchTerm;
if (a.DisambiguationCase != null && a.DisambiguationCase != "")
s.prop41 = a.DisambiguationCase;
$VE_A.Log($VE_A.PgName.SRes, a.NavAction);
}
);
$VE_A.LogSearchNavAction = (function (f,e,a,b,c,d)
{
if (a != null && typeof a != "undefined")
s.prop17 = a;
if (VE_SearchManager.searchId != null)
s.eVar15 = VE_SearchManager.searchId;
if (b != null && typeof b != "undefined")
s.prop12 = b;
if (c != null && typeof c != "undefined")
s.prop38 = c;
if (d != null && typeof d != "undefined")
s.prop21 = d;
$VE_A.Log(f, e);
}
);
$VE_A.LogAdsResponse = (function (i,k,j,m,n,h,g,d,c,b,f,a,e)
{
if (h || b || a)
{
s.events = h;
var o = $VE_A.PgName.Ads, l = "Ads Results";
$VE_A.SetProperties(n, m, k, j);
if (i != null)
s.eVar8 = i;
if (isFinite(parseInt(d)))
s.eVar10 = d;
if (isFinite(parseInt(c)))
s.eVar16 = c;
if (g != null)
s.eVar12 = g;
if (b != null)
s.prop18 = b;
if (f != null)
s.prop25 = f;
if (a != null)
s.prop19 = a;
if (e != null)
s.prop26 = e;
$VE_A.Log(o, l);
}
}
);
$VE_A.LogUIPrint = (function (a)
{
s.events = "Event11";
s.eVar34 = a;
$VE_A.Log($VE_A.PgName.Print, "Print page invoked.");
}
);
$VE_A.LogAdClick = (function (h,d,g,e,c,f)
{
var a = "Ad Click", b;
switch (d)
{
case 1:
a += " - click on title";
b = $VE_A.PgName.AdsListing;
break ;
case 2:
a += " - click on Directions link";
b = $VE_A.PgName.DD;
break ;
case 3:
a += " - click on Website link";
b = $VE_A.PgName.BusinessWebsite;
break ;
case 8:
a += " - click on Phone link";
b = $VE_A.PgName.AdsListing;
break ;
case 10:
a += " - click on pushpin";
b = $VE_A.PgName.ERO;
}
$VE_A.SetAdClickProperties(h, g, e, c, f);
$VE_A.Log(b, a, $VE_A.PgName.AdsListing);
}
);
$VE_A.LogAdEROClick = (function (f,e,c,h,g,b,a,d)
{
$VE_A.SetAdClickProperties(h, g, b, a, d);
$VE_A.Log(f, e, c);
}
);
$VE_A.SetAdClickProperties = (function (e,d,b,a,c)
{
s.events = "Event6";
s.eVar12 = b;
s.eVar11 = d;
s.eVar30 = a;
s.eVar29 = c;
s.eVar8 = e;
}
);
$VE_A.SetProperties = (function (d,c,b,a)
{
if (d != null)
s.prop3 = d;
if (c != null)
s.prop4 = c;
if (b != null && a != null)
s.prop5 = $VE_A.FormatLatLong(b, a);
}
);
$VE_A.LogSearch = (function (f)
{
var a = "", c = "", b = "";
s.eVar13 = "Single Box";
switch (f)
{
case "taskBar_searchbttn":
b = "Business";
if (Search_oneBox === "true")
a = ($get("taskBar_qparam")).value;
else
{
s.eVar13 = "Double Box";
a = ($get("taskBar_what")).value;
c = ($get("taskBar_where")).value;
}
break ;
case "taskBar_peoplebttn":
b = "People";
a = ($get("taskBar_peoplesearch")).value;
break ;
case "taskBar_collbttn":
b = "Collections";
a = ($get("taskBar_collsearch")).value;
break ;
case "taskBar_placesbttn":
b = "Places";
a = ($get("taskBar_placessearch")).value;
}
var e = $get("taskBar_searchid");
s.eVar15 = e.value;
s.events = "Event8";
s.pageName = $VE_A.PgName.SReq;
s.prop6 = "Search Request - " + b;
s.eVar24 = b;
s.prop3 = window["map"] ? map.GetMapStyle() : "";
s.prop4 = window["map"] ? map.GetZoomLevel() : "";
s.prop5 = window["map"] ? $VE_A.FormatLatLong(map.GetCenterLatitude(),
map.GetCenterLongitude()) : "";
s.prop8 = a ? a : "";
s.prop9 = c ? c : "";
s.prop13 = window["map"] ? $VE_A.MapMode[(map.GetMode())] : "";
s.prop36 = window.usertype == undefined ? 1 : usertype;
var d = $ID("logging");
if (d)
d.innerHTML = s.t();
$VE_A.ResetLogProps();
}
);
$VE_A.LogCollectionId = (function (c,b,a)
{
if (a)
s.prop39 = a;
$VE_A.Log(c, b);
}
);
$VE_A.LogClick2Call = (function ()
{
if (VE_SearchManager.searchId != null)
s.eVar15 = VE_SearchManager.searchId;
if (VE_SearchManager.activeEntityId != null)
s.prop38 = VE_SearchManager.activeEntityId;
if (VE_SearchManager.activeIndex != - 1)
s.prop12 = VE_SearchManager.activeIndex;
if (ero.isInUse())
{
s.prop17 = $VE_A.PgName.ERO;
$VE_A.Log($VE_A.PgName.Call, "Search Result ERO - click on C2C");
}
else
{
s.prop17 = $VE_A.PgName.SRes;
$VE_A.Log($VE_A.PgName.Call, "Result item: click on C2C");
}
}
);
$VE_A.LogSend2Phone = (function ()
{
if (VE_SearchManager.searchId != null)
s.eVar15 = VE_SearchManager.searchId;
if (VE_SearchManager.activeEntityId != null)
s.prop38 = VE_SearchManager.activeEntityId;
if (VE_SearchManager.activeIndex != - 1)
s.prop12 = VE_SearchManager.activeIndex;
if (ero.isInUse())
{
s.prop17 = $VE_A.PgName.ERO;
$VE_A.Log($VE_A.PgName.Mobile, "Search Result ERO - click on S2M");
}
else
{
s.prop17 = $VE_A.PgName.SRes;
$VE_A.Log($VE_A.PgName.Mobile, "Result item: click on S2M");
}
}
);
$VE_A.FormatLatLong = (function (b,a)
{
if (! b || ! a)
{
if (state && state.GetLatitude() && state.GetLongitude())
return state.GetLatitude().toFixed(3) + "," +
state.GetLongitude().toFixed(3);
return "0.0,0.0";
}
return b.toFixed(3) + "," + a.toFixed(3);
}
);
$VE_A.LogDDEntryPoint = (function (a)
{
s.prop17 = a;
$VE_A.Log($VE_A.PgName.DD, "Open Directions");
}
);
$VE_A.LogTrafficActivation = (function (a)
{
if (s.events == "undefined" || s.events == null || s.events == "")
s.events = "Event12";
else
s.events += ",Event12";
s.eVar1 = a;
if (window["map"])
s.eVar3 = map.GetCenterLatitude() + "," + map.GetCenterLongitude();
$VE_A.Log($VE_A.PgName.Traffic, "Traffic activated", a);
}
);
$VE_A.LogDirections = (function (d,h,f,g,c,e,a,b,i)
{
s.events = "Event3";
s.eVar1 = d;
s.eVar2 = h;
s.eVar3 = f;
s.eVar4 = g;
s.eVar5 = c;
s.eVar6 = e;
s.eVar31 = a;
s.eVar32 = b;
s.eVar33 = i;
$VE_A.Log($VE_A.PgName.DD, VE_Directions.NavigationAction.GetDirections);
}
);
$VE_A.LogTDEntryPoint = (function (a)
{
s.prop17 = a;
$VE_A.Log($VE_A.PgName.TD, "Open Transit Panel", a);
}
);
$VE_A.LogTDNavigationAction = (function (b,a)
{
if (a != null)
s.eVar36 = a + 1;
$VE_A.Log($VE_A.PgName.TD, b);
}
);
$VE_A.LogTDirections = (function (g,h,i,d,e,f,b,a,c)
{
s.events = "Event15";
s.eVar2 = g;
s.eVar3 = d + "/" + e;
s.eVar4 = f;
s.eVar5 = b;
s.eVar6 = c;
s.eVar7 = a;
s.eVar26 = h + "/" + i;
$VE_A.Log($VE_A.PgName.TD, VE_Transit.NavigationAction.GetDirections);
}
);
$VE_A.LogPartyMap = (function (b,d,c,a)
{
s.events = "Event16";
s.eVar1 = b;
s.eVar2 = d;
s.eVar3 = c;
s.eVar6 = a;
$VE_A.Log($VE_A.PgName.PartyMap, "Party Map Invoked");
}
);
$VE_A.Log3DTour = (function (c,b,a)
{
if (typeof b == "string")
s.prop17 = b;
if (typeof a == "string")
s.prop44 = a;
$VE_A.Log($VE_A.PgName.Collection, "3DTour " + c);
}
);
$VE_A.Log3DOblique = (function (f,a,b,d,e,c)
{
if ($VE_A.analyticsEnabled && typeof s != "undefined" && s !=
null)
{
if (a != null)
s.prop46 = a;
if (b != null)
s.prop47 = b;
if (d != null && e != null && c != null)
s.prop49 = d + "," + e + "," + c;
$VE_A.Log($VE_A.PgName.Map, f);
}
}
);
$VE_A.LogPersonalLocation = (function (a,b,c)
{
var d = a + " - " + TrimLocationName(b) + " " + c + " (Personal
Location)";
$VE_A.Log($VE_A.PgName.PersonalLocations, d);
}
);
$VE_A.LogDisambiguation = (function (g,f,e,h,c,d,i,a,b)
{
if (i)
s.events = "Event14";
if (a && a != "")
{
s.eVar13 = "Disambiguation";
s.eVar25 = a;
}
s.eVar15 = h;
s.prop8 = f;
s.prop9 = e;
s.prop41 = c;
s.prop42 = d;
if (b)
s.prop12 = b;
$VE_A.Log($VE_A.PgName.SRes, "Search Results: Disambiguation - " + g,
"Disambiguation");
}
);
$VE_A.Log = (function (f,d,c)
{
if (window.s == "undefined" || window.s == null)
return ;
if (! $VE_A.analyticsEnabled)
return ;
s.pageName = f;
if (s.events == "undefined" || s.events == null || s.events == "")
s.events = "Event9";
else
s.events += ",Event9";
if (s.prop3 == "")
s.prop3 = window["map"] ? map.GetMapStyle() : "";
if (s.prop4 == "")
s.prop4 = window["map"] ? map.GetZoomLevel() : "";
if (s.prop5 == "")
s.prop5 = window["map"] ? $VE_A.FormatLatLong(map.GetCenterLatitude(),
map.GetCenterLongitude()) : "";
s.prop6 = d ? d : "";
if (s.prop8 == "")
s.prop8 = $ID("what") ? ($ID("what")).value == L_MainWhatHelp_Text
? "" : ($ID("what")).value : "";
if (s.prop9 == "")
s.prop9 = $ID("where") ? ($ID("where")).value ==
L_SearchUseCurrentViewText_Text ? state.GetStartWhere() : ($ID("where")).value :
"";
s.prop13 = window["map"] ? $VE_A.MapMode[(map.GetMode())] : "";
s.prop36 = window.usertype == undefined ? 1 : usertype;
s.charSet = "UTF-8";
s.prop50 = g_omniFlightSuite;
if (s.prop13 == Msn.VE.MapActionMode.Mode3D)
{
var a = map.GetCurrentMapView(), b = null;
if (a.cameraLatlong != null && a.cameraLatlong != "undefined")
b = a.cameraLatlong.latitude.toFixed(3) + "," +
a.cameraLatlong.longitude.toFixed(3);
else
b = a.latlong.latitude.toFixed(3) + "," +
a.latlong.longitude.toFixed(3);
s.prop14 = b + "," + a.GetAltitude().toFixed(0) + "," +
a.GetTilt().toFixed(1) + "," + a.GetDirection().toFixed(1);
}
else
s.prop14 = "";
if (! s.prop17 && c != null)
s.prop17 = c;
var e = $ID("logging");
if (e)
e.innerHTML = s.t();
$VE_A.ResetLogProps();
}
);
$VE_A.ResetLogProps = (function ()
{
s.prop3 = "";
s.prop4 = "";
s.prop5 = "";
s.prop6 = "";
s.prop7 = "";
s.prop8 = "";
s.prop10 = "";
s.prop11 = "";
s.prop12 = "";
s.prop17 = "";
s.prop18 = "";
s.prop19 = "";
s.prop21 = "";
s.prop25 = "";
s.prop26 = "";
s.prop27 = "";
s.prop28 = "";
s.prop29 = "";
s.prop30 = "";
s.prop32 = "";
s.prop33 = "";
s.prop34 = "";
s.prop35 = "";
s.prop36 = "";
s.prop38 = "";
s.prop39 = "";
s.prop41 = "";
s.prop42 = "";
s.prop45 = "";
s.prop46 = "";
s.prop47 = "";
s.prop48 = "";
s.prop49 = "";
s.prop50 = "";
s.events = "";
s.eVar8 = "";
s.eVar9 = "";
s.eVar10 = "";
s.eVar11 = "";
s.eVar12 = "";
s.eVar13 = "";
s.eVar14 = "";
s.eVar15 = "";
s.eVar16 = "";
s.eVar19 = "";
s.eVar22 = "";
s.eVar23 = "";
s.eVar24 = "";
s.eVar25 = "";
s.eVar29 = "";
s.eVar30 = "";
s.campaign = "";
s.eVar1 = "";
s.eVar2 = "";
s.eVar3 = "";
s.eVar4 = "";
s.eVar5 = "";
s.eVar6 = "";
s.eVar31 = "";
s.eVar32 = "";
s.eVar33 = "";
s.eVar2 = "";
s.eVar20 = "";
s.eVar34 = "";
s.eVar36 = "";
s.eVar7 = "";
s.eVar26 = "";
}
);
var VE_ModuleName = {APICORE : "__core__", APICONTROLS :
"__controls__", APIBIRDSEYE : "__birdseye__", APILAYERS :
"__layers__", APIFIND : "__find__", APIROUTING :
"__routing__", APITRAFFIC : "__traffic__", API3D : "__3d__",
APITILES : "__tiles__"}, _VE_ModuleStatus = {__core__ : "loaded",
__layers__ : null, __controls__ : null, __find__ : null, __routing__ : null, __traffic__ :
null, ___3d__ : null, __birdseye__ : null, __tiles__ : null};
VE_RequestUrl = Msn.VE.API.Globals.vecurrentdomain +
"/veapi.ashx?VEAPI_DisableAtlasCompat=true&v=" +
Msn.VE.API.Globals.vecurrentversion + "&__load__";
var _VEDownloadQueue = null;
_VERegisterNamespaces("Msn.VE");
Msn.VE.Animation = {Animation : (function (h,f)
{
function c()
{
if (b)
{
e();
a = setTimeout(c, d);
}
else
a = null;
}
function g()
{
if (! b)
{
b = true;
c();
a = window.setTimeout(c, d);
}
}
function i()
{
if (a != null)
{
window.clearTimeout(a);
a = null;
}
b = false;
}
var b = false;
this.Running = b;
var e = h, d = f, a = null;
this.Start = g;
this.Stop = i;
}
), AccelerationFunction : (function (e)
{
function c()
{
b = [];
b[0] = 0;
for (var c = 1;c <= a;c++)
b[c] = b[(c - 1)] + d(c / a);
}
var b = null, a = 200, d = e;
this.setSteps = (function (d)
{
a = d;
b = null;
c();
}
);
this.getSteps = (function ()
{
return a;
}
);
this.getValue = (function (e)
{
if (! b)
c();
var d = parseInt(Math.round(e * a));
if (d < 0)
d = 0;
if (d > a)
d = a;
return b[d];
}
);
this.getTotal = (function ()
{
return this.getValue(1);
}
);
}
), Movie : (function (b,g)
{
function h()
{
c++;
if (c > e.length - 1)
{
c = 0;
if (! a.Repeat)
{
clearInterval(d);
return ;
}
else
a.clear();
}
f(c);
}
function f(c)
{
var a = e[c];
if (a.append)
b.innerHTML += a.data;
else
b.innerHTML = a.data;
}
var a = this;
this.Repeat = true;
this.AppendContent = true;
var e = [], c = - 1, d = null;
this.addFrame = (function (b,a)
{
if (a == null)
a = true;
var c = {data : b, append : a};
e.push(c);
}
);
this.start = (function ()
{
a.stop();
a.show();
a.clear();
c = - 1;
d = setInterval(h, g);
}
);
this.stop = (function ()
{
if (d)
clearInterval(d);
}
);
this.end = (function ()
{
a.stop();
f(e.length - 1);
}
);
this.show = (function ()
{
b.style.visibility = "visible";
}
);
this.hide = (function ()
{
b.style.visibility = "hidden";
}
);
this.clear = (function ()
{
b.innerHTML = "";
}
);
}
), RollDirection : {TopDown : 1, RightLeft : 2, BottomUp : 4, LeftRight : 8}, RollStyle :
{In : 0, Out : 1}, Roller : (function (q)
{
function k(u,k,t)
{
function v(i)
{
return (function ()
{
var m = parseInt(Math.round(e.getValue(i) * C)) + q, n =
parseInt(Math.round(e.getValue(i) * D)) + r, j = {top : 0, right : 0, bottom : 0, left :
0};
if ((k & a.RollDirection.TopDown) == a.RollDirection.TopDown)
{
l.Functions.setClip(b, f.top, n + "px");
j.top = n - r;
}
if ((k & a.RollDirection.RightLeft) == a.RollDirection.RightLeft)
{
l.Functions.setClip(b, f.right, y - m + "px");
j.right = - m + q;
}
if ((k & a.RollDirection.BottomUp) == a.RollDirection.BottomUp)
{
l.Functions.setClip(b, f.bottom, w - n + "px");
j.bottom = - n + r;
}
if ((k & a.RollDirection.LeftRight) == a.RollDirection.LeftRight)
{
l.Functions.setClip(b, f.left, m + "px");
j.left = m - q;
}
if (d != null)
{
var p;
for (p = 0;p < d.length;p++)
{
var o = d[p], t = j.top + j.bottom, x = o.origPos.y + t, s = j.left + j.right, v
= o.origPos.x + s;
if (s != 0)
o.style.left = v + "px";
if (t != 0)
o.style.top = x + "px";
}
}
if (i == 1)
{
g = false;
if (u == a.RollStyle.In)
c.executeEvent("afterrollin", c, new
h.EventArgs("afterrollin", b));
else
{
b.style.clip = "rect(auto auto auto auto)";
c.executeEvent("afterrollout", c, new
h.EventArgs("afterrollout", b));
}
}
c.executeEvent("roll", c, new h.EventArgs("roll", b));
}
);
}
g = true;
if (t !== false)
t = true;
n();
var f = p, q = 0, r = 0;
if (u == a.RollStyle.Out)
{
f = o;
q = i;
r = j;
}
var y = b.offsetWidth, w = b.offsetHeight, A = y - i, B = w - j, C = A / e.getTotal(),
D = B / e.getTotal(), x = e.getSteps();
if (! t)
{
v(1)();
return ;
}
for (var s = 0;s <= x;s++)
{
var z = s / x;
setTimeout(v(z), s * m);
}
}
function n()
{
var b = Msn.VE.Css;
if (d == null)
return ;
var c, i = d.length;
for (c = 0;c < i;c++)
{
var a = d[c];
a.origPos = {x : parseInt(b.Functions.getComputedStyle(a, "left")), y :
parseInt(b.Functions.getComputedStyle(a, "top"))};
if (isNaN(a.origPos.x))
{
var f = parseInt(b.Functions.getComputedStyle(a, "marginLeft"), 10),
e = parseInt(b.Functions.getCoputedStyle(a, "paddingLeft"), 10);
a.origPos.x = a.offsetLeft - (isNaN(f) ? 0 : f) - (isNaN(e) ? 0 : e);
}
if (isNaN(a.origPos.y))
{
var h = parseInt(b.Functions.getComputedStyle(a, "marginTop"), 10),
g = parseInt(b.Functions.getComputedStyle(a, "paddingTop"), 10);
a.origPos.y = a.offsetTop - (isNaN(h) ? 0 : h) - (isNaN(g) ? 0 : g);
}
}
b = null;
}
var c = this;
this.superclass = Msn.VE.OO.Eventable.EventableObject;
this.superclass();
var l = Msn.VE.Css, a = Msn.VE.Animation, h = Msn.VE.OO.Eventable, b = q, d = null, f =
true, g = false, e = AccelerationFunctions.CrazyElevator, i = 10, j = 10, m = 5, p = {top
: 1, right : 2, bottom : 3, left : 4}, o = {top : 3, right : 4, bottom : 1, left : 2};
this.setAccelerationFunction = (function (a)
{
if (a instanceof Msn.VE.Animation.AccelerationFunction)
e = a;
}
);
this.setXLeave = (function (a)
{
if (typeof a == "number" && a >= 0)
i = Math.floor(a, 10);
}
);
this.setYLeave = (function (a)
{
if (typeof a == "number" && a >= 0)
j = Math.floor(a, 10);
}
);
this.getLeave = (function ()
{
return {x : i, y : j};
}
);
this.setDelay = (function (a)
{
if (typeof a == "number" && a > 0)
m = Math.floor(a, 10);
}
);
this.isExpanded = (function ()
{
return f;
}
);
this.isRolling = (function ()
{
return g;
}
);
this.isAssociated = (function ()
{
if (d != null && d.length > 0)
return true;
return false;
}
);
this.associate = (function (a)
{
if (a instanceof Array)
d = a;
}
);
this.rollIn = (function (d)
{
if (g)
return ;
c.executeEvent("beforerollin", c, new h.EventArgs("beforerollin",
b));
k(a.RollStyle.In, d);
f = false;
}
);
this.rollOut = (function (d)
{
if (g)
return ;
c.executeEvent("beforerollout", c, new h.EventArgs("beforerollout",
b));
k(a.RollStyle.Out, d);
f = true;
}
);
this.expand = (function (b)
{
k(a.RollStyle.Out, b, false);
f = true;
}
);
this.collapse = (function (b)
{
k(a.RollStyle.In, b, false);
f = false;
}
);
}
), Slider : (function ()
{
var d = this, c = Msn.VE.Geometry, a = AccelerationFunctions.Linear, b = 5;
this.setAccelerationFunction = (function (b)
{
if (b instanceof Msn.VE.Animation.AccelerationFunction)
a = b;
}
);
this.setDelay = (function (a)
{
if (typeof a == "number" && a > 0)
b = a;
}
);
this.slideToPoint = (function (e,i)
{
function q(a,b)
{
return (function ()
{
e.style.top = parseInt(Math.round(b)) + "px";
e.style.left = parseInt(Math.round(a)) + "px";
}
);
}
var d = new c.Point(e.offsetLeft, e.offsetTop), n = d.getDistanceFrom(i);
a.setSteps(Math.floor(n / 10));
var p = n / a.getTotal(), o = i.y - d.y, l = i.x - d.x, f = Math.atan(o / l), m =
a.getSteps();
for (var h = 0;h <= m;h++)
{
sum = a.getValue(h / m);
var g = sum * p, k, j;
if (l < 0)
{
k = d.y - Math.sin(f) * g;
j = d.x - Math.cos(f) * g;
}
else
{
k = d.y + Math.sin(f) * g;
j = d.x + Math.cos(f) * g;
}
setTimeout(q(j, k), h * b);
}
}
);
}
)};
var AccelerationFunctions = {Linear : new Msn.VE.Animation.AccelerationFunction((function
()
{
return 1;
}
)), ExponentialAcc : new Msn.VE.Animation.AccelerationFunction((function (b)
{
var a = 0, d = 1, c = d - a, f = a + b * c, e = Math.pow(f, 2);
return e;
}
)), ExponentialDec : new Msn.VE.Animation.AccelerationFunction((function (b)
{
var a = - 1, d = 0, c = d - a, f = a + b * c, e = Math.pow(f, 2);
return e;
}
)), CosineWave : new Msn.VE.Animation.AccelerationFunction((function (b)
{
var a = - Math.PI, d = Math.PI, c = d - a, f = a + b * c, e = Math.cos(f) + 1;
return e;
}
)), CrazyElevator : new Msn.VE.Animation.AccelerationFunction((function (b)
{
var a = - 5, d = 5, c = d - a, f = a + b * c, e = 2 / (Math.pow(Math.abs(f), 3) + 1);
return e;
}
))};
_VERegisterNamespaces("Msn.VE.Geometry");
Msn.VE.Geometry.Point = (function (c,d)
{
var a = this, b = Msn.VE.Geometry;
this.x = c;
this.y = d;
this.add = (function (c,d)
{
var e = new b.Point(a.x + c, a.y + d);
return e;
}
);
this.getDistanceFrom = (function (b)
{
var c = Math.pow(b.x - a.x, 2) + Math.pow(b.y - a.y, 2), d = Math.sqrt(c);
return d;
}
);
}
);
Msn.VE.Geometry.Overlap = {Range : {GreaterThanX : 1, LessThanX : 2, GreaterThanY : 4,
LessThanY : 8, InXRange : 16, InYRange : 32, InRange : 48}, getInstance : (function (f,g)
{
function e()
{
if ((b.getP2()).x > (a.getP2()).x)
c += d.Range.GreaterThanX;
if ((b.getP1()).x < (a.getP1()).x)
c += d.Range.LessThanX;
if ((b.getP2()).y > (a.getP2()).y)
c += d.Range.GreaterThanY;
if ((b.getP1()).y < (a.getP1()).y)
c += d.Range.LessThanY;
if ((a.getP1()).x <= (b.getP1()).x && (b.getP2()).x <= (a.getP2()).x)
c += d.Range.InXRange;
if ((a.getP1()).y <= (b.getP1()).y && (b.getP2()).y <= (a.getP2()).y)
c += d.Range.InYRange;
}
var d = Msn.VE.Geometry.Overlap, a = f, b = g, c = 0;
e();
this.getRange = (function ()
{
return c;
}
);
this.getLeftXBleed = (function ()
{
if (c & d.Range.LessThanX)
return Math.abs((a.getP1()).x - (b.getP1()).x);
else
return 0;
}
);
this.getRightXBleed = (function ()
{
if (c & d.Range.GreaterThanX)
return (b.getP2()).x - (a.getP2()).x;
else
return 0;
}
);
this.getTopYBleed = (function ()
{
if (c & d.Range.LessThanY)
return Math.abs((a.getP1()).y - (b.getP1()).y);
else
return 0;
}
);
this.getBottomYBleed = (function ()
{
if (c & d.Range.GreaterThanY)
return (b.getP2()).y - (a.getP2()).y;
else
return 0;
}
);
}
)};
Msn.VE.Geometry.Rectangle = (function (h,i)
{
function f()
{
c();
}
function c()
{
d = b.y - a.y;
e = b.x - a.x;
}
var g = this, a = h, b = i, d, e;
f();
this.move = (function (c)
{
a.x = c.x;
a.y = c.y;
b.x = c.x + e;
b.y = c.y + d;
}
);
this.getP1 = (function ()
{
return a;
}
);
this.getP2 = (function ()
{
return b;
}
);
this.setP1 = (function (b)
{
a = b;
c();
}
);
this.setP2 = (function (a)
{
b = a;
c();
}
);
this.getWidth = (function ()
{
return e;
}
);
this.getHeight = (function ()
{
return d;
}
);
this.containsPoint = (function (c)
{
return c.x >= a.x && c.x <= b.x && c.y >= a.y && c.y
<= b.y;
}
);
this.scale = (function (d)
{
a.x -= d;
a.y -= d;
b.x += d;
b.y += d;
c();
}
);
this.getOverlap = (function (a)
{
var b = Msn.VE.Geometry;
return new b.Overlap.getInstance(g, a);
}
);
}
);
Msn.VE.Geometry.Functions = {getSlope : (function (a,b)
{
return (b.y - a.y) / (b.x - a.x);
}
), getYIntercept : (function (b,a)
{
return a.y - b * a.x;
}
), getBestBoundingPoint : (function (f,b,c)
{
var a = Msn.VE.Geometry;
if (! b)
b = g(f).getScreenPosition();
var e = new a.Rectangle(b, new a.Point(b.x + f.offsetWidth, b.y + f.offsetHeight)), j =
c.getOverlap(e), d = j.getRange();
if ((d & a.Overlap.Range.InRange) == a.Overlap.Range.InRange)
return b;
var h = b.x, i = b.y;
if (d & a.Overlap.Range.GreaterThanX)
h = (c.getP2()).x - e.getWidth();
if (d & a.Overlap.Range.LessThanX)
h = (c.getP1()).x;
if (d & a.Overlap.Range.GreaterThanY)
i = (c.getP2()).y - e.getHeight();
if (d & a.Overlap.Range.LessThanY)
i = (c.getP1()).y;
return new a.Point(h, i);
}
)};
_VERegisterNamespaces("Msn.VE.OO.Eventable");
Msn.VE.OO.Eventable.EventArgs = (function (b,a)
{
this.EventName = b;
this.Recipient = a;
}
);
Msn.VE.OO.Eventable.EventableObject = (function ()
{
function b(b)
{
var c = b, a = [];
this.addEvent = (function (c)
{
if (typeof c == "function")
{
var b;
for (b = 0;b < a.length;b++)
if (a[b] == c)
return ;
a.push(c);
}
}
);
this.removeEvent = (function (c)
{
if (typeof c != "function")
return ;
var b;
for (b = 0;b < a.length;b++)
if (a[b] == c)
{
a[b] = null;
delete a[b];
a.splice(b, 1);
}
}
);
this.destroy = (function ()
{
var b;
for (b = 0;b < a.length;b++)
{
a[b] = null;
delete a[b];
}
}
);
this.getEvents = (function ()
{
return a;
}
);
}
function c()
{
var d;
for (d in a)
if (a[d] instanceof b)
{
a[d].destroy();
a[d] = null;
}
a = null;
window.detachEvent("onunload", c);
}
if (typeof window.attachEvent != "undefined")
window.attachEvent("onunload", c);
var a = [];
this.getEventHash = (function ()
{
return a;
}
);
this.hookEvent = (function (d,e)
{
var c = a[d];
if (typeof c == "undefined" || c == null)
{
c = new b(d);
a[d] = c;
}
c.addEvent(e);
}
);
this.unhookEvent = (function (d,e)
{
var c = a[d];
if (c instanceof b)
c.removeEvent(e);
}
);
this.executeEvent = (function (g,h,f)
{
var d = a[g];
if (! (d instanceof b))
return ;
var e = d.getEvents(), c;
for (c = 0;c < e.length;c++)
e[c].call(h, f);
}
);
}
);
var ERO = {Classes : {ContainerNoBeak : "ero ero-noBeak", ContainerRightBeak :
"ero ero-rightBeak", ContainerLeftBeak : "ero ero-leftBeak", Beak :
"ero-beak", Shadow : "ero-shadow", Body : "ero-body",
Actions : "ero-actions", ActionsBackground : "ero-actionsBackground",
PreviewArea : "ero-previewArea", PaddingHack : "ero-paddingHack",
ProgressAnimation : "ero-progressAnimation"}, DefaultClasses : null,
BeakDirection : {Right : 0, Left : 1}, DockPosition : {Top : 0, Center : 1}, m_theEro :
null, BeakHeight : 34, Glitz : (function (d,e,b,c)
{
var a = this;
this.useBeak = d;
this.useFade = e;
this.useProgressTimer = b;
this.isTemporary = c;
this.copy = (function ()
{
return new ERO.Glitz(a.useBeak, a.useFade, a.useProgressTimer, a.isTemporary);
}
);
}
), EROEventArgs : (function (c,a,b)
{
this.superclass = Msn.VE.OO.Eventable.EventArgs;
this.superclass(c, a);
this.Entity = b;
}
), getInstance : (function ()
{
function b()
{
function E(b,a)
{
if (b == a)
return false;
while (a && a != b)
a = a.parentNode;
return a == b;
}
function w()
{
j = true;
}
function x(a)
{
var d = a.relatedTarget || a.toElement || a.srcElement;
if (! E(b, d))
c.hide();
}
function t()
{
if (b)
{
if (b.style.visibility != "visible")
b.style.visibility = "visible";
if (typeof b.style.opacity != "undefined")
b.style.opacity = 1;
c.executeEvent("aftershow", c, new
ERO.EROEventArgs("aftershow", b, k));
h = C.copy();
}
}
function A()
{
if (! j && b)
{
c.executeEvent("beforehide", c, new
ERO.EROEventArgs("beforehide", b, k));
b.style.visibility = "hidden";
e.hide();
if (! Msn.VE.API)
{
d.style.left = b.style.left = "0";
d.style.top = b.style.top = "0";
}
k = null;
c.executeEvent("afterhide", c, new
ERO.EROEventArgs("afterhide", b, k));
}
if (B)
n = 0;
}
function F()
{
function a()
{
if (j && ++v <= 10)
{
var c = v * 0.09999999;
b.style.opacity = c;
setTimeout(a, 50);
}
else
{
t();
v = 0;
}
}
if (z || ! j || ! b)
return ;
if (b.style && typeof b.style.filter != "undefined")
{
b.style.filter =
"progid:DXImageTransform.Microsoft.Fade(duration=.5)";
b.filters[0].Apply();
b.style.visibility = "visible";
b.style.display = "block";
b.filters[0].Play();
var c = setInterval((function ()
{
if (b.filters[0].status == 0)
{
clearInterval(c);
t();
}
}
), 10);
}
else
{
b.style.visibility = "visible";
if (v === 0)
a();
}
}
function D()
{
b.className = ERO.Classes.Container;
r.className = ERO.Classes.Shadow;
i.className = ERO.Classes.Body;
s.className = ERO.Classes.Beak;
q.className = ERO.Classes.Actions;
m.className = ERO.Classes.ActionsBackground;
l.className = ERO.Classes.PreviewArea;
u.className = ERO.Classes.PaddingHack;
d.className = ERO.Classes.ProgressAnimation;
}
this.superclass = Msn.VE.OO.Eventable.EventableObject;
this.superclass();
var c = this, y = null, f = null, k = null, j = false, o = 500, n = 0, B = true, h =
new ERO.Glitz(true, true, true, false), C = h.copy(), v = 0, z = false, b =
document.createElement("div");
b.className = ERO.Classes.ContainerLeftBeak;
if (typeof b.addEventListener != "undefined")
{
b.addEventListener("mouseover", w, false);
b.addEventListener("mouseout", x, false);
}
else
{
b.attachEvent("onmouseover", w);
b.attachEvent("onmouseout", x);
}
var r = document.createElement("div");
r.className = ERO.Classes.Shadow;
var i = document.createElement("div");
i.className = ERO.Classes.Body;
var q = document.createElement("div");
q.className = ERO.Classes.Actions;
var p = document.createElement("ul"), m =
document.createElement("div");
m.className = ERO.Classes.ActionsBackground;
var l = document.createElement("div");
l.className = ERO.Classes.PreviewArea;
var s = document.createElement("div");
s.className = ERO.Classes.Beak;
var u = document.createElement("div");
u.className = ERO.Classes.PaddingHack;
b.appendChild(r);
b.appendChild(s);
r.appendChild(i);
i.appendChild(m);
m.appendChild(l);
m.appendChild(q);
q.appendChild(p);
m.appendChild(u);
var d = document.createElement("div");
d.className = ERO.Classes.ProgressAnimation;
var e = new Msn.VE.Animation.Movie(d, 75);
e.addFrame("<div class = \"frame1\"></div>");
e.addFrame("<div class = \"frame2\"></div>");
e.addFrame("<div class = \"frame3\"></div>");
e.addFrame("");
e.addFrame("");
e.addFrame("<div class = \"frame2\"></div><div class =
\"frame3\"></div>", false);
e.addFrame("<div class = \"frame3\"></div>", false);
e.Repeat = false;
this.destroy = (function ()
{
if (b)
{
if (typeof b.removeEventListener != "undefined")
{
b.removeEventListener("mouseover", w, false);
b.removeEventListener("mouseout", x, false);
}
else
{
b.detachEvent("onmouseover", w);
b.detachEvent("onmouseout", x);
}
if (i.shimElement)
{
i.shimElement.removeNode(true);
i.shimElement = null;
}
b.parentNode.removeChild(b);
d.parentNode.removeChild(d);
b = null;
r = null;
i = null;
q = null;
p = null;
m = null;
l = null;
s = null;
u = null;
}
ERO.m_theEro = null;
k = null;
}
);
this.getElement = (function ()
{
return b;
}
);
this.getBody = (function ()
{
return i;
}
);
this.getAnimation = (function ()
{
return e;
}
);
this.getDelay = (function ()
{
return o + n;
}
);
this.setDelay = (function (a)
{
o = a || o;
}
);
this.getDelayDelta = (function ()
{
return n;
}
);
this.setDelayDelta = (function (a,b)
{
B = b == false ? false : true;
if (typeof a == "number")
n = a;
}
);
this.setClasses = (function (b,d)
{
var a;
if (ERO.DefaultClasses === null)
{
ERO.DefaultClasses = {};
for (a in ERO.Classes)
ERO.DefaultClasses[a] = ERO.Classes[a];
}
if (d !== false)
c.setClasses(ERO.DefaultClasses, false);
for (a in b)
if (typeof ERO.Classes[a] != "undefined")
ERO.Classes[a] = b[a];
D();
}
);
this.setBeak = (function (a)
{
if (a == ERO.BeakDirection.Left)
b.className = ERO.Classes.ContainerLeftBeak;
else
b.className = ERO.Classes.ContainerRightBeak;
}
);
this.setContent = (function (c)
{
var a = document.createElement("div");
a.className = "firstChild";
a.innerHTML = c;
var b = l.firstChild;
if (b)
l.replaceChild(a, b);
else
l.appendChild(a);
a = null;
b = null;
}
);
this.addAction = (function (b)
{
var a = document.createElement("li");
if (! b)
return ;
a.innerHTML = b;
p.appendChild(a);
a = null;
}
);
this.clearActions = (function ()
{
var a = p.getElementsByTagName("li"), c = a.length;
for (var b = 0;b < c;b++)
p.removeChild(a[0]);
}
);
this.dockToText = (function (e,b,i)
{
b = typeof b != "undefined" ? b : typeof window.event != "undefined"
? window.event : null;
var k = g(e).getPagePosition(), h = (Gimme.Screen.getMousePosition(b)).x, j = new
a.Point(h, k.y), f = new a.Point(0, parseInt(d.offsetHeight / 2, 10));
c.dockToPoint(j, f, e, i);
}
);
this.dockToElement = (function (b,e)
{
var d = g(b).getPagePosition(), f = new a.Rectangle(d, new a.Point(d.x + b.offsetWidth,
d.y + b.offsetHeight));
c.dockToRect(f, null, b, e);
}
);
this.dockToPoint = (function (b,d,f,e)
{
c.dockToRect(new a.Rectangle(b, b), d, f, e);
}
);
this.dockToRect = (function (m,q,I,C)
{
if (k === I)
{
clearTimeout(y);
if (j)
return ;
}
else
if (k !== null)
{
clearTimeout(y);
A();
}
var u = "px";
j = true;
k = I;
b.style.visibility = "hidden";
c.setBeak(ERO.BeakDirection.Left);
if (typeof q == "undefined" || q == null)
q = {x : 0, y : 0};
C = C || "";
i.style.width = C;
var g = l.offsetHeight - ERO.BeakHeight;
d.style.top = (m.getP1()).y - d.offsetHeight + q.y + u;
d.style.left = (m.getP2()).x - d.offsetWidth + q.x + u;
var r = (m.getP2()).x, E = (m.getP2()).y - g - ERO.BeakHeight / 2 - m.getHeight() / 2, x
= c.getSize(), G = (x.getP2()).y - (x.getP1()).y, B = (x.getP2()).x - (x.getP1()).x, J =
new a.Rectangle(new a.Point(r, E), new a.Point(r + B, E + G)), D = f.getOverlap(J), p =
D.getRange(), w, v;
if (p & a.Overlap.Range.InXRange)
v = r;
if (p & a.Overlap.Range.InYRange)
w = E;
if (p & a.Overlap.Range.GreaterThanX)
{
c.setBeak(ERO.BeakDirection.Right);
v = r > (f.getP2()).x ? (f.getP1()).x + f.getWidth() - B : r - B - m.getWidth();
}
if (p & a.Overlap.Range.LessThanX)
{
c.setBeak(ERO.BeakDirection.Left);
v = (f.getP1()).x;
}
if (p & a.Overlap.Range.GreaterThanY)
{
w = (f.getP1()).y + f.getHeight() - G;
var H = D.getBottomYBleed();
g += H;
if (g > b.offsetHeight - ERO.BeakHeight)
g = b.offsetHeight - ERO.BeakHeight - 4;
}
if (p & a.Overlap.Range.LessThanY)
{
w = (f.getP1()).y;
var H = D.getTopYBleed();
g -= H;
if (g < 0)
g = 0;
}
b.style.top = w + u;
b.style.left = v + u;
s.style.top = g + "px";
c.executeEvent("beforeshow", c, new ERO.EROEventArgs("beforeshow",
b, k));
if (! h.useBeak)
b.className = ERO.Classes.ContainerNoBeak;
z = false;
if (h.useProgressTimer)
{
e.start();
if (! h.useFade)
{
setTimeout(t, o + n);
return ;
}
}
if (h.useFade)
setTimeout(F, o + n);
else
t();
}
);
this.showImmediate = (function ()
{
z = j = true;
e.end();
t();
}
);
this.hide = (function (a)
{
j = false;
if (a === true)
A();
else
{
clearTimeout(y);
y = setTimeout(A, o + n);
}
}
);
this.setGlitz = (function (c,d,a,b)
{
if (c != null)
h.useBeak = c;
if (d != null)
h.useFade = d;
if (a != null)
h.useProgressTimer = a;
if (b === true)
h.isTemporary = b;
else
C = h.copy();
}
);
this.setBoundingArea = (function (e,g)
{
if (e === null)
{
var b = Gimme.Screen.getScrollPosition(), c = Gimme.Screen.getViewportSize(), d =
new a.Rectangle(new a.Point(0, 0), new a.Point(c.width, c.height));
d.move(new a.Point(b.x, b.y));
f = d;
}
else
f = new a.Rectangle(e, g);
}
);
this.getBoundingArea = (function ()
{
return f;
}
);
this.isInUse = (function ()
{
return j;
}
);
this.isVisible = (function ()
{
return b.style.visibility == "visible";
}
);
this.addToPage = (function ()
{
b.style.visibility = "hidden";
d.style.visibility = "hidden";
document.body.appendChild(b);
document.body.appendChild(d);
}
);
this.getSize = (function ()
{
var c = b.offsetLeft, d = b.offsetTop, f = c + b.offsetWidth, g = d + b.offsetHeight, e
= new a.Rectangle(new a.Point(c, d), new a.Point(f, g));
return e;
}
);
}
var a = Msn.VE.Geometry;
if (! ERO.m_theEro)
{
ERO.m_theEro = new b();
ERO.m_theEro.setBoundingArea(null);
}
ERO.m_theEro.addToPage();
return ERO.m_theEro;
}
)};
VETime.FormatTime = (function (a)
{
if (a == null || a == "" || a == "undefined")
return "";
var c = false, d = a.substr(0, 10), e = a.substr(11, 5), b = "";
if (a.indexOf("AM") > - 1)
{
b = "AM";
c = true;
}
else
b = "PM";
return d + " " + VETime.ConvertTo12HourFormat(e, c) + " " + b;
}
);
VETime.ConvertTo12HourFormat = (function (d,c)
{
var a = d;
try
{
var b = parseFloat(a.replace(":", "."));
if (b > 12)
if (b < 13 && c != true)
{}
else
b = b - 12;
a = b.toFixed(2);
a = a.replace(".", ":");
}
catch (e)
{
a = "";
}
return a;
}
);
VETime.FormatPanelTime = (function (a,g)
{
if (a == null || a == "" || a == "undefined")
return "";
try
{
var b = 0, d = false, i = a.substr(4, 8), h = a.indexOf(":"), f =
a.substr(h - 2, 5), c = "";
if (a.indexOf("AM") > - 1)
{
c = "AM";
d = true;
b = a.indexOf("AM");
}
else
{
c = "PM";
b = a.indexOf("PM");
}
var e = "";
if (b > 0)
e = a.substr(b + 3, 3);
if (g)
return i + " " + VETime.ConvertTo12HourFormat(f, d) + " " + c
+ " " + e;
else
return VETime.ConvertTo12HourFormat(f, d) + " " + c + " " +
e;
}
catch (j)
{}
}
);
VETime.getMonth = (function (a)
{
switch (a)
{
case "01":
return " Jan";
case "02":
return " Feb";
case "03":
return " Mar";
case "04":
return " Apr";
case "05":
return " May";
case "06":
return " Jun";
case "07":
return " Jul";
case "08":
return " Aug";
case "09":
return " Sep";
case "10":
return " Oct";
case "11":
return " Nov";
case "12":
return " Dec";
}
}
);
var customCursors = Msn.VE.Css.Cursors.CustomCursors;
if (customCursors != null)
if (! (navigator.userAgent.indexOf("IE") >= 0) && (typeof
VEAPI_DisableAtlasCompat == "undefined" || VEAPI_DisableAtlasCompat != true))
VENetwork.AttachStyleSheet(Msn.VE.API.Constants.stylesheet);
if (navigator.userAgent.indexOf("MSIE") >= 0 &&
parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE") + 5))
== 6)
document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
VEMap._GetMapFromGUID = (function (a)
{
if (Msn.VE.API.Globals.vemapinstances != null &&
Msn.VE.API.Globals.vemapinstances[a] == null || Msn.VE.API.Globals.vemapinstances[a] ==
"undefined")
{
throw new VEException("VEMap:_GetMapFromGUID",
"err_notinitialized", L_notinitialized_text);
return ;
}
return Msn.VE.API.Globals.vemapinstances[a];
}
);
VEMap.prototype.InitializeMap = (function ()
{
_VERegisterNamespaces("Msn.VE");
this.mapelement.innerHTML = "";
this.mapelement.style.overflow = "hidden";
if (this.mapelement.className == null || this.mapelement.className ==
"undefined" || this.mapelement.className == "")
{
if (this.mapelement.style == null || this.mapelement.style.height == null ||
this.mapelement.style.height == "undefined" || this.mapelement.style.height ==
"")
this.mapelement.style.height = Msn.VE.API.Globals.vemapheight + "px";
if (this.mapelement.style == null || this.mapelement.style.width == null ||
this.mapelement.style.width == "undefined" || this.mapelement.style.width ==
"")
this.mapelement.style.width = Msn.VE.API.Globals.vemapwidth + "px";
}
var a = {};
if (this.mapMode != null && this.mapMode != "undefined")
a.mapMode = this.mapMode;
else
a.mapMode = Msn.VE.API.Globals.vemapmode;
a.mapGUID = this.GUID;
a.clientToken = this.ClientToken;
if (this.initialLatitude != null && this.initialLatitude !=
"undefined")
a.latitude = this.initialLatitude;
else
a.latitude = Msn.VE.API.Globals.vemaplatitude;
if (this.initialLongitude != null && this.initialLongitude !=
"undefined")
a.longitude = this.initialLongitude;
else
a.longitude = Msn.VE.API.Globals.vemaplongitude;
if (this.initialZoomLevel != null && this.initialZoomLevel !=
"undefined")
a.zoomlevel = this.initialZoomLevel;
else
a.zoomlevel = Msn.VE.API.Globals.vemapzoom;
if (this.initialMapStyle != null && this.initialMapStyle !=
"undefined")
a.mapstyle = this.initialMapStyle;
else
a.mapstyle = Msn.VE.API.Globals.vemapstyle;
this.m_dashboardId = this.ID + "_dashboard";
if (this.fixedMap != true)
{
a.showDashboard = VE_CheckModuleStatus(VE_ModuleName.APICONTROLS) ==
"loaded" && this._showDashboard;
a.dashboardSize = this.dashboardSize;
a.dashboardVersion = this.dashboardVersion;
a.dashboardX = 5;
a.dashboardY = 5;
a.dashboardId = this.m_dashboardId;
a.showScaleBar = true;
}
a.obliqueEnabled = true;
a.obliqueUrl = Msn.VE.API.Constants.imageryurl;
if (this.fixedMap == true)
a.fixedView = true;
a.disableLogo = false;
if (this.showMapModeSwitch == false)
a.showMapModeSwitch = false;
else
a.showMapModeSwitch = true;
if (this.tileBuffer != null && typeof this.tileBuffer != "undefined")
a.buffer = this.tileBuffer * Msn.VE.API.Globals.vetilesize;
this.vemapcontrol = new Msn.VE.MapControl(this.mapelement, a, this);
var d = this.preInitCustomEvents.length;
for (var c = 0;c < d;++c)
{
var b = this.preInitCustomEvents.pop();
this.vemapcontrol.AttachCustomEvent(b.Name, b.Callback);
}
this.vemapcontrol.Init();
if (! this.fixedMap == true)
this.vemapcontrol.AttachEvent("onchangeview", this._ClearView);
this.vemapcontrol.AttachEvent("onendpan", this._RefreshLayers);
this.vemapcontrol.AttachEvent("oninitmode", this._ResetQueueEvent);
this.vemapcontrol.AttachEvent("oninitmode", this._EROHouseKeeping);
_VERegisterNamespaces("Msn.Drawing");
this.m_vegraphicsmanager = new VEGraphicsManager(this);
this.m_vegraphicsmanager.Initialize();
this.m_velayermanager = null;
this._lm = this.m_velayermanager;
this.m_vetilesourcemanager = null;
this.m_vetrafficmanager = null;
_VERegisterNamespaces("Msn.VE.UI");
Msn.VE.UI.Color = {Red : "red", Orange : "orange", Yellow :
"yellow"};
if (($ID("help") == null || $ID("help") == "undefined")
&& ! Msn.VE.API.Globals.ishttpsenabled)
VE_Help.CreateHelpPanel();
this._InitializeModules(VE_GetLoadedAPIModules());
if (this.veonmaploadevent)
this.veonmaploadevent(this);
this.controlzIndexes = [];
this.controls = [];
this.controltops = [];
this.controllefts = [];
this.vemapcontrol.AttachEvent("onresize", this._ReArrangeControls);
if (window.ero == null || typeof window.ero == "undefined")
window.ero = ERO.getInstance();
this._EROHouseKeeping(this.GetMapMode());
window.attachEvent("onunload", DisposeAllMaps);
}
);
VEMap.prototype.DeleteAllPushpins = (function ()
{
VEPushpin.Hide();
if (this.pushpins != null && this.pushpins != "undefined")
if (this.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
{
this.m_vegraphicsmanager.ClearAllPushpins(this.pushpins);
return ;
}
else
{
var c = this.pushpins.length;
for (var a = 0;a < c;a++)
{
var b = this.pushpins.pop();
if (! b.IsInLayer)
b.Dispose();
}
}
return this.vemapcontrol.ClearPushpins();
}
);
VEMap.prototype.GetMapStyle = (function ()
{
return this.vemapcontrol.GetMapStyle();
}
);
VEMap.prototype.GetZoomLevel = (function ()
{
return this.vemapcontrol.GetZoomLevel();
}
);
VEMap.prototype.StartContinuousPan = (function (a,b)
{
VEValidator.ValidateInt(a, "deltaX");
VEValidator.ValidateInt(b, "deltaY");
return this.vemapcontrol.ContinuousPan(parseInt(a), parseInt(b));
}
);
VEMap.prototype.EndContinuousPan = (function ()
{
return this.vemapcontrol.StopContinuousPan();
}
);
VEMap.prototype.Pan = (function (a,b)
{
VEValidator.ValidateInt(a, "deltaX");
VEValidator.ValidateInt(b, "deltaY");
if (this.GetMapMode() != Msn.VE.MapActionMode.Mode3D)
return this.vemapcontrol.PanByPixel(new VEPixel(parseInt(a), parseInt(b)), false);
else
return false;
}
);
VEMap.prototype.DeletePushpin = (function (c)
{
var d = 0;
if (typeof this.pushpins == "object" && this.pushpins &&
this.pushpins.constructor == Array)
d = this.pushpins.length;
for (var a = 0;a < d;a++)
{
var b = this.pushpins[a];
if (b != null && b.ID == c)
{
if (! b.IsInLayer)
b.Dispose();
this.pushpins.splice(a, 1);
if (this.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
return this.m_vegraphicsmanager.Remove3DPushpin(c);
else
return this.vemapcontrol.RemovePushpin(c);
}
}
throw new VEException("VEMap:DeletePushpin", "err_invalidpushpinid",
L_invalidpushpinid_text);
}
);
VEMap.prototype.Resize = (function (a,b)
{
if (a != null && typeof a != "undefined")
{
VEValidator.ValidateNonNegativeInt(a, "width");
VEValidator.ValidateNonNegativeInt(b, "height");
}
return this.vemapcontrol.Resize(a, b);
}
);
VEMap.prototype.SetMapMode = (function (a)
{
VEValidator.ValidateMapMode(a, "mapMode");
this.vemapcontrol.EnableMode(a, this.GUID);
}
);
VEMap.prototype.GetMapMode = (function ()
{
if (this.vemapcontrol.IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
return VEMapMode.Mode3D;
return VEMapMode.Mode2D;
}
);
VEMap.prototype.SetMapStyle = (function (a)
{
VEValidator.ValidateMapStyle(a, "mapStyle");
if (this.GetMapMode() == Msn.VE.MapActionMode.Mode3D && a ==
VEMapStyle.Birdseye)
return false;
this.vemapcontrol.SetMapStyle(a);
}
);
VEMap.prototype.SetScaleBarDistanceUnit = (function (a)
{
VEValidator.ValidateDistanceUnit(a, "distanceUnit");
this.vemapcontrol.SetScaleBarDistanceUnit(a == VEDistanceUnit.Miles ?
Msn.VE.DistanceUnit.Miles : Msn.VE.DistanceUnit.Kilometers);
}
);
VEMap.prototype.SetZoomLevel = (function (a)
{
VEValidator.ValidateNonNegativeInt(a, "zoomLevel");
this._QueueRequest(this.vemapcontrol.SetZoom, parseInt(a));
return true;
}
);
VEMap.prototype.ZoomIn = (function ()
{
this.vemapcontrol.ZoomIn();
}
);
VEMap.prototype.ZoomOut = (function ()
{
this._QueueRequest(this.vemapcontrol.ZoomOut);
}
);
VEMap.prototype.AttachEvent = (function (b,a)
{
VEValidator.ValidateNonNull(b, "eventname");
VEValidator.ValidateNonNull(a, "eventhandler");
if (this.vemapcontrol)
this.vemapcontrol.AttachCustomEvent(b, a);
else
this.preInitCustomEvents.push(new VECustomEvent(b, a));
}
);
VEMap.prototype.DetachEvent = (function (b,a)
{
VEValidator.ValidateNonNull(b, "eventname");
VEValidator.ValidateNonNull(a, "eventhandler");
this.vemapcontrol.DetachCustomEvent(b, a);
}
);
VEMap.prototype.FireEvent = (function (a)
{
try
{
var b = window.event;
return this.vemapcontrol.FireCustomEvent(a, b);
}
catch (c)
{
return false;
}
}
);
VEMap.prototype.ShowMessage = (function (a)
{
if (this.ShowMessageBox)
this.m_vemessage.Show(a);
}
);
VEMap.prototype.GetHeight = (function ()
{
var a = 0;
if (this.mapelement.style.height.search(/px/) > 0)
a = parseInt(this.mapelement.style.height.replace("px", ""));
if (isNaN(a) || a == 0)
a = this.mapelement.offsetHeight;
return a;
}
);
VEMap.prototype.GetWidth = (function ()
{
var a = 0;
if (this.mapelement.style.width.search(/px/) > 0)
a = parseInt(this.mapelement.style.width.replace("px", ""));
if (isNaN(a) || a == 0)
a = this.mapelement.offsetWidth;
return a;
}
);
VEMap.prototype.GetLeft = (function ()
{
return this.vemapcontrol.GetLeftPx();
}
);
VEMap.prototype.GetTop = (function ()
{
return this.vemapcontrol.GetTopPx();
}
);
VEMap.prototype.SetFindResultsPanel = (function (a)
{
if (a == null || a == "undefined")
throw new VEException("VEMap:SetFindResultsPanel",
"err_invalidelement", L_invalidelement_text);
var b = $ID(a);
if (b == null || b == "undefined")
throw new VEException("VEMap:SetFindResultsPanel",
"err_invalidelement", L_invalidelement_text);
this.searchelement = a;
}
);
VEMap.prototype._AddControlInner = (function (a)
{
a.style.position = "absolute";
a.style.zIndex = 201;
var e = this.GetTop(), d = this.GetLeft();
if (! a.style.top)
a.style.top = "0px";
if (! a.style.left)
a.style.left = "0px";
var c = a.style.top, b = a.style.left;
if (isNaN(c))
c = c.toString().toLowerCase();
if (isNaN(b))
b = b.toString().toLowerCase();
e += parseInt(c.replace("px"));
d += parseInt(b.replace("px"));
a.style.top = e + "px";
a.style.left = d + "px";
document.body.appendChild(a);
}
);
VEMap.prototype.AddControl = (function (a,b)
{
if (a == null || a == "undefined")
throw new VEException("VEMap:AddControl", "err_invalidelement",
L_invalidelement_text);
if (this.controls == null || this.controls == "undefined")
throw new VEException("VEMap:AddControl", "err_notinitialized",
L_notinitialized_text);
this.controlzIndexes.push(b);
this.controls.push(a);
this.controltops.push(a.style.top);
this.controllefts.push(a.style.left);
this._AddControlInner(a, b);
}
);
VEMap.prototype.DeleteControl = (function (b)
{
if (b == null || b == "undefined")
throw new VEException("VEMap:DeleteControl", "err_invalidelement",
L_invalidelement_text);
if (this.controls == null || this.controls == "undefined")
throw new VEException("VEMap:DeleteControl", "err_notinitialized",
L_notinitialized_text);
if (b.shimElement)
{
b.shimElement.removeNode(true);
b.shimElement = null;
}
document.body.removeChild(b);
var c = - 1;
for (var a = 0;a < this.controls.length;a++)
if (this.controls[a] == b)
{
c = a;
break ;
}
if (c >= 0)
{
for (var a = c;a < this.controls.length - 1;a++)
{
this.controls[a] = this.controls[(a + 1)];
this.controlzIndexes[a] = this.controlzIndexes[(a + 1)];
this.controltops[a] = this.controltops[(a + 1)];
this.controllefts[a] = this.controllefts[(a + 1)];
}
this.controls.pop();
this.controlzIndexes.pop();
this.controltops.pop();
this.controllefts.pop();
}
}
);
VEMap.prototype.ShowControl = (function (a)
{
if (a != null && a != "undefined")
{
if (a.shimElement)
a.shimElement.style.display = "block";
a.style.visibility = "visible";
mvcViewFacade.ShowShimIfSupported(a);
}
}
);
VEMap.prototype.HideControl = (function (a)
{
if (a != null && a != "undefined")
{
HideShim(a);
a.style.visibility = "hidden";
}
}
);
VEMap.prototype.Clear = (function ()
{
this._ClearView();
if (typeof VE_TrafficManager != "undefined")
VE_TrafficManager.Destroy();
this.DeleteAllPushpins();
this.DeleteAllShapeLayers();
if (this.m_vedirectionsmanager)
this.m_vedirectionsmanager.RemoveRouteHighLight();
this.m_vegraphicsmanager.Clear();
this.m_veambiguouslist.Hide();
this.m_vemessage.Hide();
}
);
VEMap.prototype._ShowLoading = (function ()
{
if (! this.veloadingdiv)
{
this.veloadingdiv = document.createElement("div");
this.veloadingdiv.className = "VE_Network_Loading";
this.veloadingdiv.style.top = "75px";
this.veloadingdiv.style.left = "80px";
this.veloadingdiv.innerHTML = L_loading_text;
this.AddControl(this.veloadingdiv, 202);
}
if (this.veloadingdiv.style.display != "block")
this.veloadingdiv.style.display = "block";
else
this.veloadingdiv.style.display = "none";
}
);
VEMap.prototype.AddPolyline = (function (a)
{
if (typeof a == "object" && ! (a instanceof VEPolyline))
{
var b = new VEShape(VEShapeType.Polyline, a);
this.AddShape(b);
return b;
}
this.m_vegraphicsmanager.DrawLine(a);
}
);
VEMap.prototype.DeletePolyline = (function (a)
{
this.m_vegraphicsmanager.RemoveLinebyId(a);
}
);
VEMap.prototype.DeleteAllPolylines = (function ()
{
this.m_vegraphicsmanager.RemoveAllLines();
}
);
VEMap.prototype.AddPolygon = (function (a)
{
if (typeof a == "object" && ! (a instanceof VEPolygon))
{
var b = new VEShape(VEShapeType.Polygon, a);
this.AddShape(b);
return b;
}
this.m_vegraphicsmanager.DrawPolygon(a);
}
);
VEMap.prototype.DeletePolygon = (function (a)
{
this.m_vegraphicsmanager.RemovePolygonbyId(a);
}
);
VEMap.prototype.DeleteAllPolygons = (function ()
{
this.m_vegraphicsmanager.RemoveAllPolygons();
}
);
VEMap.prototype.LoadModules = (function (c,a,d)
{
var b = null;
b = VEOndemandJsDownloads(true, c, this, [this.LoadModules, c, a, d]);
if (b)
if (typeof a == "function" && a != null)
a(d);
}
);
VEMap.prototype._InitializeModules = (function (b)
{
var c = b.length;
for (var a = 0;a < c;a++)
switch (b[a])
{
case VE_ModuleName.APILAYERS:
this.InitMapDrawing();
break ;
case VE_ModuleName.APIFIND:
this.InitSearch();
break ;
case VE_ModuleName.APIROUTING:
this.InitRouting();
break ;
case VE_ModuleName.APITRAFFIC:
this.InitTraffic();
break ;
case VE_ModuleName.API3D:
this.Init3D();
break ;
case VE_ModuleName.APICONTROLS:
this.InitNavControl();
break ;
case VE_ModuleName.APIBIRDSEYE:
this.InitBirdseye();
break ;
case VE_ModuleName.APITILES:
this.InitTiles();
}
}
);
VEMap.prototype._ResetQueueEvent = (function (a)
{
if (a == Msn.VE.MapActionMode.Mode2D)
this.queueEventInitialized = false;
}
);
VEMap.prototype._QueueRequest = (function (a,b,c,d)
{
if (this.vemapcontrol.IsModeEnabled(Msn.VE.MapActionMode.Mode3D) &&
this.RequestQueueEnabled)
{
if (! this.queueEventInitialized)
{
this.vemapcontrol.Get3DControl().AttachEvent("OnCameraChanged",
"ProcessQueuedRequest");
this.queueEventInitialized = true;
}
if (this.vemapcontrol.IsCameraFlying() || this.requestQueue.length > 0)
{
this.requestQueue.push(new RequestQueueItem(a, b, c, d));
return ;
}
}
a(b, c, d);
}
);
VEMap.prototype._ProcessQueuedRequest = (function ()
{
if (this.requestQueue.length > 0)
{
var a = this.requestQueue.shift();
a.Call(a.Param1, a.Param2, a.Param3);
}
}
);
VEMap.prototype.ShowMapModeSwitch = (function (a)
{
if (this.fixedMap != true)
{
this.vemapcontrol.SetShowMapModeSwitch(a);
this.showMapModeSwitch = a;
}
}
);
VEMap.prototype.SetTileBuffer = (function (a)
{
this.tileBuffer = a;
if (this.vemapcontrol != null && this.vemapcontrol != "undefined")
this.vemapcontrol.SetTilePixelBuffer(a * Msn.VE.API.Globals.vetilesize);
}
);
VEMap.prototype._EROHouseKeeping = (function (d)
{
function c()
{
ShowShim(ero.getBody(), ero.getElement());
}
function b()
{
HideShim(ero.getBody());
}
function a(a)
{
if (a.Entity == - 1)
ero.setGlitz(false, null, false, true);
}
if (d == Msn.VE.MapActionMode.Mode2D)
{
ero.setGlitz(true, false, true, false);
ero.unhookEvent("aftershow", c);
ero.unhookEvent("afterhide", b);
ero.unhookEvent("beforeshow", a);
}
else
{
ero.setGlitz(true, false, true, false);
ero.hookEvent("aftershow", c);
ero.hookEvent("afterhide", b);
ero.hookEvent("beforeshow", a);
}
}
);
VEMap.prototype.AllTilesLoaded = (function ()
{
if (this.vemapcontrol.IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
{
var a = this.vemapcontrol.Get3DControl();
return a ? a.AllTilesLoaded : false;
}
return true;
}
);
VEMap.prototype.SetClientToken = (function (a)
{
this.ClientToken = a;
if (this.vemapcontrol)
this.vemapcontrol.SetClientToken(a);
}
);
VEMap.prototype.HasClientToken = (function ()
{
return this.ClientToken != null && typeof this.ClientToken !=
"undefined" && this.ClientToken.length > 0;
}
);
VEMap.GetVersion = (function ()
{
return Msn.VE.API.Globals.vecurrentversion;
}
);
VEMap.prototype.ShowDisambiguationDialog = (function (a)
{
VEValidator.ValidateBoolean(a, "value");
this.m_vedirectionsmanager.m_showDisambigousDialog = a;
}
);
VEMap.prototype.SetAnimationEnabled = (function (a)
{
VEValidator.ValidateBoolean(a, "value");
if (this.vemapcontrol)
this.vemapcontrol.SetAnimationEnabled(a);
}
);
VEMap.prototype.InitNavControl = (function ()
{
}
);
VEDashboardSize = Msn.VE.DashboardSize;
VEMap.prototype.SetDashboardSize = (function (a)
{
if (typeof a != "undefined" && a != null)
{
VEValidator.ValidateDashboardSize(a, "VEDashboardSize");
this.dashboardSize = a;
this.dashboardVersion = 6;
if (this.dashboardSize == VEDashboardSize.Small || this.dashboardSize ==
VEDashboardSize.Tiny)
this.dashboardVersion = 5;
}
}
);
VEMap.prototype.SetDashboardVersion = (function (a)
{
this.dashboardVersion = a;
}
);
VEMap.prototype.ShowDashboard = (function ()
{
if (this.vemapcontrol)
{
var a = this.vemapcontrol.GetDashboard();
if (! a)
this.vemapcontrol.CreateDashboard(5, 5, this.dashboardSize, this.m_dashboardId,
this.showMapModeSwitch, this.dashboardVersion);
else
a.Show();
this.Show3DNavigationControl();
}
this._showDashboard = true;
}
);
VEMap.prototype.HideDashboard = (function ()
{
if (this.vemapcontrol)
{
var a = this.vemapcontrol.GetDashboard();
if (a)
a.Hide();
this.Hide3DNavigationControl();
}
this._showDashboard = false;
}
);
VEMap.prototype.ShowMiniMap = (function (a,b,d)
{
if (a != null && typeof a != "undefined" && b != null
&& typeof b != "undefined")
{
VEValidator.ValidateInt(a, "x");
VEValidator.ValidateInt(b, "y");
}
if (d)
VEValidator.ValidateMiniMapSize(d, "size");
var c = this.vemapcontrol.GetMinimap();
if (c)
{
if (a != null && typeof a != "undefined" && b != null
&& typeof b != "undefined")
c.SetPosition(parseInt(a), parseInt(b));
c.Show();
}
else
c = this.vemapcontrol.CreateMinimap(a, b, null, true, false, null, this.ClientToken);
if (d)
c.SetSize(d);
}
);
VEMap.prototype.HideMiniMap = (function ()
{
var a = this.vemapcontrol.GetMinimap();
if (a)
a.Hide();
}
);
VE_SetModuleStatus(VE_ModuleName.APICONTROLS, "loaded");
VEMap.prototype.InitBirdseye = (function ()
{
}
);
VEMap.prototype.GetBirdseyeScene = (function ()
{
if (this.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
return null;
var a = null, b = this.vemapcontrol.GetObliqueScene();
if (b != null && b != "undefined")
{
a = new VEBirdseyeScene(b);
a.SetClientToken(this.ClientToken);
a.SetGUID(this.GUID);
}
return a;
}
);
VEMap.prototype.IsBirdseyeAvailable = (function ()
{
if (this.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
return false;
return this.vemapcontrol.IsObliqueAvailable();
}
);
VEMap.prototype.SetBirdseyeOrientation = (function (a)
{
if (this.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
return false;
VEValidator.ValidateOrientation(a, "orientation");
return this.vemapcontrol.SetObliqueOrientation(a);
}
);
VEMap.prototype.SetBirdseyeScene = (function (a,b,c,d)
{
if (this.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
return false;
if (VELatLong.prototype.isPrototypeOf(a) || a == null)
return this.SetBirdseye(a, b, c, d);
else
return this.vemapcontrol.SetObliqueScene(a);
}
);
VEMap.prototype.SetBirdseye = (function (b,a,c,d)
{
if (this.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
return false;
if (b)
VEValidator.ValidateObject(b, "veLatLong", VELatLong,
"VELatLong");
else
b = this.GetCenter();
if (a)
VEValidator.ValidateOrientation(a, "orientation");
else
a = VEOrientation.North;
if (c)
VEValidator.ValidateNonNegativeInt(c, "zoomLevel");
else
c = 1;
if (d)
VEValidator.ValidateFunction(d, "callback");
else
d = null;
var e = new _xy1().Decode(b);
return this.vemapcontrol.SetObliqueLocation(new Msn.VE.LatLong(e.Latitude, e.Longitude),
a, c, d);
}
);
VEMap.prototype.SetShapesAccuracy = (function (a)
{
if (a != VEShapeAccuracy.None && a != VEShapeAccuracy.Pushpin && a !=
VEShapeAccuracy.All)
throw new VEException("VEMap:SetShapesAccuracy",
"err_invalidargument", L_invalidargument_text.replace("%1",
"value").replace("%2", "VEShapeAccuracy"));
this.m_vegraphicsmanager._useOffset = a;
}
);
VEMap.prototype.SetOverMaxPointsShapeRequest = (function (a)
{
if (a != VEFailedShapeRequest.DoNotDraw && a !=
VEFailedShapeRequest.DrawInaccurately)
throw new VEException("VEMap:SetOverMaxPointsShapeRequest",
"err_invalidargument", L_invalidargument_text.replace("%1",
"value").replace("%2", "VEFailedShapeRequest"));
this.m_vegraphicsmanager._drawOverMaxShapes = a;
}
);
VEMap.prototype.SetFailedShapeRequest = (function (a)
{
if (a != VEFailedShapeRequest.DoNotDraw && a !=
VEFailedShapeRequest.DrawInaccurately && a != VEFailedShapeRequest.QueueRequest)
throw new VEException("VEMap:SetFailedShapeRequest",
"err_invalidargument", L_invalidargument_text.replace("%1",
"value").replace("%2", "VEFailedShapeRequest"));
this.m_vegraphicsmanager._failRequest = a;
}
);
VEMap.prototype.SetShapesAccuracyRequestLimit = (function (a)
{
VEValidator.ValidateNonNegativeInt(a, "value");
Msn.VE.API.Constants.maxasynlatlongs = a;
}
);
VEShapeAccuracy = new (function ()
{
this.None = 0;
this.Pushpin = 1;
this.All = 2;
}
)();
VEFailedShapeRequest = new (function ()
{
this.DoNotDraw = 0;
this.DrawInaccurately = 1;
this.QueueRequest = 2;
}
)();
VE_SetModuleStatus(VE_ModuleName.APIBIRDSEYE, "loaded");
VEMap.prototype.SetDisplayThreshold = (function (a)
{
var a = parseInt(a);
if (isNaN(a))
this.m_vegraphicsmanager.SetDisplayThreshold(a);
}
);
VEMap.prototype.EnableShapeDisplayThreshold = (function (a)
{
VEValidator.ValidateBoolean(a, "value");
VE_LatLongThreshold.UseThreshold = a;
}
);
VEMap.prototype.ImportShapeLayerData = (function (a,c,b)
{
VEValidator.ValidateObject(a, "_spec", VEShapeSourceSpecification,
"VEShapeSourceSpecification");
if (typeof a.LayerSource != "string" || typeof a.Type != "string")
throw new VEException("VEMap:AddLayer", "err_invalidlayertype",
L_invalidlayertype_text);
this.m_velayermanager.ImportLayer(a, c, b);
}
);
VEMap.prototype.SetInfoBoxStyles = (function (a)
{
window.ero.setClasses(a);
}
);
VEMap.prototype.ClearInfoBoxStyles = (function ()
{
window.ero.setClasses(_VECustomInfoBox);
}
);
VEMap.prototype.SetDefaultInfoBoxStyles = (function ()
{
window.ero.setClasses(ERO.DefaultClasses);
}
);
VEMap.prototype.ShowInfoBox = (function (c,b,d)
{
var k = typeof c == "object" && c instanceof VEShape;
if (! k)
return ;
var j = c._shplayer == null || c._shplayer._mapGuid == null;
if (j)
return ;
var h = null, e = null, g = null;
if (typeof b == "object")
if (b instanceof VELatLong)
{
e = b.Latitude;
g = b.Longitude;
}
else
if (b instanceof VEPixel)
if (! isNaN(b.x) && ! isNaN(b.y))
h = b;
if (e == null && h == null)
{
var f = c.Primitives[0];
if (f.type == VEShapeType.Pushpin)
{
e = f.points[1];
g = f.points[0];
}
else
{
e = f.labelPosY;
g = f.labelPosX;
}
}
var l = Msn.Drawing.GetLabelUID(c.Primitives[0].iid), a = null;
if (e != null)
{
a = this.vemapcontrol.LatLongToPixel(new Msn.VE.LatLong(e, g),
this.vemapcontrol.GetZoomLevel());
if (a == null)
a = new VEPixel(0, 0);
}
else
a = h;
var i = typeof d == "object" && d instanceof VEPixel;
if (i)
if (! isNaN(d.x) && ! isNaN(d.y))
{
a.x += d.x;
a.y += d.y;
}
if (a.x < 0 || a.x > this.GetWidth() || a.y < 0 || a.y > this.GetHeight())
if (b instanceof VELatLong)
throw new VEException("VEMap:ShowInfoBox",
"L_invalidargument_text", L_invalidargument_text.replace("%1",
"veAnchor").replace("%2", "VELatLong"));
else
if (b instanceof VEPixel)
throw new VEException("VEMap:ShowInfoBox",
"L_invalidargument_text", L_invalidargument_text.replace("%1",
"veAnchor").replace("%2", "VEPixel"));
else
return ;
a.x += this.GetLeft();
a.y += this.GetTop();
VEShowVEShapeERO(l, this.GUID, null, c, a.x, a.y);
}
);
VEMap.prototype.HideInfoBox = (function ()
{
VEHideVEShapeERO(true);
}
);
VEMap.prototype.CloneShape = (function (a)
{
VEValidator.ValidateObject(a, "_veshape", VEShape, "VEShape");
var c = this.m_velayermanager.VE_LayerManager, b = c.CloneAnnotation(a);
return b;
}
);
VEMap.prototype.AddShape = (function (b)
{
var a = this.m_velayermanager.VE_LayerManager.GetCollectionByIndex(0);
a._mapGuid = this.GUID;
a.AddShape(b);
}
);
VEMap.prototype.DeleteShape = (function (a)
{
VEValidator.ValidateObject(a, "_veshape", VEShape, "VEShape");
if (a._shplayer)
a._shplayer.DeleteShape(a);
}
);
VEMap.prototype.GetShapeByID = (function (a)
{
if (typeof a == "undefined" || a == null || a == "")
return null;
var b = this.m_velayermanager.VE_LayerManager, c = b.GetAnnotationById(a);
return c;
}
);
VEMap.prototype.AddShapeLayer = (function (a,c)
{
VEValidator.ValidateObject(a, "shpLyr", VEShapeLayer,
"VEShapeLayer");
if (a._mapGuid != null)
throw new VEException("VEMap:AddLayer", "err_invalidlayertype",
L_invalidlayertype_text);
a._mapGuid = this.GUID;
var d = this.m_velayermanager.VE_LayerManager;
d.AddCollection(null, a);
if (! a.GetVisibility())
return ;
if (typeof c != "undefined" && c == true)
{
var b = a.GetBoundingBox(), e = [new Msn.VE.LatLong(b.y1, b.x1), new
Msn.VE.LatLong(b.y2, b.x2)];
this.vemapcontrol.SetBestMapView(e);
}
this.m_vegraphicsmanager.DrawLayer(a);
}
);
VEMap.prototype.DeleteShapeLayer = (function (a)
{
VEValidator.ValidateObject(a, "shpLyr", VEShapeLayer,
"VEShapeLayer");
try
{
a.DeleteAllShapes();
this.m_velayermanager.VE_LayerManager.RemoveCollection(a);
}
catch (b)
{}
}
);
VEMap.prototype.DeleteAllShapeLayers = (function ()
{
try
{
this.DeleteAllShapes();
this.m_velayermanager.VE_LayerManager.DeleteAll();
}
catch (a)
{}
}
);
VEMap.prototype.DeleteAllShapes = (function ()
{
try
{
this.m_vegraphicsmanager.ClearAll();
var b = this.m_velayermanager.VE_LayerManager, c = b.GetCollectionCount();
for (var a = 0;a < c;a++)
b.GetCollectionByIndex(a).DeleteAllShapes();
}
catch (d)
{}
}
);
VEMap.prototype.ShowAllShapeLayers = (function ()
{
this.m_velayermanager.ShowAllLayers();
}
);
VEMap.prototype.HideAllShapeLayers = (function ()
{
this.m_vegraphicsmanager.ClearAll();
this.m_velayermanager.VE_LayerManager.SetVisibility(false);
}
);
VEMap.prototype.GetShapeLayerByIndex = (function (b)
{
if (typeof b == "undefined" || this.m_velayermanager == null)
return null;
var a = null;
a = this.m_velayermanager.VE_LayerManager.GetCollectionByIndex(b);
if (a)
a._mapGuid = this.GUID;
return a;
}
);
VEMap.prototype.GetShapeLayerCount = (function ()
{
if (this.m_velayermanager == null)
return 0;
return this.m_velayermanager.VE_LayerManager.GetCollectionCount();
}
);
VEDataType = new (function ()
{
this.VECollection = "c";
this.GeoRSS = "g";
this.VETileSource = "t";
this.ImportXML = "i";
}
)();
VELayerManager.prototype.Dispose = (function ()
{
this.m_vemap.m_vegraphicsmanager.ClearAll();
this.VE_LayerManager.DeleteAll();
this.m_vemapcontrol = null;
this.m_vemap = null;
this.m_veLatLongDecoder = null;
this.m_spec = null;
this.VE_LayerManager.Dispose();
this.VE_LayerManager = null;
}
);
VELayerManager.prototype.ShowAllLayers = (function ()
{
this.VE_LayerManager.SetVisibility(true);
var b = [], e = this.VE_LayerManager.GetCollectionCount();
for (var c = 0;c < e;++c)
{
var d = this.VE_LayerManager.GetCollectionByIndex(c);
if (d.GetShapeCount() > 0)
{
var a = d.GetBoundingBox();
if (a != null)
{
b.push(new Msn.VE.LatLong(a.y1, a.x1));
b.push(new Msn.VE.LatLong(a.y2, a.x2));
}
}
}
if (b.length >= 2)
this.m_vemapcontrol.SetBestMapView(b);
this.m_vemap.m_vegraphicsmanager.DrawAll();
}
);
var _VECustomInfoBox = {ContainerNoBeak : "customInfoBox-noBeak",
ContainerRightBeak : "customInfoBox-with-rightBeak", ContainerLeftBeak :
"customInfoBox-with-leftBeak", Beak : "customInfoBox-beak", Shadow :
"customInfoBox-shadow", Body : "customInfoBox-body", Actions :
"customInfoBox-actions", ActionsBackground :
"customInfoBox-actionsBackground", PreviewArea :
"customInfoBox-previewArea", PaddingHack :
"customInfoBox-paddingHack", ProgressAnimation :
"customInfoBox-progressAnimation"};
var MC_GEOCOMMUNITY_SIZELIMIT = 204800, MC_GEOCOMMUNITY_SERVICEURL =
"GeoCommunity.asjx", MC_VESHAPE_EMPTY = - 1777, MC_VIEW_BUFFER = 1,
MC_STYLE_PINZIndex = 300, MC_IID_NAMESPACE = "msftve", MC_IID_CON_TOKEN =
"_", MC_GEO_TYPE_MULTIGEOMETRY = "Multigeometry", MC_GEO_TYPE_FREEHAND
= "Freehand", MC_STYLE_FILL_COLOR = "fillcolor", MC_STYLE_STROKE_COLOR
= "strokecolor", MC_STYLE_STROKE_WEIGHT = "strokeweight",
MC_STYLE_STROKE_STYLE = "stroke-style", MC_STYLE_STROKE_DASH =
"stroke-dashstyle", MC_STYLE_FONT_COLOR = "font_color",
MC_STYLE_STROKE_ARROW = "stroke_arrow", MC_STYLE_FONT_ITALIC =
"font_italic", MC_STYLE_FONT_UNDERSCORE = "font_underscore",
MC_STYLE_FONT_BOLD = "font_bold", STATE_DEFAULT = 0, STATE_DRAWING = 1,
STATE_EDITING = 2, MC_DRAW_DEFAULT = 100, MC_DRAW_POINT = 101, MC_DRAW_POLYLINE = 102,
MC_DRAW_POLYGON = 103, MC_DRAW_RECT = 104, MC_DRAW_CIRCLE = 105, MC_DRAW_TEXT = 1065,
MC_DRAW_MODEL = 1066, MC_EDIT_ADDNODE = 107, MC_EDIT_DELNODE = 108, MC_EDIT_MOVENODE =
108, MC_EDIT_SELNODE = 109, MC_EDIT_SELEDGE = 110, MC_EDIT_CONTINUELINE = 111,
MC_LABEL_VIEWER = "viewer", MC_PROPERTY_DEFAULT = 0, MC_PROPERTY_HIGHWAY = 1,
MC_PROPERTY_ROAD = 2, MC_PROPERTY_LAKE = 3, MC_PROPERTY_PARK = 4, MC_PROPERTY_PARKINGLOT =
5, MC_PROPERTY_PUSHPIN = 6, MC_PROPERTY_TEMPDRAW = 7, MC_PROPERTY_TEMPEDIT = 8,
MC_PROPERTY_EDITNODE = 10, MC_PROPERTY_EDITSELNODE = 11, MC_PROPERTY_GHOSTNODE = 12,
MC_NUMBERFORMAT_NUMBEROFDIGITSAFTERDOT = 2, MC_NUMBERFORMAT_ZEROSTRING = "0",
MC_DECIMALROUNDOFF_THRESHOLD = 100, MC_CML_ENTITY_NAME = "Entity",
MC_CML_ENTITY_PRIMITIVES = "Primitives", MC_CML_ENTITY_PRIMITIVE =
"Primitive", MC_CML_ENTITY_COORDINATES = "coordinates",
MC_CML_DESCRIPTION = "Description", MC_CML_TAGS = "Tags",
MC_CML_VIEWPORT = "ViewPort", MC_CML_TOUR = "Tour", MC_CML_PITCH =
"pitch", MC_CML_HEADING = "heading", MC_CML_MAPSTYLE =
"mapstyle", MC_CML_SCENEID = "sceneId", MC_CML_ACTIONS =
"Actions", MC_CML_ACTION = "Action", MC_CML_MODELREP =
"ModelRep", MC_CML_TRANSFORM = "transform", MC_CML_MODELREFID =
"modelRefId", MC_CML_ENTITY_TYPE_PUSHPIN = "pushpin", MC_CML_PROPERTYS
= "Properties", MC_CML_PROPERTY = "Property", MC_CML_MINBOUNDS =
"minbounds", MC_CML_MAXBOUNDS = "maxbounds", MC_CML_R2EOFFSET =
"r2eoffset", MC_CML_PHOTOS = "Photos", MC_CML_PHOTO =
"Photo", MC_CML_PREAUTHURL = "PreAuthUrl", MC_CML_PROPERTY_ICONURL =
"iconurl", MC_CML_PROPERTY_KEYWORDS = "keywords", MC_CML_PROPERTY_URL
= "url", MC_CML_PROPERTY_PHOTOURL = "photourl",
MC_CML_PROPERTY_USERDATE = "userdate", MC_CML_PROPERTY_DISPLAYORDER =
"displayorder", MC_CML_PROPERTY_BUSINESSLISTINGID =
"businesslistingid", MC_CML_PROPERTY_SOURCEURL = "sourceurl",
MC_CML_PROPERTY_SOURCETYPE = "sourcetype", MC_CML_PROPERTY_TYPE =
"type", MC_CML_LASTMODIFIED = "DateModified", MC_CML_DATECREATED =
"DateCreated", MC_CML_ROOT = "CML", MC_CML_SEPERT = "/",
MC_CML_TOKEN = ",", MC_CML_VERSION = "0.1", MC_CML_ID =
"id", MC_CML_IID = "clientid", MC_CML_NAME = "name",
MC_CML_CULTURE = "culture", MC_CML_SHARELEVEL = "Sharelevel",
MC_CML_STATE = "State", MC_CML_STATE_PUBLIC_CAN_VIEW = 1,
MC_CML_STATE_OWNER_CAN_VIEW = 2, MC_CML_STATE_OWNER_CAN_UPDATE = 4,
MC_CML_STATE_OWNER_IS_VIEWING = 8, MC_CML_TYPE = "Type", MC_CML_Add =
"Add", MC_CML_EXTRUSION = "Extrusion", MC_CML_VISIBILITY =
"visibility", MC_CML_DISPLAYORDER = "displayorder",
MC_CML_DEFAULTSTYLE = "DefaultStyle", MC_CML_LABELSTYLE =
"LabelStyle", MC_CML_POSITION = "Position", MC_CML_STYLE =
"Style", MC_CML_FILLSYMBOL = "Fill", MC_CML_SHAPESYMBOL =
"Shape", MC_CML_STYLESYMBOL = "Style", MC_CML_STROKESYMBOL =
"Stroke", MC_CML_SHADOWSYMBOL = "Shadow", MC_CML_IMAGEDATASYMBOL =
"Imagedata", MC_CML_ZOOMLEVEL = "zoomlevel", MC_CML_ONSCRATCHPAD =
"onScratchpad", MC_CML_TOKEN1 = ",", MC_CML_TOKEN2 = ":",
MC_CML_TOKEN3 = ";", MC_CML_CONTENTS = "Contents", MC_CML_CONTENT =
"Content", MC_CML_SIMPLEHTML = "SimpleHTML", MC_CML_GLINK =
"glink", MC_CML_COLLECTIONS = "Collections", MC_CML_COLLECTION =
"Collection", MC_CML_ENTITY = "Entity", MC_CML_MULTIGEOMETRY =
"MultiGeometry", MC_CML_POLYGON = "Polygon", MC_CML_OUTLS =
"outerBoundaryIs", MC_CML_ITLS = "interBoundaryIs",
MC_CML_LINEARSTRING = "LinearRing", MC_CML_POLYLINE = "LineString",
MC_CML_LENGTH = "length", MC_CML_AREA = "area", MC_CML_HREF =
"href", MC_CML_POINT = "Point", MC_CML_COORDS =
"coordinates", MC_CML_ALTITUDE = "altitudes", MC_CML_ALTITUDEMODE =
"altitudemode", MC_CML_ALTGROUND = "Ground", MC_CML_ALTDATUM =
"Datum", MC_CML_EXTRUDE = "extruded", MC_CML_KEY = "key",
MC_CML_VALUE = "value", MC_CML_CLIENTDATA = "ClientData",
MC_CML_EXCOL_PREFIX = "E*", MC_CML_IMPORT_DATAURL = "mapurl",
MC_CML_IMPORT_SAVESTATUS = "saveimport", MC_CML_IMPORT_COLNAME =
"colname", MC_CML_IMPORT_REPORT = "importreport",
MC_CML_IMPORT_FILEUPLOAD = "fileupload", MC_CML_CID_LIST = "cids",
MC_ACTION_IMPORT_COLLECTION = "ImportCol", MC_ACTION_IMPORT_ENTITY =
"ImportEntity", MC_ACTION_CLONE_ENTITY = "CloneEntity",
MC_ACTION_CREATE_COLLECTION = "CreateCollection", MC_ACTION_UPDATE_COLLECTION =
"UpdateCollection", MC_ACTION_DELETE_COLLECTION = "DeleteCollection",
MC_ACTION_CLEAR_COLLECTION = "ClearCollection",
MC_ACTION_RETRIEVE_ALLCOLLECTIONS = "RetrieveAllCollections",
MC_ACTION_RETRIEVE_ALLCOLLECTIONS_METADATA = "RetrieveAllCollectionsMetadata",
MC_ACTION_RETRIEVE_COLLECTION = "RetrieveCollection",
MC_ACTION_RETRIEVE_SHAREDCOLLECTION = "RetrieveSharedCollection",
MC_ACTION_DELETE_ENTITY = "DeleteEntity", MC_ACTION_ADD_ENTITY =
"AddEntity", MC_FCCALLBACK = "fncallback", MC_ACTION_REPAINT =
"Repaint", MC_ACTION_CREATE_PHOTO = "CreatePhoto",
MC_ACTION_DELETE_PHOTO = "DeletePhoto", MC_CHANGE_STATE_UPDATE = 1,
MC_CHANGE_STATE_DELETE = 2, MC_CHANGE_STATE_CREATE = 3, MC_CHANGE_STATE_CLONE = 4,
MC_CHANGE_STATE_MOVE = 5, MC_CHANGE_STATE_DEFAULT = 0, MC_CHANGE_TYPE_METADATA = 1,
MC_CHANGE_TYPE_CHILDREN = 2, MC_CHANGE_TYPE_ALL = 3, MC_COLLECTION_SIGNIN_SIZE = 2048,
MC_TIMER_KEEPTRYING = "keeptrying", MC_TIMER_MINDELAY = 0, MC_TIMER_DELAY =
3000, MC_TIMER_REPEAT_DELAY = 3000, MC_TIMER_NOW = 10, MC_TIMER_EXTENDDELAY = 5000,
MC_REQUEST_QUEUE_MAXSIZE = 20, MC_TIMER_VALUE = "DELAYVALUE", MC_UPLOAD_TIMEOUT
= 90000, MC_KVP_COLLIST = "COLLIST", MC_KVP_COL_MSNID = "COL_MSNID",
MC_KVP_COL_MSNID2 = "COL_MSNID2", MC_KVP_COL = "COL",
MC_KVP_COL_CLIENTDATA = "COL_CLIENTDATA", MC_KVP_ENTITY_MSNID =
"ENTITY_MSNID", MC_KVP_ENTITYLIST = "ENTITYLIST", MC_KVP_ENTITY =
"ENTITY", MC_KVP_SERVER_STATUS = "req_status", MC_KVP_SETBESTMAPVIEW =
"set_best_view", MC_KVP_VIEWTOUR = "view_tour", MC_KVP_CML =
"CML", MC_COLLECTIONLIST_UL_ID = "sp_collection_list",
MC_SCRATCHPADITEM_LI_SUFFIX = "_li", MC_SCRATCHPADITEM_MEASURE_SUFFIX =
"_m", MC_SIGNIN = "Signin", MC_SCRATCHPAD_DRAGCURSOR =
"move", MC_SCRATCHPAD_DRAGGEDSTYLE = "DraggedLI",
MC_SCRATCHPAD_COLLECTIONLISTDIV_ID = "scratchPadCollectionListWrapper",
MC_SCRATCHPAD_WRAPLEN_TITLE = 22, MC_SCRATCHPAD_WRAPLEN_DESC = 26,
MC_CV_WRAPLEN_COLLECTIONDESC = 28, MC_CV_WRAPLEN_TITLE = 22, MC_CV_WRAPLEN_DESC = 22,
MC_ERO_WRAPLEN_TITLE = 22, MC_ERO_WRAPLEN_DESC = 28, MC_SERVER_STATUS_NO_ACCESS =
"not authorized", MC_SERVER_STATUS_BUSY = "server busy",
MC_SERVER_STATUS_OK = "200", MC_SERVER_STATUS_STORE_ERROR = "570",
MC_SERVER_STATUS_NAMEEXIST_ERROR = "571", MC_SERVER_STATUS_QUOTA_ERROR =
"572", MC_SERVER_STATUS_UNEXPECTED_ERROR = "500",
MC_SERVER_STATUS_ACCESSDENIED_ERROR = "403", MC_COL_TYPE_FAVORITE = 1,
MC_COL_TYPE_COLLECTION = 0, MC_COL_TYPE_RESULT = 2, MC_COL_TYPE_TRAFFIC = 3,
MC_COL_TYPE_DRIVING = 4, MC_COL_TYPE_RSSFEED = 5, MC_COL_TYPE_TILEIMAGE = 6, MC_DS_MSN_CML
= 0, MC_DS_FILE_CML = 1, MC_DS_MSN_VEML = 2, MC_MAX_LOADED_COLS = 2, MC_MAX_COL_SIZE =
200, cssCursors, MC_SA_NEWCOL = "newcol", MC_SA_IMPORT = "import",
MC_SA_UPLOADPHOTO = "uploadphoto";
VE_MapStruct.PushpinType = {ViewerClass : "VE_Community_searchResult",
PushpinClass : "VE_Pushpin", Token : " ", PushpinAn : "VE_Pushpin
VE_Pushpin_aN", Polyline : "VE_Pushpin VE_Pushpin_Polyline", Polygon :
"VE_Pushpin VE_Pushpin_Polygon", Model : "VE_Pushpin
VE_Pushpin_Model", PushpinViewer : "VE_Pushpin_viewer", PolylineViewer :
"VE_Pushpin_Polyline_viewer", PolygonViewer :
"VE_Pushpin_Polygon_viewer", ModelViewer : "VE_Pushpin_Model_viewer",
PushpinViewerTopMost : "VE_Pushpin_viewer topMost", PolylineViewerTopMost :
"VE_Pushpin_Polyline_viewer polytopMost", PolygonViewerTopMost :
"VE_Pushpin_Polyline_viewer polytopMost", ModelViewerTopMost :
"VE_Pushpin_Model_viewer polytopMost", SearchResults :
"searchResults"};
VE_MapStruct.PushpinSize = {WidthaN : 22, HeightaN : 17, WidthShp : 22, HeightShp : - 17,
WidthLbl : - 29, HeightLbl : - 17, WidthView : 25, HeightView : 29, WidthShpView : 25,
HeightShpView : - 29};
_VERegisterNamespaces("Msn.VE.Core");
Msn.VE.Core.Layer = (function ()
{
this.iid = null;
this.MsnId = null;
this.Name = "unsaved collection";
this.Type = 0;
this.Visibility = true;
this.Boundingbox = null;
this.MaxScale = 21;
this.MinScale = 1;
this.Spec = null;
}
);
Msn.VE.Core.Layer.prototype.SetMsnId = (function (a)
{
this.MsnId = a;
}
);
Msn.VE.Core.Layer.prototype.GetMsnId = (function ()
{
return this.MsnId;
}
);
Msn.VE.Core.Layer.prototype.SetId = (function (a)
{
this.iid = a;
}
);
Msn.VE.Core.Layer.prototype.GetId = (function ()
{
return this.iid;
}
);
Msn.VE.Core.Layer.prototype.SetName = (function (a)
{
this.Name = a;
}
);
Msn.VE.Core.Layer.prototype.GetName = (function ()
{
return this.Name;
}
);
Msn.VE.Core.Layer.prototype.SetType = (function (a)
{
this.Type = a;
}
);
Msn.VE.Core.Layer.prototype.GetType = (function ()
{
return this.Type;
}
);
Msn.VE.Core.Layer.prototype.SetVisibility = (function (a)
{
this.Visibility = a;
}
);
Msn.VE.Core.Layer.prototype.GetVisibility = (function ()
{
return this.Visibility;
}
);
Msn.VE.Core.Layer.prototype.SetMaxZoomLevel = (function (a)
{
this.MaxScale = a;
}
);
Msn.VE.Core.Layer.prototype.GetMaxZoomLevel = (function ()
{
return this.MaxScale;
}
);
Msn.VE.Core.Layer.prototype.SetMinZoomLevel = (function (a)
{
this.MinScale = a;
}
);
Msn.VE.Core.Layer.prototype.GetMinZoomLevel = (function ()
{
return this.MinScale;
}
);
Msn.VE.Core.Layer.prototype.SetBoundingBox = (function (f,e,c,d,a,b)
{
if (! this.Boundingbox)
{
if (c == null || d == null || a == null || b == null)
return null;
this.Boundingbox = new Msn.VE.Bounds(f, e, c, d, a, b);
}
else
{
this.Boundingbox.x1 = c;
this.Boundingbox.y1 = d;
this.Boundingbox.z1 = f;
this.Boundingbox.x2 = a;
this.Boundingbox.y2 = b;
this.Boundingbox.z2 = e;
}
return this.Boundingbox;
}
);
Msn.VE.Core.Layer.prototype.GetBoundingBox = (function ()
{
if (typeof this.Boundingbox == "undefined" || ! this.Boundingbox)
this.Boundingbox = new Msn.VE.Bounds(0, 0, Infinity, Infinity, - Infinity, -
Infinity);
return this.Boundingbox;
}
);
Msn.VE.Core.VectorLayer = (function ()
{
}
);
Msn.VE.Core.VectorLayer.prototype = new Msn.VE.Core.Layer();
Msn.VE.Core.RasterLayer = (function ()
{
}
);
Msn.VE.Core.RasterLayer.prototype = new Msn.VE.Core.Layer();
_VERegisterNamespaces("Msn.VE.Core");
Msn.VE.Core.EventRegistry = (function ()
{
var a = new VE_MapHashtable();
this.AddListener = (function (c,b)
{
a.put(c, b);
}
);
this.RemoveListener = (function (e,d)
{
var b = a.get(e);
if (b == "undefined" || b == null || b.length < 1)
return null;
for (var c = 0;c < b.length;c++)
if (b[c] == d)
b.splice(c, 1);
}
);
this.Fire = (function (e,d)
{
if (e == "undefined" || e == null)
return ;
var b = a.get(e);
if (b == "undefined" || b == null || b.length < 1)
return null;
for (var c = 0;c < b.length;c++)
{
if (b[c] == "undefined" || b[c] == null)
continue ;
if (d == "undefined" || d == null)
b[c]();
else
b[c](d);
}
d = null;
}
);
}
);
VE_MapHashtable.prototype.hash = null;
VE_MapHashtable.prototype.keys = null;
VE_MapHashtable.prototype.get = (function (a)
{
return this.hash[a];
}
);
VE_MapHashtable.prototype.put = (function (b,c)
{
if (c == null)
return null;
var a = null;
a = this.hash[b];
if (a == null || a == "undefined")
{
this.keys[this.keys.length] = b;
a = [];
}
a.push(c);
this.hash[b] = a;
}
);
_VERegisterNamespaces("Msn.Drawing");
Msn.Drawing.MapGeoRssReader = (function ()
{
}
);
Msn.Drawing.MapGeoRssReader.prototype.ReadGeoRSS = (function (z,q)
{
var C = false, r = null, p = null, u = null, m = null, g = null, f = null, c = null, l =
z.getElementsByTagName("item");
if (l.length < 1)
l = z.getElementsByTagName("entry");
var k = VEShapeType.Pushpin;
if (l.length > 0)
{
var j, o, A, F = l.length;
for (j = 0;j < F;j++)
{
g = null;
f = null;
c = null;
k = VEShapeType.Pushpin;
r = "";
p = "";
u = "";
m = "";
A = l[j].childNodes.length;
for (o = 0;o < A;o++)
{
if (l[j].childNodes[o].nodeType != 1)
continue ;
var a = l[j].childNodes[o].nodeName, b = l[j].childNodes[o];
if (a == "title")
if (b.firstChild)
r = b.firstChild.nodeValue;
else
r = "";
else
if (a == "description" || a == "summary" || a ==
"content")
if (b.firstChild)
p = b.firstChild.nodeValue;
else
p = "";
else
if (a == "link")
if (b.firstChild)
u = b.firstChild.nodeValue;
else
u = b.getAttribute("href");
else
if (a == "icon")
m = b.firstChild.nodeValue;
else
if (a == "virtualearth:icon")
m = b.firstChild.nodeValue;
else
if (a == "geo:lat")
g = b.firstChild.nodeValue;
else
if (a == "geo:lon")
f = b.firstChild.nodeValue;
else
if (a == "geo:long")
f = b.firstChild.nodeValue;
else
if (a == "geo:Point" || a ==
"geo:point")
for (d = 0;d < b.childNodes.length;d++)
{
var e = b.childNodes[d];
if (e.nodeName == "geo:lat")
g = e.firstChild.nodeValue;
else
if (e.nodeName == "geo:lon" || e.nodeName
== "geo:long")
f = e.firstChild.nodeValue;
}
else
if (a == "georss:point" || a ==
"georss:line" || a == "georss:polygon")
{
if (b.firstChild)
{
var n = b.firstChild.nodeValue;
if (n.length == 4096 && typeof
b.textContent != "undefined" && b.textContent != null)
n = b.textContent;
c = this.ExtractLatLonPairFromXMLList(n);
if (c && c.length > 1)
{
g = c[1];
f = c[0];
if (a == "georss:line")
k = VEShapeType.Polyline;
else
if (a == "georss:polygon")
k = VEShapeType.Polygon;
}
}
}
else
if (a == "gml:name")
if (b.firstChild)
r = b.firstChild.nodeValue;
else
r = "";
else
if (a == "gml:description")
if (b.firstChild)
p = b.firstChild.nodeValue;
else
p = "";
else
if (a == "gml:Point" || a ==
"gml:point" || a == "georss:where" && b.firstChild.nodeName ==
"gml:Point")
{
var i = null;
if (a == "gml:Point" || a ==
"gml:point")
i = b.childNodes;
else
i = b.firstChild.childNodes;
for (d = 0;d < i.length;d++)
{
var e = i[d];
if (e.nodeName == "gml:pos")
if (e.firstChild)
{
var n = e.firstChild.nodeValue;
c =
this.ExtractLatLonPairFromXMLList(n);
if (c && c.length > 1)
{
g = c[1];
f = c[0];
}
}
}
}
else
if (a == "gml:pos" || a ==
"gml:posList")
{
if (l[j].childNodes[o].firstChild)
{
var n =
l[j].childNodes[o].firstChild.nodeValue;
c = this.ExtractLatLonPairFromXMLList(n);
if (c && c.length > 1)
{
g = c[1];
f = c[0];
if (a == "gml:posList")
k = VEShapeType.Polyline;
}
}
}
else
if (a == "gml:LineString" || a ==
"georss:where" && b.firstChild.nodeName == "gml:LineString")
{
var i = null;
if (a == "gml:LineString")
i = b.childNodes;
else
i = b.firstChild.childNodes;
k = VEShapeType.Polyline;
var x = i.length;
for (d = 0;d < x;d++)
{
var e = i[d];
if (e.nodeName ==
"gml:posList")
if (e.firstChild)
{
var n = e.firstChild.nodeValue;
c =
this.ExtractLatLonPairFromXMLList(n);
if (c && c.length > 1)
{
g = c[1];
f = c[0];
}
}
}
}
else
if (a == "gml:Polygon" || a ==
"georss:where" && b.firstChild.nodeName == "gml:Polygon")
{
var i = null;
if (a == "gml:Polygon")
i = b.childNodes;
else
i = b.firstChild.childNodes;
k = VEShapeType.Polygon;
var x = i.length;
for (d = 0;d < x;d++)
{
var v = i[d];
if (v.nodeName ==
"gml:exterior" || v.nodeName == "gml:interior")
{
var e = null;
e = v.childNodes;
var E = e.length;
for (var t = 0;t < E;t++)
if (e[t].nodeName ==
"gml:LinearRing" && e[t].firstChild)
{
var n = null, y =
e[t].firstChild;
if (y.nodeName ==
"gml:posList" && y.firstChild)
{
n =
y.firstChild.nodeValue;
c =
this.ExtractLatLonPairFromXMLList(n);
if (c &&
c.length > 1)
{
g = c[1];
f = c[0];
}
}
}
}
}
}
}
if (g == null || g == "undefined" || g.length <= 0 || f == null ||
f == "undefined" || f.length <= 0)
continue ;
if (q.Spec.IconUrl != null && q.Spec.IconUrl != "undefined")
m = q.Spec.IconUrl;
if (m == null || m == "undefined" || m.length <= 0)
m = Msn.VE.API.Constants.iconurl;
var D = p;
try
{
var s = null;
if (k == VEShapeType.Pushpin)
if (g != null && f != null)
s = new Msn.Drawing.Point(f, g);
else
continue ;
else
if (k == VEShapeType.Polyline)
{
if (c.length < 4)
continue ;
s = new Msn.Drawing.PolyLine(c);
}
else
if (k == VEShapeType.Polygon)
{
if (c.length < 8)
continue ;
s = new Msn.Drawing.Polygon(c);
}
var h;
if (Msn.VE.API != null)
{
var w = s.points, x = w.length, B = [];
for (var d = 0;d < x - 1;d = d + 2)
B.push(new VELatLong(w[(d + 1)], w[d]));
h = new VEShape(k, B);
}
else
{
h = new VEShape(MC_VESHAPE_EMPTY);
h.AddPrimitive(s);
}
h.Latitude = g;
h.Longitude = f;
h.Url = u;
h.IconId = m;
h.Notes = D;
h.SetDisplayOrder(j);
h.SetIndex(j);
h.Title = r;
if (Msn.VE.API != null)
q.AddShape(h);
else
q.AddEntityAnnotation(h);
}
catch (H)
{
throw new VEException("VEMap:AddGeoRSSLayerPushpins",
"err_invalidLatLong", H.message);
}
}
}
if (q.GetShapeCount() > 0)
C = true;
return C;
}
);
Msn.Drawing.MapGeoRssReader.prototype.ExtractLatLonPairFromXMLList = (function (a)
{
a = a.replace(/^\s+/g, "");
a = a.replace(/\s+$/g, "");
var b = [];
if (a.indexOf(",") > 0)
b = a.split(",");
else
{
a = a.replace(/\s+/g, " ");
b = a.split(" ");
}
var d = b.length;
if (d / 2 != Math.round(d / 2))
return null;
for (var c = 0;c < d - 1;c = c + 2)
{
var e = parseFloat(b[c]), f = parseFloat(b[(c + 1)]);
if (isNaN(e) || isNaN(f))
throw new VEException("VEMap:ExtractLatLonPairFromXMLList",
"err_invalidLatLong", L_GeoRssInvalidFormatError_Text);
b[c] = f;
b[c + 1] = e;
}
return b;
}
);
_VERegisterNamespaces("VE_MapCmlReader");
VE_MapCmlReader = (function ()
{
}
);
VE_MapCmlReader.ReadCMLDom = (function (c,b,a)
{
return VE_MapCmlReader.ExtractCollections(c, b, a);
}
);
VE_MapCmlReader.ExtractCollections = (function (g,q,j)
{
var t = null, c = q.getElementsByTagName(MC_CML_COLLECTION);
if (! c)
return null;
var l = c.length;
if (l < 1)
return null;
var o = [], n = g.action;
for (var d = 0;d < l;d++)
{
var s = c[d].getAttribute(MC_CML_ID), r = c[d].getAttribute(MC_CML_IID), i =
unescape(c[d].getAttribute(MC_CML_NAME)), k = c[d].getAttribute(MC_CML_CULTURE), p =
c[d].getAttribute(MC_CML_VISIBILITY), h = c[d].getAttribute(MC_CML_TYPE), a =
j.GetCollectionByMsnId(g, s, r);
if (! a)
continue ;
if (n == MC_ACTION_IMPORT_ENTITY || n == MC_ACTION_CLONE_ENTITY)
{
var m = c[d].childNodes.length;
for (var f = 0;f < m;f++)
{
var b = c[d].childNodes.item(f);
if (b.nodeName == MC_CML_ENTITY)
VE_MapCmlReader.ExtractEntity(g, b, a, j);
}
}
else
{
if (p != null && p == "false")
a.SetVisibility(false);
if (h && h != "" && h != "undefined")
a.SetType(h);
if (i && i != "" && i != "undefined")
a.SetName(i);
if (k && k != "")
a.Culture = k;
var m = c[d].childNodes.length;
for (var f = 0;f < m;f++)
{
var b = c[d].childNodes.item(f);
switch (b.nodeName)
{
case MC_CML_SHARELEVEL:
if (b.text == "public")
{
a.IsPublic = true;
a.IsIndexed = false;
}
else
if (b.text == "indexed")
{
a.IsPublic = true;
a.IsIndexed = true;
}
else
{
a.IsPublic = false;
a.IsIndexed = false;
}
break ;
case MC_CML_PROPERTYS:
a._properties = VE_MapCmlReader.ExtractProperties(b);
break ;
case MC_CML_DESCRIPTION:
a.Notes = unescape(b.text);
break ;
case MC_CML_TAGS:
a.Tags = unescape(b.text);
break ;
case MC_CML_LASTMODIFIED:
var e = new Date(b.text);
if (e == "NaN")
a.DateModified = Date();
else
a.DateModified = b.text;
break ;
case MC_CML_DATECREATED:
var e = new Date(b.text);
if (e == "NaN")
a.DateCreated = Date();
else
a.DateCreated = b.text;
break ;
case MC_CML_ENTITY:
VE_MapCmlReader.ExtractEntity(g, b, a, j);
break ;
case MC_CML_STATE:
var e = parseInt(b.text);
if ((e & MC_CML_STATE_OWNER_CAN_VIEW) == MC_CML_STATE_OWNER_CAN_VIEW
&& (e & MC_CML_STATE_PUBLIC_CAN_VIEW) != MC_CML_STATE_PUBLIC_CAN_VIEW)
a.ViewableByOwnerOnly = true;
else
a.ViewableByOwnerOnly = false;
if ((e & MC_CML_STATE_OWNER_CAN_UPDATE) ==
MC_CML_STATE_OWNER_CAN_UPDATE)
a.EditableByOwner = true;
else
a.EditableByOwner = false;
if ((e & MC_CML_STATE_OWNER_IS_VIEWING) ==
MC_CML_STATE_OWNER_IS_VIEWING)
a.OwnerIsViewing = true;
else
a.OwnerIsViewing = false;
}
}
}
o.push(a);
}
return o;
}
);
VE_MapCmlReader.ExtractEntity = (function (o,s,d,n)
{
var c = s, l = c.getAttribute(MC_CML_ID), q = c.getAttribute(MC_CML_IID), k =
c.getAttribute(MC_CML_TYPE), j = unescape(c.getAttribute(MC_CML_NAME)), r =
c.getAttribute(MC_CML_VISIBILITY), g = o.action;
if (g == MC_ACTION_ADD_ENTITY)
{
var e = o.GetParameters(MC_KVP_ENTITYLIST);
if (typeof e == "undefined" || e == null)
return ;
for (var i = 0;i < e.length;i++)
{
var h = e[i];
if (typeof h == "undefined" || h == null)
continue ;
if (h.GetId() == q)
{
h.SetMsnId(l);
e.splice(i, 1);
return ;
}
}
return ;
}
var f;
if (g == MC_ACTION_CREATE_COLLECTION || g == MC_ACTION_IMPORT_ENTITY || g ==
MC_ACTION_IMPORT_COLLECTION)
f = n.GetAnnotationByMsnId(d, l, q);
else
f = n.GetAnnotationByMsnId(d, l);
var a = f[1];
if (f[0])
return ;
if (k && k != "")
a.SetType(k);
if (j && j != "")
a.Title = j;
if (r && r != "")
a.SetVisibility(false);
var b = null, v = null, u = c.childNodes.length;
for (var m = 0;m < u;m++)
{
b = c.childNodes[m];
if (b.nodeType == 1)
{
var t = b.nodeName;
switch (t)
{
case MC_CML_PROPERTYS:
VE_MapCmlReader.ExtractEntityProperties(b, a);
break ;
case MC_CML_DESCRIPTION:
a.Notes = VE_SanitizeHTML(unescape(b.text).replace(/<BR\/?>/gi,
"\n"));
break ;
case MC_CML_ENTITY_PRIMITIVES:
var p = VE_MapCmlReader.ExtractPrimitives(b);
if (p)
{
a.ClearAllPrimitives();
a.SetPrimitives(p);
}
break ;
case MC_CML_VIEWPORT:
a.ViewPort = VE_MapCmlReader.ExtractViewPort(b);
break ;
case MC_CML_TOUR:
a.Tour = VE_MapCmlReader.ExtractTour(b);
break ;
case MC_CML_MODELREP:
a.ModelRep = VE_MapCmlReader.ExtractModelRep(b);
break ;
case MC_CML_PHOTOS:
a.Photos = VE_MapCmlReader.ExtractPhotos(b);
}
}
}
if (a.GetPrimitiveCount() == 0)
VE_MapManager.GetLayerManager().DeleteAnnotationFromCollection(d, a);
else
if (! f[0])
if (Msn.VE.API != null)
d.AddShape(a);
else
d.AddEntityAnnotation(a);
else
d.UpdateEntityAnnotation(a);
return d;
}
);
VE_MapCmlReader.ExtractViewPort = (function (f)
{
var a = new VE_3DViewPort(), e = true, g = f.childNodes.length;
for (var d = 0;d < g;d++)
{
var b = f.childNodes[d];
switch (b.nodeName)
{
case MC_CML_ENTITY_COORDINATES:
var c = b.text.split(MC_CML_TOKEN1);
if (c.length == 2)
{
a.Longitude = parseFloat(c[0]);
a.Latitude = parseFloat(c[1]);
}
else
e = false;
break ;
case MC_CML_ALTITUDE:
a.Altitude = parseFloat(b.text);
break ;
case MC_CML_ALTITUDEMODE:
a.Altitudemode = b.text;
break ;
case MC_CML_PITCH:
a.Pitch = parseFloat(b.text);
break ;
case MC_CML_HEADING:
a.Heading = parseFloat(b.text);
break ;
case MC_CML_MAPSTYLE:
a.Mapstyle = b.text;
break ;
case MC_CML_SCENEID:
a.SceneId = parseInt(b.text);
break ;
case MC_CML_PROPERTYS:
a.Properties = VE_MapCmlReader.ExtractProperties(b);
}
}
if (! e || isNaN(a.Longitude) || isNaN(a.Latitude) || isNaN(a.Latitude) ||
isNaN(a.Pitch) || isNaN(a.Heading))
a = null;
return a;
}
);
VE_MapCmlReader.ExtractTour = (function (el)
{
var Tour = new VE_3DTour();
Tour.Actions = [];
var actionKey = null, actionValue = null, actions = el.selectSingleNode(MC_CML_ACTIONS),
childNodesLen = actions.childNodes.length;
for (var i = 0;i < childNodesLen;i++)
{
var actionNode = null;
actionNode = actions.childNodes[i].selectSingleNode(MC_CML_PROPERTYS);
var action = null, actionStr = "{", actionLen =
actionNode.childNodes.length;
if (actionLen > 0)
{
for (var j = 0;j < actionLen;j++)
{
var node = actionNode.childNodes[j];
if (node.nodeName == MC_CML_PROPERTY)
{
actionKey = node.getAttribute(MC_CML_KEY);
actionValue = node.getAttribute(MC_CML_VALUE);
if (typeof actionKey != "undefined" && actionKey !=
null && typeof actionValue != "undefined" && actionValue !=
null)
actionStr = actionStr.concat("'", actionKey,
"':'", actionValue, "',");
}
}
actionStr = actionStr.substring(0, actionStr.length - 1);
actionStr = actionStr.concat("}");
action = eval("(" + actionStr + ")");
}
if (typeof action != "undefined" && action != null)
Tour.Actions.push(action);
}
if (Tour.Actions.length < 1)
Tour = null;
return Tour;
}
);
VE_MapCmlReader.ExtractModelRep = (function (d)
{
var a = new VE_3DModelRep(), e = d.childNodes.length;
for (var c = 0;c < e;c++)
{
var b = d.childNodes[c];
switch (b.nodeName)
{
case MC_CML_TRANSFORM:
a.Transform = b.text.split(MC_CML_TOKEN1);
break ;
case MC_CML_MODELREFID:
a.ModelRefId = b.text;
break ;
case MC_CML_PROPERTYS:
a.Properties = VE_MapCmlReader.ExtractProperties(b);
break ;
case MC_CML_MINBOUNDS:
a.MinBounds = b.text;
break ;
case MC_CML_MAXBOUNDS:
a.MaxBounds = b.text;
break ;
case MC_CML_R2EOFFSET:
a.R2eoffset = b.text;
}
}
if (typeof a.Transform != "object" || a.Transform.length != 16)
a = null;
return a;
}
);
VE_MapCmlReader.ExtractEntityProperties = (function (h,a)
{
var i = h.childNodes.length;
for (var g = 0;g < i;g++)
{
var d = h.childNodes.item(g);
if (d.nodeName == MC_CML_PROPERTY)
{
var b = d.getAttribute(MC_CML_VALUE);
switch (d.getAttribute(MC_CML_KEY))
{
case MC_CML_PROPERTY_URL:
var c = null;
c = unescape(b);
if (c != "undefined" && c)
a.Url = c;
break ;
case MC_CML_PROPERTY_ICONURL:
var f = null;
f = unescape(b);
if (f)
a.SetIconUrl(f);
break ;
case MC_CML_PROPERTY_KEYWORDS:
a.Keywords = unescape(b);
break ;
case MC_CML_PROPERTY_PHOTOURL:
var e = null;
e = unescape(b);
if (e)
a.PhotoUrl = e;
break ;
case MC_CML_PROPERTY_USERDATE:
a.UserDate = b;
break ;
case MC_CML_PROPERTY_DISPLAYORDER:
a.DisplayOrder = b;
break ;
case MC_CML_PROPERTY_BUSINESSLISTINGID:
a.SetBusinessListingId(b);
break ;
case MC_CML_LASTMODIFIED:
a.LastModified = b;
break ;
case MC_CML_DISPLAYORDER:
a.SetDisplayOrder(b);
break ;
case MC_CML_ZOOMLEVEL:
a.SetZoomLevel(b);
break ;
case MC_CML_ONSCRATCHPAD:
a.SetOnScratchpad(b);
break ;
case MC_CML_PROPERTY_SOURCEURL:
a.SourceUrl = unescape(b);
break ;
case MC_CML_PROPERTY_SOURCETYPE:
a.SourceType = b;
}
}
}
return a;
}
);
VE_MapCmlReader.ExtractPhotos = (function (l)
{
var n = [], j = l.childNodes.length;
if (j == 0)
return null;
for (var g = 0;g < j;g++)
{
var a = l.childNodes.item(g);
if (a.nodeName == MC_CML_PHOTO)
{
var c = new VE_Photo();
c.Id = a.getAttribute(MC_CML_ID);
var k = {}, m = true, o = a.childNodes.length;
for (var h = 0;h < o;h++)
{
var e = a.childNodes.item(h);
if (e.nodeName == MC_CML_PROPERTYS)
{
var p = e.childNodes.length;
for (var i = 0;i < p;i++)
{
var f = e.childNodes.item(i);
if (f.nodeName == MC_CML_PROPERTY)
{
var b = f.getAttribute(MC_CML_VALUE), d =
f.getAttribute(MC_CML_KEY);
if (d != "undefined" && d != null && b
!= "undefined" && b != null)
if (d == MC_CML_PROPERTY_URL)
{
var q = unescape(b);
c.Url = q;
}
else
{
k[d] = b;
m = false;
}
}
}
}
}
if (! m)
c.Properties = k;
n.push(c);
}
}
return n;
}
);
VE_MapCmlReader.ExtractProperties = (function (a)
{
if (typeof a == "undefined" || a == null || a.childNodes.length < 1)
return null;
var h = a.childNodes.length, d = {}, e = true;
for (var c = 0;c < h;c++)
{
var b = a.childNodes.item(c);
if (b.nodeName == MC_CML_PROPERTY)
{
var f = b.getAttribute(MC_CML_VALUE), g = b.getAttribute(MC_CML_KEY);
if (g != null && f != null)
{
d[g] = f;
e = false;
}
}
}
if (e)
return null;
else
return d;
}
);
VE_MapCmlReader.ExtractPrimitives = (function (l)
{
var g = [], o = l.childNodes.length;
for (var k = 0;k < o;k++)
{
var f = l.childNodes.item(k);
if (f.nodeName == MC_CML_ENTITY_PRIMITIVE)
{
var d = true, a = null, c = null, n = null, p = f.childNodes.length;
for (var j = 0;j < p;j++)
{
var b = f.childNodes[j];
if (d)
{
var e = b.getAttribute(MC_CML_LENGTH), m = b.getAttribute(MC_CML_AREA);
switch (b.nodeName)
{
case MC_CML_POLYGON:
d = false;
a = VE_MapCmlReader.ExtractPolygon(b);
if (e)
a.SetLength(e * 1);
if (m)
a.SetArea(m * 1);
break ;
case MC_CML_POLYLINE:
d = false;
a = VE_MapCmlReader.ExtractPolyLine(b);
if (e)
a.SetLength(e * 1);
break ;
case MC_CML_POINT:
n = VEShapeType.Pushpin;
d = false;
a = VE_MapCmlReader.ExtractPoint(b);
}
}
else
if (b.nodeName == MC_CML_DEFAULTSTYLE)
{
var i = VE_MapCmlReader.ExtractStyle(b, n);
c = i[0];
if (i.length > 1)
{
var h = i[1];
if (h)
{
a.labelPosX = h.longitude;
a.labelPosY = h.latitude;
}
}
}
}
if (a != null)
{
if (Msn.VE.API)
{
if (! c)
c = VE_GetDefaultAPISymbol(a.type);
a.symbol = c;
}
else
if (a.type != VEShapeType.Pushpin)
a.symbol = c;
g.push(a);
}
}
}
if (g.length < 1)
return null;
return g;
}
);
VE_MapCmlReader.ExtractPolygon = (function (c)
{
var a = c.selectSingleNode(MC_CML_OUTLS).selectSingleNode(MC_CML_LINEARSTRING), b =
a.selectSingleNode(MC_CML_COORDS);
return VE_MapCmlReader.BuildShape(VEShapeType.Polygon, b.text, a);
}
);
VE_MapCmlReader.ExtractPolyLine = (function (a)
{
var b = a.selectSingleNode(MC_CML_COORDS);
return VE_MapCmlReader.BuildShape(VEShapeType.Polyline, b.text, a);
}
);
VE_MapCmlReader.BuildShape = (function (c,i,d)
{
var h = null, g = d.selectSingleNode(MC_CML_ALTITUDE);
if (g != null)
h = g.text;
var b = VE_GetLatLongPairsFromString(i, h);
if (b == null || b.LonLats == null)
return null;
var a = null;
if (VEShapeType.Polyline == c)
{
a = new Msn.Drawing.PolyLine(b.LonLats);
a.iid = Msn.Drawing.GetGeoUID(VEShapeType.Polyline);
}
else
if (VEShapeType.Polygon == c)
{
a = new Msn.Drawing.Polygon(b.LonLats);
a.iid = Msn.Drawing.GetGeoUID(VEShapeType.Polygon);
}
else
if (VEShapeType.Point == c)
{
a = new Msn.Drawing.Point(b.LonLats[0], b.LonLats[1]);
a.iid = Msn.Drawing.GetGeoUID(VEShapeType.Point);
}
if (b.Altitudes)
{
var e = d.selectSingleNode(MC_CML_ALTITUDEMODE);
if (e != null)
a.altitudeMode = e.text;
if (VEShapeType.Point == c)
{
a.altitudes = b.Altitudes;
return a;
}
else
{
a.altitudes = b.Altitudes;
var f = d.selectSingleNode(MC_CML_EXTRUDE);
if (f != null)
if (f.text.toLowerCase() == "true")
a.extruded = true;
a.minZ = b.minZ;
a.maxZ = b.maxZ;
a.labelPosZ = a.maxZ;
}
}
if (VEShapeType.Point != c)
{
a.minX = b.minX;
a.minY = b.minY;
a.maxX = b.maxX;
a.maxY = b.maxY;
}
return a;
}
);
VE_MapCmlReader.ExtractPoint = (function (a)
{
var b = a.selectSingleNode(MC_CML_COORDS);
return VE_MapCmlReader.BuildShape(VEShapeType.Point, b.text, a);
}
);
VE_MapCmlReader.ExtractStyle = (function (i,n)
{
var e = [], a;
if (Msn.VE.API)
a = VE_GetDefaultAPISymbol(n);
else
a = VE_MapDispatch_SymbolLib.GetCurrentDefaultSymbol();
a = a.Clone();
var k = i.childNodes.length, d = null;
for (var f = 0;f < k;f++)
{
var c = i.childNodes.item(f);
if (c.nodeName == MC_CML_STYLE)
{
var l = c.text, j = l.split(MC_CML_TOKEN3), b = null, m = j.length;
for (var g = 0;g < m;g++)
{
b = j[g].split(MC_CML_TOKEN2);
if (b != null || b.length == 2)
switch (b[0])
{
case MC_STYLE_STROKE_COLOR:
a.stroke_color = b[1];
break ;
case MC_STYLE_FILL_COLOR:
a.fill_color = b[1];
break ;
case MC_STYLE_STROKE_WEIGHT:
a.stroke_weight = b[1];
break ;
case MC_STYLE_STROKE_STYLE:
a.stroke_style = b[1];
break ;
case MC_STYLE_STROKE_DASH:
a.stroke_dashstyle = b[1];
}
b = null;
}
}
else
if (c.nodeName == MC_CML_LABELSTYLE)
{
var h = c.selectSingleNode(MC_CML_POSITION);
if (h != null)
d = VE_GetLatLongFromString(h.text);
}
}
e.push(a);
if (d)
e.push(d);
return e;
}
);
VEShapeStyleLibrary = (function ()
{
var a = [];
this.AddMapSymbol = (function (b)
{
if (b.stroke_color2 == null || b.stroke_color2 == "")
if (b.stroke_color == "red")
b.stroke_color2 = "blue";
else
b.stroke_color2 = "red";
if (b.fill_color2 == null || b.fill_color2 == "")
if (b.fill_color == "blue")
b.fill_color2 = "red";
else
b.fill_color2 = "blue";
a.push(b);
}
);
var b = null;
this.GetCurrentDefaultSymbol = (function ()
{
if (b == null)
b = this.GetMapSymbolByID(MC_PROPERTY_PARK);
return b;
}
);
this.GetMapSymbolByID = (function (c)
{
if (a.length > 0)
{
for (var d = 0;d < a.length;d++)
if (a[d].id == c)
return a[d];
}
else
{
var e = new VEShapeStyle();
e.id = MC_PROPERTY_DEFAULT;
this.AddMapSymbol(e);
}
var b = null;
if (typeof c == "undefined" || c == 0)
return a[0];
b = new VEShapeStyle();
switch (c)
{
case MC_PROPERTY_HIGHWAY:
b.id = c;
break ;
case MC_PROPERTY_ROAD:
b.id = c;
b.stroke_color = "yellow";
b.stroke_style = "thickbetweenthin";
b.stroke_weight = 6;
break ;
case MC_PROPERTY_LAKE:
b.id = c;
break ;
case MC_PROPERTY_PARK:
b.id = c;
b.stroke_opacity = "50%";
b.stroke_endcap = "square";
b.stroke_joinstyle = "bevel";
break ;
case MC_PROPERTY_PARKINGLOT:
b.id = c;
break ;
case MC_PROPERTY_PUSHPIN:
b.id = c;
break ;
case MC_PROPERTY_TEMPDRAW:
b.id = c;
b.stroke_weight = 1;
b.stroke_dashstyle = "dashdot";
break ;
case MC_PROPERTY_TEMPEDIT:
b.id = c;
b.stroke_weight = 1;
b.stroke_color = "#0F0F0F";
b.stroke_dashstyle = "longdashdot";
break ;
case MC_PROPERTY_EDITNODE:
b.id = c;
b.shape_drawtype = "v:rect";
b.style_filter = "100%";
b.stroke_color = "#000000";
b.fill_color = "yellow";
break ;
case MC_PROPERTY_EDITSELNODE:
b.id = c;
b.shape_drawtype = "v:rect";
b.style_filter = "100%";
b.stroke_color = "red";
b.fill_color = "yellow";
break ;
case MC_PROPERTY_GHOSTNODE:
b.id = c;
b.shape_drawtype = "v:rect";
b.style_filter = "100%";
b.stroke_opacity = "100%";
b.fill_opacity = "100%";
b.stroke_color = "#666666";
b.fill_color = "#dddd88";
break ;
default:
return a[0];
}
this.AddMapSymbol(b);
return b;
}
);
this.GetLocalMapSymbol = (function (b)
{
var a = VE_MapManager.GetEntityPrimitiveByElmt(b);
if (a == null)
return null;
geometry = a[2];
if (typeof geometry == "undefined" || geometry == null)
return null;
return geometry.symbol;
}
);
}
);
_VERegisterNamespaces("Msn.Drawing");
Msn.Drawing.GetTextUID = (function (a)
{
return a + MC_IID_CON_TOKEN + "t";
}
);
Msn.Drawing.GetLabelUID = (function (a)
{
return a + MC_IID_CON_TOKEN + "l";
}
);
Msn.Drawing.GetShpElementUIDByLabelUID = (function (c)
{
var b = "", a = c.split(MC_IID_CON_TOKEN);
if (! a || a[0] != MC_IID_NAMESPACE)
return null;
b = b.concat(a[0], MC_IID_CON_TOKEN, a[1], MC_IID_CON_TOKEN, a[2], MC_IID_CON_TOKEN,
a[3]);
return b;
}
);
Msn.Drawing.CreatePointPushpin = (function (k,a,m,q,i,f,e,j)
{
var g = null, c = m;
Msn.Drawing.CalculateLabelPosition(a, false);
var p = a.labelPosX ? a.labelPosX : a.points[0], o = a.labelPosY ? a.labelPosY :
a.points[1], n = f ? f : 22, l = e ? e : 17, h = a.iid, b = i;
if (a.type == VEShapeType.Pushpin)
{
if (typeof b == "undefined" || ! b)
b = VE_MapStruct.PushpinType.PushpinAn;
}
else
{
h = Msn.Drawing.GetLabelUID(a.iid);
if (typeof b == "undefined" || ! b)
b = VE_MapStruct.PushpinType.Polyline;
}
var d = c + "";
if (j)
if (b == "VE_Pushpin VE_Pushpin_aN")
d = "<div
style=\"position:absolute;width:25px;height:25px;\"><img
src=\"i/bin/" + window.buildVersion + "/pins/poi_usergenerated.gif\"
/></div><div
style=\"position:absolute;top:5px;width:25px;height:25px;\"><font
color=\"white\">" + c + "</font></div>";
else
if (b == "VE_Pushpin VE_Pushpin_Polyline")
d = "<div
style=\"position:absolute;width:25px;height:25px;\"><img
src=\"i/bin/" + window.buildVersion + "/pins/poi_title_search3.gif\"
/></div><div
style=\"position:absolute;top:5px;width:25px;height:25px;\"><font
color=\"white\">" + c + "</font></div>";
g = k.AddPushpin(h, o, p, n, l, b, d, MC_STYLE_PINZIndex,
Msn.VE.PushPinTypes.Annotation, true);
return g;
}
);
_VERegisterNamespaces("Msn.Drawing");
Msn.Drawing.CalculateLabelPosition = (function (a,g)
{
if (a.type == VEShapeType.Pushpin)
return null;
if (typeof g != "undefined" && g == true)
{
a.labelPosX = null;
a.labelPosY = null;
a.labelPosZ = null;
}
if (a.labelPosX == null && a.labelPosY == null)
if (a.type == VEShapeType.Polyline)
{
var b = Math.round((a.points.length / 2 - 1) / 2 - 1);
b = b > - 1 ? b : 0;
a.labelPosX = (a.points[(2 * b)] + a.points[(2 * b + 2)]) / 2;
a.labelPosY = (a.points[(2 * b + 1)] + a.points[(2 * b + 3)]) / 2;
if (a.altitudes)
a.labelPosZ = Math.max(a.altitudes[b], a.altitudes[(b + 1)]);
}
else
if (a.type == VEShapeType.Polygon)
{
var c = a.points.length, d = 0, e = 0, f = null;
if (a.altitudes)
f = a.altitudes[0];
if (c >= 4 && a.points[0] == a.points[(c - 2)] && a.points[1]
== a.points[(c - 1)])
c -= 2;
for (var b = 0;b < c;b = b + 2)
{
d = d + a.points[b];
e = e + a.points[(b + 1)];
if (a.altitudes)
f = Math.max(f, a.altitudes[(b / 2)]);
}
d = d * 2 / c;
e = e * 2 / c;
a.labelPosX = d;
a.labelPosY = e;
a.labelPosZ = f;
}
}
);
_VERegisterNamespaces("Msn.VE.Core");
Msn.VE.Core.LayerManager = (function ()
{
function GetCollectionListDiv()
{
if (layerListDiv == null)
{
layerListDiv = document.createElement("div");
layerListDiv.id = "VELayerListDiv";
Init();
}
return layerListDiv;
}
function Init()
{
CreateCollection(0, 0, "Unsaved Collection");
}
function AddCollection(b,a)
{
if (b == 0)
cols.unshift(a);
else
cols.push(a);
return a;
}
function IsCollectionExist(c)
{
if (cols.length > 0)
for (var a = 0;a < cols.length;a++)
{
var b = cols[a];
if (b.GetMsnId() && b.GetMsnId() == c)
return true;
}
return false;
}
function SaveCollection(b)
{
var a = cols[0];
if (a.GetMsnId() == 0)
{
a = cols.shift();
cols.push(a);
CreateCollection(0, 0, "Unsaved Collection");
a.SetMsnId(b);
return a;
}
}
function GetCollectionIndexByMsnId(c)
{
if (cols.length > 0)
for (var a = 0;a < cols.length;a++)
{
var d = cols[a], b = d.GetMsnId();
if (b && b == c)
return a;
}
return 0;
}
function GetCollectionByMsnId(b,a)
{
if (! b)
return null;
switch (b.action)
{
case MC_ACTION_RETRIEVE_ALLCOLLECTIONS_METADATA:
return this.RetrieveCollection(a);
break ;
case MC_ACTION_IMPORT_COLLECTION:
return CreateCollection(cols.length - 1, a, "Unsaved Collection");
case MC_ACTION_CREATE_COLLECTION:
return this.SaveCollection(a);
break ;
case MC_ACTION_CLONE_ENTITY:
case MC_ACTION_UPDATE_COLLECTION:
return this.RetrieveCollection(a);
break ;
case MC_ACTION_IMPORT_ENTITY:
case MC_ACTION_ADD_ENTITY:
return this.RetrieveCollection(a);
break ;
case MC_ACTION_RETRIEVE_SHAREDCOLLECTION:
case MC_ACTION_RETRIEVE_COLLECTION:
return this.RetrieveCollection(a);
}
}
function RetrieveCollection(c)
{
var d = false;
if (cols.length > 0)
for (var b = 0;b < cols.length;b++)
{
var a = cols[b];
if (a.GetMsnId() && a.GetMsnId() == c)
{
d = true;
return a;
}
}
if (! d)
return CreateCollection(- 1, c, "Unsaved Collection");
}
function SetVisibility(b)
{
if (cols.length > 0)
for (var a = 0;a < cols.length;a++)
cols[a].SetVisibility(b);
}
function RetrieveCollectionById(c)
{
if (cols.length > 0)
for (var a = 0;a < cols.length;a++)
{
var b = cols[a];
if (b.GetId() == c)
return b;
}
return null;
}
function CreateCollection(b,c,d)
{
var a = new VEShapeLayer();
a.SetMsnId(c);
a.SetName(d);
a = AddCollection(b, a);
return a;
}
function CreateNewCollection(b)
{
var a = null;
if (b == MC_COL_TYPE_TILEIMAGE)
a = new Msn.VE.Core.RasterLayer();
else
a = new VEShapeLayer();
a.SetType(b);
a.SetMsnId(0);
a = AddCollection(cols.length, a);
return a;
}
function GetSelectedCollection()
{
if (cols.length > 0)
for (var a = 0;a < cols.length;a++)
{
var b = cols[a];
if (self.GetSelectedCollectionMsnId() == cols[a].GetMsnId())
return cols[a];
}
return CreateCollection(0, 0, "Unsaved Collection");
}
function GetCollection(c)
{
var a = [];
a[0] = false;
a[1] = false;
if (cols.length > 0)
for (var b = 0;b < cols.length;b++)
if (cols[b].GetMsnId() == c)
{
a[0] = true;
var e = cols[b].Annotations.length;
if (! cols[b].Annotations || e < 1)
a[1] = false;
else
a[1] = true;
a[2] = cols[b];
return a;
}
var d = CreateCollection(0, c, "Unsaved Collection");
a[2] = d;
return a;
}
function GetCollectionCount()
{
if (! cols)
return 0;
return cols.length;
}
function GetCollectionByIndex(a)
{
if (cols == null || cols.length < a || a < 0)
return null;
return cols[a];
}
function Dispose()
{
DeleteAll();
cols = [];
loadedColIds = [];
}
function DeleteAll()
{
var a = null;
while (cols.length > 1)
{
a = cols.pop();
EmptyCollection(a);
}
if (cols.length == 1)
EmptyCollection(cols[0]);
}
function RemoveCollection(a)
{
EmptyCollection(a);
DeleteCollection(a);
}
function EmptyCollection(a)
{
var c = null;
if (a.Annotations.length > 0)
for (var b = 0;b < a.Annotations.length;b++)
{
c = a.Annotations[b];
ClearEntity(c);
}
a.Annotations = [];
a.SetBoundingBox(0, 0, Infinity, Infinity, - Infinity, - Infinity);
}
function DeleteCollection(c)
{
var b = 0;
if (cols.length == 1)
{
cols.pop();
b = 0;
CreateCollection(0, 0, "Unsaved Collection");
}
else
for (var a = 0;a < cols.length;a++)
if (cols[a].iid == c.iid)
{
b = a;
cols.splice(a, 1);
break ;
}
c = null;
selecteColMsnId = 0;
}
function GetSelectedCollectionAnnotationCount()
{
var a = self.GetSelectedCollection();
return a.GetShapeCount();
}
function GetAnnotationByMsnId(a,d,f)
{
var b = [];
if (a && a.Annotations && a.GetShapeCount() > 0)
for (var c = 0;c < a.Annotations.length;c++)
if (d && a.Annotations[c].GetMsnId() == d || f &&
a.Annotations[c].GetId() == f)
{
b[0] = true;
a.Annotations[c].SetMsnId(d);
b[1] = a.Annotations[c];
return b;
}
var e = new VEShape(MC_VESHAPE_EMPTY);
e.SetMsnId(d);
b[0] = false;
b[1] = e;
return b;
}
function GetAnnotationById(e)
{
if (cols.length < 1)
return null;
var d = e, a = d.split(MC_IID_CON_TOKEN);
if (a[0] != MC_IID_NAMESPACE)
return null;
a[1] = a[0] + MC_IID_CON_TOKEN + a[1];
a[2] = a[1] + MC_IID_CON_TOKEN + a[2];
for (var b = 0;b < cols.length;b++)
if (cols[b].iid == a[1])
{
var f = cols[b].Annotations.length;
for (var c = 0;c < f;c++)
if (cols[b].Annotations[c].GetId() == a[2])
{
return cols[b].Annotations[c];
break ;
}
break ;
}
return null;
}
function GetCollectionByAnId(d)
{
if (cols.length < 1)
return null;
var c = d, a = c.split(MC_IID_CON_TOKEN);
if (a[0] != MC_IID_NAMESPACE)
return null;
a[1] = a[0] + MC_IID_CON_TOKEN + a[1];
a[2] = a[1] + MC_IID_CON_TOKEN + a[2];
for (var b = 0;b < cols.length;b++)
if (cols[b].iid == a[1])
{
cols[b]._index = b;
return cols[b];
}
return null;
}
function DeleteAnnotationById(c)
{
if (cols.length < 1)
return null;
for (var a = 0;a < cols.length;a++)
if (cols[a].GetMsnId() == selecteColMsnId)
{
var d = cols[a].Annotations.length;
for (var b = 0;b < d;b++)
if (cols[a].Annotations[b].GetId() == c)
{
ClearEntity(cols[a].Annotations[b]);
cols[a].Annotations.splice(b, 1);
cols[a].UpdateBoundingBox();
break ;
}
break ;
}
}
function SwapAnnotations(j,k)
{
var a = null, b = null, c = null;
if (cols.length < 1)
return null;
for (var d = 0;d < cols.length;d++)
if (cols[d].GetMsnId() == selecteColMsnId)
{
a = d;
var m = cols[d].Annotations.length;
for (var e = 0;e < m;e++)
{
if (b == null && cols[d].Annotations[e].GetId() == j)
b = e;
else
if (c == null && cols[d].Annotations[e].GetId() == k)
c = e;
if (b != null && c != null)
break ;
}
break ;
}
if (a == null || b == null || c == null)
return null;
var l = cols[a].Annotations[b];
cols[a].Annotations[b] = cols[a].Annotations[c];
cols[a].Annotations[c] = l;
var f = cols[a].Annotations[b].GetDisplayOrder(), g =
cols[a].Annotations[c].GetDisplayOrder();
cols[a].Annotations[b].SetDisplayOrder(g);
cols[a].Annotations[c].SetDisplayOrder(f);
var h = cols[a].Annotations[b].GetIndex(), i = cols[a].Annotations[c].GetIndex();
cols[a].Annotations[b].SetIndex(i);
cols[a].Annotations[c].SetIndex(h);
cols[a].Annotations[b].SetChangeState(MC_CHANGE_STATE_UPDATE);
cols[a].Annotations[c].SetChangeState(MC_CHANGE_STATE_UPDATE);
mvcViewFacade.OnEntityRepaint(cols[a].Annotations[b]);
mvcViewFacade.OnEntityRepaint(cols[a].Annotations[c]);
return null;
}
function DeleteAnnotation(c)
{
if (! c)
return null;
if (cols.length < 1)
return null;
var e = c.GetId(), a = e.split(MC_IID_CON_TOKEN);
if (a[0] != MC_IID_NAMESPACE)
return null;
a[1] = a[0] + MC_IID_CON_TOKEN + a[1];
var d = null;
for (var b = 0;b < cols.length;b++)
if (cols[b].iid == a[1])
{
d = cols[b];
break ;
}
if (d == null)
return null;
DeleteAnnotationFromCollection(d, c);
}
function UpdateBoundingBox(c)
{
if (c == null || c.Annotations.length < 1)
return null;
var b = null, a = null, e = null;
for (var d = 0;d < c.Annotations.length;d++)
{
e = c.Annotations[d];
b = e.GetBoundingBox();
if (b == null)
return null;
if (a != null)
{
a.x1 = Math.min(a.x1, b.x1);
a.y1 = Math.min(a.y1, b.y1);
a.x2 = Math.max(a.x2, b.x2);
a.y2 = Math.max(a.y2, b.y2);
}
else
a = new Msn.VE.Bounds(0, 0, b.x1, b.y1, b.x2, b.y2);
b = null;
}
if (a)
c.SetBoundingBox(0, 0, a.x1, a.y1, a.x2, a.y2);
}
function DeleteAnnotationFromCollection(a,c)
{
ClearEntity(c);
if (a.Annotations.length == 1)
a.Annotations.pop();
else
for (var b = 0;b < a.Annotations.length;b++)
if (a.Annotations[b].GetId() == c.GetId())
{
a.Annotations.splice(b, 1);
break ;
}
c = null;
a.UpdateBoundingBox();
if (a == GetSelectedCollection())
if (typeof mvcViewFacade != "undefined" && typeof
mvcViewFacade.OnCollectionLayerRepaint == "function")
mvcViewFacade.OnCollectionLayerRepaint(a);
}
function CloneCollection(a)
{
if (typeof a == "undefined" || a == null)
return null;
var g = a.Annotations.length, b = new VEShapeLayer();
b.SetName(name);
b.SetName(a.GetName());
b.SetType(a.GetType());
b.SetVisibility(a.GetVisibility());
b.SetMaxZoomLevel(a.GetMaxZoomLevel());
b.SetMinZoomLevel(a.GetMinZoomLevel());
var c = a.GetBoundingBox();
if (c)
b.SetBoundingBox(c.z1, c.z2, c.x1, c.y1, c.x2, c.y2);
b.Tags = a.Tags;
b.SetChangeType(a.GetChangeType());
b.SetChangeState(a.GetChangeState());
b.Notes = a.Notes;
b.IsPublic = a.IsPublic;
b.IsIndexed = a.IsIndexed;
b.DateCreated = a.DateCreated;
b.DateModified = a.DateModified;
b._properties = CloneProperties(a._properties);
if (g > 0)
{
var e = null, f = null;
for (var d = 0;d < g;d++)
{
e = a.Annotations[d];
f = CloneAnnotationById(e.GetId());
b.AddEntityAnnotation(f);
}
}
return b;
}
function CloneAnnotationById(b)
{
var a = self.GetAnnotationById(b);
return CloneAnnotation(a);
}
function CloneAnnotation(an)
{
var annotation = an;
if (typeof annotation == "undefined" || annotation == null)
return ;
var primitive = annotation.GetPrimitive(0);
if (primitive.points == null || primitive.points.length < 1)
return null;
var copypoints = new Array(primitive.points.length), copyprimitive = null;
for (var j = 0;j < primitive.points.length;j = j + 2)
{
copypoints[j] = primitive.points[j];
copypoints[j + 1] = primitive.points[(j + 1)];
}
switch (primitive.type)
{
case VEShapeType.Polygon:
case VEShapeType.Polyline:
if (primitive.type == VEShapeType.Polyline)
{
copyprimitive = new Msn.Drawing.PolyLine(copypoints);
copyprimitive.iid = Msn.Drawing.GetGeoUID(VEShapeType.Polyline);
}
else
copyprimitive = new Msn.Drawing.Polygon(copypoints);
copyprimitive.minX = primitive.minX;
copyprimitive.minY = primitive.minY;
copyprimitive.maxX = primitive.maxX;
copyprimitive.maxY = primitive.maxY;
copyprimitive.minZ = primitive.minZ;
copyprimitive.maxZ = primitive.maxZ;
copyprimitive.labelPosX = primitive.labelPosX;
copyprimitive.labelPosY = primitive.labelPosY;
copyprimitive.labelPosZ = primitive.labelPosZ;
copyprimitive.extruded = primitive.extruded;
copyprimitive.isLabel = primitive.isLabel;
if (primitive.altitudes)
{
var altitudeLen = primitive.altitudes.length;
copyprimitive.altitudes = [];
for (var j = 0;j < altitudeLen;j++)
copyprimitive.altitudes[j] = primitive.altitudes[j];
}
break ;
case VEShapeType.Pushpin:
copyprimitive = new Msn.Drawing.Point(copypoints[0], copypoints[1]);
copyprimitive.altitudes = [];
if (primitive.altitudes)
copyprimitive.altitudes[0] = primitive.altitudes[0];
}
copyprimitive.altitudeMode = primitive.altitudeMode;
copyprimitive.symbol = primitive.symbol;
var copyannotation = new VEShape(MC_VESHAPE_EMPTY);
copyannotation.AddPrimitive(copyprimitive);
copyannotation.SetProperties(null, annotation.Title, annotation.Url,
annotation.PhotoUrl, annotation.UserDate, annotation.Notes, annotation.Latitude,
annotation.Longitude, annotation.BusinessListingId, annotation.IconId,
annotation.LastModified, annotation.Keywords);
copyannotation.SetDisplayOrder(annotation.GetDisplayOrder());
copyannotation.SetZoomLevel(annotation.GetZoomLevel());
var bbox = annotation.GetBoundingBox();
if (bbox)
copyannotation.SetBoundingBox(bbox.z1, bbox.z2, bbox.x1, bbox.y1, bbox.x2,
bbox.y2);
if (annotation.ViewPort)
{
copyannotation.ViewPort = new VE_3DViewPort();
copyannotation.ViewPort.Latitude = annotation.ViewPort.Latitude;
copyannotation.ViewPort.Longitude = annotation.ViewPort.Longitude;
copyannotation.ViewPort.Altitude = annotation.ViewPort.Altitude;
copyannotation.ViewPort.Altitudemode = annotation.ViewPort.Altitudemode;
copyannotation.ViewPort.Pitch = annotation.ViewPort.Pitch;
copyannotation.ViewPort.Heading = annotation.ViewPort.Heading;
copyannotation.ViewPort.Mapstyle = annotation.ViewPort.Mapstyle;
copyannotation.ViewPort.SceneId = annotation.ViewPort.SceneId;
copyannotation.ViewPort.Properties =
CloneProperties(annotation.ViewPort.Properties);
}
copyannotation.SourceUrl = annotation.SourceUrl;
copyannotation.SourceType = annotation.SourceType;
if (annotation.ModelRep)
{
copyannotation.ModelRep = new VE_3DModelRep();
copyannotation.ModelRep.Transform = annotation.ModelRep.Transform;
copyannotation.ModelRep.ModelRefId = annotation.ModelRep.ModelRefId;
copyannotation.ModelRep.MinBounds = annotation.ModelRep.MinBounds;
copyannotation.ModelRep.MaxBounds = annotation.ModelRep.MaxBounds;
copyannotation.ModelRep.Properties =
CloneProperties(annotation.ModelRep.Properties);
}
if (annotation.Photos)
{
var length = annotation.Photos.length;
copyannotation.Photos = [];
var copyphoto = null, photo = null;
for (var i = 0;i < length;i++)
{
photo = annotation.Photos[i];
copyphoto = new VE_Photo();
copyphoto.Id = photo.Id;
copyphoto.Url = photo.Url;
copyphoto.Properties = CloneProperties(photo.Properties);
copyannotation.Photos.push(copyphoto);
}
}
if (annotation.Tour && typeof annotation.Tour.Actions == "object")
{
copyannotation.Tour = new VE_3DTour();
copyannotation.Tour.Actions = [];
var tourLen = annotation.Tour.Actions.length;
for (var i = 0;i < tourLen;i++)
{
var actionStr = "{", touraction = annotation.Tour.Actions[i];
for (tourkey in touraction)
actionStr = actionStr.concat("'", tourkey,
"':'", touraction[tourkey], "',");
actionStr = actionStr.substring(0, actionStr.length - 1);
actionStr = actionStr.concat("}");
var targetAction = eval("(" + actionStr + ")");
if (typeof targetAction != "undefined" && targetAction !=
null)
copyannotation.Tour.Actions.push(targetAction);
}
}
return copyannotation;
}
function CloneProperties(a)
{
if (typeof a != "object" || a == null)
return null;
var c = {};
for (b in a)
c[b] = a[b];
return c;
}
function AddAnnotationToCollection(a,b)
{
if (typeof b == "undefined" || b == null)
{
var c = self.GetSelectedCollection();
c.AddEntityAnnotation(a);
}
else
b.AddEntityAnnotation(a);
if (typeof mvcViewFacade != "undefined" && typeof
mvcViewFacade.OnEntityRepaint == "function")
mvcViewFacade.OnEntityRepaint(a);
}
function DeleteAllPrimitivesFromAnnotation(a)
{
if (typeof a != "undefined" && a.GetPrimitiveCount() > 0)
{
var c = a.GetPrimitiveCount();
if (c < 1)
return null;
for (var b = 0;b < c;b++)
DeletePrimitiveFromAnnotation(a.GetPrimitive(b), a);
}
return a;
}
function DeletePrimitiveFromAnnotation(b,a)
{
a.DeletePrimitive(b.iid);
if (a.GetPrimitiveCount() == 0)
{
DeleteAnnotation(a);
a = null;
}
return a;
}
function ClearEntity(a)
{
if (typeof a == "undefined" && a == null)
return null;
a.ClearAllPrimitives();
}
function ParseInternalID(b)
{
var a = b.split(MC_IID_CON_TOKEN);
if (! a || a[0] != MC_IID_NAMESPACE)
return null;
a[1] = a[0] + MC_IID_CON_TOKEN + a[1];
a[2] = a[1] + MC_IID_CON_TOKEN + a[2];
a[3] = a[2] + MC_IID_CON_TOKEN + a[3];
return a;
}
function GetEntityPrimitiveById(i)
{
if (cols.length < 1)
return null;
var a = i.split(MC_IID_CON_TOKEN);
if (a[0] != MC_IID_NAMESPACE)
return null;
a[1] = a[0] + MC_IID_CON_TOKEN + a[1];
a[2] = a[1] + MC_IID_CON_TOKEN + a[2];
a[3] = a[2] + MC_IID_CON_TOKEN + a[3];
var b = null, e = null, d = null;
for (var g = 0;g < cols.length;g++)
{
b = cols[g];
if (b.iid == a[1])
{
var j = null;
for (var c = 0;c < b.Annotations.length;c++)
if (b.Annotations[c].GetId() == a[2])
{
e = b.Annotations[c];
for (var h = 0;h < b.Annotations[c].GetPrimitiveCount();h++)
{
d = b.Annotations[c].GetPrimitive(h);
if (d.iid == a[3])
{
var f = [];
f[0] = b;
f[1] = e;
f[2] = d;
return f;
}
d = null;
}
e = null;
}
}
}
if (b == null || e == null || d == null)
return null;
}
function SavedLayerCount()
{
var c = 0, d = cols.length;
if (cols.length > 0)
for (var b = 0;b < d;b++)
{
var a = cols[b], e = a.GetMsnId();
if (e != 0 && a.GetType() == MC_COL_TYPE_COLLECTION && !
a.IsExSource())
c++;
}
return c;
}
var register = new Msn.VE.Core.EventRegistry(), self = this, cols = [], loadedColIds =
[], layerListDiv = null, CopyPasteBoard = null, CountPastes = 0, UndoPrimitives = null;
var visibleBounds = null;
this.SetBoundingBox = (function (e,f,a,c,b,d)
{
if (visibleBounds)
visibleBounds = new Msn.VE.Bounds(0, 0, a, c, b, d);
else
{
visibleBounds.z1 = e;
visibleBounds.z2 = f;
visibleBounds.x1 = a;
visibleBounds.x2 = b;
visibleBounds.y1 = c;
visibleBounds.y2 = d;
}
}
);
this.GetBoundingBox = (function ()
{
if (visibleBounds == null)
{
var a = GetSelectedCollection();
if (a)
return a.GetBoundingBox();
}
return visibleBounds;
}
);
var selecteColMsnId = 0;
this.GetSelectedCollectionMsnId = (function ()
{
return selecteColMsnId;
}
);
var selectedAnnotation = null;
this.SetSelectedAnnotation = (function (a)
{
selectedAnnotation = a;
}
);
this.ClearSelectedAnnotation = (function ()
{
selectedAnnotation = null;
}
);
this.GetSelectedAnnotation = (function ()
{
return selectedAnnotation;
}
);
this.IsSelectedCollectionUnsaved = (function ()
{
if (selecteColMsnId == 0)
return true;
else
return false;
}
);
this.SetSelectedCollectionMsnId = (function (a)
{
selecteColMsnId = a;
if (a != 0)
{
for (var d = 0;d < loadedColIds.length;d++)
if (loadedColIds[d] == a)
return a;
loadedColIds.push(a);
if (loadedColIds.length > MC_MAX_LOADED_COLS)
{
var c = loadedColIds.shift();
c = GetCollectionIndexByMsnId(c);
if (c > 0)
{
var b = GetCollectionByIndex(c);
if (b && b.GetType() == MC_COL_TYPE_COLLECTION)
{
mvcViewFacade.OnCollectionLayerClear(b);
EmptyCollection(b);
}
}
}
}
}
);
this.AddListener = (function (b,a)
{
register.AddListener(b, a);
}
);
this.RemoveListener = (function (b,a)
{
register.RemoveListener(b, a);
}
);
this.Fire = (function (b,a)
{
register.Fire(b, a);
}
);
this.GetCollectionListDiv = GetCollectionListDiv;
this.Init = Init;
this.IsCollectionExist = IsCollectionExist;
this.GetCollectionIndexByMsnId = GetCollectionIndexByMsnId;
this.GetAnnotationByMsnId = GetAnnotationByMsnId;
this.GetSelectedCollection = GetSelectedCollection;
this.GetCollection = GetCollection;
this.RetrieveCollection = RetrieveCollection;
this.RetrieveCollectionById = RetrieveCollectionById;
this.CreateNewCollection = CreateNewCollection;
this.SaveCollection = SaveCollection;
this.GetCollectionCount = GetCollectionCount;
this.GetSelectedCollectionAnnotationCount = GetSelectedCollectionAnnotationCount;
this.GetCollectionByIndex = GetCollectionByIndex;
this.GetCollectionByMsnId = GetCollectionByMsnId;
this.RemoveCollection = RemoveCollection;
this.EmptyCollection = EmptyCollection;
this.GetAnnotationById = GetAnnotationById;
this.GetCollectionByAnId = GetCollectionByAnId;
this.DeleteAnnotationById = DeleteAnnotationById;
this.SwapAnnotations = SwapAnnotations;
this.DeleteAnnotation = DeleteAnnotation;
this.DeleteAnnotationFromCollection = DeleteAnnotationFromCollection;
this.CloneAnnotationById = CloneAnnotationById;
this.CloneAnnotation = CloneAnnotation;
this.AddAnnotationToCollection = AddAnnotationToCollection;
this.DeleteAllPrimitivesFromAnnotation = DeleteAllPrimitivesFromAnnotation;
this.ParseInternalID = ParseInternalID;
this.GetEntityPrimitiveById = GetEntityPrimitiveById;
this.CloneCollection = CloneCollection;
this.AddCollection = AddCollection;
this.DeleteAll = DeleteAll;
this.SetVisibility = SetVisibility;
this.SavedLayerCount = SavedLayerCount;
this.Dispose = Dispose;
}
);
VE_CollectionActions = (function ()
{
}
);
VE_CollectionActions.Create = "CreateCollection";
VE_CollectionActions.Update = "UpdateCollection";
VE_CollectionActions.RetrieveAll = "RetrieveAllCollections";
VE_CollectionActions.RetrieveDetails = "RetrieveCollectionDetails";
VE_CollectionActions.Delete = "DeleteCollection";
VE_CollectionActions.DeleteAll = "DeleteAllCollections";
VE_CollectionActions.DeleteAllAnnotations = "DeleteAllAnnotations";
VE_AnnotationActions = (function ()
{
}
);
VE_AnnotationActions.Create = "CreateAnnotation";
VE_AnnotationActions.Delete = "DeleteAnnotation";
VE_AnnotationActions.Update = "UpdateAnnotation";
VE_AnnotationActions.RetrieveAll = "RetrieveAllAnnotations";
VE_AnnotationState = (function ()
{
}
);
VE_AnnotationState.None = "None";
VE_AnnotationState.Added = "Added";
VE_AnnotationState.Updated = "Updated";
VE_AnnotationState.Deleted = "Deleted";
VE_CollectionsManagerConstants = (function ()
{
}
);
VE_CollectionsManagerConstants.Handler = "UserCollections.aspx?action=";
VE_CollectionsManagerConstants.Market = "mkt=";
VE_CollectionsManagerConstants.Random = "rand=";
VE_CollectionsManagerConstants.A_Id = "aid";
VE_CollectionsManagerConstants.A_Title = "atitle";
VE_CollectionsManagerConstants.A_Latitude = "alatitude";
VE_CollectionsManagerConstants.A_Longitude = "alongitude";
VE_CollectionsManagerConstants.A_Notes = "anotes";
VE_CollectionsManagerConstants.A_Keywords = "akeywords";
VE_CollectionsManagerConstants.A_IconId = "aiconid";
VE_CollectionsManagerConstants.A_InfoUrl = "aurl";
VE_CollectionsManagerConstants.A_PhotoUrl = "aphotourl";
VE_CollectionsManagerConstants.A_UserDate = "auserdate";
VE_CollectionsManagerConstants.A_DisplayOrder = "adisplayorder";
VE_CollectionsManagerConstants.A_BusinessId = "abusinesslistingid";
VE_CollectionsManagerConstants.A_CreationId = "acreationid";
VE_CollectionsManagerConstants.A_State = "astate";
VE_CollectionsManagerConstants.C_Id = "cid";
VE_CollectionsManagerConstants.C_Name = "cname";
VE_CollectionsManagerConstants.C_IsPublic = "cispublic";
VE_CollectionsManagerConstants.C_Length = "cannotationcount";
VE_CollectionsManagerConstants.C_Keywords = "ckeywords";
VE_CollectionsManagerConstants.ViewerDefaultTitle =
L_CollectionManagerViewerDefaultTitle_Text;
VE_CollectionsManagerConstants.MinimizedTimerDelay = 1;
VE_CollectionsManagerConstants.TimerDelay = 2000;
VE_CollectionsManagerConstants.ExtendedTimerDelay = 5000;
VE_CollectionsManagerConstants.MAX_COLLECTION_SIZE = 200;
VE_CollectionsManagerConstants.HELP_FILE_PATH = "/cPublicPrivate.htm";
VE_CollectionsManagerConstants.TourMode = "tour";
VELayerProperties = {CopyAllowed : "copyallowed"};
VEShapeLayer = (function ()
{
this._mapGuid = null;
this.Name = "";
this.MsnId = "";
this.IsPublic = false;
this.Culture = "en-us";
this.IsIndexed = false;
this.SourceUrl = null;
this.DateCreated = Date();
this.DateModified = Date();
this.Tags = "";
this.Notes = "";
this.Annotations = [];
this.Dirty = false;
this.ViewableByOwnerOnly = false;
this.EditableByOwner = true;
this.OwnerIsViewing = false;
this._properties = null;
this.iid = MC_IID_NAMESPACE + MC_IID_CON_TOKEN +
Msn.Drawing.GetGeoUID(MC_GEO_TYPE_COL);
this._index = 0;
this.GetShapeCount = (function ()
{
if (this.Annotations)
return this.Annotations.length;
else
return 0;
}
);
this.ClearAnnotations = (function ()
{
while (this.Annotations.length)
{
var a = this.Annotations.pop();
a = null;
}
}
);
this.AddAnnotation = (function (a,b)
{
if (a && this.Annotations)
if (typeof b == "number" && b >= 0 && b <
this.Annotations.length)
{
this.Annotations.splice(b, 0, a);
return this.Annotations.length;
}
else
{
a.SetIndex(this.Annotations.length);
a.SetDisplayOrder(this.Annotations.length);
return this.Annotations.push(a);
}
}
);
this.RetrieveAnnotationById = (function (b)
{
if (this.Annotations.length > 0 && b)
{
var a = 0;
while (a < this.Annotations.length)
{
if (b == this.Annotations[a].Id)
return a;
a++;
}
}
return null;
}
);
this.ResetOrder = (function ()
{
if (this.Annotations && this.Annotations != "" &&
this.Annotations != "undefined" && this.Annotations.length > 0)
{
for (var a = 0;a < this.Annotations.length;a++)
if (this.Annotations[a] instanceof VEShape)
{
this.Annotations[a].DisplayOrder = a;
this.Annotations[a].Delta = 0;
}
this.Dirty = false;
}
}
);
this.ReOrder = (function ()
{
this.Annotations.sort(this.sortByIndex);
this.Dirty = false;
}
);
this.sortByIndex = (function (a,b)
{
if (a instanceof VEShape && b instanceof VEShape)
{
a.DisplayOrder = a.DisplayOrder + a.Delta;
b.DisplayOrder = b.DisplayOrder + b.Delta;
a.Delta = 0;
b.Delta = 0;
return a.DisplayOrder - b.DisplayOrder;
}
}
);
}
);
VEShapeLayer.prototype = new Msn.VE.Core.VectorLayer();
VEShapeLayer.prototype.isEmptyOnServerSide = false;
VEShapeLayer.prototype.IsUpdateCollection = true;
VEShapeLayer.prototype.AddEntityAnnotation = (function (a)
{
this.UpdateEntityAnnotation(a);
this.AddAnnotation(a);
}
);
VEShapeLayer.prototype.SetChangeState = (function (a)
{
this.ChangeState = a;
}
);
VEShapeLayer.prototype.GetChangeState = (function ()
{
if (typeof this.ChangeState == "undefined")
this.ChangeState = MC_CHANGE_STATE_DEFAULT;
return this.ChangeState;
}
);
VEShapeLayer.prototype.SetChangeType = (function (a)
{
this.ChangeType = a;
}
);
VEShapeLayer.prototype.GetChangeType = (function ()
{
if (typeof this.ChangeType == "undefined")
this.ChangeType = MC_CHANGE_TYPE_ALL;
return this.ChangeType;
}
);
VEShapeLayer.prototype.UpdateEntityAnnotation = (function (c)
{
if (this.Annotations.length < 1)
this.SetBoundingBox(0, 0, Infinity, Infinity, - Infinity, - Infinity);
var d = true, a = this.GetBoundingBox(), b = null;
b = c.GetBoundingBox();
var e = a.x1 <= a.x2 && a.y1 <= a.y2, f = b.x1 <= b.x2 && b.y1
<= b.y2;
if (e && f)
d = a.x1 < b.x1 && a.y1 < b.y1 && a.x2 > b.x2 && a.y2
> b.y2;
c.Update(true, this.iid);
if (a)
if (d)
{
a.x1 = Math.min(b.x1, a.x1);
a.y1 = Math.min(b.y1, a.y1);
a.x2 = Math.max(b.x2, a.x2);
a.y2 = Math.max(b.y2, a.y2);
}
else
a = this.UpdateBoundingBox();
else
a = new Msn.VE.Bounds(0, 0, b.x1, b.y1, b.x2, b.y2);
this.SetBoundingBox(0, 0, a.x1, a.y1, a.x2, a.y2);
a = null;
return c;
}
);
VEShapeLayer.prototype.UpdateBoundingBox = (function ()
{
var h = this.Annotations.length, g = null, a = null, b = Infinity, d = Infinity, c = -
Infinity, e = - Infinity;
for (var f = 0;f < h;f++)
{
g = this.Annotations[f];
a = g.GetBoundingBox();
b = Math.min(a.x1, b);
d = Math.min(a.y1, d);
c = Math.max(a.x2, c);
e = Math.max(a.y2, e);
}
this.SetBoundingBox(0, 0, b, d, c, e);
return this.GetBoundingBox();
}
);
VEShapeLayer.prototype.IsExSource = (function ()
{
if (this.MsnId != 0 && this.MsnId.indexOf(MC_CML_EXCOL_PREFIX) == 0)
return true;
else
return false;
}
);
VEShapeLayer.prototype.IsFromMsnStorage = (function ()
{
if (this.MsnId == 0 || this.IsExSource())
return false;
else
return true;
}
);
VEShapeLayer.prototype.GetProperty = (function (b)
{
if (this._properties == null)
return null;
var a = this._properties[b];
return typeof a == "undefined" ? null : a;
}
);
VEShapeLayer.prototype.SetProperty = (function (b,a)
{
if (typeof b != "string" && typeof b != "number" || typeof a
!= "string" && typeof a != "number" && typeof a !=
"boolean")
return null;
if (this._properties == null)
this._properties = {};
this._properties[b] = a;
}
);
VEShapeLayer.prototype.IsDuplicate = (function (b)
{
var i = this.Annotations.length, e = b.GetPrimitive(0);
if (i < 1 || e == null)
return false;
var n = e.type, a = null, d = 0, c = 0, l = b.ToString(), m = b.GetId(), h =
b.GetMsnId(), g = b.GetBusinessListingId();
for (var f = 0;f < i;f++)
{
a = this.Annotations[f];
primitive2 = a.GetPrimitive(0);
if (primitive2 == null || e.type != primitive2.type)
continue ;
d = a.GetMsnId();
c = a.GetBusinessListingId();
if (m != a.GetId())
{
var k = h != 0 && d != 0 && h == d;
if (k)
return true;
var j = g != 0 && c != 0 && g == c;
if (j)
return true;
if (l == a.ToString())
return true;
}
d = 0;
c = 0;
}
return false;
}
);
VEShapeLayer.prototype.GetBoundingRectangle = (function ()
{
var a = this.GetBoundingBox();
return new VELatLongRectangle(new VELatLong(a.y2, a.x1), new VELatLong(a.y1, a.x2));
}
);
VEShapeLayer.prototype.GetShapeByIndex = (function (a)
{
var b = this.Annotations.length;
if (typeof a != "number" && a > 0 && a < b - 1)
return null;
return this.Annotations[a];
}
);
VEShapeLayer.prototype.GetShapeByID = (function (b)
{
var c = this.Annotations.length;
for (var a = 0;a < c;a++)
if (this.Annotations[a].GetId() == b)
return this.Annotations[a];
return null;
}
);
VEShapeLayer.prototype.DeleteAllShapes = (function ()
{
if (this._mapGuid != null)
{
var b = GetVEMapInstance(this._mapGuid);
if (b != null)
b.m_vegraphicsmanager.ClearLayerDom(this);
}
var c = this.Annotations.length;
for (var a = 0;a < c;a++)
this.Annotations[a].DisposeEx();
this.Annotations = [];
this.Boundingbox = new Msn.VE.Bounds(0, 0, Infinity, Infinity, - Infinity, - Infinity);
}
);
VEShapeLayer.prototype.SwapShapes = (function (a,b)
{
var a = parseInt(a), b = parseInt(b);
VEValidator.ValidateInt(a, "idx1");
VEValidator.ValidateInt(b, "idx2");
if (a == b)
return false;
var c = this.Annotations.length;
VEValidator.ValidateBetween(a, "idx1", 0, c - 1);
VEValidator.ValidateBetween(b, "idx2", 0, c - 1);
var h = this.Annotations[a];
this.Annotations[a] = this.Annotations[b];
this.Annotations[b] = h;
var d = this.Annotations[a].GetDisplayOrder(), e =
this.Annotations[b].GetDisplayOrder();
this.Annotations[a].SetDisplayOrder(e);
this.Annotations[b].SetDisplayOrder(d);
var f = this.Annotations[a].GetIndex(), g = this.Annotations[b].GetIndex();
this.Annotations[a].SetIndex(g);
this.Annotations[b].SetIndex(f);
if (this.Annotations[a].GetVisibility())
this.Annotations[a].Show();
if (this.Annotations[b].GetVisibility())
this.Annotations[b].Show();
return true;
}
);
VEShapeLayer.prototype.AddShape = (function (a,b)
{
if (a && typeof a.length != "undefined")
this.AddShapes(a, b);
else
{
VEValidator.ValidateObject(a, "_veshape", VEShape, "VEShape");
if (a._shplayer != null || a.Primitives[0] == null)
throw new VEException("AddShape", "err_invalidargument",
L_ShpExist_text);
a._shplayer = this;
this.UpdateEntityAnnotation(a);
this.AddAnnotation(a, b);
if (a.GetVisibility())
a.Show();
}
}
);
VEShapeLayer.prototype.AddShapes = (function (c)
{
VEValidator.ValidateObjectArray(c, "_veshapeArray", VEShape, "VEShape
Array");
var g = c.length, f = GetVEMapInstance(this._mapGuid);
if (f && f.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
for (var a = 0;a < g;++a)
this.AddShape(c[a]);
else
{
if (this._index == 0 && this.GetShapeCount() == 0)
this.Show();
var h = this.Annotations.length;
for (var a = 0;a < h;a++)
this.Annotations[a].ClearDomElements();
var d = [];
for (var a = 0;a < g;++a)
{
var b = c[a];
b._shplayer = this;
this.UpdateEntityAnnotation(b);
this.AddAnnotation(b);
if (b.IconUrl == null)
b.IconUrl = Msn.VE.API.Constants.iconurl;
d.push(b.ToHtml());
b._isDrawn = true;
}
var e = $ID(this.GetId());
if (e)
e.innerHTML += d.join("");
}
}
);
VEShapeLayer.prototype.DeleteShape = (function (b)
{
VEValidator.ValidateObject(b, "_veshape", VEShape, "VEShape");
var d = this.Annotations.length;
for (var a = 0;a < d;a++)
if (this.Annotations[a].GetId() == b.GetId())
{
if (this._mapGuid != null)
{
var c = GetVEMapInstance(this._mapGuid);
if (c != null)
c.m_vegraphicsmanager.ClearEntityDom(this.Annotations[a]);
}
this.Annotations[a].DisposeEx();
this.Annotations.splice(a, 1);
this.UpdateBoundingBox();
break ;
}
}
);
VEShapeLayer.prototype.Show = (function ()
{
this.SetVisibility(true);
if (this._mapGuid == null)
return null;
vmap = GetVEMapInstance(this._mapGuid);
if (vmap == null)
return null;
vmap.m_vegraphicsmanager.DrawLayer(this);
}
);
VEShapeLayer.prototype.Hide = (function ()
{
this.SetVisibility(false);
if (this._mapGuid == null)
return null;
vmap = GetVEMapInstance(this._mapGuid);
if (vmap == null)
return null;
vmap.m_vegraphicsmanager.ClearLayerDom(this);
}
);
VEShapeLayer.prototype.SetTitle = (function (a)
{
if (typeof a != "undefined" && a != null)
this.Name = a.replace(/%0D%0A/g, "\r\n").replace(/%0A/g, "\n");
}
);
VEShapeLayer.prototype.GetTitle = (function ()
{
if (typeof this.Name == "undefined")
this.Name = "my collection";
return this.Name;
}
);
VEShapeLayer.prototype.SetDescription = (function (a)
{
if (typeof a != "undefined" && a != null)
this.Notes = a.replace(/%0D%0A/g, "\r\n").replace(/%0A/g, "\n");
}
);
VEShapeLayer.prototype.GetDescription = (function ()
{
if (typeof this.Notes == "undefined")
this.Notes = "";
return this.Notes;
}
);
VEShapeLayer.prototype.SetMaxZoomLevel = (function (a)
{
a = parseInt(a);
if (isNaN(a) || a > 21 || a < 1)
throw new VEException("VEShapeLayer.SetMaxZoomLevel",
"err_incorrectzoomlevel", L_Shp_IncorrectZoomLevel);
else
if (a < this.MinScale)
throw new VEException("VEShapeLayer.SetMaxZoomLevel",
"err_incorrectzoomlevel", L_Shp_IncorrectZoomLevel2);
this.MaxScale = a;
if (this.GetVisibility())
this.Show();
}
);
VEShapeLayer.prototype.GetMaxZoomLevel = (function ()
{
return this.MaxScale;
}
);
VEShapeLayer.prototype.SetMinZoomLevel = (function (a)
{
a = parseInt(a);
if (isNaN(a) || a < 1 || a > 21)
throw new VEException("VEShapeLayer.SetMinZoomLevel",
"err_incorrectzoomlevel", L_Shp_IncorrectZoomLevel);
else
if (a > this.MaxScale)
throw new VEException("VEShapeLayer.SetMinZoomLevel",
"err_incorrectzoomlevel", L_Shp_IncorrectZoomLevel2);
this.MinScale = a;
if (this.GetVisibility())
this.Show();
}
);
VEShapeLayer.prototype.GetMinZoomLevel = (function ()
{
return this.MinScale;
}
);
VEShapeLayer.prototype.IsVisible = (function ()
{
return this.GetVisibility();
}
);
VEShape.prototype.GetCacheOfSerializationLength = (function ()
{
if (this._cacheOfSerializationLength <= 0)
{
var a = VE_CookieSerializer.SerializeAnnotation(this);
if (a != null)
this._cacheOfSerializationLength = a.length;
}
return this._cacheOfSerializationLength;
}
);
VEShape.prototype.InvalidateCacheOfSerializationLength = (function ()
{
this._cacheOfSerializationLength = 0;
}
);
VEShape.prototype.index = 0;
VEShape.prototype.SetIndex = (function (a)
{
this.index = a;
}
);
VEShape.prototype.GetIndex = (function ()
{
return this.index;
}
);
VEShape.prototype.SetDisplayOrder = (function (a)
{
this.DisplayOrder = a;
}
);
VEShape.prototype.GetDisplayOrder = (function ()
{
return this.DisplayOrder;
}
);
VEShape.prototype.SetProperties = (function (b,i,j,e,f,h,l,k,c,g,d,a)
{
if (b)
this.Id = b;
this.Title = i.replace(/%0D%0A/g, "\r\n").replace(/%0A/g, "\n");
this.Notes = h.replace(/%0D%0A/g, "\r\n").replace(/%0A/g, "\n");
if (a != null && a.length > 0 && a[0] != null)
{
this.Keywords = a;
this.Keywords[0] = this.Keywords[0].replace(/%0D%0A/g,
"\r\n").replace(/%0A/g, "\n");
}
else
this.Keywords = a;
this.Url = j;
this.PhotoUrl = e;
this.UserDate = f;
this.BusinessListingId = c;
this.IconId = g;
this.LastModified = d;
}
);
VEShape.prototype.symbolUrl = "samplesymbol";
VEShape.prototype.GetMsnId = (function ()
{
return this.Id;
}
);
VEShape.prototype.SetMsnId = (function (a)
{
this.Id = a;
}
);
VEShape.prototype.SetBoundingBox = (function (f,e,c,d,a,b)
{
if (typeof this.Boundingbox == "undefined" || this.Boundingbox == null)
{
if (c == null || d == null || a == null || b == null)
return null;
this.Boundingbox = new Msn.VE.Bounds(f, e, c, d, a, b);
}
else
{
this.Boundingbox.x1 = c;
this.Boundingbox.y1 = d;
this.Boundingbox.z1 = f;
this.Boundingbox.x2 = a;
this.Boundingbox.y2 = b;
this.Boundingbox.z2 = e;
}
return this.Boundingbox;
}
);
VEShape.prototype.GetBoundingBox = (function ()
{
if (typeof this.Boundingbox == "undefined" || ! this.Boundingbox)
this.Boundingbox = new Msn.VE.Bounds(0, 0, Infinity, Infinity, - Infinity, -
Infinity);
return this.Boundingbox;
}
);
VEShape.prototype.GetCenterPoint = (function ()
{
if (! this.GetBoundingBox())
return ;
var a = new Array(2);
a[0] = ((this.GetBoundingBox()).x1 + (this.GetBoundingBox()).x2) / 2;
a[1] = ((this.GetBoundingBox()).y1 + (this.GetBoundingBox()).y2) / 2;
return a;
}
);
VEShape.prototype.SetId = (function (a)
{
this.iid = a;
}
);
VEShape.prototype.GetId = (function ()
{
if (typeof this.iid == "undefined" || this.iid == 0 || this.iid == null)
this.iid = Msn.Drawing.GetGeoUID(MC_GEO_TYPE_ENTITY);
return this.iid;
}
);
VEShape.prototype.SetVisibility = (function (a)
{
this.Visibility = a;
}
);
VEShape.prototype.GetVisibility = (function ()
{
if (typeof this.Visibility == "undefined" || typeof this.Visibility ==
"null")
this.Visibility = true;
return this.Visibility;
}
);
VEShape.prototype.SetBusinessListingId = (function (a)
{
if (typeof a == "undefined" || a == "null")
this.BusinessListingId = 0;
else
this.BusinessListingId = a;
}
);
VEShape.prototype.GetBusinessListingId = (function ()
{
if (typeof this.BusinessListingId == "undefined" || this.BusinessListingId ==
null || this.BusinessListingId == "null")
this.BusinessListingId = 0;
return this.BusinessListingId;
}
);
VEShape.prototype.SetType = (function (a)
{
this.Type = a;
}
);
VEShape.prototype.GetType = (function ()
{
if (typeof this.Type == "undefined")
this.Type = "aN";
return this.Type;
}
);
VEShape.prototype.SetSaveStatus = (function (a)
{
this.SaveStatus = a;
}
);
VEShape.prototype.IsSaved = (function ()
{
if (typeof this.SaveStatus == "undefined")
this.SaveStatus = true;
return this.SaveStatus;
}
);
VEShape.prototype.SetOnScratchpad = (function (a)
{
this.OnScratchpad = a;
}
);
VEShape.prototype.IsOnScratchpad = (function ()
{
if (typeof this.OnScratchpad == "undefined")
this.OnScratchpad = true;
return this.OnScratchpad;
}
);
VEShape.prototype.SetZoomLevel = (function (a)
{
this.ZoomLevel = a;
}
);
VEShape.prototype.GetZoomLevel = (function ()
{
if (typeof this.ZoomLevel == "undefined")
this.ZoomLevel = 12;
return this.ZoomLevel;
}
);
VEShape.prototype.SetChangeState = (function (a)
{
this.ChangeState = a;
}
);
VEShape.prototype.GetChangeState = (function ()
{
if (typeof this.ChangeState == "undefined")
this.ChangeState = MC_CHANGE_STATE_DEFAULT;
return this.ChangeState;
}
);
VEShape.prototype.SetChangeType = (function (a)
{
this.ChangeType = a;
}
);
VEShape.prototype.GetChangeType = (function ()
{
if (typeof this.ChangeType == "undefined")
this.ChangeType = MC_CHANGE_TYPE_ALL;
return this.ChangeType;
}
);
VEShape.prototype.HasAltitude = (function ()
{
var a = this.Primitives;
if (typeof a == "undefined" || a == null)
return false;
if (a[0].altitudes == null)
return false;
else
return true;
}
);
VEShape.prototype.GetPrimitiveCount = (function ()
{
if (typeof this.Primitives == "undefined" || this.Primitives == null)
{
this.Primitives = [];
return 0;
}
return this.Primitives.length;
}
);
VEShape.prototype.SetPrimitives = (function (a)
{
this.Primitives = a;
this.SetType(a[0].type);
}
);
VEShape.prototype.GetPrimitives = (function ()
{
if (typeof this.Primitives == "undefined" || this.Primitives == null)
this.Primitives = [];
return this.Primitives;
}
);
VEShape.prototype.GetPrimitive = (function (a)
{
if (typeof this.Primitives == "undefined" || this.Primitives == null ||
this.Primitives.length == 0)
{
this.Primitives = [];
return null;
}
if (a < this.Primitives.length)
return this.Primitives[a];
else
return this.Primitives[0];
}
);
VEShape.prototype.AddPrimitive = (function (a)
{
if (typeof this.Primitives == "undefined" || this.Primitives == null)
this.Primitives = [];
this.Primitives.push(a);
this.SetType(a.type);
}
);
VEShape.prototype.UpdateUI = (function ()
{
}
);
VEShape.prototype.DeletePrimitive = (function (c)
{
if (typeof this.Primitives == "undefined" || this.Primitives == null)
{
this.Primitives = [];
return null;
}
if (this.Primitives.length == 1)
{
this.Primitives[0].Destroy();
this.Primitives.pop();
this.Primitives = [];
return null;
}
var b = null;
for (var a = 0;a < this.Primitives.length;a++)
{
b = this.Primitives[a];
if (b.iid == c)
{
this.Primitives[a].splice(a, 1);
break ;
}
}
if (b)
b.Destroy();
}
);
VEShape.prototype.ClearAllPrimitives = (function ()
{
if (typeof this.Primitives == "undefined" || this.Primitives == null)
{
this.Primitives = [];
return ;
}
for (var a = 0;a < this.Primitives.length;a++)
this.Primitives[a].Destroy();
this.Primitives = [];
}
);
VEShape.prototype.Update = (function (j,h)
{
var b = false, l = this.GetId().split(MC_IID_CON_TOKEN);
if (l[0] == MC_IID_NAMESPACE)
b = true;
else
{
b = false;
if (! h)
return false;
var k = h.split(MC_IID_CON_TOKEN);
if (k[0] != MC_IID_NAMESPACE)
return false;
}
var m = this.Primitives.length, a = null, d = Infinity, f = Infinity, e = - Infinity, g
= - Infinity;
for (var i = 0;i < m;i++)
{
a = this.Primitives[i];
if (a.type != VEShapeType.Pushpin)
{
if (! b || j || a.minX == null || a.minY == null || a.maxX == null || a.maxY ==
null)
{
var c = Msn.Drawing.ComputeBoundingBox(a.points);
if (c)
{
a.minX = c[0];
a.minY = c[1];
a.maxX = c[2];
a.maxY = c[3];
}
}
d = Math.min(a.minX, d);
f = Math.min(a.minY, f);
e = Math.max(a.maxX, e);
g = Math.max(a.maxY, g);
Msn.Drawing.CalculateLabelPosition(a);
this.Longitude = a.labelPosX;
this.Latitude = a.labelPosY;
this.Altitude = a.labelPosZ;
}
else
{
d = Math.min(a.points[0], d);
f = Math.min(a.points[1], f);
e = Math.max(a.points[0], e);
g = Math.max(a.points[1], g);
this.Longitude = a.points[0];
this.Latitude = a.points[1];
}
if (! b)
a.iid = h + MC_IID_CON_TOKEN + this.GetId() + MC_IID_CON_TOKEN + a.iid;
a.title = this.Title;
if (a.shape != null)
a.shape.id = a.iid;
}
this.SetBoundingBox(0, 0, d, f, e, g);
if (! b)
this.SetId(h + MC_IID_CON_TOKEN + this.GetId());
this.guid = this.GetId();
return this.GetBoundingBox();
}
);
VEShape.prototype.SetIconUrl = (function (a)
{
this.IconUrl = a;
}
);
VEShape.prototype.GetIconUrl = (function ()
{
return this.IconUrl;
}
);
VEShape.prototype.IsModel = (function ()
{
return this.ModelRep == null ? false : true;
}
);
VEShape.prototype.MovePrimitive = (function (d,c)
{
var d = parseFloat(d), c = parseFloat(c);
if (isNaN(d) || isNaN(c))
return ;
var f = null;
for (var e = 0;e < this.Primitives.length;e++)
{
f = this.Primitives[e];
var b = f.points, g = b.length;
for (var a = 0;a < g - 1;a = a + 2)
{
b[a] = b[a] + d;
b[a + 1] = b[(a + 1)] + c;
}
}
}
);
VEShape.prototype.Dispose = (function ()
{
this.ClearAllPrimitives();
this.Boundingbox = null;
this._customIcon = null;
this._IconContent = null;
this._eroContent = null;
this._shplayer = null;
this.IconUrl = null;
this.Id = null;
this.Title = null;
this.Latitude = null;
this.Longitude = null;
this.Notes = null;
this.Keywords = null;
this.Url = null;
this.PhotoUrl = null;
this.UserDate = null;
this.DisplayOrder = null;
this.BusinessListingId = null;
this.IconId = null;
this.LastModified = null;
this.ViewPort = null;
this.Tour = null;
this.ModelRep = null;
this.SourceUrl = null;
this.SourceType = null;
this.Photos = null;
}
);
VEShape.prototype.ToString = (function ()
{
var a = "<e>", f = this.Primitives.length, d = null;
for (var e = 0;e < f;e++)
{
d = this.Primitives[e];
if (d.type == VEShapeType.Pushpin)
a = a.concat("<coords>", d.points.join(","),
"</coords>");
}
var b = "<a>", c = "</a>";
a = a.concat("<as>");
a = a.concat(b, this.GetBusinessListingId(), c, b, this.Url, c, b, this.PhotoUrl, c, b,
this.Title, c, b, this.Type, c);
a = a.concat("</as>");
a = a.concat("</e>");
return a;
}
);
VEShape.prototype.SetPhotos = (function (a)
{
this.Photos = a;
}
);
VEShape.Decoder = new _xy1();
VEShape.LatLongFactory = new VELatLongFactory(new VELatLongFactoryAlwaysEncodeSpec());
VEShape.prototype._Construct = (function (j,g,e)
{
var a = [], d = [], k = false, f = null;
if (typeof g != "undefined")
{
if (g == MC_VESHAPE_EMPTY && j)
{
this.maxZoomLevel = 21;
this.minZoomLevel = 1;
this._eroContent = null;
this._shplayer = null;
return ;
}
}
else
throw new VEException("VEShape", "err_invalidargument",
L_invalidargument_text.replace("%1", "type").replace("%2",
"VEShapeType"));
if (typeof e == "object")
if (typeof e.length == "number")
{
var l = e.length;
for (var h = 0;h < l;h++)
if (VELatLong.prototype.isPrototypeOf(e[h]))
{
var c = VEShape.Decoder.Decode(e[h]);
if (e[h]._reserved)
this.SetEncrypted();
a.push(c.Longitude);
a.push(c.Latitude);
if (c.Altitude != null)
{
if (c.AltitudeMode != null)
if (f != null && f != c.AltitudeMode)
throw new VEException("VEShape",
"err_altitudemodemismatch", L_altitudemodemismatch);
else
f = c.AltitudeMode;
k = true;
d.push(c.Altitude);
}
else
d.push(0);
}
else
throw new VEException("VEShape", "err_invalidargument",
L_invalidargument_text.replace("%1", "points[" + h +
"]").replace("%2", "VELatLong"));
}
else
if (VELatLong.prototype.isPrototypeOf(e))
{
var c = VEShape.Decoder.Decode(e);
if (e._reserved)
this.SetEncrypted();
a.push(c.Longitude);
a.push(c.Latitude);
if (c.Altitude != null)
{
k = true;
f = c.AltitudeMode;
d.push(c.Altitude);
}
}
else
throw new VEException("VEShape", "err_invalidargument",
L_invalidargument_text.replace("%1", "points").replace("%2",
"VELatLong"));
else
throw new VEException("VEShape", "err_invalidargument",
L_invalidargument_text.replace("%1", "points").replace("%2",
"VELatLong[]"));
var b = null, i = a.length;
if (g == VEShapeType.Pushpin)
{
if (i < 2)
throw new VEException("VEShape", "err_incorrectpoints",
L_Shp_IncorrectPoints);
if (j)
b = new Msn.Drawing.Point(a[0], a[1]);
}
else
if (g == VEShapeType.Polyline)
{
if (i < 3)
throw new VEException("VEShape", "err_incorrectpoints",
L_Shp_IncorrectPoints);
if (j)
b = new Msn.Drawing.PolyLine(a);
}
else
if (g == VEShapeType.Polygon)
{
if (i < 5)
throw new VEException("VEShape", "err_incorrectpoints",
L_Shp_IncorrectPoints);
if (a[0] != a[(i - 2)] || a[1] != a[(i - 1)] || k && d[0] != d[(i / 2 -
1)])
{
a.push(a[0]);
a.push(a[1]);
d.push(d[0]);
}
if (j)
b = new Msn.Drawing.Polygon(a);
}
else
throw new VEException("VEShape", "err_invalidargument",
L_invalidargument_text.replace("%1", "type").replace("%2",
"VEShapeType"));
if (j)
{
this.maxZoomLevel = 21;
this.minZoomLevel = 1;
this._eroContent = null;
this._shplayer = null;
this._shapeElement = null;
this._iconElement = null;
this._isClipped = false;
if (k)
{
b.altitudes = d;
if (f)
b.altitudeMode = f;
else
b.altitudeMode = VEAltitudeMode.Default;
}
else
{
b.altitudes = null;
b.altitudeMode = VEAltitudeMode.Default;
}
if (typeof VE_MapDispatch_SymbolLib != "undefined")
{
if (g == VEShapeType.Pushpin)
b.symbol = VE_MapDispatch_SymbolLib.GetMapSymbolByID(MC_PROPERTY_PUSHPIN);
else
b.symbol = VE_MapDispatch_SymbolLib.GetCurrentDefaultSymbol();
b.symbol.imagedata_src = Msn.VE.API.Constants.iconurl;
b.symbol.style_zIndex = Msn.VE.API.Globals.veshapeiconzindex;
b.symbol.style_zIndex_polyshape = Msn.VE.API.Globals.veshapepolyshapezindex;
this.AddPrimitive(b);
}
else
throw new VEException("VEShape:new VEShape",
"err_notinitialized", L_shp_Notinitialized_text);
}
else
{
this.Primitives[0].points = a;
if (k)
{
this.Primitives[0].altitudes = d;
if (f)
this.Primitives[0].altitudeMode = f;
else
this.Primitives[0].altitudeMode = VEAltitudeMode.Default;
}
else
{
this.Primitives[0].altitudes = null;
this.Primitives[0].altitudeMode = VEAltitudeMode.Default;
}
}
}
);
VEShape.prototype.GetShapeType = (function ()
{
return this.Primitives[0].type;
}
);
VEShape.prototype.GetShapeLayer = (function ()
{
return this._shplayer;
}
);
VEShape.prototype.GetID = (function ()
{
if (this._shplayer == null)
return null;
return this.GetId();
}
);
VEShape.prototype.Show = (function ()
{
this.SetVisibility(true);
if (this._shplayer == null || this._shplayer._mapGuid == null)
return ;
vmap = GetVEMapInstance(this._shplayer._mapGuid);
if (vmap == null)
return ;
if (this._shplayer.GetVisibility())
{
vmap.m_vegraphicsmanager.ClearEntityDom(this);
vmap.m_vegraphicsmanager.DrawEntity(this);
vmap.m_vegraphicsmanager.PushOffsetRequest();
}
}
);
VEShape.prototype.Redraw = (function (c,d,e,f,b)
{
if (this.GetVisibility() && this._shplayer && this._shplayer._mapGuid
&& this._shplayer.GetVisibility())
{
var a = GetVEMapInstance(this._shplayer._mapGuid);
if (a == null)
return ;
if (a.GetMapMode() == Msn.VE.MapActionMode.Mode3D || ! this._isDrawn)
this.Show();
else
{
if (c)
a.m_vegraphicsmanager.UpdatePoints(this, true);
if (d)
a.m_vegraphicsmanager.UpdateIconPoints(this);
if (e)
a.m_vegraphicsmanager.UpdateStyle(this);
if (f)
a.m_vegraphicsmanager.UpdateIconStyle(this);
if (b)
if (this.GetIconVisibility())
a.m_vegraphicsmanager.ShowIcon(this);
else
a.m_vegraphicsmanager.HideIcon(this);
}
}
}
);
VEShape.prototype.Hide = (function ()
{
this.SetVisibility(false);
if (this._shplayer == null || this._shplayer._mapGuid == null)
return ;
vmap = GetVEMapInstance(this._shplayer._mapGuid);
if (vmap == null)
return ;
vmap.m_vegraphicsmanager.ClearEntityDom(this);
}
);
VEShape.prototype.SetIconVisibility = (function (a)
{
if (this.Primitives[0].type != VEShapeType.Pushpin)
this.Primitives[0].isLabel = a;
}
);
VEShape.prototype.HideIcon = (function ()
{
if (this.Primitives[0].type != VEShapeType.Pushpin)
this.Primitives[0].isLabel = false;
if (this._shplayer == null || this._shplayer._mapGuid == null)
return ;
this.Redraw(false, false, false, false, true);
}
);
VEShape.prototype.ShowIcon = (function ()
{
if (this.Primitives[0].type != VEShapeType.Pushpin)
this.Primitives[0].isLabel = true;
if (this._shplayer == null || this._shplayer._mapGuid == null)
return ;
this.Redraw(false, false, false, false, true);
}
);
VEShape.prototype.GetIconVisibility = (function ()
{
if (this.Primitives[0].type != VEShapeType.Pushpin)
return this.Primitives[0].isLabel;
else
return true;
}
);
VEShape.prototype.GetPoints = (function ()
{
var d = [], b = this.Primitives[0].points, e = this.Primitives[0].altitudes, f =
b.length;
for (var a = 0;a < f - 1;a = a + 2)
{
var c = null;
if (this.IsEncrypted())
c = VEShape.LatLongFactory.CreateVELatLong(b[(a + 1)], b[a]);
else
c = new VELatLong(b[(a + 1)], b[a]);
if (e)
c.SetAltitude(e[(a / 2)], this.Primitives[0].altitudeMode);
d.push(c);
}
return d;
}
);
VEShape.prototype.SetPoints = (function (b)
{
if (this.IsModel())
return false;
this._Construct(false, this.Primitives[0].type, b);
if (this._shplayer != null)
this._shplayer.UpdateEntityAnnotation(this);
var a = this.Primitives[0];
Msn.Drawing.CalculateLabelPosition(a, true);
if (this.Primitives[0].type != VEShapeType.Pushpin)
{
this.Latitude = a.labelPosY;
this.Longitude = a.labelPosX;
this.Altitude = a.labelPosZ;
}
this.Redraw(true, true);
}
);
VEShape.prototype.SetTitle = (function (a)
{
if (typeof a != "undefined" && a != null)
{
this._eroContent = null;
this.Title = a.replace(/%0D%0A/g, "\r\n").replace(/%0A/g,
"\n");
}
}
);
VEShape.prototype.GetTitle = (function ()
{
if (typeof this.Title == "undefined")
this.Title = L_AnnotationConfDefaultTitle_Text;
return this.Title;
}
);
VEShape.prototype.SetDescription = (function (a)
{
if (typeof a != "undefined" && a != null)
{
this._eroContent = null;
this.Notes = a.replace(/%0D%0A/g, "\r\n").replace(/%0A/g,
"\n");
}
}
);
VEShape.prototype.GetDescription = (function ()
{
if (typeof this.Notes == "undefined")
this.Notes = "";
return this.Notes;
}
);
VEShape.prototype.SetMaxZoomLevel = (function (a)
{
a = parseInt(a);
if (isNaN(a) || a > 21)
throw new VEException("VEShape.SetMaxZoomLevel",
"err_incorrectzoomlevel", L_Shp_IncorrectZoomLevel);
else
if (a < this.minZoomLevel)
throw new VEException("VEShape.SetMaxZoomLevel",
"err_incorrectzoomlevel", L_Shp_IncorrectZoomLevel2);
this.maxZoomLevel = a;
if (this.GetVisibility())
this.Show();
}
);
VEShape.prototype.GetMaxZoomLevel = (function ()
{
return this.maxZoomLevel;
}
);
VEShape.prototype.SetMinZoomLevel = (function (a)
{
a = parseInt(a);
if (isNaN(a) || a < 1)
throw new VEException("VEShape.SetMinZoomLevel",
"err_incorrectzoomlevel", L_Shp_IncorrectZoomLevel);
else
if (a > this.maxZoomLevel)
throw new VEException("VEShape.SetMinZoomLevel",
"err_incorrectzoomlevel", L_invalidminmaxzoom_text);
this.minZoomLevel = a;
if (this.GetVisibility())
this.Show();
}
);
VEShape.prototype.GetMinZoomLevel = (function ()
{
return this.minZoomLevel;
}
);
VEShape.prototype.GetCustomIcon = (function ()
{
var a = null, b = this.Primitives[0].symbol;
if (typeof b == "object" && b.isOn == true)
{
a = new VECustomIconSpecification();
a.Image = b.imagedata_src;
a.TextBold = b.textbox_bold;
a.TextItalics = b.textbox_italic;
a.TextUnderline = b.textbox_underscore;
a.TextFont = b.textbox_font;
a.TextSize = b.textbox_size;
a.TextOffset = new VEPixel(b.textbox_OffsetX, b.textbox_OffsetY);
a.ImageOffset = new VEPixel(b.img_offsetX, b.img_offsetY);
a.CustomHTML = this._customIcon;
a.TextContent = this.Primitives[0].name;
a.ImageWidth = b.img_width;
a.ImageHeight = b.img_height;
var e = new VEHexStringToColor(), d = b.textbox_color;
if (d.indexOf("#") == 0)
d = d.substring(1);
a.ForeColor = e.Convert(d);
a.ForeColor.A = b.textbox_color_opacity;
var c = b.textbox_backcolor;
if (c.indexOf("#") == 0)
c = c.substring(1);
a.BackColor = e.Convert(c);
a.BackColor.A = b.textbox_backcolor_opacity;
}
else
a = this._customIcon;
return a;
}
);
VEShape.prototype.SetCustomIcon = (function (b)
{
if (typeof b == "undefined" || b == null)
return null;
if (typeof b == "object")
{
VEValidator.ValidateObject(b, "_content_", VECustomIconSpecification,
"VECustomIconSpecification");
if (typeof b.TextContent == "string" && b.TextContent != null)
this.Primitives[0].name = b.TextContent;
var a = this.Primitives[0].symbol;
if (a.id == MC_PROPERTY_PARK || a.id == MC_PROPERTY_PUSHPIN)
a = a.Clone();
if (typeof b.Image == "string" && b.Image != null)
a.imagedata_src = GetImageFullUrl(b.Image);
else
a.imagedata_src = Msn.VE.API.Constants.iconurl;
var e = b.ForeColor;
if (typeof e == "object" && e != null)
{
VEValidator.ValidateObject(e, "fC", VEColor, "VEColor");
a.textbox_color = VEColorToHexString(e.R, e.G, e.B, e.A);
a.textbox_color_opacity = e.A;
}
var d = b.BackColor;
if (typeof d == "object" && d != null)
{
VEValidator.ValidateObject(d, "bC", VEColor, "VEColor");
a.textbox_backcolor = VEColorToHexString(d.R, d.G, d.B, d.A);
a.textbox_backcolor_opacity = d.A;
}
var g = b.TextOffset;
if (typeof g == "object" && g != null)
{
VEValidator.ValidateObject(g, "tO", VEPixel, "VEPixel");
a.textbox_OffsetX = b.TextOffset.x;
a.textbox_OffsetY = b.TextOffset.y;
}
var f = b.ImageOffset;
if (typeof f == "object" && f != null)
{
VEValidator.ValidateObject(f, "iO", VEPixel, "VEPixel");
a.img_offsetX = f.x;
a.img_offsetY = f.y;
}
if (b.TextBold)
a.textbox_bold = true;
if (b.TextItalics)
a.textbox_italic = true;
if (b.TextUnderline)
a.textbox_underscore = true;
var k = parseInt(b.ImageWidth);
if (! isNaN(k))
a.img_width = k;
var j = parseInt(b.ImageHeight);
if (! isNaN(j))
a.img_height = j;
a.textbox_font = b.TextFont;
a.imagedata_on = true;
var h = parseInt(b.TextSize);
if (! isNaN(h))
a.textbox_size = h;
a.isOn = true;
this.Primitives[0].symbol = a;
if (b.CustomHTML != null)
this._customIcon = b.CustomHTML;
else
if (this.Primitives[0].name)
{
var c = [];
c.push("<div style='position:relative'>");
c.push(" <div style='position:absolute;left:" +
a.textbox_OffsetX + "px;top:" + a.textbox_OffsetY + "px;");
c.push("font-size:" + a.textbox_size + "pt;font-family:" +
a.textbox_font + ";");
c.push("color:" + a.textbox_color + ";");
if (a.textbox_italic)
c.push("font-style:italic;");
if (a.textbox_bold)
c.push("font-weight:bold;");
if (a.textbox_underscore)
c.push("text-decoration:underline;");
c.push("'>");
if (this.Primitives[0].name)
c.push(this.Primitives[0].name);
c.push("</div>");
c.push(" <img style='position:relative;top:" + a.img_offsetY
+ ";left:" + a.img_offsetX + "' src='" + a.imagedata_src +
"'' ");
var i = Msn.VE.Environment.BrowserInfo;
if (i.Type == Msn.VE.BrowserType.MSIE && parseFloat(i.MajorVersion)
< 7 && a.imagedata_src != null && a.imagedata_src.search(/.gif$/) <
0)
c.push("
onload='this.onload=\"\";if(this.fileSize!=-1){this.style.width=this.width;this.style.height=this.height;this.src=\""
+ Msn.VE.API.Constants.spacerurl +
"\";this.style.filter=\"progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\\\""
+ a.imagedata_src + "\\\", sizingMethod=\\\"scale\\\")\";}'
/>");
else
c.push("/>");
c.push("</div>");
this._customIcon = c.join("");
}
else
this._customIcon = a.imagedata_src;
}
else
if (typeof b == "string")
{
this._customIcon = b;
if (b.indexOf("<") < 0)
{
var a = this.Primitives[0].symbol;
if (a.id == MC_PROPERTY_PARK || a.id == MC_PROPERTY_PUSHPIN)
a = a.Clone();
a.imagedata_src = GetImageFullUrl(b);
a.isOn = true;
this.Primitives[0].symbol = a;
}
}
this._IconContent = null;
this.Redraw(false, false, false, true);
}
);
VEShape.prototype.GetIconAnchor = (function ()
{
if (this.Altitude)
return new VELatLong(this.Latitude, this.Longitude, this.Altitude,
this.Primitives[0].altitudeMode);
else
return new VELatLong(this.Latitude, this.Longitude);
}
);
VEShape.prototype.SetIconAnchor = (function (a)
{
if (this.IsModel())
return false;
if (a != null && a != "undefined")
{
VEValidator.ValidateObject(a, "veLatlong", VELatLong,
"VELatLong");
if (a.HasAltitude() && a.AltitudeMode != this.Primitives[0].altitudeMode)
throw new VEException("VEShape", "err_altitudemodemismatch",
L_altitudemodemismatch);
var b = this.Primitives[0];
if (b.type != VEShapeType.Pushpin)
{
this.Latitude = a.Latitude;
this.Longitude = a.Longitude;
b.labelPosX = this.Longitude;
b.labelPosY = this.Latitude;
if (a.HasAltitude())
{
this.Altitude = a.Altitude;
b.labelPosZ = a.Altitude;
}
else
{
this.Altitude = null;
b.labelPosZ = null;
}
}
}
this.Redraw(false, true);
}
);
VEShape.prototype.GetCustomInfoBox = (function ()
{
return this._eroContent;
}
);
VEShape.prototype.SetCustomInfoBox = (function (a)
{
if (typeof a != "undefined" && a != null)
this._eroContent = a.replace(/%0D%0A/g, "\r\n").replace(/%0A/g,
"\n");
}
);
VEShape.prototype.SetZIndex = (function (c,b)
{
if (c != null)
VEValidator.ValidateInt(c, "icon");
if (b != null)
VEValidator.ValidateInt(b, "polyshape");
if (c == null && b == null)
throw new VEException("VEShape.SetZIndex", "L_invalidzindex_text",
L_invalidzindex_text);
var a = this.Primitives[0].symbol;
if (a.id == MC_PROPERTY_PARK || a.id == MC_PROPERTY_PUSHPIN)
a = a.Clone();
if (c != null)
a.style_zIndex = parseInt(c);
if (b != null)
a.style_zIndex_polyshape = parseInt(b);
this.Primitives[0].symbol = a;
this.Redraw(false, false, true, true);
}
);
VEShape.prototype.GetZIndex = (function ()
{
if (this.Primitives[0].symbol != null && this.Primitives[0].symbol.style_zIndex
!= null)
return this.Primitives[0].symbol.style_zIndex;
else
return Msn.VE.API.Globals.veshapeiconzindex;
}
);
VEShape.prototype.GetZIndexPolyShape = (function ()
{
if (this.Primitives[0].symbol != null &&
this.Primitives[0].symbol.style_zIndex_polyshape != null)
return this.Primitives[0].symbol.style_zIndex_polyshape;
else
return Msn.VE.API.Globals.veshapepolyshapezindex;
}
);
VEShape.prototype.SetLineColor = (function (a)
{
if (this.Primitives[0].type == VEShapeType.Pushpin)
return false;
if (typeof a == "object" && a != null)
{
VEValidator.ValidateObject(a, "_color", VEColor, "VEColor");
var b = this.Primitives[0].symbol;
if (b.id == MC_PROPERTY_PARK || b.id == MC_PROPERTY_PUSHPIN)
b = b.Clone();
b.stroke_color = VEColorToHexString(a.R, a.G, a.B, a.A);
b.stroke_opacity = a.A;
this.Primitives[0].symbol = b;
this.Redraw(false, false, true, false);
}
else
if (typeof a != "undefined")
throw new VEException("SetLineColor", "err_invalidargument",
L_invalidargument_text.replace("%1", "color").replace("%2",
"VEColor"));
}
);
VEShape.prototype.GetLineColor = (function ()
{
if (this.Primitives[0].type == VEShapeType.Pushpin)
return null;
var c = this.Primitives[0].symbol, e = new VEHexStringToColor(), a = c.stroke_color;
if (a.indexOf("#") == 0)
a = a.substring(1);
var b = e.Convert(a), d = c.stroke_opacity.toString();
if (d.indexOf("%") > 0)
b.A = parseInt(d) / 100;
else
b.A = c.stroke_opacity;
return b;
}
);
VEShape.prototype.SetFillColor = (function (a)
{
if (this.Primitives[0].type == VEShapeType.Pushpin)
return false;
if (typeof a == "object" && a != null)
{
VEValidator.ValidateObject(a, "_color", VEColor, "VEColor");
var b = this.Primitives[0].symbol;
if (b.id == MC_PROPERTY_PARK || b.id == MC_PROPERTY_PUSHPIN)
b = b.Clone();
b.fill_color = VEColorToHexString(a.R, a.G, a.B, a.A);
b.fill_opacity = a.A;
this.Primitives[0].symbol = b;
this.Redraw(false, false, true, false);
}
else
if (typeof a != "undefined")
throw new VEException("SetFillColor", "err_invalidargument",
L_invalidargument_text.replace("%1", "color").replace("%2",
"VEColor"));
}
);
VEShape.prototype.GetFillColor = (function ()
{
if (this.Primitives[0].type == VEShapeType.Pushpin)
return null;
var c = this.Primitives[0].symbol, e = new VEHexStringToColor(), a = c.fill_color;
if (a.indexOf("#") == 0)
a = a.substring(1);
var b = e.Convert(a), d = c.fill_opacity.toString();
if (d.indexOf("%") > 0)
b.A = parseInt(d) / 100;
else
b.A = c.fill_opacity;
return b;
}
);
VEShape.prototype.SetLineWidth = (function (c)
{
if (this.Primitives[0].type == VEShapeType.Pushpin)
throw new VEException("VEShape.SetLineWidth",
"err_invalidlinewidth", L_Shp_IncorrectLineWidth);
var b = parseInt(c);
if (isNaN(b) || b < 1)
throw new VEException("VEShape.SetLineWidth",
"err_invalidlinewidth", L_Shp_IncorrectLineWidth);
var a = this.Primitives[0].symbol;
if (a.id == MC_PROPERTY_PARK || a.id == MC_PROPERTY_PUSHPIN)
a = a.Clone();
a.stroke_weight = b;
this.Primitives[0].symbol = a;
this.Redraw(false, false, true, false);
}
);
VEShape.prototype.GetLineWidth = (function ()
{
if (this.Primitives[0].type == VEShapeType.Pushpin)
return null;
var a = parseInt(this.Primitives[0].symbol.stroke_weight);
if (isNaN(a))
return 0;
else
return a;
}
);
VEShape.prototype.SetPhotoURL = (function (a)
{
this._eroContent = null;
this.PhotoUrl = a;
}
);
VEShape.prototype.GetPhotoURL = (function ()
{
return this.PhotoUrl;
}
);
VEShape.prototype.SetMoreInfoURL = (function (a)
{
this._eroContent = null;
this.Url = a;
}
);
VEShape.prototype.GetMoreInfoURL = (function ()
{
return this.Url;
}
);
VEShapeLayer.prototype.GetBoundingRectangle = (function ()
{
var a = this.GetBoundingBox();
return new VELatLongRectangle(new VELatLong(a.y2, a.x1), new VELatLong(a.y1, a.x2));
}
);
VEShape.prototype._OffsetScene = null;
VEShape.prototype._OffsetLatLong = null;
VEShape.prototype._OffsetPoints = null;
VEShape.prototype._OriginalPoints = null;
VEShape.prototype._UsingOffset = false;
VEShape.prototype.SetUseOffset = (function (b)
{
if (this._UsingOffset != b)
{
this._UsingOffset = b;
if (b)
{
if (this._OffsetPoints != null)
{
var a = [];
for (var c = 0;c < this._OffsetPoints.length;c++)
{
var d = VEShape.Decoder.Decode(this._OffsetPoints[c]);
a.push(d.Longitude);
a.push(d.Latitude);
}
this._OriginalPoints = this.Primitives[0].points;
this.Primitives[0].points = a;
}
}
else
if (this._OriginalPoints != null)
{
this.Primitives[0].points = this._OriginalPoints;
this._OriginalPoints = null;
}
}
}
);
VEShape.prototype.GetUseOffset = (function ()
{
return this._UsingOffset;
}
);
VEAltitudeMode = new (function ()
{
this.Default = "Ground";
this.Absolute = "Datum";
this.RelativeToGround = "Ground";
}
)();
VEShape.prototype.SetAltitude = (function (a,f)
{
if (this.IsModel())
return false;
var b = this.Primitives[0], d = b.points.length / 2, e = [];
if (typeof a == "number")
{
VEValidator.ValidateFloat(a, "altitude");
a = parseFloat(a);
for (var c = 0;c < d;c++)
e.push(a);
}
else
if (Array.prototype.isPrototypeOf(a))
if (a.length == d && (a[0] == a[(d - 1)] || this.Primitives[0].type !=
VEShapeType.Polygon) || a.length == d - 1 && this.Primitives[0].type ==
VEShapeType.Polygon)
{
for (var c = 0;c < a.length;c++)
{
VEValidator.ValidateFloat(a[c], "altitude[" + c + "]");
e.push(parseFloat(a[c]));
}
if (a.length == d - 1)
e.push(parseFloat(a[0]));
}
else
throw new VEException("VEShape", "err_incorrectpoints",
L_Shp_IncorrectPoints);
else
throw new VEException("VEShape:SetAltitude",
"err_invalidargument", L_invalidargument_text.replace("%1",
"altitude").replace("%2", "float"));
if (f != null)
{
VEValidator.ValidateAltitudeMode(f, "altitudeMode");
b.altitudeMode = f;
}
b.altitudes = e;
Msn.Drawing.CalculateLabelPosition(b, true);
if (b.type != VEShapeType.Pushpin)
{
this.Latitude = b.labelPosY;
this.Longitude = b.labelPosX;
this.Altitude = b.labelPosZ;
}
this.Redraw(false, true);
}
);
VEShape.prototype.GetAltitude = (function ()
{
return this.Primitives[0].altitudes;
}
);
VEShape.prototype.SetAltitudeMode = (function (b)
{
if (this.IsModel())
return false;
VEValidator.ValidateAltitudeMode(b, "value");
var a = this.Primitives[0];
a.altitudeMode = b;
if (! a.altitudes)
this.SetAltitude(0);
this.Redraw(true, true);
}
);
VEShape.prototype.GetAltitudeMode = (function ()
{
return this.Primitives[0].altitudeMode;
}
);
VEShape.prototype.SetLineToGround = (function (a)
{
if (this.IsModel())
return false;
VEValidator.ValidateBoolean(a, "value");
if (this.Primitives[0].type != VEShapeType.Pushpin)
{
this.Primitives[0].extruded = a;
this.Redraw(true, true);
}
}
);
VEShape.prototype.GetLineToGround = (function ()
{
if (this.Primitives[0].extruded != null)
return this.Primitives[0].extruded;
else
return null;
}
);
VEShape.prototype.ToHtml = (function ()
{
var a = [];
if (this.Primitives[0].type == VEShapeType.Pushpin)
{
var b = GetVEMapInstance(this._shplayer._mapGuid);
if (b && b.vemapcontrol)
{
var c = b.vemapcontrol.GetPushpinMapPixel(new Msn.VE.LatLong(this.Latitude,
this.Longitude), b.vemapcontrol.GetZoomLevel());
a.push("<a href='javascript://pushpin hover' class=VEAPI_Pushpin
id=");
a.push(this.Primitives[0].iid);
a.push(" style=\"z-index=");
a.push(this.GetZIndex());
a.push(";position:absolute;left:");
a.push(c.x - 25 / 2);
a.push("px;top:");
a.push(c.y - 25 / 2);
a.push("px;\">");
a.push(VECreateVEShapeERO(this, this._shplayer._mapGuid));
a.push("</a>");
}
}
return a.join("");
}
);
VEShape.prototype._isDrawn = false;
VEShape.prototype._isHiddenForZoom = false;
VEShape.prototype.GetShapeElement = (function ()
{
var a = this.Primitives[0];
if (this._isDrawn && a && a.type != VEShapeType.Pushpin)
{
if (a._shapeElement == null)
a._shapeElement = $ID(a.iid);
return a._shapeElement;
}
return null;
}
);
VEShape.prototype.GetIconElement = (function ()
{
var a = this.Primitives[0];
if (this._isDrawn && a)
{
if (a._iconElement == null)
if (a.type == VEShapeType.Pushpin)
a._iconElement = $ID(a.iid);
else
a._iconElement = $ID(Msn.Drawing.GetLabelUID(a.iid));
return a._iconElement;
}
return null;
}
);
VEShape.prototype.ClearDomElements = (function ()
{
var a = this.Primitives[0];
if (a)
{
a._shapeElement = null;
a._iconElement = null;
}
}
);
VEShape.prototype.DisposeEx = (function ()
{
this.ClearDomElements();
this.Dispose();
}
);
VE_SetModuleStatus(VE_ModuleName.APILAYERS, "loaded");
VEMap.prototype.InitMapDrawing = (function ()
{
cssCursors = Msn.VE.Css.Cursors;
if (VE_MapDispatch_SymbolLib == null)
{
VE_MapDispatch_SymbolLib = new VEShapeStyleLibrary();
VEShapeStyle.prototype.imagedata_src = Msn.VE.API.Constants.iconurl;
}
if (this.m_velayermanager == null)
{
this.m_velayermanager = new VELayerManager(this);
this._lm = this.m_velayermanager;
}
}
);
VEMap.prototype.InitTiles = (function ()
{
if (! this.m_vetilesourcemanager)
this.m_vetilesourcemanager = new VETileSourceManager(this);
}
);
VEMap.prototype.AddTileLayer = (function (a,b,c)
{
VEValidator.ValidateObject(a, "tileSourceSpec", VETileSourceSpecification,
"VETileSourceSpecification");
this.m_vetilesourcemanager.AddTileSource(a, c, b);
}
);
VEMap.prototype.ShowTileLayer = (function (a)
{
this.m_vetilesourcemanager.ShowTileLayer(a);
}
);
VEMap.prototype.ShowAllTileLayers = (function ()
{
this.m_vetilesourcemanager.ShowAllTileLayers();
}
);
VEMap.prototype.HideTileLayer = (function (a)
{
this.m_vetilesourcemanager.HideTileLayer(a);
}
);
VEMap.prototype.ShowBaseTileLayer = (function ()
{
this.m_vetilesourcemanager.ShowBaseTileLayer();
}
);
VEMap.prototype.HideBaseTileLayer = (function ()
{
this.m_vetilesourcemanager.HideBaseTileLayer();
}
);
VEMap.prototype.HideAllTileLayers = (function ()
{
this.m_vetilesourcemanager.HideAllTileLayers();
}
);
VEMap.prototype.DeleteTileLayer = (function (a)
{
this.m_vetilesourcemanager.DeleteSourceById(a);
}
);
VEMap.prototype.DeleteAllTileLayers = (function ()
{
this.m_vetilesourcemanager.DeleteAllSources();
}
);
VEMap.prototype.GetTileLayerCount = (function ()
{
return this.m_vetilesourcemanager.GetSourceCount();
}
);
VEMap.prototype.GetTileLayerByID = (function (a)
{
return this.m_vetilesourcemanager.GetSourceById(a);
}
);
VEMap.prototype.GetTileLayerByIndex = (function (a)
{
return this.m_vetilesourcemanager.GetSourceByIndex(a);
}
);
VE_SetModuleStatus(VE_ModuleName.APITILES, "loaded");
VEMap.prototype.InitSearch = (function ()
{
if (! this.m_vesearchmanager)
{
this.m_vesearchmanager = new VE_SearchManager(this);
this.m_vesearchmanager.Initialize();
this._sm = this.m_vesearchmanager;
}
}
);
VEMap.prototype.Find = (function (l,j,i,f,g,b,e,d,a,c,h)
{
this.InitSearch();
var k = new VEFindSpec(l, j, i, f, g, b, e, d, a, c, h);
this.m_vesearchmanager.Find(k);
}
);
VEMap.prototype.CreateFindControl = (function (b)
{
function a(a)
{
a = a ? a : window.event;
a.cancelBubble = true;
a.returnValue = false;
return false;
}
VEValidator.ValidateNonNull(b, "findControlId");
el = document.createElement("div");
el.className = "VE_FindControl";
el.id = b;
el.style.zIndex = 199;
el.style.position = "absolute";
el.style.padding = "5px";
el.attachEvent("onmousedown", a);
el.attachEvent("onmouseup", a);
el.attachEvent("onmousemove", a);
el.attachEvent("onmousewheel", a);
el.attachEvent("ondblclick", a);
el.attachEvent("oncontextmenu", a);
el.attachEvent("onclick", a);
var c = this.ID + "_vewhatinputcontainer", e = this.ID +
"_vewhatinput", d = this.ID + "_vewhereinput";
el.innerHTML = "<div class=VE_WhatControl id='" + c +
"'>" + L_what_text + " " + "<input id=\"" + e
+ "\" type=\"text\" name=\"vewhatinput\"
size=\"25\" onfocus=\"this.select()\" onblur=\"this.value =
this.value\" />" + "</div>" + "<div
class=VE_WhereControl>" + L_where_text + " " + "<input
id=\"" + d + "\" type=\"text\"
name=\"vewhereinput\" size=\"25\" style=\"color:
#333333\"" +
"ondrop=\"this.value='';this.style.color='black';SelectText(this,0,0);\"
/>" + "</div>" + "<div class=VE_FindButton>" +
"<button id=\"searchbttn\" onclick=\"VEMap._GetMapFromGUID(" +
this.GUID + ")._DoFind();\" type=\"submit\" name=\"submit\"
value=\"Local Search\">" + L_find_text + "</button>" +
"</div>";
this.mapelement.appendChild(el);
addIFrameShim(el);
return el;
}
);
VEMap.prototype.ShowFindControl = (function (c,b)
{
if (typeof c != "undefined" || typeof b != "undefined")
{
VEValidator.ValidateInt(c, "top");
VEValidator.ValidateInt(b, "left");
}
var d = this.ID + "_vefindcontrolinput", a = $ID(d);
if (typeof a == "undefined" || a == null)
a = this.CreateFindControl(d);
if (isNaN(c))
a.style.top = "35px";
else
a.style.top = c + "px";
if (isNaN(b))
a.style.left = "195px";
else
a.style.left = b + "px";
a.style.display = "block";
ShowShim(a);
}
);
VEMap.prototype.HideFindControl = (function ()
{
var a = $ID(this.ID + "_vefindcontrolinput");
if (a != null && a != "undefined")
{
a.style.display = "none";
HideShim(a);
}
}
);
VEMap.prototype.SetFindResultsPanel = (function (a)
{
if (a == null || a == "undefined")
throw new VEException("VEMap:SetFindResultsPanel",
"err_invalidelement", L_invalidelement_text);
var b = $ID(a);
if (b == null || b == "undefined")
throw new VEException("VEMap:SetFindResultsPanel",
"err_invalidelement", L_invalidelement_text);
this.searchelement = a;
}
);
VEMatchCode.None = 0;
VEMatchCode.Good = 1;
VEMatchCode.Ambiguous = 2;
VEMatchCode.UpHierarchy = 4;
VEMatchCode.Modified = 8;
VEMatchConfidence.High = 0;
VEMatchConfidence.Medium = 1;
VEMatchConfidence.Low = 2;
VELocationPrecision.Interpolated = 0;
VELocationPrecision.Rooftop = 1;
VEFindType = new (function ()
{
this.Businesses = "YellowPageSearch";
}
)();
Msn.VE.Search = {};
Msn.VE.Search.strLastWhere = "";
VE_SearchResult.prototype.Equals = (function (a)
{
if (a == null || a == "undefined")
return false;
try
{
var b = this.name == a.name && this.description == a.description &&
this.phone == a.phone && this.rating == a.rating && this.type == a.type
&& this.latitude == a.latitude && this.longitude == a.longitude;
return b;
}
catch (c)
{
return false;
}
}
);
VE_WebSearchResult.prototype.Equals = (function (a)
{
if (a instanceof VE_WebSearchResult)
{
var b = this.GetCaptionUrl() == a.GetCaptionUrl() && this.GetDescription()
== a.GetDescription() && this.GetTitle() == a.GetTitle() &&
this.GetDisplayUrl() == a.GetDisplayUrl() && this.GetUrl() == a.GetUrl();
return b;
}
return false;
}
);
VE_SearchResult.prototype.GetSerializedId = (function ()
{
switch (this.type)
{
case "al":
return "";
case "adr":
return "adr" + "." + this.name;
case "aN":
return VE_AnnotationData.SerializeAnnotation(this.pinId);
default:
return this.type + "." + this.id.toString();
}
}
);
VE_SetModuleStatus(VE_ModuleName.APIFIND, "loaded");
VEMap.prototype.InitRouting = (function ()
{
if (! this.m_vedirectionsmanager)
{
this.m_vedirectionsmanager = new VEDirectionsManager(this);
this.m_vedirectionsmanager.Initialize();
this._dm = this.m_vedirectionsmanager;
}
if (! this.m_routemanager)
this.m_routemanager = new VERouteManager(this);
}
);
VEMap.prototype.GetRoute = (function (d,e,b,c,a)
{
this.InitRouting();
this.m_vedirectionsmanager.GetDrivingDirections(d, e, b, c, a);
}
);
VEMap.prototype.DeleteRoute = (function ()
{
this.InitRouting();
this.m_vedirectionsmanager.ClearRoute();
this.m_routemanager.ClearRoute();
}
);
VERouteDistanceUnit.Mile = "Mile";
VERouteDistanceUnit.Kilometer = "Kilometer";
VERouteDistanceUnit.Default = VERouteDistanceUnit.Mile;
VERouteOptimize.MinimizeTime = "MinimizeTime";
VERouteOptimize.MinimizeDistance = "MinimizeDistance";
VERouteOptimize.Default = "Default";
VEMap.prototype.GetDirections = (function (b,a)
{
this.m_routemanager.GetRoute(b, a);
}
);
var L_cannotrenderroute_text = "The route could not be drawn because this web browser
does not support SVG and VML.";
VEDistanceUnit = new (function ()
{
this.Miles = "m";
this.Kilometers = "k";
}
)();
VERouteType = new (function ()
{
this.Shortest = "s";
this.Quickest = "q";
}
)();
VE_SetModuleStatus(VE_ModuleName.APIROUTING, "loaded");
VEMap.prototype.InitTraffic = (function ()
{
if (! this.m_vetrafficmanager)
this.m_vetrafficmanager = new VE_TrafficManager(this);
}
);
VEMap.prototype.LoadTraffic = (function (c,b,a)
{
this.InitTraffic();
VE_TrafficManager.m_vemap = this;
VE_TrafficManager.turnedOn = true;
VE_TrafficManager.showTrafficFlow = c;
VE_TrafficManager.showIncidents = b;
VE_TrafficManager.showConstructionIncidents = a;
VE_TrafficManager.markets = [];
VE_TrafficManager.incidents = [];
if (this.vemapcontrol)
this.vemapcontrol.UpdateCopyright();
window.setTimeout(VE_TrafficManager.GetMarkets, 100);
}
);
VEMap.prototype.ClearTraffic = (function ()
{
if (VE_TrafficManager.markets[0] != null)
VE_TrafficManager.ClearTraffic();
if (this.vemapcontrol)
this.vemapcontrol.UpdateCopyright();
}
);
VEMap.prototype.ShowTrafficLegend = (function (a,b)
{
if (VE_TrafficManager && VE_TrafficManager.turnedOn)
VE_TrafficManager.ShowTrafficLegend(a, b);
}
);
VEMap.prototype.HideTrafficLegend = (function ()
{
if (VE_TrafficManager)
VE_TrafficManager.HideTrafficLegend();
}
);
VEMap.prototype.SetTrafficLegendText = (function (a)
{
if (VE_TrafficManager)
VE_TrafficManager.SetTrafficLegendText(a);
}
);
VE_TrafficManager.m_vemap = null;
VE_TrafficManager.markets = [];
VE_TrafficManager.incidents = [];
VE_TrafficManager.incidentJSFiles = [];
VE_TrafficManager.showingMarkets = [];
VE_TrafficManager.showConstructionIncidents = false;
VE_TrafficManager.incidentsAvailable = false;
VE_TrafficManager.flowAvailable = false;
VE_TrafficManager.turnedOn = false;
VE_TrafficManager.showIncidents = false;
VE_TrafficManager.showTrafficFlow = false;
VE_TrafficManager.prevZoomLevel = 0;
VE_TrafficManager.prevMapStyle = "";
VE_TrafficManager.isViewDirty = false;
VE_TrafficManager.masterTimer = null;
VE_TrafficManager.slaveTimer = null;
VE_TrafficManager.Severity = {Serious : L_TrafficManagerSerious_Text, Moderate :
L_TrafficManagerModerate_Text, Minor : L_TrafficManagerMinor_Text};
VE_TrafficManager.GetMarkets = (function ()
{
try
{
VENetwork.DownloadScript(VE_TrafficManager.m_vemap.vemapcontrol.GetMarketsFile(),
VE_TrafficManager.GetTrafficInfo);
}
catch (a)
{}
}
);
VE_TrafficManager._ProcessMarkets = (function (a)
{
if (VE_TrafficManager.markets[0] == null)
VE_TrafficManager.markets[0] = [];
if (a != null && a.length > 0)
{
var c = a.length;
for (var b = 0;b < c;b++)
if (a[b] != null)
VE_TrafficManager.markets[0].push(a[b]);
}
}
);
VE_TrafficManager._GetIncidents = (function (b)
{
VE_TrafficManager.showingMarkets = VE_TrafficManager._GetIncidentMarkets();
if (b)
if (VE_TrafficManager.showingMarkets.length > 0)
{
VE_TrafficManager.incidentsAvailable = true;
for (var a = 0;a < VE_TrafficManager.showingMarkets.length;a++)
try
{
var c =
VENetwork.DownloadScript(VE_TrafficManager.m_vemap.vemapcontrol.GetIncidentsFile() +
"-" + VE_TrafficManager.showingMarkets[a] + ".js", null);
VE_TrafficManager.incidentJSFiles.push(c);
}
catch (d)
{}
}
}
);
VE_TrafficManager._ProcessIncidents = (function (a)
{
if (a == null || a.length <= 0)
return ;
var b = a[0].MarketId;
if (VE_TrafficManager.incidents[b] == null)
VE_TrafficManager.incidents[b] = [];
else
{
VE_TrafficManager._ClearPins(b);
var d = VE_TrafficManager.incidents[b].length;
for (var c = 0;c < d;c++)
VE_TrafficManager.incidents[b].pop();
}
if (a != null && a.length > 0)
{
var d = a.length;
for (var c = 0;c < d;c++)
if (a[c] != null)
VE_TrafficManager.incidents[b].push(a[c]);
}
VE_TrafficManager._DisplayIncidents();
}
);
VE_TrafficManager._GetIncidentMarkets = (function ()
{
var b = [], h = VE_TrafficManager.m_vemap.vemapcontrol.PixelToLatLong(new VEPixel(0,
0)), g = VE_TrafficManager.m_vemap.vemapcontrol.PixelToLatLong(new
VEPixel(VE_TrafficManager.m_vemap.GetWidth(), VE_TrafficManager.m_vemap.GetHeight()));
if (h == null || g == null)
return b;
var c = h.latitude, d = g.longitude, e = g.latitude, f = h.longitude;
if (c < e)
{
var i = c;
c = e;
e = i;
}
if (d < f)
{
var i = d;
d = f;
f = i;
}
if (VE_TrafficManager.markets.length == 0)
return b;
var k = new VELatLongRectangle(new VELatLong(c, f), new VELatLong(e, d)), l =
VE_TrafficManager.markets[0].length;
for (var a = 0;a < l;a++)
{
var j = new VELatLongRectangle(new
VELatLong(VE_TrafficManager.markets[0][a].NELatitude,
VE_TrafficManager.markets[0][a].SWLongitude), new
VELatLong(VE_TrafficManager.markets[0][a].SWLatitude,
VE_TrafficManager.markets[0][a].NELongitude));
if (VE_TrafficManager._isBBOverlap(k, j))
{
if (VE_TrafficManager.markets[0][a].Incident == "Incidents")
b.push(VE_TrafficManager.markets[0][a].Id);
if (VE_TrafficManager.markets[0][a].Flow == "Flow")
VE_TrafficManager.flowAvailable = true;
}
}
return b;
}
);
VE_TrafficManager._isBBOverlap = (function (b,a)
{
return VE_TrafficManager._IsRectInBoundingBox(b, a) ||
VE_TrafficManager._IsRectInBoundingBox(a, b);
}
);
VE_TrafficManager._IsRectInBoundingBox = (function (a,b)
{
return ! (a.BottomRightLatLong.Latitude > b.TopLeftLatLong.Latitude ||
a.BottomRightLatLong.Longitude < b.TopLeftLatLong.Longitude ||
a.TopLeftLatLong.Latitude < b.BottomRightLatLong.Latitude || a.TopLeftLatLong.Longitude
> b.BottomRightLatLong.Longitude);
}
);
VE_TrafficManager.GetTrafficInfo = (function ()
{
if (! VE_TrafficManager.turnedOn)
return ;
try
{
if
(VE_TrafficManager.m_vemap.vemapcontrol.IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
if (VE_TrafficManager.showTrafficFlow)
VE_TrafficManager.m_vemap.vemapcontrol.Show3DTraffic(false);
else
VE_TrafficManager.m_vemap.vemapcontrol.Remove3DTraffic();
var a = VE_TrafficManager.m_vemap.GetZoomLevel();
if (VE_TrafficManager.m_vemap.GetMapStyle() == Msn.VE.MapStyle.Oblique)
return ;
VE_TrafficManager.prevZoomLevel = a;
VE_TrafficManager.prevMapStyle = VE_TrafficManager.m_vemap.GetMapStyle();
VE_TrafficManager.incidentsAvailable = false;
VE_TrafficManager.flowAvailable = false;
VE_TrafficManager._ClearPins();
if (a >= 9)
{
VE_TrafficManager._GetIncidents(VE_TrafficManager.showIncidents);
if (VE_TrafficManager.showTrafficFlow && VE_TrafficManager.flowAvailable
&& a <= 15)
{
VE_TrafficManager.m_vemap.vemapcontrol.ClearTileLayer("Traffic");
VE_TrafficManager.m_vemap.vemapcontrol.SetTrafficView();
}
}
VE_TrafficManager.RenewAutoRefresh();
}
catch (b)
{}
}
);
VE_TrafficManager._DisplayIncidents = (function ()
{
if (VE_TrafficManager.showingMarkets != null &&
VE_TrafficManager.showingMarkets.length > 0)
{
var e = VE_TrafficManager.showingMarkets.length;
for (var b = 0;b < e;b++)
{
var a = VE_TrafficManager.showingMarkets[b];
if (VE_TrafficManager.incidents[a] != null &&
VE_TrafficManager.incidents[a].length > 0)
{
VE_TrafficManager._RemoveDuplicates(a);
VE_TrafficManager._RenderTrafficInfo(a);
}
}
var d = "", a = VE_TrafficManager.showingMarkets[0];
if (VE_TrafficManager.incidents[a] != null &&
VE_TrafficManager.incidents[a].length > 0)
d = VETime.FormatPanelTime(VE_TrafficManager.incidents[a][0].Timestamp, false);
VE_TrafficManager.ShowTrafficLegend();
if (VE_TrafficManager.m_vemap)
{
var c = VE_TrafficManager.m_vemap.GetDashboardSize();
if (c == VEDashboardSize.Small || c == VEDashboardSize.Tiny)
VE_TrafficManager.ShowTrafficLegend(41, 37);
}
VE_TrafficManager.SetTrafficLegendText(d);
}
}
);
VE_TrafficManager._RenderTrafficInfo = (function (c)
{
if (c)
VE_TrafficManager._ClearPins(c);
else
VE_TrafficManager._ClearPins();
var e = VE_TrafficManager.m_vemap.GetZoomLevel();
if (e > 8)
{
if (c == null)
return ;
if (VE_TrafficManager.incidents[c] != null)
{
var b = VE_TrafficManager.incidents[c], f =
VE_TrafficManager.incidents[c].length;
for (var a = 0;a < f;a++)
if (b[a].Type != VE_TrafficIncidentType.Weather && b[a].Type !=
VE_TrafficIncidentType.MassTransit)
{
if (! VE_TrafficManager.showConstructionIncidents)
if (b[a].Type == VE_TrafficIncidentType.UnscheduledConstruction ||
b[a].Type == VE_TrafficIncidentType.ScheduledConstruction)
continue ;
if (VE_TrafficManager.flowAvailable && b[a].Type ==
VE_TrafficIncidentType.Congestion)
continue ;
var d = new VEPushpin("pin_traffic_incident_" + c +
"_" + b[a].Id, new VELatLong(b[a].Latitude, b[a].Longitude),
Msn.VE.API.Constants.trafficiconurl.replace("%1",
VE_TrafficManager.GetColor(b[a].Criticality)), "",
VE_TrafficManager.CreatePopupContent(b[a]));
b[a].pushPin = d;
VE_TrafficManager.m_vemap.AddPushpin(d);
}
}
}
}
);
VE_TrafficManager.GetColor = (function (a)
{
switch (a)
{
case 0:
return Msn.VE.UI.Color.Red;
break ;
case 1:
return Msn.VE.UI.Color.Orange;
break ;
case 2:
return Msn.VE.UI.Color.Yellow;
break ;
default:
return Msn.VE.UI.Color.Yellow;
}
}
);
VE_TrafficManager.CreatePopupContent = (function (a)
{
var b = "<div class = \"traffictitle\">" + (a.Type ?
IOSec.EncodeHtml(a.Type.replace(/&/gi, "&")) : "") +
"</div>" + "<div class = \"trafficheader\">" +
L_TrafficPopupSeverity_Text + ":</div> " + "<div class =
\"trafficdata\">" + VE_TrafficManager._GetSeverity(a.Criticality) +
"</div>" + "<div class = \"trafficheader\">" +
L_TrafficPopupLocation_Text + ":</div> " + "<div class =
\"trafficdata\">" + (a.Location ?
IOSec.EncodeHtml(a.Location.replace(/&/gi, "&")) : "") +
"</div>" + "<div class = \"trafficheader\">" +
L_TrafficPopupDescription_Text + ":</div> " + "<div class =
\"trafficdata\">" + (a.Description ?
IOSec.EncodeHtml(a.Description.replace(/&/gi, "&")) : "")
+ "</div>" + "<BR><div>" + "<div class =
\"trafficlabel\">" + L_TrafficPopupStartTime_Text +
":</div>" + "<div class = \"trafficdata\">" +
(a.Starttime ? IOSec.EncodeHtml(VETime.FormatTime(a.Starttime, true)) : "") +
"</div>" + "</div>" + "<div>" +
"<div class = \"trafficlabel\">" + L_TrafficPopupEstEndTime_Text
+ ":</div>" + "<div class = \"trafficdata\">" +
(a.Endtime ? IOSec.EncodeHtml(VETime.FormatTime(a.Endtime, true)) : "") +
"</div>" + "</div>";
return b;
}
);
VE_TrafficManager._GetSeverity = (function (a)
{
switch (a)
{
case 0:
return VE_TrafficManager.Severity.Serious;
break ;
case 1:
return VE_TrafficManager.Severity.Moderate;
break ;
case 2:
return VE_TrafficManager.Severity.Minor;
break ;
default:
return VE_TrafficManager.Severity.Minor;
}
}
);
VE_TrafficManager._RemoveDuplicates = (function (c)
{
if (c == null || c == "undefined")
return ;
var a = VE_TrafficManager.incidents[c];
if (a == null)
return ;
for (var b = 0;b < a.length;b++)
for (var d = b + 1;d < a.length;d++)
if (a[b].Id == a[d].Id)
a.splice(b, 1);
}
);
VE_TrafficManager.ClearTraffic = (function ()
{
VE_TrafficManager._ClearPins();
if (VE_TrafficManager.m_vemap != null && VE_TrafficManager.m_vemap.vemapcontrol
!= null)
{
VE_TrafficManager.m_vemap.vemapcontrol.ClearTileLayer("Traffic");
VE_TrafficManager.HideTrafficLegend();
if
(VE_TrafficManager.m_vemap.vemapcontrol.IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
VE_TrafficManager.m_vemap.vemapcontrol.Remove3DTraffic();
}
VE_TrafficManager.turnedOn = false;
VE_TrafficManager.ExpireAutoRefresh();
}
);
VE_TrafficManager.Destroy = (function ()
{
VE_TrafficManager.ClearTraffic();
VE_TrafficManager.incidentsAvailable = false;
VE_TrafficManager.flowAvailable = false;
if (VE_TrafficManager.incidents != null)
{
if (VE_TrafficManager.markets[0] != null)
for (var c = 0;c < VE_TrafficManager.markets[0].length;c++)
{
var b = VE_TrafficManager.markets[0][c].Id, i =
VE_TrafficManager.incidents[b];
if (i == null)
continue ;
var a = VE_TrafficManager.incidents[b].pop();
if (a == null)
continue ;
for (var e = 0;e < a.length;e++)
{
var f = a.pop();
f = null;
}
a = null;
}
VE_TrafficManager.incidents[b] = null;
}
if (VE_TrafficManager.markets != null && VE_TrafficManager.markets[0] != null
&& VE_TrafficManager.markets[0].length > 0)
{
var h = VE_TrafficManager.markets[0].length;
for (var d = 0;d < h;d++)
{
var g = VE_TrafficManager.markets[0].pop();
g = null;
}
VE_TrafficManager.markets[0] = null;
}
}
);
VE_TrafficManager._ClearPins = (function (e)
{
if (VE_TrafficManager.markets == null || VE_TrafficManager.markets.length <= 0)
return ;
var c = VE_TrafficManager.markets[0];
if (c != null && c.length > 0)
for (var a = 0;a < c.length;a++)
if (c[a].pushPin)
{
VE_TrafficManager.m_vemap.DeletePushpin(c[a].pushPin.ID);
c[a].pushPin = null;
}
if (VE_TrafficManager.incidents == null || VE_TrafficManager.incidents.length <= 0)
return ;
if (e)
{
var b = VE_TrafficManager.incidents[e];
if (b == null)
return ;
for (var a = 0;a < b.length;a++)
if (b[a].pushPin)
{
VE_TrafficManager.m_vemap.DeletePushpin(b[a].pushPin.ID);
b[a].pushPin = null;
}
}
else
if (c != null && c.length > 0)
for (var d = 0;d < VE_TrafficManager.markets[0].length;d++)
{
var f = VE_TrafficManager.markets[0][d].Id, b = VE_TrafficManager.incidents[f];
if (b == null)
continue ;
for (var a = 0;a < b.length;a++)
if (b[a].pushPin)
{
VE_TrafficManager.m_vemap.DeletePushpin(b[a].pushPin.ID);
b[a].pushPin = null;
}
b = null;
}
}
);
VE_TrafficManager._ViewChangeNotification = (function ()
{
if (VE_TrafficManager.m_vemap.GetMapStyle() == Msn.VE.MapStyle.Oblique)
return ;
if (! VE_TrafficManager.turnedOn)
return ;
var a = VE_TrafficManager.m_vemap.GetZoomLevel();
if (VE_TrafficManager.prevZoomLevel <= 8 && a > 8)
VE_TrafficManager.isViewDirty = true;
else
if (VE_TrafficManager.prevZoomLevel > 8 && a <= 8)
VE_TrafficManager.isViewDirty = true;
else
if (VE_TrafficManager.prevZoomLevel <= 15 && a > 15)
VE_TrafficManager.isViewDirty = true;
else
if (VE_TrafficManager.prevZoomLevel > 15 && a <= 15)
VE_TrafficManager.isViewDirty = true;
else
if (VE_TrafficManager.prevMapStyle == Msn.VE.MapStyle.Oblique)
VE_TrafficManager.isViewDirty = true;
else
{
var b = VE_TrafficManager._GetIncidentMarkets();
if (b != null && b.length > 0)
for (var c = 0;c < b.length;c++)
{
var e = false;
for (var d = 0;d < VE_TrafficManager.showingMarkets.length;d++)
if (b[c] == VE_TrafficManager.showingMarkets[d])
{
e = true;
break ;
}
if (! e)
{
VE_TrafficManager.isViewDirty = true;
break ;
}
else
VE_TrafficManager.isViewDirty = false;
}
else
VE_TrafficManager.isViewDirty = true;
}
VE_TrafficManager.prevZoomLevel = a;
VE_TrafficManager.prevMapStyle = VE_TrafficManager.m_vemap.GetMapStyle();
if (VE_TrafficManager.isViewDirty)
window.setTimeout("VE_TrafficManager.GetTrafficInfo()", 1);
VE_TrafficManager.RenewAutoRefresh();
}
);
VE_TrafficManager.ExpireAutoRefresh = (function ()
{
if (VE_TrafficManager.masterTimer != null)
window.clearInterval(VE_TrafficManager.masterTimer);
if (VE_TrafficManager.slaveTimer != null)
window.clearInterval(VE_TrafficManager.slaveTimer);
}
);
VE_TrafficManager.RenewAutoRefresh = (function ()
{
if (! VE_TrafficManager.turnedOn)
return ;
VE_TrafficManager.ExpireAutoRefresh();
VE_TrafficManager.masterTimer =
window.setInterval("VE_TrafficManager.ExpireAutoRefresh()",
VE_TrafficManager.m_vemap.vemapcontrol.GetSlidingExpirationForAutoRefresh());
VE_TrafficManager.slaveTimer = window.setInterval(VE_TrafficManager.AutoRefresh,
VE_TrafficManager.m_vemap.vemapcontrol.GetAutoRefreshRate());
}
);
VE_TrafficManager.AutoRefresh = (function ()
{
try
{
var a = VE_TrafficManager.m_vemap.GetZoomLevel();
if (a >= 9)
VE_TrafficManager.GetTrafficInfo();
}
catch (b)
{}
}
);
VE_TrafficIncidentType = new (function ()
{
this.ScheduledConstruction = "SCHEDULED CONSTRUCTION";
this.OtherNews = "OTHER NEWS";
this.Congestion = "CONGESTION";
this.Accident = "ACCIDENT";
this.DisabledVehicle = "DISABLED VEHICILE";
this.RoadHazard = "ROAD HAZARD";
this.UnscheduledConstruction = "UNSCHEDULED CONSTRUCTION";
this.PlannedEvent = "PLANNED EVENT";
this.MassTransit = "MASS TRANSIT";
this.Weather = "WEATHER";
this.Miscellaneous = "MISCELLANEOUS";
}
)();
VE_TrafficManager.ShowTrafficLegend = (function (a,b)
{
if (VE_TrafficManager.turnedOn)
{
if (VE_TrafficManager.legend == null)
{
VE_TrafficManager.legend =
VE_TrafficManager.m_vemap.vemapcontrol.CreateLegend();
if (VE_TrafficManager.legend != null)
VE_TrafficManager.legend.ShowTrafficLegend(true);
}
if (VE_TrafficManager.legend && typeof a != "undefined" &&
a != null && typeof b != "undefined" && b != null)
{
VE_TrafficManager.legend.UnPin();
VE_TrafficManager.legend.MoveTo(a, b);
}
}
}
);
VE_TrafficManager.HideTrafficLegend = (function ()
{
if (VE_TrafficManager.legend != null)
{
VE_TrafficManager.legend.ShowTrafficLegend(false);
VE_TrafficManager.legend = null;
}
}
);
VE_TrafficManager.SetTrafficLegendText = (function (a)
{
if (VE_TrafficManager.legend != null)
{
if (typeof a == "undefined" || a == null)
a = "";
VE_TrafficManager.legend.SetTrafficLegendMsg(a);
}
}
);
VETime.FormatTime = (function (a)
{
if (a == null || a == "" || a == "undefined")
return "";
var c = false, d = a.substr(0, 10), e = a.substr(11, 5), b = "";
if (a.indexOf("AM") > - 1)
{
b = "AM";
c = true;
}
else
b = "PM";
return d + " " + VETime.ConvertTo12HourFormat(e, c) + " " + b;
}
);
VETime.ConvertTo12HourFormat = (function (d,c)
{
var a = d;
try
{
var b = parseFloat(a.replace(":", "."));
if (b > 12)
if (b < 13 && c != true)
{}
else
b = b - 12;
a = b.toFixed(2);
a = a.replace(".", ":");
}
catch (e)
{
a = "";
}
return a;
}
);
VETime.FormatPanelTime = (function (a,g)
{
if (a == null || a == "" || a == "undefined")
return "";
try
{
var b = 0, d = false, i = a.substr(4, 8), h = a.indexOf(":"), f =
a.substr(h - 2, 5), c = "";
if (a.indexOf("AM") > - 1)
{
c = "AM";
d = true;
b = a.indexOf("AM");
}
else
{
c = "PM";
b = a.indexOf("PM");
}
var e = "";
if (b > 0)
e = a.substr(b + 3, 3);
if (g)
return i + " " + VETime.ConvertTo12HourFormat(f, d) + " " + c
+ " " + e;
else
return VETime.ConvertTo12HourFormat(f, d) + " " + c + " " +
e;
}
catch (j)
{}
}
);
VETime.getMonth = (function (a)
{
switch (a)
{
case "01":
return " Jan";
case "02":
return " Feb";
case "03":
return " Mar";
case "04":
return " Apr";
case "05":
return " May";
case "06":
return " Jun";
case "07":
return " Jul";
case "08":
return " Aug";
case "09":
return " Sep";
case "10":
return " Oct";
case "11":
return " Nov";
case "12":
return " Dec";
}
}
);
VE_SetModuleStatus(VE_ModuleName.APITRAFFIC, "loaded");
VEMap.prototype.SetAltitude = (function (a)
{
try
{
VEValidator.ValidateFloat(a, "level");
var b = parseFloat(a);
this._QueueRequest(this.vemapcontrol.SetAltitude, b);
}
catch (c)
{
throw c;
return ;
}
}
);
VEMap.prototype.SetPitch = (function (b)
{
try
{
VEValidator.ValidateFloat(b, "pitch");
var a = parseFloat(b);
a = a % 360;
if (a > 0)
a = a < 1 ? 0 : - 90;
if (a < - 90)
a = - 90;
this._QueueRequest(this.vemapcontrol.SetTilt, a);
}
catch (c)
{
throw c;
return ;
}
}
);
VEMap.prototype.SetHeading = (function (b)
{
try
{
VEValidator.ValidateFloat(b, "heading");
var a = parseFloat(b);
a = a % 360;
if (a < 0)
a = 360 + a;
this._QueueRequest(this.vemapcontrol.SetDirection, a);
}
catch (c)
{
throw c;
return ;
}
}
);
VEMap.prototype.GetAltitude = (function ()
{
return this.vemapcontrol.GetAltitude();
}
);
VEMap.prototype.GetPitch = (function ()
{
return this.vemapcontrol.GetTilt();
}
);
VEMap.prototype.GetHeading = (function ()
{
return this.vemapcontrol.GetDirection();
}
);
VEMap.prototype._Toggle3DNavigationControl = (function (b)
{
if (this.GetMapMode() == VEMapMode.Mode3D)
{
var a = this.vemapcontrol.Get3DControl();
if (a != null)
a.ShowNavigationControl = b;
}
}
);
VEMap.prototype.Show3DNavigationControl = (function ()
{
this._Toggle3DNavigationControl(true);
}
);
VEMap.prototype.Hide3DNavigationControl = (function ()
{
this._Toggle3DNavigationControl(false);
}
);
VE_SetModuleStatus(VE_ModuleName.API3D, "loaded");
VEMap.prototype.Init3D = (function ()
{
MVC_Init_AbstractView_Shared();
MVC_Init_ViewFacade_Shared();
MVC_Init_View3D_Shared();
MVC_Init_AbstractView_Drawing();
MVC_Init_ViewFacade_Drawing();
MVC_Init_FlatlandView_Drawing();
MVC_Init_View3D_Drawing();
}
);
if (typeof closeDependency != "undefined")
JavaScript -
http://localhost:8080/virtualEarth-sample/
Event thread: load
Error:
name: TypeError
message: Statement on line 1: Could not convert undefined or null to object
Backtrace:
Line 1 of linked script
http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6
var a = this;
this.ID = e;
this.GUID = VENetwork.GetExecutionID();
this.ClientToken = null;
if (Msn.VE.API.Globals.vemapinstances == null || Msn.VE.API.Globals.vemapinstances ==
"undefined")
Msn.VE.API.Globals.vemapinstances[this.GUID] = a;
this.requestQueue = [];
this.preInitCustomEvents = [];
this.network = new VENetwork();
this.mapelement = $ID(e);
this.pushpins = [];
this.DisambiguationCallback = null;
this.ShowMessageBox = true;
if (this.mapelement == null)
this.m_vedirectionsmanager = null;
this._dm = this.m_vedirectionsmanager;
this.m_routemanager = null;
this.m_vesearchmanager = null;
this._sm = this.m_vesearchmanager;
this.m_vemessage = new VEMessage(this);
this.m_veambiguouslist = new VEAmbiguouslist(this);
var c = new VELatLongFactory(new VELatLongFactorySpecFromMap(this)), b = new _xy1();
this.queueEventInitialized = false;
this.RequestQueueEnabled = true;
this.queueEventInitialized = false;
windowWidth = GetWindowWidth();
windowHeight = GetWindowHeight();
scrollbarWidth = GetScrollbarWidth();
this.dashboardSize = Msn.VE.DashboardSize.Normal;
this.dashboardVersion = 6;
this._showDashboard = true;
this.LoadMap = (function (c,h,j,i,d,g,e)
{
if (! a)
throw new VEException("VEMap:LoadMap", "err_notinitializedmap",
L_notinitialized_text);
if (typeof d != "undefined" && d != null)
{
VEValidator.ValidateMapMode(d, "mapMode");
this.mapMode = d;
}
if (c != null && c != "undefined")
{
VEValidator.ValidateObject(c, "veLatLong", VELatLong,
"VELatLong");
var f = b.Decode(c);
this.initialLatitude = f.Latitude;
this.initialLongitude = f.Longitude;
}
this.fixedMap = i;
this.initialZoomLevel = h;
this.initialMapStyle = j;
this.showMapModeSwitch = g;
if (e != null && typeof e != "undefined")
this.tileBuffer = e;
this.veonmaploadevent = this.onLoadMap;
this.mapelement.innerHTML = "";
this.mapelement.innerHTML = "<table width=100% height=100%><tr
valign=middle><td align=center valign=middle><h3>" + L_loading_text +
"</h3></td></tr></table>";
this.InitializeMap();
this.vemapcontrol.AttachEvent("onstartpan", (function ()
{
if (window.ero)
window.ero.hide(true);
}
));
}
);
this._ReArrangeControls = (function ()
{
if (a.controlzIndexes != null && a.controls != null &&
a.controlzIndexes.length == a.controls.length)
{
var d = a.controls.length;
for (var b = 0;b < d;b++)
{
document.body.removeChild(a.controls[b]);
var c = a.controls[b];
c.style.top = a.controltops[b];
c.style.left = a.controllefts[b];
a._AddControlInner(c, a.controlzIndexes[b]);
}
}
}
);
this._ClearView = (function ()
{
VEPushpin.Hide();
a.m_vemessage.Hide();
if (typeof VE_TrafficManager != "undefined" &&
VE_TrafficManager.turnedOn == true)
VE_TrafficManager._ViewChangeNotification();
}
);
this._RefreshLayers = (function ()
{
if (a.vemapcontrol.GetMapMode() != 2)
a.vemapcontrol.PanView();
if (typeof VE_TrafficManager != "undefined" &&
VE_TrafficManager.turnedOn == true)
VE_TrafficManager._ViewChangeNotification();
}
);
this.SetViewport = (function (a,c,b,d)
{
return this.vemapcontrol.SetViewport(a, c, b, d);
}
);
this.GetCenter = (function ()
{
var b = this.vemapcontrol.GetCenterLatitude(), d =
this.vemapcontrol.GetCenterLongitude(), a = c.CreateVELatLong(b, d);
return a;
}
);
this.GetMapView = (function ()
{
var e;
if (this.vemapcontrol.IsModeEnabled(Msn.VE.MapActionMode.Mode3D))
{
var d = this.vemapcontrol.Get3DVisibleArea(true);
if (d == null)
return null;
var b = d[0], g = d[1], a = d[2], f = d[3];
e = new VELatLongRectangle(c.CreateVELatLong(b.latitude, b.longitude),
c.CreateVELatLong(a.latitude, a.longitude), c.CreateVELatLong(g.latitude, g.longitude),
c.CreateVELatLong(f.latitude, f.longitude));
}
else
{
var b = this.vemapcontrol.PixelToLatLong(new VEPixel(0, 0)), a =
this.vemapcontrol.PixelToLatLong(new VEPixel(this.GetWidth(), this.GetHeight()));
if (b == null || a == null)
return null;
e = new
VELatLongRectangle(c.CreateVELatLong(this.vemapcontrol.ClipLatitude(b.latitude),
this.vemapcontrol.ClipLongitude(b.longitude)),
c.CreateVELatLong(this.vemapcontrol.ClipLatitude(a.latitude),
this.vemapcontrol.ClipLongitude(a.longitude)));
}
return e;
}
);
this.PixelToLatLong = (function (b,a,d)
{
if (a != null)
{
VEValidator.ValidateNonNegativeInt(a, "zoomLevel");
a = parseInt(a);
}
if (d)
{
VEValidator.ValidateObjectArray(b, "pixelArray", VEPixel, "VEPixel
array");
VEValidator.ValidateFunction(d, "callback");
if (typeof b.length != "undefined" && b.length > 0)
this.PixelToLatLongAsync(b, a, d);
}
else
{
VEValidator.ValidateObject(b, "pixel", VEPixel, "VEPixel");
var e = this.vemapcontrol.PixelToLatLong(b, a), f = c.CreateVELatLong(e.latitude,
e.longitude);
return f;
}
}
);
this.PixelToLatLongAsync = (function (a,b,c)
{
this.vemapcontrol.PixelToLatLongAsync(a, b, c);
}
);
this.SetCenter = (function (c)
{
VEValidator.ValidateObject(c, "veLatLong", VELatLong, "VELatLong");
var a = b.Decode(c), d =
"%0dev.virtualearth.net/legacyService/ElevatedLoc.ashx";
if (d.length > 0)
this._QueueRequest(this.vemapcontrol.SetCenterAccurate, a.Latitude, a.Longitude);
else
this._QueueRequest(this.vemapcontrol.SetCenter, a.Latitude, a.Longitude);
}
);
this.SetCenterClassic = (function (c)
{
VEValidator.ValidateObject(c, "veLatLong", VELatLong, "VELatLong");
var a = b.Decode(c);
this._QueueRequest(this.vemapcontrol.SetCenter, a.Latitude, a.Longitude);
}
);
this.SetCenterAndZoom = (function (c,d)
{
VEValidator.ValidateObject(c, "veLatLong", VELatLong, "VELatLong");
VEValidator.ValidateNonNegativeInt(d, "zoomLevel");
var a = b.Decode(c);
this._QueueRequest(this.vemapcontrol.SetCenterAndZoom, a.Latitude, a.Longitude, d);
return true;
}
);
this.GetMouseWheelZoomToCenter = (function ()
{
return a.vemapcontrol.GetMouseWheelZoomToCenter();
}
);
this.SetMouseWheelZoomToCenter = (function (b)
{
return a.vemapcontrol.SetMouseWheelZoomToCenter(b);
}
);
this.IncludePointInView = (function (c)
{
VEValidator.ValidateObject(c, "veLatLong", VELatLong, "VELatLong");
var a = b.Decode(c);
return this.vemapcontrol.IncludePointInViewport(a.Latitude, a.Longitude);
}
);
this.GetOffsetX = (function ()
{
return a.vemapcontrol.GetOffsetX();
}
);
this.GetOffsetY = (function ()
{
return a.vemapcontrol.GetOffsetY();
}
);
this.getSvgLayer = (function ()
{
return a.vemapcontrol.getSvgLayer();
}
);
this.resizeSVG = (function ()
{
return a.vemapcontrol.resizeSVG();
}
);
this.GetsvgDiv = (function ()
{
return a.vemapcontrol.GetsvgDiv();
}
);
this.LatLongToPixel = (function (c,a,d)
{
if (a != null)
{
VEValidator.ValidateNonNegativeInt(a, "zoomLevel");
a = parseInt(a);
}
if (d)
{
VEValidator.ValidateObjectArray(c, "veLatLongArray", VELatLong,
"VELatLong array");
VEValidator.ValidateFunction(d, "callback");
this.LatLongToPixelAsync(c, a, d);
}
else
{
VEValidator.ValidateObject(c, "veLatLong", VELatLong,
"VELatLong");
var e = b.Decode(c), f = new Msn.VE.LatLong(e.Latitude, e.Longitude);
return this.vemapcontrol.LatLongToPixel(f, a);
}
}
);
this.LatLongToPixelAsync = (function (d,f,g)
{
var e = [];
for (var a = 0;a < d.length;++a)
{
var c = b.Decode(d[a]);
e[a] = new Msn.VE.LatLong(c.Latitude, c.Longitude);
}
this.vemapcontrol.LatLongToPixelAsync(e, f, g);
}
);
this.PanToLatLong = (function (c)
{
VEValidator.ValidateObject(c, "veLatLong", VELatLong, "VELatLong");
var a = b.Decode(c);
if (this.GetMapMode() == Msn.VE.MapActionMode.Mode2D)
{
a.Latitude = this.vemapcontrol.ClipLatitude(a.Latitude);
a.Longitude = this.vemapcontrol.ClipLongitude(a.Longitude);
}
this._QueueRequest(this.vemapcontrol.PanToLatLong, a.Latitude, a.Longitude);
return true;
}
);
this.SetMapView = (function (a)
{
VEValidator.ValidateNonNull(a, "arrObject");
if (VEMapViewSpecification.prototype.isPrototypeOf(a))
{
var h = b.Decode(a.LatLong);
view = new Msn.VE.MapView(this.vemapcontrol);
view.SetCenterLatLong(new Msn.VE.LatLong(h.Latitude, h.Longitude));
view.SetMapStyle(this.vemapcontrol.GetMapStyle());
if (a.ZoomLevel != null)
view.SetZoomLevel(a.ZoomLevel);
else
view.SetZoomLevel(this.vemapcontrol.GetZoomLevel());
if (a.Altitude != null)
view.SetAltitude(a.Altitude);
if (a.Heading != null)
view.SetDirection(a.Heading);
if (a.Pitch != null)
view.SetTilt(a.Pitch);
this._QueueRequest(this.vemapcontrol.SetView, view);
}
else
if (VELatLongRectangle.prototype.isPrototypeOf(a))
{
var f = b.Decode(a.TopLeftLatLong), g = b.Decode(a.BottomRightLatLong);
this.vemapcontrol.SetViewport(f.Latitude, f.Longitude, g.Latitude, g.Longitude);
}
else
{
var e = [];
for (var c = 0;c < a.length;c++)
{
VEValidator.ValidateNonNull(a[c], "arrObject[" + c +
"]");
if (VELatLong.prototype.isPrototypeOf(a[c]))
d([a[c]], e);
else
if (VEShape.prototype.isPrototypeOf(a[c]))
d(a[c].GetPoints(), e);
else
if (VEPolyline.prototype.isPrototypeOf(a[c]))
d(a[c].GetLatLongs(), e);
else
if (VEPolygon.prototype.isPrototypeOf(a[c]))
d(a[c].GetLatLongs(), e);
else
if (VELatLongRectangle.prototype.isPrototypeOf(a[c]))
d([a[c].TopLeftLatLong, a[c].BottomRightLatLong], e);
else
throw new VEException("VEMap:SetMapView",
"err_invalidargument", L_invalidargument_text.replace("%1",
"arrObject").replace("%2", "object"));
}
this._QueueRequest(this.vemapcontrol.SetBestMapView, e);
}
return true;
}
);
this.AddPushpin = (function (a)
{
if (typeof a == "object" && ! (a instanceof VEPushpin))
{
var e = new VEShape(VEShapeType.Pushpin, a);
this.AddShape(e);
return e;
}
VEValidator.ValidateObject(a, "vePushpin", VEPushpin, "VEPushpin");
var f = this.pushpins.length;
for (var d = 0;d < f;d++)
{
var g = this.pushpins[d];
if (g.ID == a.ID)
throw new VEException("VEMap:AddPushpin",
"err_invalidpushpinid", L_invalidpushpinid_text);
}
this.pushpins.push(a);
a._SetMapInstance(this);
var c = b.Decode(a.LatLong);
if (this.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
this.m_vegraphicsmanager.Add3DPushpin(a.ID, c.Latitude, c.Longitude, 25, 25,
"VEAPI_Pushpin", a, Msn.VE.API.Globals.vepushpinpanelzIndex - 1);
else
this.vemapcontrol.AddPushpin(a.ID, c.Latitude, c.Longitude, 25, 25,
"VEAPI_Pushpin", a.GetContent(), Msn.VE.API.Globals.vepushpinpanelzIndex - 1);
}
);
this._DisambiguateCallback = "VEMap._GetMapFromGUID(" + this.GUID +
")._sm.FindAmbiguousListCallBack";
this._Disambiguate = (function (f,b,d,c,e)
{
var a = $ID(this.ID + "_vewhereinput");
if (a)
a.value = unescape(f);
this.vemapcontrol.SetViewport(b, d, c, e);
if (this.m_vesearchmanager != null && this.lastwhatsearch != null &&
this.lastwhatsearch.length > 0)
this.Find(this.lastwhatsearch, null, 1, this.m_vesearchmanager.vesearchcallback);
}
);
this._DoFind = (function ()
{
try
{
this.lastwhatsearch = ($ID(this.ID + "_vewhatinput")).value;
this.lastwheresearch = ($ID(this.ID + "_vewhereinput")).value;
this.Find(this.lastwhatsearch, this.lastwheresearch);
}
catch (a)
{
this.ShowMessage(a.message);
}
}
);
this.UpdateAmbiguousList = (function (a)
{
if (this.m_vesearchmanager)
this.m_vesearchmanager.UpdateAmbiguousList(a);
}
);
this.Dispose = (function ()
{
try
{
if (a.vemapcontrol != null)
{
a.vemapcontrol.DetachEvent("onchangeview", a._ClearView);
a.vemapcontrol.DetachEvent("onresize", a._ReArrangeControls);
a.vemapcontrol.DetachEvent("onendpan", a._RefreshLayers);
a.vemapcontrol.DetachEvent("oninitmode", a._EROHouseKeeping);
}
a.vemapcontrol.DetachEvent("onclick", VEPushpin.Hide);
var c = a.controlzIndexes.length;
for (var b = 0;b < c;b++)
a.controlzIndexes.pop();
var c = a.controls.length;
for (var b = 0;b < c;b++)
{
try
{
document.body.removeChild(a.controls[b]);
}
catch (g)
{}
a.controls[b] = null;
a.controltops[b] = null;
a.controllefts[b] = null;
}
a.controls = null;
a.controlzIndexes = null;
if (a.m_velayermanager)
a.m_velayermanager.Dispose();
if (a.m_vesearchmanager)
{
a.m_vesearchmanager.Dispose();
a.m_vesearchmanager = null;
a._sm = null;
}
if (a.m_routemanager)
{
a.m_routemanager.Dispose();
a.m_routemanager = null;
}
for (var b = 0;b < a.pushpins.length;++b)
if (a.pushpins[b] != null && a.pushpins[b] != "undefined")
{
if (a.GetMapMode() == Msn.VE.MapActionMode.Mode3D)
a.m_vegraphicsmanager.Remove3DPushpin(a.pushpins[b].ID);
a.pushpins[b].Dispose();
a.pushpins[b] = null;
}
a.pushpins = null;
if (a.m_vegraphicsmanager)
a.m_vegraphicsmanager.Dispose();
if (a.m_vetilesourcemanager)
a.m_vetilesourcemanager.Dispose();
a.m_vemessage.Dispose();
a.m_veambiguouslist.Dispose();
try
{
if (typeof VE_TrafficManager != "undefined")
VE_TrafficManager.Destroy();
}
catch (g)
{}
Msn.VE.API.Globals.vemapinstances[a.GUID] = null;
a.veonmaploadevent = null;
a.veloadingdiv = null;
a.vemapcontrol.Destroy();
try
{
var f = $ID(a.ID);
f.innerHTML = "";
}
catch (g)
{}
a.ClientToken = null;
a.ID = null;
a.vemapcontrol = null;
var e = 0;
for (d in Msn.VE.API.Globals.vemapinstances)
if (typeof Msn.VE.API.Globals.vemapinstances[d] != "function" &&
Msn.VE.API.Globals.vemapinstances[d] != null)
++e;
if (e == 0)
{
VE_Help.Destroy();
VEPushpin.DisposeERO();
Msn.VE.API.Globals.Dispose();
}
Msn.VE.API.Globals.vemapinstances[this.GUID] = null;
var c = a.preInitCustomEvents.length;
for (var b = 0;b < c;++b)
a.preInitCustomEvents.pop();
a.preInitCustomEvents = null;
a.requestQueue = null;
a.network = null;
a.mapelement = null;
a.pushpins = null;
a = null;
}
catch (g)
{}
}
);
this.GetDashboardSize = (function ()
{
return this.dashboardSize;
}
);
Line 7 of linked script
http://localhost:8080/virtualEarth-sample/a4j_3_2_0-SNAPSHOTscript/virtua...
window[mapVar] = new VEMap(clid);
Line 3 of inline#1 script in
http://localhost:8080/virtualEarth-sample/
__initVirtualEarthdiv("map", "gm");
Line 3888 of linked script
http://localhost:8080/virtualEarth-sample/a4j_3_2_0-SNAPSHOTorg.ajax4jsf....
handler.call(element, event);
At unknown location
[statement source code not available]
virtualEarth: is not displayed in opera
---------------------------------------
Key: RF-2670
URL:
http://jira.jboss.com/jira/browse/RF-2670
Project: RichFaces
Issue Type: Bug
Affects Versions: 3.2.0
Reporter: Aleksej Yanul
Assigned To: Pavel Yaschenko
Priority: Minor
Fix For: 3.2.0
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira