var PLUGIN_VAR_NAME = 'g'; var FOOTNOTES_VAR_NAME = 'fn'; var ADAPTIVE_VIEW_VAR_NAME = 'view'; var SCALE_VAR_NAME = 'sc'; var DIM_VAR_NAME = 'dm'; var ROT_VAR_NAME = 'r'; var CLOUD_VAR_NAME = 'cl'; var TRACE_VAR_NAME = 'tr'; var RP_VERSION = 9; var lastLeftPanelWidth = 220; var lastRightPanelWidth = 220; var lastLeftPanelWidthDefault = 220; var lastRightPanelWidthDefault = 220; var toolBarOnly = true; // TODO: need to find a way to get rid of iphone X hacks!!! // - could possibly have app detect iphone and send information back to player, but currently, that information would arrive too late var iphoneX = false; var iphoneXFirstPass = true; // isolate scope (function () { if (!window.$axure) window.$axure = function () { }; if (typeof console == 'undefined') console = { log: function () { } }; if (window._axUtils) $axure.utils = _axUtils; setUpController(); var getHashStringVar = $axure.player.getHashStringVar = function (query) { var qstring = self.location.href.split("#"); if (qstring.length < 2) return ""; return GetParameter(qstring, query); } var isCloud = $axure.player.isCloud = getHashStringVar(CLOUD_VAR_NAME); if (isCloud) { $("#topPanel").css('display', 'none'); lastRightPanelWidthDefault = 290; }else { $("#topPanel").css('display', ''); } $axure.loadDocument = function (document) { $axure.document = document; var configuration = $axure.document.configuration; var _settings = {}; _settings.projectId = configuration.prototypeId; _settings.projectName = configuration.projectName; _settings.isAxshare = configuration.isAxshare; _settings.isExpo = configuration.isExpo == null ? false : configuration.isExpo; _settings.loadSitemap = configuration.loadSitemap; _settings.loadFeedbackPlugin = configuration.loadFeedbackPlugin; var cHash = getHashStringVar(SITEMAP_COLLAPSE_VAR_NAME); _settings.startCollapsed = cHash == SITEMAP_COLLAPSE_VALUE; if (cHash == SITEMAP_CLOSE_VALUE) closePlayer(); var gHash = getHashStringVar(PLUGIN_VAR_NAME); _settings.startPluginGid = gHash; $axure.player.settings = _settings; var additionalJs = $axure.document.additionalJs; if (additionalJs != null) { var total = additionalJs.length; if (total > 0) $.holdReady(true); $.each(additionalJs, function (index, value) { var script = window.document.createElement("script"); script.type = "text/javascript"; script.src = value; script.async = false; script.onload = script.onreadystatechange = function (e) { if (!script.readyState || /loaded|complete/.test(script.readyState)) { script.onload = script.onreadystatechange = null; script = undefined; } if (--total == 0) $.holdReady(false); } window.document.head.appendChild(script); }); } var additionalCss = $axure.document.additionalCss; if(additionalCss != null) { $.each(additionalCss, function(index, value) { var style = window.document.createElement('link'); style.type = "text/css"; style.rel = "stylesheet"; style.href = value; window.document.head.appendChild(style); }); } if(_settings.isExpo && configuration.isMobile) { initializeDeviceFrame(); } // Pseudo-indicator that the document has been loaded $axure.document.isLoaded = true; }; $(window).bind('load', function () { if ((CHROME && BROWSER_VERSION < 64) || // First 2018 release (SAFARI && BROWSER_VERSION < 602) || // Minor version 10 (FIREFOX && BROWSER_VERSION < 57) || // Support Quantum ($axure.browser.isEdge && BROWSER_VERSION < 15) || // 15 for mobile devices (else could go 16, possibly 17) (!$axure.browser.isEdge && IE)) { if (!QQ && !UC) appendOutOfDateNotification(); } if (CHROME_5_LOCAL && !$('body').attr('pluginDetected')) { window.location = 'resources/chrome/chrome.html'; } if (FIREFOX && BROWSER_VERSION >= 68 && document.location.href.indexOf('file://') >= 0) { //detecting firefox and local window.location = 'resources/chrome/firefox.html'; } }); function appendOutOfDateNotification() { var toAppend = ''; toAppend += '