{"version":3,"sources":["novicell.cookieinfo.js","salling.page-box.js","salling.mobile-navigation.js","novicell.modal.js","novicell.scroll-to-top.js","salling.usp-list.js","salling.footer-menu.js","salling.videobanner.js","salling.iframelink.js","salling.banner.js","salling.product-list.js","salling.site-navigation.js","salling.site-header.js","salling.overlay.js","salling.breadcrumb.js","salling.accordion.js","salling.giftcard-list.js","salling.site-announcement.js","master.js"],"names":["getCookie","cname","name","ca","document","cookie","split","i","length","c","charAt","substring","indexOf","setCookie","cvalue","exdays","d","Date","setTime","getTime","expires","toUTCString","extend","a","b","key","hasOwnProperty","getMousePos","e","posx","posy","window","event","pageX","pageY","clientX","clientY","body","scrollLeft","documentElement","scrollTop","x","y","TiltFx","el","options","this","DOM","_init","initMenuItemEventListeners","itemTrigger","querySelectorAll","itemTriggerClose","forEach","addEventListener","preventDefault","listItem","parentElement","list","closest","scrollTo","classList","toggle","openList","listActive","listItemActive","remove","item","querySelector","getMobileMenuItems","element","getElementById","id","getAttribute","xhr","XMLHttpRequest","onreadystatechange","readyState","status","innerHTML","responseText","mobileMenuLoaded","console","log","url","open","send","initMobileMenu","novicell","cookieInfo","init","cookieClose","cookieOpen","setTimeout","add","showCookie","hideCookie","modal","$","on","modalContentId","attr","modalContent","html","modalId","modalExtraClass","closeTxt","existingModal","append","$generalModal","hasAttribute","setAttribute","onkeyup","evt","keyCode","button","prevScrollpos","pageYOffset","viewportHeight","innerHeight","scrollToTop","animate","collapse","currentScrollPos","jQuery","salling","uspList","initSlider","navigate","prev","items","amount","counter","box","setInterval","footerMenu","content","anime","tilter","tilterElements","prototype","movement","imgWrapper","translation","z","rotation","reverseAnimation","duration","easing","elasticity","lines","caption","shine","animatable","overlay","_initEvents","self","mouseenterFn","mousemoveFn","ev","requestAnimationFrame","_layout","mouseleaveFn","undefined","targets","scaleX","scaleY","scaleZ","translateX","translateY","translateZ","rotateX","rotateY","rotateZ","mousepos","docScrolls","left","top","bounds","getBoundingClientRect","relmousepos","t","r","setRange","obj","k","transforms","width","height","style","WebkitTransform","transform","Vimeo","Promise","handler","videobanner","videobanners","onclick","currentEl","stopPropagation","type","contains","parentNode","playVideo","videoId","videoElement","videoElementId","triggerBtn","trigger","videoModal","modalVideoContainer","paddingTop","iframeElement","createElement","appendChild","iframelink","iframelinks","btnmodal","openReservation","itemElement","itemElementId","itemElementUrl","dataset","itemModal","modalItemContainer","firstChild","removeChild","loadingDiv","onload","previousSibling","Flickity","banner","sliderElements","Array","call","children","flkty","wrapAround","pageDots","prevNextButtons","autoPlay","touchVerticalScroll","$element","thisBannerHolder","removeClass","prefix","selectedId","selectedIndex","addClass","previous","next","flickityArrow","productList","groupCells","contain","cellAlign","initialIndex","arrowShape","watchCSS","createEvent","initEvent","dispatchEvent","siteNavigation","openedItem","hoverTimeout","elem","close","dropdown","getElementsByClassName","closeButton","currentDropdown","clearTimeout","siteHeader","announcement","elHeight","offsetHeight","lastScrollTop","isCollapsed","st","Math","abs","clientHeight","show","hide","mobileNavigation","menuOpen","searchOpen","header","mobileNavigationTriggers","mobileNavigationSearchTriggers","innerWidth","mobileWidth","breadcrumb","breadcrumbItems","initMobileBreadcrumb","breadcrumbExpand","index","bindExpand","shortenBreadcrumbs","breadcrumbShortenItems","listWidth","offsetWidth","itemsWidth","getItemsWidth","biggestNum","elementToShorten","textContentCount","textContent","amoutToTruncate","ceil","truncate","tries","shortenIndex","shortenElement","textToReplace","defaultTitle","limit","after","innerText","trim","slice","accordion","rows","currentTarget","row","giftcardList","percentPosition","siteAnnouncement","showAnnouncement","lazySizes","x0","x1","y1","x2","y2","x3","NodeList","svg4everybody","scrollStarted","scrollLooper","loader","checkElems","clearInterval"],"mappings":"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","file":"master.min.js","sourcesContent":["'use strict';\r\n/**\r\n* @desc Cookie info dialog plugin\r\n* @author Danni Larsen - DLA & Michael Sølvsteen - MSL\r\n* @example novicell.cookieInfo.init();\r\n* @requires none\r\n*/\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.cookieInfo = novicell.cookieInfo || function(){\r\n var body = document.querySelector(\"body\");\r\n\r\n function init() {\r\n var cookieInfo = document.querySelector('#cookie-info');\r\n var cookieClose = document.querySelector('#cookie-info-close');\r\n var cookieOpen = document.querySelector('#cookie-info-open');\r\n if (cookieInfo) {\r\n // If we have displayed it once, set cookie for one year\r\n if (getCookie(\"cookieAccept\") === \"displayed\") {\r\n setCookie(\"cookieAccept\", \"accepted\", 365);\r\n }\r\n\r\n // Check if the cookie info has been displayed, if not set session cookie\r\n if (getCookie(\"cookieAccept\") === \"\") {\r\n setCookie(\"cookieAccept\", \"displayed\");\r\n\r\n setTimeout(function() {\r\n body.classList.add('cookie-info-show');\r\n }, 1000);\r\n }\r\n\r\n // Button eventlisteners\r\n if(cookieOpen) {\r\n cookieOpen.addEventListener('click', function(e) {\r\n showCookie();\r\n });\r\n }\r\n\r\n if(cookieClose) {\r\n cookieClose.addEventListener('click', function(e) {\r\n hideCookie();\r\n setCookie(\"cookieAccept\", \"accepted\", 365);\r\n });\r\n }\r\n }\r\n }\r\n\r\n // Functions for opening an closing the cookie-info\r\n function showCookie(){\r\n body.classList.add('cookie-info-show');\r\n }\r\n\r\n function hideCookie(){\r\n body.classList.remove('cookie-info-show');\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n}();\r\n\r\n/* Cookie helper functions\r\n*******************************/\r\n\r\n// Get cookie\r\nfunction getCookie(cname) {\r\n var name = cname + \"=\";\r\n var ca = document.cookie.split(';');\r\n for(var i=0; i div');\r\n this._initEvents();\r\n};\r\n\r\n/**\r\n * Init/Bind events.\r\n */\r\nTiltFx.prototype._initEvents = function () {\r\n var self = this;\r\n\r\n this.mouseenterFn = function () {\r\n for (var key in self.DOM.animatable) {\r\n anime.remove(self.DOM.animatable[key]);\r\n }\r\n };\r\n\r\n this.mousemoveFn = function (ev) {\r\n requestAnimationFrame(function () { self._layout(ev); });\r\n };\r\n\r\n this.mouseleaveFn = function (ev) {\r\n requestAnimationFrame(function () {\r\n for (var key in self.DOM.animatable) {\r\n if (self.options.movement[key] == undefined) { continue; }\r\n anime({\r\n targets: self.DOM.animatable[key],\r\n duration: self.options.movement[key].reverseAnimation != undefined ? self.options.movement[key].reverseAnimation.duration || 0 : 1,\r\n easing: self.options.movement[key].reverseAnimation != undefined ? self.options.movement[key].reverseAnimation.easing || 'linear' : 'linear',\r\n elasticity: self.options.movement[key].reverseAnimation != undefined ? self.options.movement[key].reverseAnimation.elasticity || null : null,\r\n scaleX: 1,\r\n scaleY: 1,\r\n scaleZ: 1,\r\n translateX: 0,\r\n translateY: 0,\r\n translateZ: 0,\r\n rotateX: 0,\r\n rotateY: 0,\r\n rotateZ: 0\r\n });\r\n }\r\n });\r\n };\r\n\r\n this.DOM.el.addEventListener('mousemove', this.mousemoveFn);\r\n this.DOM.el.addEventListener('mouseleave', this.mouseleaveFn);\r\n this.DOM.el.addEventListener('mouseenter', this.mouseenterFn);\r\n};\r\n\r\nTiltFx.prototype._layout = function (ev) {\r\n // Mouse position relative to the document.\r\n var mousepos = getMousePos(ev),\r\n // Document scrolls.\r\n docScrolls = { left: document.body.scrollLeft + document.documentElement.scrollLeft, top: document.body.scrollTop + document.documentElement.scrollTop },\r\n bounds = this.DOM.el.getBoundingClientRect(),\r\n // Mouse position relative to the main element (this.DOM.el).\r\n relmousepos = { x: mousepos.x - bounds.left - docScrolls.left, y: mousepos.y - bounds.top - docScrolls.top };\r\n\r\n // Movement settings for the animatable elements.\r\n for (var key in this.DOM.animatable) {\r\n if (this.DOM.animatable[key] == undefined || this.options.movement[key] == undefined) {\r\n continue;\r\n }\r\n var t = this.options.movement[key] != undefined ? this.options.movement[key].translation || { x: 0, y: 0, z: 0 } : { x: 0, y: 0, z: 0 },\r\n r = this.options.movement[key] != undefined ? this.options.movement[key].rotation || { x: 0, y: 0, z: 0 } : { x: 0, y: 0, z: 0 },\r\n setRange = function (obj) {\r\n for (var k in obj) {\r\n if (obj[k] == undefined) {\r\n obj[k] = [0, 0];\r\n }\r\n else if (typeof obj[k] === 'number') {\r\n obj[k] = [-1 * obj[k], obj[k]];\r\n }\r\n }\r\n };\r\n\r\n setRange(t);\r\n setRange(r);\r\n\r\n var transforms = {\r\n translation: {\r\n x: (t.x[1] - t.x[0]) / bounds.width * relmousepos.x + t.x[0],\r\n y: (t.y[1] - t.y[0]) / bounds.height * relmousepos.y + t.y[0],\r\n z: (t.z[1] - t.z[0]) / bounds.height * relmousepos.y + t.z[0],\r\n },\r\n rotation: {\r\n x: (r.x[1] - r.x[0]) / bounds.height * relmousepos.y + r.x[0],\r\n y: (r.y[1] - r.y[0]) / bounds.width * relmousepos.x + r.y[0],\r\n z: (r.z[1] - r.z[0]) / bounds.width * relmousepos.x + r.z[0]\r\n }\r\n };\r\n\r\n this.DOM.animatable[key].style.WebkitTransform = this.DOM.animatable[key].style.transform = 'translateX(' + transforms.translation.x + 'px) translateY(' + transforms.translation.y + 'px) translateZ(' + transforms.translation.z + 'px) rotateX(' + transforms.rotation.x + 'deg) rotateY(' + transforms.rotation.y + 'deg) rotateZ(' + transforms.rotation.z + 'deg)';\r\n }\r\n};\r\n\r\nwindow.TiltFx = TiltFx;\r\n\r\n// })(window);","'use strict';\r\n\r\nvar salling = salling || {};\r\nvar mobileMenuLoaded = false;\r\nsalling.mobileNavigation = salling.mobileNavigation || {};\r\n\r\nsalling.mobileNavigation.init = function () {\r\n\r\n var body = document.querySelector('body');\r\n var menuOpen = false;\r\n var searchOpen = false;\r\n var header = document.querySelector('#js-site-header');\r\n var mobileNavigationTriggers = document.querySelectorAll('.js-mobile-navigation-trigger');\r\n var mobileNavigationSearchTriggers = document.querySelectorAll('.js-mobile-navigation-search-trigger');\r\n var mobileNavigation = document.querySelector('#js-navigation');\r\n\r\n \r\n if (window.innerWidth <= salling.mobileWidth) {\r\n initMobileMenu();\r\n }\r\n\r\n mobileNavigationSearchTriggers.forEach(function (e) {\r\n e.addEventListener('click', function (event) {\r\n searchOpen = !searchOpen;\r\n if(searchOpen) {\r\n header.classList.add('site-header--search-open');\r\n } else {\r\n header.classList.remove('site-header--search-open');\r\n }\r\n\r\n });\r\n });\r\n mobileNavigationTriggers.forEach(function (e) {\r\n e.addEventListener('click', function (event) {\r\n initMobileMenu();\r\n menuOpen = !menuOpen;\r\n\r\n if(menuOpen) {\r\n header.classList.add('site-header--mobile-open');\r\n mobileNavigation.classList.add('site-header-bottom__inner--mobile-open');\r\n document.body.classList.add('body--mobile-fixed');\r\n } else {\r\n header.classList.remove('site-header--mobile-open');\r\n mobileNavigation.classList.remove('site-header-bottom__inner--mobile-open');\r\n document.body.classList.remove('body--mobile-fixed');\r\n salling.overlay.hide();\r\n }\r\n\r\n });\r\n });\r\n\r\n var loginIcon = document.querySelector('.login-button__icon');\r\n loginIcon.addEventListener('click', function() {\r\n menuOpen = false;\r\n header.classList.remove('site-header--mobile-open');\r\n mobileNavigation.classList.remove('site-header-bottom__inner--mobile-open');\r\n document.body.classList.remove('body--mobile-fixed');\r\n salling.overlay.hide();\r\n });\r\n};\r\n\r\n\r\nfunction initMenuItemEventListeners() {\r\n var itemTrigger = document.querySelectorAll('.js-mobile-nav-trigger');\r\n var itemTriggerClose = document.querySelectorAll('.js-mobile-nav-trigger-close');\r\n\r\n itemTrigger.forEach(function (el) {\r\n el.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n\r\n var listItem = el.parentElement;\r\n var list = listItem.closest('.mobile-navigation-list:not(.mobile-navigation-list--sub-list)');\r\n \r\n list.scrollTo(0, 0);\r\n list.classList.toggle('mobile-navigation-list--child-list-active');\r\n listItem.classList.toggle('mobile-navigation-list-item--active');\r\n\r\n openList(listItem);\r\n });\r\n });\r\n\r\n itemTriggerClose.forEach(function (el) {\r\n el.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n\r\n var listActive = el.closest('.mobile-navigation-list--active');\r\n var listItemActive = el.closest('.mobile-navigation-list-item--active');\r\n var listParentActive = listActive.closest('.mobile-navigation-list--child-list-active');\r\n\r\n listParentActive.classList.remove('mobile-navigation-list--child-list-active');\r\n listActive.classList.remove('mobile-navigation-list--active');\r\n listItemActive.classList.remove('mobile-navigation-list-item--active');\r\n\r\n });\r\n });\r\n}\r\n\r\nfunction openList(item) {\r\n var list = item.querySelector('.mobile-navigation-list');\r\n\r\n if (list != null) {\r\n list.classList.toggle('mobile-navigation-list--active');\r\n }\r\n}\r\n\r\nfunction getMobileMenuItems() {\r\n var element = document.getElementById('js-mobile-navigation-list');\r\n var id = element.getAttribute('data-id');\r\n\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState == 4) {\r\n\r\n // Check the response code\r\n if (xhr.status == 200 || xhr.status == 201) {\r\n element.innerHTML = xhr.responseText;\r\n initMenuItemEventListeners();\r\n mobileMenuLoaded = true;\r\n }\r\n else {\r\n console.log('error');\r\n }\r\n }\r\n };\r\n var url = \"/sitenavigation/rendermobilenavigationlist/?pageid=\" + id;\r\n\r\n xhr.open(\"GET\", url, true);\r\n xhr.send();\r\n}\r\n\r\nfunction initMobileMenu() {\r\n //Set rules for when it should load mobilemenuitems\r\n if (!mobileMenuLoaded) {\r\n getMobileMenuItems();\r\n }\r\n}\r\n","\r\n\r\n'use strict';\r\n/*\r\n* Component: Video Modal\r\n*/\r\n\r\nvar novicell = novicell || {};\r\n\r\n\r\nnovicell.modal = novicell.modal || function () {\r\n\r\n\r\n function init() {\r\n\r\n $('body').on('click', '.modal-opener', function (e) {\r\n e.preventDefault();\r\n var modalContentId = $(this).attr('data-content-id');\r\n var modalContent = $('#'+modalContentId).html();\r\n var width = $(this).attr('data-width') || 640;\r\n var height = $(this).attr('data-height') || 360;\r\n var modalId = $(this).attr('data-modal-id') || 'modal-general';\r\n var modalExtraClass = $(this).attr('data-modal-class') || \"\";\r\n var closeTxt = document.querySelector('html').getAttribute('data-close-txt');\r\n var existingModal = $('#'+modalId);\r\n\r\n var allowfullscreen = $(this).attr('data-video-fullscreen');\r\n\r\n if (existingModal != null && !existingModal.length) {\r\n // Make the modal\r\n modalContent = '' +\r\n '
'+\r\n '
' +\r\n '
'+closeTxt+'
' +\r\n '
' +\r\n modalContent +\r\n '
' +\r\n '
' +\r\n '
'+\r\n '';\r\n $('body').append(modalContent);\r\n }\r\n\r\n var $generalModal = $('#'+modalId);\r\n\r\n $generalModal.modal();\r\n if(!$generalModal[0].hasAttribute('data-was-shown'))\r\n {\r\n $generalModal[0].setAttribute('data-was-shown', '1');\r\n\r\n document.onkeyup = function(evt) {\r\n //close video if escape key is pressed\r\n evt = evt || window.event;\r\n if (evt.keyCode == 27) {\r\n $($generalModal).modal('hide');\r\n }\r\n };\r\n }\r\n\r\n\r\n if(modalExtraClass == 'modal--video'){\r\n $generalModal.on('hidden.bs.modal', function (e) {\r\n this.remove();//remove modal on close, because a playing video in the iframe will keep playing otherwise\r\n });\r\n }\r\n\r\n });\r\n\r\n\r\n\r\n\r\n\r\n }\r\n\r\n return {\r\n init: init\r\n\r\n };\r\n\r\n}();\r\n","\r\n\r\n'use strict';\r\n/*\r\n* Component: Scroll to top\r\n*/\r\nvar novicell = novicell || {};\r\nvar button = document.querySelector('.scroll-to-top__button');\r\nvar prevScrollpos = window.pageYOffset;\r\nvar viewportHeight = window.innerHeight;\r\n\r\n\r\nnovicell.scrollToTop = novicell.scrollToTop || function ($) {\r\n function init() {\r\n $(button).on('click', function(event) {\r\n event.preventDefault();\r\n\r\n $('html, body').animate({\r\n scrollTop: 0\r\n }, 800);\r\n })\r\n }\r\n\r\n function collapse() {\r\n var currentScrollPos = window.pageYOffset;\r\n\r\n if (prevScrollpos > currentScrollPos && currentScrollPos > viewportHeight) {\r\n button.classList.remove('scroll-to-top__button--collapsed');\r\n } else {\r\n button.classList.add('scroll-to-top__button--collapsed');\r\n }\r\n prevScrollpos = currentScrollPos;\r\n }\r\n\r\n return {\r\n init: init,\r\n collapse: collapse\r\n };\r\n}(jQuery);","'use strict';\r\n\r\nvar salling = salling || {};\r\n\r\nsalling.uspList = salling.uspList || function (window) {\r\n\r\n function initSlider() {\r\n if (!document.querySelector ||\r\n !('classList' in document.body)) {\r\n return false;\r\n }\r\n // Read necessary elements from the DOM once\r\n var box = document.querySelector('.usp-carousel');\r\n\r\n if (!box) {\r\n return;\r\n }\r\n\r\n var counter = 0;\r\n var items = box.querySelectorAll('.usp-carousel__item');\r\n var amount = items.length - 1;\r\n box.classList.add('usp-carousel--active');\r\n\r\n\r\n // navigate through the carousel\r\n function navigate() {\r\n // hide the old current list item\r\n var prev = items[amount];\r\n if (counter > 0) {\r\n prev = items[counter - 1];\r\n }\r\n prev.classList.remove('usp-carousel__item--current');\r\n\r\n // set new current element \r\n // and add CSS class\r\n var current = items[counter];\r\n current.classList.add('usp-carousel__item--current');\r\n }\r\n // show the first element \r\n // (when direction is 0 counter doesn't change)\r\n navigate(counter);\r\n\r\n setInterval(function () {\r\n counter++;\r\n if (counter > amount) {\r\n counter = 0;\r\n }\r\n navigate(counter);\r\n }, 5000);\r\n }\r\n\r\n return {\r\n initSlider: initSlider\r\n };\r\n\r\n}(window);\r\n","\r\n'use strict';\r\n\r\nvar salling = salling || {};\r\n\r\n\r\nsalling.footerMenu = salling.footerMenu || function ($) {\r\n\r\n function init() {\r\n var footerItem = document.querySelectorAll(\".footer__item\");\r\n footerItem.forEach(function (item) {\r\n\r\n var toggle = item.querySelector(\".footer__column-title\");\r\n var content = item.querySelector(\".footer__content\");\r\n\r\n toggle.addEventListener(\"click\", function () { \r\n content.classList.toggle(\"footer__content--expanded\");\r\n toggle.classList.toggle(\"footer__column-title--active\");\r\n });\r\n });\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n}(jQuery);","\r\n'use strict';\r\n\r\nvar salling = salling || {};\r\nvar Vimeo = Vimeo || {};\r\nvar Promise = Promise || {};\r\nvar handler = handler || {};\r\n\r\nsalling.videobanner = salling.videobanner || function ($) {\r\n\r\n function init() {\r\n\r\n var videobanners = document.querySelectorAll('.videobanner__item, .banner__video');\r\n if(videobanners.length){\r\n videobanners.forEach(\r\n function (el) {\r\n el.onclick = function (e) {\r\n var currentEl = this;\r\n \r\n e.stopPropagation();\r\n var type=\"\";\r\n if(currentEl.classList.contains('videobanner__item')){\r\n type=\"videobanner\";\r\n }\r\n else if(currentEl.classList.contains('banner__video')){\r\n type=\"banner\";\r\n while(!currentEl.classList.contains('banner__item')) // uppercase in HTML, lower in XML\r\n {\r\n currentEl=currentEl.parentNode;\r\n }\r\n }\r\n playVideo(currentEl,type);\r\n };\r\n }\r\n );\r\n }\r\n }\r\n function playVideo(el, type) {\r\n console.log(el);\r\n //get video ID from HTML\r\n var videoId = el.getAttribute('data-videoid');\r\n\r\n //HTML element that should hold the video\r\n var videoElement = el.querySelector('.'+type+'__video-modal-container');\r\n var videoElementId = videoElement.getAttribute('id');\r\n //generate vimeo player (results in iframe)\r\n\r\n var triggerBtn = document.querySelector('.'+type+'__modal-opener[data-content-id=\"'+videoElementId+'\"]');\r\n $(triggerBtn).trigger('click');\r\n //should work but doesn't, look at it later...\r\n //var eventClick3 = new Event('click');\r\n //triggerBtn.dispatchEvent(eventClick3);\r\n var modalId = 'modal-general-'+videoElementId;\r\n var videoModal = document.getElementById(modalId);\r\n var modalVideoContainer = videoModal.querySelector('#' + videoElementId + '-a');\r\n\r\n var videoElementHolderPaddingTop = ((9 / 16) * 100) + \"%\";\r\n videoModal.querySelector('.' + type + '__aspect-ratio').style.paddingTop = videoElementHolderPaddingTop;\r\n\r\n var iframeElement = document.createElement('iframe');\r\n iframeElement.setAttribute('frameborder', '0');\r\n iframeElement.setAttribute('allowfullscreen','allowfullscreen');\r\n iframeElement.setAttribute('src', 'https://www.youtube.com/embed/' + videoId + \"?autoplay=1&rel=0\");\r\n iframeElement.classList.add(type + '__video-iframe');\r\n \r\n modalVideoContainer.appendChild(iframeElement);\r\n }\r\n\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n}(jQuery);\r\n","'use strict';\r\n\r\nvar salling = salling || {};\r\nvar Promise = Promise || {};\r\nvar handler = handler || {};\r\n\r\nsalling.iframelink = salling.iframelink || function ($) {\r\n\r\n function init() {\r\n var iframelinks = document.querySelectorAll('.iframeitem__item');\r\n if (iframelinks.length) {\r\n iframelinks.forEach(\r\n function (el) {\r\n console.log('element');\r\n console.log(el);\r\n\r\n var currentEl = this;\r\n console.log(currentEl);\r\n var btnmodal = el.querySelectorAll('.iframeitem__item--openmodal');\r\n\r\n console.log('btnmodal');\r\n console.log(btnmodal);\r\n\r\n btnmodal[0].onclick = function (e) {\r\n openReservation(el);\r\n };\r\n }\r\n );\r\n }\r\n }\r\n\r\n function openReservation(el) {\r\n //HTML element that should hold the video\r\n var itemElement = el.querySelector('.iframeitem__modal-container');\r\n //Get element data\r\n var itemElementId = itemElement.getAttribute('id');\r\n var itemElementUrl = itemElement.dataset.url;\r\n\r\n var triggerBtn = document.querySelector('.iframeitem__modal-opener[data-content-id=\"' + itemElementId + '\"]');\r\n $(triggerBtn).trigger('click');\r\n\r\n var modalId = 'modal-general-' + itemElementId;\r\n var itemModal = document.getElementById(modalId);\r\n var modalItemContainer = itemModal.querySelector('#' + itemElementId + '-a');\r\n\r\n var iframeElement = document.createElement('iframe');\r\n iframeElement.setAttribute('frameborder', '0');\r\n iframeElement.setAttribute('src', itemElementUrl);\r\n iframeElement.setAttribute(\"style\", \"width:100%;height:100%;\");\r\n iframeElement.setAttribute(\"scrolling\", \"auto\");\r\n iframeElement.classList.add('iframeitem__iframe');\r\n\r\n while (modalItemContainer.firstChild) {\r\n modalItemContainer.removeChild(modalItemContainer.firstChild);\r\n }\r\n\r\n // iframe loader\r\n var loadingDiv = document.createElement('div');\r\n loadingDiv.innerHTML = '
';\r\n modalItemContainer.appendChild(loadingDiv);\r\n modalItemContainer.appendChild(iframeElement);\r\n\r\n iframeElement.onload = function () {\r\n var loadingElement = this.previousSibling;\r\n loadingElement.remove();\r\n };\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n}(jQuery);\r\n","\r\n'use strict';\r\n\r\nvar salling = salling || {};\r\nvar Flickity = Flickity || {};\r\n\r\nsalling.banner = salling.banner || function ($) {\r\n\r\n function initSlider() {\r\n\r\n var sliderElements = document.querySelectorAll('.banner');\r\n\r\n if(sliderElements.length){\r\n //add slider functionality to every slider-element\r\n Array.prototype.forEach.call(sliderElements, function (el, i) {\r\n if(el.children.length > 1){\r\n var flkty = new Flickity( el, {\r\n // options\r\n wrapAround: true,\r\n pageDots: false,\r\n prevNextButtons: false,\r\n autoPlay: 7000,\r\n touchVerticalScroll: true\r\n });\r\n\r\n flkty.on( 'select', function() {\r\n if (this.$element && this.$element.length) {\r\n var thisBannerHolder = this.$element[0].closest('.banner-holder');\r\n $('.banner-badges__item--selected', thisBannerHolder).removeClass('banner-badges__item--selected');\r\n var prefix = this.$element[0].getAttribute('data-prefix');\r\n var selectedId = prefix+'-'+flkty.selectedIndex+'-'+'badge';\r\n $('#'+selectedId).addClass('banner-badges__item--selected');\r\n }\r\n });\r\n\r\n // previous\r\n var previousButton = document.querySelector('.banner__navigation--previous');\r\n previousButton.addEventListener( 'click', function() {\r\n flkty.previous();\r\n });\r\n // next\r\n var nextButton = document.querySelector('.banner__navigation--next');\r\n nextButton.addEventListener( 'click', function() {\r\n flkty.next();\r\n });\r\n }\r\n\r\n });\r\n\r\n\r\n }\r\n }\r\n\r\n return {\r\n initSlider: initSlider\r\n };\r\n\r\n}();\r\n","\r\n'use strict';\r\n\r\nvar salling = salling || {};\r\nvar Flickity = Flickity || {};\r\nvar flickityArrow = flickityArrow || '';\r\n\r\nsalling.productList = salling.productList || function ($) {\r\n \r\n function initSlider() {\r\n var sliderElements = document.querySelectorAll(\".product-list.product-list--slider\");\r\n\r\n for (var i = 0; i < sliderElements.length; i++) {\r\n new Flickity(sliderElements[i], {\r\n groupCells: true,\r\n contain: false,\r\n cellAlign: 'left',\r\n initialIndex: 0,\r\n prevNextButtons: true,\r\n arrowShape: flickityArrow,\r\n watchCSS: true,\r\n pageDots: false\r\n });\r\n }\r\n\r\n\r\n // trigger a resize events, due to Flickity not working correctly with defer loading the script\r\n var event = document.createEvent('HTMLEvents');\r\n event.initEvent('resize', true, false);\r\n document.dispatchEvent(event);\r\n }\r\n\r\n return {\r\n initSlider: initSlider\r\n };\r\n\r\n}(jQuery);\r\n\r\n\r\n","'use strict';\r\n\r\nvar salling = salling || {};\r\n\r\nsalling.siteNavigation = salling.siteNavigation || new function () {\r\n \r\n var self = this;\r\n var openedItem = null;\r\n var hoverTimeout = null;\r\n\r\n this.init = function() {\r\n\r\n var navigationHoverItems = document.querySelectorAll('.site-navigation-list__item');\r\n \r\n navigationHoverItems.forEach(function(elem) {\r\n\r\n // Open dropdown inside navigation item\r\n elem.addEventListener('mouseenter', function() {\r\n self.open(elem);\r\n openedItem = elem;\r\n });\r\n\r\n // Close dropdown inside navigation item\r\n elem.addEventListener('mouseleave', function() {\r\n self.close();\r\n });\r\n });\r\n };\r\n\r\n // Open dropdown inside item\r\n this.open = function(elem) {\r\n var dropdown = elem.getElementsByClassName('site-navigation-dropdown');\r\n var closeButton = elem.querySelector('.site-navigation-dropdown__close');\r\n\r\n // Listen to click on close button\r\n if(closeButton != null && closeButton.length){\r\n closeButton.addEventListener('click', function() {\r\n self.close();\r\n });\r\n }\r\n \r\n self.close();\r\n\r\n if(dropdown != null && dropdown.length) {\r\n var currentDropdown = dropdown[0];\r\n\r\n if(!openedItem) {\r\n hoverTimeout = setTimeout(function() {\r\n currentDropdown.classList.add('site-navigation-dropdown--open');\r\n }, 150);\r\n }\r\n }\r\n };\r\n\r\n // Close dropdown\r\n this.close = function() {\r\n if (hoverTimeout != null) {\r\n clearTimeout(hoverTimeout);\r\n }\r\n\r\n if(!openedItem) {\r\n return;\r\n }\r\n\r\n var dropdown = openedItem.getElementsByClassName('site-navigation-dropdown');\r\n \r\n if(dropdown.length) {\r\n var currentDropdown = dropdown[0];\r\n\r\n currentDropdown.classList.remove('site-navigation-dropdown--open');\r\n\r\n openedItem = null;\r\n }\r\n };\r\n\r\n};","'use strict';\r\n\r\nvar salling = salling || {};\r\n\r\nsalling.siteHeader = salling.siteHeader || new function () {\r\n \r\n var self = this;\r\n var el = document.getElementById('js-site-header');\r\n var content = document.querySelector('#content');\r\n var announcement = document.querySelector('#site-announcement');\r\n var elHeight = el != null ? el.offsetHeight : 0;\r\n var didScroll;\r\n var lastScrollTop = 0;\r\n var delta = 5;\r\n var pxToScroll = 0;\r\n var isCollapsed = true;\r\n\r\n this.init = function() {\r\n if(announcement){\r\n announcement.classList.add('site-announcement__show--active'); \r\n }\r\n };\r\n\r\n // Collapse\r\n this.collapse = function() {\r\n var st = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n \r\n // Make sure they scroll more than delta\r\n if(Math.abs(lastScrollTop - st) <= delta) {\r\n return;\r\n }\r\n\r\n // Make sure they scroll more than delta\r\n if (Math.abs(lastScrollTop - st) <= delta) {\r\n return;\r\n }\r\n \r\n // If they scrolled down and are past the navbar, add class .nav-up.\r\n // This is necessary so you never see what is 'behind' the navbar.\r\n if (st > lastScrollTop && st > elHeight) {\r\n // Scroll Down\r\n el.classList.add('site-header--collapsed');\r\n \r\n if(announcement) { \r\n content.classList.remove('announcement--mobile');\r\n announcement.classList.remove('site-announcement__show--active');\r\n }\r\n isCollapsed = true;\r\n\r\n\r\n } else {\r\n // Scroll Up\r\n if (st + window.innerHeight < document.body.clientHeight) {\r\n el.classList.remove('site-header--collapsed');\r\n if(announcement){\r\n announcement.classList.add('site-announcement__show--active'); \r\n content.classList.add('announcement--mobile');\r\n }\r\n\r\n isCollapsed = false;\r\n }\r\n }\r\n \r\n lastScrollTop = st;\r\n\r\n };\r\n};","\r\n'use strict';\r\n\r\nvar salling = salling || {};\r\n\r\n\r\nsalling.overlay = salling.overlay || function ($) {\r\n var overlay = document.getElementsByClassName(\"site-overlay\")[0];\r\n function show() {\r\n\r\n if(overlay) {\r\n overlay.classList.add('site-overlay--open');\r\n document.body.classList.add(\"body--fixed\");\r\n }\r\n }\r\n\r\n function hide() {\r\n \r\n if(overlay) {\r\n overlay.classList.remove('site-overlay--open');\r\n document.body.classList.remove(\"body--fixed\");\r\n }\r\n }\r\n\r\n return {\r\n show: show,\r\n hide: hide\r\n };\r\n\r\n}(jQuery);","'use strict';\r\n\r\nvar salling = salling || {};\r\n\r\nsalling.breadcrumb = salling.breadcrumb || function ($) {\r\n var breadcrumbItems = document.querySelectorAll('.js-breadcrumb-item');\r\n var breadcrumbExpand = document.getElementById('js-breadcrumb-expand');\r\n var breadcrumb = document.getElementById('js-breadcrumb');\r\n var tries = 0;\r\n\r\n function init() {\r\n if(breadcrumbItems.length > 2 && window.innerWidth < 768){\r\n initMobileBreadcrumb();\r\n } else{\r\n if(breadcrumbExpand) {\r\n breadcrumbExpand.classList.add('breadcrumb__mobile-expand--hidden');\r\n }\r\n }\r\n }\r\n\r\n function initMobileBreadcrumb() {\r\n for (var index = 0; index < breadcrumbItems.length; index++) {\r\n var element = breadcrumbItems[index];\r\n if(index < breadcrumbItems.length - 2){\r\n element.classList.add('breadcrumb-item--collapsed');\r\n }\r\n else{\r\n element.classList.add('breadcrumb-item--shorten');\r\n }\r\n }\r\n bindExpand();\r\n shortenBreadcrumbs();\r\n }\r\n function shortenBreadcrumbs() {\r\n var breadcrumbShortenItems = document.querySelectorAll('.js-breadcrumb-item.breadcrumb-item--shorten');\r\n var listWidth = breadcrumb.offsetWidth;\r\n var itemsWidth = getItemsWidth(breadcrumbShortenItems);\r\n var biggestNum = 0;\r\n var elementToShorten = null;\r\n \r\n for (var i = 0; i < breadcrumbShortenItems.length; i++) {\r\n var textContentCount = breadcrumbShortenItems[i].querySelectorAll('.breadcrumb-item__title')[0].textContent.length;\r\n if (textContentCount > biggestNum) {\r\n biggestNum = textContentCount;\r\n elementToShorten = breadcrumbShortenItems[i].querySelectorAll('.breadcrumb-item__replacing-title')[0];\r\n }\r\n }\r\n if(itemsWidth > listWidth){\r\n var amoutToTruncate = biggestNum - Math.ceil(biggestNum / 4);\r\n truncate(elementToShorten, amoutToTruncate, '...');\r\n }\r\n itemsWidth = getItemsWidth(breadcrumbShortenItems);\r\n if(itemsWidth > listWidth && tries < 8){\r\n tries++;\r\n shortenBreadcrumbs();\r\n }\r\n }\r\n function bindExpand() {\r\n if(!breadcrumbExpand){\r\n return;\r\n }\r\n breadcrumbExpand.addEventListener('click', function() {\r\n breadcrumb.classList.add('breadcrumb--expanded');\r\n breadcrumbExpand.classList.add('breadcrumb__mobile-expand--hidden');\r\n for (var index = 0; index < breadcrumbItems.length; index++) {\r\n if(index < breadcrumbItems.length - 2){\r\n var element = breadcrumbItems[index];\r\n element.classList.remove('breadcrumb-item--collapsed');\r\n }\r\n }\r\n var breadcrumbShortenItems = document.querySelectorAll('.js-breadcrumb-item.breadcrumb-item--shorten');\r\n for (var shortenIndex = 0; shortenIndex < breadcrumbShortenItems.length; shortenIndex++) {\r\n if(shortenIndex < breadcrumbShortenItems.length){\r\n var shortenElement = breadcrumbShortenItems[shortenIndex].querySelectorAll('.breadcrumb-item__title')[0];\r\n var textToReplace = breadcrumbShortenItems[shortenIndex].querySelectorAll('.breadcrumb-item__replacing-title')[0];\r\n var defaultTitle = shortenElement.dataset.defaultTitle;\r\n if(defaultTitle && defaultTitle !== ''){\r\n textToReplace.textContent = defaultTitle;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n var getItemsWidth = function(items){\r\n var width = 0;\r\n for (var index = 0; index < items.length; index++) {\r\n var element = items[index];\r\n width += element.offsetWidth;\r\n }\r\n return width;\r\n };\r\n\r\n var truncate = function (elem, limit, after) {\r\n // Make sure an element and number of items to truncate is provided\r\n if (!elem || !limit){\r\n return; \r\n }\r\n \r\n // Get the inner content of the element\r\n var content = elem.textContent || elem.innerText;\r\n content = content.trim();\r\n \r\n // Convert the content into an array of words\r\n // Remove any words above the limit\r\n content = content.slice(0, limit);\r\n \r\n // Convert the array of words back into a string\r\n // If there's content to add after it, add it\r\n content = content + (after ? after : '');\r\n \r\n // Inject the content back into the DOM\r\n if (elem.textContent) {\r\n elem.textContent = content;\r\n } else {\r\n elem.innerText = content;\r\n }\r\n \r\n };\r\n return {\r\n init: init\r\n };\r\n\r\n}(jQuery);","\r\n'use strict';\r\n\r\nvar salling = salling || {};\r\n\r\n\r\nsalling.accordion = salling.accordion || function ($) {\r\n \r\n function init() {\r\n var accordions = document.querySelectorAll(\".accordion\");\r\n\r\n accordions.forEach(function (el) {\r\n var rows = el.querySelectorAll('.accordion-row');\r\n var currentTarget = null;\r\n\r\n rows.forEach(function(row) {\r\n var header = row.getElementsByClassName(\"accordion-row__title\")[0];\r\n\r\n header.addEventListener('click', function () {\r\n\r\n if (currentTarget) {\r\n currentTarget.classList.remove('accordion-row--expanded');\r\n }\r\n\r\n // Only open if the current target is not the one that has been clicked\r\n if(currentTarget != row) {\r\n currentTarget = row;\r\n currentTarget.classList.add('accordion-row--expanded');\r\n } else {\r\n currentTarget = null;\r\n }\r\n\r\n }, false);\r\n\r\n });\r\n\r\n });\r\n \r\n }\r\n\r\n\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n}(jQuery);","'use strict';\r\n\r\nvar salling = salling || {};\r\nvar Flickity = Flickity || {};\r\nvar flickityArrow = flickityArrow || '';\r\n\r\nsalling.giftcardList = salling.giftcardList || function ($) {\r\n \r\n function initSlider() {\r\n var sliderElements = document.querySelectorAll(\".giftidea-box--slider\");\r\n \r\n for (var i = 0; i < sliderElements.length; i++) {\r\n new Flickity(sliderElements[i], {\r\n percentPosition: false,\r\n groupCells: true,\r\n contain: true,\r\n cellAlign: 'left',\r\n initialIndex: 0,\r\n prevNextButtons: true,\r\n arrowShape: flickityArrow,\r\n watchCSS: true\r\n });\r\n } \r\n\r\n // trigger a resize events, due to Flickity not working correctly with defer loading the script\r\n var event = document.createEvent('HTMLEvents');\r\n event.initEvent('resize', true, false);\r\n document.dispatchEvent(event);\r\n }\r\n\r\n return {\r\n initSlider: initSlider\r\n };\r\n\r\n}(jQuery);","'use strict';\r\n\r\nvar salling = salling || {};\r\n\r\nsalling.siteAnnouncement = salling.siteAnnouncement || function(){\r\n function init() {\r\n var announcement = document.querySelector('#site-announcement');\r\n if (announcement) {\r\n showAnnouncement();\r\n }\r\n }\r\n \r\n function showAnnouncement() {\r\n var announcement = document.querySelector('#site-announcement');\r\n announcement.classList.remove('site-announcement__hidden');\r\n announcement.classList.add('site-announcement__show--active'); \r\n var content = document.querySelector('#content');\r\n content.classList.add('announcement');\r\n content.classList.add('announcement--mobile');\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n}();","'use strict';\r\n/*\r\n* Novicell master\r\n* Author: APN modified by DLA\r\n* Use this file to call functions in other files, on document ready, window.resize etc.\r\n* ------\r\n* Dependencies: jquery, novicell.js, other files with awesome functions.\r\n* Usage: $(function () {\r\n* projectName.slider.heroSlider($('.owl-carousel'));\r\n* }); // Document ready end\r\n*/\r\n\r\nvar novicell = novicell || {};\r\nvar salling = salling || {};\r\nvar lazySizes = lazySizes || {};\r\nvar flickityArrow = flickityArrow || { x0: 10, x1: 60, y1: 50, x2: 65, y2: 45, x3: 20 }; // global arrow setting for flickity\r\nsalling.mobileWidth = 1200;\r\n\r\n// Fix for making the forEach work\r\n(function () {\r\n if ( typeof NodeList.prototype.forEach === \"function\" ) {\r\n return false;\r\n }\r\n NodeList.prototype.forEach = Array.prototype.forEach;\r\n})();\r\n\r\n// Document ready\r\n(function (window) {\r\n setTimeout(svg4everybody, 0);\r\n lazySizes.init();\r\n\r\n novicell.cookieInfo.init();\r\n novicell.modal.init();\r\n novicell.scrollToTop.init();\r\n\r\n salling.banner.initSlider();\r\n salling.breadcrumb.init();\r\n salling.uspList.initSlider();\r\n salling.tilter.init();\r\n salling.mobileNavigation.init();\r\n salling.productList.initSlider();\r\n salling.siteNavigation.init();\r\n salling.siteHeader.init();\r\n salling.videobanner.init();\r\n salling.iframelink.init();\r\n salling.giftcardList.initSlider();\r\n salling.footerMenu.init();\r\n salling.siteAnnouncement.init();\r\n\r\n\r\n // Vanilla scroll event\r\n window.addEventListener('scroll', function() {\r\n salling.siteHeader.collapse();\r\n novicell.scrollToTop.collapse();\r\n });\r\n\r\n // Init of the lazySizes\r\n var scrollStarted = false;\r\n var scrollLooper = null; \r\n document.addEventListener('touchmove', function(){ \r\n scrollStarted = true;\r\n scrollLooper = setInterval(function() { \r\n lazySizes.loader.checkElems(); \r\n }, 100) ;\r\n }); \r\n document.addEventListener('touchend', function(){ \r\n scrollStarted = false;\r\n lazySizes.loader.checkElems(); \r\n setTimeout(function() { \r\n if(scrollStarted == false) { \r\n clearInterval(scrollLooper); \r\n } \r\n }, 1000); \r\n });\r\n\r\n\r\n})(window); // Document ready end\r\n\r\n\r\n"]}