{"version":3,"names":[],"mappings":"","sources":["bundle.min.js"],"sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i= 1) {\n $(\"input:checkbox[class='cookie otherCookie thirdpartyCookie']:checked\").each(function () {\n $(\"#thirdpartyCookie\").prop(\"checked\", true);\n });\n } else {\n $(\"#thirdpartyCookie\").removeAttr(\"checked\");\n }\n });\n }\n\n $(\"#thirdpartyCookie\").change(function () {\n if (this.checked) {\n $(\".cookie.otherCookie.thirdpartyCookie\").each(function () {\n this.checked = true;\n });\n } else {\n $(\".cookie.otherCookie.thirdpartyCookie\").each(function () {\n this.checked = false;\n });\n }\n });\n\n $(\".cookie.otherCookie.thirdpartyCookie\").click(function () {\n if ($(this).is(\":checked\")) {\n var isAllChecked = 0;\n $(\".cookie.otherCookie.thirdpartyCookie\").each(function () {\n if (!this.checked) isAllChecked = 1;\n });\n if (isAllChecked == 0) {\n $(\"#thirdpartyCookie\").prop(\"checked\", true);\n }\n } else {\n $(\"#thirdpartyCookie\").prop(\"checked\", false);\n }\n });\n\n if ($(\"input:checkbox[class='cookie otherCookie statistics']:checked\")) {\n\n $(\".cookie.otherCookie.statistics\").on(\"click input\", function () {\n\n if ($(\"input:checkbox[class='cookie otherCookie statistics']:checked\").length >= 1) {\n $(\"input:checkbox[class='cookie otherCookie statistics']:checked\").each(function () {\n $(\"#statistics\").prop(\"checked\", true);\n });\n } else {\n $(\"#statistics\").removeAttr(\"checked\");\n }\n });\n }\n\n $(\"#statistics\").change(function () {\n if (this.checked) {\n $(\".cookie.otherCookie.statistics\").each(function () {\n this.checked = true;\n });\n } else {\n $(\".cookie.otherCookie.statistics\").each(function () {\n this.checked = false;\n });\n }\n });\n\n $(\".cookie.otherCookie.statistics\").click(function () {\n if ($(this).is(\":checked\")) {\n var isAllChecked = 0;\n $(\".cookie.otherCookie.statistics\").each(function () {\n if (!this.checked) isAllChecked = 1;\n });\n if (isAllChecked == 0) {\n $(\"#statistics\").prop(\"checked\", true);\n }\n } else {\n $(\"#statistics\").prop(\"checked\", false);\n }\n });\n}\n\n/**\r\n * Set a cookie, takes 3 paramters:\r\n * @param {string} cname \r\n * @param {string} cvalue \r\n * @param {int} exdays \r\n */\nfunction setCookie(cname, cvalue, exdays) {\n var date = new Date();\n date.setTime(date.getTime() + exdays * 24 * 60 * 60 * 1000);\n var expires = \"expires=\" + date.toGMTString();\n if (cname != null || cname != undefined) {\n document.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/;\" + \"secure;\" + \"SameSite=Lax\";\n }\n}\n\n/**\r\n * Hides cookie banner if a choice has been made by the user\r\n */\nfunction cookieBannerValidation() {\n window.addEventListener('DOMContentLoaded', function () {\n var cookieBanner = getCookie(\"cookiebanner\");\n if (cookieBanner !== \"yes\") {\n $(\"#cookiebanner\").show();\n $(\"#readmoreaboutcookies\").trigger(\"focus\");\n $('.cookie-toggler').hide();\n }\n });\n}\n\n/**\r\n * Set checkbox to correct state depending on cookie value\r\n */\nfunction cookieStartUpValidation() {\n $(document).ready(function () {\n var cookieList = getAllCookies();\n\n var acookie = getOneCookie(\"cookiebanner\");\n $(\".btn-cookie\").click(function () {\n $(\".cookie\").prop(\"checked\", true);\n $(\".cookieGroup\").prop(\"checked\", true);\n setCookiesState(\"accept\");\n });\n\n var _loop = function _loop(property) {\n var name = property;\n var value = cookieList[property];\n var checkboxGroup = $(\":checkbox\").filter(function () {\n return this.value == name;\n }).attr('id');\n var checkboxCookie = $(\":checkbox\").filter(function () {\n return this.value == name;\n });\n\n if (checkboxGroup != undefined && checkboxCookie.length != 0 && value == \"yes\") {\n {\n if (checkboxCookie.length >= 0) {\n checkkWithValue(name, \"yes\");\n checkGroupValidation(checkboxGroup);\n }\n }\n } else if (checkboxGroup != undefined && checkboxCookie != 0) {\n checkkWithValue(name, \"false\");\n checkGroupValidation(checkboxGroup);\n checkGroupCookies();\n }\n };\n\n for (var property in cookieList) {\n _loop(property);\n }\n });\n}\n\nfunction getOneCookie(c_name) {\n var c_value = document.cookie,\n c_start = c_value.indexOf(\" \" + c_name + \"=\");\n if (c_start == -1) c_start = c_value.indexOf(c_name + \"=\");\n if (c_start == -1) {\n c_value = null;\n } else {\n c_start = c_value.indexOf(\"=\", c_start) + 1;\n var c_end = c_value.indexOf(\";\", c_start);\n if (c_end == -1) {\n c_end = c_value.length;\n }\n c_value = unescape(c_value.substring(c_start, c_end));\n }\n return c_value;\n}\n\nfunction checkkWithValue(val, state) {\n if (state == \"yes\") {\n $(\":checkbox\").filter(function () {\n return this.value == val;\n }).prop(\"checked\", true);\n } else {\n $(\":checkbox\").filter(function () {\n return this.value == val;\n }).prop(\"checked\", false);\n }\n}\n\n/**\r\n * Check group validation\r\n */\nfunction checkGroupValidation(cookiegroup) {\n var target = cookiegroup.replace(/\\s+/g, \"\");\n var inputs = [];\n var inputsStates = [];\n\n inputs.push($('input[type=checkbox]#' + target));\n\n inputs.forEach(function (element) {\n element.each(function () {\n inputsStates.push($(this).prop('checked'));\n });\n });\n\n if (inputsStates.indexOf(false) > -1) {\n $('input[data-target=' + target + ']').prop('checked', false);\n } else {\n $('input[data-target=' + target + ']').prop('checked', true);\n }\n\n if (inputsStates.indexOf(false) >= 0) {\n $('input[data-target=' + target + ']').prop('checked', true);\n }\n\n if ($(\"input:checkbox[class='cookie otherCookie thirdpartyCookie']:checked\").length >= 1) {\n $(\"input:checkbox[class='cookie otherCookie thirdpartyCookie']:checked\").each(function () {\n $(\"#thirdpartyCookie\").prop(\"checked\", true);\n });\n } else {\n $(\"#thirdpartyCookie\").removeAttr(\"checked\");\n }\n\n if ($(\"input:checkbox[class='cookie otherCookie statistics']:checked\").length >= 1) {\n $(\"input:checkbox[class='cookie otherCookie statistics']:checked\").each(function () {\n $(\"#statistics\").prop(\"checked\", true);\n });\n } else {\n $(\"#statistics\").removeAttr(\"checked\");\n }\n}\n\n/**\r\n * Retrieve all cookies - returns array \r\n */\nfunction getAllCookies() {\n var cookies = {};\n\n if (document.cookie && document.cookie != '') {\n var split = document.cookie.split(';');\n for (var i = 0; i < split.length; i++) {\n var name_value = split[i].split(\"=\");\n name_value[0] = name_value[0].replace(/^ /, '');\n cookies[decodeURIComponent(name_value[0])] = decodeURIComponent(name_value[1]);\n }\n }\n\n return cookies;\n}\n\n/**\r\n * Get a cookie - returns value\r\n * @param {string} cname \r\n */\nfunction getCookie(cname) {\n var name = cname + \"=\";\n var decodedCookie = decodeURIComponent(document.cookie);\n var ca = decodedCookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return \"\";\n}\n\n/**\r\n * Remove all cookies\r\n */\nfunction removeCookies() {\n $(\".btn-remove-cookies\").click(function () {});\n}\n\n/**\r\n * Accept selected cookies and set cookiebanner cookie to true, so user will not se cookie banner again!\r\n */\nfunction acceptCookies() {\n $(\".btn-necessaryCookie\").click(function () {\n $(\".otherCookie.cookie\").prop(\"checked\", false);\n $(\".otherCookie.cookieGroup\").prop(\"checked\", false);\n setCookiesState(\"accept\");\n });\n\n $('.btn-accept-cookie').click(function () {\n setCookiesState(\"accept\");\n });\n}\n\n/**\r\n * Helper function for setting cookie state\r\n * @param {*} choice \r\n * @param {*} state \r\n */\nfunction setCookiesState(choice) {\n var cookieList = [];\n\n $('input[type=checkbox].cookie').each(function () {\n if ($(this).attr('id').startsWith('necessaryCookie')) {\n this.value = 'necessaryCookie';\n cookieList.push($(this));\n } else {\n cookieList.push($(this));\n }\n });\n $('input[type=checkbox].cookieGroup').each(function () {\n if ($(this).attr('data-target') == 'necessaryCookie') {\n this.value = 'necessaryCookie';\n cookieList.push($(this));\n } else {\n cookieList.push($(this));\n }\n });\n\n cookieList.forEach(function (element) {\n if (choice == \"accept\") {\n if (element[0].checked == true) {\n $(element).prop('checked', true);\n setCookie($(element).val(), \"yes\", 30);\n } else {\n $(element).prop('checked', false);\n setCookie($(element).val(), \"\", null, null);\n }\n } else if (choice == \"remove\") {\n $(element).prop('checked', true);\n setCookie($(element).val(), \"\", null, null);\n }\n });\n\n setCookie(\"cookiebanner\", \"yes\", 30);\n $(\"#cookiebanner\").hide();\n window.location.reload();\n}\n\nexports.toggleCookie = toggleCookie;\nexports.closeBannerOptions = closeBannerOptions;\nexports.openBannerOptions = openBannerOptions;\nexports.checkGroupCookies = checkGroupCookies;\nexports.cookieStartUpValidation = cookieStartUpValidation;\nexports.setCookie = setCookie;\nexports.removeCookies = removeCookies;\nexports.acceptCookies = acceptCookies;\nexports.cookieBannerValidation = cookieBannerValidation;\n\n},{}],5:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction editor() {\n $(document).ready(function () {\n var linksDiv = $('.editor').find('a.item');\n linksDiv.wrap('
');\n });\n}\n\nfunction usingMouse() {\n document.addEventListener(\"mousedown\", function () {\n document.body.classList.add(\"using-mouse\");\n document.body.classList.remove(\"using-keyboard\");\n });\n\n document.addEventListener(\"keydown\", function () {\n document.body.classList.add(\"using-keyboard\");\n document.body.classList.remove(\"using-mouse\");\n });\n}\nexports.editor = editor;\nexports.usingMouse = usingMouse;\n\n},{}],6:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction facebookSharing() {\n $(function () {\n handleFBHeadTags();\n });\n}\n\nvar handleFBHeadTags = function handleFBHeadTags() {\n //console.log('handleFBHeadTags!');\n\n var BodyChildren = $('body').children();\n\n var LookForImage = false;\n var ImageFound = false;\n var ImageSrc = '';\n\n $.each(BodyChildren, function (index, child) {\n var tagName = child.tagName;\n //console.log('tagName: ' + tagName);\n if (tagName !== undefined) {\n tagName = tagName.toLowerCase();\n LookForImage = !LookForImage && tagName === 'header' ? true : LookForImage && tagName === 'footer' ? false : true;\n\n if (!ImageFound && LookForImage && tagName !== 'header') {\n var Images = $(child).find('img');\n if (Images.length > 0) {\n ImageFound = true;\n var Image = Images[0];\n ImageSrc = $(Image).attr('src');\n //console.log('ImageSrc: ' + ImageSrc);\n }\n }\n if (ImageFound) return false;\n }\n });\n\n var Title = $('title').text();\n if (Title !== undefined) $('head').append('');\n var Description = $('meta[name=\"description\"]');\n if (Description.length > 0) {\n $('head').append('');\n }\n\n if (ImageFound) {\n $('head').append('');\n }\n};\nexports.facebookSharing = facebookSharing;\n\n},{}],7:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction factBox() {\n $(document).ready(function () {\n $('.map-box-group #accordion .btn').on('click', function (e) {\n var icon = $(this).find('icon-plus');\n var all_icons = $(this).closest('#accordion');\n all_icons.each(function () {\n $(this).find('.card .icon').removeClass('icon-minus').addClass('icon-plus');\n });\n icon.toggleClass('icon-plus icon-minus');\n e.preventDefault();\n });\n\n $('#factbox .btn').on('click', function (e) {\n var icon = $(this).find(\".icon.plus\");\n var all_icons = $(this).parents(\".accordion\");\n all_icons.each(function () {\n $(this).find(\".card .icon\").removeClass(\"minus\").addClass(\"plus\");\n });\n icon.toggleClass(\"plus minus\");\n e.preventDefault();\n });\n });\n}\n\nexports.factBox = factBox;\n\n},{}],8:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fadeContent = undefined;\n\nvar _someFeed = require(\".././components/some-feed.js\");\n\nfunction showHide() {\n if (!$(\"#fadeButton\").is(\":hidden\")) {\n if ($(\"#fadeButton\").is(\":hidden\")) {\n $(\".attachments\").show();\n $(\".social-media\").show();\n $(\".content\").show();\n $(\".seperator--grey--30\").show();\n $(\".fb-root\").show();\n } else {\n $(\".attachments\").hide();\n //$(\".content\").hide();\n $(\".social-media\").hide();\n $(\".seperseperator--grey--30\").hide();\n $(\".fb-root\").hide();\n }\n }\n}\n\nfunction fadeContent() {\n $(document).ready(function () {\n showHide($(this));\n $(window).on('load resize', function (e) {\n var _this = this;\n\n setTimeout(function () {\n showHide($(_this));\n }, 200);\n e.preventDefault();\n });\n\n $('#fadeButton').on('click', function (e) {\n $(this).hide();\n (0, _someFeed.startCheckCookie)();\n $(\".content\").show();\n $(\".attachments\").show();\n $(\".social-media\").show();\n $(\".seperator--grey--30\").show();\n $(\".fb-root\").show();\n $(\".fade-content\").animate({\n height: '100%'\n }, 500, function () {\n $(this).removeClass(\"fade-content\");\n });\n e.preventDefault();\n });\n });\n}\n\nexports.fadeContent = fadeContent;\n\n},{\".././components/some-feed.js\":17}],9:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\r\n * Wait for the element to exist in the dom\r\n * @param {*} selector \r\n * @param {*} callback \r\n */\nvar waitForEl = function waitForEl(selector, callback) {\n if (jQuery(selector).length) {\n callback();\n } else {\n setTimeout(function () {\n waitForEl(selector, callback);\n }, 10);\n }\n};\n\nfunction filterMenu() {\n $(function () {\n waitForEl(\".filter-menu\", function () {\n var selector = $('.filter-menu');\n\n $('#filterMenu').on('click', function () {\n $(selector).removeClass('MobileMenuClosed');\n $(selector).addClass('MobileMenuOpened');\n $(\"#filterMenuClose\").trigger(\"focus\");\n $(\"#filterMenuClose\").trigger(\"select\");\n\n $(\"#filterMenuClose\").on(\"keydown\", function (event) {\n if (event.shiftKey && event.which === 9) {\n $(\"#clearList\").trigger(\"focus\");\n }\n });\n\n $(\"#clearList\").on(\"keydown\", function (event) {\n if (!event.shiftKey && event.which === 9) {\n $(\"#filterMenuClose\").trigger(\"focus\");\n }\n });\n });\n\n $('#filterMenuClose').on('click', function () {\n $(selector).removeClass('MobileMenuOpened');\n $(selector).addClass('MobileMenuClosed');\n $('#filterMenu').trigger(\"focus\");\n });\n });\n });\n\n // $(\"#filterMenu\").on(\"click\", function(){\n // const selector = $('.filter-menu')\n // $(selector).addClass('MobileMenuOpened');\n // })\n\n $(document).on('keydown', function (event) {\n if (event.key == \"Escape\") {\n var selector = $('.filter-menu');\n $(selector).removeClass('MobileMenuOpened');\n $(selector).addClass('MobileMenuClosed');\n $('#filterMenu').trigger(\"focus\");\n }\n });\n\n // $(\".MobileMenuOpened\").click(function(){\n // const selector = $('.filter-menu')\n // $(selector).removeClass('MobileMenuOpened');\n // $(selector).addClass('MobileMenuClosed');\n // })\n}\n\nexports.filterMenu = filterMenu;\n\n},{}],10:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction footer() {\n $(document).ready(function () {\n $(\".footer .btn.btn-link\").click(function () {\n $(this).toggleClass(\"expanded\");\n var fa = $(this).find(\".fa-minus\");\n fa.removeClass('fa-minus').addClass('fa-plus');\n });\n });\n}\n\nfunction someLink() {\n $(document).ready(function () {\n var modalHeader = $('#someModal .modal-title');\n var modalBody = $('#someModal .modal-body');\n var modalSubmitBtn = $('#someModal .btn.btn-primary[type=\"submit\"]');\n var link;\n\n $('.link.link-some').click(function () {\n link = $(this).attr('href');\n console.log($(this), link);\n modalSubmitBtn.click(function () {\n\n $('#someModal').modal('hide');\n window.open(link, '_blank');\n //window.location.href = link;\n });\n });\n });\n}\n\nexports.footer = footer;\nexports.someLink = someLink;\n\n},{}],11:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction link() {\n $(\".itemFeed\").click(function () {\n window.location = $(this).find(\"a\").attr(\"href\");\n return false;\n });\n\n $(\".iconLink\").click(function () {\n window.location = $(this).find(\"a\").attr(\"href\");\n return false;\n });\n}\n\nexports.link = link;\n\n},{}],12:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\r\n * Wait for the element to exist in the dom\r\n * @param {*} selector \r\n * @param {*} callback \r\n */\nvar waitForEl = function waitForEl(selector, callback) {\n if (jQuery(selector).length) {\n callback();\n } else {\n setTimeout(function () {\n waitForEl(selector, callback);\n }, 100);\n }\n};\n\n/**\r\n * Change the content an item in the list if element is from other auth\r\n */\nfunction changeContent() {\n if ($(window).width() < 992) {\n waitForEl(\".news-list\", function () {\n var items = $(\".news-list .list .item\");\n items.each(function () {\n var seperator = $(this).find(\".seperator:odd\");\n var date = $(this).find(\".date\");\n if ($(this).find(\"a > .row > .col-12 > .info > .auth\").length !== 0) {\n\n seperator.show();\n date.replaceWith(function () {\n return '' + $(this).html() + '';\n });\n } else {\n seperator.hide();\n date.replaceWith(function () {\n return '

' + $(this).html() + '

';\n });\n }\n });\n });\n } else {\n waitForEl(\".news-list\", function () {\n var items = $(\".news-list .list .item\");\n items.each(function () {\n var seperator = $(this).find(\".seperator:odd\");\n var date = $(this).find(\".date\");\n seperator.show();\n date.replaceWith(function () {\n return '' + $(this).html() + '';\n });\n });\n });\n }\n}\n\n/**\r\n * Adapt content on window resize\r\n */\nfunction newsListItems() {\n $(window).on(\"resize\", function () {\n changeContent();\n });\n}\n\n/**\r\n * Toggle more subjects\r\n */\nfunction subjectToggler() {\n waitForEl(\".filter-menu\", function () {\n var list = $('.filters .list');\n\n list.each(function () {\n var allItems = $(this).find('li').filter(function () {\n return $(this).children('input').length !== 0;\n });\n\n var allEmptyItems = $(this).find('li').filter(function () {\n return $(this).children('input').length == 0;\n });\n\n allEmptyItems.parent().next().hide();\n\n if (allItems.length > 5) {\n allItems.each(function (i, el) {\n if (i > 5) {\n el.hidden = true;\n }\n });\n } else {\n allItems.parent().next().hide();\n }\n });\n\n $('.load-more').click(function () {\n var closestItems = $(this).closest('div.filters').find('li');\n closestItems.each(function (i, el) {\n el.hidden = false;\n });\n $(this).hide();\n });\n });\n}\n\nexports.newsListItems = newsListItems;\nexports.changeContent = changeContent;\nexports.subjectToggler = subjectToggler;\n\n},{}],13:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.megaMenu = exports.disableWarningBanner = exports.searchInHeader = exports.promotedContentMobileMenu = exports.megaMenuToggle = exports.accordionIcons = exports.mobileMenuToggle = exports.sticky = undefined;\n\nvar _jsCookie = require('js-cookie');\n\nvar _jsCookie2 = _interopRequireDefault(_jsCookie);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sticky() {\n var debounce = function debounce(fn) {\n var frame = void 0;\n return function () {\n for (var _len = arguments.length, params = Array(_len), _key = 0; _key < _len; _key++) {\n params[_key] = arguments[_key];\n }\n\n if (frame) {\n cancelAnimationFrame(frame);\n }\n frame = requestAnimationFrame(function () {\n fn.apply(undefined, params);\n });\n };\n };\n\n var storeScroll = function storeScroll() {\n document.documentElement.dataset.scroll = window.scrollY;\n };\n\n document.addEventListener('scroll', debounce(storeScroll), { passive: true });\n storeScroll();\n}\n\nfunction mobileMenuToggle() {\n $('[data-toggle=\"toggleMobileMenu\"]').click(function () {\n var selector = $(this).data('target');\n $(selector).removeClass('navbarMobileMenuClosed');\n $(selector).addClass('navbarMobileMenuOpened');\n });\n $('.navbar-mobile-close').click(function () {\n var target = $(this).closest('#navbarMobile');\n target.removeClass('navbarMobileMenuOpened');\n target.addClass('navbarMobileMenuClosed');\n });\n}\n\nfunction promotedContentMobileMenu() {\n var target = $('.navbar-nav-mobile .accordion .card .related-content');\n target.find('.title').addClass('title--small');\n target.find('.icon').addClass('icon--small');\n target.find('.description').addClass('description--small');\n}\n\nfunction megaMenuToggle() {\n $('.nav-link').click(function () {\n var target = $(this).attr('href');\n if (!$(this).hasClass(\"nav-link--standalone\")) {\n $('.navbar-nav .nav-item').each(function () {\n $(this).removeClass('active');\n });\n $('.mega-menu').collapse('hide');\n\n $(target).collapse('show');\n $(\".content\").show();\n\n return false;\n }\n });\n\n $(document).on('click', function () {\n var target = $('.mega-menu');\n if (target !== event.target && !target.has(event.target).length) {\n target.collapse('hide');\n }\n });\n}\n\nfunction accordionIcons() {\n\n $('.btn.btn-link.btn-menu').on('click', function (e) {\n var icon = $(this).find('icon-plus');\n var all_icons = $(this).closest('.accordion');\n all_icons.each(function () {\n $(this).find('.card .icon').removeClass('icon-minus').addClass('icon-plus');\n });\n icon.toggleClass('icon-plus icon-minus');\n e.preventDefault();\n });\n}\n\n/**\r\n * Toggle search functionality in header\r\n */\nfunction searchInHeader() {\n var searchButton = $('.navbar-nav .nav-item .btn');\n searchButton.click(function () {\n if ($(this).hasClass(\"collapsed\")) {\n //$(this).find('span').text('close');\n $(this).find('span').attr('data-icon', 'close');\n $(this).find('span').attr('aria-label', 'Luk');\n } else {\n //$(this).find('span').text('search');\n $(this).find('span').attr('data-icon', 'search');\n $(this).find('span').attr('aria-label', 'Søg');\n }\n });\n}\n\nfunction disableWarningBanner() {\n window.addEventListener('DOMContentLoaded', function () {\n var session = sessionStorage.getItem('disabledWarningBanner');\n if (session === \"yes\") {\n $('.warning-banner').animate({\n 'height': '0px',\n 'padding': '0px'\n }, \"fast\");\n $('.warning-banner').removeClass('d-block').addClass('d-none');\n }\n });\n\n $('.warning-banner .btn-disable').click(function () {\n sessionStorage.setItem('disabledWarningBanner', 'yes');\n $('.warning-banner').removeClass('d-block').addClass('d-none');\n });\n}\n\n$(\"#searchButton\").click(function () {\n setTimeout(function () {\n $(\"#query\").focus();\n }, 1000);\n});\n\nfunction megaMenu() {\n $(function () {\n $(\".mega-menu\").on(\"shown.bs.collapse\", function () {\n $(this).find(\".mega-menu-close-button\").trigger(\"focus\");\n });\n\n $(\".mega-menu\").each(function () {\n var lastmenulink = $(this).find(\".mega-menu-link\").last();\n\n $(lastmenulink).on(\"keydown\", function (event) {\n if (!event.shiftKey && event.which === 9) {\n $(\".mega-menu\").collapse('hide');\n $('#navbarMobile').addClass('navbarMobileMenuClosed');\n }\n });\n });\n\n $(\"#navbarMobile\").find(\".link\").last().on(\"keydown\", function (event) {\n if (!event.shiftKey && event.which === 9) {\n $('#navbarMobile').addClass('navbarMobileMenuClosed');\n $('#navbarMobile').removeClass('navbarMobileMenuOpened');\n }\n });\n\n $(window).on(\"resize\", function () {\n if ($(this).width() > 992) {\n var target = $('#navbarMobile');\n target.removeClass('navbarMobileMenuOpened');\n target.addClass('navbarMobileMenuClosed');\n }\n });\n });\n}\n\nexports.sticky = sticky;\nexports.mobileMenuToggle = mobileMenuToggle;\nexports.accordionIcons = accordionIcons;\nexports.megaMenuToggle = megaMenuToggle;\nexports.promotedContentMobileMenu = promotedContentMobileMenu;\nexports.searchInHeader = searchInHeader;\nexports.disableWarningBanner = disableWarningBanner;\nexports.megaMenu = megaMenu;\n\n},{\"js-cookie\":22}],14:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction scrollToId() {\n $(document).ready(function () {\n $(\"a.link.scroll-to-id\").click(function () {\n var target = $(this).attr(\"href\");\n $('html, body').animate({\n scrollTop: $(target).offset().top\n }, 500);\n });\n });\n}\n\nexports.scrollToId = scrollToId;\n\n},{}],15:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\r\n * Scroll to top on reload\r\n */\nfunction scrollToTop() {\n /* $(document).ready(function () {\r\n if (performance.navigation.type == 1) {\r\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\r\n return false;\r\n }\r\n }); */\n}\n\nexports.scrollToTop = scrollToTop;\n\n},{}],16:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n//noiseBanner\nfunction noiseBanner() {\n var closeWarningBanner = $('.noiseBanner .btn-close');\n var container = $('.noiseBanner').find('.container').last();\n var button = $(closeWarningBanner).find('.fa');\n\n /* if (button.hasClass('fa-chevron-down')) {\r\n $('.noiseBanner').css('height', '50%');\r\n container.css('overflow', 'auto');\r\n container.css('height', '100%');\r\n }\r\n */\n $('#warningBanner').click(function () {\n if ($(this).find('span').hasClass('open')) {\n //$(this).find('span').text('keyboard_arrow_down');\n $(this).find('span').attr('data-icon', 'keyboard_arrow_down');\n $(this).find('span').addClass(\"close\");\n $(this).find('span').removeClass(\"open\");\n } else {\n //$(this).find('span').text('keyboard_arrow_up');\n $(this).find('span').attr('data-icon', 'keyboard_arrow_up');\n $(this).find('span').addClass(\"open\");\n $(this).find('span').removeClass(\"close\");\n }\n });\n\n closeWarningBanner.click(function () {\n var container = $(this).closest('.noiseBanner').find('.container').last();\n var icon = $(this).find('.fa');\n icon.toggleClass('fa-chevron-up fa-chevron-down');\n\n if (button.hasClass('fa-chevron-down')) {\n $('.noiseBanner').css('height', '50%');\n container.css('overflow', 'auto');\n container.css('height', '100%');\n }\n\n container.slideToggle();\n\n if (button.hasClass('fa-chevron-up')) {\n $('.noiseBanner').css('height', 'auto');\n container.css('overflow', 'auto');\n container.css('height', '100%');\n }\n });\n}\n\nfunction warningBanner() {\n var closeWarningBanner = $('.warning-banner .btn-close');\n\n closeWarningBanner.click(function () {\n var container = $(this).closest('.warning-banner').find('.container').first();\n var icon = $(this).find('.fa');\n icon.toggleClass('fa-chevron-up fa-chevron-down');\n container.slideToggle();\n });\n}\n\nexports.warningBanner = warningBanner;\nexports.noiseBanner = noiseBanner;\n\n},{}],17:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\r\n * Show cookie banner if clicked on btn\r\n */\nfunction showCookieBanner() {\n $('body').on('click', '#showFacebookFeedBtn, #showTwitterFeedBtn, #showTwitterFeedBtn, #showMapsFeedBtn', function () {\n $('#cookiebanner').show();\n $('.cookie-toggler').css('left', '-60px');\n });\n}\n\n/**\r\n * Check if facebook or twitter cookie exist, if yes show feed\r\n */\nfunction startCheckCookie() {\n $(document).ready(function () {\n var cookieList = getAllCookies();\n for (var property in cookieList) {\n var name = property;\n\n if (name.indexOf('facebook') > -1) {\n getFb(name);\n }\n\n if (name.indexOf('twitter') > -1) {\n getTwitter(name);\n }\n\n if (name.indexOf('google') > -1) {\n getGmaps(name);\n }\n\n if (name.indexOf(\"siteimprove\") > -1) {\n setStatisticsCookieSettings(name);\n }\n }\n });\n}\n\n/**\r\n * Get siteimprove feed\r\n * @param {*} name \r\n */\n\nfunction setStatisticsCookieSettings(name) {\n var site = getOneCookie(name);\n if (site == \"yes\") {\n _require(\"https:////siteimproveanalytics.com/js/siteanalyze_273795.js\", true);\n } else {}\n}\n\n/**\r\n * Get twitter feed\r\n * @param {*} name \r\n */\nfunction getTwitter(name) {\n var twitterCookie = getOneCookie(name);\n if (twitterCookie == \"yes\") {\n $(\".twitter-root\").show();\n $(\".showTwitterFeed\").hide();\n\n if (document.querySelector('.twitter-root') !== null) {\n if (!$(\".twitter-root\").is(\":hidden\")) {\n _require(\"https://platform.twitter.com/widgets.js\", true);\n }\n }\n } else if (twitterCookie != \"yes\") {\n $(\".twitter-root\").hide();\n $(\".showTwitterFeed\").show();\n }\n}\n\n/**\r\n * Get facebook feed\r\n * @param {*} name \r\n */\nfunction getFb(name) {\n var fbCookie = getOneCookie(name);\n if (fbCookie == \"yes\") {\n $(\".fb-root\").show();\n $(\".showFacebookFeed\").hide();\n if (!$(\".fb-root\").is(\":hidden\")) {\n _require(\"https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v6.0\", true);\n }\n } else if (fbCookie != \"yes\") {\n $(\".fb-root\").hide();\n $(\".showFacebookFeed\").show();\n }\n}\n\n/**\r\n * Get google maps\r\n * @param {*} name \r\n */\n\nfunction getGmaps(name) {\n var mapsCookie = getOneCookie(name);\n if (mapsCookie == \"yes\") {\n $(\".maps-feed\").show();\n $(\".showMpas\").hide();\n if (document.querySelector('.maps-feed') !== null) {\n if (!$(\".maps-feed\").is(\":hidden\")) {\n _require(loadMaps(), true);\n }\n }\n } else if (mapsCookie != \"yes\") {\n $(\".maps-feed\").hide();\n $(\".showMpas\").show();\n }\n}\n\n/**\r\n * Retrieve all cookies - returns array \r\n */\nfunction getAllCookies() {\n var cookies = {};\n\n if (document.cookie && document.cookie != '') {\n var split = document.cookie.split(';');\n for (var i = 0; i < split.length; i++) {\n var name_value = split[i].split(\"=\");\n name_value[0] = name_value[0].replace(/^ /, '');\n cookies[decodeURIComponent(name_value[0])] = decodeURIComponent(name_value[1]);\n }\n }\n return cookies;\n}\n\n/**\r\n * Get single cookie\r\n * @param {*} cname \r\n */\nfunction getOneCookie(cname) {\n var name = cname + \"=\";\n var decodedCookie = decodeURIComponent(document.cookie);\n var ca = decodedCookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n\n return c.substring(name.length, c.length);\n }\n }\n return \"\";\n}\n\n/**\r\n * Sets scripts for feed\r\n * @param {*} file \r\n * @param {*} callback \r\n */\nfunction _require(file, callback) {\n var head = document.getElementsByTagName(\"head\")[0];\n var script = document.createElement('script');\n script.src = file;\n script.type = 'text/javascript';\n //real browsers\n script.onload = callback;\n //Internet explorer\n script.onreadystatechange = function () {\n if (this.readyState == 'complete') {\n callback();\n }\n };\n head.appendChild(script);\n}\n\nexports.showCookieBanner = showCookieBanner;\nexports.startCheckCookie = startCheckCookie;\nexports.getFb = getFb;\nexports.getTwitter = getTwitter;\nexports.getGmaps = getGmaps;\nexports.setStatisticsCookieSettings = setStatisticsCookieSettings;\nexports.getOneCookie = getOneCookie;\nexports.require = _require;\n\n},{}],18:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction tooltip() {\n //$('[data-toggle=\"tooltip\"]').tooltip();\n}\n\nexports.default = tooltip;\n\n},{}],19:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction twitterFeed() {\n $('.twitter-feed').delegate('#twitter-widget-0', 'DOMSubtreeModified propertychange', function () {\n customizeTweetMedia();\n });\n}\n\nvar customizeTweetMedia = function customizeTweetMedia() {\n // CSS Overrides\n var container = $('.twitter-feed').find('.twitter-timeline');\n container.contents().find('.timeline-Tweet-brand').css('display', 'none');\n container.contents().find('.Icon--verified').css('display', 'none');\n\n if (window.matchMedia('(max-width: 720px)').matches) {\n container.contents().find('.timeline-Tweet').css('width', '100%');\n container.contents().find('.timeline-Tweet-retweetCredit').css('margin-left', '18px');\n } else if (window.matchMedia('(max-width: 1024px)').matches) {\n container.contents().find('.timeline-Tweet').css('width', '30%');\n container.contents().find('.timeline-Tweet-retweetCredit').css('margin-left', '18%');\n } else {\n container.contents().find('.timeline-Tweet').css('width', '31.4%');\n container.contents().find('.timeline-Tweet-retweetCredit').css('margin-left', '18%');\n }\n container.contents().find('.timeline-Tweet').css('float', 'left');\n container.contents().find('span.TweetAuthor-avatar.Identity-avatar').remove();\n container.contents().find('p.timeline-tweet-text').css('font-family', 'Verdana, Geneva, Tahoma, sans-serif');\n container.contents().find('p.timeline-Tweet-text').css('font-size', '17px');\n container.contents().find('p.timeline-tweet-text').css('line-height', '27px');\n container.contents().find('.timeline-Tweet-text').css('margin-top', '10px');\n container.contents().find('ul.timeline-tweet-actions').css('display', 'none');\n container.contents().find('.timeline-Tweet-author').css('width', '80%');\n container.contents().find('.timeline-Tweet-metadata').css('margin-right', '20px');\n container.contents().find('.timeline-Tweet-media').css('max-width', '80%');\n\n // Call the function on dynamic updates in addition to page load\n $('.twitter-feed').find('.twitter-timeline').contents().find('.timeline-TweetList').bind('DOMSubtreeModified propertychange', function () {\n customizeTweetMedia(this);\n });\n};\n\nexports.twitterFeed = twitterFeed;\n\n},{}],20:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction toggleView() {\n $('.toggle-view-btn').click(function (e) {\n var target = $(e.currentTarget);\n var map = target.closest('.options').next();\n var list = target.closest('.options').next().next();\n var popup = document.getElementById(\"myPopup\");\n\n map.addClass('d-none');\n //popup.remove();\n $('.information-container').remove();\n //map.children().remove();\n list.addClass('d-block');\n //$('.content').removeAttr('style');\n target.remove();\n });\n}\n\nfunction initMap() {\n if (window.globesLoaded != undefined) {\n console.warn('Globes is already loaded!!!');\n return;\n }\n\n window.globesLoaded = 1;\n\n var globes = [];\n\n var plugins = {\n drag: function drag(options) {\n options = options || {};\n var noop = function noop() {};\n var onDragStart = options.onDragStart || noop;\n var onDragEnd = options.onDragEnd || noop;\n var onDrag = options.onDrag || noop;\n var afterDrag = options.afterDrag || noop;\n\n return function (planet) {\n planet.onInit(function () {\n var drag = d3.behavior.drag().on('dragstart', onDragStart.bind(planet)).on('dragend', onDragEnd.bind(planet)).on('drag', function () {\n onDrag.call(planet);\n var dx = d3.event.dx;\n var dy = d3.event.dy;\n var rotation = planet.projection.rotate();\n var radius = planet.projection.scale();\n var scale = d3.scale.linear().domain([-1 * radius, radius]).range([-90, 90]);\n var degX = scale(dx);\n var degY = scale(dy);\n rotation[0] += degX;\n rotation[1] -= degY;\n if (rotation[1] > 90) rotation[1] = 90;\n if (rotation[1] < -90) rotation[1] = -90;\n if (rotation[0] >= 180) rotation[0] -= 360;\n planet.projection.rotate(rotation);\n afterDrag.call(planet);\n });\n d3.select(planet.canvas).call(drag);\n });\n };\n },\n target: function target(speed, fade, zoomSpeed, zoomFade) {\n\n return function (planet) {\n\n var on = false;\n var lastTick = null;\n var target = [];\n var zoomTarget = undefined;\n\n planet.plugins.target = {\n resume: function resume() {\n on = true;\n },\n pause: function pause() {\n on = false;\n },\n moveTo: function moveTo(newTarget, zoom) {\n zoomTarget = zoom;target = newTarget;on = true;\n }\n };\n\n planet.onDraw(function () {\n\n if (!on || !lastTick) {\n lastTick = new Date();\n } else {\n\n var now = new Date();\n var delta = now - lastTick;\n lastTick = now;\n\n var rotation = planet.projection.rotate();\n\n var distX = -target[0] - rotation[0];\n distX += 180;\n while (distX < 0) {\n distX += 360;\n }distX %= 360;\n distX -= 180;\n\n var distY = -target[1] - rotation[1];\n distY += 180;\n while (distY < 0) {\n distY += 360;\n }distY %= 360;\n distY -= 180;\n\n var dist = Math.sqrt(Math.pow(distX, 2) + Math.pow(distY, 2));\n\n on = false;\n\n if (dist > 0.1) {\n\n on = true;\n\n var deltaX = distX / dist * delta * speed / 1000;\n deltaX *= sigmoid(dist / fade);\n if (Math.abs(deltaX) > Math.abs(distX)) deltaX = distX;\n\n var deltaY = distY / dist * delta * speed / 1000;\n deltaY *= sigmoid(dist / fade);\n if (Math.abs(deltaY) > Math.abs(distY)) deltaY = distY;\n\n if (!isNaN(deltaX)) rotation[0] += deltaX;\n if (!isNaN(deltaY)) rotation[1] += deltaY;\n\n planet.projection.rotate(rotation);\n }\n\n if (zoomTarget != undefined) {\n\n var currentZoom = planet.scaleFactor / planet.projection.scale();\n var zoomDist = zoomTarget - currentZoom;\n\n if (Math.abs(zoomDist) > 0.01) {\n\n on = true;\n\n var zoomDelta = zoomDist * delta * zoomSpeed / 1000;\n zoomDelta *= sigmoid(Math.abs(zoomDist) / zoomFade);\n\n if (Math.abs(zoomDelta) > Math.abs(zoomDist)) zoomDelta = zoomDist;\n\n planet.projection.scale(planet.scaleFactor / (currentZoom + zoomDelta));\n planet.zoom.scale(planet.projection.scale());\n updatePings(planet);\n }\n }\n }\n });\n };\n },\n\n ping: function ping(color, activeColor, angle, frequency) {\n\n var drawPings = function drawPings(planet, context) {\n\n var scale = planet.projection.scale() / planet.scaleFactor;\n\n for (var i = 0; i < planet.pings.length; i++) {\n drawPing(planet, context, planet.pings[i]);\n }\n };\n\n var drawPing = function drawPing(planet, context, target) {\n\n context.fillStyle = target.selected == true ? activeColor : color;\n\n var size = target.size || angle;\n\n var circle = d3.geo.circle().origin(target.pos).angle(size * planet.scaleFactor * (target.selected ? Math.sin(new Date() * Math.PI * frequency / 500) / 2 + 0.5 : 1) / planet.projection.scale())();\n\n context.beginPath();\n planet.path.context(context)(circle);\n context.fill();\n\n var screenPos = getScreenPos(planet, target.pos);\n if (screenPos) {\n\n context.strokeStyle = context.fillStyle;\n\n context.beginPath();\n context.moveTo(screenPos[0], screenPos[1]);\n context.lineTo(screenPos[0], screenPos[1] + (target.label == \"under\" ? 27 : -27));\n context.lineTo(screenPos[0] + 5, screenPos[1] + (target.label == \"under\" ? 27 : -27));\n context.stroke();\n\n context.font = \"20px Arial\";\n context.fillText(target.navn, screenPos[0] + 10, screenPos[1] + (target.label == \"under\" ? 33 : -20));\n }\n };\n\n return function (planet) {\n planet.targets = [];\n\n planet.onDraw(function () {\n planet.withSavedContext(function (context) {\n\n context.lineWidth = 2;\n drawPings(planet, context);\n });\n });\n };\n },\n\n zoom: function zoom(options) {\n options = options || {};\n var noop = function noop() {};\n var onZoomStart = options.onZoomStart || noop;\n var onZoomEnd = options.onZoomEnd || noop;\n var onZoom = options.onZoom || noop;\n var afterZoom = options.afterZoom || noop;\n var startScale = options.initialScale;\n var scaleExtent = options.scaleExtent || [50, 2000];\n\n return function (planet) {\n planet.onInit(function () {\n\n var zoom = d3.behavior.zoom().scaleExtent(scaleExtent);\n\n if (startScale !== null && startScale !== undefined) {\n zoom.scale(startScale);\n } else {\n zoom.scale(planet.projection.scale());\n }\n\n zoom.on('zoomstart', onZoomStart.bind(planet)).on('zoomend', onZoomEnd.bind(planet)).on('zoom', function () {\n onZoom.call(planet);\n planet.projection.scale(d3.event.scale);\n afterZoom.call(planet);\n });\n d3.select(planet.canvas).call(zoom);\n\n planet.zoom = zoom;\n });\n };\n }\n\n };\n\n $(document).ready(function () {\n\n $('canvas[globe]').each(function () {\n var _this = this;\n\n $(this).css('-webkit-tap-highlight-color', '#0000');\n $(this).css('touch-action', 'manipulation');\n\n var globe = planetaryjs.planet();\n\n globe.id = $(this).attr('globe');\n if (typeof globe.id != 'number') {\n globe.id = globes.length;\n }\n globes[globe.id] = globe;\n $(this).attr('globe', globe.id);\n\n loadPlugins(globe, this);\n\n resize(this, globe);\n\n setInterval(function () {\n resize(_this, globe);\n }, 500);\n\n $(window).resize(function () {\n resize(_this, globe);\n });\n\n globe.projection.scale(globe.scaleFactor / globe.startZoom).rotate([-globe.startPos[0], -globe.startPos[1]]);\n\n this.addEventListener(\"touchmove\", function (e) {\n e.preventDefault();\n }, { passive: false });\n\n globe.onInit(function () {\n\n if ($(_this).attr('targets') != undefined) {\n var reversePos = function reversePos(targets) {\n for (var i = 0; i < targets.length; i++) {\n var tmp = targets[i].pos[0];\n targets[i].pos[0] = targets[i].pos[1];\n targets[i].pos[1] = tmp;\n\n if (targets[i].operationer) {\n\n if (targets[i].operationer.length > 1) {\n var globeref = targets[i].navn;\n var targetid = String(targets[i].navn).replace(/\\s/g, '');\n $('.world-map').append('
');\n $('#' + targetid).append('
');\n\n targets[i].operationer.forEach(function (element, index) {\n\n $('#' + targetid + ' #accordion' + targetid).append('
' + '
' + '
' + '' + '
' + '
' + '
' + '
' + element.beskrivelse + '

Link to operation

' + '
' + '
' + '
');\n });\n } else {\n targets[i].operationer.forEach(function (element) {\n $('.world-map').append('
' + '
' + '

' + element.titel + '

' + '' + '
' + '

' + element.beskrivelse + '

' + 'Link til operation' + '
');\n });\n }\n }\n\n if (targets[i].sub instanceof Array) {\n reversePos(targets[i].sub);\n }\n }\n };\n\n globe.targets = JSON.parse($(_this).attr('targets'));\n\n reversePos(globe.targets);\n }\n\n updatePings(globe);\n });\n\n globe.draw(this);\n });\n\n $('[globe-link]').click(function (e) {\n\n var arg = $(e.currentTarget).attr('globe-link');\n arg = arg.split(',');\n moveToTarget(globes[arg[0]], arg[1]);\n });\n\n $('.world-map .icons-maps-close').click(function (e) {\n var target = $(e.currentTarget);\n target.closest('.map-box-group').hide();\n target.closest('.map-box').hide();\n });\n\n $('[globe-ref]').css('display', 'none');\n });\n\n function resize(canvas, globe) {\n\n if (canvas.width == $(canvas).width() && canvas.height == $(canvas).height()) return;\n\n canvas.width = $(canvas).width();\n canvas.height = $(canvas).height();\n\n var oldScaleFactor = globe.scaleFactor;\n\n globe.scaleFactor = Math.min(canvas.width, canvas.height);\n\n globe.projection.scale(globe.projection.scale() * globe.scaleFactor / oldScaleFactor).translate([canvas.width / 2, canvas.height / 2]);\n }\n\n function sigmoid(t) {\n return 2 / (1 + Math.pow(Math.E, -t)) - 1;\n }\n\n function getMousePos(canvas, evt) {\n var rect = canvas.getBoundingClientRect();\n return {\n x: evt.clientX - rect.left,\n y: evt.clientY - rect.top\n };\n }\n\n function onTouch(e) {\n\n var globe = globes[$(e.target).attr('globe')];\n\n if (!globe.clicked) return;\n\n if (globe.dragging) {\n globe.dragging = false;\n return;\n }\n\n var pos = getMousePos(this, e);\n\n var coordinates = getCoordinates(pos, globe);\n\n var closest = findClosestTarget(globe, coordinates);\n\n if (typeof closest.zoom == 'number') {\n globe.plugins.target.moveTo(closest.pos, closest.zoom);\n } else {\n globe.plugins.target.moveTo(closest.pos);\n }\n\n displayText(globe, closest);\n }\n\n function displayText(globe, target) {\n\n if (target == undefined) {\n $('[globe-ref]').css('display', 'none');\n $('[globe-default=' + globe.id + ']').css('display', '');\n return;\n }\n\n var display = $('[globe-ref=\"' + target.navn + '\"]');\n\n if (display.length > 0) {\n $('[globe-ref],[globe-default=' + globe.id + ']').css('display', 'none');\n display.css('display', '');\n }\n }\n\n function selectByPos(globe) {\n\n var coordinates = getCoordinates(globe.mousePos, globe);\n if (coordinates == undefined) {\n return;\n }\n\n select(globe, findClosestTarget(globe, coordinates));\n }\n\n function onMove(e) {\n var globe = globes[$(e.target).attr('globe')];\n\n globe.mousePos = getMousePos(this, e);\n selectByPos(globe);\n }\n\n function getCoordinates(pos, globe) {\n\n pos = JSON.parse(JSON.stringify(pos));\n\n var globePos = globe.projection.translate();\n var globeScale = globe.projection.scale();\n\n pos.x -= globePos[0];\n pos.y = globePos[1] - pos.y;\n\n pos.x /= globeScale;\n pos.y /= globeScale;\n\n var distToCenter = Math.sqrt(Math.pow(pos.x, 2) + Math.pow(pos.y, 2));\n\n if (distToCenter > 1) {\n return;\n }\n\n var rot = globe.projection.rotate();\n\n pos.z = Math.sqrt(1 - Math.pow(pos.x, 2) - Math.pow(pos.y, 2));\n\n var rotY = rot[0] * Math.PI / 180;\n var rotX = -rot[1] * Math.PI / 180;\n\n pos.tz = pos.z * Math.cos(rotX) - pos.y * Math.sin(rotX);\n pos.y = pos.z * Math.sin(rotX) + pos.y * Math.cos(rotX);\n pos.z = pos.tz;\n\n pos.tx = pos.x * Math.cos(rotY) - pos.z * Math.sin(rotY);\n pos.z = pos.x * Math.sin(rotY) + pos.z * Math.cos(rotY);\n pos.x = pos.tx;\n\n var lng = Math.atan2(pos.x, pos.z) * 180 / Math.PI;\n var lat = Math.asin(pos.y) * 180 / Math.PI;\n\n return [lng, lat];\n }\n\n function getScreenPos(globe, pos) {\n\n if (pos == undefined) return false;\n\n pos = JSON.parse(JSON.stringify(pos));\n\n pos[0] = (90 - pos[0]) * Math.PI / 180;\n pos[1] = pos[1] * Math.PI / 180;\n\n var rad = Math.cos(pos[1]);\n\n var pos3d = {\n x: rad * Math.cos(pos[0]),\n y: Math.sin(pos[1]),\n z: rad * Math.sin(pos[0])\n };\n\n var rot = globe.projection.rotate();\n\n var rotY = -rot[0] * Math.PI / 180;\n var rotX = rot[1] * Math.PI / 180;\n\n pos3d.tx = pos3d.x * Math.cos(rotY) - pos3d.z * Math.sin(rotY);\n pos3d.z = pos3d.x * Math.sin(rotY) + pos3d.z * Math.cos(rotY);\n pos3d.x = pos3d.tx;\n\n pos3d.tz = pos3d.z * Math.cos(rotX) - pos3d.y * Math.sin(rotX);\n pos3d.y = pos3d.z * Math.sin(rotX) + pos3d.y * Math.cos(rotX);\n pos3d.z = pos3d.tz;\n\n if (pos3d.z < 0) return false;\n\n var scale = globe.projection.scale();\n pos3d.x *= scale;\n pos3d.y *= scale;\n\n var translation = globe.projection.translate();\n pos3d.x += translation[0];\n pos3d.y = translation[1] - pos3d.y;\n\n return [pos3d.x, pos3d.y];\n }\n\n function loadPlugins(globe, canvas) {\n\n var leapSpeed = $(canvas).attr('leap-speed') || 200;\n var leapFade = $(canvas).attr('leap-fade') || 20;\n\n var map = $(canvas).attr('map') || 'world-110m.json';\n\n // Colors\n var colors = {\n ocean: $(canvas).attr('ocean-color') || '#000',\n land: $(canvas).attr('land-color') || '#666',\n border: $(canvas).attr('border-color') || '#000',\n ping: $(canvas).attr('ping-color') || '#c8102e',\n activePing: $(canvas).attr('active-ping-color') || '#8d1b3d'\n };\n var pingSize = $(canvas).attr('ping-size') || 1;\n var pingFrequency = $(canvas).attr('ping-frequency') || 1.5;\n\n var zoomFade = $(canvas).attr('zoom-fade') || 0.05;\n var zoomSpeed = $(canvas).attr('zoom-speed') || 5;\n\n globe.startPos = JSON.parse($(canvas).attr('start-pos') || \"[0,0]\");\n globe.startPos = [globe.startPos[1], globe.startPos[0]];\n globe.startZoom = $(canvas).attr('start-zoom') || 2;\n\n globe.zoomMin = $(canvas).attr('zoom-min') || 300;\n globe.zoomMax = $(canvas).attr('zoom-max') || 3000;\n\n globe.dragResistance = $(canvas).attr('drag-resistance') || 0.07;\n\n globe.loadPlugin(planetaryjs.plugins.earth({\n topojson: { file: map },\n oceans: { fill: colors.ocean },\n land: { fill: colors.land, stroke: colors.border },\n borders: { stroke: colors.border }\n }));\n\n globe.loadPlugin(plugins.ping(colors.ping, colors.activePing, pingSize, pingFrequency));\n\n globe.loadPlugin(plugins.target(leapSpeed, leapFade, zoomSpeed, zoomFade));\n\n globe.loadPlugin(plugins.zoom({\n scaleExtent: [globe.zoomMin, globe.zoomMax],\n onZoomStart: function onZoomStart() {\n globe.plugins.target.pause();\n },\n afterZoom: function afterZoom() {\n updatePings(globe);\n }\n }));\n\n globe.dragging = false;\n globe.dontSpin = false;\n\n globe.loadPlugin(plugins.drag({\n onDragStart: function onDragStart() {\n globe.plugins.target.pause();\n globe.dontSpin = true;\n globe.clicked = false;\n },\n onDrag: function onDrag() {\n globe.speed = [d3.event.dx, d3.event.dy];\n globe.dragging = true;\n },\n onDragEnd: function onDragEnd() {\n\n if (!globe.dragging) {\n globe.clicked = true;\n } else {\n globe.dragging = false;\n }\n\n globe.dontSpin = false;\n }\n }));\n\n var lastTick;\n\n spin(globe);\n\n $(canvas).on('click', onTouch);\n $(canvas).on('mousemove', onMove);\n }\n\n function spin(globe) {\n\n globe.onDraw(function () {\n\n if (globe.speed != undefined && !globe.dontSpin) {\n\n var rotation = globe.projection.rotate();\n var radius = globe.projection.scale();\n var scale = d3.scale.linear().domain([-1 * radius, radius]).range([-90, 90]);\n var degX = scale(globe.speed[0]);\n var degY = scale(globe.speed[1]);\n globe.speed[0] *= 1 - globe.dragResistance;\n globe.speed[1] *= 1 - globe.dragResistance;\n rotation[0] += degX;\n rotation[1] -= degY;\n if (rotation[1] > 90) rotation[1] = 90;\n if (rotation[1] < -90) rotation[1] = -90;\n if (rotation[0] >= 180) rotation[0] -= 360;\n globe.projection.rotate(rotation);\n }\n });\n }\n\n function updatePings(globe) {\n\n globe.pings = [];\n\n if (!(globe.targets instanceof Array)) {\n return;\n }\n\n var scale = globe.scaleFactor / globe.projection.scale();\n\n function pingRecurse(targets) {\n\n for (var i = 0; i < targets.length; i++) {\n\n if (typeof targets[i].zoom == 'number' && targets[i].sub instanceof Array && scale <= targets[i].zoom + 0.1) {\n pingRecurse(targets[i].sub);\n } else {\n globe.pings.push(targets[i]);\n }\n }\n }\n pingRecurse(globe.targets);\n\n if (globe.mousePos != undefined) selectByPos(globe);\n }\n\n function findClosestTarget(globe, coordinates) {\n\n var rot = globe.projection.rotate();\n var closestDist = 10000000;\n var closest = {};\n\n for (var i = 0; i < globe.pings.length; i++) {\n var distLng = coordinates[0] - globe.pings[i].pos[0];\n var distLat = coordinates[1] - globe.pings[i].pos[1];\n var dist = Math.sqrt(distLng * distLng + distLat * distLat);\n if (closestDist > dist) {\n closestDist = dist;\n closest = globe.pings[i];\n }\n }\n\n return closest;\n }\n\n function select(globe, target) {\n if (globe.selected != undefined) {\n globe.selected.selected = false;\n }\n globe.selected = target;\n target.selected = true;\n }\n\n function moveToTarget(globe, name) {\n\n if (name == undefined) {\n globe.plugins.target.moveTo(globe.startPos, globe.startZoom);\n displayText(globe);\n return;\n }\n\n function findTargetRec(targets) {\n for (var i = 0; i < targets.length; i++) {\n\n if (targets[i].navn == name) return targets[i];\n\n if (targets[i].sub instanceof Array) {\n var res = findTargetRec(targets[i].sub);\n if (res !== false) {\n return res;\n }\n }\n }\n\n return false;\n }\n\n var target = findTargetRec(globe.targets);\n\n if (target === false) {\n console.warn('could not find country ' + name);\n return;\n }\n\n globe.plugins.target.moveTo(target.pos, target.zoom);\n select(globe, target);\n displayText(globe, target);\n }\n}\n\nexports.initMap = initMap;\nexports.toggleView = toggleView;\n\n},{}],21:[function(require,module,exports){\n\"use strict\";\n\nvar _factbox = require(\"./components/factbox\");\n\nvar _fadeContent = require(\"./components/fade-content\");\n\nvar _filterMenu = require(\"./components/filter-menu\");\n\nvar _scrollToTop = require(\"./components/scrollToTop\");\n\nvar _menu = require(\"./components/menu\");\n\nvar _scrollToId = require(\"./components/scrollToId\");\n\nvar _footer = require(\"./components/footer\");\n\nvar _list = require(\"./components/list\");\n\nvar _cookies = require(\"./components/cookies\");\n\nvar _breadcrumb = require(\"./components/breadcrumb\");\n\nvar _campaignPage = require(\"./components/campaignPage\");\n\nvar _contentPage = require(\"./components/contentPage\");\n\nvar _worldMap = require(\"./components/world-map\");\n\nvar _someFeed = require(\"./components/some-feed.js\");\n\nvar _editor = require(\"./components/editor\");\n\nvar _tooltip = require(\"./components/tooltip\");\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _twitter = require(\"./components/twitter\");\n\nvar _showHide = require(\"./components/showHide\");\n\nvar _facebookSharing = require(\"./components/facebookSharing\");\n\nvar _links = require(\"./components/links\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(0, _worldMap.initMap)();\n(0, _factbox.factBox)();\n(0, _fadeContent.fadeContent)();\n(0, _filterMenu.filterMenu)();\n(0, _scrollToTop.scrollToTop)();\n(0, _menu.sticky)();\n(0, _menu.mobileMenuToggle)();\n(0, _menu.searchInHeader)();\n(0, _menu.promotedContentMobileMenu)();\n(0, _menu.megaMenuToggle)();\n(0, _menu.accordionIcons)();\n(0, _scrollToId.scrollToId)();\n(0, _footer.footer)();\n(0, _breadcrumb.breadcrumb)();\n(0, _list.newsListItems)();\n(0, _list.changeContent)();\n//subjectToggler();\n(0, _editor.editor)();\n(0, _editor.usingMouse)();\n(0, _someFeed.startCheckCookie)();\n(0, _someFeed.showCookieBanner)();\n(0, _someFeed.getFb)();\n(0, _someFeed.getTwitter)();\n(0, _someFeed.getGmaps)();\n(0, _someFeed.setStatisticsCookieSettings)();\n(0, _someFeed.getOneCookie)();\n(0, _cookies.toggleCookie)();\n(0, _cookies.closeBannerOptions)();\n(0, _cookies.openBannerOptions)();\n(0, _cookies.checkGroupCookies)();\n(0, _cookies.cookieStartUpValidation)();\n(0, _cookies.acceptCookies)();\n(0, _cookies.cookieBannerValidation)();\n(0, _cookies.setCookie)();\n(0, _cookies.removeCookies)();\n(0, _footer.someLink)();\n(0, _campaignPage.campaignPage)();\n(0, _contentPage.contentPage)();\n(0, _worldMap.toggleView)();\n(0, _tooltip2.default)();\n(0, _showHide.warningBanner)();\n(0, _twitter.twitterFeed)();\n(0, _showHide.noiseBanner)();\n(0, _twitter.twitterFeed)();\n(0, _menu.disableWarningBanner)();\n(0, _facebookSharing.facebookSharing)();\n(0, _links.link)();\n(0, _menu.megaMenu)();\n\n},{\"./components/breadcrumb\":1,\"./components/campaignPage\":2,\"./components/contentPage\":3,\"./components/cookies\":4,\"./components/editor\":5,\"./components/facebookSharing\":6,\"./components/factbox\":7,\"./components/fade-content\":8,\"./components/filter-menu\":9,\"./components/footer\":10,\"./components/links\":11,\"./components/list\":12,\"./components/menu\":13,\"./components/scrollToId\":14,\"./components/scrollToTop\":15,\"./components/showHide\":16,\"./components/some-feed.js\":17,\"./components/tooltip\":18,\"./components/twitter\":19,\"./components/world-map\":20}],22:[function(require,module,exports){\n/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n\n},{}]},{},[21]);\n"],"file":"bundle.min.js"}