if (!window.__XINCLUDES){ window.__XINCLUDES = new Array();} window.__XINCLUDES["__REQUEST__"] = true;function WebRequest(){ var _request = null; var _this = this; this.getRequest = function() { return _request; } this.send = function(url, parameters, method, callback) { if (_request == null) { alert("Request object not initialized."); } if (callback != null) { _request.onreadystatechange = callback; } _request.open(method, url, true); if (method.toLowerCase() == "post") { _request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); } if (parameters != null && parameters.length > 0) { _request.setRequestHeader("Content-length", parameters.length); } _request.setRequestHeader("Connection", "close"); _request.send(parameters); } function _destructor() { _this.getRequest = null; _this.send = null; _request = null; _this = null; } if (window.XMLHttpRequest) { _request = new XMLHttpRequest(); if (_request.overrideMimeType) { _request.overrideMimeType('text/html'); } } else if (window.ActiveXObject) { try { _request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { _request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { } } } if (_request == null) { alert("Cannot initialize request object."); } Util.appendHandler(window, "onunload", _destructor);} if (!window.__XINCLUDES){ window.__XINCLUDES = new Array();} window.__XINCLUDES["__UTIL__"] = true;if (!window.__XINCLUDES["__REQUEST__"]){ alert("Request.js is a dependency that has not been loaded.");} var _internalName = "";function Util(){} Util.c_BrowserUnknown = -1;Util.c_BrowserExplorer = 0;Util.c_BrowserFirefox = 1;Util.c_BrowserChrome = 2;Util.c_BrowserOpera = 3;Util.c_BrowserSafari = 4;Util._currentBrowserIndex = -1;Util.c_KnownBrowsers = [["", Util.c_BrowserUnknown], ["msie", Util.c_BrowserExplorer], ["firefox", Util.c_BrowserFirefox], ["chrome", Util.c_BrowserChrome], ["opera", Util.c_BrowserOpera], ["safari", Util.c_BrowserSafari]]; Util.c_SupportedBrowsers = [[Util.c_BrowserExplorer, 6, 7, 8], [Util.c_BrowserOpera, -1]];Util.c_WindowsIdentifier = "windows nt";Util.getBrowser = function(){ if (Util._currentBrowserIndex < 0) { Util._currentBrowserIndex = 0; var agent = navigator.userAgent.toLowerCase(); for (var i = 1; i < Util.c_KnownBrowsers.length; ++i) { if (agent.indexOf(Util.c_KnownBrowsers[i][0]) != -1) { Util._currentBrowserIndex = i; break; } } } return Util.c_KnownBrowsers[Util._currentBrowserIndex][1];} Util.getIsGeckoBrowser = function(){ return (navigator.userAgent.toLowerCase().indexOf("gecko") != -1);} Util.getBrowserVersion = function(){ Util.getBrowser(); var agent = navigator.userAgent.toLowerCase(); var i = agent.indexOf(Util.c_KnownBrowsers[Util._currentBrowserIndex][0]); if (i < 0) { return -1; } return parseFloat(agent.substring(i + Util.c_KnownBrowsers[Util._currentBrowserIndex][0].length + 1));} Util.getBrowserVersionMajor = function(){ return Math.floor(Util.getBrowserVersion());} Util.getIsSupportedBrowser = function(){ var iBrowser = Util.getBrowser(); var iVer = Util.getBrowserVersionMajor(); if(iBrowser == Util.c_BrowserChrome) { return false; } var fFoundBrowser = false; for (var i = 0; i < Util.c_SupportedBrowsers.length; i++) { if (Util.c_SupportedBrowsers[i][0] == iBrowser) { fFoundBrowser = true; for (var j = 1; j < Util.c_SupportedBrowsers[i].length; j++) { if (Util.c_SupportedBrowsers[i][j] < 0 || Util.c_SupportedBrowsers[i][j] == iVer) { return true; } } } } if(!fFoundBrowser && Util.getIsGeckoBrowser()) { return true; } return false;} Util.getWindowsVersion = function(){ var agent = navigator.userAgent.toLowerCase(); var i = agent.indexOf(Util.c_WindowsIdentifier); if(i < 0) { return -1; } return parseFloat (agent.substring(i + Util.c_WindowsIdentifier.length + 1));} Util.fade = function(obj, start, end, delta, refreshRate, callback){ if (typeof (obj._faddingTimer) != 'undefined' && obj._faddingTimer != 0) { clearInterval(obj._faddingTimer); obj._faddingTimer = 0; start = obj.alpha; } obj.style.visibility = "visible"; Util.setOpacity(obj, start); obj._faddingTimer = setInterval(function() { var o = obj.alpha + delta; if ((delta > 0 && o >= end) || (delta < 0 && o <= end)) { clearInterval(obj._faddingTimer); obj._faddingTimer = 0; Util.setOpacity(obj, end); if (callback) { setTimeout(function() { callback(obj); } , 0); } } else { Util.setOpacity(obj, o); } } , refreshRate);} Util._getDPIDiv = function(){ var id = "Util_getDPI_Div"; var o = document.getElementById(id); if (o == null) { o = document.createElement("div"); document.body.appendChild(o); o.id = id; o.style.position = "absolute"; o.style.visibility = "hidden"; o.style.width = "1in"; o.style.height = "1in"; } return o;} Util.getHorizontalDPI = function(){ return Util._getDPIDiv().offsetWidth;} Util.getVerticalDPI = function(){ return Util._getDPIDiv().offsetHeight;} Util.convertPointToPixel = function(pt){ var r = 16 / 12; return Math.floor(pt * Util.getVerticalDPI() / 72 * r);} Util.setOpacity = function(obj, o){ if (o < 0) { o = 0; } else if(o > 1) { o = 1; } else { o = Math.floor(o * 1000) / 1000; } obj.alpha = o; obj.style.MozOpacity = o; obj.style.opacity = o; if (typeof (obj.style.filter) != "undefined") { obj.style.filter = "alpha(opacity=" + Math.floor(o * 100) + ")"; } } Util.makeObjectLinked = function(obj, link, func, caption){ if (caption.length == 0) { obj.alt = link; obj.title = link; } else { obj.alt = caption; obj.title = caption; } Util.appendHandler(obj, "onmouseover", function() { obj.style.cursor = "pointer"; if (caption.length > 0) { window.status = caption; } else if (link.length > 0) { window.status = link; } } ); Util.appendHandler(obj, "onmouseout", function() { obj.style.cursor = "auto"; if (link.length > 0 || caption.length > 0) { window.status = ""; } } ); Util.appendHandler(obj, "onclick", function() { if (link.length > 0) { var iBrowser = Util.getBrowser(); if (iBrowser == Util.c_BrowserExplorer && /^http(s)?:\/\/[^\/]*spoon\.net(\:\d+)?\/.*/.test(document.referrer)) { var oAnchor = document.createElement ("a"); oAnchor.target = "_top"; oAnchor.href = link; document.appendChild (oAnchor); oAnchor.click (); } else { window.open(link); } } if (func) { func(); } } );} function _clearHandlers(){ for(var i = 0; i < Util._handlers.length; ++i) { if(window.detachEvent) { Util._handlers[i][0].detachEvent(Util._handlers[i][1].substring(2), Util._handlers[i][2]); } else if(window.removeEventListener) { Util._handlers[i][0].removeEventListener(Util._handlers[i][1].substring(2), Util._handlers[i][2], true); } else { } Util._handlers[i][2] = null; } } Util.appendHandler = function(obj, eventStr, func, arg){ if(typeof(Util._initializedHandlers) == "undefined") { Util._initializedHandlers = true; Util._handlers = []; Util.appendHandler(window, "onunload", _clearHandlers); } Util._handlers.push([obj, eventStr, func]); var callback = func; if (arg != null) { callback = function(e) { func(e, arg); } } if (window.attachEvent) { obj.attachEvent(eventStr, callback); } else if (window.addEventListener) { eventStr = eventStr.substring(2); obj.addEventListener(eventStr, callback, true); } else { } } Util.scaleImageToFit = function(img, maxWidth, maxHeight){ var targetRatio = maxWidth / maxHeight; var currentRatio = img.offsetWidth / img.offsetHeight; var newW = 0; var newH = 0; if (currentRatio > targetRatio) { newW = maxWidth; newH = maxWidth / currentRatio; } else { newH = maxHeight; newW = maxHeight * currentRatio; } img.style.width = newW + "px"; img.style.height = newH + "px";} Util.preloadImage = function(imgSrc, parentRegion, func, arg){ var img = document.createElement("img"); img.style.visibility = "hidden"; img.src = imgSrc.toLowerCase(); parentRegion.appendChild(img); if (func) { if (arg == null) { arg = img; } if (img.complete) { setTimeout(function() { func(null, arg); } , 0); } else { Util.appendHandler(img, "onload", function(e) { func(e, arg); img.onload = null; } ); } } return img;} Util.setCookie = function(name, value, expires){ document.cookie = name + "=" + escape(value); if (expires) { document.cookie += "; expires=" + expires; } } Util.getCookie = function(name){ var cookies = document.cookie.split("; "); for (var i = 0; i < cookies.length; ++i) { var split = cookies[i].split("="); if (name == split[0]) { return unescape(split[1]); } } return null;} Util.deleteCookie = function(name){ document.cookie = name + "=; expires=Fri, 31 Dec 1999 23:59:59 GMT;";} Util.getEvent = function(e){ if (e) { return e; } else if (window.event) { return window.event; } else { return null; } } Util.track = function(link){ if (window._XTracker) { window._XTracker._trackPageview(link); } } Util.trackEvent = function(event, link){ if (window._XTracker) { var i = link.lastIndexOf("/"); var file = link; if (i >= 0) { file = link.substring(i + 1); } Util.track("/" + event + "/" + file); } } Util.initLogs = function(name){ _internalName = name;} Util.logEvent = function(event, majorversion, minorversion, revision, code){ var pathOffset = ""; var url = pathOffset + "/logs.aspx?a=" + _internalName + "&b=" + event; if (code) { url += "&c=" + code; } if (typeof (majorversion) != "undefined" && majorversion != null) { url += "&d=" + majorversion + "." + minorversion + ".0." + revision; } (new WebRequest()).send(url, "", "post", null);} Util.sleep = function(millis){ var date = new Date(); var curDate = null; do { curDate = new Date(); } while (curDate - date < millis);} if (!window.__XINCLUDES){ window.__XINCLUDES = new Array();} window.__XINCLUDES["__WEBLAUNCH__"] = true;if (!window.__XINCLUDES["__UTIL__"]){ alert("Util.js is a dependency that has not been loaded.");} function WebLaunch(internalName, installLink, isSurface, mimeType){ var c_MajorVersion = 3; var c_MinorVersion = 21; var c_NotInitialized = "The object is not initialized."; var c_Unsupported = "The plugin is not supported in this configuration."; var c_PluginInstallFailureEvent = "PluginInstallAlreadyTried"; var c_PluginInstallEvent = "PluginInstall"; var c_WebLaunchId = "Spoon-Plugin"; var c_WebLaunchMimeType = mimeType; var _IEWebLaunchClassIds = [ "CB066646-BDBC-414b-9616-1662755C78FC", "52DC063C-3C14-424b-A779-0E7EE52352FD", ]; var _IEWebLaunchOldIds = [ "A8ACFC1D-999E-4b9d-B2F2-952FF6F6B4B4", "5AE8F40F-995A-4ede-8692-3C6BD58A62B5", "EA4C9582-D01C-450c-8644-DE3616E15F6A", "98C165F0-9141-4805-A4A7-654066DE0D4E", "A848F38B-82DA-4f22-A91B-CCCA584691B1", "3DA330D8-FF18-47fa-9D64-845FA6B99C18", "E93A7126-8D60-48d5-B8FB-D29A642DE7D1", "43B67AD9-68DE-4758-868B-9962595D6E59", "A975897A-0667-493b-A8C5-3B039799EE14", "1F8742F0-8371-4e21-BA4B-003425F48C80", ]; var c_PriorityHigh = 0; var c_PriorityNormal = 1; var c_PriorityLow = 2; var _This = this; var _InternalName = internalName; var _InstallLink = installLink; var _UseIE = false; var _UseFF = false; var _UseChrome = false; var _UseOpera = false; var _UseSafari = false; var _UseGecko = false; var _Initialized = false; var _Plugin = null; var _AutoInstallTimerId = 0; var _NeedsUpgrade = false; var _IsSurface = isSurface; var _SurfaceWidth = 0; var _SurfaceHeight = 0; var _SurfaceLeft = 0; var _SurfaceTop = 0; var _ShellIntegrationMode = 0; this.getMajorVersion = function() { if (!_Initialized) { alert(c_NotInitialized); return; } return _getMajorVersion(); } function _getMajorVersion() { if (!_UseIE) { return c_MajorVersion; } return _Plugin.MajorVersion; } this.getMinorVersion = function() { if (!_Initialized) { alert(c_NotInitialized); return; } return _getMinorVersion(); } function _getMinorVersion() { if (!_UseIE) { return c_MinorVersion; } return _Plugin.MinorVersion; } this.getRevision = function() { if (!_Initialized) { alert(c_NotInitialized); return; } return _Plugin.Revision; } this.getIsAppSurfaced = function() { if (!_Initialized) { alert(c_NotInitialized); return; } if (!_IsSurface) { return false; } return _Plugin.IsAppSurfaced; } this.getNeedsUpgrade = function() { if (!_Initialized) { alert(c_NotInitialized); return; } return _NeedsUpgrade; } this.IsMajorUpdateNeeded = function() { if (_UseIE) { var p = null; for (var i = 0; i < _IEWebLaunchOldIds.length; ++i) { try { p = _CreateIEPluginObject(_IEWebLaunchOldIds[i]); if (p != null) { return true; } } catch (e) { } } } else if (_UseFF || _UseChrome || _UseSafari || _UseOpera || _UseGecko) { var rExp = new RegExp("application/mozilla-spoon-plugin"); for (var i = 0; i < navigator.mimeTypes.length; ++i) { if (rExp.test(navigator.mimeTypes[i].type)) { return true; } } } return false; } this.IsInitialized = function() { if (!_Initialized) { alert(c_NotInitialized); return false; } return _Plugin.IsInitialized(); } this.IsClientInitialized = function() { return _Initialized; } this.Initialize = function(installIfNot) { if (_Initialized) { return WebLaunch.c_PluginInstallSuccess; } var ret = _CreatePlugin(installIfNot); if (ret == WebLaunch.c_PluginInstallSuccess) { _Initialized = true; } return ret; } this.SetSurfaceRegion = function(x, y, w, h) { _SurfaceLeft = x; _SurfaceTop = y; _SurfaceWidth = w; _SurfaceHeight = h; if (_Plugin != null) { if (_UseIE) { _Plugin.style.left = (2 * _SurfaceWidth) + "px"; } else { _Plugin.style.left = _SurfaceLeft + "px"; } _Plugin.style.top = _SurfaceTop + "px"; _Plugin.style.width = _SurfaceWidth + "px"; _Plugin.style.height = _SurfaceHeight + "px"; } } this.RestartSandboxManager = function() { _Plugin.Restart(); } this.Ping = function() { if (!_Initialized) { alert(c_NotInitialized); return; } return _Plugin.Ping(); } this.GetStatus = function(key) { if (!_Initialized) { alert(c_NotInitialized); return; } try { var s = _Plugin.GetStatus(key); if (s == -1) { return WebLaunch.c_InternalError; } return s & 0x0000ffff; } catch (e) { return WebLaunch.c_Error; } } this.GetLastError = function(key) { if (!_Initialized) { alert(c_NotInitialized); return; } try { var s = _Plugin.GetStatus(key); if (s == -1) { return WebLaunch.c_ErrorUnknown; } var c = s >> 16; return c; } catch (e) { return WebLaunch.c_ErrorInvalidAppId; } } this.GetProgress = function(key) { if (!_Initialized) { alert(c_NotInitialized); return; } return _Plugin.GetProgress(key); } this.GetBufferingText = function(key) { if (!_Initialized) { alert(c_NotInitialized); return; } return _Plugin.GetBufferingText(key, 'false'); } this.BeginDownload = function(internalname, version, layerRevision, cachemode, shellmode, isProfiled, showBufferingUI, imageUrl) { if (!_Initialized) { alert(c_NotInitialized); return; } if (typeof (showBufferingUI) != "boolean") { showBufferingUI = false; } if (typeof (imageUrl) != "string") { imageUrl = ""; } return _Plugin.BeginDownload(internalname, version, layerRevision, c_PriorityHigh, cachemode, shellmode, -1, isProfiled, showBufferingUI, imageUrl); } this.BeginDownload2 = function(configPath, cachemode, shellmode, isProfiled, showBufferingUI) { return _this.BeginDownload(configPath, "", -1, cachemode, shellmode, isProfiled, showBufferingUI, ""); } this.FullDownload = function(internalname, version, layerRevision, shellmode) { if (!_Initialized) { alert(c_NotInitialized); return; } return _Plugin.FullDownload(internalname, version, layerRevision, shellmode); } this.FullDownload2 = function(configPath, shellmode) { return _this.FullDownload(configPath, "", -1, shellmode); } this.Prefetch = function(internalname, version, layerRevision, cachemode, maxdownload, isProfiled) { if (!_Initialized) { alert(c_NotInitialized); return; } if (maxdownload > 0) { _Plugin.BeginDownload(internalname, version, layerRevision, c_PriorityLow, cachemode, WebLaunch.c_ShellModeNone, maxdownload, isProfiled, false, ""); } } this.Prefetch2 = function(configPath, cachemode, maxdownload, isProfiled) { _this.Prefetch(configPath, "", -1, cachemode, maxdownload, isProfiled); } this.Execute = function(key, args) { if (!_Initialized) { alert(c_NotInitialized); return; } if (_IsSurface) { return _Plugin.ExecuteInSurface(key, unescape(args)); } return _Plugin.Execute(key, unescape(args)); } this.ShowSurface = function(show) { if (!_Initialized) { alert(c_NotInitialized); return; } if (_IsSurface) { if (show) { if (_UseIE) { _Plugin.style.left = _SurfaceLeft + "px"; } else { _Plugin.style.visibility = "visible"; } } else { if (_UseIE) { _Plugin.style.left = (2 * _SurfaceWidth) + "px"; } else { _Plugin.style.visibility = "hidden"; } } } } this.CancelDownload = function(key) { if (!_Initialized) { alert(c_NotInitialized); return; } _Plugin.CancelDownload(key); } this.EndSession = function(key) { if (!_Initialized) { alert(c_NotInitialized); return; } _Plugin.EndSession(key); } this.Register = function(internalname, version, layerRevision) { if (!_Initialized) { alert(c_NotInitialized); return; } _Plugin.Register(internalname, version, layerRevision); } this.Unregister = function(internalname, version, layerRevision) { if (!_Initialized) { alert(c_NotInitialized); return; } _Plugin.Unregister(internalname, version, layerRevision); } this.Clean = function() { if (!_Initialized) { alert(c_NotInitialized); return; } _Plugin.Clean(); } this.IsRunning = function(key) { if (!_Initialized) { alert(c_NotInitialized); return; } return _Plugin.IsRunning(key); } this.IsComplete = function(internalname, version, layerRevision) { if (!_Initialized) { alert(c_NotInitialized); return; } return _Plugin.IsComplete(internalname, version, layerRevision); } this.IsReadyToExecute = function(internalname, version, layerRevision) { if (!_Initialized) { alert(c_NotInitialized); return; } return _Plugin.IsReady(internalname, version, layerRevision); } this.IsStreamable = function(internalname, version, layerRevision) { if (!_Initialized) { alert(c_NotInitialized); return; } return _Plugin.IsStreamable(internalname, version, layerRevision); } this.ResetSandbox = function(internalname, version, layerRevision) { if (!_Initialized) { alert(c_NotInitialized); return; } _Plugin.ResetSandbox(internalname, version, layerRevision); } function _MassageSourceUrl(source) { source = source.toLowerCase(); var start = source.indexOf("/", source.indexOf("/") + 1); var c_StartHost = "start-"; if (source.substring(start + 1, start + 1 + c_StartHost.length) == c_StartHost) { var pathStart = source.indexOf("/", start + 1); source = "http://start.xenocode.com/" + source.substring(pathStart + 1); } return source; } function _IsVersionEqualOrNewerThan(major, minor) { if (_Plugin == null) { return false; } if (_Plugin.MajorVersion > major || (_Plugin.MajorVersion == major && _Plugin.MinorVersion >= minor)) { return true; } return false; } function _CreatePlugin(installIfNot) { var ret = WebLaunch.c_PluginInstallFailed; if (_UseIE) { ret = _CreatePluginIE(installIfNot); } else if (_UseFF || _UseChrome || _UseSafari || _UseOpera || _UseGecko) { ret = _CreatePluginFF(installIfNot, _UseOpera); } else { alert(c_Unsupported); return WebLaunch.c_PluginInstallFailed; } if (_Plugin == null || _getMajorVersion() == 'undefined') { _Plugin = null; ret = WebLaunch.c_PluginInstallFailed; } if (ret == WebLaunch.c_PluginInstallSuccess) { if (_getMajorVersion() != c_MajorVersion || _getMinorVersion() != c_MinorVersion) { _Plugin = null; ret = WebLaunch.c_PluginInstallFailed; } } if (ret == WebLaunch.c_PluginInstallSuccess && _IsSurface && _Plugin != null) { _Plugin.style.left = _SurfaceLeft + "px"; _Plugin.style.top = _SurfaceTop + "px"; _Plugin.style.width = _SurfaceWidth + "px"; _Plugin.style.height = _SurfaceHeight + "px"; if (_UseIE) { _Plugin.style.left = (2 * _SurfaceWidth) + "px"; _Plugin.style.visibility = "visible"; } } return ret; } function _CreatePluginIE(installIfNot) { if (_Plugin != null) { return WebLaunch.c_PluginInstallSuccess; } _Plugin = _BuildIEPlugin(); if (_Plugin != null) { return WebLaunch.c_PluginInstallSuccess; } if (installIfNot) { _InstallPluginIE(false); return WebLaunch.c_PluginInstallStarted; } return WebLaunch.c_PluginInstallFailed; } function _CreateIEPluginObject(guid) { var p = document.createElement("object"); p.classid = "CLSID:" + guid; p.style.position = "absolute"; p.style.visibility = "hidden"; document.body.appendChild(p); if (typeof (p.MajorVersion) != "undefined") { return p; } document.body.removeChild(p); return null; } function _BuildIEPlugin() { var p = null; for (var i = 0; i < _IEWebLaunchClassIds.length; ++i) { try { p = _CreateIEPluginObject(_IEWebLaunchClassIds[i]); if (p != null) { return p; } } catch (e) { } } return null; } function _CreatePluginFF(installIfNot, useOpera) { if (_Plugin != null) { return WebLaunch.c_PluginInstallSuccess; } navigator.plugins.refresh(false); var found = false; for (var i = 0; i < navigator.mimeTypes.length; ++i) { if (navigator.mimeTypes[i].type == c_WebLaunchMimeType) { found = true; break; } } if (!found) { if (installIfNot) { _InstallPluginFF(false); return WebLaunch.c_PluginInstallStarted; } else { return WebLaunch.c_PluginInstallFailed; } } _Plugin = document.getElementById(c_WebLaunchId); if (_Plugin == null) { _Plugin = _CreateEmbedObject(); } if (_Plugin == null) { return WebLaunch.c_InstallFailed; } return WebLaunch.c_PluginInstallSuccess; } function _CreateEmbedObject(mimeType) { if (!mimeType) { mimeType = c_WebLaunchMimeType; } var plugin = document.createElement("embed"); plugin.id = c_WebLaunchId; plugin.type = mimeType; plugin.style.position = "absolute"; plugin.style.visibility = "hidden"; document.body.appendChild(plugin); return plugin; } function _InstallPlugin(autorun) { if (_UseIE) { _InstallPluginIE(autorun); } else if (_UseFF || _UseChrome || _UseSafari || _UseOpera || _UseGecko) { _InstallPluginFF(autorun); } else { alert(c_NotInitialized); } } function _InstallPluginFF(autorun) { window.location = _InstallLink; Util.trackEvent(c_PluginInstallEvent, _InstallLink); _TryAutoRefreshAfterInstall(autorun); } function _InstallPluginIE(autorun) { window.location = _InstallLink; Util.trackEvent(c_PluginInstallEvent, _InstallLink); _TryAutoRefreshAfterInstall(autorun); } function _TryAutoRefreshAfterInstall(autorun) { if (_AutoInstallTimerId) { return; } _AutoInstallTimerId = setInterval(function() { if (_CreatePlugin() == WebLaunch.c_PluginInstallSuccess) { if (_Plugin.Ping()) { clearInterval(_AutoInstallTimerId); _AutoInstallTimerId = 0; if (autorun) { Util.setCookie(WebLaunch._BuildAutoRunCookieName(_InternalName), "true"); } window.location = window.location; return; } } } , 1000); } function _UpdatePlugin(installIfNot) { if (_UseIE || _UseFF || _UseChrome || _UseSafari || _UseOpera || _UseGecko) { if (installIfNot || _NeedsUpgrade) { _NeedsUpgrade = false; window.location = _InstallLink; return WebLaunch.c_PluginInstallFailed; } _NeedsUpgrade = true; return WebLaunch.c_PluginInstallSuccess; } else { alert(c_Unsupported); return WebLaunch.c_PluginInstallFailed; } } var b = Util.getBrowser(); if (b == Util.c_BrowserExplorer) { _UseIE = true; } else if (b == Util.c_BrowserFirefox) { _UseFF = true; } else if (b == Util.c_BrowserChrome) { _UseChrome = true; } else if (b == Util.c_BrowserOpera) { _UseOpera = true; } else if (b == Util.c_BrowserSafari) { _UseSafari = true; } else if (Util.getIsGeckoBrowser()) { _UseGecko = true; } else { return; } } WebLaunch.CheckStatusInterval = 500;WebLaunch.c_InternalError = -1;WebLaunch.c_NotStarted = 0;WebLaunch.c_InProgress = 1;WebLaunch.c_Complete = 2;WebLaunch.c_StreamComplete = 3;WebLaunch.c_Cancelled = 4;WebLaunch.c_Error = 5;WebLaunch.c_ConfirmDownload = 6;WebLaunch.c_Abort = 7;WebLaunch.c_ErrorNone = 0;WebLaunch.c_ErrorUnknown = 1;WebLaunch.c_ErrorInvalidAppId = 2;WebLaunch.c_ErrorNetwork = 3;WebLaunch.c_ErrorInvalidUri = 4;WebLaunch.c_ErrorInvalidFormat = 5;WebLaunch.c_ErrorLowDiskSpace = 6;WebLaunch.c_ErrorTimeout = 7;WebLaunch.c_PluginInstallSuccess = 0;WebLaunch.c_PluginInstallStarted = 1;WebLaunch.c_PluginInstallFailed = 2;WebLaunch.c_CacheModeNone = 0;WebLaunch.c_CacheModePrefetch = 1;WebLaunch.c_CacheModeFull = 2;WebLaunch.c_ShellModeNone = 0;WebLaunch.c_ShellModeRegister = 1;WebLaunch.c_ShellModeRegisterAfterCompletion = 2;WebLaunch.c_DefaultPrefetch = 10;WebLaunch.c_ErrorInvalidDomain = "ErrorInvalidDomain";WebLaunch.c_ErrorNoAvailableLicense = "ErrorNoAvailableLicense";WebLaunch.c_ErrorAppNotTrusted = "ErrorAppNotTrusted";WebLaunch.ShouldAutoRun = function(internalName){ var cookieName = WebLaunch._BuildAutoRunCookieName(internalName); if (Util.getCookie(cookieName) == "true") { Util.setCookie(cookieName, "false"); return true; } return false;} WebLaunch.SetShouldAutoRun = function(internalName){ var cookieName = WebLaunch._BuildAutoRunCookieName(internalName); Util.setCookie(cookieName, "true");} WebLaunch.IsReadyToExecute = function(eStatus){ return (eStatus == WebLaunch.c_Complete || eStatus == WebLaunch.c_StreamComplete);} WebLaunch._BuildAutoRunCookieName = function(internalName){ return "SpoonPluginAutoRun" + "_" + internalName;} if (!window.__XINCLUDES){ window.__XINCLUDES = new Array();} window.__XINCLUDES["__WEBAPPAPI__"] = true;if (!window.__XINCLUDES["__WEBLAUNCH__"]){ alert("Weblaunch.js is a dependency that has not been loaded.");} function SpoonApi(sInternalName, sVersion, iLayerRevision, sImageUrl){ var c_StartDownloadErrorMessage = "An error occurred while trying to buffer the application. Please try again."; var c_IncompleteDownloadErrorMessage = "An error occurred while buffering the application. Please try again."; var c_InvalidDomainErrorMessage = "The application is not available from this web site."; var c_NoAvailableLicenseErrorMessage = "There are no available licenses to run this application from the server. Please contact your administrator."; var c_AppNotTrustedErrorMessage = "A client certificate is required to use this application. Please contact your administrator."; var c_MissingParamErrorMessage = "The SpoonApi object is missing an argument: "; if(typeof(sInternalName) != "string" || sInternalName.length == 0) { alert(c_MissingParamErrorMessage + "application name"); return; } var _sVersion = ""; var _iLayerRevision = -1; if (/^[a-z]+:\/\/.*/.test(sInternalName)) { _sVersion = ""; _iLayerRevision = -1; } else { if (typeof (sVersion) != "string" || sVersion.length == 0) { alert(c_MissingParamErrorMessage + "application version"); return; } if (typeof (iLayerRevision) != "number" || iLayerRevision < 0) { alert(c_MissingParamErrorMessage + "layer revision"); return; } _sVersion = sVersion; _iLayerRevision = iLayerRevision; } var _this = this; var _sInternalName = sInternalName; var _sAppKey = ""; var _iCheckStatusTimerId = 0; var _iIsStreamable = 0; var _sImageUrl = sImageUrl; if (typeof (_sImageUrl) != "string") { _sImageUrl = ""; } this.IsReadyToExecute = function() { if (!SpoonApi._CreatePlugin()) { return false; } if (_sAppKey.length == 0) { return SpoonApi._oPlugin.IsReadyToExecute(_sInternalName, _sVersion, _iLayerRevision); } else { var eStatus = SpoonApi._oPlugin.GetStatus(_sAppKey); return WebLaunch.IsReadyToExecute(eStatus); } } this.IsComplete = function() { if (!SpoonApi._CreatePlugin()) { return false; } if (_sAppKey.length == 0) { return SpoonApi._oPlugin.IsComplete(_sInternalName, _sVersion, _iLayerRevision); } else { var eStatus = SpoonApi._oPlugin.GetStatus(_sAppKey); if (_this.IsStream()) { return (eStatus == WebLaunch.c_StreamComplete); } else { return (eStatus == WebLaunch.c_Complete); } } } this.IsRunning = function() { if (typeof (_sAppKey) != "string" || _sAppKey.length == 0) { return false; } if (!SpoonApi._CreatePlugin()) { return false; } return SpoonApi._oPlugin.IsRunning(_sAppKey); } this.IsError = function() { if (!SpoonApi._CreatePlugin()) { return false; } if (_sAppKey.length == 0) { return false; } else { var eStatus = SpoonApi._oPlugin.GetStatus(_sAppKey); return eStatus == WebLaunch.c_Error; } } this.IsAborted = function() { if (!SpoonApi._CreatePlugin()) { return false; } if (_sAppKey.length == 0) { return false; } else { var eStatus = SpoonApi._oPlugin.GetStatus(_sAppKey); return (eStatus == WebLaunch.c_Abort || eStatus == WebLaunch.c_Cancelled); } } this.IsStream = function() { if (!SpoonApi._CreatePlugin()) { return false; } if (_iIsStreamable == 0) { if (SpoonApi._oPlugin.IsStreamable(_sInternalName, _sVersion, _iLayerRevision)) { _iIsStreamable = 1; } else { _iIsStreamable = -1; } } return (_iIsStreamable == 1); } this.Download = function(fShowBufferingUI, fRegisterToShell, fProfile) { if (typeof (fShowBufferingUI) != "boolean") { fShowBufferingUI = true; } if (typeof (fRegisterToShell) != "boolean") { fRegisterToShell = false; } if (typeof (fProfile) != "boolean") { fProfile = false; } if (!SpoonApi._CreatePlugin()) { return false; } var iShellMode = (fRegisterToShell) ? WebLaunch.c_ShellModeRegister : WebLaunch.c_ShellModeNone; _sAppKey = SpoonApi._oPlugin.BeginDownload(_sInternalName, _sVersion, _iLayerRevision, WebLaunch.c_CacheModePrefetch, iShellMode, fProfile, fShowBufferingUI, _sImageUrl); if (typeof (_sAppKey) != "string" || _sAppKey.length == 0) { alert(c_StartDownloadErrorMessage); _sAppKey = ""; return false; } else if (_sAppKey == WebLaunch.c_ErrorInvalidDomain) { alert(c_InvalidDomainErrorMessage); _sAppKey = ""; return false; } else if (_sAppKey == WebLaunch.c_ErrorNoAvailableLicense) { alert(c_NoAvailableLicenseErrorMessage); _sAppKey = ""; return false; } else if (_sAppKey == WebLaunch.c_ErrorAppNotTrusted) { alert(c_AppNotTrustedErrorMessage); _sAppKey = ""; return false; } return true; } this.FullDownload = function(fRegister) { var iShellMode = WebLaunch.c_ShellModeNone; if (typeof (fRegister) == "boolean" && fRegister) { iShellMode = WebLaunch.c_ShellModeRegisterAfterCompletion; } if (!SpoonApi._CreatePlugin()) { return false; } _sAppKey = SpoonApi._oPlugin.FullDownload(_sInternalName, _sVersion, _iLayerRevision, iShellMode); if (typeof (_sAppKey) != "string" || _sAppKey.length == 0) { alert(c_StartDownloadErrorMessage); _sAppKey = ""; return false; } else if (_sAppKey == WebLaunch.c_ErrorInvalidDomain) { alert(c_InvalidDomainErrorMessage); _sAppKey = ""; return false; } return true; } this.Cancel = function() { if (typeof (_sAppKey) != "string" || _sAppKey.length == 0) { return; } if (!SpoonApi._CreatePlugin()) { return false; } if (_this.IsRunning()) { return false; } SpoonApi._oPlugin.CancelDownload(_sAppKey); SpoonApi._oPlugin.EndSession(_sAppKey); } this.Run = function(fShowBufferingUI, sArgs, fRegisterToShell) { if (typeof (sArgs) != "string") { sArgs = ""; } if (typeof (_sAppKey) != "string" || _sAppKey.length == 0) { if (!_this.Download(fShowBufferingUI, fRegisterToShell)) { return; } } _StopStatusTimer(); _iCheckStatusTimerId = setInterval( function() { var iStatus = SpoonApi._oPlugin.GetStatus(_sAppKey); if (iStatus == WebLaunch.c_InProgress) { } else { _StopStatusTimer(); if (WebLaunch.IsReadyToExecute(iStatus)) { var sRet = SpoonApi._oPlugin.Execute(_sAppKey, sArgs); if (sRet.length > 0) { alert(sRet); } } else { alert(c_IncompleteDownloadErrorMessage); } } } , 200); } this.Prefetch = function() { if (!SpoonApi._CreatePlugin()) { return; } SpoonApi._oPlugin.Prefetch(_sInternalName, _sVersion, _iLayerRevision, WebLaunch.c_CacheModePrefetch, WebLaunch.c_DefaultPrefetch, false); } this.Register = function() { if (!SpoonApi._CreatePlugin()) { return; } SpoonApi._oPlugin.Register(_sInternalName, _sVersion, _iLayerRevision); } this.Unregister = function() { if (!SpoonApi._CreatePlugin()) { return; } SpoonApi._oPlugin.Unregister(_sInternalName, _sVersion, _iLayerRevision); } this.ResetSandbox = function() { if (!SpoonApi._CreatePlugin()) { return; } SpoonApi._oPlugin.ResetSandbox(_sInternalName, _sVersion, _iLayerRevision); } function _StopStatusTimer() { if (_iCheckStatusTimerId != 0) { clearInterval(_iCheckStatusTimerId); _iCheckStatusTimerId = 0; } } } SpoonApi.IsSupportedBrowser = function(){ var dWinVer = Util.getWindowsVersion(); return (dWinVer > 0 && Util.getIsSupportedBrowser());} SpoonApi.IsPluginInstalled = function(){ return SpoonApi._CreatePlugin();} SpoonApi.IsUpdateNeeded = function(){ return SpoonApi._oPlugin.IsMajorUpdateNeeded();} SpoonApi.Clean = function(){ if (!SpoonApi._CreatePlugin()) { return; } SpoonApi._oPlugin.Clean();} SpoonApi.IsInitialized = function(){ if (!SpoonApi._CreatePlugin()) { return false; } return SpoonApi._oPlugin.IsInitialized();} SpoonApi._sMimeType = "application/mozilla-spoon-plugin-3-21";SpoonApi._oPlugin = null;SpoonApi._CreatePlugin = function(){ if (SpoonApi._oPlugin == null) { SpoonApi._oPlugin = new WebLaunch("", "", false, SpoonApi._sMimeType); } if (SpoonApi._oPlugin.IsClientInitialized()) { return true; } var iRet = SpoonApi._oPlugin.Initialize(false); if (iRet == WebLaunch.c_PluginInstallSuccess) { return true; } return false;}