{"version":3,"sources":["app.js","Pages/TimelinePage/Scripts/TimelinePage.js","app_post.js","app_pre.js","CookieUtil.js","google.maps.api.js","utils.browser.js","utils.js","utils.url.js","focus.js","window-events.js","body.js","Blocks/DepartmentsBlock/Scripts/departments-block.js","Blocks/EmergencyNotificationBlock/Scripts/emergency-notification-block.js","Blocks/FaqBlock/Scripts/faq-block.js","Blocks/HeroCampaignContentBlock/Scripts/hero-campaign-content-block.js","Blocks/HeroCampaignQuotationBlock/Scripts/hero-campaign-quotation-block.js","Blocks/HeroCampaignThreeMonthsBlock/Scripts/hero-campaign-three-months.js","Blocks/HeroMemberCampaignBlock/Scripts/hero-member-campaign-block.js","Blocks/MasonryAutomaticTwitterBlock/Scripts/masonry-automatic-twitter-block.js","Blocks/MasonryBackgroundImageBlock/Scripts/masonry-background-image-block.js","Blocks/MasonryMediaBlock/Scripts/MasonryMediaBlock.js","Blocks/MemberCountBlock/Scripts/membercountblock.js","Blocks/MemberListBlock/Scripts/memberlistblock.js","Blocks/MemberPriceBlock/Scripts/memberpriceblock.js","Blocks/QuizBlock/Scripts/QuizBlock.js","Blocks/SlideShowContainerBlock/Scripts/SlideShowContainerBlock.js","Blocks/SlideShowTimelineContainerBlock/Scripts/SlideShowTimelineContainerBlock.js","Layout/CookieInformation/Scripts/cookie-information.js","Layout/Facet/Scripts/facet.js","Layout/FeedbackForm/Scripts/feedback-form.js","Layout/Forms/Scripts/forms.js","Layout/Header/Scripts/header.js","Layout/MainNavigation/Scripts/main-navigation.js","Layout/MobileNavigation/Scripts/mobilenavigation.js","Layout/MyPagesHeader/Scripts/my-pages-header.js","Layout/MyPagesLayout/Scripts/my-pages-container.js","Layout/MyPagesNavigation/Scripts/my-pages-navigation.js","Layout/PageOverlay/Scripts/page-overlay.js","Layout/SearchBar/Scripts/search-bar.js","Layout/SearchListing/Scripts/search-listing.js","Layout/SearchSummary/Scripts/search-summary.js","Layout/SubNavigation/Scripts/SubNavigation.js","Layout/ToolsNavigation/Scripts/tools-navigation.js","Pages/CoreWidgetPage/Scripts/core-widget-page.js","Pages/DepartmentListingPage/Scripts/department-listing-page.js","Pages/EditorialPage/Scripts/editorial-page.js","Pages/ToolboxStartPage/Scripts/ToolboxNavigation.js","Pages/ToolboxToolPage/Scripts/ToolboxToolPage.js","Pages/ToolboxTopicPage/Scripts/ToolboxTopicPage.js"],"names":["trapFocus","modal","focusFirst","focusableContent","$","startFocus","firstFocusableElement","lastFocusableElement","length","document","addEventListener","e","isTabPressed","key","keyCode","shiftKey","activeElement","focus","preventDefault","modalAccessibility","openClose","focusOnThis","isExpanded","attr","focusBack","timelineSlideshow","moduleContainer","slides","find","captions","showNav","addClass","showPrev","showNext","append","i","ilen","li","button","slideNav","activeSlide","innerHTML","trim","remove","_loop","click","clearInterval","interval","removeClass","Z","setInterval","autoSlide","slideshowSpeedInSeconds","height","outerHeight","onGoogleMapsApiReady","Vardforbundet","Application","broadcast","window","google","Box","addService","application","set","name","value","hours","path","expires","this","getHoursFromNow","cookie","escape","Date","getTime","get","c","cs","split","len","charAt","substring","indexOf","unescape","delete","domain","Get_Cookie","_load","tag","scriptTags","Array","prototype","slice","call","getElementsByTagName","existingScriptTag","filter","s","src","createElement","firstScriptTag","parentNode","insertBefore","initialized","initializedAndReady","load","apiKey","IsInIE9Context","ie9Element","getElementsByClassName","debounce","func","wait","immediate","timeout","_this","args","arguments","callNow","later","apply","clearTimeout","setTimeout","getParameterByName","paramName","searchString","replace","regex","RegExp","results","exec","decodeURIComponent","addBehavior","init","onKeyDown","event","altKey","ctrlKey","metaKey","hadKeyboardEvent","onPointerDown","onFocus","target","nodeName","setAttribute","onBlur","hasAttribute","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","removeAttribute","onVisibilityChange","visibilityState","addInitialPointerMoveListeners","onInitialPointerMove","removeInitialPointerMoveListeners","removeEventListener","initialize","test","readyState","attachResizeOmitter","resizeOmitter","utils","getService","addModule","context","behaviors","element","destroy","onclick","elementType","toggle","getElement","location","href","history","pushState","hide","classList","add","closeClass","show","moduleId","config","containerTarget","cookieUtil","getConfig","close","elem","closest","elemMob","matchMedia","matches","decodeString","childNodes","nodeValue","displayByHash","currentHash","hash","trigger","contains","selectors","state","expanded","titles","open","displayModes","Collapsed","Expanded","displaymode","link","setImage","undefined","image","tabletimage","style","backgroundImage","messages","onmessage","data","bgImg","heading","reason1","reason2","bubble","bubble2","man","man2","man3","reason3","self","getBgUrl","onload","animChain","el","bg","currentStyle","defaultView","getComputedStyle","step1","step2","step3","step4","step5","loadFeed","xhr","XMLHttpRequest","screen_name","status","response","responseText","className","classNames","loading","hidden","send","nojs","moduleClass","handleMouseDown","tagName","toLowerCase","mediaIframeLink","mediaIframe","toString","mediaNewIframeLink","firstClick","mediaBtn","mediaThumb","media","mediaVid","myConfObj","iframeMouseOver","currentTarget","previousElementSibling","startCounter","startTime","stopTime","updateLoop","elapsedTime","flipCounterUpdate","flipCounterInit","speed","parseInt","loadMore","listDom","memberListBlockList","loadedItems","loadItems","numberOfItems","lastToLoad","contentId","timeOutIndex","loadItemsXhrRequest","memberListLink","memberListLinkLoad","newLoadedItems","on","thisCounter","parent","thisText","selectValue","html","Object","defineProperty","enumerable","configurable","writable","predicate","TypeError","list","thisArg","calcHeight","max","querySelectorAll","quizListItem","children","offsetHeight","documentElement","setProperty","calcHeightMobile","getClosest","selector","getNodeindex","elm","isPartiallyInViewport","jQuery","rect","getBoundingClientRect","windowHeight","innerHeight","clientHeight","windowWidth","innerWidth","clientWidth","vertInView","top","horInView","left","width","isInViewport","bounding","bottom","right","playAnimation","bodymovin","loadAnimation","container","$image","renderer","loop","autoplay","rendererSettings","progressiveLoad","preserveAspectRatio","playAnimationNoSun","playResultAnimation","$resultImage","playControlAnimation","controlAnimation","$qImage","doneResizing","currentItem","querySelector","visibleQuizListItem","result","getPrevQuestion","$error","playSegments","controls","getNextQuestion","nextElementSibling","setSpeed","getAllAnswers","allInputs","$thisQuizList","getAttribute","thisKey","allAnswers","x","count","push","getWinner","maxClass","thisCount","$controls","$animation","abortTest","abortResult","quizstartbtn","quizStart","quizList","controlsError","animation","resultImage","qImage","prevBtn","nextBtn","questionNumber","questionsLength","first","$qLength","$qNumber","Element","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","ownerDocument","item","tabIndex","resizeId","itemindex","ifAnswered","abort","mapSettings","settings","setup","appendChild","active","auto","arrayPosition","reset","array","events","_init","cookieValue","id","_destroy","_onclick","now","acceptDate","setYear","getFullYear","toUTCString","resolveActiveFiltration","facetItems","facet","facetItemsArray","elements","selectioncount","selection","module","stopPropagation","namespace","selected","checked","displayForm","feedbackLevelValue","setRequestHeader","postForm","form","type","encodeURIComponent","sendArgs","join","resetForm","initialContainerValue","dataValue","addDisclamer","eleChild","formStep","formChild","formBtn","div","toggleClass","body","targetContainer","mainNavigationButton","getElementById","mainNavigationContainer","mainNavigationContainerLinks","isClickInside","isDesktop","toggleChildren","targetElementId","targetElementRaw","targetElement","targets","forEach","child","indentExpandedItemClass","expandedItemClass","title","scrollTop","toggleParent","containerExpandedClass","itemTriggerClass","indentItemTriggerClass","setInitialState","firstLevelTriggers","triggers","toggleContainer","displayContent","detail","nrOfUnreadMessages","messageMenuItems","actions","bodyClass","setTabIndex","fieldClass","sender","addElement","innerHtml","listitem","domNode","resolvePageAction","serviceUrl","JSON","parse","options","displaycount","totalcount","pageindex","pageIndex","returnUrl","updatePageParam","remainingCount","stringify","pageParam","pageparam","paramValue","replaceHref","displayCount","totalCount","updateSummary","summary","display","total","updateSortParams","sort","firstLevelBtns","btns","i2","len2","navigation","targetIsExpanded","search","noJsItems","noJsItemsArray","signon","setInitState","listItemsCategoryList","checkOpenTrees","setListeners","attributes","childList","subtree","attributeFilter","CharacterDataOldValue","observer","MutationObserver","mutations","mutation","observe","sortingElm","listItemsCategoryTree","compareTitles","listItem","console","log","listItemTitle","sortingElmTitle","includes","stopImagePop","contactArea","url","f","head","cssTriggerListener","animationName","cssTriggerListenerSecond","regeneratorRuntime","async","context$3$0","prev","next","stop","replaceLoginLink","pos","map","mapCenter","setStyles","styles","setOptions","setMarkers","jsonResponse","markers","marker","_marker","maps","Marker","position","LatLng","lat","lng","Animation","DROP","icon","standard","_infowindow","InfoWindow","content","markerUrl","addListener","setIcon","hover","setMap","loadMap","mapArea","Map","center","zoom","zoomControl","scrollwheel","mapTypeControl","scaleControl","streetViewControl","rotateControl","fullscreenControl","getCenter","addDomListener","setCenter","googleMapsApiService","setTableBeforeText","headers","rows","tables","r","cells","d","newSpanHeader","innerText","prepend","scrollTo","animate","offset","is","has","hasClass","itemTpl","text","blur","openThis","thisHeading","img","isPortrait","prevIndex","$prev","nextIndex","$next","mouseup","ready","dontScrollTrigger","topMenu","menuItems","menuItemsSelect","scrollItems","offsetTop","change","isTrigger","val","onlyOnceUp","onlyOnceDown","lastScrollTop","prevId","scroll","run","timer","scrollY","fromTop","cur","end","prop","startHeight","st","loopFocus","Error","escCallback","focusElement","Function","focusableElements","FOCUSABLE_ELEMENT_SELECTORS","keyboardHandler","firstFocusableEl","lastFocusableEl","elementToFocus","KEY_CODE_MAP","TAB","toggleMenu","menuList","menuBtn","toggleMore","activity","activityBtn","activityClose","activityMore","toggleExtra","extraMore","extraBtn","extra","showIcons","moduleLink","showDetailsIcons","showDetails","error","debug"],"mappings":"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","file":"app.js","sourcesContent":["/**\r\n * App initialization\r\n * @overview App initialization _before_ components are required\r\n * @copyright (c) 2015\r\n * @author Kim Gunnarsson\r\n */\n\n\"use strict\";\n\nwindow.Vardforbundet = window.Vardforbundet || window.Box;\n'use strict';\n\nVardforbundet.Application.addService('CookieUtil', function (application) {\n\n 'use strict';\n\n //-----------------------------------------------------------\n // Private\n //-----------------------------------------------------------\n\n // Private variables and functions go here\n\n //-----------------------------------------------------------\n // Public API\n //-----------------------------------------------------------\n\n return {\n\n set: function set(name, value, hours, path) {\n var expires = this.getHoursFromNow(24);\n if (hours) expires = hours;\n path = path || '/';\n document.cookie = name + '=' + escape(value) + '; expires=' + expires + '; path=' + path;\n },\n getHoursFromNow: function getHoursFromNow(hours) {\n return new Date(new Date().getTime() + hours * 3600000);\n },\n get: function get(name) {\n name += '=';\n var c,\n cs = document.cookie.split(';');\n for (var i = 0, len = cs.length; i < len; i++) {\n c = cs[i];\n while (c.charAt(0) == ' ') c = c.substring(1, c.length);\n if (c.indexOf(name) == 0) {\n return unescape(c.substring(name.length, c.length));\n }\n }\n },\n 'delete': function _delete(name, path, domain) {\n if (Get_Cookie(name)) document.cookie = name + \"=\" + (path ? \";path=\" + path : \"\") + (domain ? \";domain=\" + domain : \"\") + \";expires=Thu, 01-Jan-1970 00:00:01 GMT\";\n }\n\n };\n});\n'use strict';\n\nVardforbundet.Application.addService('google.maps.api', function (application) {\n 'use strict';\n\n var initialized;\n var initializedAndReady;\n var key;\n\n function _load() {\n var tag;\n var scriptTags = Array.prototype.slice.call(document.getElementsByTagName('script'));\n var existingScriptTag = scriptTags.filter(function (s) {\n return s.src === '//maps.googleapis.com/maps/api/js?key=' + key + '&callback=onGoogleMapsApiReady';\n });\n\n if (existingScriptTag.length === 0) {\n tag = document.createElement('script');\n\n tag.src = '//maps.googleapis.com/maps/api/js?key=' + key + '&callback=onGoogleMapsApiReady';\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n\n initialized = true;\n }\n }\n\n return {\n load: function load(apiKey) {\n if (initialized) {\n if (initializedAndReady) {\n application.broadcast('google.maps.api:loaded');\n }\n return;\n }\n\n key = apiKey;\n _load();\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addService('utils.browser', function (application) {\n 'use strict';\n\n return {\n IsInIE9Context: function IsInIE9Context() {\n var ie9Element = document.getElementsByClassName('ie9');\n return ie9Element !== 'undefined' && ie9Element.length !== 0;\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addService('utils', function (application) {\n 'use strict';\n\n return {\n debounce: function debounce(func, wait, immediate) {\n var timeout;\n\n return function () {\n var _this = this;\n var args = arguments;\n var callNow = immediate && !timeout;\n var later = function later() {\n timeout = null;\n\n if (!immediate) {\n func.apply(_this, args);\n }\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n\n if (callNow) {\n func.apply(_this, args);\n }\n };\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addService('utils.url', function (application) {\n 'use strict';\n\n return {\n getParameterByName: function getParameterByName(paramName, searchString) {\n paramName = paramName.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\n var regex = new RegExp(\"[\\\\?&]\" + paramName + \"=([^&#]*)\"),\n results = regex.exec(searchString);\n return results === null ? \"\" : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addBehavior('focus', function (application) {\n\n return {\n init: function init() {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n /**\r\n * On `keydown`, set `hadKeyboardEvent`.\r\n * @param {Event} event\r\n */\n function onKeyDown(event) {\n // Ignore keypresses if the user is holding down a modifier key.\n if (!event.altKey && !event.ctrlKey && !event.metaKey) {\n hadKeyboardEvent = true;\n }\n }\n\n /**\r\n * If at any point a user clicks with a pointing device, ensure that we change\r\n * the modality away from keyboard.\r\n */\n function onPointerDown() {\n hadKeyboardEvent = false;\n }\n\n /**\r\n * On `focus`, add the `keyboard-focus` attribute to the target if the\r\n * target received focus as a result of keyboard navigation\r\n * @param {Event} event\r\n */\n function onFocus(event) {\n // Prevent IE from focusing the document or HTML element.\n if (event.target !== document && event.target.nodeName !== 'HTML' && hadKeyboardEvent) {\n event.target.setAttribute('keyboard-focus', '');\n\n hadKeyboardEvent = false;\n }\n }\n\n /**\r\n * On `blur`, remove the `keyboard-focus` attribute from the target.\r\n * @param {Event} event\r\n */\n function onBlur(event) {\n if (event.target === document || event.target.nodeName === 'HTML') {\n return;\n }\n\n if (event.target.hasAttribute('keyboard-focus')) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably\n // a regular focus change.\n hadFocusVisibleRecently = true;\n\n clearTimeout(hadFocusVisibleRecentlyTimeout);\n\n hadFocusVisibleRecentlyTimeout = setTimeout(function () {\n hadFocusVisibleRecently = false;\n\n clearTimeout(hadFocusVisibleRecentlyTimeout);\n }, 100);\n\n event.target.removeAttribute('keyboard-focus');\n }\n }\n\n /**\r\n * If the user changes tabs, keep track of whether or not keyboard had\r\n * recently triggered focus.\r\n */\n function onVisibilityChange() {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling\n // focus on the element (Safari actually calls it twice).\n // If this tab change caused a blur, re-enable keyboard focus\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n\n addInitialPointerMoveListeners();\n }\n }\n\n /**\r\n * Add a group of listeners to detect usage of any pointing devices.\r\n * These listeners will be added when the polyfill first loads, and anytime\r\n * the window is blurred, so that they are active when the window regains\r\n * focus.\r\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\r\n * When the library first loads, assume the user is in keyboard modality.\r\n * If any event is received from a pointing device (e.g. mouse, pointer,\r\n * touch), turn off keyboard modality.\r\n * This accounts for situations where focus enters the page from the URL bar.\r\n * @param {Event} event\r\n */\n function onInitialPointerMove(event) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. ¯\\_(ツ)_/¯\n if (event.target.nodeName !== 'HTML') {\n hadKeyboardEvent = false;\n\n removeInitialPointerMoveListeners();\n }\n }\n\n /**\r\n * Subscription when the DOM is ready\r\n */\n function initialize() {\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('focus', onFocus, true);\n document.addEventListener('blur', onBlur, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n }\n\n /**\r\n * Callback wrapper for check loaded state\r\n */\n /* eslint-disable */\n !(function load() {\n if (/m/.test(document.readyState)) {\n document.removeEventListener('readystatechange', load) | initialize();\n } else {\n document.addEventListener('readystatechange', load);\n }\n })();\n /* eslint-enable */\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addBehavior('window-events', function (application) {\n var utils;\n\n function attachResizeOmitter() {\n var resizeOmitter = utils.debounce(function () {\n application.broadcast('windowresize');\n }, 250);\n\n window.addEventListener('resize', resizeOmitter);\n }\n\n return {\n init: function init() {\n utils = application.getService('utils');\n attachResizeOmitter();\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('body', function (context) {\n var moduleContainer;\n\n return {\n behaviors: ['focus'],\n\n init: function init() {\n moduleContainer = context.element;\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n },\n\n onclick: function onclick(event, element, elementType) {\n context.application.broadcast('framework/action:page-click', { element: element, elementType: elementType });\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('departments-block', function (context) {\n 'use strict';\n\n var moduleContainer;\n var config;\n\n function toggle(element) {}\n\n return {\n init: function init() {\n moduleContainer = context.getElement();\n\n moduleContainer.addEventListener('change', function () {\n if (moduleContainer.value !== \"\") {\n window.location.href = moduleContainer.value;\n }\n });\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n },\n\n onclick: function onclick(event, element, elementType) {\n if (elementType === 'toggle') {\n event.preventDefault();\n toggle(element);\n if (window.history || window.history.pushState) {\n window.history.pushState(null, null, element.href);\n }\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('emergency-notification-block', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config;\n var containerTarget;\n var closeClass;\n var cookieUtil;\n\n function hide() {\n moduleContainer.classList.add(closeClass);\n }\n function show() {\n moduleContainer.classList.remove(closeClass);\n }\n\n return {\n init: function init() {\n cookieUtil = context.getService('CookieUtil');\n moduleContainer = context.getElement();\n config = context.getConfig();\n closeClass = config.close;\n\n if (cookieUtil.get(\"notification\") != 1) {\n show();\n }\n\n var elem = moduleContainer.closest('.emergency-notification-container--desktop');\n var elemMob = moduleContainer.closest('.emergency-notification-container--no-desktop');\n\n if (window.matchMedia('(min-width: 768px)').matches) {\n if (elem) {\n elem.getElementsByTagName('h2')[0].setAttribute('aria-hidden', 'false');\n }\n if (elemMob) {\n elemMob.getElementsByTagName('h2')[0].setAttribute('aria-hidden', 'true');\n }\n } else {\n if (elem) {\n elem.getElementsByTagName('h2')[0].setAttribute('aria-hidden', 'true');\n }\n if (elemMob) {\n elemMob.getElementsByTagName('h2')[0].setAttribute('aria-hidden', 'false');\n }\n }\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n containerTarget = null;\n },\n\n onclick: function onclick(event, element, elementType) {\n if (elementType === 'close-message') {\n cookieUtil.set(\"notification\", 1);\n hide();\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('faq-block', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config;\n var containerTarget;\n\n var displayModes = {\n Collapsed: \"collapsed\",\n Expanded: \"expanded\"\n };\n\n var titles = {};\n var trigger = null;\n\n function decodeString(value) {\n var e = document.createElement('div');\n e.innerHTML = value;\n return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue;\n }\n\n function displayByHash(currentHash) {\n if (window.location.hash) {\n var hash = window.location.hash;\n if (hash === currentHash) {\n toggle(trigger);\n }\n }\n }\n\n function toggle(element) {\n if (moduleContainer.classList.contains(config.selectors.state.expanded)) {\n moduleContainer.classList.remove(config.selectors.state.expanded);\n element.setAttribute('title', titles.open);\n return;\n }\n\n moduleContainer.classList.add(config.selectors.state.expanded);\n element.setAttribute('title', titles.close);\n }\n\n return {\n init: function init() {\n moduleContainer = context.getElement();\n config = context.getConfig();\n\n if (config.displaymode === displayModes.Expanded) {\n return;\n }\n\n titles.open = decodeString(config.titles.open);\n titles.close = decodeString(config.titles.close);\n trigger = moduleContainer.getElementsByClassName(config.selectors.link)[0];\n displayByHash(config.hash);\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n containerTarget = null;\n titles = null;\n },\n\n onclick: function onclick(event, element, elementType) {\n if (elementType === 'toggle') {\n event.preventDefault();\n toggle(element);\n if (window.history || window.history.pushState) {\n window.history.pushState(null, null, element.href);\n }\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('hero-campaign-content-block', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config;\n var utils;\n\n function setImage() {\n if (utils.IsInIE9Context()) {\n return;\n }\n\n if (config.image !== undefined) {\n if (window.matchMedia('(min-width: 700px)').matches) {\n if (config.tabletimage !== null) {\n if (window.matchMedia('(min-width: 700px) and (max-width: 1024px)').matches) {\n moduleContainer.style.backgroundImage = 'url(' + config.tabletimage + ')';\n } else {\n moduleContainer.style.backgroundImage = 'url(' + config.image + ')';\n }\n } else {\n moduleContainer.style.backgroundImage = 'url(' + config.image + ')';\n }\n } else {\n moduleContainer.style.backgroundImage = '';\n }\n }\n }\n\n return {\n behaviors: ['window-events'],\n messages: ['windowresize'],\n init: function init() {\n moduleContainer = context.getElement();\n config = context.getConfig();\n utils = context.application.getService('utils.browser');\n\n if (utils.IsInIE9Context()) {\n if (config.image !== undefined) {\n moduleContainer.style.backgroundImage = 'url(' + config.image + ')';\n }\n return;\n }\n\n if (typeof window.matchMedia === 'undefined') {\n return;\n }\n\n setImage();\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n },\n\n onmessage: function onmessage(name, data) {\n if (name === 'windowresize') {\n setImage();\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('hero-campaign-quotation-block', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config;\n var utils;\n\n function setImage() {\n if (utils.IsInIE9Context()) {\n return;\n }\n\n if (config.image !== undefined) {\n if (window.matchMedia('(min-width: 500px)').matches) {\n if (config.tabletimage !== null) {\n if (window.matchMedia('(min-width: 500px) and (max-width: 800px)').matches) {\n moduleContainer.style.backgroundImage = 'url(' + config.tabletimage + ')';\n } else {\n moduleContainer.style.backgroundImage = 'url(' + config.image + ')';\n }\n } else {\n moduleContainer.style.backgroundImage = 'url(' + config.image + ')';\n }\n } else {\n moduleContainer.style.backgroundImage = '';\n }\n }\n }\n\n return {\n behaviors: ['window-events'],\n messages: ['windowresize'],\n init: function init() {\n moduleContainer = context.getElement();\n config = context.getConfig();\n utils = context.application.getService('utils.browser');\n\n if (utils.IsInIE9Context()) {\n if (config.image !== undefined) {\n moduleContainer.style.backgroundImage = 'url(' + config.image + ')';\n }\n return;\n }\n\n if (typeof window.matchMedia === 'undefined') {\n return;\n }\n\n setImage();\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n },\n\n onmessage: function onmessage(name, data) {\n if (name === 'windowresize') {\n setImage();\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('hero-campaign-three-months', function (context) {\n 'use strict';\n\n var bgImg = document.getElementsByClassName(\"hero-threemonths-block__reasons\")[0],\n heading = document.getElementsByClassName(\"hero-threemonths-block__heading\")[0],\n reason1 = document.getElementsByClassName(\"hero-threemonths-block__reason1\")[0],\n reason2 = document.getElementsByClassName(\"hero-threemonths-block__reason2\")[0],\n bubble = document.getElementsByClassName(\"hero-threemonths-block__reason2bubble\")[0],\n bubble2 = document.getElementsByClassName(\"hero-threemonths-block__reason2bubble2\")[0],\n man = document.getElementsByClassName(\"hero-threemonths-block__reason2man\")[0],\n man2 = document.getElementsByClassName(\"hero-threemonths-block__reason2man2\")[0],\n man3 = document.getElementsByClassName(\"hero-threemonths-block__reason2man3\")[0],\n reason3 = document.getElementsByClassName(\"hero-threemonths-block__reason3\")[0],\n name = document.getElementsByClassName(\"hero-threemonths-block__name\")[0];\n\n return {\n init: function init() {\n var self = this;\n\n var image = document.createElement('img');\n image.src = self.getBgUrl(bgImg);\n image.onload = function () {\n self.animChain(self);\n };\n },\n\n getBgUrl: function getBgUrl(el) {\n var bg = \"\";\n if (el.currentStyle) {\n // IE\n bg = el.currentStyle.backgroundImage;\n } else if (document.defaultView && document.defaultView.getComputedStyle) {\n // Firefox\n bg = document.defaultView.getComputedStyle(el, \"\").backgroundImage;\n } else {\n // try and get inline style\n bg = el.style.backgroundImage;\n }\n return bg.replace(/url\\(['\"]?(.*?)['\"]?\\)/i, \"$1\");\n },\n animChain: function animChain(self) {\n self.step1(self);\n },\n step1: function step1(self) {\n heading.classList.add(\"show\");\n setTimeout(function () {\n heading.classList.remove(\"show\");\n setTimeout(function () {\n self.step2(self);\n }, 1000);\n }, 2500);\n },\n step2: function step2(self) {\n reason1.classList.add(\"show\");\n setTimeout(function () {\n reason1.classList.add(\"animated\");\n setTimeout(function () {\n reason1.classList.remove(\"show\", \"animated\");\n setTimeout(function () {\n self.step3(self);\n }, 1000);\n }, 4300);\n }, 600);\n },\n step3: function step3(self) {\n reason2.classList.add(\"show\");\n\n setTimeout(function () {\n man.classList.add(\"show\");\n }, 250);\n setTimeout(function () {\n man2.classList.add(\"show\");\n }, 500);\n setTimeout(function () {\n man3.classList.add(\"show\");\n }, 750);\n setTimeout(function () {\n bubble.classList.add(\"show\");\n }, 900);\n setTimeout(function () {\n bubble2.classList.add(\"show\");\n }, 1150);\n\n setTimeout(function () {\n bubble2.classList.remove(\"show\");\n }, 3000);\n setTimeout(function () {\n bubble.classList.remove(\"show\");\n }, 3100);\n setTimeout(function () {\n man3.classList.remove(\"show\");\n }, 3200);\n setTimeout(function () {\n man2.classList.remove(\"show\");\n }, 3300);\n setTimeout(function () {\n man.classList.remove(\"show\");\n }, 3400);\n\n setTimeout(function () {\n reason2.classList.remove(\"show\");\n man.classList.remove(\"show\");\n man2.classList.remove(\"show\");\n man3.classList.remove(\"show\");\n bubble.classList.remove(\"show\");\n bubble2.classList.remove(\"show\");\n setTimeout(function () {\n self.step4(self);\n }, 1000);\n }, 3500);\n },\n step4: function step4(self) {\n reason3.classList.add(\"show\");\n setTimeout(function () {\n reason3.classList.add(\"animated\");\n setTimeout(function () {\n reason3.classList.remove(\"show\", \"animated\");\n setTimeout(function () {\n self.step5(self);\n }, 1000);\n }, 4300);\n }, 600);\n },\n step5: function step5(self) {\n name.classList.add(\"show\");\n setTimeout(function () {\n name.classList.remove(\"show\");\n setTimeout(function () {\n self.step1(self);\n }, 1000);\n }, 2500);\n },\n\n destroy: function destroy() {\n heading = null;\n },\n\n onclick: function onclick(event, element, elementType) {\n if (elementType === 'close-message') {\n hide();\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('hero-member-campaign-block', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config;\n var utils;\n\n function setImage() {\n if (utils.IsInIE9Context()) {\n return;\n }\n\n if (config.image !== undefined) {\n if (window.matchMedia('(min-width: 700px)').matches) {\n if (config.tabletimage !== null) {\n if (window.matchMedia('(min-width: 700px) and (max-width: 1024px)').matches) {\n moduleContainer.style.backgroundImage = 'url(' + config.tabletimage + ')';\n } else {\n moduleContainer.style.backgroundImage = 'url(' + config.image + ')';\n }\n } else {\n moduleContainer.style.backgroundImage = 'url(' + config.image + ')';\n }\n } else {\n moduleContainer.style.backgroundImage = '';\n }\n }\n }\n\n return {\n behaviors: ['window-events'],\n messages: ['windowresize'],\n init: function init() {\n moduleContainer = context.getElement();\n config = context.getConfig();\n utils = context.application.getService('utils.browser');\n\n if (utils.IsInIE9Context()) {\n if (config.image !== undefined) {\n moduleContainer.style.backgroundImage = 'url(' + config.image + ')';\n }\n return;\n }\n\n if (typeof window.matchMedia === 'undefined') {\n return;\n }\n\n setImage();\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n },\n\n onmessage: function onmessage(name, data) {\n if (name === 'windowresize') {\n setImage();\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('masonry-automatic-twitter-block', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config;\n var containerTarget;\n\n var classNames = {\n nojs: \"--no-js\",\n hidden: \"--hidden\",\n loading: \"--loading\"\n };\n\n function loadFeed() {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', '/AutomaticTwitterBlock/GetLatestStatusForUser?username=' + config.screen_name);\n\n xhr.onload = function (e) {\n if (xhr.status === 200) {\n var response = xhr.responseText;\n if (response !== null && response !== undefined) {\n containerTarget.innerHTML = response;\n moduleContainer.classList.remove(config.className + classNames.loading);\n }\n return;\n }\n moduleContainer.classList.remove(config.className + classNames.loading);\n moduleContainer.classList.add(config.className + classNames.hidden);\n };\n xhr.send();\n }\n\n return {\n init: function init() {\n moduleContainer = context.getElement();\n config = context.getConfig();\n if (config) {\n moduleContainer.classList.remove(config.className + classNames.nojs);\n moduleContainer.classList.add(config.className + classNames.loading);\n\n containerTarget = moduleContainer.getElementsByClassName(config.target)[0];\n loadFeed();\n }\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n containerTarget = null;\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('masonry-background-image-block', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config;\n var containerTarget;\n\n return {\n init: function init() {\n moduleContainer = context.getElement();\n config = context.getConfig();\n\n moduleContainer.classList.add(config.moduleClass);\n\n containerTarget = moduleContainer.getElementsByClassName(config.target)[0];\n if (config.image !== undefined) {\n containerTarget.style.backgroundImage = 'url(' + config.image + ')';\n }\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n containerTarget = null;\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('MasonryMediaBlockVideo', function (context) {\n\n var media;\n var mediaBtn;\n var mediaThumb;\n var mediaVid;\n var mediaIframe;\n var firstClick = true;\n\n var myConfObj = {\n iframeMouseOver: false\n };\n\n window.addEventListener('blur', function () {\n if (myConfObj.iframeMouseOver) {\n handleMouseDown();\n }\n });\n\n function handleMouseDown() {\n if (document.activeElement.tagName.toLowerCase() === 'iframe') {\n var mediaIframeLink = mediaIframe.src.toString();\n var mediaNewIframeLink = mediaIframe.src;\n if (firstClick) {\n firstClick = false;\n if (mediaIframeLink.indexOf('dreambroker') != -1) {\n if (mediaIframeLink.indexOf('controls=false') != -1) {\n mediaNewIframeLink = mediaNewIframeLink.replace('controls=false', 'controls=true');\n }\n if (mediaIframeLink.indexOf('autoplay') != -1) {\n mediaNewIframeLink = mediaNewIframeLink.replace('autoplay=false', 'autoplay=true');\n } else {\n if (mediaIframeLink.indexOf('?') != -1) {\n mediaNewIframeLink = mediaNewIframeLink + \"&autoplay=true\";\n } else {\n mediaNewIframeLink = mediaNewIframeLink + \"?autoplay=true\";\n }\n }\n mediaIframe.src = mediaNewIframeLink;\n }\n }\n\n mediaBtn.classList.add('hide');\n if (mediaThumb) {\n mediaThumb.classList.add('hide');\n }\n }\n }\n\n return {\n init: function init() {\n media = context.element;\n mediaBtn = context.element.getElementsByClassName('masonry-media-block__btn')[0];\n mediaThumb = context.element.getElementsByClassName('masonry-media-block__image')[0];\n mediaVid = context.element.getElementsByClassName('block-shell__iframe--video')[0];\n mediaIframe = mediaVid.getElementsByTagName('iframe')[0];\n\n mediaVid.addEventListener('mouseover', function () {\n myConfObj.iframeMouseOver = true;\n });\n mediaVid.addEventListener('mouseout', function () {\n window.focus();\n myConfObj.iframeMouseOver = false;\n });\n }\n };\n});\nVardforbundet.Application.addModule('MasonryMediaBlockAudio', function (context) {\n\n var media;\n var mediaBtn;\n var mediaThumb;\n var mediaVid;\n\n var myConfObj = {\n iframeMouseOver: false\n };\n\n window.addEventListener('blur', function () {\n if (myConfObj.iframeMouseOver) {\n handleMouseDown();\n }\n });\n\n function handleMouseDown() {\n if (document.activeElement.tagName.toLowerCase() === 'iframe') {\n mediaBtn.classList.add('hide');\n if (mediaThumb) {\n mediaThumb.classList.add('hide');\n }\n }\n }\n\n return {\n init: function init() {\n media = context.element;\n mediaBtn = context.element.getElementsByClassName('block-shell__btn')[0];\n mediaThumb = context.element.getElementsByClassName('masonry-media-block__image')[0];\n mediaVid = context.element.getElementsByClassName('block-shell__iframe--audio')[0];\n },\n onclick: function onclick(event, element, elementType) {\n if (event.currentTarget) {\n event.preventDefault();\n mediaBtn.previousElementSibling.classList.toggle('show');\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('membercount-block', function (context) {\n 'use strict';\n\n return {\n init: function init() {\n var _this = $(context.element).find('.counter');\n var startTime = 1;\n var stopTime = parseInt(_this.data('member-count')) + 1;\n\n startCounter(_this, startTime, stopTime);\n function startCounter(_this, startTime, stopTime) {\n _this.flipCounterInit({ 'speed': 0.01 });\n updateLoop(startTime, stopTime, _this);\n\n function updateLoop(startTime, stopTime, _this) {\n var elapsedTime = startTime++;\n if (elapsedTime >= stopTime) {\n elapsedTime = stopTime;\n return;\n }\n _this.flipCounterUpdate(elapsedTime);\n window.setTimeout(function () {\n updateLoop(startTime, stopTime, _this);\n }, 1);\n }\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('member-list-block', function (context) {\n 'use strict';\n\n return {\n init: function init() {\n\n var $memberListBlock = $('.member-list-block');\n var memberListBlockList = '.member-list-block__list';\n var memberListLink = '.member-list-block__link';\n var memberListLinkLoad = 'member-list-block__link--load';\n\n $(context.element).find(memberListLink).on(\"click\", function (e) {\n e.preventDefault();\n loadMore($(context.element));\n });\n\n function loadMore(_this) {\n var listDom = $(context.element).find(memberListBlockList);\n var loadedItems = _this.attr('data-loaded-items');\n var loadItems = _this.attr('data-load-items');\n var numberOfItems = _this.attr('data-total-items');\n var lastToLoad = parseInt(loadedItems) + parseInt(loadItems - 1);\n var contentId = _this.attr('data-content-id');\n var timeOutIndex = 0;\n\n if (parseInt(loadedItems) < parseInt(numberOfItems)) {\n loadItemsXhrRequest(listDom, loadedItems, lastToLoad, numberOfItems, contentId, _this, timeOutIndex);\n } else {\n $(context.element).find(memberListLink).removeClass(memberListLinkLoad);\n $(context.element).find(memberListLink).hide();\n }\n }\n\n function loadItemsXhrRequest(listDom, loadedItems, lastToLoad, numberOfItems, contentId, _this, timeOutIndex) {\n $(context.element).find(memberListLink).addClass(memberListLinkLoad);\n setTimeout(function () {\n timeOutIndex++;\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", '/MemberListBlock/LoadItems/?loadedItems=' + loadedItems + '&contentReference=' + contentId);\n xhr.onload = function (e) {\n if (xhr.status === 200) {\n\n var response = xhr.responseText;\n var newLoadedItems = parseInt(loadedItems) + 1;\n\n if (response !== null && response !== undefined) {\n $(context.element).find(memberListLink).removeClass(memberListLinkLoad);\n listDom.append(response);\n listDom.attr('data-loaded-items', newLoadedItems);\n $(context.element).attr('data-loaded-items', newLoadedItems);\n if (lastToLoad >= newLoadedItems && newLoadedItems < numberOfItems) {\n loadItemsXhrRequest(listDom, newLoadedItems, lastToLoad, numberOfItems, contentId, _this, timeOutIndex);\n }\n if (newLoadedItems >= numberOfItems) {\n $(context.element).find(memberListLink).removeClass(memberListLinkLoad);\n $(context.element).find(memberListLink).hide();\n }\n }\n\n return;\n }\n };\n xhr.send();\n }, 150 * parseInt(timeOutIndex));\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('memberprice-block', function (context) {\n 'use strict';\n\n return {\n init: function init() {\n\n $(context.element).find('.memberprice-block__select').on('change', function () {\n var thisCounter = $(this).parent().find('.counter');\n var thisText = $(this).parent().find('.memberprice-block__text');\n var selectValue = this.value;\n if (parseInt(selectValue) <= 0) {\n $(this).parent().find('.memberprice-block__noprice').addClass('show');\n $(this).parent().find('.memberprice-block__inner').addClass('hide');\n } else if (selectValue != \"none\") {\n thisCounter.data('price', selectValue);\n thisCounter.flipCounterUpdate(thisCounter.data('price'));\n $(this).parent().find('.memberprice-block__noprice').removeClass('show');\n $(this).parent().find('.memberprice-block__inner').removeClass('hide');\n } else {\n $(this).parent().find('.memberprice-block__noprice').removeClass('show');\n $(this).parent().find('.memberprice-block__inner').removeClass('hide');\n }\n thisText.html($(this).find(\":selected\").data('priceinfo'));\n });\n\n var _this = $(context.element).find('.counter');\n var startTime = 1;\n var stopTime = parseInt(_this.data('price')) + 1;\n\n startCounter(_this, startTime, stopTime);\n function startCounter(_this, startTime, stopTime) {\n _this.flipCounterInit({ 'speed': 0.01 });\n updateLoop(startTime, stopTime, _this);\n\n function updateLoop(startTime, stopTime, _this) {\n var elapsedTime = startTime++;\n if (elapsedTime >= stopTime) {\n elapsedTime = stopTime;\n return;\n }\n _this.flipCounterUpdate(elapsedTime);\n window.setTimeout(function () {\n updateLoop(startTime, stopTime, _this);\n }, 1);\n }\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('quiz-block', function (context) {\n 'use strict';\n\n if (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, 'find', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function value(predicate) {\n if (this == null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n if (i in list) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n }\n return undefined;\n }\n });\n }\n return {\n init: function init() {\n\n var quizstartbtn = '.quiz-block__startbtn';\n var quizStart = '.quiz-block__start';\n var quizList = '.quiz-block__list';\n var quizListItem = '.quiz-block__listitem';\n var visibleQuizListItem = '.quiz-block__listitem:not(.hide)';\n var controls = '.quiz-block__controls';\n var controlsError = '.quiz-block__controlserror';\n var image = '.quiz-block__image';\n var animation = '.animation';\n var resultImage = '.quiz-block__resultimage';\n var qImage = '.quiz-block__qImage';\n var prevBtn = '.prevBtn';\n var nextBtn = '.nextBtn';\n var result = '.quiz-block__result--';\n var questionNumber = '.questionNumber';\n var questionsLength = '.questionsLength';\n var allAnswers = [];\n var first = true;\n var length = document.querySelectorAll(quizListItem).length;\n var $qLength = context.element.querySelectorAll(questionsLength)[0];\n var $qNumber = context.element.querySelectorAll(questionNumber)[0];\n var $error = context.element.querySelectorAll(controlsError)[0];\n var $controls = context.element.querySelectorAll(controls)[0];\n var $thisQuizList = context.element.querySelectorAll(quizList)[0];\n var $image = context.element.querySelectorAll(image)[0];\n var $animation = context.element.querySelectorAll(animation)[0];\n var $resultImage = context.element.querySelectorAll(resultImage)[0];\n var $qImage = context.element.querySelectorAll(qImage)[0];\n var controlAnimation;\n\n //Set height of quiz\n function calcHeight() {\n var max = 0;\n for (var i = 0; i < context.element.querySelectorAll(quizListItem).length; i++) {\n var el = context.element.querySelectorAll(quizListItem)[i];\n if (el.children[0].children[0].offsetHeight > max) {\n max = el.children[0].children[0].offsetHeight;\n }\n }\n document.documentElement.style.setProperty('--quizHeight', max + \"px\");\n }\n calcHeight();\n function calcHeightMobile(el) {\n document.documentElement.style.setProperty('--quizMobileHeight', el.children[0].children[0].offsetHeight + \"px\");\n }\n\n if (!Element.prototype.matches) {\n Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (s) {\n var matches = (this.document || this.ownerDocument).querySelectorAll(s),\n i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {}\n return i > -1;\n };\n }\n\n function getClosest(elem, selector) {\n for (; elem && elem !== document; elem = elem.parentNode) {\n if (elem.matches(selector)) return elem;\n }\n return null;\n };\n\n function getNodeindex(elm) {\n var c = elm.parentNode.children,\n i = 0;\n for (; i < c.length; i++) if (c[i] == elm) return i;\n }\n\n function isPartiallyInViewport(el) {\n //special bonus for those using jQuery\n if (typeof jQuery !== 'undefined' && el instanceof jQuery) el = el[0];\n\n var rect = el.getBoundingClientRect();\n // DOMRect { x: 8, y: 8, width: 100, height: 100, top: 8, right: 108, bottom: 108, left: 8 }\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n\n // http://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap\n var vertInView = rect.top <= windowHeight && rect.top + rect.height >= 0;\n var horInView = rect.left <= windowWidth && rect.left + rect.width >= 0;\n\n return vertInView && horInView;\n }\n\n function isInViewport(elem) {\n //special bonus for those using jQuery\n if (typeof jQuery === \"function\" && elem instanceof jQuery) {\n elem = elem[0];\n }\n\n var bounding = elem.getBoundingClientRect();\n return bounding.top >= 0 && bounding.left >= 0 && bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) && bounding.right <= (window.innerWidth || document.documentElement.clientWidth);\n };\n\n function playAnimation() {\n var playAnimation = bodymovin.loadAnimation({\n container: $image,\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/static/json/Blocks/QuizBlock/Scripts/animation.json',\n rendererSettings: {\n progressiveLoad: false,\n preserveAspectRatio: \"xMaxYMax meet\"\n }\n });\n }\n function playAnimationNoSun() {\n var playAnimation = bodymovin.loadAnimation({\n container: $image,\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/static/json/Blocks/QuizBlock/Scripts/utan-sol.json',\n rendererSettings: {\n progressiveLoad: false,\n preserveAspectRatio: \"xMaxYMax meet\"\n }\n });\n }\n function playResultAnimation() {\n var resultAnimation = bodymovin.loadAnimation({\n container: $resultImage,\n renderer: 'svg',\n loop: false,\n autoplay: true,\n path: '/static/json/Blocks/QuizBlock/Scripts/resultanimation.json',\n rendererSettings: {\n progressiveLoad: false,\n preserveAspectRatio: \"xMaxYMax meet\"\n }\n });\n }\n\n function playControlAnimation() {\n controlAnimation = bodymovin.loadAnimation({\n container: $qImage,\n renderer: 'svg',\n loop: false,\n autoplay: false,\n path: '/static/json/Blocks/QuizBlock/Scripts/blommorvind.json',\n rendererSettings: {\n progressiveLoad: false,\n preserveAspectRatio: \"xMaxYMax meet\"\n }\n });\n }\n\n window.addEventListener('scroll', function (event) {\n if ($image) {\n if ($image.offsetHeight > (window.innerHeight || document.documentElement.clientHeight)) {\n if (isPartiallyInViewport($image) && first) {\n first = false;\n if ($animation === undefined) {\n playAnimationNoSun();\n } else {\n playAnimation();\n }\n }\n } else {\n if (isInViewport($image) && first) {\n first = false;\n if ($animation === undefined) {\n playAnimationNoSun();\n } else {\n playAnimation();\n }\n }\n }\n }\n }, false);\n if ($image) {\n if ($image.offsetHeight > (window.innerHeight || document.documentElement.clientHeight)) {\n if (isPartiallyInViewport($image) && first) {\n first = false;\n if ($animation === undefined) {\n playAnimationNoSun();\n } else {\n playAnimation();\n }\n }\n } else {\n if (isInViewport($image) && first) {\n first = false;\n if ($animation === undefined) {\n playAnimationNoSun();\n } else {\n playAnimation();\n }\n }\n }\n }\n\n function doneResizing() {\n var currentItem = document.querySelector(visibleQuizListItem);\n var result = document.querySelector('.quiz-block__result:not(.hide)');\n if (currentItem && (typeof result == 'undefined' || result == null)) {\n //context.element.style.height = currentItem.children[0].children[0].offsetHeight + \"px\";\n calcHeightMobile(currentItem);\n }\n if (result) {\n //context.element.style.height = result.children[0].children[0].offsetHeight + \"px\";\n calcHeightMobile(result);\n }\n calcHeight();\n }\n\n function getPrevQuestion(currentItem) {\n for (var i = 0; i < currentItem.querySelectorAll('input').length; i++) {\n currentItem.querySelectorAll('input')[i].setAttribute(\"tabIndex\", \"-1\");\n }\n currentItem.classList.add('prev');\n currentItem.previousElementSibling.classList.add('prev');\n currentItem.classList.add('hide');\n currentItem.previousElementSibling.classList.remove('hide', 'hideleft');\n $error.classList.add('hide');\n //context.element.style.height = currentItem.previousElementSibling.children[0].children[0].offsetHeight + \"px\";\n calcHeightMobile(currentItem.previousElementSibling);\n\n for (var i = 0; i < currentItem.previousElementSibling.querySelectorAll('input').length; i++) {\n currentItem.previousElementSibling.querySelectorAll('input')[i].setAttribute(\"tabIndex\", \"0\");\n }\n\n controlAnimation.playSegments([120, 0], true);\n\n setTimeout(function () {\n currentItem.previousElementSibling.querySelectorAll('input')[0].focus();\n context.element.querySelectorAll(controls)[0].classList.remove('controlswait');\n }, 800); // set higher than css animation\n }\n\n function getNextQuestion(currentItem) {\n for (var i = 0; i < currentItem.querySelectorAll('input').length; i++) {\n currentItem.querySelectorAll('input')[i].setAttribute(\"tabIndex\", \"-1\");\n }\n currentItem.classList.remove('prev');\n currentItem.nextElementSibling.classList.remove('prev');\n currentItem.classList.add('hide', 'hideleft');\n currentItem.nextElementSibling.classList.remove('hide');\n $error.classList.add('hide');\n //context.element.style.height = currentItem.nextElementSibling.children[0].children[0].offsetHeight + \"px\";\n calcHeightMobile(currentItem.nextElementSibling);\n\n for (var i = 0; i < currentItem.nextElementSibling.querySelectorAll('input').length; i++) {\n currentItem.nextElementSibling.querySelectorAll('input')[i].setAttribute(\"tabIndex\", \"0\");\n }\n setTimeout(function () {\n controlAnimation.setSpeed(1);\n controlAnimation.playSegments([0, 188], true);\n }, 200); // set to match css animation\n\n setTimeout(function () {\n currentItem.nextElementSibling.querySelectorAll('input')[0].focus();\n context.element.querySelectorAll(controls)[0].classList.remove('controlswait');\n }, 800); // set higher thah css animation\n }\n\n function getAllAnswers() {\n var allInputs = $thisQuizList.querySelectorAll(\"input:checked\");\n\n for (var i = 0; i < allInputs.length; ++i) {\n var key = allInputs[i].getAttribute('value');\n var thisKey = allAnswers.find(function (x) {\n return x.key === key;\n });\n if (!thisKey) {\n allAnswers.push({ key: key, count: 1 });\n } else {\n thisKey.count == thisKey.count++;\n }\n }\n //console.log(\"all answers: \",allAnswers)\n }\n\n function getWinner() {\n var max = 0;\n var maxClass;\n for (var i = 0; i < allAnswers.length; ++i) {\n var thisCount = allAnswers[i].count;\n var thisKey = allAnswers[i].key;\n if (thisCount > max) {\n max = parseInt(thisCount);\n maxClass = thisKey;\n }\n }\n context.element.querySelectorAll(controls)[0].querySelectorAll('button.prevBtn')[0].setAttribute(\"tabIndex\", \"-1\");\n context.element.querySelectorAll(controls)[0].querySelectorAll('button.nextBtn')[0].setAttribute(\"tabIndex\", \"-1\");\n $thisQuizList.classList.add('hide');\n $controls.classList.add('hide');\n $qImage.classList.add('hide');\n context.element.querySelectorAll(result + maxClass)[0].classList.remove('hide');\n //context.element.style.height = context.element.querySelectorAll(result + maxClass)[0].children[0].children[0].offsetHeight + \"px\";\n calcHeightMobile(context.element.querySelectorAll(result + maxClass)[0]);\n\n for (var i = 0; i < context.element.querySelectorAll(result + maxClass)[0].querySelectorAll('button,a').length; i++) {\n context.element.querySelectorAll(result + maxClass)[0].querySelectorAll('button,a')[i].setAttribute(\"tabIndex\", \"0\");\n }\n setTimeout(function () {\n context.element.querySelectorAll(result + maxClass)[0].querySelectorAll('button,a')[0].focus();\n }, 800); // set higher than css animation\n\n if ($animation !== undefined) {\n playResultAnimation();\n }\n //console.log(\"winner: \",maxClass)\n }\n\n function abortTest(abortResult) {\n context.element.querySelectorAll(controls)[0].querySelectorAll('button.prevBtn')[0].setAttribute(\"tabIndex\", \"-1\");\n context.element.querySelectorAll(controls)[0].querySelectorAll('button.nextBtn')[0].setAttribute(\"tabIndex\", \"-1\");\n $thisQuizList.classList.add('hide');\n $controls.classList.add('hide');\n $qImage.classList.add('hide');\n context.element.querySelectorAll(result + abortResult)[0].classList.remove('hide');\n //context.element.style.height = context.element.querySelectorAll(result + abortResult)[0].children[0].children[0].offsetHeight + \"px\";\n calcHeightMobile(context.element.querySelectorAll(result + abortResult)[0]);\n\n for (var i = 0; i < context.element.querySelectorAll(result + abortResult)[0].querySelectorAll('button,a').length; i++) {\n context.element.querySelectorAll(result + abortResult)[0].querySelectorAll('button,a')[i].setAttribute(\"tabIndex\", \"0\");\n }\n\n setTimeout(function () {\n context.element.querySelectorAll(result + abortResult)[0].querySelectorAll('button,a')[0].focus();\n }, 800); // set higher than css animation\n\n if ($animation !== undefined) {\n playResultAnimation();\n }\n }\n\n document.addEventListener('click', function (event) {\n if (!event.target.matches(quizstartbtn)) return;\n event.preventDefault();\n\n getClosest(event.target, quizStart).classList.add('hide');\n context.element.querySelectorAll(quizList)[0].classList.remove('hide');\n context.element.querySelectorAll(controls)[0].classList.remove('hide');\n $qNumber.innerHTML = 1;\n $qLength.innerHTML = length;\n //context.element.style.height = context.element.querySelectorAll(quizListItem)[0].children[0].children[0].offsetHeight + \"px\";\n calcHeightMobile(context.element.querySelectorAll(quizListItem)[0]);\n\n getClosest(event.target, quizStart).querySelectorAll('button')[0].tabIndex = -1;\n\n for (var i = 0; i < context.element.querySelectorAll(quizListItem)[0].querySelectorAll('input').length; i++) {\n context.element.querySelectorAll(quizListItem)[0].querySelectorAll('input')[i].setAttribute(\"tabIndex\", \"0\");\n }\n context.element.querySelectorAll(controls)[0].querySelectorAll('button.nextBtn')[0].setAttribute(\"tabIndex\", \"0\");\n context.element.querySelectorAll(qImage)[0].classList.remove('hide');\n playControlAnimation();\n\n var resizeId;\n window.addEventListener('resize', function (event) {\n clearTimeout(resizeId);\n resizeId = setTimeout(doneResizing, 500);\n }, false);\n\n setTimeout(function () {\n context.element.querySelectorAll(quizListItem)[0].querySelectorAll('input')[0].focus();\n }, 800); // set higher than css animation\n }, false);\n\n document.addEventListener('click', function (event) {\n if (!event.target.matches(prevBtn)) return;\n event.preventDefault();\n\n var itemindex = getNodeindex(document.querySelector(visibleQuizListItem));\n var currentItem = document.querySelector(visibleQuizListItem);\n\n $qNumber.innerHTML = getNodeindex(currentItem);\n\n context.element.querySelectorAll(controls)[0].classList.add('controlswait');\n if (itemindex <= 1) {\n getPrevQuestion(currentItem);\n context.element.querySelectorAll(prevBtn)[0].classList.add('hide');\n context.element.querySelectorAll(controls)[0].querySelectorAll('button.prevBtn')[0].setAttribute(\"tabIndex\", \"-1\");\n } else {\n getPrevQuestion(currentItem);\n }\n }, false);\n\n document.addEventListener('click', function (event) {\n if (!event.target.matches(nextBtn)) return;\n event.preventDefault();\n\n var itemindex = getNodeindex(document.querySelector(visibleQuizListItem));\n var currentItem = document.querySelector(visibleQuizListItem);\n var ifAnswered = currentItem.querySelectorAll(\"input:checked\").length > 0;\n var abort = currentItem.querySelectorAll(\".quiz-block__gotoresult\").length > 0;\n if (abort) {\n var abortResult = currentItem.querySelectorAll(\".quiz-block__gotoresult\")[0].innerHTML;\n }\n\n context.element.querySelectorAll(controls)[0].querySelectorAll('button.prevBtn')[0].setAttribute(\"tabIndex\", \"0\");\n if (itemindex <= length - 2) {\n if (ifAnswered) {\n if (abort && abortResult == currentItem.querySelectorAll(\"input:checked\")[0].value) {\n for (var i = 0; i < currentItem.querySelectorAll('input').length; i++) {\n currentItem.querySelectorAll('input')[i].setAttribute(\"tabIndex\", \"-1\");\n }\n abortTest(abortResult);\n return;\n }\n context.element.querySelectorAll(controls)[0].classList.add('controlswait');\n $qNumber.innerHTML = getNodeindex(currentItem) + 2;\n getNextQuestion(currentItem);\n context.element.querySelectorAll(controls)[0].querySelectorAll('button.nextBtn')[0].setAttribute(\"tabIndex\", \"0\");\n if (itemindex < 1) {\n context.element.querySelectorAll(prevBtn)[0].classList.remove('hide');\n }\n } else {\n $error.classList.remove('hide');\n }\n } else {\n if (ifAnswered) {\n\n for (var i = 0; i < currentItem.querySelectorAll('input').length; i++) {\n currentItem.querySelectorAll('input')[i].setAttribute(\"tabIndex\", \"-1\");\n }\n getAllAnswers();\n getWinner();\n }\n }\n }, false);\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('slideshow-container', function (context) {\n 'use strict';\n\n var moduleContainer;\n var settings = {};\n var slideshowSpeedInSeconds = 5;\n\n function mapSettings() {\n settings.slides = moduleContainer.querySelectorAll('.slideshow-container__slides__item');\n settings.captions = moduleContainer.querySelectorAll('slideshow-container__imagebox_text');\n settings.slideNav = {};\n }\n\n var active = {\n get: 0,\n set: function set(arrayPosition) {\n active.reset(settings.slideNav);\n active.reset(settings.slides);\n\n settings.slideNav[arrayPosition].classList.add('slideshow-container__slide-nav--active');\n settings.slides[arrayPosition].classList.add('slideshow-container__slides__item--show');\n },\n reset: function reset(array) {\n for (var i = 0, ilen = array.length; i < ilen; ++i) {\n array[i].classList.remove('slideshow-container__slide-nav--active', 'slideshow-container__slides__item--show');\n }\n },\n auto: function auto() {\n ++active.get;\n if (settings.slides.length === active.get) {\n active.set(0);\n active.get = 0;\n } else {\n active.set(active.get);\n }\n }\n };\n\n function setup() {\n var showNav = document.createElement(\"ul\");\n showNav.classList.add('slideshow-container__slide-nav');\n\n if (settings.slides.length > 1) {\n showNav.classList.add('slideshow-container__slide-nav--show');\n }\n for (var i = 0, ilen = settings.slides.length; i < ilen; ++i) {\n var li = document.createElement('li');\n li.classList.add('slideshow-container__slide-nav-item');\n\n var button = document.createElement('button');\n li.appendChild(button);\n\n showNav.appendChild(li);\n }\n\n moduleContainer.appendChild(showNav);\n settings.slideNav = moduleContainer.querySelectorAll('.slideshow-container__slide-nav-item button');\n\n active.set(active.get);\n\n for (var i = 0; i < settings.captions.length;) {\n settings.captions[i].innerHTML = settings.captions[i].innerHTML.trim();\n if (settings.captions[i].innerHTML === \"\") {\n settings.captions[i].remove();\n } else {\n ++i;\n }\n }\n\n var _loop = function (i, ilen) {\n settings.slideNav[i].addEventListener('click', function (e) {\n e.preventDefault();\n active.set(i);\n active.get = i;\n clearInterval(autoSlide);\n autoSlide = setInterval(active.auto, slideshowSpeedInSeconds * 1000);\n });\n };\n\n for (var i = 0, ilen = settings.slideNav.length; i < ilen; ++i) {\n _loop(i, ilen);\n }\n var autoSlide;\n if (settings.slides.length > 1) {\n autoSlide = setInterval(active.auto, slideshowSpeedInSeconds * 1000);\n }\n };\n\n return {\n init: function init() {\n moduleContainer = context.element;\n mapSettings();\n setup();\n },\n destroy: function destroy() {\n moduleContainer = null;\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('slideshow-timeline-container', function (context) {\n 'use strict';\n\n var moduleContainer;\n var settings = {};\n var slideshowSpeedInSeconds = 5;\n\n function mapSettings() {\n settings.slides = moduleContainer.querySelectorAll('.slideshow-timeline-container__slides__item');\n settings.captions = moduleContainer.querySelectorAll('slideshow-timeline-container__imagebox_text');\n settings.slideNav = {};\n }\n\n var active = {\n get: 0,\n set: function set(arrayPosition) {\n active.reset(settings.slideNav);\n active.reset(settings.slides);\n\n settings.slideNav[arrayPosition].classList.add('slideshow-timeline-container__slide-nav--active');\n settings.slides[arrayPosition].classList.add('slideshow-timeline-container__slides__item--show');\n },\n reset: function reset(array) {\n for (var i = 0, ilen = array.length; i < ilen; ++i) {\n array[i].classList.remove('slideshow-timeline-container__slide-nav--active', 'slideshow-timeline-container__slides__item--show');\n }\n },\n auto: function auto() {\n ++active.get;\n if (settings.slides.length === active.get) {\n active.set(0);\n active.get = 0;\n } else {\n active.set(active.get);\n }\n }\n };\n\n function setup() {\n var showNav = document.createElement(\"ul\");\n showNav.classList.add('slideshow-timeline-container__slide-nav');\n\n if (settings.slides.length > 1) {\n showNav.classList.add('slideshow-timeline-container__slide-nav--show');\n }\n for (var i = 0, ilen = settings.slides.length; i < ilen; ++i) {\n var li = document.createElement('li');\n li.classList.add('slideshow-timeline-container__slide-nav-item');\n\n var button = document.createElement('button');\n li.appendChild(button);\n\n showNav.appendChild(li);\n }\n\n moduleContainer.appendChild(showNav);\n settings.slideNav = moduleContainer.querySelectorAll('.slideshow-timeline-container__slide-nav-item button');\n\n active.set(active.get);\n\n for (var i = 0; i < settings.captions.length;) {\n settings.captions[i].innerHTML = settings.captions[i].innerHTML.trim();\n if (settings.captions[i].innerHTML === \"\") {\n settings.captions[i].remove();\n } else {\n ++i;\n }\n }\n\n var _loop = function (i, ilen) {\n settings.slideNav[i].addEventListener('click', function (e) {\n e.preventDefault();\n active.set(i);\n active.get = i;\n clearInterval(autoSlide);\n autoSlide = setInterval(active.auto, slideshowSpeedInSeconds * 1000);\n });\n };\n\n for (var i = 0, ilen = settings.slideNav.length; i < ilen; ++i) {\n _loop(i, ilen);\n }\n var autoSlide;\n if (settings.slides.length > 1) {\n autoSlide = setInterval(active.auto, slideshowSpeedInSeconds * 1000);\n }\n };\n\n return {\n init: function init() {\n moduleContainer = context.element;\n mapSettings();\n setup();\n },\n destroy: function destroy() {\n moduleContainer = null;\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('cookie-information', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var _this;\n var cookieUtil;\n\n var events = {\n _init: function _init() {\n var cookieValue = '';\n _this = this;\n //if (context.hasService('CookieUtil')) {\n cookieUtil = context.getService('CookieUtil');\n //}\n\n moduleContainer = context.element;\n moduleId = context.element.id;\n\n if (document.cookie) {\n cookieValue = cookieUtil.get(\"acceptCookie\"); // document.cookie.replace(/(?:(?:^|.*;\\s*)acceptCookie\\s*\\=\\s*([^;]*).*$)|^.*$/, '$1');\n }\n\n if (cookieValue !== '1') {\n moduleContainer.classList.add('cookie-information--visible');\n }\n },\n\n _destroy: function _destroy() {\n moduleContainer = null;\n },\n\n _onclick: function _onclick(event, element, elementType) {\n if (elementType === 'cookie-accept') {\n var now = new Date();\n\n var acceptDate = new Date();\n acceptDate.setYear(now.getFullYear() + 1);\n cookieUtil.set(\"acceptCookie\", 1, acceptDate.toUTCString(), \"/\");\n //document.cookie = 'acceptCookie=1; path=/; expires=' + acceptDate.toUTCString();\n moduleContainer.classList.remove('cookie-information--visible');\n }\n }\n };\n return {\n init: events._init,\n destroy: events._destroy,\n onclick: events._onclick\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('facet', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config = {};\n var elements = {};\n\n function resolveActiveFiltration() {\n var facetItems = moduleContainer.querySelectorAll('.' + config.facet.item + ':checked');\n var facetItemsArray = Array.prototype.slice.call(facetItems);\n\n if (!facetItemsArray && !elements.selectioncount) {\n elements.selectioncount.innerHTML = '';\n elements.selectioncount.classList.remove(config.trigger.selectioncount.active);\n elements.selectioncount.setAttribute('aria-hidden', 'true');\n return;\n }\n\n if (facetItemsArray.length === 0) {\n elements.selectioncount.innerHTML = '';\n elements.selectioncount.classList.remove(config.trigger.selectioncount.active);\n elements.selectioncount.setAttribute('aria-hidden', 'true');\n return;\n }\n\n elements.selectioncount.innerHTML = '(' + facetItemsArray.length + ')';\n elements.selectioncount.classList.add(config.trigger.selectioncount.active);\n elements.selectioncount.setAttribute('aria-hidden', 'false');\n };\n\n return {\n messages: ['facet/action:toggle', 'framework/action:page-click'],\n init: function init() {\n moduleContainer = context.element;\n moduleId = context.element.id;\n config = context.getConfig();\n\n if (config === undefined || config === null) {\n return;\n }\n\n var trigger = moduleContainer.querySelectorAll('.' + config.trigger.selection)[0];\n var facet = moduleContainer.querySelectorAll('.' + config.facet.selection)[0];\n var selectioncount = moduleContainer.querySelectorAll('.' + config.trigger.selectioncount.item)[0];\n\n elements.trigger = trigger || null;\n elements.facet = facet || null;\n elements.selectioncount = selectioncount || null;\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n },\n\n onmessage: function onmessage(name, data) {\n if (name === 'facet/action:toggle') {\n if (data.module !== moduleId) {\n elements.trigger.classList.remove(config.trigger.expanded);\n elements.facet.classList.remove(config.facet.expanded);\n\n elements.trigger.setAttribute('aria-expanded', 'false');\n elements.facet.setAttribute('aria-expanded', 'false');\n }\n }\n if (name === 'framework/action:page-click') {\n\n if (data !== null && data !== undefined) {\n if (data.elementType === 'select-facet-checkbox' || data.elementType === 'select-facet-label') {\n return;\n }\n }\n\n elements.trigger.classList.remove(config.trigger.expanded);\n elements.facet.classList.remove(config.facet.expanded);\n\n elements.trigger.setAttribute('aria-expanded', 'false');\n elements.facet.setAttribute('aria-expanded', 'false');\n }\n },\n\n onclick: function onclick(event, element, elementType) {\n if (elementType === 'toggle-facet') {\n event.preventDefault();\n event.stopPropagation();\n\n elements.trigger.classList.toggle(config.trigger.expanded);\n elements.facet.classList.toggle(config.facet.expanded);\n\n var isExpanded = elements.trigger.getAttribute('aria-expanded');\n\n if (isExpanded === 'true') {\n elements.trigger.setAttribute('aria-expanded', 'false');\n elements.facet.setAttribute('aria-expanded', 'false');\n } else {\n elements.trigger.setAttribute('aria-expanded', 'true');\n elements.facet.setAttribute('aria-expanded', 'true');\n }\n\n context.application.broadcast('facet/action:toggle', {\n module: moduleId\n });\n } else if (elementType === 'select-facet-checkbox') {\n event.stopPropagation();\n resolveActiveFiltration();\n\n context.application.broadcast('facet/action:filter', {\n namespace: config.namespace,\n name: element.name,\n selected: element.checked,\n value: element.value\n });\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('feedback-form', function (context) {\n 'use strict';\n\n var config = {};\n var container = null;\n var initialContainerValue = null;\n\n function displayForm(feedbackLevelValue) {\n var xhr = new XMLHttpRequest();\n xhr.open('POST', '/Feedback/SavePartialResult', true);\n xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8');\n\n xhr.onload = function (e) {\n var response = xhr.responseText;\n if (response !== null) {\n container.innerHTML = response;\n }\n };\n var args = 'contentGuid=' + config.id + '&feedbackLevel=' + feedbackLevelValue;\n xhr.send(args);\n };\n\n function postForm() {\n var form = context.element.getElementsByTagName('form')[0];\n var elements = form.elements;\n var args = [];\n\n for (var i = 0, element; element = elements[i++];) {\n if (element.type === 'submit') {\n continue;\n }\n\n if (element.name === '__RequestVerificationToken') {\n continue;\n }\n\n if (element.type === 'radio') {\n if (element.checked) {\n args.push(element.id + '=' + element.value);\n }\n continue;\n }\n\n args.push(element.id + '=' + encodeURIComponent(element.value));\n }\n\n var xhr = new XMLHttpRequest();\n xhr.open('POST', '/Feedback/AddFeedback', true);\n xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8');\n xhr.onload = function (e) {\n var response = xhr.responseText;\n if (response !== null) {\n container.innerHTML = response;\n }\n };\n var sendArgs = args.join('&');\n xhr.send(sendArgs);\n }\n\n function resetForm() {\n container.innerHTML = initialContainerValue;\n }\n\n return {\n init: function init() {\n context.element.classList.remove('no-js');\n\n config = context.getConfig();\n if (config.selectors.container !== undefined) {\n container = context.element.getElementsByClassName(config.selectors.container)[0];\n initialContainerValue = container.innerHTML;\n }\n },\n\n destroy: function destroy() {\n config = null;\n container = null;\n initialContainerValue = null;\n },\n\n onclick: function onclick(event, element, elementType) {\n if (elementType === 'action-button') {\n event.preventDefault();\n var dataValue = element.getAttribute('data-value');\n displayForm(dataValue);\n }\n if (elementType === 'form-submit') {\n event.preventDefault();\n element.setAttribute('disabled', 'disabled');\n postForm();\n }\n if (elementType === 'form-cancel') {\n event.preventDefault();\n resetForm();\n }\n }\n };\n});\n\"use strict\";\n\nvar addDisclamer = (function () {\n var init = function init() {\n\n var eleChild = document.getElementsByClassName(\"ValidationRequired\");\n var formStep = document.getElementsByClassName('FormStep');\n if (eleChild.length > 0) {\n\n for (var i = 0; i < formStep.length; i++) {\n\n var formChild = formStep[i].getElementsByClassName(\"ValidationRequired\");\n var formBtn = formStep[i].getElementsByClassName(\"FormSubmitButton\");\n\n if (formChild.length > 0) {\n var div = document.createElement(\"div\");\n div.innerHTML = \"* Obligatoriska fält\";\n div.className = \"requiredfields\";\n if (formBtn.length > 0) {\n formBtn[0].parentNode.insertBefore(div, formBtn[0]);\n }\n }\n }\n }\n };\n return {\n init: init\n };\n})();\n'use strict';\n\nVardforbundet.Application.addModule('header', function (context) {\n 'use strict';\n\n var moduleContainer;\n\n function toggleClass() {\n moduleContainer.classList.toggle('header--has-navigation');\n document.body.classList.toggle('has-navigation');\n }\n\n function removeClass() {\n moduleContainer.classList.remove('header--has-navigation');\n }\n\n return {\n messages: ['framework/navigation:toggle', 'framework/navigation:close'],\n init: function init() {\n moduleContainer = context.element;\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n },\n\n onmessage: function onmessage(name, data) {\n if (name === 'framework/navigation:toggle') {\n toggleClass();\n }\n\n if (name === 'framework/navigation:close') {\n removeClass();\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('main-navigation', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config;\n var targetContainer;\n var settings = {};\n\n return {\n init: function init() {\n moduleContainer = context.element;\n moduleId = context.element.id;\n\n var mainNavigationButton = document.getElementById('main-navigation-button');\n var mainNavigationContainer = document.getElementById('main-navigation-container');\n var mainNavigationContainerLinks = mainNavigationContainer.getElementsByTagName('a');\n\n for (var e = 0, len = mainNavigationContainerLinks.length; e < len; e++) {\n mainNavigationContainerLinks[e].setAttribute('tabindex', '-1');\n }\n\n document.addEventListener('click', function (event) {\n\n if (mainNavigationButton.contains(event.target)) {\n\n if (mainNavigationButton.classList.contains('main-navigation__button--expanded')) {\n document.body.classList.remove('main-navigation-open');\n mainNavigationButton.classList.remove('main-navigation__button--expanded');\n mainNavigationButton.setAttribute('aria-expanded', 'false');\n mainNavigationContainer.classList.remove('main-navigation__container--expanded');\n for (var e = 0, len = mainNavigationContainerLinks.length; e < len; e++) {\n mainNavigationContainerLinks[e].setAttribute('tabindex', '-1');\n }\n return;\n }\n\n document.body.classList.add('main-navigation-open');\n mainNavigationButton.classList.add('main-navigation__button--expanded');\n mainNavigationButton.setAttribute('aria-expanded', 'true');\n mainNavigationContainer.classList.add('main-navigation__container--expanded');\n for (var e = 0, len = mainNavigationContainerLinks.length; e < len; e++) {\n mainNavigationContainerLinks[e].setAttribute('tabindex', '0');\n }\n return;\n }\n var isClickInside = mainNavigationContainer.contains(event.target);\n\n if (!isClickInside) {\n if (document.body.classList.contains('main-navigation-open')) {\n document.body.classList.remove('main-navigation-open');\n mainNavigationButton.classList.remove('main-navigation__button--expanded');\n mainNavigationButton.setAttribute('aria-expanded', 'false');\n mainNavigationContainer.classList.remove('main-navigation__container--expanded');\n\n for (var e = 0, len = mainNavigationContainerLinks.length; e < len; e++) {\n mainNavigationContainerLinks[e].setAttribute('tabindex', '-1');\n }\n }\n }\n });\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n targetContainer = null;\n settings = null;\n },\n\n onclick: function onclick(event, element, elementType) {}\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('mobile-navigation', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config;\n var targetContainer;\n var settings = {};\n var targets = {};\n\n function isDesktop() {\n if (!window.matchMedia) {\n return true;\n }\n return window.matchMedia(\"(min-width: 1024px)\").matches;\n }\n\n function toggleChildren(element) {\n var targetElementId = element.getAttribute('aria-controls');\n var targetElementRaw = moduleContainer.querySelectorAll('#' + targetElementId);\n var targetElement = Array.prototype.slice.call(targetElementRaw)[0];\n\n targets.children.forEach(function (child) {\n if (child.id === targetElementId) {\n if (child.className.indexOf('sub-navigation') > -1) {\n child.classList.toggle(settings.indentExpandedItemClass);\n } else {\n child.classList.toggle(settings.expandedItemClass);\n }\n }\n });\n\n if (element.getAttribute('aria-expanded') === 'true' && !targetElement.classList.contains(settings.expandedItemClass) && !targetElement.classList.contains(settings.indentExpandedItemClass)) {\n element.title = element.getAttribute('data-labelexpand');\n element.setAttribute('aria-expanded', 'false');\n } else {\n element.title = element.getAttribute('data-labelclose');\n element.setAttribute('aria-expanded', 'true');\n }\n\n context.element.scrollTop = 0;\n }\n\n function toggleParent(element) {\n\n if (element.parentNode.parentNode.parentNode.className.indexOf('sub-navigation') > -1) {\n element.parentNode.parentNode.parentNode.classList.toggle(settings.indentExpandedItemClass);\n } else {\n element.parentNode.parentNode.parentNode.classList.toggle(settings.expandedItemClass);\n }\n\n if (element.parentNode.parentNode.parentNode.getAttribute('aria-expanded') === 'true' && !element.parentNode.parentNode.parentNode.classList.contains(settings.expandedItemClass) && !element.parentNode.parentNode.parentNode.classList.contains(settings.indentExpandedItemClass)) {\n element.parentNode.parentNode.parentNode.title = element.parentNode.parentNode.parentNode.getAttribute('data-labelexpand');\n element.parentNode.parentNode.parentNode.setAttribute('aria-expanded', 'false');\n } else {\n element.parentNode.parentNode.parentNode.title = element.parentNode.parentNode.parentNode.getAttribute('data-labelclose');\n element.parentNode.parentNode.parentNode.setAttribute('aria-expanded', 'true');\n }\n context.element.scrollTop = 0;\n }\n\n function mapSettings() {\n settings.containerExpandedClass = config.containerExpandedClass;\n settings.expandedItemClass = config.expandedItemClass;\n settings.itemTriggerClass = config.itemTriggerClass;\n settings.indentExpandedItemClass = config.indentExpandedItemClass;\n settings.indentItemTriggerClass = config.indentItemTriggerClass;\n }\n\n function setInitialState() {\n var firstLevelTriggers = moduleContainer.querySelectorAll(settings.itemTriggerClass);\n targets.triggers = Array.prototype.slice.call(firstLevelTriggers);\n\n var children = moduleContainer.querySelectorAll('[class$=__listitem]');\n targets.children = Array.prototype.slice.call(children);\n\n targets.triggers.forEach(function (trigger) {\n if (trigger.getAttribute('aria-expanded') === null || trigger.getAttribute('aria-expanded') === undefined) {\n trigger.setAttribute('aria-expanded', 'false');\n }\n });\n }\n\n function toggleContainer() {\n moduleContainer.classList.toggle(settings.containerExpandedClass);\n if (moduleContainer.classList.contains(settings.containerExpandedClass)) {\n moduleContainer.setAttribute('aria-expanded', 'true');\n return;\n }\n\n moduleContainer.setAttribute('aria-expanded', 'false');\n }\n\n return {\n messages: ['framework/navigation:toggle', 'framework/navigation:close'],\n init: function init() {\n moduleContainer = context.element;\n moduleId = context.element.id;\n config = context.getConfig();\n if (isDesktop()) {\n moduleContainer.setAttribute('aria-expanded', isDesktop());\n }\n\n mapSettings();\n setInitialState();\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n targetContainer = null;\n settings = null;\n },\n\n onclick: function onclick(event, element, elementType) {\n if (elementType === 'navigation-item-toggle') {\n\n if (isDesktop()) {\n return;\n }\n\n toggleChildren(element);\n event.preventDefault();\n }\n if (elementType === 'navigation-item-button') {\n\n if (isDesktop()) {\n return;\n }\n\n toggleParent(element);\n event.preventDefault();\n }\n },\n\n onmessage: function onmessage(name, data) {\n if (name === 'framework/navigation:toggle') {\n toggleContainer();\n }\n\n if (name === 'framework/navigation:close') {\n toggleContainer();\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('my-pages-header', function (context) {\n 'use strict';\n\n var displayContent = function displayContent() {\n if (context.element.getElementsByClassName('my-pages__user-menu__nav--active').length > 0 || context.element.getElementsByClassName('my-pages__menu-toggle--expanded').length > 0) {\n context.application.broadcast('my-pages/content:hidden');\n } else {\n context.application.broadcast('my-pages/content:visible');\n }\n if (context.element.getElementsByClassName('my-pages__user-menu__nav--active').length > 0) {\n context.application.broadcast('my-pages/page-overlay:visible');\n } else {\n context.application.broadcast('my-pages/page-overlay:hidden');\n }\n };\n\n return {\n onclick: function onclick(event, element, elementType) {\n if (event.target.matches('#my-pages-menu-toggle')) {\n event.preventDefault();\n\n if (context.element.getElementsByClassName('my-pages__user-menu__nav--active').length > 0) {\n context.element.getElementsByClassName('my-pages__user-menu__nav--active')[0].classList.remove('my-pages__user-menu__nav--active');\n context.element.getElementsByClassName('tools-navigation__link--signon')[0].classList.toggle('my-pages__user-menu-btn--expanded');\n }\n\n event.target.classList.toggle('my-pages__menu-toggle--expanded');\n displayContent();\n\n if (context.element.getElementsByClassName('my-pages__menu-toggle--expanded').length > 0) {\n context.element.getElementsByClassName('tools-navigation__link--signon')[0].classList.add('hidden-mobile');\n } else {\n context.element.getElementsByClassName('tools-navigation__link--signon')[0].classList.remove('hidden-mobile');\n }\n\n context.application.broadcast('my-pages/navigation:toggle');\n }\n if (elementType === 'user-menu-toggle') {\n event.preventDefault();\n\n if (context.element.getElementsByClassName('my-pages__menu-toggle--expanded').length > 0) {\n context.element.getElementsByClassName('my-pages__menu-toggle--expanded')[0].classList.remove('my-pages__menu-toggle--expanded');\n }\n\n context.element.getElementsByClassName('tools-navigation__link--signon')[0].classList.toggle('my-pages__user-menu-btn--expanded');\n context.element.getElementsByClassName('my-pages__user-menu__nav')[0].classList.toggle('my-pages__user-menu__nav--active');\n displayContent();\n\n if (context.element.getElementsByClassName('my-pages__user-menu__nav--active').length > 0) {\n context.element.getElementsByClassName('header__responsive-menu-btn')[0].classList.add('hidden-mobile');\n } else {\n context.element.getElementsByClassName('header__responsive-menu-btn')[0].classList.remove('hidden-mobile');\n }\n\n context.application.broadcast('my-pages/user-menu:toggle');\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('my-pages-container', function (context) {\n 'use strict';\n\n return {\n messages: ['my-pages/content:hidden', 'my-pages/content:visible', 'my-pages/page-overlay:hidden', 'my-pages/page-overlay:visible'],\n onmessage: function onmessage(name, data) {\n if (name === 'my-pages/content:hidden') {\n context.element.getElementsByClassName('my-pages__content')[0].classList.add('my-pages__content--hidden');\n context.element.getElementsByClassName('my-pages__overlay__mobile')[0].classList.add('my-pages__overlay__mobile--active');\n }\n if (name === 'my-pages/content:visible') {\n context.element.getElementsByClassName('my-pages__content')[0].classList.remove('my-pages__content--hidden');\n context.element.getElementsByClassName('my-pages__overlay__mobile')[0].classList.remove('my-pages__overlay__mobile--active');\n }\n if (name === 'my-pages/page-overlay:visible') {\n context.element.getElementsByClassName('my-pages__overlay')[0].classList.add('my-pages__overlay--active');\n }\n if (name === 'my-pages/page-overlay:hidden') {\n context.element.getElementsByClassName('my-pages__overlay')[0].classList.remove('my-pages__overlay--active');\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('my-pages-navigation', function (context) {\n 'use strict';\n\n return {\n messages: ['my-pages/navigation:toggle', 'my-pages/user-menu:toggle'],\n init: function init() {\n document.addEventListener('webproxyunreadmessages', function (e) {\n if (e.detail.nrOfUnreadMessages > 0) {\n var messageMenuItems = context.element.querySelectorAll('.my-pages__navigation__message');\n for (var i = 0; i < messageMenuItems.length; i++) {\n messageMenuItems[i].classList.add('my-pages__navigation__message--active');\n }\n }\n });\n },\n onmessage: function onmessage(name, data) {\n if (name === 'my-pages/navigation:toggle') {\n context.element.classList.toggle('my-pages__navigation--active');\n }\n if (name === 'my-pages/user-menu:toggle') {\n context.element.classList.remove('my-pages__navigation--active');\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('page-overlay', function (context) {\n 'use strict';\n var el;\n\n return {\n messages: ['framework/navigation:toggle'],\n init: function init() {\n el = context.element;\n },\n\n destroy: function destroy() {\n el = null;\n },\n\n onclick: function onclick(event, element, elementType) {\n context.application.broadcast('framework/navigation:close');\n el.classList.toggle('page-overlay--is-active');\n },\n\n onmessage: function onmessage(name, data) {\n if (name === 'framework/navigation:toggle') {\n el.classList.toggle('page-overlay--is-active');\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('search-form-bar', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config;\n var targetContainer;\n var settings = {};\n var body;\n\n var actions = {\n\n toggle: function toggle() {\n if (actions.isExpanded()) {\n actions.close();\n return;\n }\n\n actions.open();\n },\n\n open: function open() {\n moduleContainer.classList.toggle(settings.toggleClass);\n body.classList.toggle(settings.bodyClass);\n targetContainer.focus();\n\n actions.setTabIndex('0');\n document.getElementById('search-form-bar__fieldset__input').focus();\n },\n\n close: function close() {\n moduleContainer.classList.remove(settings.toggleClass);\n body.classList.remove(settings.bodyClass);\n actions.setTabIndex('-1');\n document.getElementById('toggle-search').focus();\n },\n\n isExpanded: function isExpanded() {\n return moduleContainer.classList.contains(settings.toggleClass);\n },\n\n setTabIndex: function setTabIndex(tabIndex) {\n document.getElementById('search-form-bar__fieldset__input').setAttribute('tabindex', tabIndex);\n document.getElementById('search-form-bar__fieldset__submit').setAttribute('tabindex', tabIndex);\n document.getElementById('search-form-bar__fieldset__button').setAttribute('tabindex', tabIndex);\n document.getElementById('search-form-bar__fieldset__link').setAttribute('tabindex', tabIndex);\n }\n\n };\n\n return {\n messages: ['framework/search:toggle'],\n\n init: function init() {\n moduleContainer = context.element;\n moduleId = context.element.id;\n config = context.getConfig();\n body = document.getElementsByTagName('body')[0];\n\n if (config === undefined || config === null) {\n return;\n }\n\n settings.toggleClass = config.toggleClass;\n settings.bodyClass = config.bodyClass;\n settings.fieldClass = config.fieldClass;\n\n targetContainer = moduleContainer.getElementsByClassName(settings.fieldClass)[0];\n\n actions.setTabIndex('-1');\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n targetContainer = null;\n settings = null;\n },\n\n onclick: function onclick(event, element, elementType) {\n if (elementType === 'close-search') {\n var args = {};\n args.state = 'open';\n args.sender = 'search-form-bar';\n context.application.broadcast('framework/search:toggle', args);\n\n actions.toggle();\n }\n },\n\n onmessage: function onmessage(name, data) {\n if (name === 'framework/search:toggle') {\n if (data.sender === undefined || data.sender !== 'search-form-bar') {\n actions.toggle();\n }\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('search-listing', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config = {};\n var elements = {};\n var options = {};\n var utils;\n\n function addElement(innerHtml) {\n var el = document.createElement('li');\n el.classList.add(config.elements.listitem);\n el.innerHTML = innerHtml;\n elements.domNode.appendChild(el);\n }\n\n function resolvePageAction() {\n var xhr = new XMLHttpRequest();\n xhr.open('POST', config.serviceUrl, true);\n xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8');\n\n xhr.onload = function (e) {\n var response = JSON.parse(xhr.responseText);\n elements.trigger.classList.remove(config.elements.trigger.active);\n\n response.response.forEach(function (item) {\n addElement(item);\n options.displaycount++;\n });\n\n context.application.broadcast('search/action:paging', {\n displaycount: options.displaycount,\n totalcount: options.totalcount,\n pageindex: config.options.pageIndex\n });\n\n history.pushState(null, null, response.returnUrl);\n updatePageParam();\n\n if (response.remainingCount === 0) {\n elements.trigger.classList.add(config.elements.trigger.hidden);\n return;\n }\n };\n elements.trigger.classList.add(config.elements.trigger.active);\n xhr.send('args=' + encodeURIComponent(JSON.stringify(config.options)));\n }\n\n function updatePageParam() {\n var pageParam = config.pageparam;\n var href = elements.trigger.getAttribute('href');\n var paramValue = utils.getParameterByName(pageParam, href);\n var replaceHref = href.replace(pageParam + '=' + paramValue, pageParam + '=' + (config.options.pageIndex + 1));\n elements.trigger.setAttribute('href', replaceHref);\n }\n\n return {\n init: function init() {\n moduleContainer = context.element;\n moduleId = context.element.id;\n config = context.getConfig();\n utils = context.application.getService('utils.url');\n\n if (config === undefined || config === null) {\n return;\n }\n\n elements.domNode = moduleContainer.querySelectorAll('.' + config.elements.list)[0] || null;\n elements.trigger = moduleContainer.querySelectorAll('.' + config.elements.trigger.selection)[0] || null;\n\n options.displaycount = config.options.displayCount;\n options.totalcount = config.options.totalCount;\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n },\n\n onclick: function onclick(event, element, elementType) {\n if (elementType === 'paginate') {\n event.preventDefault();\n event.stopPropagation();\n\n config.options.pageIndex++;\n resolvePageAction();\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('search-summary', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config = {};\n var elements = {};\n var utils;\n\n function updateSummary(data) {\n if (elements.summary.display !== null) {\n elements.summary.display.innerHTML = data.displaycount;\n }\n\n if (elements.summary.total !== null) {\n elements.summary.total.innerHTML = data.totalcount;\n }\n }\n\n function updateSortParams(data) {\n var pageParam = config.sort.pageparam;\n var href = elements.sort.link.getAttribute('href');\n var paramValue = utils.getParameterByName(pageParam, href);\n var replaceHref = href.replace(pageParam + '=' + paramValue, pageParam + '=' + data.pageindex);\n elements.sort.link.setAttribute('href', replaceHref);\n }\n\n return {\n messages: ['search/action:paging'],\n\n init: function init() {\n moduleContainer = context.element;\n moduleId = context.element.id;\n config = context.getConfig();\n utils = context.application.getService('utils.url');\n\n if (config === undefined || config === null) {\n return;\n }\n\n elements.sort = {};\n elements.summary = {};\n elements.summary.display = moduleContainer.querySelectorAll('.' + config.summary.display)[0] || null;\n elements.summary.total = moduleContainer.querySelectorAll('.' + config.summary.total)[0] || null;\n elements.sort.link = moduleContainer.querySelectorAll('.' + config.sort.link)[0] || null;\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n },\n\n onmessage: function onmessage(name, data) {\n if (name === 'search/action:paging') {\n updateSummary(data);\n updateSortParams(data);\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('sub-navigation', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config = {};\n var elements = {};\n var utils;\n\n return {\n\n init: function init() {\n var firstLevelBtns = document.getElementsByClassName(\"sub-navigation__listbtn\");\n var btns = document.getElementsByClassName(\"sub-navigation__indentlistbtn\");\n\n for (var i = 0, len = firstLevelBtns.length; i < len; i++) {\n firstLevelBtns[i].addEventListener(\"click\", function () {\n this.parentNode.classList.toggle('sub-navigation__listitem--expanded');\n var expanded = this.getAttribute('aria-expanded');\n if (expanded === 'false') {\n this.setAttribute('aria-expanded', 'true');\n } else {\n this.setAttribute('aria-expanded', 'false');\n }\n });\n }\n\n for (var i2 = 0, len2 = btns.length; i2 < len2; i2++) {\n btns[i2].addEventListener(\"click\", function () {\n this.parentNode.classList.toggle('sub-navigation__indentlistitem--expanded');\n var expanded = this.getAttribute('aria-expanded');\n if (expanded === 'false') {\n this.setAttribute('aria-expanded', 'true');\n } else {\n this.setAttribute('aria-expanded', 'false');\n }\n });\n }\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n },\n\n onmessage: function onmessage(name, data) {}\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('tools-navigation', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config;\n var classNames = {};\n var targets = {};\n\n var actions = {\n navigation: {\n toggle: function toggle(args) {\n if (actions.navigation.targetIsExpanded()) {\n actions.navigation.close();\n return;\n }\n actions.navigation.open();\n },\n\n open: function open() {\n targets.navigation.classList.add(classNames.navigation.expanded);\n targets.navigation.setAttribute('aria-expanded', 'true');\n targets.navigation.title = targets.navigation.getAttribute('data-label-close');\n },\n\n close: function close() {\n targets.navigation.classList.remove(classNames.navigation.expanded);\n targets.navigation.setAttribute('aria-expanded', 'false');\n targets.navigation.title = targets.navigation.getAttribute('data-label-open');\n },\n\n targetIsExpanded: function targetIsExpanded() {\n return targets.navigation.classList.contains(classNames.navigation.expanded);\n }\n },\n search: {\n toggle: function toggle(args) {\n if (args.state !== undefined && args.state !== null) {\n switch (args.state) {\n case 'open':\n actions.search.close();\n break;\n default:\n actions.search.open();\n break;\n }\n return;\n }\n\n if (actions.search.targetIsExpanded()) {\n actions.search.close();\n return;\n }\n\n actions.search.open();\n },\n\n open: function open() {\n targets.search.classList.add(classNames.search.expanded);\n targets.search.setAttribute('aria-expanded', 'true');\n targets.search.title = targets.search.getAttribute('data-label-close');\n targets.search.innerHTML = targets.search.getAttribute('data-label-close');\n },\n\n close: function close() {\n targets.search.classList.remove(classNames.search.expanded);\n targets.search.setAttribute('aria-expanded', 'false');\n targets.search.title = targets.search.getAttribute('data-label-open');\n targets.search.innerHTML = targets.search.getAttribute('data-label-open');\n },\n\n targetIsExpanded: function targetIsExpanded() {\n return targets.search.classList.contains(classNames.search.expanded);\n }\n }\n };\n\n return {\n messages: ['framework/navigation:close', 'framework/search:toggle'],\n init: function init() {\n moduleContainer = context.element;\n moduleId = context.element.id;\n config = context.getConfig();\n\n if (config === undefined || config === null) {\n return;\n }\n\n var noJsItems = context.element.getElementsByClassName(config.nojs);\n if (noJsItems.length !== 0) {\n var noJsItemsArray = Array.prototype.slice.call(noJsItems);\n noJsItemsArray.forEach(function (item) {\n item.classList.remove(config.nojs);\n });\n }\n\n classNames.signon = {};\n classNames.signon.trigger = config.signon.trigger;\n classNames.signon.expanded = config.signon.expanded;\n targets.signon = context.element.getElementsByClassName(config.signon.trigger)[0];\n\n classNames.search = {};\n classNames.search.trigger = config.search.trigger;\n classNames.search.expanded = config.search.expanded;\n targets.search = context.element.getElementsByClassName(config.search.trigger)[0];\n\n classNames.navigation = {};\n classNames.navigation.trigger = config.navigation.trigger;\n classNames.navigation.expanded = config.navigation.expanded;\n targets.navigation = context.element.getElementsByClassName(config.navigation.trigger)[0];\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n classNames = {};\n targets = {};\n },\n\n onmessage: function onmessage(name, data) {\n if (name === 'framework/navigation:close') {\n actions.navigation.toggle(data);\n }\n if (name === 'framework/search:toggle') {\n actions.search.toggle(data);\n }\n },\n\n onclick: function onclick(event, element, elementType) {\n\n var args = {};\n\n if (elementType === 'toggle-navigation') {\n event.preventDefault();\n context.application.broadcast('framework/navigation:toggle');\n actions.navigation.toggle(args);\n }\n if (elementType === 'toggle-search') {\n event.preventDefault();\n\n if (actions.search.targetIsExpanded()) {\n args.state = 'open';\n } else {\n args.state = 'closed';\n }\n\n context.application.broadcast('framework/search:toggle', args);\n actions.search.toggle(args);\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('core-widget-page', function (context) {\n 'use strict';\n\n var moduleContainer;\n function setInitState(listItemsCategoryList) {\n /* Required due to header being different between index and browse area */\n listItemsCategoryList.forEach(function (elm) {\n if (elm.getAttribute(\"data-selected\") === \"true\") {\n checkOpenTrees(elm);\n }\n });\n }\n function setListeners(listItemsCategoryList) {\n var options = {\n attributes: true,\n childList: true,\n subtree: true,\n attributeFilter: ['data-selected'],\n CharacterDataOldValue: false\n };\n var observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n if (mutation.target.getAttribute(\"data-selected\") === \"true\") {\n checkOpenTrees(mutation.target);\n }\n });\n });\n for (var i = 0; i < listItemsCategoryList.length; i++) {\n observer.observe(listItemsCategoryList[i], options);\n }\n }\n function checkOpenTrees(sortingElm) {\n /* sortingElm contains the title to sort on */\n var listItemsCategoryTree = document.querySelectorAll('.humany-widget .humany-guide-category-tree ul[data-level=\"0\"] > li');\n //console.log('Längd Category tree ' + listItemsCategoryTree.length)\n if (listItemsCategoryTree.length > 1) {\n for (var i = 0; i < listItemsCategoryTree.length; i++) {\n compareTitles(listItemsCategoryTree[i], sortingElm);\n }\n }\n }\n function compareTitles(listItem, sortingElm) {\n console.log(\"listItem \", listItem);\n var listItemTitle = listItem.querySelector('a').getAttribute('aria-label');\n var sortingElmTitle = sortingElm.querySelector('a').getAttribute('title');\n if (listItemTitle.includes(sortingElmTitle)) {\n listItem.style.display = \"block\";\n } else {\n listItem.style.display = \"none\";\n }\n }\n function stopImagePop() {\n var contactArea = document.querySelector(\".humany-widget.humany_vanliga-fragor-och-svar-vfse .humany-component-contact-link\") != null ? document.querySelector(\".humany-widget.humany_vanliga-fragor-och-svar-vfse .humany-component-contact-link\") : document.querySelector(\".humany-widget.humany_vanliga-fragor-och-svar---ej-inloggad .humany-component-contact-link\");\n var url = \"https://www.vardforbundet.se/tjanstesidor/vardforbundet-direkt/\";\n contactArea.addEventListener(\"click\", function (f) {\n f.preventDefault();\n f.stopPropagation();\n window.open(url, '_blank');\n });\n }\n\n return {\n init: function init() {\n document.head.appendChild(document.createElement(\"style\")).innerHTML = \".humany-widget .humany-area-view-area .humany-guide-category-list ul {animation-duration:.001s;animation-name:eventTrigger}@keyframes eventTrigger{from{opacity:.99}to{opacity:1}}\";\n document.head.appendChild(document.createElement(\"style\")).innerHTML = \".humany-widget .humany-guide-category-tree ul[data-level='0'] {animation-duration:.001s;animation-name:eventTrigger2}@keyframes eventTrigger2{from{opacity:.99}to{opacity:1}}\";\n var cssTriggerListener = function cssTriggerListener(event) {\n if (event.animationName === \"eventTrigger2\") {\n var listItemsCategoryList = document.querySelectorAll('.humany-widget .humany-area-view-area ul li');\n setInitState(listItemsCategoryList);\n setListeners(listItemsCategoryList);\n }\n };\n document.addEventListener(\"animationstart\", cssTriggerListener, false);\n document.addEventListener(\"MSAnimationStart\", cssTriggerListener, false);\n document.addEventListener(\"webkitAnimationStart\", cssTriggerListener, false);\n if (document.querySelector(\".humany-widget.humany_vanliga-fragor-och-svar-vfse\")) {\n document.head.appendChild(document.createElement(\"style\")).innerHTML = \".humany-widget.humany_vanliga-fragor-och-svar-vfse .humany-component-contact-link {animation-duration:.001s;animation-name:trigger}@keyframes trigger{from{opacity:.99}to{opacity:1}}\";\n } else {\n document.head.appendChild(document.createElement(\"style\")).innerHTML = \".humany-widget.humany_vanliga-fragor-och-svar---ej-inloggad .humany-component-contact-link {animation-duration:.001s;animation-name:trigger}@keyframes trigger{from{opacity:.99}to{opacity:1}}\";\n }\n var cssTriggerListenerSecond = function cssTriggerListenerSecond(event) {\n return regeneratorRuntime.async(function cssTriggerListenerSecond$(context$3$0) {\n while (1) switch (context$3$0.prev = context$3$0.next) {\n case 0:\n if (event.animationName === \"trigger\") {\n stopImagePop();\n }\n\n case 1:\n case 'end':\n return context$3$0.stop();\n }\n }, null, this);\n };\n document.addEventListener(\"animationstart\", cssTriggerListenerSecond, false);\n document.addEventListener(\"MSAnimationStart\", cssTriggerListenerSecond, false);\n document.addEventListener(\"webkitAnimationStart\", cssTriggerListenerSecond, false);\n\n (function () {\n document.head.appendChild(document.createElement(\"style\")).innerHTML = \"[href*='/Auth?returnUrl'] {animation-duration:.001s;animation-name:replaceLoginLink}@keyframes replaceLoginLink{from{opacity:.99}to{opacity:1}}\";\n var replaceLoginLink = function replaceLoginLink(event) {\n if (event.animationName === \"replaceLoginLink\") {\n var link = event.target;\n link.href = link.href.replace(\"https://www.vardforbundet.se\", \"\");\n link.href = link.href.replace(\"%23humany-vanliga-fragor-och-svar-vfse%3D%2F\", \"\");\n var pos = link.href.indexOf(\"%3B\");\n if (pos !== -1) link.href = link.href.slice(0, pos);\n }\n };\n document.addEventListener(\"animationstart\", replaceLoginLink, false);\n document.addEventListener(\"MSAnimationStart\", replaceLoginLink, false);\n document.addEventListener(\"webkitAnimationStart\", replaceLoginLink, false);\n })();\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('department-listing-page', function (context) {\n 'use strict';\n\n var config;\n var map;\n var mapCenter;\n\n var setStyles = function setStyles() {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', '/Resources/Config/google.maps.styles.json', true);\n xhr.send();\n xhr.onload = function () {\n var styles = JSON.parse(xhr.response);\n map.setOptions({ styles: styles });\n };\n };\n\n var setMarkers = function setMarkers() {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', 'GetMarkers?contentGuid=' + config.id, true);\n xhr.onload = function (e) {\n var response = JSON.parse(xhr.responseText);\n var jsonResponse = JSON.parse(response);\n\n if (jsonResponse.markers.length === 0) {\n return;\n }\n\n var timeout;\n var i = 0;\n\n jsonResponse.markers.forEach(function (marker) {\n i++;\n timeout = i * 200;\n\n var _marker = new google.maps.Marker({\n position: new google.maps.LatLng(marker.lat, marker.lng),\n animation: google.maps.Animation.DROP,\n title: marker.heading,\n icon: config.icon.standard\n });\n\n var _infowindow = new google.maps.InfoWindow({\n content: '
' + marker.heading + '
'\n });\n\n var markerUrl = marker.url;\n\n _marker.addListener('click', function () {\n location.href = markerUrl;\n });\n\n _marker.addListener('mouseover', function () {\n _infowindow.open(map, _marker);\n _marker.setIcon(config.icon.hover);\n });\n\n _marker.addListener('mouseout', function () {\n _infowindow.close();\n _marker.setIcon(config.icon.standard);\n });\n\n setTimeout(function () {\n _marker.setMap(map);\n }, timeout);\n });\n };\n xhr.send();\n };\n\n var loadMap = function loadMap() {\n var mapArea = context.element.getElementsByClassName(config.map)[0];\n\n map = new google.maps.Map(mapArea, {\n center: { lat: 61.26231, lng: 14.71069 },\n zoom: 5,\n zoomControl: false,\n scrollwheel: false,\n mapTypeControl: false,\n scaleControl: false,\n streetViewControl: false,\n rotateControl: false,\n fullscreenControl: false\n });\n\n mapCenter = map.getCenter();\n\n google.maps.event.addDomListener(window, 'resize', function () {\n map.setCenter(mapCenter);\n });\n\n setStyles();\n setMarkers();\n };\n\n return {\n messages: ['google.maps.api:loaded'],\n\n init: function init() {\n config = context.getConfig();\n\n var googleMapsApiService = context.getService('google.maps.api');\n googleMapsApiService.load(config.apiKey);\n },\n\n destroy: function destroy() {\n config = null;\n },\n\n onmessage: function onmessage(name, data) {\n if (name === 'google.maps.api:loaded') {\n loadMap();\n }\n }\n };\n});\n'use strict';\n\nVardforbundet.Application.addModule('editorial-page', function (context) {\n 'use strict';\n\n var moduleContainer;\n var moduleId;\n var config;\n\n function setTableBeforeText() {\n var headers;\n var rows;\n var tables = moduleContainer.getElementsByTagName('table');\n if (tables.length < 0) {\n return;\n }\n for (var i = 0; i < tables.length; i++) {\n headers = tables[i].querySelectorAll('thead tr td, thead tr th, tr th');\n rows = tables[i].querySelectorAll('tbody tr');\n for (var r = 0; r < rows.length; r++) {\n var cells = rows[r].getElementsByTagName('td');\n for (var d = 0; d < cells.length; d++) {\n var newSpanHeader = document.createElement('span');\n if (headers.length > 0) {\n newSpanHeader.innerHTML += headers[d].innerText + \": \";\n }\n cells[d].prepend(newSpanHeader);\n }\n }\n }\n }\n\n return {\n init: function init() {\n moduleContainer = context.getElement();\n config = context.getConfig();\n setTableBeforeText();\n },\n\n destroy: function destroy() {\n moduleContainer = null;\n moduleId = null;\n config = null;\n }\n };\n});\n'use strict';\n\nfunction trapFocus(modal, focusFirst) {\n // add all the elements inside modal which you want to make focusable\n var focusableElements = 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\n var focusableContent = $(modal + ' button,' + modal + ' input,' + modal + ' select,' + modal + ' textarea,' + modal + ' [href],' + modal + ' [tabindex]:not([tabindex=\"-1\"]');\n var startFocus = focusFirst !== null ? $(focusFirst) : focusableContent[0]; // get first element to be focused inside modal\n var firstFocusableElement = focusableContent[0]; // get first element to be focused inside modal\n var lastFocusableElement = focusableContent[focusableContent.length - 1]; // get last element to be focused inside modal\n\n document.addEventListener('keydown', function (e) {\n var isTabPressed = e.key === 'Tab' || e.keyCode === 9;\n if (isTabPressed) {\n\n if (e.shiftKey) {\n // if shift key pressed for shift + tab combination\n if (document.activeElement === firstFocusableElement) {\n lastFocusableElement.focus(); // add focus for the last focusable element\n e.preventDefault();\n }\n } else {\n // if tab key is pressed\n if (document.activeElement === lastFocusableElement) {\n // if focused has reached to last focusable element then focus first focusable element after pressing tab\n firstFocusableElement.focus(); // add focus for the first focusable element\n e.preventDefault();\n }\n }\n }\n });\n\n startFocus.focus();\n}\n\nfunction modalAccessibility(openClose, modal, focusOnThis) {\n if (openClose === \"open\") {\n isExpanded.attr(\"aria-expanded\", \"true\");\n trapFocus(modal, focusOnThis);\n } else {\n isExpanded.attr(\"aria-expanded\", \"false\");\n $(focusOnThis).focus();\n isExpanded = null;\n focusBack = null;\n }\n}\n\n// ------------------------------ SLIDESHOW ------------------------------- //\n\nvar moduleContainer;\nvar slides;\nvar slideNav;\nvar captions;\nvar activeSlide = 0;\nvar slideshowSpeedInSeconds = 5;\nvar interval;\n\nfunction timelineSlideshow() {\n moduleContainer = $(\".timeline-modal .slideshow-timeline-container\");\n slides = moduleContainer.find('.slideshow-timeline-container__slides__item');\n captions = moduleContainer.find('.slideshow-timeline-container__imagebox_text');\n var showNav = $(\"