{"version":3,"sources":["animation.js","site.js","wideImage.js","libs/galleryViewer.js","libs/require.js","libs/ssn.js","Accordion/Accordion.js","Elements/Elements.js","EstCalculator/EstCalculator.js","Menu/Menu.js","Notification/Notification.js","PriceTable/PriceTable.js","Search/Search.js","Statistics/Statistics.js","TunnelMap/animateValue.js","TunnelMap/index.js","TunnelMap/modals.js","TunnelMap/range.js","TunnelMap/scrollHelper.js","SpecialTunnel/SpecialTunnelHeader/specialTunnelHeader.js","SpecialTunnel/SpecialTunnelBodyText/specialTunnelBodyText.js","SpecialTunnel/SpecialTunnelNavigation/specialTunnelNavigation.js"],"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","h","f","Error","s","done","method","arg","delegate","maybeInvokeDelegate","return","TypeError","y","tryCatch","type","resultName","next","nextLoc","sent","_sent","dispatchException","abrupt","p","l","call","GeneratorFunction","GeneratorFunctionPrototype","d","this","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","callInvokeWithMethodAndArg","invoke","_typeof","resolve","__await","then","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_createForOfIteratorHelper","allowArrayLike","normalCompletion","didErr","it","step","_e2","Array","isArray","_unsupportedIterableToArray","F","_e","minLen","_arrayLikeToArray","toString","from","test","arr","len","arr2","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_toPrimitive","String","toPrimitive","Number","DOMReady","callback","document","readyState","addEventListener","RunWhenAndWith","query","func","options","observer","elements","querySelectorAll","observe","observables","MutationObserver","observable","config","aniPrefix","registerAnimation","element","getElementOptions","setAttribute","concat","animation","style","setProperty","delay","createObserver","threshold","root","rootMargin","elementAttributeValue","getAttribute","elementOptions","JSON","parse","once","targetSelector","closest","IntersectionObserver","entries","_step","_iterator","_loop","entry","isIntersecting","setTimeout","getPropertyValue","replace","removeProperty","removeAttribute","unobserve","intersectionRect","window","NodeList","_","body","classList","remove","elem","parentNode","add","contentWith","clientWidth","img","image","parentElement","updateCounter","parent","activeImage","querySelector","counter","maxIndex","parseInt","innerText","split","currentIndex","updateNav","item","itemIndex","nextImage","nextElementSibling","nodeName","prevImage","previousElementSibling","x","images","evt","visibleGallery","gotoIndex","list","requireScript","cb","shift","script","isNew","keySplit","createElement","onload","url","cbs","onerror","console","log","src","appendChild","DEBUG","localStorage","getItem","location","host","indexOf","navigator","serviceWorker","ready","registration","active","postMessage","ssn","isDebug","findParent","throttle","wait","later","previous","leading","Date","now","timeout","result","context","remaining","clearTimeout","trailing","send","data","onSuccess","onError","xhr","XMLHttpRequest","open","setRequestHeader","onreadystatechange","status","responseText","stringify","get","post","put","delete","CustomEvent","event","params","bubbles","cancelable","detail","createEvent","initCustomEvent","Event","accordionInit","accordion","contains","toggle","ssn_accordionInit","frameElement","postHeight","height","clientHeight","origin","imgElem","estCalc","allData","Árnafjørður","Ánirnar","Depil","Fuglafjørður","Funningsfjørður","Glyvrar","Gøtugjógv","Haraldssund","Hellurnar","Hvannasund","Innan Glyvur","Kambsdalur","Klaksvík","Kolbeinagjógv","Kunoy","Lamba","Lambareiði","Leirvík","Morskranes","Múli","Nes","Norðdepil","Norðoyri","Norðragøta","Norðtoftir","Oyndarfjørður","Rituvík","Runavík","Saltangará","Saltnes","Selatrað","Skála","Skálafjørður","Skipanes","Søldarfjørður","Strendur","Syðrugøta","Toftir","Tórshavn","Undir Gøtueiði","Viðareiði","Æðuvík","extraCostData","allUsagedata","Lítil persónbilur","Miðal persónbilur","Stórur persónbilur","Lítil persónbilur (diesel)","Miðal persónbilur (diesel)","Stórur persónbilur (diesel)","isInvert","fromSelect","toSelect","switchSelectOptions","doCalc","carTypeSelect","innerHTML","join","elem1","elem2","activeElem","val1","html1","html2","costWtFuel","costSaveFuel","costWotWear","costWtWear","costSaveWear","costWotTicket","costWtTicket","costSaveTicket","totalSave","setInt","usage","costWotFuel","extraCost","selector","text","val","Math","round","max","recFn","menu","isDesktop","curr_x","curr_y","last_x","last_y","currli","prevli","checkTimer","outTimer","mouseMoveEvent","header","innerWidth","scrollTop","documentElement","triggerArrow","srcElement","tagName","offsetX","li","preventDefault","children","clientX","clientY","clearInterval","setInterval","removeEventListener","introPicture","fixWhiteSpace","notification","footerElem","visibility","headerHeight","getBoundingClientRect","notificationHeight","marginBottom","priceTable","href","pathname","search","closeOnNoneSearchClick","button","input","blur","encodeURIComponent","focus","which","keyCode","click","_data","canvasElems","tableElems","fromYearSelect","toYearSelect","chartPromise","_observer","statistics","initCharts","canvas","title","currData","items","find","colors","chart","Chart","labels","datasets","map","label","NaN","borderColor","backgroundColor","responsive","aspectRatio","plugins","legend","position","tooltip","callbacks","toUpperCase","dataset","parsed","toFixed","interaction","mode","intersect","initChartsWhenInView","b","intersectionRatio","isInView","drawTables","tableElem","addCol","html","x2","i2","fetchData","fetch","json","isFirstFetch","destroy","all","easeInOutCubic","pow","easeOutQuad","easeInQuad","animateValue","start","end","duration","decimals","decimalDelimiter","easingFunction","startTimestamp","requestAnimationFrame","timestamp","progress","min","roundedValue","stringValue","_step2","_iterator2","eventPointerCache","initialStepSize","maxScale","minScale","allowPanningPast","highResImageLoading","removeEventPointerFromCache","index","findIndex","cachedEvent","pointerId","splice","updatePointerEventInCache","startY","startX","startScale","headerMarginBottom","panzoom","updatePanzoom","tunnelMap","mapContainer","mapContent","rangeElement","mapContentDiv","mapImage","mapHeight","windowHeight","getComputedStyle","Panzoom","excludeClass","pinchAndPan","roundPixels","touchAction","disablePan","handleStartEvent","stopPropagation","isPinch","pointerType","scale","highResSrc","percentage","scaleToPercentage","dispatchEvent","setOptions","calculateStepSize","timeStamp","highResImage","Image","width","shiftKey","zoomWithWheel","percentageToScale","zoom","pointerUpHandler","onpointercancel","onpointerout","onpointerleave","normalizedPercentage","logMin","logMax","exp","clampedValue","currentScale","Popup","_this","_ref","_callee","_context","popupElement","close","_x","originalBodyOverflow","overflow","_open","_callee3","removePopupKey","removePopupClick","focusable","_this2","_context3","isOpen","_ref2","_callee2","closePopups","_context2","defaultPrevented","popup","_x3","focusElement","_x2","_this3","time","removeChild","prefix","generateHtml","activator","container","templateSelector","closestSelector","template","_toConsumableArray","content","prop","_ref3","_ref4","_slicedToArray","templatePopup","pageElement","cRange","popups","_inherits","_wrapNativeSuper","HTMLElement","_super","_createSuper","_this4","_assertThisInitialized","_this5","waitForDOM","plusButton","minusButton","outputElement","updateValue","skipDispatchingEvent","_this6","firstElementChild","_mutations","disconnect","childList","cScrollHelper","customElements","_super2","_this7","_this8","targetElement","upButton","downButton","scrollBy","top","bottom","_this9","components","component","audioWrapper","audioElement","paused","play","pause","bodyTexts","bodytext","readMoreButton","hasAttribute","scrollHeight","links","link","includes","id","URL","hash","section"],"mappings":"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","file":"../all.compiled.js","sourcesContent":["/**\n * Waits to call the callback until the document is ready\n * or if the document already is ready, calls the callback straight away.\n * @param {Function} callback - The function to be called once the document is ready.\n */\nfunction DOMReady(callback) {\n if (\n document.readyState === `interactive` ||\n document.readyState === `complete`\n ) {\n callback();\n } else {\n document.addEventListener(`DOMContentLoaded`, callback);\n }\n}\n\n/**\n * Runs a given function on elements matching a query once the DOM is ready, with optional mutation observation.\n * @param {string} query - CSS query selector for elements to apply the function to.\n * @param {Function} func - Function to apply to each matched element.\n * @param {RunWhenAndWithOptions} [options] - Optional configuration for mutation observation.\n * @returns {void}\n */\nfunction RunWhenAndWith(query, func, options) {\n return DOMReady(() => {\n /** @type {NodeListOf} */\n const elements = document.querySelectorAll(query);\n if (elements.length === 0) return;\n\n elements.forEach(func);\n\n if (options?.observe) {\n const observables = document.querySelectorAll(options.observe.query);\n const observer = new MutationObserver(options.observe.callback);\n\n observables.forEach((observable) =>\n observer.observe(observable, options.observe.config)\n );\n }\n });\n}\n\nconst aniPrefix = `data-ani`;\n\n/**\n * Registers an animation for a given element, using its data attributes for configuration.\n * @param {HTMLElement} element - The element to register the animation for.\n */\nfunction registerAnimation(element) {\n const options = getElementOptions(element);\n element.setAttribute(`${aniPrefix}-init`, `true`);\n element.setAttribute(`${aniPrefix}-animation`, options.animation)\n element.style.setProperty(`--delay`, options.delay);\n\n const observer = createObserver(\n {\n threshold: options.threshold,\n root: options.root,\n rootMargin: options.rootMargin,\n },\n element\n );\n if (options.target) {\n observer.observe(options.target);\n } else {\n observer.observe(element);\n }\n}\n\n/**\n * Defines the options for element animation.\n * @typedef {Object} ElementOptions\n * @property {`fade-up`} animation - The animation type.\n * @property {string} delay - Delay before the animation starts.\n * @property {boolean} once - Whether the animation runs only once.\n * @property {number} threshold - The intersection observer threshold.\n * @property {HTMLElement | null} root - The root element for the intersection observer.\n * @property {string} rootMargin - The margin around the root.\n * @property {string | null} targetSelector - Selector for the target element.\n * @property {HTMLElement | null} target - The target element for the observer.\n * @property {HTMLElement} element - The current element.\n */\n\n/**\n * Retrieves and parses animation configuration options from an element's data attribute.\n * @param {HTMLElement} element - The element from which to retrieve options.\n * @returns {ElementOptions} The parsed configuration options for the element.\n */\nfunction getElementOptions(element) {\n const elementAttributeValue = element.getAttribute(`${aniPrefix}`);\n const elementOptions = JSON.parse(elementAttributeValue);\n\n const defaultOptions = {\n animation: `fade-up`,\n delay: `0ms`,\n once: true,\n threshold: 0.5,\n root: null,\n rootMargin: `0px 0px 0px 0px`,\n targetSelector: null,\n target:\n elementOptions && elementOptions.targetSelector\n ? element.closest(elementOptions.targetSelector)\n : null,\n element,\n };\n\n const options = {\n ...defaultOptions,\n ...(elementOptions ? elementOptions : {}),\n };\n\n return options;\n}\n\n/**\n * Creates an intersection observer for animations, triggering based on visibility.\n * @param {IntersectionObserverInit} options - Configuration for the intersection observer.\n * @param {HTMLElement} [element=null] - The element to observe. If not provided, the target element is used.\n * @returns {IntersectionObserver} The created intersection observer.\n */\nfunction createObserver(options, element = null) {\n return new IntersectionObserver((entries, observer) => {\n for (const entry of entries) {\n let target = element ? element : entry.target;\n const elementOptions = getElementOptions(target);\n\n if (entry.isIntersecting) {\n target.setAttribute(`${aniPrefix}-run`, `true`);\n setTimeout(() => {\n element.setAttribute(`${aniPrefix}-done`, `true`)\n }, element.style.getPropertyValue(\"--delay\").replace(\"ms\", \"\"))\n if (elementOptions.once === true) {\n // Disconnect element and remove all added styling\n elementOptions.delay = \"0ms\"\n setTimeout(() => {\n element.style.removeProperty(\"--delay\")\n element.removeAttribute(\"data-ani\")\n element.removeAttribute(\"data-ani-init\")\n element.removeAttribute(\"data-ani-animation\")\n element.removeAttribute(\"data-ani-run\")\n element.removeAttribute(\"data-ani-done\")\n observer.unobserve(target)\n }, Number(element.style.getPropertyValue(\"--delay\").replace(\"ms\", \"\")) + 250)\n }\n } else if (!entry.isIntersecting && elementOptions.once !== true) {\n if (entry.intersectionRect.y !== 0) {\n target.setAttribute(`${aniPrefix}-run`, `false`);\n }\n }\n }\n }, options);\n}\n\nRunWhenAndWith(`[${aniPrefix}]`, (element) => {\n setTimeout(() => registerAnimation(element), 250)\n});\n\n// Note: Since JSDoc doesn't execute code, ensure the `RunWhenAndWithOptions` type and `DOMReady` function are defined elsewhere in your codebase or appropriately replaced.\n","if (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach;\n}\n\nwindow.addEventListener('load', _ => {\n document.body.classList.remove('preload');\n});\n\n(function() {\n var fn = _ => document.querySelectorAll('a.over-link').forEach(elem =>\n elem.parentNode.classList.add('has-over-link')\n );\n\n document.addEventListener('DOMContentLoaded', fn);\n document.addEventListener('c-DOMContentUpdated', fn);\n})();\n\n\n(function() {\n\n document.querySelectorAll('.section-content').forEach(elem => {\n\n var contentWith = elem.clientWidth * 0.8;\n \n elem.querySelectorAll('img').forEach(img => {\n\n if (img.clientWidth > contentWith)\n {\n if(img.closest(\".image-dialog-box\")){\n return;\n }\n\n img.classList.add('is-content-size');\n } \n\n });\n\n });\n\n})();","(() => {\n function DOMReady(callback) {\n if (\n document.readyState === `interactive` ||\n document.readyState === `complete`\n ) {\n callback();\n } else {\n document.addEventListener(`DOMContentLoaded`, () => callback());\n }\n }\n\n DOMReady(() => {\n const images = document.querySelectorAll(\n \".section-content picture > img[width]\"\n );\n\n images.forEach((image) => {\n if (Number(image.getAttribute(\"width\")) >= 1200) {\n image.parentElement.setAttribute(\"data-wide\", \"\");\n }\n });\n });\n})();\n","(function(){\n\n document.querySelectorAll(\".gallery-info\").forEach(x => {\n\n var parent = x.closest(\".image-dialog-box\");\n var images = parseInt(parent.querySelectorAll(\":scope > img\").length - 2);\n\n x.innerText = \"1/\" + images;\n\n })\n\n document.querySelectorAll(\".gallery-object\").forEach(x => x.addEventListener(\"click\", function() {\n\n var parent = x.closest(\".gallery-item\");\n\n parent.querySelector(\".image-dialog-box\").classList.add(\"show-dialog\");\n\n }))\n\n document.querySelectorAll(\".right-arrow\").forEach(x => x.addEventListener(\"click\", function(){\n var parent = x.closest(\".image-dialog-box\");\n\n nextImage(parent);\n\n }))\n\n document.querySelectorAll(\".left-arrow\").forEach(x => x.addEventListener(\"click\", function(){\n var parent = x.closest(\".image-dialog-box\");\n\n prevImage(parent);\n\n }))\n\n function updateCounter(parent) {\n var activeImage = parent.querySelector(\".active-image\")\n var counter = parent.querySelector(\".gallery-info\")\n var maxIndex = parseInt(counter.innerText.split(\"/\")[1])\n let currentIndex = activeImage.getAttribute(\"data-index\")\n counter.innerText = currentIndex + \"/\" + maxIndex;\n }\n\n function updateNav(parent) {\n let activeImage = parent.querySelector(\".active-image\")\n let currentIndex = activeImage.getAttribute(\"data-index\")\n\n let navItems = parent.querySelectorAll(\"nav li\")\n navItems.forEach(item => {\n let itemIndex = item.querySelector(\"[data-goto]\").getAttribute(\"data-goto\")\n\n if (currentIndex === itemIndex) {\n item.setAttribute(\"aria-current\", \"true\")\n } else {\n item.setAttribute(\"aria-current\", \"false\")\n }\n })\n }\n\n function nextImage(parent){\n var image = parent.querySelector(\".active-image\")\n \n if(image.nextElementSibling.nodeName == \"IMG\"){\n image.classList.remove(\"active-image\")\n var next = image.nextElementSibling\n next.classList.add(\"active-image\")\n\n updateCounter(parent)\n updateNav(parent)\n }\n }\n\n function prevImage(parent){\n var image = parent.querySelector(\".active-image\")\n \n if(image.previousElementSibling.nodeName == \"IMG\"){\n image.classList.remove(\"active-image\")\n var next = image.previousElementSibling\n next.classList.add(\"active-image\")\n\n updateCounter(parent)\n updateNav(parent)\n }\n }\n\n function goToImage(image) {\n let parent = image.closest(\".image-dialog-box\");\n let activeImage = parent.querySelector(\".active-image\")\n\n activeImage.classList.remove(\"active-image\")\n image.classList.add(\"active-image\")\n\n updateCounter(parent)\n updateNav(parent)\n }\n\n document.querySelectorAll(\".faded-bg\").forEach(x => x.addEventListener(\"click\", function(){\n\n var parent = x.closest(\".image-dialog-box\");\n parent.classList.remove(\"show-dialog\");\n\n }))\n\n window.addEventListener(\"keyup\", function(evt){\n\n var visibleGallery = document.querySelector(\".show-dialog\")\n\n if(!visibleGallery){ return; }\n\n if(evt.key == \"a\"){\n prevImage(visibleGallery);\n }\n\n if(evt.key == \"d\"){\n nextImage(visibleGallery);\n }\n\n if(evt.key == \"ArrowLeft\"){\n prevImage(visibleGallery);\n }\n\n if(evt.key == \"ArrowRight\"){\n nextImage(visibleGallery);\n }\n\n if(evt.key == \"Escape\"){\n visibleGallery.classList.remove(\"show-dialog\");\n }\n })\n\n document.querySelectorAll(\".c-gallery [data-goto]\").forEach(item => {\n item.addEventListener(\"click\", () => {\n var parent = item.closest(\".image-dialog-box\");\n if (!parent) return\n\n let gotoIndex = item.getAttribute(\"data-goto\")\n let image = parent.querySelector(`[data-index=\"${gotoIndex}\"]`)\n\n goToImage(image)\n })\n })\n})();","(function() { \n var list = {};\n \n var pop = function(url) {\n var cbs = list[url];\n list[url] = [];\n for(var i = 0; i < cbs.length; i++)\n cbs[i]();\n };\n \n window.requireScript = function(key, cb) {\n if (Array.isArray(key)) {\n if (key.length > 0)\n window.requireScript(key[0], function() {\n key.shift();\n if (key.length == 0)\n cb();\n else\n window.requireScript(key, cb);\n });\n return;\n }\n \n var isNew = list[key] === undefined;\n if (isNew)\n list[key] = [];\n else if (list[key].length === 0)\n return cb();\n \n list[key].push(cb);\n if (isNew)\n {\n var keySplit = key.split(' ');\n var scriptAttr = { crossorigin: 'anonymous' };\n if (keySplit[1])\n scriptAttr.integrity = keySplit[1]\n\n const script = document.createElement('script');\n script.onload = () => pop(key);\n script.onerror = () => console.log('requireScript failed', key);\n script.async = true;\n script.src = keySplit[0];\n document.body.appendChild(script);\n }\n };\n})();","// Copyright © 2020 Sansir. All rights reserved.\n(function() {\n var DEBUG = localStorage.getItem('ssn_DEBUG') === 'true' || location.host.indexOf('localhost') !== -1;\n\n if (DEBUG && 'serviceWorker' in navigator)\n navigator.serviceWorker.ready.then(registration => registration.active.postMessage('ssn_DEBUG'));\n \n window.ssn = {\n\n isDebug: _ => DEBUG,\n\n log: function() {\n DEBUG && console.log.apply(null, arguments);\n },\n\n findParent: function (target, filter) {\n var root = window.document;\n do {\n if (filter(target)) return target;\n } while ((target = target.parentNode) && target != root);\n },\n \n throttle: function (func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n var later = function () {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function () {\n var now = Date.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n },\n \n send: function(url, method, data, onSuccess, onError) {\n var xhr = new XMLHttpRequest();\n xhr.open(method, url, true);\n xhr.setRequestHeader(\"Content-Type\", \"application/json;charset=UTF-8\");\n xhr.onreadystatechange = _ => {\n if (xhr.readyState !== 4) return;\n \n if (xhr.status !== 200 && xhr.status !== 204 && onError)\n onError(xhr.responseText);\n \n else if (onSuccess)\n onSuccess(xhr.responseText ? JSON.parse(xhr.responseText) : undefined);\n };\n \n if (data)\n xhr.send(JSON.stringify(data));\n else\n xhr.send();\n },\n \n get: (url, onSuccess, onError) => ssn.send(url, 'GET', null, onSuccess, onError),\n post: (url, data, onSuccess, onError) => ssn.send(url, 'POST', data, onSuccess, onError),\n put: (url, data, onSuccess, onError) => ssn.send(url, 'PUT', data, onSuccess, onError),\n delete: (url, onSuccess, onError) => ssn.send(url, 'DELETE', null, onSuccess, onError)\n };\n})();\n\n\n// Adding CustomEvent to IE\n(function () {\n\tif (typeof window.CustomEvent === \"function\") return false; //If not IE\n\n\tfunction CustomEvent(event, params) {\n\t\tparams = params || { bubbles: false, cancelable: false, detail: undefined };\n\t\tvar evt = document.createEvent('CustomEvent');\n\t\tevt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n\t\treturn evt;\n\t}\n\n\tCustomEvent.prototype = window.Event.prototype;\n\n\twindow.CustomEvent = CustomEvent;\n})();","document.addEventListener('DOMContentLoaded', _ => {\n\n document.querySelectorAll('.c-accordion').forEach(accordionInit);\n\n function accordionInit(accordion)\n {\n accordion.addEventListener('click', e => {\n\n accordion.classList.add('ani-progress');\n setTimeout(() => accordion.classList.remove('ani-progress'), 2000);\n\n var elem = ssn.findParent(e.target, t => t.classList.contains('title'));\n if (elem && elem.parentNode.classList.contains('item') && elem.parentNode.parentNode == accordion)\n {\n elem.parentNode.classList.toggle('active');\n }\n\n });\n }\n\n window.ssn_accordionInit = accordionInit;\n});","if (window.frameElement)\n{\n window.addEventListener('load', e => {\n var elements = document.querySelector('.c-elements');\n if (elements)\n {\n var postHeight = () => window.parent.postMessage({ height: elements.clientHeight }, location.origin);\n postHeight();\n\n document.querySelectorAll('img', imgElem => imgElem.addEventListener('load', postHeight));\n\n setTimeout(postHeight, 1000);\n setTimeout(postHeight, 3000);\n setTimeout(postHeight, 5000);\n }\n });\n}","document.addEventListener(\"DOMContentLoaded\", function(e) { \n var estCalc = document.querySelector('.c-est-calculator');\n if (!estCalc) return;\n\n var allData = {\n 'Árnafjørður': [80.9, 73, 47.1, 46],\n 'Ánirnar': [77.7, 71, 44, 44],\n 'Depil': [83.4, 75, 49.7, 48],\n 'Fuglafjørður': [67.4, 61, 33.7, 34],\n 'Funningsfjørður': [48.8, 40, 32.7, 29],\n 'Glyvrar': [62, 52, 18.1, 19],\n 'Gøtugjógv': [59.9, 54, 26.1, 27],\n 'Haraldssund': [80.5, 74, 46.8, 47],\n 'Hellurnar': [58.5, 47, 36.5, 32],\n 'Hvannasund': [85.1, 77, 51.3, 50],\n 'Innan Glyvur': [60.6, 49, 16.7, 15],\n 'Kambsdalur': [64.9, 59, 31.1, 32],\n 'Klaksvík': [74.9, 68, 41.1, 41],\n 'Kolbeinagjógv': [66.5, 54, 19.5, 18],\n 'Kunoy': [85.9, 78, 52.1, 51],\n 'Lamba': [61.4, 52, 20.9, 22],\n 'Lambareiði': [60.1, 51, 19.6, 21],\n 'Leirvík': [65.1, 59, 31.4, 32],\n 'Morskranes': [69.5, 56, 22.6, 20],\n 'Múli': [91.4, 84, 57.7, 57],\n 'Nes': [68.1, 60, 19, 18],\n 'Norðdepil': [84.2, 76, 50.5, 49],\n 'Norðoyri': [76.2, 69, 42.5, 42],\n 'Norðragøta': [61.2, 56, 27.4, 29],\n 'Norðtoftir': [84.4, 76, 50.6, 49],\n 'Oyndarfjørður': [58.9, 48, 37.2, 32],\n 'Rituvík': [67.5, 59, 19.6, 19],\n 'Runavík': [63.6, 55, 15.8, 15],\n 'Saltangará': [62.8, 54, 16.8, 17],\n 'Saltnes': [65.5, 58, 16.4, 15],\n 'Selatrað': [73.5, 60, 26.6, 23],\n 'Skála': [56.6, 47, 20.2, 19],\n 'Skálafjørður': [51.1, 42, 25.6, 23],\n 'Skipanes': [56.1, 46, 23.8, 26],\n 'Søldarfjørður': [57.8, 48, 21.6, 23],\n 'Strendur': [63, 51, 16.1, 15],\n 'Syðrugøta': [59.8, 54, 26, 27],\n 'Toftir': [67.1, 59, 18, 17],\n 'Tórshavn': null,\n 'Undir Gøtueiði': [55.7, 47, 23.8, 26],\n 'Viðareiði': [92.9, 82, 59.1, 55],\n 'Æðuvík': [69.7, 61, 21.8, 20]\n }\n\n var extraCostData = ['Viðareiði','Hvannasund','Nordepli','Depli','Múli','Norðtoftit','Árnifjørður','Ánirna','Klaksvík','Norðoyri','Kunoy','Haraldsund'];\n\n var allUsagedata = {\n 'Lítil persónbilur': [0.73, 1.59],\n 'Miðal persónbilur': [0.98, 2.83],\n 'Stórur persónbilur': [1.37, 4.63],\n 'Lítil persónbilur (diesel)': [0.52, 1.51],\n 'Miðal persónbilur (diesel)': [0.59, 2.33],\n 'Stórur persónbilur (diesel)': [0.69, 3.47]\n };\n \n var isInvert = false;\n var fromSelect = estCalc.querySelector('.from-select');\n fromSelect.addEventListener('change', function(e) {\n if (!isInvert && fromSelect.value === 'Tórshavn') {\n switchSelectOptions(fromSelect, toSelect, fromSelect)\n isInvert = true;\n }\n\n if (fromSelect.value !== 'Tórshavn' && toSelect.value == '- Vel -')\n toSelect.value = 'Tórshavn';\n\n doCalc();\n });\n\n var toSelect = estCalc.querySelector('.to-select');\n toSelect.addEventListener('change', function(e) {\n if (isInvert && toSelect.value === 'Tórshavn') {\n switchSelectOptions(fromSelect, toSelect, toSelect)\n isInvert = false;\n }\n \n doCalc();\n });\n\n var carTypeSelect = estCalc.querySelector('.carType-select');\n carTypeSelect.addEventListener('change', doCalc);\n\n function init()\n {\n // from/to select\n var options = [];\n for(var name in allData)\n options.push('');\n \n fromSelect.innerHTML = fromSelect.innerHTML + options.join('');\n\n // cartype select\n options = [];\n for(var name in allUsagedata)\n options.push('');\n \n carTypeSelect.innerHTML = options.join('');\n\n carTypeSelect.value = 'Miðal persónbilur';\n\n doCalc();\n }\n\n\n function switchSelectOptions(elem1, elem2, activeElem)\n {\n var val1 = activeElem.value;\n var html1 = elem1.innerHTML;\n var html2 = elem2.innerHTML;\n \n elem1.innerHTML = html2;\n elem2.innerHTML = html1;\n activeElem.value = val1;\n }\n \n function doCalc()\n {\n if (fromSelect.value === '- Vel -' || toSelect.value === '- Vel -')\n {\n estCalc.classList.remove('active');\n return;\n }\n else\n {\n estCalc.classList.add('active');\n }\n \n var key = fromSelect.value === 'Tórshavn' ? toSelect.value : fromSelect.value;\n var data = allData[key];\n\n setInt('.time-wot', data[1]);\n setInt('.time-wt', data[3]);\n setInt('.time-save', data[1] - data[3], 250);\n\n var usage = allUsagedata[carTypeSelect.value];\n\n\n // fuel\n var costWotFuel = data[0] * usage[0];\n setInt('.cost-wot-fuel', costWotFuel);\n\n var costWtFuel = data[2] * usage[0]\n setInt('.cost-wt-fuel', costWtFuel);\n\n var costSaveFuel = costWotFuel - costWtFuel;\n //setInt('.cost-save-fuel', costSaveFuel);\n\n // wear\n var costWotWear = data[0] * usage[1];\n setInt('.cost-wot-wear', costWotWear);\n\n var costWtWear = data[2] * usage[1];\n setInt('.cost-wt-wear', costWtWear);\n\n var costSaveWear = costWotWear - costWtWear;\n //setInt('.cost-save-wear', costSaveWear);\n\n // ticket\n var extraCost = extraCostData.indexOf(key) !== -1 ? 10 : 0;\n \n var costWotTicket = 0 + extraCost;\n setInt('.cost-wot-ticket', costWotTicket);\n\n var costWtTicket = parseInt(estCalc.getAttribute('data-price'));\n if (extraCost) {\n document.querySelector('.cost-wt-ticket-extra').innerHTML = ',- + ';\n setInt('.cost-wt-ticket-extra-inner', extraCost);\n } else {\n document.querySelector('.cost-wt-ticket-extra').innerHTML = '';\n }\n \n setInt('.cost-wt-ticket', costWtTicket);\n costWtTicket += extraCost;\n\n var costSaveTicket = costWotTicket - costWtTicket;\n //setInt('.cost-save-ticket', costWotTicket - costSaveTicket);\n\n // total\n\n setInt('.cost-wot-total', costWotFuel + costWotWear + costWotTicket);\n setInt('.cost-wt-total', costWtFuel + costWtWear + costWtTicket);\n\n var totalSave = costSaveFuel + costSaveWear + costSaveTicket;\n setInt('.cost-save-total', totalSave, 600);\n\n estCalc.querySelector('.cost-save-text').innerText = totalSave < 1 ? 'Munur' : 'Spar';\n }\n\n function setInt(selector, text, delay)\n {\n var val = Math.round(text);\n var elem = estCalc.querySelector(selector);\n elem.innerText = '0';\n\n var i = 0;\n var max = 70 + val*0.05;\n var recFn = function() {\n i++;\n if (i < max)\n {\n setTimeout(recFn, i*i/150);\n }\n else\n {\n elem.innerText = val;\n return;\n }\n\n elem.innerText = Math.round(val * i/max);\n };\n\n setTimeout(recFn, delay || 0);\n }\n\n init();\n});","document.addEventListener('DOMContentLoaded', _ => {\n var header = document.querySelector('header');\n if (!header) return;\n var menu = header.querySelector('.c-menu.main');\n if (!menu) return;\n var isDesktop = _ => window.innerWidth >= 1200;\n \n\tmenu.querySelectorAll('li').forEach(elem => {\n if (elem.querySelector('ul'))\n elem.classList.add('hasChildren');\n })\n\n header.querySelector('.menu-button').addEventListener('click', e => {\n if (isDesktop()) return;\n \n\t\tif (header.classList.contains('menu-open')) {\n\t\t\theader.classList.remove('menu-open');\n\t\t\theader.classList.remove('not-selected');\n\t\t} else {\n header.classList.add('menu-open');\n header.classList.add('not-selected');\n \n document.body.scrollTop = 0; // For Safari\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\n\t\t}\n\t});\n\n\tvar clickMobile = function(a, e) {\n\t\tvar triggerArrow = window.innerWidth - e.offsetX < 100;\n\t\tvar li = a.parentNode;\n if (!triggerArrow) return;\n\n if (!li.classList.contains('hasChildren')) return;\n \n\t\te.preventDefault();\n\t\t\n\t\tif (li.classList.contains('close') || (!li.classList.contains('open') && !li.classList.contains('pselected') && !li.classList.contains('selected'))) {\n li.classList.remove('close')\n li.classList.add('open');\n } else {\n li.classList.remove('open')\n li.classList.add('close');\n }\n\t};\n\n menu.addEventListener('click', e => {\n var elem = ssn.findParent(e.srcElement || e.target, t => t.tagName === 'A');\n if (!elem) return;\n\n header.classList.remove('not-selected');\n \n\t\tif (!isDesktop())\n clickMobile(e.target, e);\n });\n\n\n\n\n\t// slow hover effects\n var curr_x = 0;\n var curr_y = 0;\n var last_x = 0;\n var last_y = 0;\n var currli = menu.children[0];\n var prevli;\n var checkTimer;\n var outTimer;\n \n var mouseMoveEvent = function(e) {\n curr_x = e.clientX;\n curr_y = e.clientY;\n };\n\n menu.addEventListener('mouseover', function(e) {\n var li = ssn.findParent(e.target, t => t.tagName === 'LI' && t.parentNode === menu);\n if (li)\n currli = li;\n });\n menu.addEventListener('mouseover', function(e) {\n if (!prevli)\n prevli = null;\n \n menu.classList.add('hover');\n \n clearInterval(outTimer);\n\n menu.addEventListener('mousemove', mouseMoveEvent);\n\n checkTimer = setInterval(function() {\n if (last_x <= curr_x + 5 && last_x >= curr_x - 5 &&\n last_y <= curr_y + 5 && last_y >= curr_y - 5 &&\n (!prevli || prevli != currli)) {\n if (prevli)\n prevli.classList.remove('hover');\n currli.classList.add('hover');\n prevli = currli;\n }\n last_x = curr_x;\n last_y = curr_y;\n }, 50)\n });\n menu.addEventListener('mouseout', function() {\n\n menu.removeEventListener('mousemove', mouseMoveEvent);\n\n clearInterval(checkTimer);\n outTimer = setTimeout(function() {\n\t\t\tif (prevli)\n \tprevli.classList.remove('hover');\n prevli = null;\n menu.classList.remove('hover');\n }, 200);\n });\n});","document.addEventListener('DOMContentLoaded', () => {\n var notification = document.querySelector('.c-notification');\n if (!notification) return;\n\n notification.addEventListener('click', e => {\n if (e.target && (e.target.classList.contains('title') || e.target.classList.contains('icon-arrow-down-black')))\n {\n e.target.parentElement.classList.toggle('open');\n \n // quick fix, remove white space\n var footerElem = document.querySelector('footer');\n footerElem.style.visibility = 'hidden';\n setTimeout(fixWhiteSpace, 500);\n setTimeout(fixWhiteSpace, 1000);\n setTimeout(() => footerElem.style.visibility = 'visible', 1000);\n }\n });\n\n // fix white space caused by IntroPicture on frontpage\n var introPicture = document.querySelector('.c-intro-picture');\n if (!introPicture) return;\n\n var fixWhiteSpace = function() {\n var headerHeight = document.querySelector('header').getBoundingClientRect().height;\n var notificationHeight = notification.getBoundingClientRect().height;\n introPicture.style.marginBottom = -(headerHeight + notificationHeight) + 'px';\n };\n\n fixWhiteSpace();\n\n window.addEventListener('resize', fixWhiteSpace);\n});","document.addEventListener('DOMContentLoaded', () => {\n var priceTable = document.querySelector('.c-priceTable');\n if (!priceTable) return;\n\n var selectElem = priceTable.querySelector('select');\n selectElem.addEventListener('change', e => {\n\n var val = e.target.value;\n \n\n location.href = location.pathname + (val ? '?type=' + e.target.value : '');\n\n });\n});","document.addEventListener('DOMContentLoaded', _ => {\n\n var header = document.querySelector('header');\n\n \n document.querySelectorAll('.c-search').forEach(search => {\n var input = search.querySelector('input');\n var button = search.querySelector('.button');\n var url = input.getAttribute('data-url');\n\n var closeOnNoneSearchClick = function(e, button)\n {\n var target = ssn.findParent(e.target, t => t.classList.contains('c-search'));\n if (!target)\n {\n search.classList.remove('open');\n header.classList.remove('search-open');\n input.blur();\n document.body.removeEventListener('click', closeOnNoneSearchClick);\n }\n }\n\n button.addEventListener('click', e => {\n if (!search.classList.contains('open')) {\n search.classList.add('open');\n header.classList.add('search-open');\n input.focus();\n\n document.body.addEventListener('click', closeOnNoneSearchClick);\n\n } else if (input.value) {\n location.href = url + '?q=' + encodeURIComponent(input.value);\n\n } else {\n search.classList.remove('open');\n header.classList.remove('search-open');\n input.blur();\n document.body.removeEventListener('click', closeOnNoneSearchClick);\n }\n });\n \n input.addEventListener('keydown', e => {\n if (e.which == 13 || e.keyCode == 13)\n button.click();\n });\n })\n\n});","document.addEventListener('DOMContentLoaded', () => {\n let statistics = document.querySelector('.c-statistics');\n if (!statistics) return;\n\n let _data;\n var canvasElems = statistics.querySelectorAll('canvas');\n var tableElems = statistics.querySelectorAll('table');\n var fromYearSelect = statistics.querySelector('select[name=fromYear]');\n var toYearSelect = statistics.querySelector('select[name=toYear]');\n\n let chartPromise = new Promise(resolve => window.requireScript('/scripts/chart.min.js', resolve));\n Promise.all([chartPromise, fetchData()]).then(initChartsWhenInView);\n\n fromYearSelect.addEventListener(\"change\", x => {\n if (fromYearSelect.value > toYearSelect.value)\n toYearSelect.value = fromYearSelect.value;\n fetchData();\n });\n\n toYearSelect.addEventListener(\"change\", x => {\n if (toYearSelect.value < fromYearSelect.value)\n fromYearSelect.value = toYearSelect.value;\n fetchData();\n });\n\n statistics.querySelectorAll('.show-table').forEach(elem => {\n elem.addEventListener('click', () => {\n elem.nextElementSibling.classList.add('active');\n elem.remove();\n });\n })\n\n function initCharts(canvas)\n {\n var title = canvas.getAttribute('data-title');\n var currData = _data.items.find(x => x.title === title);\n\n const colors = ['#003f66', '#0075be', 'green', 'orange', 'red', 'purple']\n\n canvas.chart = new Chart(canvas, {\n type: 'line',\n data: {\n labels: currData.labels,\n datasets: currData.data.map((x,i) => {\n return {\n label: x.label,\n data: x.data.map(x => x < 1 ? NaN : x),\n borderColor: colors[i],\n backgroundColor: colors[i]\n }\n })\n },\n options: {\n responsive: true,\n aspectRatio: 100 / 50,\n plugins: {\n legend: {\n position: 'top',\n },\n tooltip: {\n callbacks: {\n title: function(context) {\n let label = context[0].label;\n return label.charAt(0).toUpperCase() + label.slice(1);\n },\n label: function(context) {\n return context.dataset.label + ': '\n + (context.parsed.y > 999 ? (context.parsed.y / 1000).toFixed(3).toString() : context.parsed.y)\n + ' akfør';\n }\n }\n }\n },\n interaction: {\n mode: 'index',\n intersect: false\n },\n },\n });\n\n canvas.parentNode.classList.add('loaded');\n }\n\n let _observer;\n function reloadCharts()\n {\n // destroy all charts\n canvasElems.forEach(canvas => {\n if (!canvas.chart) return;\n canvas.chart.destroy();\n canvas.isInView = false;\n });\n\n // load charts again when in view\n initChartsWhenInView();\n }\n\n \n function initChartsWhenInView()\n {\n if ('IntersectionObserver' in window) {\n if (_observer) {\n canvasElems.forEach(function(elem) {\n _observer.unobserve(elem);\n });\n } else {\n _observer = new IntersectionObserver(function(entries, b) { \n for(let i = 0; i < entries.length; i++) {\n if(entries[i].intersectionRatio > 0 && !entries[i].target.isInView) {\n initCharts(entries[i].target);\n entries[i].target.isInView = true;\n }\n }\n }, { threshold: 0.6 });\n }\n \n canvasElems.forEach(function(elem) {\n _observer.observe(elem);\n }); \n } else {\n canvasElems.forEach(initCharts);\n }\n }\n\n function drawTables(data)\n {\n tableElems.forEach(tableElem => {\n\n var title = tableElem.getAttribute('data-title');\n var currData = _data.items.find(x => x.title === title);\n\n var addCol = x => {\n html.push('')\n html.push(x);\n html.push('')\n };\n \n var html = [];\n\n if (currData.title === 'Mánaðarlig ferðsla') {\n\n html.push('')\n addCol('')\n //currData.labels.forEach(addCol);\n currData.data.forEach(x => addCol(x.label))\n html.push('')\n \n currData.labels.forEach((x, i) => {\n html.push('');\n addCol(x);\n //x.data.forEach(addCol);\n \n currData.data.forEach((x2, i2) => {\n addCol(currData.data[i2].data[i])\n });\n \n html.push('')\n });\n\n } else {\n\n html.push('')\n addCol('')\n currData.labels.forEach(addCol);\n html.push('')\n \n currData.data.forEach(x => {\n html.push('')\n addCol(x.label);\n x.data.forEach(addCol);\n html.push('')\n });\n\n }\n\n\n\n tableElem.innerHTML = html.join('');\n\n });\n }\n\n function fetchData()\n {\n return fetch('/api/statistics/getsummary?fromYear=' + fromYearSelect.value + '&toYear=' + toYearSelect.value)\n .then(r => r.json())\n .then(d => {\n var isFirstFetch = _data === undefined;\n _data = d;\n if (!isFirstFetch)\n reloadCharts();\n\n drawTables(d);\n });\n }\n\n});","const easeInOutCubic = (x) => {\n return x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2;\n};\n\nfunction easeOutQuad(x) {\n return 1 - (1 - x) * (1 - x);\n}\n\nfunction easeInQuad(x) {\n return x * x;\n}\n\nfunction animateValue(\n obj,\n start,\n end,\n duration,\n decimals,\n decimalDelimiter,\n easingFunction\n) {\n let startTimestamp = null;\n\n const step = (timestamp) => {\n if (!startTimestamp) startTimestamp = timestamp;\n const progress = Math.min((timestamp - startTimestamp) / duration, 1);\n const easedProgress = easingFunction(progress); // Apply easing curve to progress\n const fullValue = easedProgress * (end - start) + start; // Use easedProgress instead of linear progress\n const roundedValue = fullValue.toFixed(decimals);\n const stringValue = String(roundedValue).replace(\".\", decimalDelimiter);\n obj.innerHTML = stringValue;\n if (progress < 1) {\n window.requestAnimationFrame(step);\n }\n };\n window.requestAnimationFrame(step);\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n const elements = document.querySelectorAll(\n `.c-tunnel-map [data-value-start]`\n );\n\n let observer = new IntersectionObserver((entries, observer) => {\n for (const entry of entries) {\n let target = entry.target;\n\n if (entry.isIntersecting) {\n animateValue(\n target,\n Number(target.getAttribute(\"data-value-start\")),\n Number(target.getAttribute(\"data-value-end\")),\n 1500,\n Number(target.getAttribute(\"data-value-decimals\")),\n target.getAttribute(\"data-value-decimal-delimiter\"),\n easeOutQuad\n )\n observer.unobserve(target)\n }\n }\n })\n\n\n elements.forEach((element) =>\n observer.observe(element)\n );\n})\n","const eventPointerCache = [];\nconst initialStepSize = 0.3;\nlet maxScale = 4;\nconst minScale = 1;\nconst allowPanningPast = false;\nlet highResImageLoading = false;\n\nfunction removeEventPointerFromCache(event) {\n // Remove this event from the target's cache\n const index = eventPointerCache.findIndex(\n (cachedEvent) => cachedEvent.pointerId === event.pointerId\n );\n eventPointerCache.splice(index, 1);\n}\n\nfunction updatePointerEventInCache(event) {\n const index = eventPointerCache.findIndex(\n (cachedEvent) => cachedEvent.pointerId === event.pointerId\n );\n eventPointerCache[index] = event;\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n /** @type HTMLElement */\n let tunnelMap = document.querySelector(\".c-tunnel-map\");\n /** @type HTMLElement */\n let mapContainer = tunnelMap?.querySelector(\".map-container\");\n /** @type HTMLElement */\n let mapContent = mapContainer?.querySelector(\".content\");\n /** @type HTMLElement */\n let rangeElement = tunnelMap?.querySelector(\"c-range\");\n /** @type HTMLElement */\n let mapContentDiv = mapContent?.querySelector(\"div\");\n /** @type HTMLImageElement */\n let mapImage = mapContentDiv?.querySelector(\"img\");\n /** @type HTMLElement */\n let header = tunnelMap?.querySelector(\"header\");\n\n if (\n !tunnelMap ||\n !mapContainer ||\n !mapContent ||\n !rangeElement ||\n !mapContentDiv ||\n !header\n )\n return;\n\n const mapHeight = mapContentDiv.clientHeight;\n const windowHeight = mapContainer.clientHeight;\n\n let startY = Math.max((mapHeight / 2 - windowHeight / 2) / 2, 18);\n let startX = 0;\n let startScale = 1;\n\n const headerMarginBottom = Number(\n getComputedStyle(header).marginBottom.replace(\"px\", \"\")\n );\n if (windowHeight <= 1120) {\n startY += startY;\n startX = -25;\n startScale = 1;\n // maxScale = 10\n }\n\n if (windowHeight <= 990) {\n startY +=\n Math.max((mapHeight / 2 - windowHeight / 2) / 2, 18) +\n headerMarginBottom / 2;\n }\n\n const panzoom = Panzoom(mapContent, {\n maxScale,\n minScale,\n startY,\n startX,\n startScale,\n excludeClass: \"pan-and-zoom-exclude\",\n pinchAndPan: true,\n roundPixels: false,\n step: initialStepSize,\n // noBind: true,\n touchAction: allowPanningPast ? \"pan-x pan-y\" : \"none\",\n disablePan: allowPanningPast,\n handleStartEvent: (event) => {\n if (!allowPanningPast) {\n event.preventDefault();\n event.stopPropagation();\n }\n const isPinch = eventPointerCache.length === 2;\n\n if (event.pointerType === \"mouse\" || isPinch) {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n });\n\n mapContent.addEventListener(\"panzoomchange\", (event) => {\n // console.log(event.detail) // => { x: 0, y: 0, scale: 1 }\n mapContainer.style.setProperty(\"--zoom-scale-value\", event.detail.scale);\n const percentage = scaleToPercentage(\n event.detail.scale,\n minScale,\n maxScale\n );\n rangeElement.dispatchEvent(\n new CustomEvent(\"c-change\", { detail: percentage })\n );\n\n panzoom.setOptions({\n step: calculateStepSize(event.detail.scale, minScale, maxScale),\n });\n\n // loadHighResMap()\n if (event.timeStamp > 1000 && highResImageLoading === false) {\n highResImageLoading = true;\n const highResSrc = mapImage.getAttribute(\"data-alt-src\");\n const highResImage = new Image(mapImage.width, mapImage.height);\n highResImage.src = highResSrc;\n\n highResImage.addEventListener(\"load\", () => {\n mapImage.src = highResSrc;\n });\n }\n\n // Show/hide header\n if (event.detail.scale != 1) {\n header.classList.add(\"hidden\");\n header.classList.remove(\"visible\");\n } else {\n header.classList.remove(\"hidden\");\n header.classList.add(\"visible\");\n }\n });\n\n mapContainer.addEventListener(\"wheel\", (event) => {\n if (!event.shiftKey) return;\n panzoom.zoomWithWheel(event);\n });\n\n rangeElement.addEventListener(\"c-changed\", (event) => {\n const scale = percentageToScale(event.detail, minScale, maxScale);\n panzoom.zoom(scale);\n });\n\n mapContent.addEventListener(\"pointerdown\", (event) => {\n // Add new pointer to eventCache\n eventPointerCache.push(event);\n\n updatePanzoom(event);\n\n // panzoom.handleDown(event);\n });\n\n mapContent.addEventListener(\"pointermove\", (event) => {\n // Find and update the pointer event in the cache\n updatePointerEventInCache(event);\n\n updatePanzoom(event);\n });\n\n mapContent.addEventListener(\"pointerup\", pointerUpHandler);\n\n const pointerUpHandler = (event) => {\n // Remove pointer from cache\n removeEventPointerFromCache(event);\n\n updatePanzoom(event);\n };\n\n const updatePanzoom = (event) => {\n const isPinch = eventPointerCache.length === 2;\n // console.log(eventPointerCache.length, event.pointerType);\n // tunnelMap.querySelector(\".large\").innerHTML = eventPointerCache.length;\n if (isPinch || event.pointerType === \"mouse\") {\n // mapContainer.style.backgroundColor = \"pink\";\n if (allowPanningPast) {\n panzoom.setOptions({\n disablePan: false,\n touchAction: \"none\",\n });\n }\n } else {\n // mapContainer.style.backgroundColor = \"blue\";\n if (allowPanningPast) {\n panzoom.setOptions({\n disablePan: true,\n touchAction: \"pan-x pan-y\",\n });\n }\n }\n };\n\n mapContent.onpointercancel = pointerUpHandler;\n mapContent.onpointerout = pointerUpHandler;\n mapContent.onpointerleave = pointerUpHandler;\n});\n\nconst percentageToScale = (percentage, min, max) => {\n // Ensure the percentage is between 0 and 100\n const clampedPercentage = Math.max(0, Math.min(100, percentage));\n // Convert the percentage to a value between 0 and 1\n const normalizedPercentage = clampedPercentage / 100;\n // Calculate the logarithmic scaling\n // Ensure min and max are positive and min < max\n min = Math.max(min, 0.0001); // Avoid log(0)\n max = Math.max(max, min + 0.0001); // Ensure max > min\n const logMin = Math.log(min);\n const logMax = Math.log(max);\n // Interpolate logarithmically\n return Math.exp(logMin + (logMax - logMin) * normalizedPercentage);\n};\n\nfunction scaleToPercentage(scale, min, max) {\n // Ensure the value is between min and max\n const clampedValue = Math.max(min, Math.min(max, scale));\n // Ensure min and max are positive and min < max\n min = Math.max(min, 0.0001); // Avoid log(0) and ensure positive\n max = Math.max(max, min + 0.0001); // Ensure max > min and positive\n const logMin = Math.log(min);\n const logMax = Math.log(max);\n const logValue = Math.log(clampedValue);\n // Calculate the percentage logarithmically\n return ((logValue - logMin) / (logMax - logMin)) * 100;\n}\nfunction calculateStepSize(currentScale, minScale, maxScale) {\n const initialStepSize = 0.3;\n // Ensure currentScale is within the new bounds\n currentScale = Math.max(minScale, Math.min(maxScale, currentScale));\n \n // Adjust the factor as needed to get the desired zooming speed.\n // This formula is designed to be more responsive to changes in the zoom level.\n const baseIncrease = 15; // Base increase factor, adjust based on testing.\n // Normalize the currentScale to a 0-1 scale based on minScale and maxScale for consistency\n const normalizedZoomLevel = (currentScale - minScale) / (maxScale - minScale);\n const adjustmentFactor = 1 + (normalizedZoomLevel * baseIncrease / 10); // Adjust the divisor for fine-tuning\n \n return initialStepSize * adjustmentFactor;\n}","class Popup {\n isOpen = false;\n element;\n popupElement;\n originalBodyOverflow;\n body;\n\n constructor(element, name = ``) {\n // Close when clicking on the side of element\n element.addEventListener(`click`, async (event) => {\n if (event.target === this.popupElement) {\n await this.close();\n }\n });\n\n if (name !== ``) {\n document.addEventListener(`popup-${name}-close`, () => this.close());\n }\n\n this.body = document.querySelector(`body`);\n this.originalBodyOverflow = this.body.style.overflow;\n this.element = element;\n }\n\n async open(html) {\n if (this.isOpen) {\n await this.close();\n }\n this.isOpen = true;\n this.body.style.overflow = `hidden`;\n const popupElement = html();\n popupElement.setAttribute(`role`, `dialog`);\n\n // Add ESC key event listener\n const removePopupKey = async (event) => {\n const closePopups = popupElement.querySelectorAll(`[data-popup-close]`);\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.key === `Esc` || event.key === `Escape`) {\n closePopups.forEach((popup) =>\n // eslint-disable-next-line no-use-before-define\n popup.removeEventListener(`click`, removePopupClick)\n );\n document.removeEventListener(`keydown`, removePopupKey);\n\n await this.close();\n }\n };\n\n document.addEventListener(`keydown`, removePopupKey);\n\n // Add close buttons\n const removePopupClick = (event) => {\n event.target.removeEventListener(`click`, removePopupClick);\n document.removeEventListener(`keydown`, removePopupKey);\n this.close();\n };\n const closePopups = popupElement.querySelectorAll(`[data-popup-close]`);\n closePopups.forEach((popup) =>\n popup.addEventListener(`click`, removePopupClick)\n );\n\n this.popupElement = popupElement;\n\n this.element.appendChild(this.popupElement);\n\n const focusElement = this.popupElement.querySelector(\n `[data-popup-auto-focus]`\n );\n\n if (focusElement) {\n focusElement.focus();\n } else {\n const focusable = popupElement.querySelector(\n `a,\n button,\n input,\n textarea,\n select,\n details,\n [tabindex]:not([tabindex=\"-1\"]`\n );\n if (focusable) focusable.focus();\n }\n }\n\n close(time = 500) {\n return new Promise((resolve) => {\n this.popupElement.classList.add(`closed`);\n this.isOpen = false;\n this.body.style.overflow = this.originalBodyOverflow;\n setTimeout(() => {\n if (this.popupElement) {\n if (!this.isOpen) {\n this.element.removeChild(this.popupElement);\n }\n this.popupElement.classList.remove(`closed`);\n }\n\n resolve(this.popupElement);\n }, time);\n });\n }\n}\n\nconst prefix = `data-popup`;\n\nconst generateHtml = (popup, activator) => {\n const popupElement = document.createElement(`div`);\n popupElement.classList.add(`c-popup`);\n\n const container = document.createElement(`div`);\n container.classList.add(`wrapper`);\n\n const templateSelector = activator.getAttribute(`${prefix}-open`);\n let closestSelector = activator.getAttribute(`${prefix}-closest`);\n\n closestSelector = closestSelector ? closestSelector : `body`;\n\n const grandParent = activator.closest(closestSelector);\n const template =\n grandParent.querySelector(templateSelector);\n\n // Get the prop keys\n const propKeys = [\n ...template.content.querySelectorAll(`[${prefix}-prop]`),\n ].map((element) => element.getAttribute(`${prefix}-prop`));\n\n // Get the prop values and create key/value pairs\n const props = propKeys\n .map((prop) => [prop, activator.getAttribute(`${prefix}-prop-${prop}`)])\n .filter((prop) => prop[1] !== null);\n\n // Prettier-ignore\n // eslint-disable-next-line\n container.innerHTML = /*html*/ `\n
\n ${template.innerHTML}\n
\n `;\n\n // Apply the props\n props.forEach(([key, value]) => {\n const elements = container.querySelectorAll(`[${prefix}-prop=\"${key}\"]`);\n elements.forEach((element) => (element.innerHTML = value));\n });\n\n const closePopupElements = container.querySelectorAll(`[${prefix}-close]`);\n closePopupElements.forEach((element) =>\n element.addEventListener(`click`, () => popup.close())\n );\n\n popupElement.appendChild(container);\n\n return () => popupElement;\n};\n\nconst templatePopup = (element) => {\n const pageElement = document.querySelector(`body`);\n\n element.addEventListener(`click`, () => {\n const popup = new Popup(pageElement);\n popup.open(generateHtml(popup, element));\n });\n};\n\ndocument.addEventListener('DOMContentLoaded', () => {\n let popups = document.querySelectorAll('[data-popup-open]');\n if (!popups.length) return;\n popups.forEach(templatePopup)\n})","class cRange extends HTMLElement {\n rangeElement;\n plusButton;\n minusButton;\n outputElement;\n\n // eslint-disable-next-line no-useless-constructor\n constructor() {\n super();\n }\n\n connectedCallback() {\n this.waitForDOM().then(() => {\n this.rangeElement = this.querySelector(`input[type=\"range\"]`);\n this.plusButton = this.querySelector(`button.zoom-in`);\n this.minusButton = this.querySelector(`button.zoom-out`);\n this.outputElement = this.querySelector(`output`);\n\n this.updateValue();\n this.rangeElement.addEventListener(`input`, () => {\n this.updateValue();\n });\n\n this.plusButton.addEventListener(\"click\", () => {\n const value = Number(this.rangeElement.value);\n this.rangeElement.value = value + 10;\n this.updateValue();\n });\n this.minusButton.addEventListener(\"click\", () => {\n const value = Number(this.rangeElement.value);\n this.rangeElement.value = value - 10;\n this.updateValue();\n });\n });\n\n this.addEventListener(\"c-change\", (event) => {\n this.rangeElement.value = event.detail;\n this.updateValue(true);\n });\n }\n\n updateValue(skipDispatchingEvent = false) {\n this.style.setProperty(\"--value\", `${this.rangeElement.value}%`);\n this.outputElement.innerText = this.rangeElement.value;\n\n if (!skipDispatchingEvent) {\n this.dispatchEvent(\n new CustomEvent(\"c-changed\", { detail: this.rangeElement.value })\n );\n }\n }\n\n waitForDOM() {\n return new Promise((resolve) => {\n if (this.firstElementChild) {\n resolve(true);\n } else {\n const mutationObserver = new MutationObserver(\n (_mutations, observer) => {\n if (this.firstElementChild) {\n observer.disconnect();\n resolve(true);\n }\n }\n );\n\n mutationObserver.observe(this, { childList: true });\n }\n });\n }\n}\ncustomElements.define(`c-range`, cRange);\n","class cScrollHelper extends HTMLElement {\n /** @type {HTMLButtonElement} */\n upButton;\n /** @type {HTMLButtonElement} */\n downButton;\n /** @type {HTMLElement} */\n targetElement;\n\n // eslint-disable-next-line no-useless-constructor\n constructor() {\n super();\n }\n\n connectedCallback() {\n this.targetElement = this.closest(this.getAttribute(\"target\"))\n this.waitForDOM().then(() => {\n this.upButton = this.querySelector(`button.up`);\n this.downButton = this.querySelector(`button.down`);\n\n this.upButton.addEventListener(\"click\", () => {\n window.scrollBy(0, this.targetElement.getBoundingClientRect().top - this.targetElement.clientHeight)\n })\n\n this.downButton.addEventListener(\"click\", () => {\n window.scrollBy(0, this.targetElement.getBoundingClientRect().bottom)\n })\n });\n }\n\n waitForDOM() {\n return new Promise((resolve) => {\n if (this.firstElementChild) {\n resolve(true);\n } else {\n const mutationObserver = new MutationObserver(\n (_mutations, observer) => {\n if (this.firstElementChild) {\n observer.disconnect();\n resolve(true);\n }\n }\n );\n\n mutationObserver.observe(this, { childList: true });\n }\n });\n }\n}\ncustomElements.define(`c-scroll-helper`, cScrollHelper);\n","document.addEventListener('DOMContentLoaded', () => {\n let components = document.querySelectorAll('.c-special-tunnel-header');\n if (!components) return;\n\n components.forEach(component => {\n let audioWrapper = component.querySelector(\".audio-wrapper\")\n let audioElement = audioWrapper.querySelector(\"audio\")\n audioWrapper.addEventListener(\"click\", () => {\n if (audioElement.paused) {\n audioElement.play()\n } else {\n audioElement.pause()\n }\n })\n\n audioElement.addEventListener(\"play\", () => {\n audioWrapper.setAttribute(\"aria-pressed\", \"true\")\n })\n\n audioElement.addEventListener(\"pause\", () => {\n audioWrapper.setAttribute(\"aria-pressed\", \"false\")\n })\n })\n});","document.addEventListener('DOMContentLoaded', () => {\n let bodyTexts = document.querySelectorAll('.c-special-tunnel-body-text');\n if (!bodyTexts) return;\n\n bodyTexts.forEach(bodytext => {\n /** @type {HTMLElement} */\n let content = bodytext.querySelector(\".content\")\n let readMoreButton = bodytext.querySelector(\"button.read-more\")\n if (!content || !readMoreButton) return\n\n readMoreButton.addEventListener(\"click\", () => {\n if (!readMoreButton.hasAttribute(\"data-opened\")) { \n content.classList.remove(\"hidden\")\n content.style.setProperty(\"--height\", content.scrollHeight + \"px\")\n readMoreButton.innerHTML = \"Collapse\";\n readMoreButton.setAttribute(\"data-opened\", \"\")\n readMoreButton.remove()\n } else {\n content.classList.add(\"hidden\")\n content.style.removeProperty(\"--height\")\n readMoreButton.innerHTML = \"Read more\";\n readMoreButton.removeAttribute(\"data-opened\")\n }\n })\n })\n});","document.addEventListener('DOMContentLoaded', () => {\n let components = document.querySelectorAll('.c-special-tunnel-navigation');\n if (!components) return;\n let options = {\n // root: \n rootMargin: \"0px\",\n threshold: 0.1\n }\n\n components.forEach(component => {\n let links = Array.from(component.querySelectorAll(\"a\"))\n\n /** @type {IntersectionObserverCallback} */\n let callback = (entries, observer) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n let link = links.find(link => link.href.includes(\"#\" + entry.target.id))\n link.setAttribute(\"aria-current\", \"location\")\n } else {\n let link = links.find(link => link.href.includes(\"#\" + entry.target.id))\n link.removeAttribute(\"aria-current\")\n }\n })\n }\n let observer = new IntersectionObserver(callback, options)\n\n let sections = document.querySelectorAll(links.map(link => new URL(link.href).hash).join(\", \"))\n sections.forEach(section => observer.observe(section))\n })\n});"]}