{"version":3,"sources":["ieCustomEventPolyfill.js","lazy-images.js","markerclusterer.js","novicell.accordionReadMoreOnMobile.js","novicell.add-remove-buttons.js","novicell.anchorLinks.js","novicell.cart.js","novicell.checkout.js","novicell.cookieListFormatting.js","novicell.dynamic-image.js","novicell.featureComparison.js","novicell.helpers.js","novicell.highlightedFeaturesOverlay.js","novicell.input-mask.js","novicell.mailchimp-custom.js","novicell.navigation.js","novicell.newslistShowAll.js","novicell.oTrainingList.js","novicell.overlay.js","novicell.overlay2.js","novicell.productFilters.js","novicell.productImageSlider.js","novicell.search-results.js","novicell.productPagePrices.js","novicell.search.js","novicell.slider.js","novicell.sticky-nav.js","novicell.tabs.js","novicell.validation.js","novicell.videooverlay.js","lazysizes.js","master.js"],"names":["window","CustomEvent","event","params","bubbles","cancelable","detail","undefined","evt","document","createEvent","initCustomEvent","prototype","Event","novicell","lastRefreshWidth","refreshWidth","lazySizesConfig","expand","lazyload","e","src","url","query","preventDefault","Object","defineProperty","this","get","target","preventLoad","classList","contains","setMeasuredUrl","setSrcSet","hasAttribute","setSrc","setBg","dynamicImage","getUrl","parentNode","style","backgroundImage","visibility","getAttribute","srcset","split","newSrcset","forEach","trim","bp","newSrc","queryUrl","push","setAttribute","join","checkImages","innerWidth","body","querySelectorAll","el","remove","add","addEventListener","debounce","NodeList","Array","MarkerClusterer","t","globalThis","global","self","exports","r","Math","n","_typeof","Function","i","o","s","propertyIsEnumerable","a","getOwnPropertyDescriptor","u","f","call","1","enumerable","l","configurable","writable","value","c","toString","h","slice","p","g","TypeError","d","_","v","valueOf","m","hasOwnProperty","y","x","S","createElement","M","b","C","E","String","k","I","w","O","A","L","P","inspectSource","T","z","R","B","Z","WeakMap","N","test","D","version","mode","copyright","H","$","random","F","U","G","V","W","X","K","has","q","set","Y","J","enforce","getterFor","type","Q","unsafe","noTargetGet","source","tt","et","rt","arguments","length","nt","ceil","it","floor","ot","isNaN","st","min","at","ut","max","lt","ct","ht","pt","includes","indexOf","ft","gt","dt","_t","concat","vt","getOwnPropertyNames","mt","getOwnPropertySymbols","yt","xt","St","Mt","Ct","bt","kt","Et","normalize","replace","toLowerCase","data","NATIVE","POLYFILL","It","wt","Ot","stat","forced","sham","At","Lt","Pt","Tt","zt","ACCESSORS","Rt","jt","Bt","Zt","Nt","proto","apply","Dt","Ht","$t","isArray","Ft","Ut","Symbol","Gt","iterator","Vt","Wt","Xt","withoutSetter","Kt","qt","Yt","process","Jt","versions","Qt","v8","match","te","ee","re","constructor","foo","Boolean","ne","ie","0","oe","se","ae","ue","le","he","pe","fe","ge","splice","ve","me","ye","xe","Se","callee","Me","be","ignoreCase","multiline","dotAll","unicode","sticky","Ce","Ee","RegExp","ke","Ie","flags","we","name","Oe","setPrototypeOf","__proto__","Ae","_Oe","create","Le","assign","Pe","Te","ze","Re","je","Be","Ze","Ne","reduce","De","keys","He","$e","Fe","Ue","UNSUPPORTED_Y","lastIndex","exec","BROKEN_CARET","Ge","Ve","We","Xe","Ke","qe","input","index","Ye","Je","Qe","groups","tr","er","rr","nr","ir","done","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","or","charCodeAt","charAt","sr","ar","ur","lr","cr","hr","pr","fr","gr","dr","_r","vr","mr","yr","xr","google","maps","OverlayView","Sr","Mr","br","cluster_","styles_","center_","div_","sums_","visible_","setMap","getMap","onAdd","getMarkerClusterer","parseInt","show","getPanes","overlayMouseTarget","appendChild","boundsChangedListener_","addListener","addDomListener","stopPropagation","trigger","getZoomOnClick","getMaxZoom","getBounds","fitBounds","setTimeout","getZoom","setZoom","cancelBubble","onRemove","hide","removeListener","clearInstanceListeners","removeChild","draw","getPosFromLatLng_","top","left","display","className","className_","cssText","createCss_","innerHTML","getImageElementHtml","getLabelDivHtml","title","getTitle","ariaLabelFn","text","position","anchorText_","color","textColor","font-size","textSize","font-family","fontFamily","font-weight","fontWeight","font-style","fontStyle","text-decoration","textDecoration","text-align","width","line-height","textLineHeight","backgroundPosition","getEnableRetinaIcons","height","clip","useStyle","anchorText","anchorIcon_","anchorIcon","getClusterClass","setCenter","z-index","getZIndex","cursor","-webkit-user-select","-khtml-user-select","-moz-user-select","-o-user-select","user-select","getProjection","fromLatLngToDivPixel","Cr","markerClusterer_","map_","minClusterSize_","getMinimumClusterSize","averageCenter_","getAverageCenter","markers_","bounds_","clusterIcon_","getStyles","getSize","getMarkers","getCenter","LatLngBounds","extend","getPosition","addMarker","isMarkerAlreadyAdded_","lat","lng","LatLng","calculateBounds_","isAdded","isMarkerInClusterBounds","getExtendedBounds","updateIcon","getCalculator","Er","options","clusters_","listeners_","activeMap_","ready_","zIndex_","zIndex","Marker","MAX_ZINDEX","gridSize_","gridSize","minimumClusterSize","maxZoom_","maxZoom","styles","title_","zoomOnClick_","ignoreHidden_","enableRetinaIcons_","imagePath_","imagePath","IMAGE_PATH","imageExtension_","imageExtension","IMAGE_EXTENSION","imageSizes_","imageSizes","IMAGE_SIZES","calculator_","calculator","CALCULATOR","batchSize_","batchSize","BATCH_SIZE","batchSizeIE_","batchSizeIE","BATCH_SIZE_IE","clusterClass_","clusterClass","navigator","userAgent","setupStyles_","addMarkers","repaint","prevZoom_","minZoom","mapTypes","getMapTypeId","resetViewport_","redraw_","withDefaultStyle","fitMapToMarkers","getVisible","getIgnoreHidden","getGridSize","setGridSize","setMinimumClusterSize","setMaxZoom","setZIndex","setStyles","setTitle","setZoomOnClick","setAverageCenter","setIgnoreHidden","setEnableRetinaIcons","getImageExtension","setImageExtension","getImagePath","setImagePath","getImageSizes","setImageSizes","setCalculator","getBatchSizeIE","setBatchSizeIE","setClusterClass","getTotalMarkers","getClusters","getTotalClusters","pushMarkerTo_","getDraggable","removeMarker","removeMarker_","removeMarkers","clearMarkers","getNorthEast","getSouthWest","fromDivPixelToLatLng","createClusters_","distanceBetweenPoints_","PI","sin","cos","atan2","sqrt","isMarkerInBounds_","addToClosestCluster_","timerRefStatic","clearTimeout","accordionReadMoreOnMobile","hoverIntentDelay","accordionAnimate","element","parentItem","helpers","closestByClass","toggle","contentContainer","querySelector","elementContent","children","newHeight","getComputedStyle","currentStyle","marginTop","marginBottom","elementContentHeight","offsetHeight","heightAttr","dataset","parentAccordionHeader","recalcHeight","init","productSpecificationsAccordion","recalcAll","addRemoveButtons","outerAddRemoveCountainer","commonAddRemoveButtonsClass","commonAmountInputsClass","buttonsPlusClass","buttonsMinusClass","buttonModifierProductDetail","buttonModifierStandardProductDetail","addRemoveOnEvent","numberField","currentValue","newValue","increase","decrease","dispatchEvent","inputs","j","code","returnValue","setSoftwareHiddenValues","anchorLinks","scrollToElement","node","yourHeight","scrollIntoView","scrolledY","scrollY","scroll","location","hash","findId","substring","getElementById","path","tagName","targetId","cart","addToCart","form","currentTarget","closest","submitButton","callback","formData","xhttp","XMLHttpRequest","onreadystatechange","readyState","status","responseText","open","send","executeAjaxCall","response","JSON","parse","isMyEivaOrder","IsMyEivaOrder","orderContainsSoftware","ContainsSoftware","openOverlay","click","checkValidity","addToMyEiva","elem","endpoint","productId","variantId","licenseAmount","subscriptionDuration","href","checkout","radioButtons","deliveryAddressForm","deliveryAddressFields","deliveryAddressCheck","disabledStatus","checked","id","disabled","initDeliveryAddress","cookieListFormatting","cookieScriptUrl","scriptHolderTag","tag","onload","addHeaderAttributes","tableElements","getElementsByClassName","headers","headerElements","textContent","rowElements","cells","nextQuerySign","queryObjStr","queryObj","key","baseUrl","parentHeight","innerHeight","parentWidth","offsetWidth","devicePixelRatio","matchMedia","matches","parentAspectRatio","featureComparison","wrap","selection","div","parentElement","insertBefore","currentFeatureTable","copyOfFeatureComparison","cloneNode","outerHolders","span","innerText","addListenerMulti","fn","clazz","prepend","outerTag","elementToPrepend","whichTransitionEvent","transitions","transition","OTransition","MozTransition","WebkitTransition","animate","unit","from","to","duration","isProp","start","Date","getTime","timer","setInterval","step","clearInterval","getAllUrlParams","queryString","search","obj","arr","paramNum","paramName","paramValue","closeOverlay","parent","selector","overlayElem","highlightedFeaturesOverlay","highlightedFeaturesButtons","featureOverlayId","overlay","class","inputMasking","masks","mask","pattern","masking","vanillaTextMask","maskInput","inputElement","guide","mailchimpFormular","HTMLInputElement","nodeName","getElementsByName","badInput","patternMismatch","rangeOverflow","Number","rangeUnderflow","stepMismatch","tooLong","tooShort","typeMismatch","valueMissing","selectedIndex","valid","createElementNS","Element","DOMException","message","_updateClassName","Error","item","number","__defineGetter__","DOMTokenList","forms","hasError","validity","showError","nextSibling","removeError","removeAttribute","serialize","elements","encodeURIComponent","displayMailChimpStatus","result","msg","mcStatus","submitMailChimpForm","getElementsByTagName","focus","navigation","classOpened","classClosed","classShowDropDown","initSidebar","initMegamenu","initCloseMegaMenu","removeAllHovers","navItemsWithDropdown","openedAccordionsInside","elementToClick","initEvent","_this","passive","oSidebar","aSidebarCloseItem","aLogoMenu","newslistShowAll","showAllButton","containingBlock","oTrainingList","setTextHeight","oTrainingLists","texts","maxHeight","currentTextHeight","overlayContainer","overlayContent","backdrop","content","isVideo","constructOverlay","backdropClass","destroy","setupBackdrop","setupOverlay","setupOverlayContainer","btnClose","btnClose2","keyCode","overlay2","setupCloseButton","documentElement","onLoaded","opts","onCreate","console","warn","error","videoId","autoplay","iframe","outerHTML","removeEventListener","onDestroy","productFilters","filterShowHideButton","accordionsToShowOnLoad","openFiltersOnLoad","checkboxes","baseAccordion","header","transitionEnd","fixAccordionHeightOnClick","outer","outerHeight","focusOnSearchInput","searchResults","productImageSlider","sliderLargeClass","sliderSmallClass","hiddenModifier","startSlide","makeSliderOverlay","childNodes","currentChild","num","nodeType","findStartSlideNumber","makeOverlayInSlider","listForSlider","Flickity","initialIndex","cellAlign","contain","wrapAround","prevNextButtons","pageDots","selectedAttraction","friction","imagesLoaded","on","ready","videoIframeClass","iframesWithSrc","selectedSlide","iframeSrc","productImageSliderMain","productImageSliderThumbs","carouselLarge","carouselSmall","asNavFor","slides","initOverlayEvents","tempHolderClass","imageHolder","clone","cloneSlideHolder","cloneSlideSrc","cloneSlideAlt","alt","temp","initSingleImageOverlay","productPagePrices","keepPromises","inputLicenses","fieldsLicenseTypes","durationAmountSelectField","amountHardware","fieldsDurationType","fieldQuantity","fieldVariantID","productType","priceBarPriceItem","submitBtn","normalFieldQuantity","changingDaysYearsOnSoftware","lastClick","selectId2","EcomOrderLineFieldInput_Licenses","timestamps","doNotSearchBeforeMilisecondsAmount","setMinimumAmountPeriod","yearField","daysField","sessionStorage","setItem","removeItem","minvalue","log","filterInput","startsWith","normalPriceCalculation","thisElemId","clearMyTimeout","productidField","productid","normalQuantity","priceBarNormalPriceItem","priceVatTextElem","then","functionName","now","rightNow","elemId","hideShowLicenseDuration","durationFields","permanentDeliveryTime","subscriptionDeliveryTime","priceBar","Promise","resolve","reject","req","statusText","onerror","abort","extraStuffHidden","extraStuff","variantID","licenses","quantity","quantityValue","productIdField","addToMyEivaLink","getItem","setOuterScopeVars","daysOrWeeksFields","initMinimumAmountPeriod","initChangeLicenseType","initSoftwareHiddenValues","stock","searchField","dataLayer","searchResultsOverlayIsOpen","searchResultsOverlayIsClosed","doNotSearchBeforeCharAmount","lastType","timeOuts","searchUrl","elemToTriggerOpenSearchID","elemSearchInputID","searchPath","searchPage","hiddenSearchOverlayContentID","searchOverlayClass","searchOverlayBackdropClass","searchOverlayInputFieldClass","overlaySearchResultContainerSelector","inputValue","searchValue","setShowAllResultsButtonLink","showResults","btnsShowAll","basicSearcPageUrl","myTimeout","searchFieldChanged","searchResultOverlay","firstChild","removeSearchResultOverlay","searchTrigger","searchFieldOverlay","findSearchUrl","inputField","searchPageUrl","encodeURI","productHeader","pageHeader","countHolder","resultCountProducts","resultCountPages","resultCountTotal","countText","showSearchResultTotalOnSearchPage","searchElem","windowScrollY","pageYOffset","scrollingElement","searchInput","searchElementIfOpen","slider","arrowShape","stickyNav","pageScrollPosition","scrollDirection","lastScrollUpPosition","lastPageScrollPosition","alwaysShowWhenAboveThis","showWhenNotScrolledMoreThan","siteHeaderHideClass","run","siteHeader","tabs","classActiveTabDesktop","classActiveTabMobile","classActiveContentDesktop","classActiveContentMobile","classNameHandler","tab1","content1","openTab","classIconOpen","classIconVerticalSign","tabsTarget","wtclean","iconbox","validate","fieldClass","errorClass","messageValueMissing","messageValueMissingRadio","messageValueMissingSelect","messageValueMissingSelectMulti","messageTypeMismatchEmail","messageTypeMismatchURL","messageTooShort","messageTooLong","messagePatternMismatch","messageBadInput","messageStepMismatch","messageRangeOverflow","messageRangeUnderflow","messageGeneric","disableSubmit","onSubmit","beforeShowError","afterShowError","field","customMessage","beforeRemoveError","afterRemoveError","videoElementId","videooverlay","adjustVideoHeight","videoOverlay","videoHeight","videoWidth","videoMaxHeight","videoMaxWidth","correspondingWidth","playVideo","onclick","factory","lazySizes","lazysizes","docElem","supportPicture","HTMLPictureElement","_addEventListener","_getAttribute","requestAnimationFrame","requestIdleCallback","regPicture","loadEvents","regClassCache","hasClass","ele","cls","addClass","removeClass","reg","addRemoveLoadEvents","dom","action","triggerEvent","noBubbles","noCancelable","instance","updatePolyfill","full","polyfill","picturefill","pf","reevaluate","getCSS","getWidth","minSize","_lazysizesWidth","rAF","firstFns","secondFns","fns","runFns","waiting","running","shift","rafBatch","queue","hidden","_lsFlush","rAFIt","simple","that","args","func","timeout","timestamp","later","last","prop","lazySizesDefaults","lazyClass","loadedClass","loadingClass","preloadClass","autosizesClass","srcAttr","srcsetAttr","sizesAttr","customMedia","expFactor","hFac","loadMode","loadHidden","ricTimeout","throttleDelay","lazysizesConfig","loader","regImg","regIframe","supportScroll","currentExpand","isLoading","lowRuns","resetPreloading","isNestedVisible","elemExpand","outerRect","visible","eLtop","eLbottom","eLleft","eLright","offsetParent","getBoundingClientRect","right","bottom","checkElements","eLlen","rect","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","lazyloadElems","preloadExpand","clientHeight","clientWidth","defaultExpand","_lazyRace","eLvW","elvH","isCompleted","unveilElement","preloadElems","preloadAfterLoad","lastTime","gDelay","rICTimeout","idleCallback","throttledCheckElements","isPriority","delay","switchLoadingClass","rafSwitchLoadingClass","rafedSwitchLoadingClass","handleSources","sourceSrcset","lazyUnveil","isAuto","sizes","isImg","isPicture","firesLoad","defaultPrevented","resetPreloadingTimer","contentWindow","changeIframeSrc","complete","naturalWidth","autoSizer","updateElem","started","afterScroll","MutationObserver","observe","childList","subtree","attributes","checkElems","unveil","sizeElement","sources","len","dataAttr","getSizeElement","debouncedUpdateElementsSizes","autosizesElems","cfg","uP","aC","rC","hC","fire","gW","module","cl","bind","projectName","ES6Promise","svg4everybody","cookieInfo"],"mappings":"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","file":"master.min.js","sourcesContent":["'use strict';\r\n(function() {\r\n if (typeof window.CustomEvent === 'function') {\r\n return false;\r\n } //If not IE\r\n\r\n function CustomEvent(event, params) {\r\n params = params || { bubbles: false, cancelable: false, detail: undefined };\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n return evt;\r\n }\r\n\r\n CustomEvent.prototype = window.Event.prototype;\r\n\r\n window.CustomEvent = CustomEvent;\r\n})();\r\n","'use strict';\r\n\r\n/**\r\n * @name Novicell Dynamic Image\r\n * @author Jonas Havmøller & Danni Larsen\r\n * @description Adds eventlisteners for lazysizes and more\r\n */\r\n\r\nvar novicell = novicell || {};\r\n\r\nvar lastRefreshWidth = 0;\r\nvar refreshWidth = 50;\r\n\r\n// Lazysizes config\r\nwindow.lazySizesConfig = window.lazySizesConfig || {};\r\nwindow.lazySizesConfig.expand = 1000;\r\n\r\n/*\r\n * Lazyload\r\n */\r\nnovicell.lazyload =\r\n novicell.lazyload ||\r\n function(e) {\r\n // IE Fix\r\n e.preventDefault = function() {\r\n Object.defineProperty(this, 'defaultPrevented', {\r\n get: function() {\r\n return true;\r\n }\r\n });\r\n };\r\n var src, url, query;\r\n var target = e.target;\r\n var preventLoad = target.classList.contains('lazyload-measure') || target.classList.contains('lazyload-bg');\r\n var setMeasuredUrl = target.classList.contains('lazyload-measure');\r\n var setSrcSet = target.hasAttribute('data-srcset') && target.hasAttribute('data-query-obj');\r\n var setSrc = target.hasAttribute('data-src') && target.hasAttribute('data-query-obj');\r\n if (preventLoad) {\r\n e.preventDefault();\r\n }\r\n\r\n if (setMeasuredUrl) {\r\n var setBg = target.classList.contains('lazyload-bg');\r\n url = novicell.dynamicImage.getUrl(target);\r\n if (setBg) {\r\n target.parentNode.style.backgroundImage = 'url(' + url + ')';\r\n target.style.visibility = 'hidden';\r\n }\r\n target.src = url;\r\n //target.setAttribute('data-src', url);\r\n } else if (setSrcSet) {\r\n query = target.getAttribute('data-query-obj');\r\n var srcset = target.getAttribute('data-srcset').split(',');\r\n src = target.getAttribute('data-src');\r\n var newSrcset = [];\r\n srcset.forEach(function(src) {\r\n src = src.trim();\r\n src = src.split(' ');\r\n\r\n var url = src[0];\r\n var bp = src[1];\r\n var newSrc = novicell.dynamicImage.queryUrl(url, query);\r\n // set new srcset\r\n newSrcset.push(newSrc + ' ' + bp);\r\n });\r\n target.setAttribute('srcset', newSrcset.join(', '));\r\n // target.setAttribute('data-srcset', newSrcset.join(', '));\r\n\r\n target.setAttribute('src', novicell.dynamicImage.queryUrl(src, query));\r\n // target.setAttribute('data-src', novicell.dynamicImage.queryUrl(src, query));\r\n } else if (setSrc) {\r\n query = target.getAttribute('data-query-obj');\r\n src = target.getAttribute('data-src');\r\n url = novicell.dynamicImage.queryUrl(src, query);\r\n target.setAttribute('src', url);\r\n // target.setAttribute('data-src', url);\r\n }\r\n };\r\n\r\n/*\r\n * Check images\r\n */\r\nvar checkImages = function() {\r\n if (window.innerWidth > lastRefreshWidth + refreshWidth || window.innerWidth < lastRefreshWidth - refreshWidth) {\r\n var loadedElements = document.body.querySelectorAll('.lazyloaded');\r\n loadedElements.forEach(function(el) {\r\n el.classList.remove('lazyloaded');\r\n el.classList.add('lazyload');\r\n });\r\n lastRefreshWidth = window.innerWidth;\r\n }\r\n};\r\n\r\n/*\r\n * Eventlisteners\r\n */\r\ndocument.addEventListener('lazybeforeunveil', novicell.lazyload, true);\r\nwindow.addEventListener('resize', novicell.debounce(checkImages), 100, false);\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","var MarkerClusterer=function(){\"use strict\";var t=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function e(t,e){return t(e={exports:{}},e.exports),e.exports}var r=function(t){return t&&t.Math==Math&&t},n=r(\"object\"==typeof globalThis&&globalThis)||r(\"object\"==typeof window&&window)||r(\"object\"==typeof self&&self)||r(\"object\"==typeof t&&t)||Function(\"return this\")(),i=function(t){try{return!!t()}catch(t){return!0}},o=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),s={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,u={f:a&&!s.call({1:2},1)?function(t){var e=a(this,t);return!!e&&e.enumerable}:s},l=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},c={}.toString,h=function(t){return c.call(t).slice(8,-1)},p=\"\".split,f=i((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==h(t)?p.call(t,\"\"):Object(t)}:Object,g=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t},d=function(t){return f(g(t))},_=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t},v=function(t,e){if(!_(t))return t;var r,n;if(e&&\"function\"==typeof(r=t.toString)&&!_(n=r.call(t)))return n;if(\"function\"==typeof(r=t.valueOf)&&!_(n=r.call(t)))return n;if(!e&&\"function\"==typeof(r=t.toString)&&!_(n=r.call(t)))return n;throw TypeError(\"Can't convert object to primitive value\")},m={}.hasOwnProperty,y=function(t,e){return m.call(t,e)},x=n.document,S=_(x)&&_(x.createElement),M=!o&&!i((function(){return 7!=Object.defineProperty((t=\"div\",S?x.createElement(t):{}),\"a\",{get:function(){return 7}}).a;var t})),b=Object.getOwnPropertyDescriptor,C={f:o?b:function(t,e){if(t=d(t),e=v(e,!0),M)try{return b(t,e)}catch(t){}if(y(t,e))return l(!u.f.call(t,e),t[e])}},E=function(t){if(!_(t))throw TypeError(String(t)+\" is not an object\");return t},k=Object.defineProperty,I={f:o?k:function(t,e,r){if(E(t),e=v(e,!0),E(r),M)try{return k(t,e,r)}catch(t){}if(\"get\"in r||\"set\"in r)throw TypeError(\"Accessors not supported\");return\"value\"in r&&(t[e]=r.value),t}},w=o?function(t,e,r){return I.f(t,e,l(1,r))}:function(t,e,r){return t[e]=r,t},O=function(t,e){try{w(n,t,e)}catch(r){n[t]=e}return e},A=\"__core-js_shared__\",L=n[A]||O(A,{}),P=Function.toString;\"function\"!=typeof L.inspectSource&&(L.inspectSource=function(t){return P.call(t)});var T,z,R,j,B=L.inspectSource,Z=n.WeakMap,N=\"function\"==typeof Z&&/native code/.test(B(Z)),D=e((function(t){(t.exports=function(t,e){return L[t]||(L[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.5\",mode:\"global\",copyright:\"© 2020 Denis Pushkarev (zloirock.ru)\"})})),H=0,$=Math.random(),F=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++H+$).toString(36)},U=D(\"keys\"),G={},V=n.WeakMap;if(N){var W=new V,X=W.get,K=W.has,q=W.set;T=function(t,e){return q.call(W,t,e),e},z=function(t){return X.call(W,t)||{}},R=function(t){return K.call(W,t)}}else{var Y=U[j=\"state\"]||(U[j]=F(j));G[Y]=!0,T=function(t,e){return w(t,Y,e),e},z=function(t){return y(t,Y)?t[Y]:{}},R=function(t){return y(t,Y)}}var J={set:T,get:z,has:R,enforce:function(t){return R(t)?z(t):T(t,{})},getterFor:function(t){return function(e){var r;if(!_(e)||(r=z(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return r}}},Q=e((function(t){var e=J.get,r=J.enforce,i=String(String).split(\"String\");(t.exports=function(t,e,o,s){var a=!!s&&!!s.unsafe,u=!!s&&!!s.enumerable,l=!!s&&!!s.noTargetGet;\"function\"==typeof o&&(\"string\"!=typeof e||y(o,\"name\")||w(o,\"name\",e),r(o).source=i.join(\"string\"==typeof e?e:\"\")),t!==n?(a?!l&&t[e]&&(u=!0):delete t[e],u?t[e]=o:w(t,e,o)):u?t[e]=o:O(e,o)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&e(this).source||B(this)}))})),tt=n,et=function(t){return\"function\"==typeof t?t:void 0},rt=function(t,e){return arguments.length<2?et(tt[t])||et(n[t]):tt[t]&&tt[t][e]||n[t]&&n[t][e]},nt=Math.ceil,it=Math.floor,ot=function(t){return isNaN(t=+t)?0:(t>0?it:nt)(t)},st=Math.min,at=function(t){return t>0?st(ot(t),9007199254740991):0},ut=Math.max,lt=Math.min,ct=function(t,e){var r=ot(t);return r<0?ut(r+e,0):lt(r,e)},ht=function(t){return function(e,r,n){var i,o=d(e),s=at(o.length),a=ct(n,s);if(t&&r!=r){for(;s>a;)if((i=o[a++])!=i)return!0}else for(;s>a;a++)if((t||a in o)&&o[a]===r)return t||a||0;return!t&&-1}},pt={includes:ht(!0),indexOf:ht(!1)},ft=pt.indexOf,gt=function(t,e){var r,n=d(t),i=0,o=[];for(r in n)!y(G,r)&&y(n,r)&&o.push(r);for(;e.length>i;)y(n,r=e[i++])&&(~ft(o,r)||o.push(r));return o},dt=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"],_t=dt.concat(\"length\",\"prototype\"),vt={f:Object.getOwnPropertyNames||function(t){return gt(t,_t)}},mt={f:Object.getOwnPropertySymbols},yt=rt(\"Reflect\",\"ownKeys\")||function(t){var e=vt.f(E(t)),r=mt.f;return r?e.concat(r(t)):e},xt=function(t,e){for(var r=yt(e),n=I.f,i=C.f,o=0;o1?arguments[1]:void 0)}});var Dt,Ht,$t=Array.isArray||function(t){return\"Array\"==h(t)},Ft=function(t,e,r){var n=v(e);n in t?I.f(t,n,l(0,r)):t[n]=r},Ut=!!Object.getOwnPropertySymbols&&!i((function(){return!String(Symbol())})),Gt=Ut&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator,Vt=D(\"wks\"),Wt=n.Symbol,Xt=Gt?Wt:Wt&&Wt.withoutSetter||F,Kt=function(t){return y(Vt,t)||(Ut&&y(Wt,t)?Vt[t]=Wt[t]:Vt[t]=Xt(\"Symbol.\"+t)),Vt[t]},qt=rt(\"navigator\",\"userAgent\")||\"\",Yt=n.process,Jt=Yt&&Yt.versions,Qt=Jt&&Jt.v8;Qt?Ht=(Dt=Qt.split(\".\"))[0]+Dt[1]:qt&&(!(Dt=qt.match(/Edge\\/(\\d+)/))||Dt[1]>=74)&&(Dt=qt.match(/Chrome\\/(\\d+)/))&&(Ht=Dt[1]);var te=Ht&&+Ht,ee=Kt(\"species\"),re=function(t){return te>=51||!i((function(){var e=[];return(e.constructor={})[ee]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},ne=re(\"slice\"),ie=zt(\"slice\",{ACCESSORS:!0,0:0,1:2}),oe=Kt(\"species\"),se=[].slice,ae=Math.max;Ot({target:\"Array\",proto:!0,forced:!ne||!ie},{slice:function(t,e){var r,n,i,o=d(this),s=at(o.length),a=ct(t,s),u=ct(void 0===e?s:e,s);if($t(o)&&(\"function\"!=typeof(r=o.constructor)||r!==Array&&!$t(r.prototype)?_(r)&&null===(r=r[oe])&&(r=void 0):r=void 0,r===Array||void 0===r))return se.call(o,a,u);for(n=new(void 0===r?Array:r)(ae(u-a,0)),i=0;ade)throw TypeError(_e);for(i=ce(u,n),o=0;ol-n+r;o--)delete u[o-1]}else if(r>n)for(o=l-n;o>c;o--)a=o+r-1,(s=o+n-1)in u?u[a]=u[s]:delete u[a];for(o=0;o=0:a>u;u+=l)u in s&&(i=r(i,s[u],u,o));return i}},Be={left:je(!1),right:je(!0)}.left,Ze=At(\"reduce\"),Ne=zt(\"reduce\",{1:0});Ot({target:\"Array\",proto:!0,forced:!Ze||!Ne},{reduce:function(t){return Be(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}});var De=Object.keys||function(t){return gt(t,dt)};function He(t,e){return RegExp(t,e)}Ot({target:\"Object\",stat:!0,forced:i((function(){De(1)}))},{keys:function(t){return De(ue(t))}});var $e,Fe,Ue={UNSUPPORTED_Y:i((function(){var t=He(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")})),BROKEN_CARET:i((function(){var t=He(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")}))},Ge=RegExp.prototype.exec,Ve=String.prototype.replace,We=Ge,Xe=($e=/a/,Fe=/b*/g,Ge.call($e,\"a\"),Ge.call(Fe,\"a\"),0!==$e.lastIndex||0!==Fe.lastIndex),Ke=Ue.UNSUPPORTED_Y||Ue.BROKEN_CARET,qe=void 0!==/()??/.exec(\"\")[1];(Xe||qe||Ke)&&(We=function(t){var e,r,n,i,o=this,s=Ke&&o.sticky,a=be.call(o),u=o.source,l=0,c=t;return s&&(-1===(a=a.replace(\"y\",\"\")).indexOf(\"g\")&&(a+=\"g\"),c=String(t).slice(o.lastIndex),o.lastIndex>0&&(!o.multiline||o.multiline&&\"\\n\"!==t[o.lastIndex-1])&&(u=\"(?: \"+u+\")\",c=\" \"+c,l++),r=new RegExp(\"^(?:\"+u+\")\",a)),qe&&(r=new RegExp(\"^\"+u+\"$(?!\\\\s)\",a)),Xe&&(e=o.lastIndex),n=Ge.call(s?r:o,c),s?n?(n.input=n.input.slice(l),n[0]=n[0].slice(l),n.index=o.lastIndex,o.lastIndex+=n[0].length):o.lastIndex=0:Xe&&n&&(o.lastIndex=o.global?n.index+n[0].length:e),qe&&n&&n.length>1&&Ve.call(n[0],r,(function(){for(i=1;i\")})),tr=\"$0\"===\"a\".replace(/./,\"$0\"),er=Kt(\"replace\"),rr=!!/./[er]&&\"\"===/./[er](\"a\",\"$0\"),nr=!i((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r=\"ab\".split(t);return 2!==r.length||\"a\"!==r[0]||\"b\"!==r[1]})),ir=function(t,e,r,n){var o=Kt(t),s=!i((function(){var e={};return e[o]=function(){return 7},7!=\"\"[t](e)})),a=s&&!i((function(){var e=!1,r=/a/;return\"split\"===t&&((r={}).constructor={},r.constructor[Je]=function(){return r},r.flags=\"\",r[o]=/./[o]),r.exec=function(){return e=!0,null},r[o](\"\"),!e}));if(!s||!a||\"replace\"===t&&(!Qe||!tr||rr)||\"split\"===t&&!nr){var u=/./[o],l=r(o,\"\"[t],(function(t,e,r,n,i){return e.exec===Ye?s&&!i?{done:!0,value:u.call(e,r,n)}:{done:!0,value:t.call(r,e,n)}:{done:!1}}),{REPLACE_KEEPS_$0:tr,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:rr}),c=l[0],h=l[1];Q(String.prototype,t,c),Q(RegExp.prototype,o,2==e?function(t,e){return h.call(t,this,e)}:function(t){return h.call(t,this)})}n&&w(RegExp.prototype[o],\"sham\",!0)},or=function(t){return function(e,r){var n,i,o=String(g(e)),s=ot(r),a=o.length;return s<0||s>=a?t?\"\":void 0:(n=o.charCodeAt(s))<55296||n>56319||s+1===a||(i=o.charCodeAt(s+1))<56320||i>57343?t?o.charAt(s):n:t?o.slice(s,s+2):i-56320+(n-55296<<10)+65536}},sr={codeAt:or(!1),charAt:or(!0)}.charAt,ar=function(t,e,r){return e+(r?sr(t,e).length:1)},ur=function(t,e){var r=t.exec;if(\"function\"==typeof r){var n=r.call(t,e);if(\"object\"!=typeof n)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return n}if(\"RegExp\"!==h(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return Ye.call(t,e)},lr=Math.max,cr=Math.min,hr=Math.floor,pr=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,fr=/\\$([$&'`]|\\d\\d?)/g;ir(\"replace\",2,(function(t,e,r,n){var i=n.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,o=n.REPLACE_KEEPS_$0,s=i?\"$\":\"$0\";return[function(r,n){var i=g(this),o=null==r?void 0:r[t];return void 0!==o?o.call(r,i,n):e.call(String(i),r,n)},function(t,n){if(!i&&o||\"string\"==typeof n&&-1===n.indexOf(s)){var u=r(e,t,this,n);if(u.done)return u.value}var l=E(t),c=String(this),h=\"function\"==typeof n;h||(n=String(n));var p=l.global;if(p){var f=l.unicode;l.lastIndex=0}for(var g=[];;){var d=ur(l,c);if(null===d)break;if(g.push(d),!p)break;\"\"===String(d[0])&&(l.lastIndex=ar(c,at(l.lastIndex),f))}for(var _,v=\"\",m=0,y=0;y=m&&(v+=c.slice(m,S)+I,m=S+x.length)}return v+c.slice(m)}];function a(t,r,n,i,o,s){var a=n+t.length,u=i.length,l=fr;return void 0!==o&&(o=ue(o),l=pr),e.call(s,l,(function(e,s){var l;switch(s.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return r.slice(0,n);case\"'\":return r.slice(a);case\"<\":l=o[s.slice(1,-1)];break;default:var c=+s;if(0===c)return e;if(c>u){var h=hr(c/10);return 0===h?e:h<=u?void 0===i[h-1]?s.charAt(1):i[h-1]+s.charAt(1):e}l=i[c-1]}return void 0===l?\"\":l}))}}));var gr=Kt(\"match\"),dr=Kt(\"species\"),_r=[].push,vr=Math.min,mr=4294967295,yr=!i((function(){return!RegExp(mr,\"y\")}));ir(\"split\",2,(function(t,e,r){var n;return n=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,r){var n,i,o=String(g(this)),s=void 0===r?mr:r>>>0;if(0===s)return[];if(void 0===t)return[o];if(!_(n=t)||!(void 0!==(i=n[gr])?i:\"RegExp\"==h(n)))return e.call(o,t,s);for(var a,u,l,c=[],p=(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\"),f=0,d=new RegExp(t.source,p+\"g\");(a=Ye.call(d,o))&&!((u=d.lastIndex)>f&&(c.push(o.slice(f,a.index)),a.length>1&&a.index=s));)d.lastIndex===a.index&&d.lastIndex++;return f===o.length?!l&&d.test(\"\")||c.push(\"\"):c.push(o.slice(f)),c.length>s?c.slice(0,s):c}:\"0\".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:e.call(this,t,r)}:e,[function(e,r){var i=g(this),o=null==e?void 0:e[t];return void 0!==o?o.call(e,i,r):n.call(String(i),e,r)},function(t,i){var o=r(n,t,this,i,n!==e);if(o.done)return o.value;var s=E(t),a=String(this),u=function(t,e){var r,n=E(t).constructor;return void 0===n||null==(r=E(n)[dr])?e:Re(r)}(s,RegExp),l=s.unicode,c=(s.ignoreCase?\"i\":\"\")+(s.multiline?\"m\":\"\")+(s.unicode?\"u\":\"\")+(yr?\"y\":\"g\"),h=new u(yr?s:\"^(?:\"+s.source+\")\",c),p=void 0===i?mr:i>>>0;if(0===p)return[];if(0===a.length)return null===ur(h,a)?[a]:[];for(var f=0,g=0,d=[];g=332&&google.maps.event.addDomListener(this.div_,\"touchstart\",(function(t){t.stopPropagation()})),google.maps.event.addDomListener(this.div_,\"click\",(function(i){if(t=!1,!e){if(google.maps.event.trigger(n,\"click\",r.cluster_),google.maps.event.trigger(n,\"clusterclick\",r.cluster_),n.getZoomOnClick()){var o=n.getMaxZoom(),s=r.cluster_.getBounds();n.getMap().fitBounds(s),setTimeout((function(){n.getMap().fitBounds(s),null!==o&&n.getMap().getZoom()>o&&n.getMap().setZoom(o+1)}),100)}i.cancelBubble=!0,i.stopPropagation&&i.stopPropagation()}})),google.maps.event.addDomListener(this.div_,\"mouseover\",(function(){google.maps.event.trigger(n,\"mouseover\",r.cluster_)})),google.maps.event.addDomListener(this.div_,\"mouseout\",(function(){google.maps.event.trigger(n,\"mouseout\",r.cluster_)}))},e.prototype.onRemove=function(){this.div_&&this.div_.parentNode&&(this.hide(),google.maps.event.removeListener(this.boundsChangedListener_),google.maps.event.clearInstanceListeners(this.div_),this.div_.parentNode.removeChild(this.div_),this.div_=null)},e.prototype.draw=function(){if(this.visible_){var t=this.getPosFromLatLng_(this.center_);this.div_.style.top=t.y+\"px\",this.div_.style.left=t.x+\"px\"}},e.prototype.hide=function(){this.div_&&(this.div_.style.display=\"none\"),this.visible_=!1},e.prototype.show=function(){this.div_&&(this.div_.className=this.className_,this.div_.style.cssText=this.createCss_(this.getPosFromLatLng_(this.center_)),this.div_.innerHTML=(this.style.url?this.getImageElementHtml():\"\")+this.getLabelDivHtml(),void 0===this.sums_.title||\"\"===this.sums_.title?this.div_.title=this.cluster_.getMarkerClusterer().getTitle():this.div_.title=this.sums_.title,this.div_.style.display=\"\"),this.visible_=!0},e.prototype.getLabelDivHtml=function(){return'\\n
\\n '+this.sums_.text+\"\\n
\\n\"},e.prototype.getImageElementHtml=function(){var t=(this.style.backgroundPosition||\"0 0\").split(\" \"),e=parseInt(t[0].replace(/^\\s+|\\s+$/g,\"\"),10),r=parseInt(t[1].replace(/^\\s+|\\s+$/g,\"\"),10),n={};if(this.cluster_.getMarkerClusterer().getEnableRetinaIcons())n={width:Mr(this.style.width),height:Mr(this.style.height)};else{var i=[-1*r,-1*e+this.style.width,-1*r+this.style.height,-1*e];n={clip:\"rect(\"+i[0]+\"px, \"+i[1]+\"px, \"+i[2]+\"px, \"+i[3]+\"px)\"}}var o=Sr(Le({position:\"absolute\",top:Mr(r),left:Mr(e)},n));return'\"'+this.sums_.text+'\"'},e.prototype.useStyle=function(t){this.sums_=t;var e=Math.max(0,t.index-1);e=Math.min(this.styles_.length-1,e),this.style=this.styles_[e],this.anchorText_=this.style.anchorText||[0,0],this.anchorIcon_=this.style.anchorIcon||[Math.floor(this.style.height/2),Math.floor(this.style.width/2)],this.className_=this.cluster_.getMarkerClusterer().getClusterClass()+\" \"+(this.style.className||\"cluster-\"+e)},e.prototype.setCenter=function(t){this.center_=t},e.prototype.createCss_=function(t){return Sr({\"z-index\":\"\"+this.cluster_.getMarkerClusterer().getZIndex(),top:Mr(t.y),left:Mr(t.x),width:Mr(this.style.width),height:Mr(this.style.height),cursor:\"pointer\",position:\"absolute\",\"-webkit-user-select\":\"none\",\"-khtml-user-select\":\"none\",\"-moz-user-select\":\"none\",\"-o-user-select\":\"none\",\"user-select\":\"none\"})},e.prototype.getPosFromLatLng_=function(t){var e=this.getProjection().fromLatLngToDivPixel(t);return e.x=Math.floor(e.x-this.anchorIcon_[1]),e.y=Math.floor(e.y-this.anchorIcon_[0]),e},e}(xr),Cr=function(){function t(t){this.markerClusterer_=t,this.map_=this.markerClusterer_.getMap(),this.minClusterSize_=this.markerClusterer_.getMinimumClusterSize(),this.averageCenter_=this.markerClusterer_.getAverageCenter(),this.markers_=[],this.center_=null,this.bounds_=null,this.clusterIcon_=new br(this,this.markerClusterer_.getStyles())}return t.prototype.getSize=function(){return this.markers_.length},t.prototype.getMarkers=function(){return this.markers_},t.prototype.getCenter=function(){return this.center_},t.prototype.getMap=function(){return this.map_},t.prototype.getMarkerClusterer=function(){return this.markerClusterer_},t.prototype.getBounds=function(){for(var t=new google.maps.LatLngBounds(this.center_,this.center_),e=this.getMarkers(),r=0;ro)t.getMap()!==this.map_&&t.setMap(this.map_);else if(ie)this.clusterIcon_.hide();else if(t0))for(var t=0;t3?new google.maps.LatLngBounds(this.getMap().getBounds().getSouthWest(),this.getMap().getBounds().getNorthEast()):new google.maps.LatLngBounds(new google.maps.LatLng(85.02070771743472,-178.48388434375),new google.maps.LatLng(-85.08136444384544,178.00048865625));for(var n=this.getExtendedBounds(r),i=Math.min(t+this.batchSize_,this.markers_.length),o=t;o 1) {\r\n var newValue = --currentValue;\r\n numberField.value = newValue;\r\n }\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n })();\r\n","'use strict';\r\n\r\nvar novicell = novicell || {};\r\nnovicell.anchorLinks =\r\n novicell.anchorLinks ||\r\n (function() {\r\n function init() {\r\n if (location.hash) {\r\n var findId = location.hash.substring(1);\r\n var node = document.getElementById(findId);\r\n scrollToElement(node);\r\n }\r\n var body = document.querySelector('body');\r\n body.addEventListener('click', function(e) {\r\n if (e.path != undefined) {\r\n for (var i = 0; i < e.path.length; i++) {\r\n if (\r\n e.path[i].tagName != undefined &&\r\n e.path[i].tagName.toLowerCase() == 'a' &&\r\n e.path[i].getAttribute('href').indexOf('#') != -1\r\n ) {\r\n var targetId = e.path[i]\r\n .getAttribute('href')\r\n .split('#')[1];\r\n var node = document.getElementById(targetId);\r\n if (node != null) {\r\n e.preventDefault();\r\n scrollToElement(node);\r\n window.location.hash = targetId;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function scrollToElement(node) {\r\n setTimeout(function() {\r\n var siteheader = document.querySelector('.o-siteheader');\r\n var yourHeight = siteheader.offsetHeight;\r\n\r\n // scroll to your element\r\n node.scrollIntoView(true);\r\n\r\n // now account for fixed header\r\n var scrolledY = window.scrollY;\r\n\r\n if (scrolledY) {\r\n window.scroll(0, scrolledY - yourHeight);\r\n }\r\n }, 1);\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n })();\r\n","'use strict';\r\n\r\nvar novicell = novicell || {};\r\nnovicell.cart =\r\n novicell.cart ||\r\n (function() {\r\n /* \r\n ** This function is required, because the razor code is not recompiled when a user clicks the back button in a browser.\r\n ** As such a product page might be rendered as if it was in a normal EIVA context, when it is in fact a My EIVA context\r\n */\r\n function addToCart(event, type) {\r\n event.preventDefault();\r\n var form = event.currentTarget.closest('form');\r\n var submitButton = document.getElementById('js-submit-button');\r\n executeAjaxCall('api/order/getcartinfo', function(response) {\r\n var cart = JSON.parse(response);\r\n var isMyEivaOrder = cart.IsMyEivaOrder;\r\n var orderContainsSoftware = cart.ContainsSoftware;\r\n if (isMyEivaOrder) {\r\n novicell.helpers.openOverlay('#js-novi-backdrop--my-eiva-order-info', event);\r\n } else if (type == 'software' && !orderContainsSoftware) {\r\n if (form.checkValidity()) {\r\n novicell.helpers.openOverlay('#js-novi-backdrop--my-eiva-link-info', event);\r\n } else {\r\n submitButton.click();\r\n }\r\n } else {\r\n submitButton.click();\r\n }\r\n });\r\n }\r\n\r\n function addToMyEiva(event, elem) {\r\n event.preventDefault();\r\n if (elem == null) return;\r\n\r\n var endpoint = elem.getAttribute(\"data-href\");\r\n var productId = elem.getAttribute(\"data-product-id\");\r\n var variantId = elem.getAttribute(\"data-variant-id\");\r\n var licenseAmount = elem.getAttribute(\"data-license-amount\");\r\n var subscriptionDuration = elem.getAttribute(\"data-subscription-duration\");\r\n\r\n if (endpoint && productId && variantId && licenseAmount && subscriptionDuration) {\r\n var url = `${endpoint}?p[0]=${productId}&t[0]=${variantId}&q[0]=${licenseAmount}&s[0]=${subscriptionDuration}`;\r\n location.href = url;\r\n }\r\n }\r\n\r\n function executeAjaxCall(url, callback, formData = null) {\r\n var xhttp = new XMLHttpRequest();\r\n \r\n xhttp.onreadystatechange = function () {\r\n if (this.readyState === 4 && this.status === 200) {\r\n if (callback !== undefined) {\r\n callback(this.responseText);\r\n }\r\n }\r\n };\r\n \r\n if (formData === null) {\r\n xhttp.open('GET', url, true);\r\n xhttp.send();\r\n } else {\r\n xhttp.open('POST', url, true);\r\n xhttp.send(formData);\r\n }\r\n }\r\n\r\n return {\r\n addToCart: addToCart,\r\n addToMyEiva: addToMyEiva\r\n };\r\n })();\r\n","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.checkout = novicell.checkout || function () {\r\n var radioButtons = null;\r\n var deliveryAddressForm = null;\r\n var deliveryAddressFields=null;\r\n function init() {\r\n \r\n deliveryAddressForm = document.querySelector('.o-checkout__deliveryAddress');\r\n if(deliveryAddressForm != null){\r\n initDeliveryAddress();\r\n }\r\n\r\n }\r\n function initDeliveryAddress() {\r\n deliveryAddressFields = deliveryAddressForm.querySelectorAll('input');\r\n radioButtons = document.querySelectorAll('input[name=useSameAddressForDelivery]');\r\n if(radioButtons.length){\r\n for(var i = 0; i < radioButtons.length ; i++){\r\n radioButtons[i].addEventListener('click',deliveryAddressCheck);\r\n }\r\n deliveryAddressCheck();\r\n }\r\n }\r\n\r\n function deliveryAddressCheck(){\r\n var disabledStatus=true;\r\n for(var i = 0 ; i < radioButtons.length ; i++){\r\n if(radioButtons[i].checked){\r\n if(radioButtons[i].id == 'sameAddressForDeliveryYes'){\r\n deliveryAddressForm.classList.remove('o-checkout__deliveryAddress--show');\r\n }else{\r\n deliveryAddressForm.classList.add('o-checkout__deliveryAddress--show');\r\n disabledStatus = false;\r\n }\r\n for(var j = 0; j < deliveryAddressFields.length; j++){\r\n deliveryAddressFields[j].disabled = disabledStatus;\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","\"use strict\";\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.cookieListFormatting =\r\n novicell.cookieListFormatting ||\r\n new (function() {\r\n var cookieScriptUrl = \"\";\r\n this.init = function() {\r\n var scriptHolderTag = document.getElementById(\r\n \"js-cookie-declaration\"\r\n );\r\n if (!scriptHolderTag) {\r\n return;\r\n }\r\n cookieScriptUrl = scriptHolderTag.getAttribute(\"data-src\");\r\n const self = this;\r\n const tag = document.createElement(\"script\");\r\n tag.onload = function loadAndAddHeadersForMobile() {\r\n setTimeout(() => {\r\n self.addHeaderAttributes();\r\n }, 150);\r\n };\r\n tag.src = cookieScriptUrl;\r\n\r\n scriptHolderTag.appendChild(tag);\r\n };\r\n\r\n this.addHeaderAttributes = function() {\r\n const tableElements = document.getElementsByClassName(\r\n \"CookieDeclarationTable\"\r\n );\r\n for (let a = 0; a < tableElements.length; a += 1) {\r\n const headers = [];\r\n const headerElements = tableElements[a].getElementsByClassName(\r\n \"CookieDeclarationTableHeader\"\r\n );\r\n for (let i = 0; i < headerElements.length; i += 1) {\r\n headers[i] = headerElements[i].textContent;\r\n }\r\n\r\n const rowElements = tableElements[a].querySelectorAll(\r\n \"tbody tr\"\r\n );\r\n for (let b = 0; b < rowElements.length; b += 1) {\r\n const row = rowElements[b];\r\n const cells = row.getElementsByClassName(\r\n \"CookieDeclarationTableCell\"\r\n );\r\n for (let c = 0; c < cells.length; c += 1) {\r\n cells[c].setAttribute(\"data-mobile-header\", headers[c]);\r\n }\r\n }\r\n }\r\n };\r\n })();\r\n","'use strict';\r\n\r\n/**\r\n * @name Novicell Dynamic Image\r\n * @author Jonas Havmøller & Danni Larsen & Trine Banke Brenneche\r\n */\r\n\r\nvar novicell = novicell || {};\r\nnovicell.dynamicImage =\r\n novicell.dynamicImage ||\r\n (function() {\r\n function isHiDPI() {\r\n var mediaQuery =\r\n '(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.5dppx)';\r\n if (window.devicePixelRatio > 1) {\r\n return true;\r\n }\r\n if (window.matchMedia && window.matchMedia(mediaQuery).matches) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function getUrl(el) {\r\n var baseUrl = el.getAttribute('data-src');\r\n var parentHeight = el.parentNode.innerHeight || el.parentNode.offsetHeight;\r\n var parentWidth = el.parentNode.innerWidth || el.parentNode.offsetWidth;\r\n\r\n var devicePixelRatio = isHiDPI() ? 2 : 1;\r\n\r\n var pixelInterval = 50;\r\n // parentWidth = parentWidth !== null ? parentWidth + pixelInterval - (parentWidth % pixelInterval) : null; // round to the nearest 50\r\n // parentHeight = parentHeight !== null ? parentHeight + pixelInterval - (parentHeight % pixelInterval) : null; // round to the nearest 50\r\n\r\n var parentAspectRatio = parentHeight / parentWidth;\r\n\r\n var width = parentWidth + pixelInterval - (parentWidth % pixelInterval);\r\n var height = Math.ceil(width * parentAspectRatio);\r\n\r\n width = width * devicePixelRatio;\r\n height = height * devicePixelRatio;\r\n\r\n baseUrl += width ? nextQuerySign(baseUrl) + 'width=' + width : '';\r\n baseUrl += height !== null ? nextQuerySign(baseUrl) + 'height=' + height : '';\r\n\r\n var queryObjStr = el.getAttribute('data-query-obj');\r\n baseUrl = queryUrl(baseUrl, queryObjStr);\r\n return baseUrl;\r\n }\r\n\r\n function nextQuerySign(url) {\r\n return url.indexOf('?') > -1 ? '&' : '?';\r\n }\r\n\r\n function queryUrl(url, queryObjStr) {\r\n if (queryObjStr) {\r\n var queryObj = JSON.parse(queryObjStr);\r\n\r\n Object.keys(queryObj).forEach(function(key) {\r\n url += queryObj[key] !== null ? nextQuerySign(url) + key + '=' + queryObj[key] : '';\r\n });\r\n }\r\n return url;\r\n }\r\n\r\n return {\r\n queryUrl: queryUrl,\r\n getUrl: getUrl\r\n };\r\n })();\r\n","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.featureComparison = novicell.featureComparison || function () {\r\n \r\n function init() {\r\n var featureComparison = document.querySelectorAll('.o-featureComparison table');\r\n if(featureComparison.length){\r\n for(var i = 0; i < featureComparison.length;i++){\r\n var currentFeatureTable = featureComparison[i];\r\n \r\n //make wrappper\r\n wrap(currentFeatureTable,'div');\r\n currentFeatureTable.parentNode.classList.add('o-featureComparison__tableHolderOuter');\r\n wrap(currentFeatureTable,'div');\r\n currentFeatureTable.parentNode.classList.add('o-featureComparison__tableHolderInner');\r\n \r\n //prepend clone\r\n var copyOfFeatureComparison = currentFeatureTable.cloneNode(true);\r\n copyOfFeatureComparison.classList.add('o-featureComparison__cloneTable');\r\n var featureComparisonParent =novicell.helpers.closestByClass(currentFeatureTable,'o-featureComparison__tableHolderOuter'); \r\n featureComparisonParent.insertBefore(copyOfFeatureComparison, currentFeatureTable.parentNode);\r\n }\r\n \r\n var outerHolders = document.querySelectorAll('.o-featureComparison__tableHolderOuter');\r\n if(outerHolders.length){\r\n for(i = 0; i < outerHolders.length;i++){\r\n var span = document.createElement('span');\r\n span.classList.add('o-featureComparison__scrollInfo');\r\n span.innerText=('Scroll »');\r\n outerHolders[i].parentNode.insertBefore(span, outerHolders[i]);\r\n }\r\n }\r\n }\r\n }\r\n \r\n function wrap(selection, tag){\r\n var div = document.createElement(tag);\r\n selection.parentElement.insertBefore(div, selection);\r\n div.appendChild(selection); \r\n }\r\n \r\n \r\n return {\r\n init: init\r\n };\r\n \r\n}();\r\n","'use strict';\r\n\r\nvar novicell = novicell || {};\r\nnovicell.helpers = novicell.helpers || function () {\r\n var olay = \"\";\r\n function addListenerMulti(el, s, fn){\r\n s.split(' ').forEach(\r\n\r\n function (e) {\r\n el.addEventListener(e, fn, false);\r\n }\r\n );\r\n }\r\n function closestByClass (el, clazz) {\r\n // Traverse the DOM up with a while loop\r\n while (el.classList == undefined || !el.classList.contains(clazz)) {\r\n // Increment the loop to the parent node\r\n el = el.parentNode;\r\n if (!el ) {\r\n return null;\r\n }\r\n }\r\n // At this point, the while loop has stopped and `el` represents the element that has\r\n // the class you specified in the second parameter of the function `clazz`\r\n \r\n // Then return the matched element\r\n return el;\r\n }\r\n\r\n function prepend(outerTag, elementToPrepend) { \r\n outerTag.insertBefore(elementToPrepend ,outerTag.children[0]); \r\n }\r\n\r\n function addCSSRule(sheet, selector, rules, index) {\r\n if(\"insertRule\" in sheet) {\r\n sheet.insertRule(selector + \"{\" + rules + \"}\", index);\r\n }\r\n else if(\"addRule\" in sheet) {\r\n sheet.addRule(selector, rules, index);\r\n }\r\n }\r\n\r\n function whichTransitionEvent(){\r\n var t;\r\n var el = document.createElement('fakeelement');\r\n var transitions = {\r\n 'transition':'transitionend',\r\n 'OTransition':'oTransitionEnd',\r\n 'MozTransition':'transitionend',\r\n 'WebkitTransition':'webkitTransitionEnd'\r\n };\r\n for(t in transitions){\r\n if( el.style[t] !== undefined ){\r\n return transitions[t];\r\n }\r\n }\r\n }\r\n\r\n function getAllUrlParams(url){\r\n // get query string from url (optional) or window\r\n var queryString = url ? url.split('?')[1] : window.location.search.slice(1);\r\n\r\n // we'll store the parameters here\r\n var obj = {};\r\n\r\n // if query string exists\r\n if (queryString) {\r\n\r\n // stuff after # is not part of query string, so get rid of it\r\n queryString = queryString.split('#')[0];\r\n\r\n // split our query string into its component parts\r\n var arr = queryString.split('&');\r\n\r\n for (var i=0; i\r\n * @requires https://github.com/text-mask/text-mask/tree/master/vanilla\r\n */\r\n\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.inputMasking = novicell.inputMasking || new function () {\r\n\r\n this.init = function () {\r\n\r\n const masks = [\r\n {\r\n \"selector\": \".js-mask--phone\",\r\n \"mask\": [/\\d/, /\\d/, ' ', /\\d/, /\\d/, ' ', /\\d/, /\\d/, ' ', /\\d/, /\\d/],\r\n \"pattern\": \"\"\r\n },\r\n {\r\n \"selector\": \".js-mask--cpr\",\r\n \"mask\": [/\\d/, /\\d/, ' ',/\\d/, /\\d/, ' ', /\\d/, /\\d/,' ', '-', ' ', /\\d/, /\\d/, /\\d/, /\\d/],\r\n \"pattern\": \"\"\r\n },\r\n {\r\n \"selector\": \".js-mask--bank\",\r\n \"mask\": [/\\d/, /\\d/, /\\d/, /\\d/, ' ','-',' ', /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/],\r\n \"pattern\": \"\"\r\n },\r\n {\r\n \"selector\": \".js-mask--date1\",\r\n \"mask\": [/[0-3]/, /\\d/, '/', /[0-1]/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/],\r\n \"pattern\": \"\"\r\n }\r\n ];\r\n\r\n for (let i = 0; i < masks.length; i++) {\r\n\r\n let input = document.querySelector(masks[i].selector);\r\n let mask = masks[i].mask;\r\n let pattern = masks[i].pattern;\r\n\r\n \r\n if(input && mask){\r\n\r\n //Patterns is work in progress\r\n if(pattern){\r\n input.setAttribute(\"pattern\", pattern);\r\n }\r\n\r\n masks[i].masking = vanillaTextMask.maskInput({\r\n inputElement: input,\r\n mask: mask,\r\n guide: false\r\n });\r\n }\r\n }\r\n \r\n // Calling `vanillaTextMask.maskInput` adds event listeners to the input element. \r\n // If you need to remove those event listeners, you can call: maskedInputController.destroy()\r\n };\r\n}();","// jscs:disable\r\n/*jshint ignore:start*/\r\nvar mailchimpFormular=document.getElementById('#mc_embed_signup');\r\nif(mailchimpFormular != null){\r\n !function (e, t, r) { \"use strict\"; Object.defineProperty(HTMLInputElement.prototype, \"validity\", { get: function () { return function (e) { var r = e.getAttribute(\"type\") || input.nodeName.toLowerCase(), i = \"number\" === r || \"range\" === r, a = e.value.length, n = !0; if (\"radio\" === e.type && e.name) { var s = t.getElementsByName(e.name); if (s.length > 0) for (var o = 0; o < s.length; o++) if (s[o].form === e.form && e.checked) { e = s[o]; break } } var l = { badInput: i && a > 0 && !/[-+]?[0-9]/.test(e.value), patternMismatch: e.hasAttribute(\"pattern\") && a > 0 && !1 === new RegExp(e.getAttribute(\"pattern\")).test(e.value), rangeOverflow: e.hasAttribute(\"max\") && i && e.value > 0 && Number(e.value) > Number(e.getAttribute(\"max\")), rangeUnderflow: e.hasAttribute(\"min\") && i && e.value > 0 && Number(e.value) < Number(e.getAttribute(\"min\")), stepMismatch: i && (e.hasAttribute(\"step\") && \"any\" !== e.getAttribute(\"step\") && Number(e.value) % Number(e.getAttribute(\"step\")) != 0 || !e.hasAttribute(\"step\") && Number(e.value) % 1 != 0), tooLong: e.hasAttribute(\"maxLength\") && e.getAttribute(\"maxLength\") > 0 && a > parseInt(e.getAttribute(\"maxLength\"), 10), tooShort: e.hasAttribute(\"minLength\") && e.getAttribute(\"minLength\") > 0 && a > 0 && a < parseInt(e.getAttribute(\"minLength\"), 10), typeMismatch: a > 0 && (\"email\" === r && !/^([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22)(\\x2e([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22))*\\x40([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x5b([^\\x0d\\x5b-\\x5d\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x5d)(\\x2e([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x5b([^\\x0d\\x5b-\\x5d\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x5d))*$/.test(e.value) || \"url\" === r && !/^(?:(?:https?|HTTPS?|ftp|FTP):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-zA-Z\\u00a1-\\uffff0-9]-*)*[a-zA-Z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-zA-Z\\u00a1-\\uffff0-9]-*)*[a-zA-Z\\u00a1-\\uffff0-9]+)*)(?::\\d{2,5})?(?:[\\/?#]\\S*)?$/.test(e.value)), valueMissing: e.hasAttribute(\"required\") && ((\"checkbox\" === r || \"radio\" === r) && !e.checked || \"select\" === r && e.options[e.selectedIndex].value < 1 || \"checkbox\" !== r && \"radio\" !== r && \"select\" !== r && a < 1) }; for (var u in l) if (l.hasOwnProperty(u) && l[u]) { n = !1; break } return l.valid = n, l }(this) }, configurable: !0 }) }(window, document), \"document\" in self && (\"classList\" in document.createElement(\"_\") && (!document.createElementNS || \"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\")) || function (e) { \"use strict\"; if (\"Element\" in e) { var t = \"classList\", r = \"prototype\", i = e.Element[r], a = Object, n = String[r].trim || function () { return this.replace(/^\\s+|\\s+$/g, \"\") }, s = Array[r].indexOf || function (e) { for (var t = 0, r = this.length; t < r; t++) if (t in this && this[t] === e) return t; return -1 }, o = function (e, t) { this.name = e, this.code = DOMException[e], this.message = t }, l = function (e, t) { if (\"\" === t) throw new o(\"SYNTAX_ERR\", \"An invalid or illegal string was specified\"); if (/\\s/.test(t)) throw new o(\"INVALID_CHARACTER_ERR\", \"String contains an invalid character\"); return s.call(e, t) }, u = function (e) { for (var t = n.call(e.getAttribute(\"class\") || \"\"), r = t ? t.split(/\\s+/) : [], i = 0, a = r.length; i < a; i++) this.push(r[i]); this._updateClassName = function () { e.setAttribute(\"class\", this.toString()) } }, c = u[r] = [], f = function () { return new u(this) }; if (o[r] = Error[r], c.item = function (e) { return this[e] || null }, c.contains = function (e) { return -1 !== l(this, e += \"\") }, c.add = function () { var e, t = arguments, r = 0, i = t.length, a = !1; do { e = t[r] + \"\", -1 === l(this, e) && (this.push(e), a = !0) } while (++r < i); a && this._updateClassName() }, c.remove = function () { var e, t, r = arguments, i = 0, a = r.length, n = !1; do { for (e = r[i] + \"\", t = l(this, e) ; -1 !== t;) this.splice(t, 1), n = !0, t = l(this, e) } while (++i < a); n && this._updateClassName() }, c.toggle = function (e, t) { e += \"\"; var r = this.contains(e), i = r ? !0 !== t && \"remove\" : !1 !== t && \"add\"; return i && this[i](e), !0 === t || !1 === t ? t : !r }, c.toString = function () { return this.join(\" \") }, a.defineProperty) { var d = { get: f, enumerable: !0, configurable: !0 }; try { a.defineProperty(i, t, d) } catch (e) { void 0 !== e.number && -2146823252 !== e.number || (d.enumerable = !1, a.defineProperty(i, t, d)) } } else a[r].__defineGetter__ && i.__defineGetter__(t, f) } }(self), function () { \"use strict\"; var e = document.createElement(\"_\"); if (e.classList.add(\"c1\", \"c2\"), !e.classList.contains(\"c2\")) { var t = function (e) { var t = DOMTokenList.prototype[e]; DOMTokenList.prototype[e] = function (e) { var r, i = arguments.length; for (r = 0; r < i; r++) e = arguments[r], t.call(this, e) } }; t(\"add\"), t(\"remove\") } if (e.classList.toggle(\"c3\", !1), e.classList.contains(\"c3\")) { var r = DOMTokenList.prototype.toggle; DOMTokenList.prototype.toggle = function (e, t) { return 1 in arguments && !this.contains(e) == !t ? t : r.call(this, e) } } e = null }()); for (var forms = document.querySelectorAll(\".validate\"), i = 0; i < forms.length; i++) forms[i].setAttribute(\"novalidate\", !0); var hasError = function (e) { if (!e.disabled && \"file\" !== e.type && \"reset\" !== e.type && \"submit\" !== e.type && \"button\" !== e.type) { var t = e.validity; if (!t.valid) { if (t.valueMissing) return \"This field is required.\"; if (t.typeMismatch) { if (\"email\" === e.type) return \"Please enter an email address.\"; if (\"url\" === e.type) return \"Please enter a URL.\" } return t.tooShort ? \"Please lengthen this text to \" + e.getAttribute(\"minLength\") + \" characters or more. You are currently using \" + e.value.length + \" characters.\" : t.tooLong ? \"Please shorten this text to no more than \" + e.getAttribute(\"maxLength\") + \" characters. You are currently using \" + e.value.length + \" characters.\" : t.patternMismatch ? e.hasAttribute(\"title\") ? e.getAttribute(\"title\") : \"Please match the requested format.\" : t.badInput ? \"Please enter a number.\" : t.stepMismatch ? \"Please select a valid value.\" : t.rangeOverflow ? \"Please select a value that is no more than \" + e.getAttribute(\"max\") + \".\" : t.rangeUnderflow ? \"Please select a value that is no less than \" + e.getAttribute(\"min\") + \".\" : \"The value you entered for this field is invalid.\" } } }, showError = function (e, t) { if (e.classList.add(\"error\"), \"radio\" === e.type && e.name) { var r = e.form.querySelectorAll('[name=\"' + e.name + '\"]'); if (r.length > 0) { for (var i = 0; i < r.length; i++) r[i].classList.add(\"error\"); e = r[r.length - 1] } } var a = e.id || e.name; if (a) { var n, s = e.form.querySelector(\".error-message#error-for-\" + a); if (!s) (s = document.createElement(\"div\")).className = \"error-message\", s.id = \"error-for-\" + a, \"radio\" !== e.type && \"checkbox\" !== e.type || (n = e.form.querySelector('label[for=\"' + a + '\"]') || e.parentNode) && n.parentNode.insertBefore(s, n.nextSibling), n || e.parentNode.insertBefore(s, e.nextSibling); e.setAttribute(\"aria-describedby\", \"error-for-\" + a), s.innerHTML = t, s.style.display = \"block\", s.style.visibility = \"visible\" } }, removeError = function (e) { if (e.classList.remove(\"error\"), e.removeAttribute(\"aria-describedby\"), \"radio\" === e.type && e.name) { var t = e.form.querySelectorAll('[name=\"' + e.name + '\"]'); if (t.length > 0) { for (var r = 0; r < t.length; r++) t[r].classList.remove(\"error\"); e = t[t.length - 1] } } var i = e.id || e.name; if (i) { var a = e.form.querySelector(\".error-message#error-for-\" + i); a && (a.innerHTML = \"\", a.style.display = \"none\", a.style.visibility = \"hidden\") } }, serialize = function (e) { var t = \"\"; for (i = 0; i < e.elements.length; i++) { var r = e.elements[i]; r.name && !r.disabled && \"file\" !== r.type && \"reset\" !== r.type && \"submit\" !== r.type && \"button\" !== r.type && ((\"checkbox\" !== r.type && \"radio\" !== r.type || r.checked) && (t += \"&\" + encodeURIComponent(r.name) + \"=\" + encodeURIComponent(r.value))) } return t }; window.displayMailChimpStatus = function (e) { if (e.result && e.msg && mcStatus) { if (mcStatus.innerHTML = e.msg, \"error\" === e.result) return mcStatus.classList.remove(\"success-message\"), void mcStatus.classList.add(\"error-message\"); mcStatus.classList.remove(\"error-message\"), mcStatus.classList.add(\"success-message\") } }; var submitMailChimpForm = function (e) { var t = e.getAttribute(\"action\"); t = t.replace(\"/post?u=\", \"/post-json?u=\"), t += serialize(e) + \"&c=displayMailChimpStatus\"; var r = window.document.getElementsByTagName(\"script\")[0], i = window.document.createElement(\"script\"); i.src = t, window.mcStatus = e.querySelector(\".mc-status\"), r.parentNode.insertBefore(i, r), i.onload = function () { this.remove() } }; document.addEventListener(\"blur\", function (e) { if (e.target.form.classList.contains(\"validate\")) { var t = hasError(e.target); t ? showError(e.target, t) : removeError(e.target) } }, !0), document.addEventListener(\"submit\", function (e) { if (e.target.classList.contains(\"validate\")) { e.preventDefault(); for (var t, r, i = e.target.elements, a = 0; a < i.length; a++) (t = hasError(i[a])) && (showError(i[a], t), r || (r = i[a])); r && r.focus(), submitMailChimpForm(e.target) } }, !1);\r\n}\r\n/*jshint ignore:end*/\r\n","\"use strict\";\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.navigation = novicell.navigation || new function () {\r\n var classOpened = \"o-sidebar--opened\";\r\n var classClosed = \"o-sidebar--closed\";\r\n var classShowDropDown = 'nav-main-list__link--showDropdown';\r\n var hoverIntentDelay = 300;\r\n this.init = function () {\r\n this.initSidebar();\r\n this.initMegamenu();\r\n this.initCloseMegaMenu();\r\n };\r\n \r\n this.removeAllHovers = function () {\r\n var navItemsWithDropdown = document.querySelectorAll('.o-navigations .nav-main-list__item--hasSublevel .nav-main-list__link');\r\n for(var i = 0 ; i < navItemsWithDropdown.length; i++){\r\n navItemsWithDropdown[i].classList.remove(classShowDropDown);\r\n }\r\n\r\n var openedAccordionsInside = document.querySelectorAll('.m-navDropdown__itemLevel1--hasSublevel.base-accordion--active .m-navDropdown__showHide');\r\n for(i = 0 ; i < openedAccordionsInside.length; i++){\r\n var elementToClick = openedAccordionsInside[i];\r\n var event = document.createEvent('HTMLEvents');\r\n event.initEvent('click', true, false);\r\n elementToClick.dispatchEvent(event);\r\n }\r\n };\r\n this.initCloseMegaMenu = function () {\r\n var _this = this;\r\n document.addEventListener(\"click\",function(e) {\r\n if(novicell.helpers.closestByClass(e.target,'m-navDropdown') == null){\r\n _this.removeAllHovers();\r\n }\r\n });\r\n };\r\n this.initMegamenu = function () {\r\n var _this = this;\r\n var navItemsWithDropdown = document.querySelectorAll('.o-navigations .nav-main-list__item--hasSublevel .nav-main-list__link');\r\n if(navItemsWithDropdown.length){\r\n for(var i = 0 ; i < navItemsWithDropdown.length; i++){\r\n \r\n navItemsWithDropdown[i].addEventListener(\"touchstart\",function(e) {\r\n if (window.innerWidth >= 992) {\r\n var link = this; //preselect the link\r\n if (link.classList.contains(classShowDropDown)) {\r\n return true;\r\n } else {\r\n _this.removeAllHovers();\r\n link.classList.add(classShowDropDown);\r\n e.preventDefault();\r\n return false; //extra, and to make sure the function has consistent return points\r\n }\r\n }\r\n }, {passive: true});\r\n navItemsWithDropdown[i].parentNode.addEventListener(\"mouseenter\",function(e) {\r\n if (window.innerWidth >= 992) {\r\n var _this = this;\r\n this.classList.add('js-mouseenter');\r\n\r\n setTimeout(function(){ \r\n if(_this.classList.contains('js-mouseenter')){\r\n _this.querySelector('.a-link').classList.add(classShowDropDown);\r\n }\r\n }, hoverIntentDelay);\r\n }\r\n });\r\n navItemsWithDropdown[i].parentNode.addEventListener(\"mouseleave\",function(e) {\r\n if (window.innerWidth >= 992) {\r\n this.classList.remove('js-mouseenter');\r\n var item = this;\r\n setTimeout(function(){ \r\n if(!item.classList.contains('js-mouseenter')){\r\n item.querySelector('.a-link').classList.remove(classShowDropDown);\r\n _this.removeAllHovers();\r\n }\r\n }, hoverIntentDelay);\r\n }\r\n });\r\n }\r\n }\r\n \r\n \r\n };\r\n this.initSidebar = function () {\r\n var oSidebar = document.getElementById(\"o-sidebar\");\r\n if(oSidebar != null){\r\n var aSidebarCloseItem = document.getElementById(\"a-sidebar-close__item\");\r\n if(aSidebarCloseItem != null){\r\n aSidebarCloseItem.addEventListener(\"click\", function () {\r\n oSidebar.classList.remove(classOpened);\r\n oSidebar.classList.add(classClosed);\r\n });\r\n }\r\n \r\n var aLogoMenu = document.getElementById(\"a-logo__menu\");\r\n if(aLogoMenu != null){\r\n aLogoMenu.addEventListener(\"click\", function () {\r\n if (!oSidebar.classList.contains(classOpened)) {\r\n oSidebar.classList.add(classOpened);\r\n oSidebar.classList.remove(classClosed);\r\n } else {\r\n oSidebar.classList.remove(classOpened);\r\n oSidebar.classList.add(classClosed);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n}();\r\n","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.newslistShowAll = novicell.newslistShowAll || function () {\r\n \r\n function init() {\r\n var showAllButton = document.querySelectorAll('.o-news-list__btnShowAllFunction');\r\n if(showAllButton.length){\r\n for(var i = 0 ; i < showAllButton.length ; i++){\r\n showAllButton[i].addEventListener('click',function(e){\r\n e.preventDefault();\r\n var containingBlock = novicell.helpers.closestByClass(this, 'o-news-list');\r\n if(containingBlock != null){\r\n containingBlock.classList.add('o-news-list--showAllTriggered');\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","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.oTrainingList = novicell.oTrainingList || function () {\r\n function init(){\r\n setTextHeight();\r\n }\r\n function setTextHeight(element) {\r\n \r\n var oTrainingLists = document.querySelectorAll('.o-training');\r\n for(var i = 0 ; i < oTrainingLists.length ; i++){\r\n var texts = oTrainingLists[i].querySelectorAll('.o-listTraining__text');\r\n var maxHeight = 0;\r\n for(var k = 0 ; k < texts.length ; k++){\r\n texts[k].style.height='';\r\n }\r\n if (window.innerWidth >= 768) {\r\n for(var j = 0 ; j < texts.length ; j++){\r\n var currentTextHeight = texts[j].offsetHeight;\r\n maxHeight = currentTextHeight>maxHeight?currentTextHeight:maxHeight;\r\n }\r\n }else{\r\n maxHeight='';\r\n }\r\n maxHeight=maxHeight!=''?maxHeight+'px':maxHeight;\r\n for(var l = 0 ; l < texts.length ; l++){\r\n texts[l].style.height=maxHeight;\r\n }\r\n }\r\n }\r\n\r\n return {\r\n init: init,\r\n setTextHeight:setTextHeight\r\n };\r\n\r\n}();\r\n","'use strict';\r\n/**\r\n * @name Novicell overlay\r\n * @desc Simple script that opens an overlay / modal with some content form either a selector or an URL\r\n * @author Danni Larsen (DLA), Michael Sølvsteen (MSL), Signe Helbo Poulsen (SHP)\r\n * @example novicell.overlay.create({ 'selector': SELECTOR, 'url': URL, 'class':'CLASSNAME', 'onCreate': FUNCTIONNAME, 'onLoaded': FUNCTIONNAME, 'onDestroy': FUNCTIONNAME });\r\n * @requires none\r\n */\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.overlay = novicell.overlay || new function () {\r\n var self = this;\r\n var options = {};\r\n var overlayElem;\r\n var overlayContainer;\r\n var overlayContent;\r\n var backdrop;\r\n var content;\r\n var onCreate;\r\n var onLoaded;\r\n var onDestroy;\r\n var isVideo = false;\r\n\r\n this.create = function (opts) {\r\n var self = this;\r\n // Set global options\r\n options = opts;\r\n\r\n // Call onCreate callback\r\n if (typeof options.onCreate === 'function') {\r\n options.onCreate();\r\n }\r\n\r\n // Remove existing overlays\r\n self.destroy();\r\n\r\n // Check if content comes from a HTML element\r\n if (options.hasOwnProperty('selector') && options.selector !== null) {\r\n var element = document.querySelector(options.selector);\r\n \r\n if (element) {\r\n content = element.innerHTML;\r\n constructOverlay();\r\n } else {\r\n console.warn('novicell.overlay: element does not exist. Please provide a valid selector for use in document.querySelector.');\r\n return;\r\n }\r\n }\r\n // Or if content comes from an URL\r\n else if (options.hasOwnProperty('videoId')) {\r\n if (options.videoId !== null) {\r\n var src = '';\r\n isVideo = true;\r\n\r\n if(options.type == 'vimeo') {\r\n src = 'https://player.vimeo.com/video/' + options.videoId + '?autoplay=' + options.autoplay;\r\n }\r\n else if(options.type == 'youtube') {\r\n src = 'https://www.youtube.com/embed/' + options.videoId + '?autoplay=' + options.autoplay + '&rel=0&fs=0';\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n var iframe = document.createElement('iframe');\r\n iframe.setAttribute('src', src);\r\n iframe.setAttribute('frameborder', 0);\r\n iframe.setAttribute('allowfullscreen', '');\r\n iframe.setAttribute('width', '100%');\r\n iframe.setAttribute('height', '100%');\r\n\r\n content = iframe.outerHTML;\r\n \r\n constructOverlay();\r\n } else {\r\n console.warn('novicell.overlay: video-id is empty. Please provide a video-id for use in video embed code (we support only Vimeo and YouTube).');\r\n return;\r\n }\r\n }\r\n // If nothing is working, send error to los consolé\r\n else {\r\n console.error('novicell.overlay: no content to display! Please set a selector or a url to load.');\r\n return;\r\n }\r\n };\r\n\r\n this.destroy = function () {\r\n if(document.querySelector('#js-novi-overlay')) {\r\n // Remove elements\r\n overlayElem.parentElement.removeChild(overlayElem);\r\n backdrop.parentElement.removeChild(backdrop);\r\n\r\n // Stop listening for close overlay events\r\n document.removeEventListener('keyup', self.destroy);\r\n\r\n // Remove class on body\r\n document.documentElement.classList.remove('no-scroll', 'novi-overlay--open');\r\n\r\n // Reset video variable\r\n isVideo = false;\r\n\r\n // Call onDestroy callback\r\n if (typeof options.onDestroy === 'function') {\r\n options.onDestroy();\r\n }\r\n }\r\n };\r\n\r\n function constructOverlay() {\r\n // Create backdrop\r\n setupBackdrop();\r\n\r\n // Create the overlay\r\n setupOverlay();\r\n\r\n // Create content for overlay\r\n setupOverlayContainer();\r\n\r\n // Create close button\r\n setupCloseButton();\r\n\r\n // Add class to body-element\r\n document.documentElement.classList.add('no-scroll');\r\n\r\n // Call onLoaded callback\r\n if (typeof options.onLoaded === 'function') {\r\n options.onLoaded();\r\n }\r\n }\r\n\r\n function setupBackdrop() {\r\n // Create the backdrop\r\n backdrop = document.createElement('div');\r\n backdrop.classList.add('novi-backdrop');\r\n // Set class for the overlay backdrop, if set in options\r\n if (options.hasOwnProperty('backdropClass') && options.backdropClass !== null) {\r\n backdrop.classList.add(options.backdropClass);\r\n }\r\n backdrop.id = 'js-novi-backdrop';\r\n\r\n backdrop.addEventListener('click', function(e){\r\n if(e.target.classList.contains('novi-overlay') || e.target.classList.contains('novi-overlay__container')) {\r\n self.destroy();\r\n }\r\n });\r\n\r\n // Add backdrop to overlay element\r\n document.querySelector('body').appendChild(backdrop);\r\n }\r\n\r\n /*\r\n * Helper functions for HTML elements\r\n */\r\n function setupOverlay() {\r\n // Create the overlay\r\n overlayElem = document.createElement('div');\r\n overlayElem.classList.add('novi-overlay');\r\n overlayElem.id = 'js-novi-overlay';\r\n\r\n // Set class for the overlay, if set in options\r\n if (options.hasOwnProperty('class')) {\r\n overlayElem.classList.add(options.class);\r\n }\r\n\r\n // Add overlay to overlay element\r\n // document.querySelector('body').appendChild(overlayElem);\r\n backdrop.appendChild(overlayElem);\r\n }\r\n\r\n function setupOverlayContainer() {\r\n // Create content for overlay\r\n overlayContainer = document.createElement('div');\r\n overlayContainer.classList.add('novi-overlay__container');\r\n\r\n // Create scroll element\r\n overlayContent = document.createElement('div');\r\n overlayContent.classList.add('novi-overlay__content');\r\n\r\n if(isVideo) {\r\n overlayContent.classList.add('novi-overlay__content--video');\r\n }\r\n\r\n // Set content\r\n overlayContent.innerHTML = content;\r\n overlayContainer.appendChild(overlayContent);\r\n\r\n // Add overlayContainer to overlay element\r\n overlayElem.appendChild(overlayContainer);\r\n }\r\n\r\n function setupCloseButton() {\r\n // Create the button\r\n var btnClose = document.createElement('button');\r\n btnClose.classList.add('novi-overlay-close', 'button--close');\r\n btnClose.type = 'button';\r\n btnClose.id = 'js-novi-overlay-close';\r\n\r\n // Add eventlistener for button click\r\n btnClose.addEventListener('click', self.destroy);\r\n\r\n\r\n // Create the button at the bottom\r\n var btnClose2 = document.createElement('button');\r\n btnClose2.classList.add('novi-overlay-close', 'novi-overlay-close--bottom', 'button--close');\r\n btnClose2.type = 'button';\r\n btnClose2.id = 'js-novi-overlay-close';\r\n\r\n // Add eventlistener for button click\r\n btnClose2.addEventListener('click', self.destroy);\r\n\r\n // Add eventlistener for esc key\r\n document.addEventListener('keydown', function (e) {\r\n if (e.keyCode === 27) {\r\n var overlay2 = document.getElementById('js-novi-overlay2');\r\n if(overlay2 == null){\r\n // only close this overlay of overlay2 is not open\r\n self.destroy();\r\n }\r\n }\r\n });\r\n\r\n // Add close buttons to overlay element\r\n overlayContent.appendChild(btnClose);\r\n overlayContent.appendChild(btnClose2);\r\n }\r\n\r\n /*\r\n * Helper functions for getting content\r\n */\r\n function get(url) {\r\n // Return a new promise.\r\n return new Promise(function (resolve, reject) {\r\n // Do the usual XHR stuff\r\n var req = new XMLHttpRequest();\r\n req.open('GET', url);\r\n\r\n req.onload = function () {\r\n if (req.status >= 200 && req.status < 400) {\r\n // Success!!\r\n resolve(req.response);\r\n } else {\r\n // Error!!\r\n reject(Error(req.statusText));\r\n }\r\n };\r\n\r\n // Handle network errors\r\n req.onerror = function () {\r\n reject(Error(\"Network Error\"));\r\n };\r\n\r\n // Make the request\r\n req.send();\r\n });\r\n }\r\n\r\n}();","'use strict';\r\n// for overlay 2 when one overlay is already opened\r\n/**\r\n * @name Novicell overlay\r\n * @desc Simple script that opens an overlay / modal with some content form either a selector or an URL\r\n * @author Danni Larsen (DLA), Michael Sølvsteen (MSL), Signe Helbo Poulsen (SHP)\r\n * @example novicell.overlay.create({ 'selector': SELECTOR, 'url': URL, 'class':'CLASSNAME', 'onCreate': FUNCTIONNAME, 'onLoaded': FUNCTIONNAME, 'onDestroy': FUNCTIONNAME });\r\n * @requires none\r\n */\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.overlay2 = novicell.overlay2 || new function () {\r\n var self = this;\r\n var options = {};\r\n var overlayElem;\r\n var overlayContainer;\r\n var overlayContent;\r\n var backdrop;\r\n var content;\r\n var onCreate;\r\n var onLoaded;\r\n var onDestroy;\r\n var isVideo = false;\r\n\r\n this.create = function (opts) {\r\n var self = this;\r\n // Set global options\r\n options = opts;\r\n\r\n // Call onCreate callback\r\n if (typeof options.onCreate === 'function') {\r\n options.onCreate();\r\n }\r\n\r\n // Remove existing overlays\r\n self.destroy();\r\n\r\n // Check if content comes from a HTML element\r\n if (options.hasOwnProperty('selector') && options.selector !== null) {\r\n var element = document.querySelector(options.selector);\r\n \r\n if (element) {\r\n content = element.innerHTML;\r\n constructOverlay();\r\n } else {\r\n console.warn('novicell.overlay: element does not exist. Please provide a valid selector for use in document.querySelector.');\r\n return;\r\n }\r\n }\r\n // Or if content comes from an URL\r\n else if (options.hasOwnProperty('videoId')) {\r\n if (options.videoId !== null) {\r\n var src = '';\r\n isVideo = true;\r\n\r\n if(options.type == 'vimeo') {\r\n src = 'https://player.vimeo.com/video/' + options.videoId + '?autoplay=' + options.autoplay;\r\n }\r\n else if(options.type == 'youtube') {\r\n src = 'https://www.youtube.com/embed/' + options.videoId + '?autoplay=' + options.autoplay + '&rel=0&fs=0';\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n var iframe = document.createElement('iframe');\r\n iframe.setAttribute('src', src);\r\n iframe.setAttribute('frameborder', 0);\r\n iframe.setAttribute('allowfullscreen', '');\r\n iframe.setAttribute('width', '100%');\r\n iframe.setAttribute('height', '100%');\r\n\r\n content = iframe.outerHTML;\r\n \r\n constructOverlay();\r\n } else {\r\n console.warn('novicell.overlay: video-id is empty. Please provide a video-id for use in video embed code (we support only Vimeo and YouTube).');\r\n return;\r\n }\r\n }\r\n // If nothing is working, send error to los consolé\r\n else {\r\n console.error('novicell.overlay: no content to display! Please set a selector or a url to load.');\r\n return;\r\n }\r\n };\r\n\r\n this.destroy = function () {\r\n if(document.querySelector('#js-novi-overlay2')) {\r\n // Remove elements\r\n overlayElem.parentElement.removeChild(overlayElem);\r\n backdrop.parentElement.removeChild(backdrop);\r\n\r\n // Stop listening for close overlay events\r\n document.removeEventListener('keyup', self.destroy);\r\n\r\n // Remove class on body\r\n document.documentElement.classList.remove('no-scroll', 'novi-overlay--open');\r\n\r\n // Reset video variable\r\n isVideo = false;\r\n\r\n // Call onDestroy callback\r\n if (typeof options.onDestroy === 'function') {\r\n options.onDestroy();\r\n }\r\n }\r\n };\r\n\r\n function constructOverlay() {\r\n // Create backdrop\r\n setupBackdrop();\r\n\r\n // Create the overlay\r\n setupOverlay();\r\n\r\n // Create content for overlay\r\n setupOverlayContainer();\r\n\r\n // Create close button\r\n setupCloseButton();\r\n\r\n // Add class to body-element\r\n document.documentElement.classList.add('no-scroll');\r\n\r\n // Call onLoaded callback\r\n if (typeof options.onLoaded === 'function') {\r\n options.onLoaded();\r\n }\r\n }\r\n\r\n function setupBackdrop() {\r\n // Create the backdrop\r\n backdrop = document.createElement('div');\r\n backdrop.classList.add('novi-backdrop');\r\n // Set class for the overlay backdrop, if set in options\r\n if (options.hasOwnProperty('backdropClass') && options.backdropClass !== null) {\r\n backdrop.classList.add(options.backdropClass);\r\n }\r\n backdrop.id = 'js-novi-backdrop2';\r\n\r\n backdrop.addEventListener('click', function(e){\r\n if(e.target.classList.contains('novi-overlay') || e.target.classList.contains('novi-overlay__container')) {\r\n self.destroy();\r\n }\r\n });\r\n\r\n // Add backdrop to overlay element\r\n document.querySelector('body').appendChild(backdrop);\r\n }\r\n\r\n /*\r\n * Helper functions for HTML elements\r\n */\r\n function setupOverlay() {\r\n // Create the overlay\r\n overlayElem = document.createElement('div');\r\n overlayElem.classList.add('novi-overlay');\r\n overlayElem.id = 'js-novi-overlay2';\r\n\r\n // Set class for the overlay, if set in options\r\n if (options.hasOwnProperty('class')) {\r\n overlayElem.classList.add(options.class);\r\n }\r\n\r\n // Add overlay to overlay element\r\n // document.querySelector('body').appendChild(overlayElem);\r\n backdrop.appendChild(overlayElem);\r\n }\r\n\r\n function setupOverlayContainer() {\r\n // Create content for overlay\r\n overlayContainer = document.createElement('div');\r\n overlayContainer.classList.add('novi-overlay__container');\r\n\r\n // Create scroll element\r\n overlayContent = document.createElement('div');\r\n overlayContent.classList.add('novi-overlay__content');\r\n\r\n if(isVideo) {\r\n overlayContent.classList.add('novi-overlay__content--video');\r\n }\r\n\r\n // Set content\r\n overlayContent.innerHTML = content;\r\n overlayContainer.appendChild(overlayContent);\r\n\r\n // Add overlayContainer to overlay element\r\n overlayElem.appendChild(overlayContainer);\r\n }\r\n\r\n function setupCloseButton() {\r\n // Create the button\r\n var btnClose = document.createElement('button');\r\n btnClose.classList.add('novi-overlay-close', 'button--close');\r\n btnClose.type = 'button';\r\n btnClose.id = 'js-novi-overlay2-close';\r\n\r\n // Add eventlistener for button click\r\n btnClose.addEventListener('click', self.destroy);\r\n\r\n\r\n // Create the button at the bottom\r\n var btnClose2 = document.createElement('button');\r\n btnClose2.classList.add('novi-overlay-close', 'novi-overlay-close--bottom', 'button--close');\r\n btnClose2.type = 'button';\r\n btnClose2.id = 'js-novi-overlay2-close';\r\n\r\n // Add eventlistener for button click\r\n btnClose2.addEventListener('click', self.destroy);\r\n\r\n // Add eventlistener for esc key\r\n document.addEventListener('keydown', function (e) {\r\n if (e.keyCode === 27) {\r\n self.destroy();\r\n }\r\n });\r\n\r\n // Add close buttons to overlay element\r\n overlayContent.appendChild(btnClose);\r\n overlayContent.appendChild(btnClose2);\r\n }\r\n\r\n /*\r\n * Helper functions for getting content\r\n */\r\n function get(url) {\r\n // Return a new promise.\r\n return new Promise(function (resolve, reject) {\r\n // Do the usual XHR stuff\r\n var req = new XMLHttpRequest();\r\n req.open('GET', url);\r\n\r\n req.onload = function () {\r\n if (req.status >= 200 && req.status < 400) {\r\n // Success!!\r\n resolve(req.response);\r\n } else {\r\n // Error!!\r\n reject(Error(req.statusText));\r\n }\r\n };\r\n\r\n // Handle network errors\r\n req.onerror = function () {\r\n reject(Error(\"Network Error\"));\r\n };\r\n\r\n // Make the request\r\n req.send();\r\n });\r\n }\r\n\r\n}();","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.productFilters = novicell.productFilters || function () {\r\n \r\n function init() {\r\n openFiltersOnLoad();\r\n fixAccordionHeightOnClick();\r\n hideShowFiltersOnMobile();\r\n }\r\n function hideShowFiltersOnMobile(){\r\n var filterShowHideButton = document.querySelector('.o-productListFilter__mobileButton');\r\n if(filterShowHideButton != null){\r\n filterShowHideButton.addEventListener('click',function(e){\r\n var outer = document.getElementById('js-o-productListFilter__holder');\r\n var outerHeight = outer.offsetHeight;\r\n var innerHeight = document.getElementById('js-o-productListFilter__holderInner').offsetHeight;\r\n outer.style.height = innerHeight+\"px\";\r\n if(outerHeight == 0){\r\n var transitionEnd = novicell.helpers.whichTransitionEvent();\r\n outer.addEventListener(transitionEnd, \r\n function(){\r\n if(outer.offsetHeight>0){\r\n outer.style.height = \"auto\";\r\n }\r\n }, false);\r\n }else{\r\n setTimeout(function(){outer.style.height =0;},1);\r\n }\r\n\r\n });\r\n }\r\n }\r\n function openFiltersOnLoad() {\r\n if (window.innerWidth >= 992) {\r\n var accordionsToShowOnLoad = document.querySelectorAll('.base-accordion--showOnLoad');\r\n for(var i = 0 ; i < accordionsToShowOnLoad.length ; i++){\r\n var elementToClick = accordionsToShowOnLoad[i].querySelector('.base-accordion__header');\r\n var event = document.createEvent('HTMLEvents');\r\n event.initEvent('click', true, false);\r\n elementToClick.dispatchEvent(event);\r\n }\r\n }\r\n }\r\n function fixAccordionHeightOnClick() {\r\n var checkboxes = document.querySelectorAll('.m-filter__checkbox');\r\n for(var i = 0 ; i < checkboxes.length ; i++){\r\n checkboxes[i].addEventListener(\"click\", function () {\r\n var _this=this;\r\n var element = this.parentNode.querySelector('.m-filter__list--level2');\r\n if(element != null){\r\n element.classList.remove('m-filter__list--open');\r\n var baseAccordion = novicell.helpers.closestByClass(this,'base-accordion');\r\n var header = baseAccordion.querySelector('.base-accordion__header');\r\n if(header!=null){\r\n var transitionEnd = novicell.helpers.whichTransitionEvent();\r\n element.addEventListener(transitionEnd, \r\n function(){\r\n novicell.accordionReadMoreOnMobile.recalcHeight(header);\r\n }, false);\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","'use strict';\r\n\r\nvar novicell = novicell || {};\r\nvar checkImages = checkImages || new function() {}();\r\n\r\nnovicell.productImageSlider =\r\n novicell.productImageSlider ||\r\n (function() {\r\n var sliderLargeClass = 'm-productImageSlider__list';\r\n var sliderSmallClass = 'm-productImageSlider__listSmall';\r\n var hiddenModifier = '--isHidden';\r\n var startSlide = 0;\r\n function init() {\r\n var productImageSliderMain = document.querySelector('.' + sliderLargeClass);\r\n var productImageSliderThumbs = document.querySelector('.' + sliderSmallClass);\r\n if (productImageSliderMain != null && productImageSliderThumbs != null) {\r\n //Flickity - no FOUC\r\n var carouselLarge = document.querySelector('.' + sliderLargeClass + hiddenModifier);\r\n var carouselSmall = document.querySelector('.' + sliderSmallClass + hiddenModifier);\r\n carouselLarge.classList.remove(sliderLargeClass + hiddenModifier);\r\n carouselSmall.classList.remove(sliderSmallClass + hiddenModifier);\r\n // carouselLarge.offsetHeight;\r\n // carouselSmall.offsetHeight;\r\n\r\n var flkty = new Flickity(productImageSliderMain, {\r\n // options\r\n cellAlign: 'left',\r\n contain: true,\r\n wrapAround: true,\r\n prevNextButtons: false,\r\n pageDots: false,\r\n selectedAttraction: 1,\r\n friction: 1,\r\n imagesLoaded: true\r\n });\r\n\r\n var flkty2 = new Flickity(productImageSliderThumbs, {\r\n contain: true,\r\n asNavFor: productImageSliderMain,\r\n prevNextButtons: false,\r\n pageDots: false\r\n });\r\n\r\n initOverlayEvents(); //sliders must be initiated before this line\r\n } else {\r\n //if there's only one image\r\n if (productImageSliderMain != null) {\r\n initSingleImageOverlay(productImageSliderMain);\r\n }\r\n }\r\n }\r\n function initSingleImageOverlay(productImageSliderMain) {\r\n var tempHolderClass = 'o-productDetails__temp';\r\n var imageHolder = productImageSliderMain.querySelector('.m-productImageSlider__slideHolder');\r\n if (imageHolder != null) {\r\n var productImageSlider = document.getElementsByClassName('m-productImageSlider')[0];\r\n if (productImageSlider != null) {\r\n var clone = productImageSlider.cloneNode(true);\r\n var cloneSlideHolder = clone.querySelector('.m-productImageSlider__slideHolder');\r\n cloneSlideHolder.classList.add('overlay-slideHolder');\r\n cloneSlideHolder.removeAttribute('style');\r\n var cloneSlideSrc = cloneSlideHolder.querySelector('img').dataset.src;\r\n var cloneSlideAlt = cloneSlideHolder.querySelector('img').alt;\r\n cloneSlideHolder.innerHTML = '\"'';\r\n var temp = document.getElementById(tempHolderClass);\r\n if (temp != null) {\r\n temp.appendChild(clone);\r\n }\r\n }\r\n checkImages();\r\n\r\n imageHolder.addEventListener('click', function() {\r\n novicell.overlay.create({\r\n selector: '#' + tempHolderClass,\r\n class: 'novi-overlay--productSliderOverlay'\r\n });\r\n });\r\n }\r\n }\r\n\r\n function initOverlayEvents() {\r\n var slides = document.querySelectorAll('.m-productImageSlider__item .m-productImageSlider__slideHolder');\r\n for (var i = 0; i < slides.length; i++) {\r\n slides[i].addEventListener('click', makeSliderOverlay, false);\r\n }\r\n }\r\n\r\n function makeSliderOverlay() {\r\n startSlide = findStartSlideNumber(this);\r\n novicell.overlay.create({\r\n selector: '#overlayContent--productImageSlider',\r\n class: 'novi-overlay--productSliderOverlay',\r\n onLoaded: makeOverlayInSlider\r\n });\r\n }\r\n function makeOverlayInSlider() {\r\n var listForSlider = document.querySelector('#js-novi-overlay .m-productImageSlider__listOverlay');\r\n var flkty3 = new Flickity(listForSlider, {\r\n // options\r\n initialIndex: startSlide,\r\n cellAlign: 'left',\r\n contain: true,\r\n wrapAround: true,\r\n prevNextButtons: true,\r\n pageDots: false,\r\n selectedAttraction: 1,\r\n friction: 1,\r\n imagesLoaded: true,\r\n on: {\r\n ready: function() {\r\n //so you can use arrow keys to navigate slider\r\n this.element.focus();\r\n }\r\n }\r\n });\r\n flkty3.on('select', function() {\r\n // console.log(this.selectedSlide.cells[0].element);\r\n var videoIframeClass = 'm-productImageSlider__videoIframe';\r\n\r\n var iframesWithSrc = this.element.querySelectorAll('.' + videoIframeClass + '[src]');\r\n for (var i = 0; i < iframesWithSrc.length; i++) {\r\n //stop iframe from playing when not active\r\n iframesWithSrc[i].removeAttribute('src');\r\n }\r\n\r\n var currentElement = this.selectedSlide.cells[0].element;\r\n var iframe = currentElement.querySelector('.' + videoIframeClass);\r\n var isVideoSlide = iframe != null;\r\n if (isVideoSlide) {\r\n var iframeSrc = iframe.getAttribute('data-src');\r\n iframe.setAttribute('src', iframeSrc);\r\n }\r\n });\r\n }\r\n\r\n function findStartSlideNumber(el) {\r\n var children = el.parentNode.parentNode.childNodes;\r\n var currentChild = el.parentNode;\r\n var num = 0;\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i] == currentChild) {\r\n return num;\r\n }\r\n if (children[i].nodeType == 1) {\r\n num++;\r\n }\r\n }\r\n return 0;\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n })();\r\n","'use strict';\r\n\r\nvar novicell = novicell || {};\r\nnovicell.searchResults = novicell.searchResults || function () {\r\n function init() {\r\n var searchField = document.querySelector('.search-field__search-field');\r\n if(searchField != null){\r\n searchField.focus();\r\n }\r\n }\r\n\r\n return {\r\n init:init\r\n };\r\n}();\r\n//to be able to use it as a callback\r\nfunction focusOnSearchInput(){\r\n novicell.searchResults.init();\r\n}","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.productPagePrices =\r\n novicell.productPagePrices ||\r\n (function() {\r\n var inputLicenses = null;\r\n var fieldsLicenseTypes = null;\r\n var durationAmountSelectField = null;\r\n var amountHardware = null;\r\n var fieldsDurationType = null;\r\n var fieldQuantity = null;\r\n var fieldVariantID = null;\r\n var productType = null;\r\n var priceBarPriceItem = null;\r\n var submitBtn = null;\r\n var normalFieldQuantity = null;\r\n var changingDaysYearsOnSoftware = false; //used to prevent visible price on updating in 2 steps\r\n var keepPromises;\r\n var lastClick = { selectId2: 0, EcomOrderLineFieldInput_Licenses: 0 };\r\n var timestamps = {};\r\n var doNotSearchBeforeMilisecondsAmount = 200;\r\n function init() {\r\n setOuterScopeVars();\r\n if (productType == 'software') {\r\n initMinimumAmountPeriod();\r\n setMinimumAmountPeriod();\r\n initSoftwareQuantityCalculation();\r\n } else {\r\n setAmountHardwareListeners();\r\n initNormalPriceCalculation();\r\n }\r\n }\r\n function initMinimumAmountPeriod() {\r\n var daysOrWeeksFields = document.querySelectorAll('.daysOrWeeks__Year, .daysOrWeeks__Day');\r\n\r\n for (var i = 0; i < daysOrWeeksFields.length; i++) {\r\n daysOrWeeksFields[i].addEventListener('click', setMinimumAmountPeriod, false);\r\n }\r\n }\r\n function setMinimumAmountPeriod() {\r\n changingDaysYearsOnSoftware = true;\r\n \r\n var yearField = document.querySelector('.daysOrWeeks__Year');\r\n var daysField = document.querySelector('.daysOrWeeks__Day');\r\n \r\n if (yearField && daysField) {\r\n if (yearField.checked) {\r\n durationAmountSelectField.removeAttribute('min');\r\n durationAmountSelectField.value = 1;\r\n sessionStorage.setItem(\"yearField\", \"checked\");\r\n sessionStorage.removeItem(\"dayField\");\r\n } else if (daysField.checked) {\r\n var minvalue = durationAmountSelectField.getAttribute('data-min');\r\n durationAmountSelectField.setAttribute('min', minvalue);\r\n durationAmountSelectField.value = minvalue;\r\n sessionStorage.setItem(\"dayField\", \"checked\");\r\n sessionStorage.removeItem(\"yearField\");\r\n } else {\r\n console.log('Software product: neither days nor years are selected');\r\n }\r\n }\r\n setSoftwareHiddenValues();\r\n changingDaysYearsOnSoftware = false;\r\n }\r\n\r\n // Restore checkbox states on page load based on session storage\r\n document.addEventListener('DOMContentLoaded', function() {\r\n var yearField = document.querySelector('.daysOrWeeks__Year');\r\n var daysField = document.querySelector('.daysOrWeeks__Day');\r\n\r\n if (sessionStorage.getItem(\"yearField\") === \"checked\" && yearField) {\r\n yearField.checked = true;\r\n } else if (sessionStorage.getItem(\"dayField\") === \"checked\" && daysField) {\r\n daysField.checked = true;\r\n }\r\n\r\n setMinimumAmountPeriod(); // Call this to apply the correct state on load\r\n });\r\n\r\n function initNormalPriceCalculation() {\r\n normalPriceCalculation();\r\n if (normalFieldQuantity != null) {\r\n normalFieldQuantity.addEventListener(\r\n 'change',\r\n function() {\r\n if(parseInt(this.dataset.stock) < parseInt(this.value) && parseInt(this.dataset.stock) > 0) {\r\n document.querySelector(\".js-stock-limit\").classList.remove(\"hidden\");\r\n } else {\r\n document.querySelector(\".js-stock-limit\").classList.add(\"hidden\");\r\n }\r\n debounce(this, normalPriceCalculation);\r\n },\r\n false\r\n );\r\n normalFieldQuantity.addEventListener(\r\n 'keyup',\r\n function() {\r\n if(parseInt(this.dataset.stock) < parseInt(this.value) && parseInt(this.dataset.stock) > 0) {\r\n document.querySelector(\".js-stock-limit\").classList.remove(\"hidden\");\r\n } else {\r\n document.querySelector(\".js-stock-limit\").classList.add(\"hidden\");\r\n }\r\n debounce(this, normalPriceCalculation);\r\n },\r\n false\r\n );\r\n normalFieldQuantity.addEventListener(\r\n 'paste',\r\n function() {\r\n if(parseInt(this.dataset.stock) < parseInt(this.value) && parseInt(this.dataset.stock) > 0) {\r\n document.querySelector(\".js-stock-limit\").classList.remove(\"hidden\");\r\n } else {\r\n document.querySelector(\".js-stock-limit\").classList.add(\"hidden\");\r\n }\r\n debounce(this, normalPriceCalculation);\r\n },\r\n false\r\n );\r\n }\r\n }\r\n function filterInput(input) {\r\n // Remove any non-numeric characters\r\n input.value = input.value.replace(/[^0-9]/g, '');\r\n \r\n // Prevent the value from starting with '0'\r\n if (input.value.startsWith('0')) {\r\n input.value = input.value.replace(/^0+/, '');\r\n }\r\n }\r\n function normalPriceCalculation(thisElemId) {\r\n clearMyTimeout(thisElemId);\r\n var productidField = document.querySelector('#oPriceBarHardwareProductID, #ProductID');\r\n if (productidField == null) {\r\n return;\r\n }\r\n var productid = productidField.value;\r\n var normalQuantity = normalFieldQuantity.value;\r\n var priceBarNormalPriceItem = document.querySelector('.o-priceBar .m-price__price');\r\n var priceVatTextElem = document.querySelector('.o-priceBar .m-price__vat');\r\n if (productid != null && normalQuantity != null && productid != '' && normalQuantity != '' && priceBarNormalPriceItem != null) {\r\n var url = '/system/ajax/ajax-price?productid=' + productid + '&quantity=' + normalQuantity;\r\n priceBarNormalPriceItem.innerHTML = '
';\r\n get(url).then(\r\n function(response) {\r\n priceBarNormalPriceItem.innerHTML = response;\r\n },\r\n function(error) {\r\n console.error('novicell.normalPriceCalculation:', error);\r\n }\r\n );\r\n submitBtn.removeAttribute('disabled');\r\n priceVatTextElem.removeAttribute('style');\r\n } else {\r\n //var priceField = document.getElementById('o-priceBar__item--price-software');\r\n priceBarNormalPriceItem.innerHTML = '';\r\n submitBtn.setAttribute('disabled', 'true');\r\n priceVatTextElem.style.display = 'none';\r\n //console.log('Error: when it\\'s not software this is not shown');\r\n }\r\n }\r\n function setOuterScopeVars() {\r\n inputLicenses = document.getElementById('EcomOrderLineFieldInput_Licenses');\r\n fieldsLicenseTypes = document.querySelectorAll('input[name=\"subscriptionOrPermanent\"]');\r\n durationAmountSelectField = document.getElementById('selectId2');\r\n amountHardware = document.getElementById('amountHardware');\r\n fieldsDurationType = document.querySelectorAll('input[name=\"daysOrWeeks\"]');\r\n fieldQuantity = document.getElementById('quantity');\r\n normalFieldQuantity = document.querySelector('input[name=\"quantity\"]');\r\n fieldVariantID = document.getElementById('VariantID');\r\n priceBarPriceItem = document.getElementById('o-priceBar__item--price-software');\r\n submitBtn = document.querySelector('.a-button--green.o-priceBar__button[type=submit]');\r\n\r\n var priceBar = document.querySelector('.o-priceBar');\r\n if (priceBar != null) {\r\n if (priceBar.classList.contains('o-priceBar--software')) {\r\n productType = 'software';\r\n } else if (priceBar.classList.contains('o-priceBar--hardware')) {\r\n productType = 'hardware';\r\n } else if (priceBar.classList.contains('o-priceBar--training')) {\r\n productType = 'training';\r\n } else {\r\n console.log('This is a product that is not set to type hardware, software or training');\r\n }\r\n }\r\n }\r\n function setAmountHardwareListeners() {\r\n if (amountHardware != null) {\r\n amountHardware.addEventListener(\r\n 'change',\r\n function() {\r\n filterInput(this);\r\n },\r\n false\r\n );\r\n amountHardware.addEventListener(\r\n 'keyup',\r\n function() {\r\n filterInput(this);\r\n },\r\n false\r\n );\r\n amountHardware.addEventListener(\r\n 'paste',\r\n function() {\r\n filterInput(this);\r\n },\r\n false\r\n );\r\n }\r\n }\r\n function initSoftwareQuantityCalculation() {\r\n var priceBar = document.querySelector('.o-priceBar');\r\n if (priceBar != null && fieldQuantity != null && fieldVariantID != null) {\r\n initChangeLicenseType();\r\n initSoftwareHiddenValues();\r\n }\r\n }\r\n function initSoftwareHiddenValues() {\r\n setSoftwareHiddenValues();\r\n\r\n if (inputLicenses != null && !changingDaysYearsOnSoftware) {\r\n\r\n inputLicenses.addEventListener(\r\n 'change',\r\n function() {\r\n debounce(this, setSoftwareHiddenValues);\r\n },\r\n false\r\n );\r\n inputLicenses.addEventListener(\r\n 'keydown',\r\n function (k) {\r\n if (k.code.includes(\"Enter\")) {\r\n k.preventDefault();\r\n k.stopPropagation();\r\n k.returnValue = false;\r\n return false;\r\n }\r\n debounce(this, setSoftwareHiddenValues);\r\n },\r\n false\r\n );\r\n inputLicenses.addEventListener(\r\n 'keyup',\r\n function (k) {\r\n\r\n debounce(this, setSoftwareHiddenValues);\r\n },\r\n false\r\n );\r\n inputLicenses.addEventListener(\r\n 'paste',\r\n function() {\r\n debounce(this, setSoftwareHiddenValues);\r\n },\r\n false\r\n );\r\n }\r\n if (fieldsLicenseTypes != null) {\r\n for (var i = 0; i < fieldsLicenseTypes.length; i++) {\r\n fieldsLicenseTypes[i].addEventListener(\r\n 'click',\r\n function() {\r\n debounce(this, setSoftwareHiddenValues);\r\n },\r\n false\r\n );\r\n }\r\n }\r\n if (fieldsDurationType != null) {\r\n for (var j = 0; j < fieldsDurationType.length; j++) {\r\n fieldsDurationType[j].addEventListener(\r\n 'click',\r\n function() {\r\n debounce(this, setSoftwareHiddenValues);\r\n },\r\n false\r\n );\r\n }\r\n }\r\n if (durationAmountSelectField != null) {\r\n durationAmountSelectField.addEventListener(\r\n 'change',\r\n function() {\r\n filterInput(this);\r\n debounce(this, setSoftwareHiddenValues);\r\n },\r\n false\r\n );\r\n durationAmountSelectField.addEventListener(\r\n 'keydown',\r\n function (k) {\r\n if (k.code.includes(\"Enter\")) {\r\n k.preventDefault();\r\n k.stopPropagation();\r\n k.returnValue = false;\r\n return false;\r\n }\r\n debounce(this, setSoftwareHiddenValues);\r\n },\r\n false\r\n );\r\n durationAmountSelectField.addEventListener(\r\n 'keyup',\r\n function() {\r\n filterInput(this);\r\n debounce(this, setSoftwareHiddenValues);\r\n },\r\n false\r\n );\r\n durationAmountSelectField.addEventListener(\r\n 'paste',\r\n function() {\r\n filterInput(this);\r\n debounce(this, setSoftwareHiddenValues);\r\n },\r\n false\r\n );\r\n }\r\n }\r\n\r\n function debounce(elem, functionName) {\r\n if (lastClick[elem.id] == 0) {\r\n lastClick[elem.id] = Date.now();\r\n }\r\n var rightNow = Date.now();\r\n var milisecondsSinceLastType = rightNow - lastClick[elem.id];\r\n if (milisecondsSinceLastType <= doNotSearchBeforeMilisecondsAmount) {\r\n clearMyTimeout(elem.id);\r\n }\r\n lastClick[elem.id] = rightNow;\r\n if (timestamps[elem.id] == undefined) {\r\n timestamps[elem.id] = setTimeout(functionName, doNotSearchBeforeMilisecondsAmount, elem.id);\r\n }\r\n }\r\n function clearMyTimeout(elemId) {\r\n if (timestamps[elemId] != undefined) {\r\n clearTimeout(timestamps[elemId]);\r\n delete timestamps[elemId];\r\n }\r\n }\r\n function initChangeLicenseType() {\r\n if (fieldsLicenseTypes.length) {\r\n for (var i = 0; i < fieldsLicenseTypes.length; i++) {\r\n fieldsLicenseTypes[i].addEventListener('click', hideShowLicenseDuration, false);\r\n if (fieldsLicenseTypes[i].checked) {\r\n hideShowLicenseDuration(fieldsLicenseTypes[i]);\r\n }\r\n }\r\n }\r\n }\r\n function hideShowLicenseDuration(elem) {\r\n durationAmountSelectField = document.getElementById('selectId2');\r\n if (elem.name == undefined) {\r\n elem = this;\r\n }\r\n if (elem.checked) {\r\n var durationFields = null;\r\n var permanentDeliveryTime = null;\r\n var subscriptionDeliveryTime = null;\r\n var priceBar = novicell.helpers.closestByClass(elem, 'o-priceBar');\r\n if (priceBar != null) {\r\n durationFields = priceBar.querySelector('.o-priceBar__item--extraStuff');\r\n permanentDeliveryTime = priceBar.querySelector('#permanent-delivery-time');\r\n subscriptionDeliveryTime = priceBar.querySelector('#subscription-delivery-time');\r\n }\r\n\r\n if (durationFields != null) {\r\n if (elem.id == 'subscriptionOrPermanent--permanent') {\r\n durationFields.classList.add('o-priceBar__item--extraStuffHidden');\r\n durationAmountSelectField.value = 1;\r\n durationAmountSelectField.removeAttribute('min');\r\n if (permanentDeliveryTime) {\r\n permanentDeliveryTime.classList.remove('hidden');\r\n }\r\n if (subscriptionDeliveryTime) {\r\n subscriptionDeliveryTime.classList.add('hidden');\r\n }\r\n } else if (elem.id == 'subscriptionOrPermanent--subscription') {\r\n durationFields.classList.remove('o-priceBar__item--extraStuffHidden');\r\n if(!durationAmountSelectField.hasAttribute('min')) {\r\n setMinimumAmountPeriod();\r\n }\r\n if (permanentDeliveryTime) {\r\n permanentDeliveryTime.classList.add('hidden');\r\n }\r\n if (subscriptionDeliveryTime) {\r\n subscriptionDeliveryTime.classList.remove('hidden');\r\n }\r\n } else {\r\n console.log('Error: not permanent, nor subscription');\r\n }\r\n }\r\n } else {\r\n console.log('Error: radio button clicked but not checked');\r\n }\r\n }\r\n function get(url) {\r\n // Return a new promise.\r\n return new Promise(function(resolve, reject) {\r\n // Do the usual XHR stuff\r\n var req = new XMLHttpRequest();\r\n req.open('GET', url);\r\n\r\n req.onload = function() {\r\n if (req.status >= 200 && req.status < 400) {\r\n // Success!!\r\n resolve(req.response);\r\n } else {\r\n // Error!!\r\n reject(Error(req.statusText));\r\n }\r\n };\r\n\r\n // Handle network errors\r\n req.onerror = function() {\r\n reject(Error('Network Error'));\r\n };\r\n\r\n // Make the request\r\n req.send();\r\n if (keepPromises) {\r\n //we want the last request only, so right price according to amount is shown\r\n keepPromises.abort();\r\n }\r\n keepPromises = req;\r\n });\r\n }\r\n function setSoftwareHiddenValues(thisElemId) {\r\n clearMyTimeout(thisElemId);\r\n if (inputLicenses != null) {\r\n //if extrastuff is hidden it's permanent license\r\n var extraStuffHidden = document.querySelector('.o-priceBar__item--extraStuffHidden');\r\n var extraStuff = document.querySelector('.o-priceBar__item--extraStuff');\r\n var variantID = 0;\r\n var licenses = 1;\r\n var quantity = 1;\r\n var productid = null;\r\n if (extraStuffHidden != null || extraStuff == null) {\r\n fieldVariantID.value = document.getElementById('subscriptionOrPermanent--permanent').value;\r\n variantID = fieldVariantID.value;\r\n quantity = inputLicenses.value;\r\n fieldQuantity.value = quantity;\r\n } else {\r\n if (durationAmountSelectField != null) {\r\n var quantityValue = durationAmountSelectField.value * inputLicenses.value;\r\n licenses = inputLicenses.value;\r\n fieldQuantity.value = quantityValue;\r\n quantity = durationAmountSelectField.value;\r\n if (fieldsDurationType != null) {\r\n for (var i = 0; i < fieldsDurationType.length; i++) {\r\n if (fieldsDurationType[i].checked) {\r\n fieldVariantID.value = fieldsDurationType[i].id;\r\n variantID = fieldVariantID.value;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n var productIdField = document.getElementById('softwareProductId');\r\n if (productIdField != null) {\r\n productid = productIdField.value;\r\n }\r\n if (\r\n productid != null &&\r\n variantID != null &&\r\n quantity != null &&\r\n licenses != null &&\r\n productid != '' /*&& variantID != \"\"*/ &&\r\n quantity != '' &&\r\n licenses != '' &&\r\n priceBarPriceItem != null\r\n ) {\r\n var addToMyEivaLink = document.getElementById(\"add-to-my-eiva-link\");\r\n if (addToMyEivaLink) {\r\n addToMyEivaLink.setAttribute(\"data-variant-id\", variantID);\r\n if (extraStuffHidden != null || extraStuff == null) {\r\n addToMyEivaLink.setAttribute(\"data-license-amount\", quantity);\r\n addToMyEivaLink.setAttribute(\"data-subscription-duration\", 1);\r\n } else {\r\n addToMyEivaLink.setAttribute(\"data-license-amount\", licenses);\r\n addToMyEivaLink.setAttribute(\"data-subscription-duration\", quantity);\r\n }\r\n }\r\n \r\n var url =\r\n '/system/ajax/software-price?productid=' +\r\n productid +\r\n '&VariantID=' +\r\n variantID +\r\n '&quantity=' +\r\n quantity +\r\n '&licenses=' +\r\n licenses;\r\n //console.log(url);\r\n priceBarPriceItem.innerHTML = '
';\r\n get(url).then(\r\n function(response) {\r\n priceBarPriceItem.innerHTML = response;\r\n },\r\n function(error) {\r\n console.error('novicell.setSoftwareHiddenValues:', error);\r\n }\r\n );\r\n submitBtn.removeAttribute('disabled');\r\n } else {\r\n var priceField = document.getElementById('o-priceBar__item--price-software');\r\n priceField.innerHTML = '';\r\n submitBtn.setAttribute('disabled', 'true');\r\n //console.log('Error: when it\\'s not software this is not shown');\r\n }\r\n }\r\n }\r\n\r\n return {\r\n init: init,\r\n setSoftwareHiddenValues: setSoftwareHiddenValues\r\n };\r\n })();\r\n","'use strict';\r\n\r\nvar novicell = novicell || {};\r\nvar dataLayer = dataLayer || null; /*Google Tag Manager*/\r\n\r\nnovicell.search =\r\n novicell.search ||\r\n (function() {\r\n var doNotSearchBeforeCharAmount = 2;\r\n var doNotSearchBeforeMilisecondsAmount = 300;\r\n var lastType = 0;\r\n var timeOuts = {};\r\n var searchUrl = '';\r\n\r\n var elemToTriggerOpenSearchID = 'trigger-search';\r\n var elemSearchInputID = 'm-searchFieldGlobal-input';\r\n var searchPath = '/system/ajax/searchoverlay-page';\r\n var searchPage = '';\r\n var hiddenSearchOverlayContentID = '#overlayContent--searchFieldGlobal';\r\n var searchOverlayClass = 'novi-overlay--search';\r\n var searchOverlayBackdropClass = 'novi-backdrop--search';\r\n var searchOverlayInputFieldClass = '.' + searchOverlayClass + ' .m-searchFieldGlobal__search-field';\r\n var overlaySearchResultContainerSelector = '.' + searchOverlayClass + ' #overlay-search-result-container';\r\n\r\n function init() {\r\n findSearchUrl();\r\n initSearchTrigger();\r\n initSearchAsYouType();\r\n initGoToSearchPage();\r\n showSearchResultTotalOnSearchPage();\r\n }\r\n function showSearchResultTotalOnSearchPage() {\r\n var productHeader = document.getElementById('o-searchResults__categoryHeader--products');\r\n var pageHeader = document.getElementById('o-searchResults__categoryHeader--pages');\r\n var countHolder = document.getElementById('o-searchResults__resultCountTotal');\r\n if (productHeader != null && pageHeader != null && countHolder != null) {\r\n var resultCountProducts = productHeader.getAttribute('data-search-result-count') * 1;\r\n var resultCountPages = pageHeader.getAttribute('data-search-result-count') * 1;\r\n var resultCountTotal = resultCountProducts + resultCountPages;\r\n var countText = countHolder.innerHTML;\r\n countText = countText.replace('##', resultCountTotal);\r\n countHolder.innerHTML = countText;\r\n }\r\n }\r\n function initGoToSearchPage() {\r\n var body = document.querySelector('body');\r\n\r\n if (body != null) {\r\n body.addEventListener('submit', function(e) {\r\n //if search form\r\n if (e.target.classList.contains('m-searchFieldGlobal__form')) {\r\n e.preventDefault();\r\n var query = e.target.querySelector('.m-searchFieldGlobal__search-field').value;\r\n var searchPageUrl = encodeURI(searchPage + query);\r\n location.href = searchPageUrl;\r\n }\r\n });\r\n }\r\n }\r\n function findSearchUrl() {\r\n var searchField = document.getElementById(elemSearchInputID);\r\n if (searchField != null) {\r\n if (searchPath != null) {\r\n searchUrl = searchPath + '?search=';\r\n }\r\n }\r\n\r\n var searchFieldOverlay = document.getElementById('overlayContent--searchFieldGlobal');\r\n if (searchFieldOverlay != null) {\r\n if (searchPath != null) {\r\n searchPage = searchFieldOverlay.getAttribute('data-search-page-link');\r\n }\r\n }\r\n }\r\n function search(inputValue) {\r\n clearMyTimeout();\r\n var searchValue = encodeURIComponent(inputValue);\r\n showResults(searchValue);\r\n }\r\n function setShowAllResultsButtonLink(searchValue) {\r\n var btnsShowAll = document.querySelectorAll('.a-link.o-searchBox__moreLink');\r\n for (var i = 0; i < btnsShowAll.length; i++) {\r\n var basicSearcPageUrl = btnsShowAll[i].getAttribute('data-href');\r\n if (basicSearcPageUrl != null && basicSearcPageUrl != undefined) {\r\n btnsShowAll[i].setAttribute('href', basicSearcPageUrl + searchValue);\r\n }\r\n }\r\n }\r\n function showResults(searchValue) {\r\n if (searchUrl != '') {\r\n var url = searchUrl + searchValue;\r\n get(url).then(\r\n function(response) {\r\n var overlayContent = document.querySelector(overlaySearchResultContainerSelector);\r\n if (overlayContent != null) {\r\n overlayContent.innerHTML = response;\r\n }\r\n setShowAllResultsButtonLink(searchValue);\r\n },\r\n function(error) {\r\n console.error('novicell.search:', error);\r\n }\r\n );\r\n }\r\n }\r\n function clearMyTimeout() {\r\n if (timeOuts.myTimeout != undefined) {\r\n clearTimeout(timeOuts.myTimeout);\r\n delete timeOuts.myTimeout;\r\n }\r\n }\r\n function searchFieldChanged(e) {\r\n var searchField = document.querySelector(searchOverlayInputFieldClass);\r\n if (searchField != null) {\r\n var inputValue = searchField.value.trim();\r\n if (window.innerWidth >= 768) {\r\n if (inputValue.length >= doNotSearchBeforeCharAmount) {\r\n if (lastType == 0) {\r\n lastType = Date.now();\r\n }\r\n var rightNow = Date.now();\r\n var milisecondsSinceLastType = rightNow - lastType;\r\n if (milisecondsSinceLastType <= doNotSearchBeforeMilisecondsAmount) {\r\n clearMyTimeout();\r\n }\r\n lastType = rightNow;\r\n if (timeOuts.myTimeout == undefined) {\r\n timeOuts.myTimeout = setTimeout(search, doNotSearchBeforeMilisecondsAmount, inputValue);\r\n }\r\n }\r\n } else {\r\n removeSearchResultOverlay();\r\n }\r\n }\r\n }\r\n function removeSearchResultOverlay() {\r\n var searchResultOverlay = document.querySelector('.novi-overlay #overlay-search-result-container');\r\n if (searchResultOverlay != null) {\r\n while (searchResultOverlay.firstChild) {\r\n searchResultOverlay.removeChild(searchResultOverlay.firstChild);\r\n }\r\n }\r\n }\r\n function initSearchAsYouType() {\r\n var body = document.querySelector('body');\r\n\r\n if (body != null) {\r\n body.addEventListener('keyup', searchFieldChanged, false);\r\n body.addEventListener('paste', searchFieldChanged, false);\r\n }\r\n }\r\n\r\n function closeSearch() {\r\n var searchElementIfOpen = document.querySelector('.searchFieldGlobal--open');\r\n if (searchElementIfOpen != null) {\r\n searchElementIfOpen.classList.remove('searchFieldGlobal--open');\r\n }\r\n }\r\n\r\n function initSearchTrigger() {\r\n var searchTrigger = document.getElementById(elemToTriggerOpenSearchID);\r\n if (searchTrigger != null) {\r\n searchTrigger.addEventListener('click', function(e) {\r\n e.preventDefault();\r\n\r\n novicell.overlay.create({\r\n selector: hiddenSearchOverlayContentID,\r\n class: searchOverlayClass,\r\n backdropClass: searchOverlayBackdropClass,\r\n onLoaded: function() {\r\n var inputField = document.querySelector(searchOverlayInputFieldClass);\r\n\r\n if (inputField != null) {\r\n inputField.addEventListener('focus', function() {\r\n if (dataLayer != null) {\r\n dataLayer.push({ event: 'soeg' });\r\n }\r\n });\r\n\r\n inputField.focus();\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n function searchResultsOverlayIsOpen() {\r\n var searchElem = document.getElementById('searchFieldGlobal');\r\n if (searchElem != null) {\r\n searchElem.classList.add('searchFieldGlobal--results-open');\r\n }\r\n\r\n //scroll to top\r\n var windowScrollY = window.pageYOffset;\r\n novicell.helpers.animate(document.scrollingElement || document.documentElement, 'scrollTop', '', windowScrollY, 0, 200, true);\r\n\r\n var searchInput = document.getElementById(elemSearchInputID);\r\n if (searchInput != null) {\r\n var searchValue = encodeURIComponent(searchInput.value);\r\n }\r\n\r\n setTimeout(function() {\r\n setShowAllResultsButtonLink(searchValue);\r\n }, 750);\r\n }\r\n function searchResultsOverlayIsClosed() {\r\n var searchElem = document.getElementById('searchFieldGlobal');\r\n if (searchElem != null) {\r\n searchElem.classList.remove('searchFieldGlobal--results-open');\r\n }\r\n\r\n //make sure search box is closed\r\n closeSearch();\r\n }\r\n\r\n function get(url) {\r\n // Return a new promise.\r\n return new Promise(function(resolve, reject) {\r\n // Do the usual XHR stuff\r\n var req = new XMLHttpRequest();\r\n req.open('GET', url);\r\n req.onload = function() {\r\n if (req.status >= 200 && req.status < 400) {\r\n // Success!!\r\n resolve(req.response);\r\n } else {\r\n // Error!!\r\n reject(Error(req.statusText));\r\n }\r\n };\r\n\r\n // Handle network errors\r\n req.onerror = function() {\r\n reject(Error('Network Error'));\r\n };\r\n\r\n // Make the request\r\n req.send();\r\n });\r\n }\r\n\r\n return {\r\n init: init,\r\n searchResultsOverlayIsOpen: searchResultsOverlayIsOpen,\r\n searchResultsOverlayIsClosed: searchResultsOverlayIsClosed\r\n };\r\n })();\r\n\r\nfunction searchResultsOverlayIsOpen() {\r\n novicell.search.searchResultsOverlayIsOpen();\r\n}\r\nfunction searchResultsOverlayIsClosed() {\r\n novicell.search.searchResultsOverlayIsClosed();\r\n}\r\n","'use strict';\r\n\r\n/**\r\n * @name Novicell Slider\r\n * @desc Slider, for custom arrow use https://flickity.metafizzy.co/options.html#arrowshape\r\n * @author Emil Ankersen (EAN)\r\n * @requires https://flickity.metafizzy.co/\r\n */\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.slider =\r\n novicell.slider ||\r\n new function() {\r\n this.init = function() {\r\n const elem = document.querySelector('.js-slider');\r\n if (elem && elem != null) {\r\n let flkty = new Flickity(elem, {\r\n // options\r\n cellAlign: 'left',\r\n contain: true,\r\n wrapAround: true,\r\n arrowShape:\r\n 'M0.5,28.8L30,0.5c0.7-0.7,1.8-0.7,2.5,0s0.7,1.7,0,2.4L4.3,30l28.2,27.1c0.7,0.7,0.7,1.7,0,2.4c-0.3,0.3-0.8,0.5-1.2,0.5s-0.9-0.2-1.2-0.5L0.5,31.2C-0.2,30.5-0.2,29.5,0.5,28.8z'\r\n });\r\n }\r\n };\r\n }();\r\n","'use strict';\r\nvar novicell = novicell || {};\r\n\r\nnovicell.stickyNav = novicell.stickyNav || function () {\r\n\r\n var pageScrollPosition = 0;\r\n var scrollDirection = \"down\";\r\n var lastScrollUpPosition = 0;\r\n var lastPageScrollPosition = 0;\r\n var scrolledSinceLastDirectionChange = 0;\r\n\r\n var alwaysShowWhenAboveThis = 1000;\r\n var showWhenNotScrolledMoreThan = 76;\r\n\r\n var siteHeaderHideClass = \"o-siteheader--hidden\";\r\n\r\n function run() {\r\n var siteHeader = document.querySelector('#o-siteheader');\r\n if(siteHeader != null){\r\n setCurrentPageScrollPosition();\r\n setScrollDirection();\r\n if(pageScrollPositionLargeEnoughToHideHeader() && scrollDirection == \"down\" && scrollSinceDirectionChangeLargeEnoughToHideHeader())\r\n {\r\n siteHeader.classList.add(siteHeaderHideClass);\r\n }else{\r\n siteHeader.classList.remove(siteHeaderHideClass);\r\n }\r\n }\r\n }\r\n function setCurrentPageScrollPosition(){\r\n pageScrollPosition = window.pageYOffset;\r\n }\r\n function pageScrollPositionLargeEnoughToHideHeader(){\r\n return pageScrollPosition > alwaysShowWhenAboveThis;\r\n }\r\n function setScrollDirection(){\r\n if(pageScrollPosition >= lastPageScrollPosition){\r\n if(scrollDirection == \"up\"){\r\n lastScrollUpPosition = pageScrollPosition;\r\n }\r\n scrollDirection = \"down\";\r\n }else{\r\n scrollDirection = \"up\";\r\n }\r\n lastPageScrollPosition = pageScrollPosition;\r\n }\r\n function scrollSinceDirectionChangeLargeEnoughToHideHeader(){\r\n return pageScrollPosition - lastScrollUpPosition > showWhenNotScrolledMoreThan;\r\n }\r\n\r\n return {\r\n run: run\r\n };\r\n}();\r\n","\"use strict\";\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.tabs = novicell.tabs || new function() {\r\n var classActiveTabDesktop = \"o-tabsElement__tab--active-desktop\";\r\n var classActiveTabMobile = \"o-tabsElement__tab--active-mobile\";\r\n var classActiveContentDesktop = \"o-tabsElement__content--active-desktop\";\r\n var classActiveContentMobile = \"o-tabsElement__content--active-mobile\";\r\n function init() {\r\n classNameHandler();\r\n \r\n window.addEventListener(\"resize\", function () {\r\n classNameHandler();\r\n });\r\n }\r\n function classNameHandler(){\r\n var activeDesktopTab = document.querySelector('.'+classActiveTabDesktop);\r\n if (activeDesktopTab == null) {\r\n var tab1 = document.querySelector(\".o-tabsElement__menu .o-tabsElement__tab\");\r\n var content1 = document.querySelector(\".o-tabsElement__menu .o-tabsElement__content\");\r\n\r\n if(tab1 != null){\r\n tab1.classList.add(classActiveTabDesktop);\r\n }\r\n if(content1 != null){\r\n content1.classList.add(classActiveContentDesktop);\r\n }\r\n }\r\n }\r\n \r\n function openTab(source ) {\r\n var classIconOpen = \"o-tabsElement__bar--open\";\r\n var classIconVerticalSign = \"o-tabsElement__bar--vertical\";\r\n var i;\r\n var tabsTarget = document.getElementById(\"tab-\" + source);\r\n var content = document.getElementsByClassName(\"o-tabsElement__content\");\r\n var tabs = document.getElementsByClassName(\"o-tabsElement__tab\");\r\n var wtclean = document.getElementsByClassName(classIconVerticalSign);\r\n var target = document.getElementById(source);\r\n var iconbox = tabsTarget.querySelector(\".\" + classIconVerticalSign);\r\n var w = window.innerWidth;\r\n //der bliver trykket på en ikke allerede aktiv tab i det pågældende breakpoint\r\n if(w < 768 && !tabsTarget.classList.contains(classActiveTabMobile) || w > 767 && !tabsTarget.classList.contains(classActiveTabDesktop)){\r\n //luk alle og åbn en ny\r\n for (i = 0; i < tabs.length; i++) {\r\n tabs[i].classList.remove(classActiveTabDesktop);\r\n tabs[i].classList.remove(classActiveTabMobile);\r\n }\r\n for (i = 0; i < content.length; i++) {\r\n content[i].classList.remove(classActiveContentDesktop);\r\n content[i].classList.remove(classActiveContentMobile);\r\n }\r\n for (i = 0; i < wtclean.length; i++) {\r\n wtclean[i].classList.remove(classIconOpen);\r\n }\r\n\r\n tabsTarget.classList.add(classActiveTabDesktop);\r\n tabsTarget.classList.add(classActiveTabMobile);\r\n \r\n target.classList.add(classActiveContentDesktop);\r\n target.classList.add(classActiveContentMobile);\r\n if(iconbox!=null){\r\n iconbox.classList.add(classIconOpen);\r\n }\r\n }\r\n else if(w < 768 && tabsTarget.classList.contains(classActiveTabMobile)){\r\n //luk den aktuelle i mobile\r\n tabsTarget.classList.remove(classActiveTabDesktop);\r\n tabsTarget.classList.remove(classActiveTabMobile);\r\n \r\n target.classList.remove(classActiveContentDesktop);\r\n target.classList.remove(classActiveContentMobile);\r\n if(iconbox!=null){\r\n iconbox.classList.remove(classIconOpen);\r\n }\r\n }\r\n }\r\n \r\n return { init: init, openTab: openTab };\r\n}();\r\n","'use strict';\r\n\r\n/**\r\n * @name Novicell Validate\r\n * @desc A script that inits validate.js with default Novicell settings\r\n * @author Bjørn Nyborg (BNY)\r\n * @example
\r\n * @requires https://github.com/cferdinandi/validate\r\n */\r\n\r\n\r\nvar novicell = novicell || {}; \r\n\r\nnovicell.validate = novicell.validate || new function () {\r\n\r\n this.init = function () {\r\n var standardMessageValueMissing = 'Please fill out this field.';\r\n validate.init({\r\n // Classes and Selectors\r\n selector: '[data-validate]',\r\n fieldClass: 'error',\r\n errorClass: 'error-message',\r\n\r\n // Messages\r\n messageValueMissing: standardMessageValueMissing,\r\n messageValueMissingRadio: 'Please select a payment method.', // Displayed when a required radio button isn't selected\r\n messageValueMissingSelect: 'Please select a value.',\r\n messageValueMissingSelectMulti: 'Vælg venligst mindst én værdi',\r\n messageTypeMismatchEmail: 'Please enter a valid email address.',\r\n messageTypeMismatchURL: 'Indtast en gyldig URL',\r\n messageTooShort: 'Indtast venligst {minLength} karakterer eller mere. Du har indtastet {length} karakterer.',\r\n messageTooLong: 'Indtast venligst {maxLength} eller færre karakterer. Du har indtastet {length} karakterer.',\r\n messagePatternMismatch: 'Du har indtastet data i et forkert format',\r\n messageBadInput: 'Indtast venligst et tal',\r\n messageStepMismatch: 'Vælg venligst en gyldig værdi',\r\n messageRangeOverflow: 'Du må ikke angive mere end {max}.',\r\n messageRangeUnderflow: 'Du må ikke angive mindre end {min}.',\r\n messageGeneric: 'Den indtastede værdi er ugyldig',\r\n\r\n // Form Submission\r\n disableSubmit: false,\r\n onSubmit: function () {},\r\n\r\n // Callbacks\r\n beforeShowError: function (e) {\r\n e.classList.add(\"validated\");\r\n },\r\n afterShowError: function (field, error) {\r\n if(field.id == 'termsConditions'){\r\n if(error == \"This field is required.\"){\r\n var customMessage = field.getAttribute('title');\r\n validate.showError(\r\n field, // The field to show an error message for\r\n customMessage// The error message to show\r\n ); \r\n }\r\n }\r\n },\r\n beforeRemoveError: function () { },\r\n afterRemoveError: function () { },\r\n\r\n });\r\n };\r\n}();","'use strict';\r\n\r\nvar novicell = novicell || {};\r\nvar videoElementId = 'videoOverlay';\r\n\r\nnovicell.videooverlay =\r\n novicell.videooverlay ||\r\n (function() {\r\n function init() {\r\n var body = document.querySelector('body');\r\n body.onclick = function(e) {\r\n if (e.target.classList.contains('a-videoPlayIcon') && !e.target.classList.contains('js-a-videoPlayIcon--noPlay')) {\r\n e.stopPropagation();\r\n playVideo(e.target.parentNode);\r\n }\r\n if (e.target.getAttribute('data-videoid') != null) {\r\n e.stopPropagation();\r\n playVideo(e.target);\r\n }\r\n };\r\n }\r\n function adjustVideoHeight() {\r\n var videoAspectRatio = 16 / 9;\r\n var overlay = document.getElementById('js-novi-overlay2');\r\n if (overlay == null) {\r\n overlay = document.getElementById('js-novi-overlay');\r\n }\r\n if (overlay != null) {\r\n var videoOverlay = overlay.querySelector('.novi-overlay__content--video');\r\n if (videoOverlay != null) {\r\n var videoHeight, videoWidth;\r\n var videoMaxHeight = window.innerHeight - 120;\r\n var videoMaxWidth = window.innerWidth - 30;\r\n var correspondingWidth = videoMaxHeight * videoAspectRatio;\r\n\r\n videoWidth = correspondingWidth;\r\n videoHeight = videoMaxHeight;\r\n if (correspondingWidth > videoMaxWidth) {\r\n videoWidth = videoMaxWidth;\r\n var correspondingHeight = videoWidth * (1 / videoAspectRatio);\r\n videoHeight = correspondingHeight;\r\n }\r\n videoOverlay.style.width = videoWidth + 'px';\r\n videoOverlay.style.height = videoHeight + 'px';\r\n }\r\n }\r\n }\r\n function playVideo(el) {\r\n //get video ID from HTML\r\n var videoId = el.getAttribute('data-videoid');\r\n //HTML element that should hold the video\r\n // var videoOverlay = document.getElementById(videoElementId);\r\n // if(videoOverlay!= null){videoOverlay.parentNode.removeChild(videoOverlay);}\r\n if (novicell.helpers.closestByClass(el, 'novi-overlay__content') != null) {\r\n // if video link is in overlay\r\n novicell.overlay2.create({\r\n class: 'selector-overlay',\r\n videoId: videoId,\r\n type: 'youtube',\r\n autoplay: true\r\n });\r\n } else {\r\n novicell.overlay.create({\r\n class: 'selector-overlay',\r\n videoId: videoId,\r\n type: 'youtube',\r\n autoplay: true\r\n });\r\n }\r\n\r\n adjustVideoHeight();\r\n window.addEventListener('resize', novicell.debounce(adjustVideoHeight, 250));\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n })();\r\n","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(window, function l(window, document) {\n\t'use strict';\n\t/*jshint eqnull:true */\n\tif(!document.getElementsByClassName){return;}\n\n\tvar lazysizes, lazySizesConfig;\n\n\tvar docElem = document.documentElement;\n\n\tvar Date = window.Date;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\tvar addEventListener = window[_addEventListener];\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesConfig.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesConfig.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesConfig.throttleDelay;\n\t\tvar rICTimeout = lazySizesConfig.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesConfig.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesConfig.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesConfig = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesConfig)){\n\t\t\t\tlazySizesConfig[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\n\t\twindow.lazySizesConfig = lazySizesConfig;\n\n\t\tsetTimeout(function(){\n\t\t\tif(lazySizesConfig.init){\n\t\t\t\tinit();\n\t\t\t}\n\t\t});\n\t})();\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom;\n\n\t\tvar defaultExpand, preloadExpand, hFac;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(e && e.target){\n\t\t\t\taddRemoveLoadEvents(e.target, resetPreloading);\n\t\t\t}\n\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = getCSS(document.body, 'visibility') == 'hidden' || (getCSS(elem.parentNode, 'visibility') != 'hidden' && getCSS(elem, 'visibility') != 'hidden');\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal, beforeExpandVal;\n\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesConfig.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tif(preloadExpand == null){\n\t\t\t\t\tif(!('expand' in lazySizesConfig)){\n\t\t\t\t\t\tlazySizesConfig.expand = docElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefaultExpand = lazySizesConfig.expand;\n\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesConfig.expFactor;\n\t\t\t\t}\n\n\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\tlowRuns = 0;\n\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t} else {\n\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t}\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesConfig.loadHidden || getCSS(lazyloadElems[i], 'visibility') != 'hidden') &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesConfig.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesConfig.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\taddClass(e.target, lazySizesConfig.loadedClass);\n\t\t\tremoveClass(e.target, lazySizesConfig.loadingClass);\n\t\t\taddRemoveLoadEvents(e.target, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(e.target, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\ttry {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} catch(e){\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesConfig.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesConfig.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesConfig.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesConfig.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesConfig.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\taddRemoveLoadEvents(elem, resetPreloading, true);\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\n\t\t\t\t\taddClass(elem, lazySizesConfig.loadingClass);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesConfig.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\tif( !firesLoad || (elem.complete && elem.naturalWidth > 1)){\n\t\t\t\t\tif(firesLoad){\n\t\t\t\t\t\tresetPreloading(event);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisLoading--;\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\tvar unveilElement = function (elem){\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesConfig.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesConfig.errorClass) && hasClass(elem, lazySizesConfig.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar afterScroll = debounce(function(){\n\t\t\t\tlazySizesConfig.loadMode = 3;\n\t\t\t\tthrottledCheckElements();\n\t\t\t});\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesConfig.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', function(){\n\t\t\t\tif(lazySizesConfig.loadMode == 3){\n\t\t\t\t\tlazySizesConfig.loadMode = 2;\n\t\t\t\t}\n\t\t\t\tafterScroll();\n\t\t\t}, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesConfig.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesConfig.lazyClass + ' ' + lazySizesConfig.preloadClass);\n\t\t\t\thFac = lazySizesConfig.hFac;\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend', 'webkitAnimationEnd'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesConfig.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tlazysizes = {\n\t\tcfg: lazySizesConfig,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n","\"use strict\";\r\n/*\r\n * Novicell master\r\n * Use this file to call functions in other files, on document ready, window.resize etc.\r\n */\r\nvar cl = console.log.bind(console);\r\nvar novicell = novicell || {};\r\nvar projectName = projectName || {};\r\nvar ES6Promise = ES6Promise || {};\r\n\r\n// Document ready\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n svg4everybody(); // Fix SVG spritemap in IE/Edge\r\n ES6Promise.polyfill();\r\n novicell.validate.init(); // Init Validation\r\n novicell.inputMasking.init(); //Init input masking\r\n novicell.slider.init();\r\n novicell.cookieInfo.init();\r\n novicell.navigation.init();\r\n novicell.videooverlay.init();\r\n novicell.tabs.init();\r\n novicell.search.init();\r\n novicell.stickyNav.run();\r\n novicell.accordionReadMoreOnMobile.init();\r\n novicell.featureComparison.init();\r\n novicell.highlightedFeaturesOverlay.init();\r\n novicell.oTrainingList.init();\r\n novicell.productFilters.init();\r\n novicell.addRemoveButtons.init();\r\n novicell.checkout.init();\r\n novicell.productPagePrices.init();\r\n novicell.newslistShowAll.init();\r\n novicell.cookieListFormatting.init();\r\n\r\n // var elementToClick = document.querySelector('#a-logo__menu');\r\n // var event = document.createEvent('HTMLEvents');\r\n // event.initEvent('touchstart', true, false);\r\n // elementToClick.dispatchEvent(event);\r\n});\r\n\r\nwindow.addEventListener(\r\n \"load\",\r\n function() {\r\n novicell.productImageSlider.init();\r\n novicell.anchorLinks.init();\r\n },\r\n false\r\n);\r\n\r\nwindow.addEventListener(\r\n \"scroll\",\r\n novicell.debounce(novicell.stickyNav.run, 250)\r\n);\r\nwindow.addEventListener(\r\n \"resize\",\r\n novicell.debounce(novicell.oTrainingList.setTextHeight, 250)\r\n);\r\nwindow.addEventListener(\r\n \"resize\",\r\n novicell.debounce(novicell.accordionReadMoreOnMobile.recalcAll, 250)\r\n);\r\n"]}