{"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","uk","df","cacheCookieName","figFailed","figStale","figCached","figOverridden","figData","figSuccessCallbacks","figErrorCallbacks","param","getCookie","cookie","encodeURIComponent","restrictFigData","newFigData","restrictedFigData","values","index","hasOwnProperty","load","onSuccess","onError","isDefault","geo","isUK","isEU","redirect","toLowerCase","host","location","hostname","currentPage","href","bbcredirection","device","page","test","user","destinationPage","bbcpage","loadModule","then","bbccookies","redirectedFromCurrent","redirectedFromDestination","del","domain","path","require","istats","log","updateCacheCookie","date","Date","setTime","getTime","set","JSON","stringify","expires","setData","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 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.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 };\n var user = {\n isDomestic: figData.uk,\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 // 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() {\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 // restrict keys to known used keys\n var restrictedFigData = restrictFigData(newFigData);\n\n fig.updateCacheCookie(restrictedFigData);\n if (!fig.isCached()) {\n fig.setData(restrictedFigData);\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 function restrictFigData(newFigData) {\n var restrictedFigData = {};\n var values = ['ad', 'ap', 'ck', 'eu', 'uk'];\n for (var index in values) {\n var key = values[index];\n if (newFigData.hasOwnProperty(key)) {\n restrictedFigData[key] = newFigData[key];\n }\n }\n return restrictedFigData;\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 = restrictFigData(newFig || defaultFig);\n fig.updateCacheCookie(figData);\n fig.redirect();\n };\n\n document.write('