{"version":3,"sources":["api.js","_script.js","_figManager.js","_font.js","bbcuser.js"],"names":["define","eventQueue","layout","settings","f","push","trigger","eventName","e","i","l","length","config","key","val","arguments","undefined","uid","exports","inject","src","scriptEl","document","createElement","getElementsByTagName","appendChild","jsonp","url","callback","opts","script","timer","timedOut","callbackName","timeout","setTimeout","error","keyParts","split","child","parent","window","data","clearTimeout","parentNode","removeChild","indexOf","orb","name","match","referrer","decodeURIComponent","RegExp","$1","replace","jsonpTimeout","fig","lastHostName","defaultFig","ad","ap","ck","eu","mb","tb","uk","df","cacheCookieName","figFailed","figStale","figCached","figOverridden","figData","figSuccessCallbacks","figErrorCallbacks","param","getCookie","cookie","encodeURIComponent","load","onSuccess","onError","isDefault","geo","isUK","isEU","device","isMobile","isTablet","redirect","toLowerCase","host","location","hostname","currentPage","href","bbcredirection","page","test","user","destinationPage","bbcpage","loadModule","then","bbccookies","devicePreference","get","redirectedFromCurrent","redirectedFromDestination","del","domain","path","require","istats","log","updateCacheCookie","date","Date","setTime","getTime","set","JSON","stringify","expires","setData","newFigData","figSuccess","isCached","c","figError","isOverridden","isStale","init","overrideCookieValue","overrideCookieData","value","cacheCookieValue","cacheCookieData","parse","orb_fig_blocking","orb_fig","newFig","write","figUrl","a","b","addEventListener","attachEvent","r","this","setAttribute","createTextNode","h","g","style","cssText","t","y","offsetWidth","width","scrollLeft","scrollWidth","z","k","A","family","weight","stretch","B","C","E","F","J","fonts","L","font","K","join","prototype","q","D","H","Promise","navigator","vendor","exec","userAgent","parseInt","G","M","N","race","u","v","w","x","d","n","p","dir","body","I","hidden","removeEventListener","readyState","detachEvent","module","FontFaceObserver","myNav","asyncLoadFont","triggerClass","loadedClass","documentElement","className","RegularFFO","BoldFFO","all","defined","nav","refresh","catch","console","ukCountryCodes","euCountryCodes","countryMatches","validCountries","country","toUpperCase","service","isUKCombined","amd"],"mappings":"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","file":"api.min.js","sourcesContent":["\n/** @lint */\n\n/**\n * @module orb/features/api\n */\ndefine('orb/api', function () {\n 'use strict';\n\n var eventQueue = {layout: []},\n settings = {};\n\n var api = {\n /**\n Listen for changes to the layout of ORB masthead.\n */\n layout: function (f) {\n eventQueue.layout.push(f);\n },\n /**\n Trigger a custom event, such as \"layout\".\n */\n trigger: function (eventName, e) {\n if (eventQueue[eventName]) {\n for (var i = 0, l = eventQueue[eventName].length; i < l; i++) {\n eventQueue[eventName][i](e);\n }\n }\n },\n /**\n Get or set the configuration properties.\n @example\n orb.config('maxSuggestions', 3);\n */\n config: function (key, val) {\n if (arguments.length === 0) {\n return settings;\n }\n else if (arguments.length === 1) {\n return settings[key];\n }\n else {\n settings[key] = val;\n }\n }\n };\n\n return api;\n});\n","/** @lint */\n\n/**\n * @module orb/lib/_script.js\n */\ndefine('orb/lib/_script', function (undefined) {\n 'use strict';\n \n var uid = 1; // unique scriptnode name identifier\n\n var exports = {\n inject: function (src) {\n var scriptEl;\n\n scriptEl = document.createElement('script');\n scriptEl.src = src;\n document.getElementsByTagName('head')[0].appendChild(scriptEl);\n \n return scriptEl;\n },\n /**\n @param {string} url The remote URL of the service providing the JSONP data.\n @param {function} callback The function to execute once the JSON has been unwrapped from its JSONP.\n @param {object} [opts] The options.\n @param {string} [opts.callbackName] The name of the JSONP function, defaults to \"jsonpcb_#\" where # is an incrementing number.\n @param {number} [opts.timeout] The number of milliseconds to wait before giving up (and calling the error function, if one is given).\n @param {function} [opts.error] The function to call if the JSONP request times out.\n */\n jsonp: function (url, callback, opts) {\n var key,\n script,\n timer,\n timedOut = false;\n opts = opts || {};\n \n key = opts.callbackName ? opts.callbackName : 'jsonpcb' + (uid++);\n \n if (opts.timeout) {\n timer = setTimeout(function () {\n timedOut = true;\n if (opts.error) {\n opts.error();\n }\n }, opts.timeout);\n }\n\n var keyParts = key.split(\".\");\n var child = keyParts[keyParts.length-1];\n var parent = window;\n for (var i = 0, l = keyParts.length; i < l-1; i++) {\n parent = parent[keyParts[i]];\n }\n\n parent[child] = function (data) {\n clearTimeout(timer);\n if (!timedOut) {\n callback(data);\n }\n if (script && script.parentNode) {\n script.parentNode.removeChild(script);\n }\n parent[child] = undefined;\n };\n\n script = exports.inject(url + (url.indexOf('?') === -1 ? '?' : '&') + 'callback=' + key);\n }\n };\n \n return exports;\n});\n","// Pass on the referrer if we have been redirected by IGOR\nwindow.orb = window.orb || {};\nif (window.name.match(/ orb_fig_referrer=([^ ]*)/)) {\n // TODO: Move to iStats\n window.orb.referrer = decodeURIComponent(RegExp.$1);\n window.name = window.name.replace(/ orb_fig_referrer=([^ ]*)/, '');\n}\n\nvar jsonpTimeout = 10000; // default timeout in ms is relatively long; generally it's happening in the background and cached data are available to use\n\nwindow.orb.fig = function () {\n\n var lastHostName;\n\n var defaultFig = {\n ad: 0,\n ap: 0,\n ck: 1,\n eu: 1,\n mb: 0,\n tb: 0,\n uk: 1,\n df: 1 // default fig (does not exist when we get a true fig response)\n };\n var overrideCookieName = 'ckns_orb_fig';\n var cacheCookieName = 'ckns_orb_fig_cache';\n var figCacheCookieTTL = 432000000; // five days\n\n var figFailed = false;\n var figStale = false;\n var figCached = false;\n var figOverridden = false;\n var figData = defaultFig;\n var figSuccessCallbacks = [];\n var figErrorCallbacks = [];\n\n var fig = function (param) {\n return param ? figData[param] : figData;\n };\n\n // Fig API\n fig.load = function (onSuccess, onError) {\n\n if (fig.figFailed()) {\n // If the Fig JSONP has finished and already failed, then\n // we can immediately call any error callbacks\n if (onError && typeof onError === 'function') {\n onError(fig);\n }\n }\n else {\n // If the fig hasn't failed (yet) and we have default data,\n // then we need to queue up both callbacks until we know which\n // to call.\n if (fig.isDefault()) {\n if (onSuccess && typeof onSuccess === 'function') {\n figSuccessCallbacks.push(onSuccess);\n }\n if (onError && typeof onError === 'function') {\n figErrorCallbacks.push(onError);\n }\n }\n // If the fig is not failed and not default data, then we know\n // it has both finished and succeeded, so call success callbacks\n else {\n if (onSuccess && typeof onSuccess === 'function') {\n onSuccess(fig);\n }\n }\n }\n };\n\n fig.isDefault = function () {\n return figData.df ? 1 : 0;\n };\n\n fig.geo = {\n isUK: function () {\n return fig(\"uk\");\n },\n isEU: function () {\n return fig(\"eu\");\n }\n };\n\n fig.device = {\n isMobile: function () {\n return fig(\"mb\");\n },\n isTablet: function () {\n return fig(\"tb\");\n }\n };\n\n fig.redirect = function () {\n var referrer = (window.document.referrer || '').toLowerCase();\n var host = (window.location.hostname || '').toLowerCase();\n var currentPage = (window.location.href || '');\n\n var redirectionIsEnabled = (window.bbcredirection && (window.bbcredirection.geo || window.bbcredirection.device));\n if (!redirectionIsEnabled || referrer === currentPage.toLowerCase()) {\n return;\n }\n\n var page = {\n isDomestic: /(^|\\.)bbc\\.co\\.uk$/i.test(host),\n isInternational: /(^|\\.)bbc\\.com$/i.test(host),\n isMobile: /^m\\./i.test(host),\n isDesktop: /^(www|pal)\\./i.test(host)\n };\n var user = {\n isDomestic: figData.uk,\n isMobile: figData.mb\n };\n\n var destinationPage = currentPage;\n\n if (window.bbcredirection.geo) {\n if (page.isInternational && user.isDomestic) {\n destinationPage = currentPage.replace(/^(.+?bbc)\\.com/i, '$1.co.uk');\n }\n else if (page.isDomestic && !user.isDomestic) {\n destinationPage = currentPage.replace(/^(.+?bbc)\\.co\\.uk/i, '$1.com');\n }\n }\n\n window.bbcpage.loadModule(['orb/cookies'])\n .then(function(bbccookies) {\n if (window.bbcredirection.device) {\n var devicePreference = bbccookies.get('ckps_d');\n if (page.isDesktop && (devicePreference === 'm' || (!devicePreference && user.isMobile))) {\n destinationPage = destinationPage.replace(/^(https?:\\/\\/)(www|pal)\\./i, '$1m.');\n }\n else if (page.isMobile && (devicePreference === 'd' || (!devicePreference && !user.isMobile))) {\n destinationPage = destinationPage.replace(/^(https?:\\/\\/)m\\./i, '$1www.');\n }\n }\n\n // avoid redirecting to ourselves, or redirecting to the page we just came from\n var shouldRedirect = destinationPage !== currentPage && referrer !== destinationPage.toLowerCase();\n\n if (shouldRedirect) {\n\n var redirectedFromCurrent = lastHostName === window.location.hostname;\n var redirectedFromDestination = lastHostName && destinationPage.indexOf(lastHostName) > -1;\n\n try {\n bbccookies.del(cacheCookieName, {domain: '.bbc.co.uk', path: '/'});\n bbccookies.del(cacheCookieName, {domain: '.bbc.com', path: '/'});\n\n if (!redirectedFromCurrent && !redirectedFromDestination) {\n window.name += ' orb_fig_last_hostname=' + window.location.hostname;\n window.name += ' orb_fig_referrer=' + encodeURIComponent(document.referrer);\n window.location.replace(destinationPage);\n }\n }\n catch (e) {\n require(['istats-1'], function (istats) {\n istats.log('redirection_fail', '', {});\n });\n }\n }\n });\n\n };\n\n fig.updateCacheCookie = function (figData) {\n figStale = false;\n var date = new Date();\n date.setTime(date.getTime() + (figCacheCookieTTL));\n window.bbcpage.loadModule(['orb/cookies'])\n .then(function(bbccookies) {\n window.bbccookies.set(cacheCookieName, JSON.stringify(figData), { domain: '.bbc.co.uk', expires: date, path: '/' });\n window.bbccookies.set(cacheCookieName, JSON.stringify(figData), { domain: '.bbc.com', expires: date, path: '/' });\n });\n };\n\n fig.setData = function (newFigData) {\n figData = newFigData;\n fig.redirect();\n };\n\n fig.figSuccess = function (newFigData) {\n fig.updateCacheCookie(newFigData);\n if (!fig.isCached()) {\n fig.setData(newFigData);\n }\n for (var c = 0, l = figSuccessCallbacks.length; c < l; c++) {\n figSuccessCallbacks[c](fig);\n }\n };\n\n fig.figError = function () {\n figFailed = true;\n // If non-default data is acquired e.g. via the cache cookie, then do\n // not inform the caller of an error by calling their error function\n // This is effectively doing a stale-if-error pattern.\n if (fig.isDefault()) {\n for (var c = 0, l = figErrorCallbacks.length; c < l; c++) {\n figErrorCallbacks[c](fig);\n }\n }\n };\n\n fig.figFailed = function () {\n return figFailed;\n };\n\n fig.isOverridden = function () {\n return figOverridden;\n };\n\n fig.isCached = function () {\n return figCached;\n };\n\n fig.isStale = function () {\n return figStale;\n };\n\n function getCookie(key) {\n if (!key) {\n return document.cookie;\n }\n return decodeURIComponent(document.cookie.replace(new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodeURIComponent(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"), \"$1\")) || null;\n }\n\n fig.init = function () {\n // Main flow\n\n // Make sure window.name is always cleared before you redirect\n if (window.name.match(/ orb_fig_last_hostname=([^ ]*)/)) {\n lastHostName = decodeURIComponent(RegExp.$1);\n window.name = window.name.replace(/ orb_fig_last_hostname=([^ ]*)/, '');\n }\n\n var overrideCookieValue = getCookie(overrideCookieName);\n // Set fig to the override cookie values if the cookie is present\n if (overrideCookieValue) {\n var overrideCookieData = {};\n overrideCookieValue.replace(/([a-z]{2}):([0-9]+)/g, function (match, key, value) {\n overrideCookieData[key] = +value;\n });\n figData = overrideCookieData;\n fig.redirect();\n figOverridden = true;\n return fig;\n } else {\n figOverridden = false;\n }\n\n var cacheCookieValue = getCookie(cacheCookieName);\n // Set fig to the cached fig cookie values if the cookie is present\n if (cacheCookieValue) {\n try {\n var cacheCookieData = JSON.parse(cacheCookieValue);\n figData = cacheCookieData;\n fig.redirect();\n figStale = true;\n figCached = true;\n }\n catch (error) {\n jsonpTimeout = 3000; // shorter timeout in ms because no cached data available\n figData = defaultFig;\n figCached = false;\n }\n } else {\n // Otherwise, update the fig instance with no values (the default fig ones)\n jsonpTimeout = 3000; // shorter timeout in ms because no cached data available\n figData = defaultFig;\n figCached = false;\n }\n if (window.orb_fig_blocking && !overrideCookieValue && !cacheCookieValue) {\n // fig.js response will always call orb.orb_fig so we have to set up\n // that global function.\n window.orb.orb_fig = function (newFig) {\n figData = newFig || defaultFig;\n fig.updateCacheCookie(figData);\n fig.redirect();\n };\n\n document.write('