﻿// Copyright (c) Microsoft Corporation. All rights reserved.
/*if (!window.Microsoft) { window.Microsoft = { __namespace: true }; }
if (!window.Microsoft.Live) { window.Microsoft.Live = { __namespace: true }; }
if (!window.Microsoft.Live.Core) { window.Microsoft.Live.Core = { __namespace: true }; }
Microsoft.Live.Core.Loader = function () { this._detectBrowsers(); this._addDocumentReadyListener(); this._resolveMarket(); this._resolveDirection(); this._detectSecureConnection(); this._runtimeCheck(); }
Microsoft.Live.Core.Loader.prototype = { _loadInitiated: false, _paused: false, _processing: false, _processScheduled: false, _loadRequests: [], _readyRequests: [], _errorRequests: [], _domRequests: [], _documentReady: false, _browser: {}, _iframeResources: [], _secureConnection: false, _settingRegEx: /(\{[^\}^\{]+\})/g, _startTime: (new Date()).getTime(), _loadTime: null, _validRuntime: true, _settings: { environment: "production", direction: "ltr", configuration: "retail", market: null, resourceMarket: null, customSettings: "" }, _supportedMarkets: ["ar", "ar-ploc-sa", "bg", "ca", "cs", "da", "de", "de-ploc-de", "el", "en", "es", "et", "eu", "fi", "fr", "gu", "he", "hi", "hr", "hu", "id", "it", "ja", "ja-ploc-jp", "kn", "ko", "lt", "lv", "ml", "mr", "ms", "nb-no", "nl", "pl", "pt-br", "pt-pt", "ro", "ru", "sk", "sl", "sr", "sr-cyrl-cs", "sv", "ta", "te", "th", "tr", "uk", "vi", "zh-cn", "zh-hk", "zh-tw"], _resources: { "microsoft_ajax_core": { async: true, filename: "{messenger.baseScriptUrl}/MicrosoftAjaxCore.js", type: "script", isLoaded: !!(window.Type && window.Type.registerClass && window.Sys && window.Sys.Debug), dependencies: [] }, "microsoft_ajax_compat": { async: true, filename: "{messenger.baseScriptUrl}/MicrosoftAjaxCompat.js", type: "script", browsers: function (b) { return !b["ie"]; }, dependencies: [] }, "microsoft_ajax_extensions": { async: true, filename: "{messenger.baseScriptUrl}/MicrosoftAjaxExt.js", type: "script", dependencies: ["microsoft_ajax_core", "microsoft_ajax_compat"] }, "microsoft_ajax_componentmodel": { async: true, filename: "{messenger.baseScriptUrl}/MicrosoftAjaxComponentModel.js", type: "script", isLoaded: !!(window.Sys && window.Sys.Component), dependencies: ["microsoft_ajax_core"] }, "microsoft_ajax_serialization": { async: true, filename: "{messenger.baseScriptUrl}/MicrosoftAjaxSerialization.js", type: "script", isLoaded: !!(window.Sys && window.Sys.Serialization), dependencies: ["microsoft_ajax_core"] }, "microsoft_ajax_templates": { async: true, filename: "{messenger.baseScriptUrl}/MicrosoftAjaxTemplates.js", type: "script", isLoaded: !!(window.Sys && window.Sys.UI && window.Sys.UI.Template), dependencies: ["microsoft_ajax_componentmodel", "microsoft_ajax_serialization"] }, "microsoft_ajax_globalization": { async: true, filename: "{messenger.baseScriptUrl}/MicrosoftAjaxGlobalization.js", type: "script", isLoaded: !!(Number._parse), dependencies: ["microsoft_ajax_core"] }, "json_parser": { async: true, filename: "{messenger.baseScriptUrl}/json2.js", type: "script", isLoaded: !!(window.JSON), dependencies: []} }, addScript: function (scriptName, url, dependencies) { this._addFeature(scriptName, "script", url, dependencies); }, addStyleSheet: function (styleSheetName, url, dependencies) { this._addFeature(styleSheetName, "stylesheet", url, dependencies); }, get_settings: function () { return this._settings; }, get_documentReady: function () { return this._documentReady; }, set_documentReady: function () { }, get_scriptsLoadTime: function () { return this._loadTime; }, getIframeContainer: function (resourceId) { var resource = this._resources[resourceId]; if (resource && resource.containerId) { for (var index = this._iframeResources.length - 1; index >= 0; index--) { if (this._iframeResources[index].containerId == resource.containerId) { return this._iframeResources[index].frameContainer; } } } return null; }, initialize: function (settings) { if (!settings || !this._validRuntime) { return; } this._settings["customSettings"] = this._serializeSettings(this._settings["customSettings"], settings); if (this._loadInitiated) { throw new Error("Cannot invoke initialize() after load() has been invoked"); } if (settings.environment && settings.environment != "production") { for (var setting in this._settings) { var settingItem = this._settings[setting]; if (!settingItem) { continue; } var environmentSettings = settingItem[settings.environment]; if (environmentSettings) { for (var envSetting in environmentSettings) { settingItem[envSetting] = environmentSettings[envSetting]; } break; } } } for (var newSetting in settings) { var subkeys = newSetting.split('.'); var qualifier = subkeys.pop(); var subSetting = this._getSubSetting(subkeys); if (!subSetting || typeof (subSetting[qualifier]) == "undefined") { throw new Error("Invalid setting: " + newSetting); } if (newSetting == "market") { this._tryUpdateMarket(settings[newSetting]); } else { subSetting[qualifier] = settings[newSetting]; } } for (var setting in this._settings) { if (this._settings[setting].updateSettings) { this._settings[setting].updateSettings(this._settings, this._resources); } } }, load: function (features, callback) { if (!this._validRuntime) { return; } if (typeof (features) == "string") { features = [features]; } if (!features || features.length <= 0) { throw new Error("No features provided"); } var resources = []; for (var i = 0; i < features.length; i++) { if (features[i].indexOf('_') >= 0) { throw new Error("Feature '%1' does not exist".replace("%1", features[i])); } var resource = this._normalizeName(features[i]); if (!this._resources[resource]) { throw new Error("Feature '%1' does not exist".replace("%1", resource)); } if (this._resources[resource].httpOnly && this._secureConnection) { throw new Error("Feature '%1' is not supported in an HTTPS environment".replace("%1", resource)); } resources.push(resource); } this._loadInitiated = true; this._loadRequests.push({ "resources": resources, "callback": callback }); this._process(); }, onReady: function (callback) { if (!callback) { throw new Error("No callback provided"); } if (this._loadInitiated && (this._loadRequests.length == 0)) { this._invokeCallback(callback); return; } this._readyRequests.push({ "callback": callback }); }, onError: function (callback) { if (!callback) { throw new Error("No callback provided"); } this._errorRequests.push({ "callback": callback }); }, onDocumentReady: function (callback) { if (!callback) { throw new Error("No callback provided"); } if (this._documentReady) { this._invokeCallback(callback); return; } this._domRequests.push({ "callback": callback }); }, pause: function () { this._paused = true; }, resume: function () { this._paused = false; this._process(); }, onResourceAvailable: function (resourceName, callback) { var resource = this._resources[resourceName]; if (!resource) { return; } resource.readyState = "available"; resource.onAvailableCallback = callback || null; }, _getResourceName: function (resource) { for (var resourceName in this._resources) { if (this._resources[resourceName] === resource) { return resourceName.replace(/_/g, "."); } } return null; }, _addFeature: function (featureName, featureType, url, dependencies) { if (!featureName || featureName.length == 0) { throw new Error("featureName must not be empty"); } if (featureName.indexOf('_') >= 0) { throw new Error("featureName cannot contain '_'"); } if (!url || url.length == 0) { throw new Error("fileName must not be empty"); } featureName = this._normalizeName(featureName); if (this._resources[featureName]) { throw new Error("Feature already exists"); } var normalized = []; if (dependencies) { if (!this._isArray(dependencies)) { throw new Error("dependencies must be an array of strings"); } for (var i = 0; i < dependencies.length; i++) { normalized.push(this._normalizeName(dependencies[i])); } } this._resources[featureName] = { "url": url, "type": featureType, "dependencies": normalized }; }, _addManifest: function (manifestName, resources, settings) { if (!this._validRuntime) { return; } if (resources) { for (var resource in resources) { if (this._resources[resource]) { throw new Error("Resource '%1' already exists".replace("%1", resource)); } this._resources[resource] = resources[resource]; } } if (settings) { this._settings[manifestName] = settings; if (settings.updateSettings) { settings.updateSettings(this._settings, this._resources, null); } } }, _normalizeName: function (name) { return name.toLowerCase().replace(/\./g, "_"); }, _process: function () { if (this._paused) { return; } if (this._processing) { this._processScheduled = true; return; } this._processing = true; for (var i = 0; i < this._loadRequests.length; i++) { var loadRequest = this._loadRequests[i]; var pendingCount = 0; for (var j = 0; j < loadRequest.resources.length; j++) { pendingCount += this._loadResources(this._resources[loadRequest.resources[j]]); } if ((pendingCount == 0) && (!this._loadTime)) { this._loadTime = (new Date()).getTime() - this._startTime; } if ((pendingCount == 0) && this._documentReady) { if (loadRequest.callback) { this._invokeCallback(loadRequest.callback); } this._loadRequests.splice(i--, 1); } } if (this._loadRequests.length == 0) { while (this._readyRequests.length > 0) { var readyRequest = this._readyRequests.shift(); this._invokeCallback(readyRequest.callback); } } this._processing = false; if (this._processScheduled) { this._processScheduled = false; this._process(); } }, _loadResources: function (resource) { var pendingCount = 0; switch (resource.readyState) { case "loaded": break; case "loading": pendingCount = 1; if (resource.async) { pendingCount += this._loadResourceDependencies(resource); } break; case "available": pendingCount = this._loadResourceDependencies(resource); if (pendingCount == 0) { if (resource.onAvailableCallback && !resource.onAvailableCallbackCalled) { resource.onAvailableCallbackCalled = true; resource.onAvailableCallback.call(); } resource.readyState = "loaded"; } else { pendingCount++; } break; default: pendingCount = this._loadResourceDependencies(resource); if (pendingCount == 0 || resource.async) { this._loadResource(resource); pendingCount++; } break; } return pendingCount; }, _loadResourceDependencies: function (resource) { var pendingCount = 0; for (var i = 0; i < resource.dependencies.length; i++) { pendingCount += this._loadResources(this._resources[resource.dependencies[i]]); } return pendingCount; }, _loadResource: function (resource) { resource.readyState = "loading"; if (!resource.filename && !resource.url) { this._onResourceLoaded(resource); return; } if (!this._browserRequires(resource)) { this._onResourceLoaded(resource); return; } switch (resource.type) { case "script": this._loadScript(resource); break; case "stylesheet": this._loadStyleSheet(resource); break; case "channeliframe": this._loadChannelIFrame(resource); break; } }, _browserRequires: function (resource) { if (resource.browsers) { return resource.browsers(this._browser); } return true; }, _loadScript: function (resource) { if (resource.isLoaded) { this._onResourceLoaded(resource); return; } var loader = this; var element = document.createElement("SCRIPT"); if (this._browser.ie) { element.attachEvent("onreadystatechange", function () { loader._onScriptLoad(window.event, resource); }); } else { element.readyState = "complete"; element.addEventListener("load", function (e) { loader._onScriptLoad(e, resource); }, false); element.addEventListener("error", function (e) { loader._onScriptLoad(e, resource); }, false); } if (resource.async) { element.setAttribute("async", "async"); } element.type = "text/javascript"; element.src = this._getResourceUrl(resource); document.getElementsByTagName("HEAD")[0].appendChild(element); }, _loadChannelIFrame: function (resource) { if (!resource.containerId || !resource.filename) { this._onResourceLoaded(resource); return; } var url = this._getResourceUrl(resource); var frameContainer = document.getElementById(resource.containerId); if (!frameContainer) { var controlElement = document.createElement("div"); controlElement.id = resource.containerId; controlElement.style.height = "1pt"; controlElement.style.width = "1pt"; controlElement.style.position = "absolute"; controlElement.style.top = "-100px"; frameContainer = controlElement; } var iframe = document.createElement("iframe"); iframe.frameBorder = "0"; iframe.style.width = "100%"; iframe.style.height = "100%"; iframe.src = url; iframe.id = resource.frameId; frameContainer.appendChild(iframe); resource.frameContainer = frameContainer; this._iframeResources.push(resource); this._appendIFrameResources(); this._onResourceLoaded(resource); }, _loadStyleSheet: function (resource) { var element = document.createElement("LINK"); element.type = "text/css"; element.rel = "stylesheet"; element.media = "screen"; element.href = this._getResourceUrl(resource); this._appendChild(document.getElementsByTagName("HEAD")[0], element); this._onResourceLoaded(resource); }, _lookupSettings: function (setting, url) { var key = setting.substring(1, setting.length - 1); var subkeys = key.split('.'); if (subkeys[0] == "resource") { return setting; } var qualifier = subkeys.pop(); var subSetting = this._getSubSetting(subkeys); if (subSetting) { var settingVal = subSetting[qualifier]; if (this._isArray(settingVal)) { return this._hashSelect(settingVal, url) } if (settingVal || typeof (settingVal) == "boolean" || typeof (settingVal) == "number") { return subSetting[qualifier]; } } return ""; }, _isArray: function (value) { return (value) && (Object.prototype.toString.apply(value) === "[object Array]"); }, _hashSelect: function (list, url) { var lastIndex = url.lastIndexOf('/'); if (lastIndex < 0) { lastIndex = 0; } else { lastIndex++; } var hash = this._computeFastHash(url.substring(lastIndex)); return list[hash % list.length]; }, _computeFastHash: function (str) { if (!str || !str.length) { return 0; } var hash = 5381; for (var i = 0, len = str.length; i < len; i++) { hash = ((hash << 5) + hash) + str.charCodeAt(i); } if (hash < 0) { hash *= -1; } return hash; }, _getSubSetting: function (subkeys) { var setting = this._settings; if (!subkeys.length) { return setting; } for (var i = 0; i < subkeys.length; i++) { setting = setting[subkeys[i]]; if (!setting) { return null; } } return setting; }, _getResourceUrl: function (resource) { if (resource.url) { return resource.url; } return this._getUrl(resource.filename); }, _getUrl: function (filename) { var url = filename; var l = this; url = url.replace(this._settingRegEx, function (setting) { return l._lookupSettings(setting, filename); }); url = url.replace(this._settingRegEx, function (setting) { return l._lookupSettings(setting, filename); }); url = url.replace(/\/\//g, "/").replace(/:\//, "://"); return url; }, _onScriptLoad: function (e, resource) { if (resource.readyState == "loaded") { return; } var element = e.srcElement || e.currentTarget; if (!element.readyState) { element = e.currentTarget; } if ((element.readyState != "complete") && (element.readyState != "loaded")) { return; } if (e.type == "error") { this._onResourceFailed(resource); } else if (resource.async && resource.readyState != "available") { this._onResourceFailed(resource); } else if (resource.async) { this._onResourceAvailable(resource); } else { this._onResourceLoaded(resource); } }, _onResourceLoaded: function (resource) { resource.readyState = "loaded"; this._process(); }, _onResourceAvailable: function (resource) { this._process(); }, _onResourceFailed: function (resource) { var name = this._getResourceName(resource); for (var i = 0; i < this._errorRequests.length; i++) { var callback = this._errorRequests[i].callback; this._invokeCallback(function () { callback(name); }); } }, _normalizeMarket: function (market) { market = market || ""; market = market.toLowerCase(); if (this._getResourceMarket(market)) { return market; } return null; }, _getResourceMarket: function (market) { if (this._supportsMarket(market)) { return market; } var idx = market.lastIndexOf("-"); if (idx < 0) { return null; } market = market.substr(0, idx); if (this._supportsMarket(market)) { return market; } return null; }, _supportsMarket: function (market) { var low = 0; var high = this._supportedMarkets.length - 1; while (low <= high) { var i = Math.floor((low + high) / 2); var curr = this._supportedMarkets[i]; if (curr < market) { low = i + 1; continue; } if (curr > market) { high = i - 1; continue; } return true; } return false; }, _resolveDirection: function () { var direction = "ltr"; var elements = document.getElementsByTagName("html"); if (elements && elements.length > 0) { direction = elements[0].getAttribute("dir") || ""; } direction = direction.toLowerCase(); switch (direction) { case "ltr": case "rtl": this._settings.direction = direction; break; } }, _resolveMarket: function (settings) { var market = ""; if (settings) { if (this._tryUpdateMarket(settings.market)) { return; } } if (this._settings.market) { return; } var elements = document.getElementsByTagName("html"); var element = (elements && elements.length > 0) ? elements[0] : null; if (element) { market = element.getAttribute("xml:lang") || ""; } if (this._tryUpdateMarket(market)) { return; } if (element) { market = element.getAttribute("lang") || ""; } if (this._tryUpdateMarket(market)) { return; } this._tryUpdateMarket("en-us"); }, _tryUpdateMarket: function (market) { market = this._normalizeMarket(market); if (market) { this._settings.market = market; this._settings.resourceMarket = this._getResourceMarket(market); return true; } return false; }, _detectBrowsers: function () { var ua = navigator.userAgent.toLowerCase(); this._browser = { "firefox": /firefox/.test(ua), "firefox1.5": /firefox\/1\.5/.test(ua), "firefox2": /firefox\/2/.test(ua), "firefox3": /firefox\/3/.test(ua), "ie": /msie/.test(ua) && !/opera/.test(ua), "ie6": /msie 6/.test(ua) && !/opera/.test(ua), "ie7": /msie 7/.test(ua) && !/opera/.test(ua), "ie8": /trident\/4/.test(ua) && (document.documentMode == 8) && !/opera/.test(ua), "ie8compat": /trident\/4/.test(ua) && (document.documentMode <= 7) && !/opera/.test(ua), "opera": /opera/.test(ua), "webkit": /webkit/.test(ua) }; }, _detectSecureConnection: function () { this._secureConnection = document.location.protocol.toLowerCase() == "https:"; }, _addDocumentReadyListener: function () { var loader = this; if (document.body) { switch (document.readyState) { case "complete": this._onDocumentReady(); return; case "loaded": if (this._browser.webkit) { this._onDocumentReady(); return; } break; case "interactive": case undefined: if (this._browser.firefox) { this._onDocumentReady(); return; } break; } } if (document.addEventListener) { document.addEventListener("DOMContentLoaded", function () { loader._onDocumentReady(); }, false); document.addEventListener("load", function () { loader._onDocumentReady(); }, false); } else if (window.attachEvent) { window.attachEvent("onload", function () { loader._onDocumentReady(); }); } if (this._browser.ie) { document.attachEvent("onreadystatechange", function () { if (document.readyState === "complete") { document.detachEvent("onreadystatechange", arguments.callee); loader._onDocumentReady(); } }); var topLevel = false; try { topLevel = window.frameElement == null; } catch (e) { } if (topLevel && document.documentElement.doScroll) { this._doScrollCheck(); } } }, _doScrollCheck: function () { if (this._documentReady) { return; } try { document.documentElement.doScroll("left"); } catch (e) { var loader = this; setTimeout(function () { loader._doScrollCheck(); }, 1); return; } this._onDocumentReady(); }, _invokeCallback: function (callback) { window.setTimeout(callback, 1); }, _onDocumentReady: function () { if (this._documentReady == false) { this._documentReady = true; this._appendIFrameResources(); while (this._domRequests.length > 0) { var domRequest = this._domRequests.shift(); this._invokeCallback(domRequest.callback); } this._process(); } }, _appendChild: function (parent, child) { var callback = function () { parent.appendChild(child); }; if (this._browser.ie && !this._documentReady) { this._invokeCallback(callback); } else { callback(); } }, _appendIFrameResources: function () { if (this._documentReady) { var resources = this._iframeResources; for (var i = resources.length - 1; i >= 0; i--) { if (resources[i].hasParent !== true) { resources[i].hasParent = true; this._appendChild(document.body, resources[i].frameContainer); } } } }, _serializeSettings: function (serialized, settings) { if (!settings) { return serialized; } for (var setting in settings) { var separator = (serialized.length == 0) ? "" : "&"; serialized += separator + "cs:" + setting + "=" + settings[setting]; } return serialized; }, _runtimeCheck: function () { for (var ext in Object.prototype) { this._validRuntime = false; break; } } }
Microsoft.Live.Core.Loader = new Microsoft.Live.Core.Loader(); Microsoft.Live.Core.Loader._addManifest("channel", { "microsoft_live_core_channel": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Core.Channel.js", type: "script", dependencies: ["microsoft_live_core_channel_downlevel", "json_parser", "microsoft_ajax_extensions"] }, "microsoft_live_core_channel_downlevel": { async: true, filename: "{messenger.baseScriptUrl}/channel.js", type: "script", isLoaded: !!(window.postMessage), dependencies: []} }, { "uniqueIdUrl": "http://{messenger.applicationHostName}/applications/uniqid2.aspx", "flashUrl": "{messenger.resourcePath}/{messenger.version}/flashchannel.swf", "flashDisabled": false, getUniqueIdUrl: function () { return Microsoft.Live.Core.Loader._getUrl(this.uniqueIdUrl); }, getFlashUrl: function () { return Microsoft.Live.Core.Loader._getUrl(this.flashUrl); }, getFlashDisabled: function () { return this.flashDisabled.toString() == "true"; } }); Microsoft.Live.Core.Loader._addManifest("messenger", { "scriptsharp_compat": { async: true, filename: "{messenger.baseScriptUrl}/sscompat.js", type: "script", browsers: function (b) { return !b["ie"]; }, isLoaded: !!(window.ScriptLoader), dependencies: ["microsoft_ajax_globalization"] }, "scriptsharp": { async: true, filename: "{messenger.baseScriptUrl}/sscorlib.js", type: "script", isLoaded: !!(window.ScriptLoader), dependencies: ["scriptsharp_compat"] }, "messenger_iframe": { type: "channeliframe", dependencies: [], containerId: "MsgrContainer1", frameId: "ifm" + Math.floor(Math.random() * 1024 * 1024), filename: "{messenger.baseContentUrl}/Messenger.html" + "?domain={messenger.domain}" + "&env={messenger.fileHostingServer}" + "&loaderPath={messenger.loaderPath}" + "&{customSettings}" + "{messenger.channelTypeQualifier}" }, "messenger_common": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Common.js", type: "script", dependencies: ["microsoft_ajax_extensions", "json_parser", "microsoft_live_core_channel"] }, "messenger_core": { async: true, filename: "{messenger.baseLocalizedScriptUrl}/Microsoft.Live.Messenger.js", type: "script", dependencies: ["messenger_common", "messenger_services_loader", "messenger_iframe", "core_localstorage"] }, "messenger_extended": { dependencies: ["messenger_core", "messenger_services_core", "messenger_services_chat"], type: "script" }, "messenger_services_loader": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Services.Loader.js", type: "script", dependencies: ["messenger_common", "core_localstorage"] }, "messenger_services_core": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Services.Core.js", type: "script", dependencies: ["messenger_common"] }, "messenger_services_addressbook": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Services.AddressBook.js", type: "script", dependencies: ["messenger_common"] }, "messenger_services_chat": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Services.Chat.js", type: "script", dependencies: ["messenger_common"] }, "messenger_services_configuration": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Services.Configuration.js", type: "script", dependencies: ["messenger_common"] }, "messenger_services_expressionprofile": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Services.ExpressionProfile.js", type: "script", dependencies: ["messenger_common"] }, "messenger_services_identity": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Services.Identity.js", type: "script", dependencies: ["messenger_common"] }, "core_localstorage": { type: "script", dependencies: ["core_localstorage_ie", "core_localstorage_ff", "core_localstorage_plugins", "core_localstorage_userdata", "core_localstorage_webkit"] }, "core_localstorage_ie": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Core.LocalStorage.IE.js", type: "script", browsers: function (b) { return b["ie"] && window.sessionStorage; }, dependencies: ["messenger_common"] }, "core_localstorage_userdata": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Core.LocalStorage.UserData.js", type: "script", browsers: function (b) { return b["ie"] && !window.sessionStorage; }, dependencies: ["messenger_common"] }, "core_localstorage_ff": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Core.LocalStorage.FF.js", type: "script", browsers: function (b) { return b["firefox"] && window.globalStorage }, dependencies: ["messenger_common"] }, "core_localstorage_plugins": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Core.LocalStorage.Plugins.js", type: "script", browsers: function (b) { return !b["ie"] && !window.localStorage && !window.globalStorage && !window.sessionStorage; }, dependencies: ["messenger_common"] }, "core_localstorage_webkit": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Core.LocalStorage.WebKit.js", type: "script", browsers: function (b) { return b["webkit"] && window.localStorage; }, dependencies: ["messenger_common"]} }); Microsoft.Live.Core.Loader._addManifest("messenger", { "mesh": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Mesh.Framework.js", type: "script", dependencies: ["microsoft_ajax_extensions"] }, "messenger_ui_core": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.UI.Messenger.Core.js", type: "script", dependencies: ["microsoft_ajax_extensions", "messenger_core", "mesh"] }, "messenger_ui_databinding": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.UI.Messenger.DataBinding.js", type: "script", dependencies: ["microsoft_ajax_templates", "messenger_core"] }, "messenger_ui_primitives": { async: true, filename: "{messenger.baseLocalizedScriptUrl}/Microsoft.Live.UI.Messenger.Primitives.js", type: "script", dependencies: ["mesh"] }, "messenger_ui_controls": { async: true, filename: "{messenger.baseLocalizedScriptUrl}/Microsoft.Live.UI.Messenger.Controls.js", type: "script", dependencies: ["microsoft_ajax_globalization", "messenger_ui_primitives", "messenger_ui_core"] }, "messenger_ui_model": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.UI.Messenger.js", type: "script", dependencies: ["messenger_ui_controls", "microsoft_ajax_templates"] }, "messenger_ui": { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.UI.Messenger.Tags.js", type: "script", dependencies: ["messenger_ui_model"] }, "messenger_ui_styles_core": { type: "stylesheet", dependencies: ["messenger_ui_styles_core_ie6", "messenger_ui_styles_core_ie7", "messenger_ui_styles_core_ie8", "messenger_ui_styles_core_webkit", "messenger_ui_styles_core_other"] }, "messenger_ui_styles_core_ie6": { filename: "{messenger.baseStyleSheetUrl}/core.ie6.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (b) { return b["ie6"]; }, dependencies: [] }, "messenger_ui_styles_core_ie7": { filename: "{messenger.baseStyleSheetUrl}/core.ie7.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (b) { return b["ie7"] || b["ie8compat"]; }, dependencies: [] }, "messenger_ui_styles_core_ie8": { filename: "{messenger.baseStyleSheetUrl}/core.ie8.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (b) { return b["ie8"]; }, dependencies: [] }, "messenger_ui_styles_core_webkit": { filename: "{messenger.baseStyleSheetUrl}/core.webkit.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (b) { return b["webkit"]; }, dependencies: [] }, "messenger_ui_styles_core_other": { filename: "{messenger.baseStyleSheetUrl}/core.other.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (b) { return !b["ie"] && !b["webkit"]; }, dependencies: []} }); Microsoft.Live.Core.Loader._addManifest("messenger", null, { "version": "3.70.58051", "versionOverride": "3.70.58051", "localizedMarket": "other", "resourcePath": ["http://js.wlxrs.com/_D/F$Live.SiteContent.Messenger", "http://js2.wlxrs.com/_D/F$Live.SiteContent.Messenger"], "imageResourcePath": ["http://img.wlxrs.com/_D/F$Live.SiteContent.Messenger", "http://img2.wlxrs.com/_D/F$Live.SiteContent.Messenger"], "styleResourcePath": "http://css.wlxrs.com/_D/F$Live.SiteContent.Messenger", "audioResourcePath": "http://msc.wlxrs.com/_D/F$Live.SiteContent.Messenger", "applicationPath": "http://shared.live.com/_D/F$Live.SiteContent.Messenger", "applicationHostName": "settings.messenger.live.com", "consentHostName": "consent.messenger.services.live.com", "baseScriptUrl": "{messenger.resourcePath}/{messenger.version}", "baseLocalizedScriptUrl": "{messenger.resourcePath}/{messenger.version}/{resourceMarket}", "baseStyleSheetUrl": "{messenger.styleResourcePath}/{messenger.version}/resources/styles/{direction}", "baseContentUrl": "{messenger.applicationPath}/{messenger.version}", "channelTypeQualifier": "", "serviceHostName": "messenger.services.live.com", "localStorageDisabled": false, "testReportingEnabled": false, "fileHostingServer": "srs", "signInControlState": "", "dogfood": { "serviceHostName": "beta.messenger.services.live.com" }, updateSettings: function (loaderSettings, resources) { var settings = loaderSettings.messenger; var loader = Microsoft.Live.Core.Loader; var localizedStyleMarkets = ["ar", "ar-ploc-sa", "ja", "ja-ploc-jp", "gu", "he", "hi", "ko", "kn", "ml", "mr", "ta", "te", "th", "zh-hk", "zh-tw"]; if (loaderSettings.resourceMarket) { for (var i = 0; i < localizedStyleMarkets.length; i++) { if (loaderSettings.resourceMarket == localizedStyleMarkets[i]) { this.localizedMarket = loaderSettings.resourceMarket; break; } } } settings.loaderPath = encodeURIComponent(this.getResourceUrl()); settings.domain = encodeURIComponent(document.location.hostname.toLowerCase()); if (!window.postMessage) { settings.channelTypeQualifier = "#&WLIFMi=" + resources["messenger_iframe"].frameId; } }, getResourceUrl: function (relativePath) { if (!relativePath) { relativePath = ""; } var settings = Microsoft.Live.Core.Loader._settings.messenger; var path = settings.resourcePath; if (relativePath.match(/(\.jpg|\.gif|\.png)$/gi)) { path = settings.imageResourcePath; } else if (relativePath.match(/(\.mp3|\.wav)$/gi)) { path = settings.audioResourcePath; } else if (relativePath.match(/(\.html)$/gi)) { path = settings.applicationPath; } var url; if (!Microsoft.Live.Core.Loader._isArray(path)) { url = path; } else { var hash = Microsoft.Live.Core.Loader._computeFastHash(relativePath); url = path[hash % path.length]; } if (relativePath.charAt(0) == '/') { relativePath = relativePath.substring(1); } url = url + "/" + settings.version + "/" + relativePath; return url; } });
*/
if (!window.Microsoft) window.Microsoft = { __namespace: true }; if (!window.Microsoft.Live) window.Microsoft.Live = { __namespace: true }; if (!window.Microsoft.Live.Core) window.Microsoft.Live.Core = { __namespace: true }; Microsoft.Live.Core.Loader = function () { var a = this; a._detectBrowsers(); a._detectFlash(); a._detectSecureConnection(); a._addDocumentReadyListener(); a._resolveMarket(); a._resolveDirection(); a._runtimeCheck() }; Microsoft.Live.Core.Loader.prototype = { _loadInitiated: false, _skippedScanner: false, _paused: false, _processing: false, _processScheduled: false, _loadRequests: [], _readyRequests: [], _errorRequests: [], _domRequests: [], _onLoad: null, _documentReady: false, _browser: {}, _iframeResources: [], _settingRegEx: /(\{[^\}^\{]+\})/g, _startTime: (new Date).getTime(), _loadTime: null, _validRuntime: true, _resources: { Empty1: { filename: "{messenger.baseScriptUrl}/Empty.js?1", type: "script", browsers: function (a, b) { return a["ie"] && b["httpsApplication"] }, dependencies: [] }, Empty2: { filename: "{messenger.baseScriptUrl}/Empty.js?2", type: "script", browsers: function (a, b) { return a["ie"] && b["httpsApplication"] }, dependencies: []} }, _settings: { environment: "production", direction: "ltr", configuration: "release", market: "en-us", resourceMarket: "en", customSettings: "", httpsApplication: false, httpsScope: "content", compatibility: { microsoftAjaxPropertyNames: true, version: "current"} }, _supportedMarkets: ["ar", "ar-ploc-sa", "bg", "cs", "da", "de", "el", "en", "es", "et", "fi", "fr", "he", "hr", "hu", "it", "ja", "ja-ploc-jp", "ko", "lt", "lv", "nb-no", "nl", "pl", "pt-br", "pt-pt", "ro", "ru", "sk", "sl", "sr", "sv", "th", "tr", "uk", "zh-cn", "zh-hk", "zh-tw"], addScript: function (b, c, a) { this._addFeature(b, "script", c, a) }, addStyleSheet: function (a, c, b) { this._addFeature(a, "stylesheet", c, b) }, isFlashInstalled: function (a) { return a <= this._browser.flashVersion }, get_settings: function () { return this._settings }, get_onLoad: function () { return this._onLoad }, get_onLoadRegistered: function () { return this._onLoad != null }, get_documentReady: function () { return this._documentReady }, get_scriptsLoadTime: function () { return this._loadTime }, getIframeContainer: function (d) { var a = this, c = a._resources[d]; if (c && c.containerId) for (var b = a._iframeResources.length - 1; b >= 0; b--) if (a._iframeResources[b].containerId == c.containerId) return a._iframeResources[b].frameContainer; return null }, initialize: function (b) { var a = this; if (!b || !a._validRuntime) return; a._serializeSettings(b); if (b.environment && b.environment != "production") for (var d in a._settings) { var f = a._settings[d]; if (!f) continue; var e = f[b.environment]; if (e) for (var g in e) f[g] = e[g] } for (var c in b) { var j = c.split("."), i = j.pop(), h = a._getSubSetting(j); if (!h || typeof h[i] == "undefined") throw new Error("Invalid setting: " + c); switch (c) { case "market": a._tryUpdateMarket(b[c]); break; case "direction": a._tryUpdateDirection(b[c]); break; default: h[i] = b[c] } } for (var d in a._settings) a._settings[d].updateSettings && a._settings[d].updateSettings(a._settings, a._resources) }, load: function (a, g) { var b = this, e = "Feature '%1' does not exist"; if (!b._validRuntime) return; if (typeof a == "string") a = [a]; if (!a || a.length <= 0) throw new Error("No features provided"); for (var f = [], d = 0; d < a.length; d++) { if (a[d].indexOf("_") >= 0) throw new Error(e.replace("%1", a[d])); var c = b._normalizeName(a[d]); if (!b._resources[c]) throw new Error(e.replace("%1", c)); if (b._resources[c].httpOnly && b._settings.httpsApplication) throw new Error("Feature '%1' is not supported in an HTTPS environment".replace("%1", c)); f.push(c) } b._loadInitiated = true; b._loadRequests.push({ resources: f, callback: g }); b._process() }, onReady: function (b) { var a = this; if (!b) throw new Error("No callback provided"); if (a._loadInitiated && a._loadRequests.length == 0) { a._invokeCallback(b); return } a._readyRequests.push({ callback: b }) }, onError: function (a) { if (!a) throw new Error("No callback provided"); this._errorRequests.push({ callback: a }) }, onLoad: function (a) { if (!a) throw new Error("No callback provided"); this._onLoad = a; this._skippedScanner && this.fireOnLoad() }, fireOnLoad: function () { this._onLoad && this._onLoad() }, onDocumentReady: function (a) { if (!a) throw new Error("No callback provided"); if (this._documentReady) { this._invokeCallback(a); return } this._domRequests.push({ callback: a }) }, pause: function () { this._paused = true }, resume: function () { this._paused = false; this._process() }, onResourceAvailable: function (b, c) { var a = this._resources[b]; if (!a) return; a.readyState = "available"; a.onAvailableCallback = c || null }, _getResourceName: function (b) { for (var a in this._resources) if (this._resources[a] === b) return a.replace(/_/g, "."); return null }, _addFeature: function (a, g, d, c) { var b = this; if (!a || a.length == 0) throw new Error("featureName must not be empty"); if (a.indexOf("_") >= 0) throw new Error("featureName cannot contain '_'"); if (!d || d.length == 0) throw new Error("fileName must not be empty"); a = b._normalizeName(a); if (b._resources[a]) throw new Error("Feature already exists"); var f = []; if (c) { if (!b._isArray(c)) throw new Error("dependencies must be an array of strings"); for (var e = 0; e < c.length; e++) f.push(b._normalizeName(c[e])) } b._resources[a] = { url: d, type: g, dependencies: f} }, _addManifest: function (h, d, c) { var a = this; if (!a._validRuntime) return; if (d) { var g = ["Empty1", "Empty2"]; for (var b in d) { if (a._resources[b]) throw new Error("Resource '%1' already exists".replace("%1", b)); var f = d[b], e = f.dependencies; e.push.apply(e, g); a._resources[b] = f } } if (c) { a._settings[h] = c; c.updateSettings && c.updateSettings(a._settings, a._resources, null) } }, _normalizeName: function (a) { return a.toLowerCase().replace(/\./g, "_") }, _process: function () { var a = this; if (a._paused) return; if (a._processing) { a._processScheduled = true; return } a._processing = true; for (var c = 0; c < a._loadRequests.length; c++) { for (var b = a._loadRequests[c], d = { async: 0, sync: 0 }, e = 0; e < b.resources.length; e++) a._loadResources(a._resources[b.resources[e]], d); var f = d.async + d.sync; if (f == 0 && !a._loadTime) a._loadTime = (new Date).getTime() - a._startTime; if (f == 0 && a._documentReady) { b.callback && a._invokeCallback(b.callback); a._loadRequests.splice(c--, 1) } } if (a._loadRequests.length == 0) while (a._readyRequests.length > 0) { var g = a._readyRequests.shift(); a._invokeCallback(g.callback) } a._processing = false; if (a._processScheduled) { a._processScheduled = false; a._process() } }, _loadResources: function (a, b) { var c = this; switch (a.readyState) { case "loaded": break; case "loading": if (a.async) b.async++; else b.sync++; break; case "available": c._loadResourceDependencies(a, b); if (b.async == 0 && b.sync == 0) { if (a.onAvailableCallback && !a.onAvailableCallbackCalled) { a.onAvailableCallbackCalled = true; a.onAvailableCallback.call() } a.readyState = "loaded" } else b.async++; break; default: c._loadResourceDependencies(a, b); if (a.async) { if (b.sync == 0) { c._loadResource(a); b.async++ } } else if (b.async == 0 && b.sync == 0) { c._loadResource(a); b.sync++ } } }, _loadResourceDependencies: function (c, d) { for (var b = 0; b < c.dependencies.length; b++) { var a = { async: 0, sync: 0 }; this._loadResources(this._resources[c.dependencies[b]], a); d.async += a.async; d.sync += a.sync } }, _loadResource: function (a) { var b = this; a.readyState = "loading"; if (!a.filename && !a.url) { b._onResourceLoaded(a); return } if (!b._browserRequires(a)) { b._onResourceLoaded(a); return } switch (a.type) { case "script": b._loadScript(a); break; case "stylesheet": b._loadStyleSheet(a); break; case "channeliframe": case "storageiframe": b._loadIFrame(a) } }, _shouldUseHttps: function (b) { var a = this; if (a._settings.httpsApplication) { if (a._settings.httpsScope == "all") return true; if (a._settings.httpsScope == "content") switch (b) { case "content": case "script": case "stylesheet": return true } if (b == "storageiframe") if (a._shouldProxyLocalStorage()) return true } return false }, _shouldProxyLocalStorage: function () { var b = !!(window.localStorage || window.globalStorage || window.sessionStorage), a = /msie 8/.test(navigator.userAgent.toLowerCase()); return !!(this._settings.httpsApplication && window.postMessage && b && !a) }, _browserRequires: function (a) { if (a.browsers) return a.browsers(this._browser, this._settings); return true }, _loadScript: function (b) { var a = this; if (a._checkResourceLoaded(b)) return; var d = a, c = a._createScriptElement(); if (a._browser.ie) a._attachScriptEventsIE(c, d, b); else a._attachScriptEvents(c, d, b); b.async && a._setElementAttribute(c, "async", "async"); a._setScriptElementAttributes(c, b); a._appendScriptElement(c, b) }, _checkResourceLoaded: function (a) { if (a.isLoaded) { this._onResourceLoaded(a); return true } return false }, _createScriptElement: function () { return document.createElement("SCRIPT") }, _attachScriptEvents: function (a, c, b) { a.readyState = "complete"; a.addEventListener("load", function (a) { c._onScriptLoad(a, b) }, false); a.addEventListener("error", function (a) { c._onScriptLoad(a, b) }, false) }, _attachScriptEventsIE: function (b, c, a) { b.attachEvent("onreadystatechange", function (b) { c._onScriptLoad(b, a) }) }, _setElementAttribute: function (a, c, b) { a.setAttribute(c, b) }, _setScriptElementAttributes: function (a, b) { a.type = "text/javascript"; a.src = this._getResourceUrl(b) }, _appendScriptElement: function (a) { document.getElementsByTagName("HEAD")[0].appendChild(a) }, _canPreloadIframe: function (c) { var a = true; switch (c.type) { case "channeliframe": case "storageiframe": if (window.postMessage) return a; if (this.isFlashInstalled(8) && !this._settings.channel.flashDisabled) return a; var b = document.domain.toLowerCase(); if (b == "live.com" || b == "live-int.com") return a; return false; default: return a } }, _loadIFrame: function (a) { var c = this; if (!a.containerId || !a.filename || !c._canPreloadIframe(a)) { c._onResourceLoaded(a); return } var f = c._getResourceUrl(a), e = document.getElementById(a.containerId); if (!e) { var b = document.createElement("div"); b.id = a.containerId; b.style.height = "1pt"; b.style.width = "1pt"; b.style.position = "absolute"; b.style.top = "-100px"; e = b } var d = document.createElement("iframe"); d.frameBorder = "0"; d.style.width = "100%"; d.style.height = "100%"; d.src = f; d.id = a.frameId; e.appendChild(d); a.frameContainer = e; c._iframeResources.push(a); c._appendIFrameResources(); c._onResourceLoaded(a) }, _loadStyleSheet: function (b) { var a = document.createElement("LINK"); a.type = "text/css"; a.rel = "stylesheet"; a.media = "screen"; a.href = this._getResourceUrl(b); this._appendChild(document.getElementsByTagName("HEAD")[0], a); this._onResourceLoaded(b) }, _lookupSettings: function (d, i, g) { var b = this, h = d.substring(1, d.length - 1), e = h.split("."); if (e[0] == "resource") return d; var f = e.pop(), c = b._getSubSetting(e); if (c) { var a = c[f]; if (b._isArray(a)) return b._hashSelect(a, i); if (typeof a === "function") return a.call(b, g); if (a || typeof a == "boolean" || typeof a == "number") return c[f] } return "" }, _isArray: function (a) { return a && Object.prototype.toString.apply(a) === "[object Array]" }, _hashSelect: function (b, c) { var a = c.lastIndexOf("/"); if (a < 0) a = 0; else a++; var d = this._computeFastHash(c.substring(a)); return b[d % b.length] }, _computeFastHash: function (b) { if (!b || !b.length) return 0; for (var a = 5381, c = 0, d = b.length; c < d; c++) a = (a << 5) + a + b.charCodeAt(c); if (a < 0) a *= -1; return a }, _getSubSetting: function (b) { var a = this._settings; if (!b.length) return a; for (var c = 0; c < b.length; c++) { a = a[b[c]]; if (!a) return null } return a }, _getSecureUrl: function (a) { if (a.indexOf("http:") == 0) return a.replace("http:", "https:"); return a }, _getResourceUrl: function (a) { var b; if (a.url) b = a.url; else b = this._getUrlFromSettings(a.filename, a); if (this._shouldUseHttps(a.type)) b = this._getSecureUrl(b); return b }, _getUrl: function (c, b) { var a = this._getUrlFromSettings(c, null); if (this._shouldUseHttps(b)) a = this._getSecureUrl(a); return a }, _getUrlFromSettings: function (b, c) { var a = b, d = this; a = a.replace(this._settingRegEx, function (a) { return d._lookupSettings(a, b, c) }); a = a.replace(this._settingRegEx, function (a) { return d._lookupSettings(a, b, c) }); a = a.replace(/\/\//g, "/").replace(/:\//g, "://"); return a }, _onScriptLoad: function (b, a) { var d = this; if (a.readyState == "loaded") return; var c = b.srcElement || b.currentTarget; if (!c.readyState) c = b.currentTarget; if (c.readyState != "complete" && c.readyState != "loaded") return; var e = b.type == "error" || a.async && a.readyState != "available"; if (e) { if (d._retryLoadResource(a)) b.stopPropagation && b.stopPropagation(); else d._onResourceFailed(a); return } else if (a.async) d._onResourceAvailable(a); else d._onResourceLoaded(a) }, _onResourceLoaded: function (a) { a.readyState = "loaded"; this._process() }, _onResourceAvailable: function () { this._process() }, _retryLoadResource: function (a) { if (a.loadFailCount === undefined) a.loadFailCount = 0; a.loadFailCount++; if (a.loadFailCount < 3) { this._loadResource(a); return true } else return false }, _onResourceFailed: function (d) { for (var a = this, e = a._getResourceName(d), b = 0; b < a._errorRequests.length; b++) { var c = a._errorRequests[b].callback; a._invokeCallback(function () { c(e) }) } }, _normalizeMarket: function (a) { a = a || ""; a = a.toLowerCase(); if (this._getResourceMarket(a)) return a; return null }, _getResourceMarket: function (a, b) { b = b || this._supportedMarkets; if (this._supportsMarket(a, b)) return a; var c = a.lastIndexOf("-"); if (c < 0) return null; a = a.substr(0, c); if (this._supportsMarket(a, b)) return a; return null }, _supportsMarket: function (e, d) { var b = 0, a = d.length - 1; while (b <= a) { var c = Math.floor((b + a) / 2), f = d[c]; if (f < e) { b = c + 1; continue } if (f > e) { a = c - 1; continue } return true } return false }, _resolveDirection: function () { var a = null, b = document.getElementsByTagName("html"); if (b && b.length > 0) a = b[0].getAttribute("dir"); a && this.initialize({ direction: a }) }, _tryUpdateDirection: function (a) { a = a || ""; a = a.toLowerCase(); switch (a) { case "ltr": case "rtl": this._settings.direction = a; return true } return false }, _resolveMarket: function () { var a = null, b = document.getElementsByTagName("html"), c = b && b.length > 0 ? b[0] : null; if (c) { a = c.getAttribute("lang"); a && this.initialize({ market: a }); a = c.getAttribute("xml:lang"); a && this.initialize({ market: a }) } }, _tryUpdateMarket: function (a) { var b = this; a = b._normalizeMarket(a); if (a) { b._settings.market = a; b._settings.resourceMarket = b._getResourceMarket(a); return true } return false }, _detectBrowsers: function () { var c = false, a = navigator.userAgent.toLowerCase(); this._browser = { firefox: /firefox/.test(a), "firefox1.5": /firefox\/1\.5/.test(a), firefox2: /firefox\/2/.test(a), firefox3: /firefox\/3/.test(a), ie: /msie/.test(a) && !/opera/.test(a), ie6: c, ie7: c, ie8: c, ie9: c, opera: /opera/.test(a), webkit: /webkit/.test(a) }; if (this._browser["ie"]) { var b = 0; if (document.documentMode) b = document.documentMode; else if (/msie 7/.test(a)) b = 7; b = Math.min(9, Math.max(b, 6)); this._browser["ie" + b] = true } }, _detectSecureConnection: function () { document.location.protocol.toLowerCase() == "https:" && this.initialize({ httpsApplication: true, httpsScope: "all" }) }, _detectFlash: function () { var c = "Shockwave Flash", b = "Shockwave Flash 2.0", a = 0; try { if (this._browser.ie) { var l = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"), g = l.GetVariable("$version"), j = g.split(" "), h = j[1], e = h.split(","); a = e[0] } else if (navigator.plugins && navigator.plugins.length > 0) if (navigator.plugins[b] || navigator.plugins[c]) { var k = navigator.plugins[b] ? " 2.0" : "", f = navigator.plugins[c + k].description, i = f.split(" "), d = i[2].split("."); a = d[0] } } catch (m) { } this._browser.flashVersion = a; this._browser.flash = a >= 8 }, _addDocumentReadyListener: function () { var a = this, d = "onreadystatechange", c = "complete", b = a; if (document.body) switch (document.readyState) { case c: a._onDocumentReady(); return; case "loaded": if (a._browser.webkit) { a._onDocumentReady(); return } break; case "interactive": case undefined: if (a._browser.firefox || a._browser.webkit) { a._onDocumentReady(); return } } if (document.addEventListener) { document.addEventListener("DOMContentLoaded", function () { b._onDocumentReady() }, false); document.addEventListener("load", function () { b._onDocumentReady() }, false) } else window.attachEvent && window.attachEvent("onload", function () { b._onDocumentReady() }); if (a._browser.ie) { document.attachEvent(d, function () { if (document.readyState === c) { document.detachEvent(d, arguments.callee); b._onDocumentReady() } }); var e = false; try { e = window.frameElement == null } catch (f) { } e && document.documentElement.doScroll && a._doScrollCheck() } }, _doScrollCheck: function () { if (this._documentReady) return; try { document.documentElement.doScroll("left") } catch (b) { var a = this; setTimeout(function () { a._doScrollCheck() }, 1); return } this._onDocumentReady() }, _invokeCallback: function (a) { window.setTimeout(a, 1) }, _onDocumentReady: function () { var a = this; if (a._documentReady == false) { a._documentReady = true; a._appendIFrameResources(); while (a._domRequests.length > 0) { var b = a._domRequests.shift(); a._invokeCallback(b.callback) } a._process() } }, _appendChild: function (b, c) { var a = function () { b.appendChild(c) }; if (this._browser.ie && !this._documentReady) this._invokeCallback(a); else a() }, _appendIFrameResources: function () { if (this._documentReady) for (var b = this._iframeResources, a = b.length - 1; a >= 0; a--) if (b[a].hasParent !== true) { b[a].hasParent = true; this._appendChild(document.body, b[a].frameContainer) } }, _serializeSettings: function (c) { var e = "customSettings"; if (!c) return; var b = this._settings[e]; for (var d in c) { var g = b.length == 0 ? "" : "&", a, f = c[d]; switch (typeof f) { case "boolean": a = "cb"; break; case "number": a = "cn"; break; default: a = "cs" } b += g + a + ":" + d + "=" + encodeURIComponent(f) } this._settings[e] = b }, _runtimeCheck: function () { for (var a in Object.prototype) { this._validRuntime = false; break } } }; Microsoft.Live.Core.Loader = new Microsoft.Live.Core.Loader; Microsoft.Live.Core.Loader._addManifest("microsoftAjax", { microsoft_ajax_core: { async: true, filename: "{microsoftAjax.baseScriptUrl}/MicrosoftAjaxCore.js", type: "script", isLoaded: !!(window.Type && window.Type.registerClass && window.Sys && window.Sys.Debug), dependencies: [] }, microsoft_ajax_compat: { async: true, filename: "{microsoftAjax.baseScriptUrl}/MicrosoftAjaxCompat.js", type: "script", browsers: function (a) { return !a["ie"] || a["ie9"] }, dependencies: [] }, microsoft_ajax_extensions: { type: "script", dependencies: ["microsoft_ajax_core", "microsoft_ajax_compat"] }, microsoft_ajax_base: { async: true, filename: "{microsoftAjax.baseScriptUrl}/MicrosoftAjaxBase.js", type: "script", isLoaded: !!(window.Sys && window.Sys.UI), dependencies: ["microsoft_ajax_core"] }, microsoft_ajax_componentmodel: { type: "script", dependencies: ["microsoft_ajax_base"] }, microsoft_ajax_serialization: { type: "script", dependencies: ["microsoft_ajax_base"] }, microsoft_ajax_templates: { async: true, filename: "{microsoftAjax.baseScriptUrl}/MicrosoftAjaxTemplates.js", type: "script", isLoaded: !!(window.Sys && window.Sys.UI && window.Sys.UI.Template), dependencies: ["microsoft_ajax_base"] }, microsoft_ajax_globalization: { async: true, filename: "{microsoftAjax.baseLocalizedScriptUrl}/MicrosoftAjaxGlobalization.js", type: "script", isLoaded: !!Number._parse, dependencies: ["microsoft_ajax_core"] }, microsoft_ajax_history: { async: true, filename: "{microsoftAjax.baseScriptUrl}/MicrosoftAjaxHistory.js", type: "script", isLoaded: !!(window.Sys && window.Sys.Application && window.Sys.Application.get_stateString), dependencies: ["microsoft_ajax_componentmodel", "microsoft_ajax_serialization"] }, json_parser: { async: true, filename: "{microsoftAjax.baseScriptUrl}/json2.js", type: "script", isLoaded: !!window.JSON, dependencies: []} }, { version: "3.0.31122", market: "en", resourcePath: ["http://secure.wlxrs.com/_D/F$Live.SiteContent.MicrosoftAjax", "http://js2.wlxrs.com/_D/F$Live.SiteContent.MicrosoftAjax"], baseScriptUrl: "{microsoftAjax.resourcePath}/{microsoftAjax.version}/{configuration}", baseLocalizedScriptUrl: "{microsoftAjax.resourcePath}/{microsoftAjax.version}/{configuration}/{microsoftAjax.market}", "int": { resourcePath: ["http://js.wlxrs-int.com/_D/F$Live.SiteContent.MicrosoftAjax", "http://js2.wlxrs-int.com/_D/F$Live.SiteContent.MicrosoftAjax"] }, f1: { resourcePath: ["http://js.f1.wlxrs-int.com/_D/F$Live.SiteContent.MicrosoftAjax", "http://js2.f1.wlxrs-int.com/_D/F$Live.SiteContent.MicrosoftAjax"] }, updateSettings: function (a) { var c = a.microsoftAjax, b = a.market; if (b) { var e = Microsoft.Live.Core.Loader, d = ["ar", "ar-ae", "ar-bh", "ar-dz", "ar-eg", "ar-iq", "ar-jo", "ar-kw", "ar-lb", "ar-ly", "ar-ma", "ar-om", "ar-ploc-sa", "ar-qa", "ar-sy", "ar-tn", "ar-ye", "bg", "cs", "da", "de", "de-at", "de-ch", "el", "en", "en-au", "en-ca", "en-gb", "en-ie", "en-in", "en-my", "en-nz", "en-ph", "en-sg", "en-za", "es", "es-ar", "es-bo", "es-cl", "es-co", "es-cr", "es-do", "es-ec", "es-gt", "es-hn", "es-mx", "es-ni", "es-pa", "es-pe", "es-pr", "es-py", "es-sv", "es-us", "es-uy", "es-ve", "et", "fi", "fr", "fr-be", "fr-ca", "fr-ch", "he", "hr", "hu", "it", "ja", "ja-ploc-jp", "ko", "lt", "lv", "nb-no", "nl", "nl-be", "pl", "pt-br", "pt-pt", "ro", "ru", "sk", "sl", "sr", "sv", "th", "tr", "uk", "zh-cn", "zh-hk", "zh-tw"]; c.market = e._getResourceMarket(b, d) || "en" } } }); Microsoft.Live.Core.Loader._addManifest("liveconnect", null, { localizedMarket: "", resourcePath: "/_D/F$Live.SiteContent.PROD.Connect/15.2.5720/", version: "15.0.5720.2", shortversion: "15.2.5720", JssdkOfferNamespace: "", JssdkIsTestEnvironment: false, JssdkSecureDomain: "secure.wlxrs.com", JssdkDomainsJavaScript: ['js.wlxrs.com', 'js2.wlxrs.com'], JssdkDomainsImage: ['img.wlxrs.com', 'img2.wlxrs.com'], JssdkDomainsCss: ['css.wlxrs.com'], JssdkAuthChannelDomain: "xd.live.com", JssdkAuthChannelPath: "/4.1/", JssdkSrsResourceGroup: "Live.SiteContent.PROD.Connect", JssdkEdgeJs: "/_D/F$Live.SiteContent.PROD.Connect/15.2.5720/", JssdkEdgeImg: "/_D/F$Live.SiteContent.PROD.Connect/15.2.5720/images/", JssdkEdgeCss: "/_D/F$Live.SiteContent.PROD.Connect/15.2.5720/", JssdkImagePathForCss: "//secure.wlxrs.com/_D/F$Live.SiteContent.PROD.Connect/15.2.5720/images/", JssdkImagePathForHtml: "https://secure.wlxrs.com/_D/F$Live.SiteContent.PROD.Connect/15.2.5720/images/", JssdkCloudMoeBaseUri: "https://apis.live.net/", JssdkCloudMoeRootServiceDocPath: "v4.1/", JssdkCloudMoeChannelSourcesPath: "js/v1/", JssdkConsentUri: "https://consent.live.com/connect.aspx", JssdkLivePcTestBaseUri: "http://live.com/", getConfiguration: function () { return Microsoft.Live.Core.Loader._settings.configuration }, getIsLiveUser: function (c) { var a = Microsoft.Live.Core.Loader._settings["liveconnect"], d = a._isSecure(), b = "http://" + a["JssdkAuthChannelDomain"] + a["JssdkAuthChannelPath"] + "livehost.html?isLiveUser=true&channel=" + escape(c); if (d) return b.replace(/https?:/, "https:"); return a._makeFrame(b) }, wlSignOut: function (b) { var a = Microsoft.Live.Core.Loader._settings["liveconnect"], c = a._isSecure(); if (c) return; return a._makeFrame(b) }, getScriptBase: function (a) { var b = Microsoft.Live.Core.Loader._settings["liveconnect"]; return b._getBaseUrl("JssdkEdgeJs", "JssdkDomainsJavaScript", a) }, getCssBase: function (a) { var b = Microsoft.Live.Core.Loader._settings["liveconnect"]; return b._getBaseUrl("JssdkEdgeCss", "JssdkDomainsCss", a) }, getServiceUrl: function (a, c) { var b = Microsoft.Live.Core.Loader._settings, e = b[a]._isSecure(), d = b[a][c]; protocol = "https:"; return d.replace(/https?:/, protocol) }, _getRandomId: function () { var a = 1e3, b = 1e5; return Math.floor(Math.random() * (b - a + 1)) + a }, _makeFrame: function (d) { var c = Microsoft.Live.Core.Loader._settings["liveconnect"], a = document.createElement("IFRAME"); a.id = c._getRandomId(); a.src = d; a.style.display = "none"; var b = document.getElementsByTagName("body")[0] || document.documentElement; b.insertBefore(a, b.firstChild); return a.id }, _isSecure: function () { var a; if (this != undefined && this._secureConnection != undefined) a = this._secureConnection; else a = document.location.protocol.toLowerCase() == "https:"; return a }, updateSettings: function (a) { var e = a.liveconnect, f = Microsoft.Live.Core.Loader, c = ["ar", "ar-ploc-sa", "bg", "cs", "da", "de", "de-ploc-de", "el", "en", "es", "et", "fi", "fr", "he", "hr", "hu", "it", "ja", "ja-ploc-jp", "ko", "lt", "lv", "nb-no", "nl", "pl", "pt-br", "pt-pt", "ro", "ru", "sk", "sl", "sr", "sv", "te", "th", "tr", "uk", "zh-cn", "zh-hk", "zh-tw"]; if (a.resourceMarket) for (var b = 0; b < c.length; b++) if (a.resourceMarket == c[b]) { this.localizedMarket = a.resourceMarket; break } }, _getBaseUrl: function (c, h, b) { var a = Microsoft.Live.Core.Loader._settings["liveconnect"], j = a._isSecure(); if (j) { var g = "https://" + a["JssdkSecureDomain"] + a[c]; return g } var f = a[h], d = 0; if (b && b.domainIdx) d = b.domainIdx; else { var e; if (b && b.filename) e = a[c] + b.filename; else e = a[c]; var k = Microsoft.Live.Core.Loader._computeFastHash(e); d = k % f.length } var i = f[d], g = "http://" + i + a[c]; return g } }); Microsoft.Live.Core.Loader._addManifest("channel", { microsoft_live_core_channel: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Core.Channel.js", type: "script", dependencies: ["microsoft_live_core_channel_downlevel", "json_parser", "microsoft_ajax_extensions"] }, microsoft_live_core_channel_downlevel: { async: true, filename: "{messenger.baseScriptUrl}/channel.js", type: "script", browsers: function (a, b) { return !window.postMessage && (!a.flash || b.channel.flashDisabled) }, dependencies: []} }, { uniqueIdUrl: "http://{messenger.serviceHostName}/actions/getuniqueids", flashDisabled: false, getUniqueIdUrl: function () { return Microsoft.Live.Core.Loader._getUrl(this.uniqueIdUrl, "service") } }); Microsoft.Live.Core.Loader._addManifest("liveconnect", { mscorlib: { type: "script", dependencies: ["microsoft_ajax_compat", "microsoft_ajax_extensions", "json_parser"] }, microsoft_live: { async: true, filename: "{liveconnect.getScriptBase}/microsoft.live{liveconnect_debug.debug}.js", type: "script", dependencies: ["microsoft_ajax_base"] }, microsoft_live_core_scanner_tags_registry: { type: "script", dependencies: ["microsoft_live_core_scanner_tags_registry_live", "microsoft_live_core_scanner_tags_registry_msgr"] }, microsoft_live_core_scanner_tags_registry_live: { async: true, filename: "{liveconnect.getScriptBase}/scanner.tags.liveconnect{liveconnect_debug.debug}.js", type: "script", dependencies: ["microsoft_live_ui"] }, microsoft_live_services: { filename: "{liveconnect.getScriptBase}/microsoft.live.services{liveconnect_debug.debug}.js", async: true, type: "script", dependencies: ["microsoft_live", "microsoft_ajax_core", "microsoft_ajax_base", "json_parser"]} }, null); Microsoft.Live.Core.Loader._addManifest("default", null, { getScriptBase: "{liveconnect.getScriptBase}" }); Microsoft.Live.Core.Loader._addManifest("liveconnect", { microsoft_live_ui_primitives_styles: { async: true, filename: "{liveconnect.getCssBase}/microsoft.live.ui.primitives.css", type: "stylesheet", dependencies: [] }, microsoft_live_ui_styles: { async: true, filename: "{liveconnect.getCssBase}/microsoft.live.ui.css", type: "stylesheet", dependencies: [] }, microsoft_live_ui_primitives_res: { async: true, filename: "{liveconnect.getScriptBase}/microsoft.live.ui.primitives.res.{liveconnect.localizedMarket}{liveconnect_debug.debug}.js", type: "script", dependencies: ["mscorlib"] }, microsoft_live_ui_primitives: { async: true, filename: "{liveconnect.getScriptBase}/microsoft.live.ui.primitives{liveconnect_debug.debug}.js", type: "script", dependencies: ["microsoft_live_ui_primitives_res", "microsoft_ajax_base", "microsoft_ajax_core", "microsoft_ajax_templates", "mscorlib"] }, microsoft_live_ui: { async: true, filename: "{liveconnect.getScriptBase}/microsoft.live.ui{liveconnect_debug.debug}.js", type: "script", dependencies: ["microsoft_live", "microsoft_live_ui_primitives_res", "microsoft_ajax_base", "microsoft_ajax_core", "microsoft_ajax_templates"]} }, null); Microsoft.Live.Core.Loader._addManifest("messenger", { scriptsharp_compat: { type: "script", dependencies: ["microsoft_ajax_core"] }, scriptsharp: { type: "script", dependencies: ["scriptsharp_compat"] }, messenger_iframe: { type: "channeliframe", dependencies: [], containerId: "MsgrContainer1", frameId: "ifm" + Math.floor(Math.random() * 1024 * 1024), filename: "{messenger.baseContentUrl}/Messenger.html#domain={messenger.domain}&loaderPath={messenger.loaderPath}{messenger.loaderName}&{customSettings}&{messenger.messengerChannelTypeQualifier}" }, storage_iframe: { type: "storageiframe", dependencies: [], containerId: "MsgrStorageContainer1", frameId: "ifm" + Math.floor(Math.random() * 1024 * 1024), filename: "{messenger.baseContentUrl}/LocalStorage.html#domain={messenger.domain}&loaderPath={messenger.loaderPath}{messenger.loaderName}&channelNames={messenger.storageChannelNames}&{customSettings}&{messenger.storageChannelTypeQualifier}" }, messenger_common: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Common.js", type: "script", dependencies: ["microsoft_ajax_extensions", "json_parser", "microsoft_live_core_channel"] }, messenger_core: { async: true, filename: "{messenger.baseLocalizedScriptUrl}/Microsoft.Live.Messenger.js", type: "script", dependencies: ["messenger_common", "messenger_services_loader", "messenger_iframe", "storage_iframe", "core_localstorage"] }, messenger_connect: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Connect.js", type: "script", dependencies: ["messenger_core"] }, messenger_pubsub: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.PubSub.Client.js", type: "script", dependencies: ["messenger_core", "messenger_pubsub_common", "messenger_pubsub_service"] }, messenger_pubsub_service: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.PubSub.Service.js", type: "script", dependencies: ["messenger_pubsub_common"] }, messenger_pubsub_common: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.PubSub.Common.js", type: "script", dependencies: ["messenger_common"] }, messenger_extended: { type: "script", dependencies: ["messenger_core", "messenger_services_core", "messenger_services_chat"] }, messenger_services_loader: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Services.Loader.js", type: "script", dependencies: ["messenger_common", "core_localstorage"] }, messenger_services_core: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Services.Core.js", type: "script", dependencies: ["messenger_common"] }, messenger_services_addressbook: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Services.AddressBook.js", type: "script", dependencies: ["messenger_common"] }, messenger_services_chat: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Services.Chat.js", type: "script", dependencies: ["messenger_common"] }, messenger_services_configuration: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Services.Configuration.js", type: "script", dependencies: ["messenger_common"] }, messenger_services_expressionprofile: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Services.ExpressionProfile.js", type: "script", dependencies: ["messenger_common"] }, messenger_services_identity: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Messenger.Services.Identity.js", type: "script", dependencies: ["messenger_common"] }, core_localstorage: { type: "script", dependencies: ["core_localstorage_ie", "core_localstorage_ff", "core_localstorage_plugins", "core_localstorage_userdata", "core_localstorage_webkit"] }, core_localstorage_ie: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Core.LocalStorage.IE.js", type: "script", browsers: function (a) { return a["ie"] && window.sessionStorage }, dependencies: ["messenger_common"] }, core_localstorage_userdata: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Core.LocalStorage.UserData.js", type: "script", browsers: function (a, c) { var b = (!c.httpsApplication || !a["flash"]) && a["ie"] && !window.sessionStorage; return b }, dependencies: ["messenger_common"] }, core_localstorage_ff: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Core.LocalStorage.FF.js", type: "script", browsers: function (a) { return a["firefox"] && window.globalStorage }, dependencies: ["messenger_common"] }, core_localstorage_plugins: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Core.LocalStorage.Plugins.js", type: "script", browsers: function (a, c) { var b = (c.httpsApplication && a["flash"] || !a["ie"]) && !window.localStorage && !window.globalStorage && !window.sessionStorage; return b }, dependencies: ["messenger_common"] }, core_localstorage_webkit: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Core.LocalStorage.WebKit.js", type: "script", browsers: function (a) { return (a["webkit"] || a["opera"]) && window.localStorage }, dependencies: ["messenger_common"]} }); Microsoft.Live.Core.Loader._addManifest("messenger", { microsoft_live_core_scanner_tags_registry_msgr: { async: true, filename: "{messenger.baseScriptUrl}/Scanner.Tags.Messenger.js", type: "script", dependencies: ["microsoft_live_ui"] }, mesh: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.Mesh.Framework.js", type: "script", dependencies: ["microsoft_ajax_extensions"] }, messenger_ui_core: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.UI.Messenger.Core.js", type: "script", dependencies: ["microsoft_ajax_extensions", "messenger_core", "mesh"] }, messenger_ui_databinding: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.UI.Messenger.DataBinding.js", type: "script", dependencies: ["microsoft_ajax_templates", "messenger_core"] }, messenger_ui_primitives: { async: true, filename: "{messenger.baseLocalizedScriptUrl}/Microsoft.Live.UI.Messenger.Primitives.js", type: "script", dependencies: ["mesh"] }, messenger_ui_controls: { async: true, filename: "{messenger.baseLocalizedScriptUrl}/Microsoft.Live.UI.Messenger.Controls.js", type: "script", dependencies: ["microsoft_ajax_globalization", "messenger_ui_primitives", "messenger_ui_core"] }, messenger_ui_model: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.UI.Messenger.js", type: "script", dependencies: ["messenger_ui_controls", "microsoft_ajax_componentmodel"] }, messenger_ui: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.UI.Messenger.Tags.js", type: "script", dependencies: ["microsoft_live_core_scanner_tags_registry", "messenger_ui_model", "microsoft_ajax_templates"] }, messenger_ui_chat: { async: true, filename: "{messenger.baseLocalizedScriptUrl}/Microsoft.Live.UI.Messenger.Chat.js", type: "script", dependencies: ["messenger_pubsub", "messenger_ui_controls", "microsoft_ajax_componentmodel"] }, messenger_ui_chatframe: { async: true, filename: "{messenger.baseScriptUrl}/Microsoft.Live.UI.Messenger.ChatFrameControl.js", type: "script", dependencies: ["microsoft_ajax_componentmodel"] }, messenger_ui_styles_core: { type: "stylesheet", dependencies: ["messenger_ui_styles_core_ie6", "messenger_ui_styles_core_ie7", "messenger_ui_styles_core_ie8", "messenger_ui_styles_core_ie9", "messenger_ui_styles_core_webkit", "messenger_ui_styles_core_other"] }, messenger_ui_styles_core_ie6: { filename: "{messenger.baseStyleSheetUrl}/core.ie6.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (a) { return a["ie6"] }, dependencies: [] }, messenger_ui_styles_core_ie7: { filename: "{messenger.baseStyleSheetUrl}/core.ie7.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (a) { return a["ie7"] }, dependencies: [] }, messenger_ui_styles_core_ie8: { filename: "{messenger.baseStyleSheetUrl}/core.ie8.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (a) { return a["ie8"] }, dependencies: [] }, messenger_ui_styles_core_ie9: { filename: "{messenger.baseStyleSheetUrl}/core.other.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (a) { return a["ie9"] }, dependencies: [] }, messenger_ui_styles_core_webkit: { filename: "{messenger.baseStyleSheetUrl}/core.webkit.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (a) { return a["webkit"] }, dependencies: [] }, messenger_ui_styles_core_other: { filename: "{messenger.baseStyleSheetUrl}/core.other.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (a) { return !a["ie"] && !a["webkit"] }, dependencies: [] }, messenger_ui_styles_chat_light: { type: "stylesheet", dependencies: ["messenger_ui_styles_core", "messenger_ui_styles_chat_light_ie6", "messenger_ui_styles_chat_light_ie7", "messenger_ui_styles_chat_light_ie8", "messenger_ui_styles_chat_light_other"] }, messenger_ui_styles_chat_light_ie6: { filename: "{messenger.baseStyleSheetUrl}/chat.light.ie6.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (a) { return a["ie6"] }, dependencies: [] }, messenger_ui_styles_chat_light_ie7: { filename: "{messenger.baseStyleSheetUrl}/chat.light.ie7.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (a) { return a["ie7"] }, dependencies: [] }, messenger_ui_styles_chat_light_ie8: { filename: "{messenger.baseStyleSheetUrl}/chat.light.ie8.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (a) { return a["ie8"] }, dependencies: [] }, messenger_ui_styles_chat_light_other: { filename: "{messenger.baseStyleSheetUrl}/chat.light.other.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (a) { return !a["ie"] || a["ie9"] }, dependencies: [] }, messenger_ui_styles_chat_dark: { type: "stylesheet", dependencies: ["messenger_ui_styles_core", "messenger_ui_styles_chat_dark_ie6", "messenger_ui_styles_chat_dark_ie7", "messenger_ui_styles_chat_dark_ie8", "messenger_ui_styles_chat_dark_other"] }, messenger_ui_styles_chat_dark_ie6: { filename: "{messenger.baseStyleSheetUrl}/chat.dark.ie6.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (a) { return a["ie6"] }, dependencies: [] }, messenger_ui_styles_chat_dark_ie7: { filename: "{messenger.baseStyleSheetUrl}/chat.dark.ie7.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (a) { return a["ie7"] }, dependencies: [] }, messenger_ui_styles_chat_dark_ie8: { filename: "{messenger.baseStyleSheetUrl}/chat.dark.ie8.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (a) { return a["ie8"] }, dependencies: [] }, messenger_ui_styles_chat_dark_other: { filename: "{messenger.baseStyleSheetUrl}/chat.dark.other.{messenger.localizedMarket}.css", type: "stylesheet", browsers: function (a) { return !a["ie"] || a["ie9"] }, dependencies: []} }); Microsoft.Live.Core.Loader._addManifest("messenger", null, { version: "4.2.64250", versionOverride: "4.2.64250", loaderPath: "{messenger.resourcePath}/{messenger.version}/", loaderName: "loader.js", localizedMarket: "other", resourcePath: ["http://secure.wlxrs.com/_D/F$Live.SiteContent.Messenger", "http://js2.wlxrs.com/_D/F$Live.SiteContent.Messenger"], imageResourcePath: ["http://secure.wlxrs.com/_D/F$Live.SiteContent.Messenger", "http://js2.wlxrs.com/_D/F$Live.SiteContent.Messenger"], styleResourcePath: "http://secure.wlxrs.com/_D/F$Live.SiteContent.Messenger", audioResourcePath: "http://secure.wlxrs.com/_D/F$Live.SiteContent.Messenger", applicationPath: "http://secure.shared.live.com/_D/F$Live.SiteContent.Messenger", applicationHostName: "settings.messenger.live.com", consentHostName: "consent.messenger.services.live.com", baseScriptUrl: "{messenger.resourcePath}/{messenger.version}/{configuration}", baseLocalizedScriptUrl: "{messenger.resourcePath}/{messenger.version}/{configuration}/{resourceMarket}", baseStyleSheetUrl: "{messenger.styleResourcePath}/{messenger.version}/resources/styles/{direction}", baseContentUrl: "{messenger.applicationPath}/{messenger.versionOverride}", messengerChannelTypeQualifier: "", storageChannelTypeQualifier: "", storageChannelNames: "", serviceHostName: "geo.messenger.services.live.com", pubSubHostName: "geo.messenger.services.live.com", localStorageDisabled: false, sameDomainEndpointsAsLocalEnabled: false, testReportingEnabled: false, signInControlState: "", silentReauthDetectionUrl: "https://login.live.com/login.srf?wa=wsignin1.0&wp=MBI&wreply=http://messengerweb.live.com/&lc=1033&id=76215&aj=1", silentReauthUrlFormat: "https://login.live.com/login.srf?wa=wsignin1.0&checkda=1&wp=MBI&wreply={0}&lc=1033&id=76215", dogfood: { serviceHostName: "beta.messenger.services.live.com" }, "int": { resourcePath: ["http://js.wlxrs-int.com/_D/F$Live.SiteContent.Messenger", "http://js2.wlxrs-int.com/_D/F$Live.SiteContent.Messenger"], imageResourcePath: "http://img.wlxrs-int.com/_D/F$Live.SiteContent.Messenger", styleResourcePath: "http://css.wlxrs-int.com/_D/F$Live.SiteContent.Messenger", audioResourcePath: "http://msc.wlxrs-int.com/_D/F$Live.SiteContent.Messenger", applicationPath: "http://secure.shared.live-int.com/_D/F$Live.SiteContent.Messenger", consentHostName: "int-consent.messenger.services.live-int.com", serviceHostName: "applications.messenger.live-int.com", pubSubHostName: "applications.messenger.live-int.com", applicationHostName: "settings.messenger.live-int.com", silentReauthDetectionUrl: "https://login.live-int.com/login.srf?wa=wsignin1.0&wp=MBI&wreply=http://messengerweb.live-int.com/&lc=1033&id=63587&aj=1", silentReauthUrlFormat: "https://login.live-int.com/login.srf?wa=wsignin1.0&checkda=1&wp=MBI&wreply={0}&lc=1033&id=63587" }, updateSettings: function (b, e) { var a = b.messenger, f = Microsoft.Live.Core.Loader, d = ["ar", "ar-ploc-sa", "ja", "ja-ploc-jp", "he", "ko", "th", "zh-hk", "zh-tw"]; if (b.resourceMarket) for (var c = 0; c < d.length; c++) if (b.resourceMarket == d[c]) { this.localizedMarket = b.resourceMarket; break } a.domain = encodeURIComponent(document.location.hostname.toLowerCase()); if (!window.postMessage) { a.messengerChannelTypeQualifier = "WLIFMi=" + e["messenger_iframe"].frameId; a.storageChannelTypeQualifier = "WLIFMi=" + e["storage_iframe"].frameId } a.storageChannelNames = "DefaultLocalStorageChannel"; if (f._shouldProxyLocalStorage()) a.storageChannelNames += ";MessengerStorageChannel" }, _join: function () { return Array.prototype.join.call(arguments, "/") }, getLoaderUrl: function () { return Microsoft.Live.Core.Loader._getUrl(this.loaderPath + this.loaderName, "script") }, getResourceUrl: function (a, f) { if (!a) a = ""; var e = Microsoft.Live.Core.Loader, c = e._settings.messenger, g = e._settings.configuration, d = c.resourcePath; if (a.match(/(\.jpg|\.gif|\.png)$/gi)) d = c.imageResourcePath; else if (a.match(/(\.mp3|\.wav)$/gi)) d = c.audioResourcePath; else if (a.match(/(\.html)$/gi)) d = c.applicationPath; var b; if (!e._isArray(d)) b = d; else { var h = e._computeFastHash(a); b = d[h % d.length] } if (a.charAt(0) == "/") a = a.substring(1); if ((a.match(/(\.js)$/gi) || a.length == 0) && g) b = this._join(b, c.version, g, a); else if (a.match(/(\.html)$/gi)) b = this._join(b, c.versionOverride, a); else b = this._join(b, c.version, a); if (f == null) if (b.match(/(\.html)$/gi)) f = "service"; else f = "content"; if (e._shouldUseHttps(f)) b = e._getSecureUrl(b); return b }, getDistinctDomainResourcePaths: function (i) { var f = Microsoft.Live.Core.Loader, d = f._settings.messenger, c = [], b = []; b.push(d.resourcePath); b.push(d.imageResourcePath); b.push(d.audioResourcePath); b.push(d.styleResourcePath); for (var a = 0; a < b.length; a++) { var e = b[a]; if (f._isArray(e)) for (var h = 0; h < e.length; h++) c.push(e[h]); else c.push(e) } for (var a = 0; a < c.length; a++) { var g = this._join(c[a], d.version, i); if (f._settings.httpsApplication) g = f._getSecureUrl(g); c[a] = g } return c } }); Microsoft.Live.Core.Loader.initialize({ environment: "production", "messenger.loaderName": "loader.js" }); (function () { var a = window.Microsoft_Live_Core_Loader_onAvailable; a && typeof a == "function" && a(Microsoft.Live.Core.Loader) })(); (function () { var c = null, d = false; function f(b) { var a = "http://apis.live.net/js/2010"; d = b == a || b == "http://asp.net/ajax" || b == a || b == "http://messenger.live.com/2009/ui-tags" } var e = document.namespaces; if (e != c) for (var b = 0; b < e.length; b++) { var j = e[b].name, h = e[b].urn; if (!(j === c || j === undefined) && !(h === c || h === undefined)) { f(h); if (d) break } } if (!d) for (var i = document.documentElement.attributes, k = i.length, b = 0; b < k; b++) { var a = i[b]; if (!(a === c || a === undefined)) { var g = a.specified; if (!(g === c || g === undefined)) g && a.name.substr(0, 6) == "xmlns:" && f(a.value.toLowerCase()); else !(a.name === c || a.name === undefined) && a.name.substr(0, 6) == "xmlns:" && f(a.value.toLowerCase()); if (d) break } } if (d) Microsoft.Live.Core.Loader.load(["microsoft.live.core.scanner.tags.registry"], function () { Microsoft.Live.Core.Loader.onDocumentReady(function () { Microsoft.Live.Core.TagsFactory.initialScan() }) }); else Microsoft.Live.Core.Loader._skippedScanner = true })()
