{"version":3,"sources":["jquery-3.6.4.js","jquery.mobile.custom.js","popper.js","global.settings.js","util.js","utilities.js","handlebars.js","bootstrap.js","carousel.js","collapse.js","bootstrap.carousel.js","dropdown.js","bootstrap.collapse.js","modal.js","bootstrap.dropdown.js","tab.js","bootstrap.modal.js","tooltip.js","hubspot.js","header.js","navigation.js","call-to-action.js","forms.js","scroll-reveal.js","scroll-to-anchor.js","parallax.js","paragraph.js","paragraph.card.js","paragraph.icon.js","paragraph.banner.js","search.js","breadcrumb.js","cookie-warning.js","news.js","dealersearch.js","ecom.productlist.js","ecom.product.js","ecom.cart.js","ecom.quickorder.js","ecom.checkout.js","ecom.customercenter.js","extranet.login.js","extranet.impersonation.js","google-tagmanager.js","animate-text.js","animate-number.js","on.document.ready.js","on.window.load.js","configurator.js","custom.js"],"names":["e","t","module","exports","document","Error","window","this","C","m","nodeType","item","x","r","Object","getPrototypeOf","s","slice","g","flat","call","concat","apply","u","push","i","indexOf","n","o","toString","y","hasOwnProperty","a","l","v","E","c","type","src","nonce","noModule","b","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","w","f","S","fn","init","p","length","prototype","jquery","constructor","toArray","get","pushStack","merge","prevObject","each","map","arguments","first","eq","last","even","grep","odd","end","sort","splice","extend","isPlainObject","Array","isArray","expando","Math","random","replace","isReady","error","noop","isEmptyObject","globalEval","makeArray","inArray","guid","support","Symbol","iterator","split","toLowerCase","h","is","T","nextSibling","d","ne","String","fromCharCode","ie","charCodeAt","oe","Date","k","ue","A","N","j","D","q","pop","L","H","O","P","R","M","I","W","F","$","RegExp","B","_","z","U","X","V","G","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","Y","Q","J","K","Z","ee","te","re","ae","be","disabled","nodeName","dir","next","childNodes","se","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","ve","scope","xe","join","querySelectorAll","removeAttribute","cacheLength","shift","le","ce","fe","attrHandle","pe","sourceIndex","ge","isDisabled","ye","isXML","namespaceURI","documentElement","setDocument","defaultView","top","addEventListener","attachEvent","cssHas","querySelector","attributes","className","createComment","getById","getElementsByName","filter","find","getAttributeNode","value","innerHTML","matchesSelector","matches","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","contains","sortDetached","unshift","attr","specified","escape","uniqueSort","detectDuplicates","sortStable","getText","textContent","firstChild","nodeValue","selectors","createPseudo","match","relative",">"," ","+","~","preFilter","lastChild","uniqueID","pseudos","setFilters","not","has","lang","target","location","hash","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","parent","header","input","button","lt","gt","nth","radio","checkbox","file","password","image","de","submit","reset","he","me","we","Te","Ee","Ce","filters","tokenize","compile","selector","select","defaultValue","expr","unique","isXMLDoc","escapeSelector","ready","parseHTML","children","contents","prev","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","content","reverse","promise","done","fail","then","Callbacks","once","stopOnFalse","memory","remove","disable","lock","locked","fireWith","fire","fired","Deferred","state","always","catch","pipe","progress","notify","resolve","reject","TypeError","notifyWith","resolveWith","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","when","console","warn","name","message","stack","readyException","removeEventListener","readyWait","readyState","doScroll","toUpperCase","uid","cache","defineProperty","configurable","set","access","hasData","JSON","parse","data","removeData","_data","_removeData","queue","dequeue","_queueHooks","stop","clearQueue","style","display","css","source","composed","getRootNode","cur","cssNumber","unit","start","body","show","hide","toggle","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","thead","col","tr","td","_default","tbody","tfoot","colgroup","caption","th","optgroup","htmlPrefilter","createTextNode","off","event","Se","namespace","handler","isTrigger","special","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","global","events","create","handle","triggered","dispatch","bindType","origType","delegateCount","setup","teardown","removeEvent","fix","delegateTarget","preDispatch","handlers","isPropagationStopped","currentTarget","elem","isImmediatePropagationStopped","rnamespace","handleObj","result","postDispatch","addProp","enumerable","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","code","charCode","key","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","mouseenter","mouseleave","pointerenter","pointerleave","on","one","ke","Ae","Ne","je","De","qe","Le","He","html","clone","_evalUrl","Oe","cleanData","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","Me","opener","getComputedStyle","Ie","Pe","Re","We","Fe","$e","Be","getPropertyValue","pixelBoxStyles","width","minWidth","maxWidth","_e","cssText","marginLeft","right","position","offsetWidth","round","parseFloat","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","height","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","ze","Ue","Xe","Ve","cssProps","Ge","Ye","visibility","Qe","letterSpacing","fontWeight","Je","max","Ke","ceil","Ze","getClientRects","et","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","widows","zIndex","zoom","setProperty","isFinite","getBoundingClientRect","left","margin","padding","border","expand","Tween","prop","easing","options","propHooks","run","duration","pos","step","fx","scrollTop","scrollLeft","linear","swing","cos","PI","tt","nt","ot","at","st","hidden","requestAnimationFrame","interval","tick","ut","ct","ft","tweeners","prefilters","startTime","tweens","props","opts","specialEasing","originalProperties","originalOptions","createTween","bind","complete","timer","anim","Animation","*","tweener","unqueued","overflow","overflowX","overflowY","prefilter","speed","speeds","old","fadeTo","animate","finish","timers","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","clearTimeout","rt","it","checkOn","optSelected","radioValue","pt","dt","ht","removeAttr","attrHooks","yt","vt","mt","removeProp","propFix","for","class","addClass","removeClass","toggleClass","hasClass","wt","xt","bt","val","valHooks","focusin","Tt","parentWindow","simulate","triggerHandler","Ct","Et","St","parseXML","DOMParser","parseFromString","kt","At","Nt","param","encodeURIComponent","jt","serialize","serializeArray","Dt","qt","Lt","Ht","Ot","Pt","Rt","Mt","It","Wt","Ft","$t","dataTypes","Bt","ajaxSettings","flatOptions","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","xml","json","responseFields","converters","* text","text html","text json","text xml","context","ajaxSetup","ajaxPrefilter","ajaxTransport","ajax","statusCode","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","method","dataType","crossDomain","host","traditional","hasContent","ifModified","headers","beforeSend","success","timeout","send","dataFilter","statusText","getJSON","getScript","text script","wrapAll","firstElementChild","wrapInner","wrap","unwrap","visible","xhr","XMLHttpRequest","_t","0","1223","zt","cors","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","response","script","scriptAttrs","charset","scriptCharset","Xt","Vt","Gt","jsonp","jsonpCallback","createHTMLDocument","Ut","implementation","animated","offset","setOffset","using","pageYOffset","pageXOffset","offsetParent","scrollTo","Height","Width","","unbind","delegate","undelegate","hover","Yt","proxy","holdReady","parseJSON","isFunction","isWindow","camelCase","isNumeric","isNaN","trim","define","amd","jQuery","Qt","noConflict","doc","factory","mobile","undefined","threshold","dataPropertyName","touchTargetPropertyName","touchEventProps","virtualEventNames","generalProps","mouseHookProps","mouseHooks","mouseEventProps","activeDocHandlers","resetTimerID","startX","startY","didScroll","clickBlockList","blockMouseTriggers","blockTouchTriggers","eventCaptureSupported","$document","nextTouchID","lastTouchID","getNativeEvent","getVirtualBindingFlags","element","flags","hasVirtualBinding","disableTouchBindings","enableMouseBindings","disableMouseBindings","clearResetTimer","startResetTimer","vmouse","resetTimerDuration","triggerVirtualEvent","eventType","getClosestElementWithVirtualBinding","touch","len","search","createVirtualEvent","mouseEventCallback","touchID","lastTouchType","maximumTimeBetweenTouches","handleTouchStart","handleScroll","handleTouchMove","didCancel","moveThreshold","moveDistanceThreshold","abs","handleTouchEnd","hasVirtualBindings","ele","bindings","dummyMouseHandler","clickDistanceThreshold","realType","substr","$this","getSpecialEventObject","cnt","version","supportTouch","touchStartEvent","touchStopEvent","touchMoveEvent","triggerCustomEvent","obj","bubble","originalType","attrFn","tap","tapholdThreshold","emitTapOnTaphold","thisObject","isTaphold","clickHandler","origTarget","clearTapTimer","clearTapHandlers","swipe","scrollSupressionThreshold","durationThreshold","horizontalDistanceThreshold","devicePixelRatio","verticalDistanceThreshold","getLocation","winPageX","winPageY","floor","time","getTime","coords","origin","handleSwipe","direction","swipestart","swipestop","eventInProgress","emitted","move","taphold","swipeleft","swiperight","sourceEvent","Popper","isBrowser","longerTimeoutBrowsers","timeoutDuration","navigator","userAgent","debounce","Promise","called","scheduled","functionToCheck","getStyleComputedProperty","property","getParentNode","getScrollParent","_getStyleComputedProp","getOffsetParent","getRoot","node","findCommonOffsetParent","element1","element2","Node","DOCUMENT_POSITION_FOLLOWING","range","createRange","commonAncestorContainer","setStart","setEnd","element1root","getScroll","upperSide","scrollingElement","getBordersSize","styles","axis","sideA","sideB","isIE10","isIE10$1","appVersion","getSize","computedStyle","getWindowSizes","createClass","Constructor","protoProps","staticProps","defineProperties","descriptor","_extends","assign","getClientRect","offsets","bottom","rect","err","sizes","clientWidth","clientHeight","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","isHTML","childrenRect","parentRect","scrollParent","borderLeftWidth","marginTop","subtract","modifier","includeScroll","getBoundaries","popper","reference","boundariesElement","boundaries","relativeOffset","innerWidth","innerHeight","boundariesNode","isFixed","_getWindowSizes","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","area","_ref","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","getOuterSizes","marginBottom","marginRight","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","runModifiers","modifiers","ends","findIndex","forEach","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","prefix","toCheck","getWindow","setupEventListeners","updateBound","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","setStyles","isModifierRequired","requestingName","requestedName","_requesting","requesting","isRequired","placements","validPlacements","clockwise","counter","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","op","mergeWithPrevious","reduce","str","index2","Defaults","removeOnDestroy","onCreate","onUpdate","shiftvariation","_data$offsets","isVertical","shiftOffsets","side","preventOverflow","instance","priority","primary","escapeWithReference","secondary","min","keepTogether","opSide","arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","sideValue","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","inner","subtractLength","bound","computeStyle","gpuAcceleration","legacyGpuAccelerationOption","offsetParentRect","prefixedProperty","willChange","invertLeft","x-placement","arrowStyles","applyStyle","onLoad","modifierOptions","isDestroyed","isCreated","_this","update","enableEventListeners","Utils","PopperUtils","e4","settings","animation","autoHideTolerance","up","down","nav","revealActive","flagCDN","parallax","scrollReveal","classConceal","classRevealFade","classRevealSlide","classRevealDone","classReset","scrollToAnchor","nudge","stickyElements","fullscreenElements","backToTop","revealOffset","forms","validate","messages","da","debounceDelay","pages","products","showAllLink","xs","sm","md","lg","xl","require","jQueryValidate","fallback","handlebars","MarkerClusterer","jQueryUImap","typeahead","drawSVG","ecom","cleanUrl","cart","msgHideDelay","download","quickorder","checkout","multipageBreakpoint","shipping","searchCount","termsAndConditions","breakpoint","collapse","peekSizeMin","dealersearch","geolocation","initial","results","sensitivity","country","DK","lat","lng","NO","SE","DE","GB","transitionend","domElm","objTestTransitionEnd","transition","OTransition","MSTransition","WebkitTransition","animationend","objTestAnimationEnd","OAnimation","MSAnimation","WebkitAnimation","cookieAcceptLink","Util","separatorInteger","separatorDecimal","favoriteProducts","util","catchInternalBackLinks","catchBlockLinks","isInViewport","jElement","bounds","getUrlParameter","strParam","arrParameterName","arrURLVariables","urlParams","substring","decodeURIComponent","formatStringToJavascriptNumber","strNumber","formatJavascriptNumberToLocaleString","intNumber","toFixed","strURL","js","fnCallback","arrCallbackArgs","polyfills","strFeatures","objScript","registerEvents","arrEvents","strNamespaceLocal","objEvents","strNamespace","fnFunction","intDelay","intDeferTimer","thisArg","arrArgs","referrer","history","back","jBlockLink","getBreakPoint","intWindowWidth","arrHashes","lastIndexOf","decode","encode","arrHashKeyValue","hashKey","hashValue","buildNewHashArray","strHash","buildNewHashString","getCurrentHashStringValue","strHashNew","strHashCurrent","replaceState","hashKeyExists","stringify","observer","_instances","rootMargin","arrTargets","objOptions","observe","IntersectionObserver","entries","entry","tmpl","registerTemplates","strTemplates","tmplName","arrTemplates","strFirstLetter","Handlebars","partial","registerPartials","strPartials","partialName","arrPartials","registerPartial","registerHelpers","strHelpers","arrHelpers","helpers","testValue","v1","operator","v2","compare_extended","registerHelper","v2Arr","v2ReturnArr","every","inverse","compare","loop","items","out","encoder","compareLength","hasCategories","categories","parts","part","isDefault","isNotDefaultPartInCategory","category","grouped_each","subcontext","getCustomOsLanguagePartName","filterConfigurationParts","number","osLang","filterKeyboardLanguages","languagesArr","uniqueLanguageArr","langA","langB","keyboardLang","languageObj","uniqueIndex","getKeyboardDiffPrice","price","bootstrap","TransitionEndEvent","MozTransition","transitionEndEmulator","TRANSITION_END","triggerTransitionEnd","getUID","getSelectorFromElement","reflow","supportsTransitionEnd","Boolean","isElement","typeCheckConfig","componentName","config","configTypes","expectedTypes","valueType","QUnit","el","transitionEndTest","emulateTransitionEnd","_defineProperties","_createClass","Carousel","NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","Default","keyboard","slide","pause","DefaultType","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","CLICK_DATA_API","ClassName","Selector","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_element","_indicatorsElement","_addEventListeners","_proto","_slide","nextWhenVisible","cycle","clearInterval","setInterval","visibilityState","to","activeIndex","_getItemIndex","dispose","_this2","_keydown","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","nextIndicator","directionalClassName","orderClassName","slidEvent","_this3","activeElementIndex","nextElement","nextElementIndex","isCycling","_jQueryInterface","action","_dataApiClickHandler","slideIndex","$carousel","carousel","bindEvents","jThis","Collapse","SHOW","SHOWN","HIDE","HIDDEN","Dimension","_isTransitioning","_triggerArray","tabToggles","_parent","_getParent","_addAriaAndCollapsedClass","actives","dimension","scrollSize","activesData","startEvent","_getDimension","setTransitioning","isTransitioning","_getTargetFromElement","triggerArray","isOpen","$trigger","$target","peekContent","Dropdown","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","_getParentFromElement","isActive","_clearMenus","showEvent","_getPopperConfig","destroy","_getPlacement","$parentDropdown","offsetConf","popperConfig","toggles","hideEvent","dropdownMenu","_dataApiKeydownHandler","dropdown","jTarget","Modal","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_hideModal","handleUpdate","transitionComplete","shownEvent","ELEMENT_NODE","_enforceFocus","_this4","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","doAnimate","_this8","callbackRemove","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","actualPadding","calculatedPadding","_this9","actualMargin","calculatedMargin","scrollDiv","scrollbarWidth","_this10","modal","Tab","listElement","previous","itemSelector","_activate","hiddenEvent","container","_transitionComplete","activeElements","dropdownElement","dropdownChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","template","title","fallbackPlacement","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","toggleEnabled","dataKey","_getDelegateConfig","_isWithActiveTrigger","_enter","_leave","getTipElement","attachment","isWithContent","isInTheDom","tipId","setContent","_getAttachment","addAttachmentClass","_handlePopperPlacementChange","_fixTransition","prevHoverState","_TRANSITION_DURATION","_cleanTipClass","getTitle","$tip","setElementContent","$element","eventIn","eventOut","_fixTitle","titleType","tabClass","initConfigAnimation","jHeader","disableSticky","lastScrollTop","scrollDirectionLast","scrollDirectionCurrent","canAutoHide","isShown","isRAF","toggleSticky","toggleVisibility","windowScrollTop","enableSticky","shown","local","horizontal","vertical","jNav","intScrollTarget","jNavItemActive","jNavItemActiveParent","jOffsetElement","jNavLocalHorizontal","intialOffsetTop","jNavLocalVertical","outerHeight","setContentHeight","intWindowScrollTop","intContentMainBottom","intNavLocalVerticalHeight","intNavLocalHeight","strLangISO","arrClassList","cta","jCTA","mailchimp","toggleState","setSubmitPage","jThisFormGroup","loadTranslations","setDefaults","validator","validClass","errorClass","highlight","strClassError","unhighlight","errorPlacement","jError","jFormGroup","jFormValidationMsg","focusInvalid","invalidHandler","form","jFirstError","invalidElements","submitHandler","log","dwSpamScripts","strLang","extendTranslations","setSubmitHandler","jForm","responseHandler","jMsgSuccess","jMsgMailExists","jMailChimpSignUp","msg","min-height","jMsgError","conceal","reveal","strClass","animating","goToLocationHash","getTarget","pathname","hostname","jTargetSection","getNudge","jWindow","scrollDirectionNew","loadImages","translateY","transform","card","icon","banner","jCardLink","jSVG","drawsvg","stagger","jThisParagraph","scrollToNextSection","intNextSectionOffset","jImageActive","jImageNext","loadIndex","handleModal","toggleInputGroupState","clearInput","sessionStorage","getItem","setItem","jSearchInput","strQuery","hashSearch","jSearchInputGroup","arrPromises","count","getresult","query","resultCount","jSearch","clear","jqXHR","intMaxResults","dataSliced","searchResultItemProduct","toggleShowAllLink","jShowAllLink","showAll","searchResultItemPage","breadcrumb","jBreadcrumbItemNew","jBreadcrumb","jBreadcrumbItemAppend","jBreadcrumbItemLast","cookies","jCookie","news","paging","toggleControls","arrSelectorFilter","jNewsPagingItemTemplate","jNewsPagingListNew","jNewsPaging","jNewsPagingList","jNewsPagingItemNew","GoogleMapsAPIkey","countrycode","jMap","gmMap","gmClusterer","gmGeocoder","jDealersearch","getData","apis","GoogleMaps","gm","google","maps","Geocoder","address","setVirginState","markers","updateDistanceToAddress","gmap","fitBounds","getBoundsByAddress","fitResults","list","syncWithMap","hidePlaceholder","formatted_address","gtm","pushDataLayer","eventCategory","eventAction","eventLabel","eventValue","eventInteraction","intDealersearchID","users","setCountry","setCenterAndBoundsFromCountry","clusterer","updateMarkers","geoLocation","getCurrentPosition","geocode","latitude","longitude","addresses","address_components","address_component","types","address_type","short_name","logError","jSuggestionFirst","jSuggestionActive","jSuggestions","showPlaceholder","hint","minLength","classNames","wrapper","menu","suggestion","cursor","limit","syncResults","asyncResults","getSuggestions","templates","pending","typeaheadPending","footer","typeaheadFooter","componentRestrictions","hasVirginState","getCenterByCountry","getZoomByCountry","mapTypeControl","scrollwheel","addListener","getVirginState","boolVirginState","setCenter","setZoom","mapLatLngBounds","LatLng","geometry","viewport","LatLngBounds","getMarkersInBounds","getBounds","arrMarkersInBounds","marker","getPosition","extendBoundsToMarker","intMapZoom","getZoom","distanceToAddress","pow","strError","maxZoom","averageCenter","imagePath","addMarkers","getTotalMarkers","clearMarkers","build","user","Marker","arrCountryMarkers","getInfoWindowContent","googlemapInfowindow","showOnMap","panTo","math","getGreatCircleDistance","sortByDistanceToAddress","clearDistanceToAddress","formatDistance","unitsystem","toRadians","lat1","lng1","lat2","lng2","dLat","dLng","sin","atan2","sqrt","markerList","productlist","jProductList","hasFilters","doUrlParameterUpdate","intPagesize","setPagesize","setPagenum","setSort","setState","post","applyFilters","removeFilter","resetAll","resetGroup","peek","refresh","strValue","jPeekable","setHeight","jFilterOptions","intPeekOptionCount","intHeightPeek","intHeightInitial","intHeightToggleButton","height-peek","height-initial","intPagenum","arrSelectSortValue","setScrollTop","intScrollTop","params","utms","strUrlParam","getParams","stateObj","paramArr","hasLoadedQuery","processUrlParams","userAddedUrlArr","splitParams","strCustomUrl","loading","resolveWait","selectedOptionsCount","facets","selectedOptions","page","minPrice","clean","maxPrice","filtersAppliedCount","hasNoInteraction","isModalFilter","strFiltersHtml","jFilters","jFiltersModalBody","jSort","jPaging","productlistFilters","productlistSort","productlistPaging","productCount","productlistProducts","builded","product","removeFromCart","addToCart","arrFormData","objFormData","Redirect","addProduct","removeProduct","cartContent","isCleanCart","orderline","updateQuantity","handleConfigLines","instances","clearLines","removeItem","getLines","findLines","configOrderlines","domOl","olId","jLastLine","jServiceFeeLine","jWarrentyLine","jAutopilotLine","autoDomEl","dataset","parentId","buildTotalLineInCart","jConfigLine","jServiceLine","totalPrice","servicePrice","jTotalMarkup","configLineQuantity","totalTmp","lastLineId","configLineId","isServiceFee","objAjaxSettings","jCart","updateContent","loaded","objProductFormData","jDocument","objProductData","CartCmd","ProductID","VariantID","Quantity","productadd","setFocus","lastAdded","stock","quantity","dcc","hubspot","newBasket","updatedBasket","productQuantity","productadded","orderlineKey","orderlineToRemove","productremove","orderlines","trackingObj","CurrencyCode","currencyCode","Name","Number","Price","priceClean","productremoved","cartOrderlines","cartSummery","removeStrayWarrantyLines","updated","warrentyLines","domLine","parentOrderlineId","deleteWarrantyLine","intQuantity","isQuantityValid","updateTimeout","toggleFocus","onInput","delete","jOrderline","intOrderlineQuantity","strOrderlineProductId","intOrderlineQuantityOriginal","quantityElm","orderlineincrease","orderlinedecrease","productId","orderlinedelete","warrantyOrderline","orderlineFields","Warranty_Parent_Product","warrantyOrderlineKey","orderlinedeleted","strIdentifier","jBody","isConfiguration","jCartMsg","cartMsgLastadded","setPosition","objPosition","jCartMsgDialog","jNavItemCart","objCartMsgPosition","objCartMsgReferencePosition","selectProduct","jQuickorder","intTarget","objProduct","variantId","debug","validateOptions","rules","EcomOrderCustomerVatRegNumber","required","cvr","steps","receipt","waitForjQueryValidate","setValidationRules","disabledSteps","addMethod","countryValidationRules","Min","Max","errorMessage","savedStep","checkoutStep","hashStep","current","jToggleField","countryChange","buildTotalLineInCheckout","totalOrderlines","objTotalOrderline","hasChanged","payment","jStep","selectedShippingID","pacsoftShippingID","gls","pacsoft","isPreviosStepsCompleted","states","isHidden","isCompleted","customer","dataHandler","glsShippingID","shippingmethodID","isGLS","isPacsoft","isStandard","alternativeBillingAddress","hasBilling","hasBillingSet","switch","tracking","approve","addressMapper","jParent","mappingObj","edit","companyAddress","methodChange","jCollapse","valid","mapDeliveryToBilling","mapBillingToDelivery","jAlternativeBillingAddress","jAlternativeDeliveryAddress","EcomOrderDeliveryName","EcomOrderDeliveryCompany","EcomOrderDeliveryAddress","EcomOrderDeliveryAddress2","EcomOrderDeliveryZip","EcomOrderDeliveryCity","EcomOrderDeliveryCountry","EcomOrderDeliveryPhone","EcomOrderCustomerName","EcomOrderCustomerCompany","EcomOrderCustomerAddress","EcomOrderCustomerAddress2","EcomOrderCustomerZip","EcomOrderCustomerCity","EcomOrderCustomerCountry","EcomOrderCustomerPhone","mapAddressToForm","mappingItems","CustomDeliveryCountry","jDeliveryForm","jShippingID","standard","jSearchValue","parcelShopID","servicePointID","jValue","isEmailKnown","jAddresses","domAddress","jAddress","strTerm","jAlternativeShippingAddress","servicePoints","isSelected","servicePointId","deliveryAddress","streetName","streetNumber","postalCode","city","pacsoftZip","pacsoftAddress","countryCode","numberOfServicePoints","info","servicePointInformationResponse","parcelshops","CompanyName","Streetname2","Streetname","ZipCode","CityName","glsZip","glsAddress","street","zipcode","newsletterSubscription","strHtml","objOrderData","jsonData","virtualPageview","vpevent","virtualPageURL","virtualPageTitle","ecommerce","actionField","cc","lists","addSingleProductToCart","bindNewListEvent","oldhtml","domInput","confirm","listId","classList","productlistFavoriteProducts","toggleList","jInput","addToList","removeFromList","fetch","redirect","textStatus","errorThrown","login","checkUserAuthentication","remember","userauthenticated","impersonation","getUsers","extranetImpersonateableUsers","google_tag_manager","objDataLayer","dataLayer","LoggedOn","virtualPageSearchURL","virtualPageSearchTitle","animateTxt","animateNumber","fixElementWidths","oldHtml","jThisNumber","intAnimateToward","intDuration","sidebarContact","customercenter","configurator","currencyChanger","client","localStorage","objData","receiptHubspotData","formData","userRequest","responds","objExtendData","group","getOrderlines","objCartData","objOrderline","ean","sku","amount","priceWithVat","price_witout_vat","priceWithoutVat","vat","discount","getFormField","arrFormFields","foundFormField","formField","getUserData","userData","getSplitName","strName","strFullName","firstname","lastname","objName","formType","first_name","last_name","company_name","email","phone","language","company","dcc_contact_id","dcc_customer_id","order_id","order_total","vat_total","priceVATClean","number_of_items","order_lines","stepData","intStepNumber","shippingMethod","shippingmethods","paymethod","paymethods","address_1","address_2","address2","delivery_Address","delivery","delivery_option","zip","payment_option","populate","jSearchForm","populationData","placeholder","viewAllText","headerText","viewAllLink","discontinuedUrl","discontinuedDetailsUrl","fallbackpage","fallbackPage","jExactProduct","placeholderTxt","getTypeaheadDatasets","setDefault","testForGroup","Type","Title","suggestions","Terms","Url","terms","productUrl","Groups","intIndex","objElement","Count","PageQuery","Products","isDiscontinuedProduct","isSingleProduct","Id","objSuggestion","main","qty","constants","supportPrice","combinedSupportPrice","keyboardsInternal","oslanguage","warranty","osOtherLang","nothingSelected","autopilotCheckedOrderlineFieldSystemName","autopilotEmailOrderlineFieldSystemName","section","close","loader","partInput","partInputLanguage","partOsLanguageInput","partInputNone","partSelect","partIdDefault","reminder","dynamicValueInput","diffPrice","diffPriceKeyboard","categoryContainer","categoryItem","partsContainer","overview","overviewContainer","overviewCalculatedPrice","mobileHandle","mobileHandlerPrice","cartContainer","cartRelatedContainer","relatedProducts","hasConfiguration","orderLineField","leasing","selectRate","inputRate","autopilot","emailValue","disableElements","sectionCollapseContent","productlistLink","cssUtils","isLoading","below","above","disabledForm","totalCollapse","bindExternalEvents","utils","configuratorLink","hrefSplit","tabs","configuration","configurationchanged","defaultLang","getDefaultLanguagePartObj","updateKeyboardPrice","offer","model","isEditing","editConfiguration","orderlineId","observers","statesObserver","configurationObserver","priceDiff","boolShow","isIntersecting","boundingClientRect","isConfig","tab","pushState","getUrlParams","paramGroups","urlParamPair","removeUrlParam","parameter","urlparts","pars","getPartDefaultConfiguration","domCategory","jInputDefaultValue","getPartRAM","intPartRam","partRam","maxRam","getPartConfiguration","jSelect","getSelectedParts","getCategoryObj","strCategoryKey","configurables","getPartObj","partCategory","partId","getLanguagePartObj","selectedLanguageProductId","languageParts","returnObj","keyboardsinternal","languages","langObj","getSelectedWarranty","strSelectedProductId","warrantyRelatedProducts","getSelectedRAMSlots","selectedRamArr","categoryIndex","partIndex","sortByDefault","arrToSort","returnArrToSort","otherLanguagePlaceholder","sortByStock","sortPartsByPrice","arrParts","returnParts","cleanupConfigurationGroups","strKey","arrGroup","objGroup","defaults","isLeasingAllowed","basePrice","baseBeforePrice","hasBeforePrice","fee","handleData","hasGroupedParts","groupedParts","temKeyBoardObj","basicKeyboard","objPart","objClone","defaultLanguage","hasDefault","isLocked","originalPriceObj","priceFormatted","priceDiffFormatted","defaultWarranty","ItemDescriptionByItemRelations","objRelationItem","intPrice","formatPrice","strPrice","shortDescription","dataready","useFee","domReady","domready","changedInstances","RAMInstances","combined","partRAM","containerDefaultConfiguration","containerSelectedConfiguration","containerRAM","defaultsObserver","RAMObserver","freeRAMLeft","categorySlots","ramCategories","dataRAM","stateready","warrantyOrderlineId","latestOrerlinerData","getEditableOrderline","editableOrderline","objWarrantyOrderline","setMainValues","setWarranty","orderlineBOMItems","objBomItem","setBomItem","setLeasing","setAutopilot","bomItem","customLang","slotName","bomOrderlineFields","SlotName","bomItemInput","customInput","OSLanguageCustom","objLeasingDetails","Leasing_checked","Leasing_price","Autopilot_checked","setOsLang","configuratorParts","listbuild","partObj","jDiffPriceElm","pricePrefix","getPricePrefix","jMainPrice","prices","beforePrice","beforePriceFormatted","calculatePrice","forceQuantity","setQuantity","configuratorOverview","overviewbuild","tooltip","configuratorQuantity","selectedValue","jSelectedParts","objItems","boolIsNoneInput","strPartCategory","strPartId","objItem","objCategory","strSelectedLanguageProductId","bomId","label","partOsLanguage","intSupportPrice","strServiceFeePrefix","strSupportPrice","intTotalPrice","intWarrantyPrice","getPrice","intArrCombinedPrices","dataObj","isChecked","rate","strRate","strLeasingPrice","leasingInputRate","checkedWarrantyInput","addtocart","formDataJson","selectedWarrantyProductObj","addWarranty","cartcmd","productid","variantid","unitid","EcomOrderLineFieldInput_Warranty_Parent_Product","related","isStaging","strDebitorCurrencyCode","findCurrency","buildCurrencyChangeFormAndSubmit","currency","currencyCodeInput","alert","dialogue","testForActiveTab","currentTab","downloadOrderPDF","respondsHeaders","respondsHeader","downloadOrderPDFError","presentation","searchUrlQuery","addToFavorites","plain","parseQueryString","vars","query_string","pair","jProductlist","locationSearch","typeSessionStorageKey","viewPageID","store","setList","setGrid","presentationTypeObj","resizeDebounce","windowBaseWidth","carouselBaseCount","carouselCount","testCarouselCount","windowWidth","productlistPlainProducts","jCarousel","imageCarousel","jAccessoryTab","isModalOpen","carouselImages","carouselDataImages","jCarouselImages","jCarouselThumbs","carouselThumbs","images","preload","imageArr","arrImages","isDone","currentImageObj","srcLength","loadSrc","jCarouselModalImages","jCarouselModalThumbs","carouselModalImages","carouselModalThumbs","imageObjIndex","imageObj","imageType","imageClassname","nextImageGroupIndex","strImagePath","domImageElement","imageToLoad","Image","_relatedProducts","jRelatedProductsCarousel","updateModalContent","strProductId","objCarouselSlideData","buildCarouselSlideData","buildCarousel","saveData","jCarouselInner","relatedProductsCarouselInner","arrCarouselSlides","relatedGroups","slides","strGroupId","objRelatedProducts","relatedProductsModalContent","targets","targetAddition","doStdCalc","DoStdCalc","collapseCount","buildStacks","configuratorCartRelatedProducts","setValues","jConfigCheckbox","togglePrice","toggleOffer","avanceiProcent","leasingPrice","jCheckBox","jLeasingRate","jLeasingPrice","jLeasingChecked","updateOrderlinesQuantity","timeOut","selectStickyWrapper"],"mappings":"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","file":"default.js","sourcesContent":["/*! jQuery v3.6.4 | (c) OpenJS Foundation and other contributors | jquery.org/license */\r\n!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(C,e){\"use strict\";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return\"function\"==typeof e&&\"number\"!=typeof e.nodeType&&\"function\"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement(\"script\");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?n[o.call(e)]||\"object\":typeof e}var f=\"3.6.4\",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&\"length\"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&0+~]|\"+M+\")\"+M+\"*\"),U=new RegExp(M+\"|>\"),X=new RegExp(F),V=new RegExp(\"^\"+I+\"$\"),G={ID:new RegExp(\"^#(\"+I+\")\"),CLASS:new RegExp(\"^\\\\.(\"+I+\")\"),TAG:new RegExp(\"^(\"+I+\"|[*])\"),ATTR:new RegExp(\"^\"+W),PSEUDO:new RegExp(\"^\"+F),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+M+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+M+\"*(?:([+-]|)\"+M+\"*(\\\\d+)|))\"+M+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+R+\")$\",\"i\"),needsContext:new RegExp(\"^\"+M+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+M+\"*((?:-\\\\d)?\\\\d*)\"+M+\"*\\\\)|)(?=[^-]|$)\",\"i\")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\\d$/i,K=/^[^{]+\\{\\s*\\[native \\w/,Z=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,ee=/[+~]/,te=new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\"+M+\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\",\"g\"),ne=function(e,t){var n=\"0x\"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,ie=function(e,t){return t?\"\\0\"===e?\"\\ufffd\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&\"fieldset\"===e.nodeName.toLowerCase()},{dir:\"parentNode\",next:\"legend\"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],\"string\"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+\" \"]&&(!y||!y.test(t))&&(1!==p||\"object\"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute(\"id\"))?s=s.replace(re,ie):e.setAttribute(\"id\",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?\"#\"+s:\":scope\")+\" \"+xe(l[o]);c=l.join(\",\")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute(\"id\")}}}return g(t.replace(B,\"$1\"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+\" \")>b.cacheLength&&delete e[r.shift()],e[t+\" \"]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split(\"|\"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return\"input\"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return(\"input\"===t||\"button\"===t)&&e.type===n}}function ge(t){return function(e){return\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&\"undefined\"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||\"HTML\")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener(\"unload\",oe,!1):n.attachEvent&&n.attachEvent(\"onunload\",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement(\"div\")),\"undefined\"!=typeof e.querySelectorAll&&!e.querySelectorAll(\":scope fieldset div\").length}),d.cssHas=ce(function(){try{return C.querySelector(\":has(*,:jqfake)\"),!1}catch(e){return!0}}),d.attributes=ce(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute(\"id\")===t}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t=\"undefined\"!=typeof e.getAttributeNode&&e.getAttributeNode(\"id\");return t&&t.value===n}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return\"undefined\"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if(\"undefined\"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML=\"\",e.querySelectorAll(\"[msallowcapture^='']\").length&&y.push(\"[*^$]=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||y.push(\"\\\\[\"+M+\"*(?:value|\"+R+\")\"),e.querySelectorAll(\"[id~=\"+S+\"-]\").length||y.push(\"~=\"),(t=C.createElement(\"input\")).setAttribute(\"name\",\"\"),e.appendChild(t),e.querySelectorAll(\"[name='']\").length||y.push(\"\\\\[\"+M+\"*name\"+M+\"*=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\":checked\").length||y.push(\":checked\"),e.querySelectorAll(\"a#\"+S+\"+*\").length||y.push(\".#.+[+~]\"),e.querySelectorAll(\"\\\\\\f\"),y.push(\"[\\\\r\\\\n\\\\f]\")}),ce(function(e){e.innerHTML=\"\";var t=C.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&y.push(\"name\"+M+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&y.push(\":enabled\",\":disabled\"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&y.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),y.push(\",.*:\")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,\"*\"),c.call(e,\"[s!='']:x\"),s.push(\"!=\",F)}),d.cssHas||y.push(\":has\"),y=y.length&&new RegExp(y.join(\"|\")),s=s.length&&new RegExp(s.join(\"|\")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType&&e.documentElement||e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+\" \"]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||\"\").replace(te,ne),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+\" \"];return t||(t=new RegExp(\"(^|\"+M+\")\"+e+\"(\"+M+\"|$)\"))&&m(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||\"undefined\"!=typeof e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?\"!=\"===r:!r||(t+=\"\",\"=\"===r?t===i:\"!=\"===r?t!==i:\"^=\"===r?i&&0===t.indexOf(i):\"*=\"===r?i&&-1\",\"#\"===e.firstChild.getAttribute(\"href\")})||fe(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML=\"\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||fe(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute(\"disabled\")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[\":\"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,\"string\"==typeof e){if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\\x20\\t\\r\\n\\f]*)/i,he=/^$|^module$|\\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement(\"div\")),(fe=E.createElement(\"input\")).setAttribute(\"type\",\"radio\"),fe.setAttribute(\"checked\",\"checked\"),fe.setAttribute(\"name\",\"t\"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML=\"\",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML=\"\",v.option=!!ce.lastChild;var ge={thead:[1,\"\",\"
\"],col:[2,\"\",\"
\"],tr:[2,\"\",\"
\"],td:[3,\"\",\"
\"],_default:[0,\"\",\"\"]};function ye(e,t){var n;return n=\"undefined\"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):\"undefined\"!=typeof e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n\",\"\"]);var me=/<|&#?\\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\\s*$/g;function je(e,t){return A(e,\"table\")&&A(11!==t.nodeType?t:t.firstChild,\"tr\")&&S(e).children(\"tbody\")[0]||e}function De(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function qe(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,\"handle events\"),s)for(n=0,r=s[i].length;n\").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",i=function(e){r.remove(),i=null,e&&t(\"error\"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\\?(?=&|$)|\\?\\?/;S.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=Xt.pop()||S.expando+\"_\"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Vt.test(e.data)&&\"data\");if(a||\"jsonp\"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,\"$1\"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||S.error(r+\" was not called\"),o[0]},e.dataTypes[0]=\"json\",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),\"script\"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument(\"\").body).innerHTML=\"
\",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1\").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,\"position\"),c=S(e),f={};\"static\"===l&&(e.style.position=\"relative\"),s=c.offset(),o=S.css(e,\"top\"),u=S.css(e,\"left\"),(\"absolute\"===l||\"fixed\"===l)&&-1<(o+u).indexOf(\"auto\")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),\"using\"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===S.css(r,\"position\"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&\"static\"===S.css(e,\"position\"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,\"borderTopWidth\",!0),i.left+=S.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-S.css(r,\"marginTop\",!0),left:t.left-i.left-S.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&\"static\"===S.css(e,\"position\"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each([\"top\",\"left\"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+\"px\":t})}),S.each({Height:\"height\",Width:\"width\"},function(a,s){S.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||\"boolean\"!=typeof e),i=r||(!0===e||!0===t?\"margin\":\"border\");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf(\"outer\")?e[\"inner\"+a]:e.document.documentElement[\"client\"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body[\"scroll\"+a],r[\"scroll\"+a],e.body[\"offset\"+a],r[\"offset\"+a],r[\"client\"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,n){S.fn[n]=function(e,t){return 0>label: Virtual Mouse (vmouse) Bindings\r\n//>>group: Core\r\n//>>description: Normalizes touch/mouse events.\r\n//>>docs: http://api.jquerymobile.com/?s=vmouse\r\n\r\n// This plugin is an experiment for abstracting away the touch and mouse\r\n// events so that developers don't have to worry about which method of input\r\n// the device their document is loaded on supports.\r\n//\r\n// The idea here is to allow the developer to register listeners for the\r\n// basic mouse events, such as mousedown, mousemove, mouseup, and click,\r\n// and the plugin will take care of registering the correct listeners\r\n// behind the scenes to invoke the listener at the fastest possible time\r\n// for that device, while still retaining the order of event firing in\r\n// the traditional mouse environment, should multiple handlers be registered\r\n// on the same element for different events.\r\n//\r\n// The current version exposes the following virtual events to jQuery bind methods:\r\n// \"vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel\"\r\n\r\n( function( factory ) {\r\n\tif ( typeof define === \"function\" && define.amd ) {\r\n\r\n\t\t// AMD. Register as an anonymous module.\r\n\t\tdefine( 'vmouse',[ \"jquery\" ], factory );\r\n\t} else {\r\n\r\n\t\t// Browser globals\r\n\t\tfactory( jQuery );\r\n\t}\r\n} )( function( $ ) {\r\n\r\nvar dataPropertyName = \"virtualMouseBindings\",\r\n\ttouchTargetPropertyName = \"virtualTouchID\",\r\n\ttouchEventProps = \"clientX clientY pageX pageY screenX screenY\".split( \" \" ),\r\n\tvirtualEventNames = \"vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel\".split( \" \" ),\r\n\tgeneralProps = ( \"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase \" +\r\n\t\t\"metaKey relatedTarget shiftKey target timeStamp view which\" ).split( \" \" ),\r\n\tmouseHookProps = $.event.mouseHooks ? $.event.mouseHooks.props : [],\r\n\tmouseEventProps = generalProps.concat( mouseHookProps ),\r\n\tactiveDocHandlers = {},\r\n\tresetTimerID = 0,\r\n\tstartX = 0,\r\n\tstartY = 0,\r\n\tdidScroll = false,\r\n\tclickBlockList = [],\r\n\tblockMouseTriggers = false,\r\n\tblockTouchTriggers = false,\r\n\teventCaptureSupported = \"addEventListener\" in document,\r\n\t$document = $( document ),\r\n\tnextTouchID = 1,\r\n\tlastTouchID = 0, threshold,\r\n\ti;\r\n\r\n$.vmouse = {\r\n\tmoveDistanceThreshold: 10,\r\n\tclickDistanceThreshold: 10,\r\n\tresetTimerDuration: 1500,\r\n\tmaximumTimeBetweenTouches: 100\r\n};\r\n\r\nfunction getNativeEvent( event ) {\r\n\r\n\twhile ( event && typeof event.originalEvent !== \"undefined\" ) {\r\n\t\tevent = event.originalEvent;\r\n\t}\r\n\treturn event;\r\n}\r\n\r\nfunction createVirtualEvent( event, eventType ) {\r\n\r\n\tvar t = event.type,\r\n\t\toe, props, ne, prop, ct, touch, i, j, len;\r\n\r\n\tevent = $.Event( event );\r\n\tevent.type = eventType;\r\n\r\n\toe = event.originalEvent;\r\n\tprops = generalProps;\r\n\r\n\t// addresses separation of $.event.props in to $.event.mouseHook.props and Issue 3280\r\n\t// https://github.com/jquery/jquery-mobile/issues/3280\r\n\tif ( t.search( /^(mouse|click)/ ) > -1 ) {\r\n\t\tprops = mouseEventProps;\r\n\t}\r\n\r\n\t// copy original event properties over to the new event\r\n\t// this would happen if we could call $.event.fix instead of $.Event\r\n\t// but we don't have a way to force an event to be fixed multiple times\r\n\tif ( oe ) {\r\n\t\tfor ( i = props.length; i; ) {\r\n\t\t\tprop = props[ --i ];\r\n\t\t\tevent[ prop ] = oe[ prop ];\r\n\t\t}\r\n\t}\r\n\r\n\t// make sure that if the mouse and click virtual events are generated\r\n\t// without a .which one is defined\r\n\tif ( t.search( /mouse(down|up)|click/ ) > -1 && !event.which ) {\r\n\t\tevent.which = 1;\r\n\t}\r\n\r\n\tif ( t.search( /^touch/ ) !== -1 ) {\r\n\t\tne = getNativeEvent( oe );\r\n\t\tt = ne.touches;\r\n\t\tct = ne.changedTouches;\r\n\t\ttouch = ( t && t.length ) ? t[ 0 ] : ( ( ct && ct.length ) ? ct[ 0 ] : undefined );\r\n\r\n\t\tif ( touch ) {\r\n\t\t\tfor ( j = 0, len = touchEventProps.length; j < len; j++ ) {\r\n\t\t\t\tprop = touchEventProps[ j ];\r\n\t\t\t\tevent[ prop ] = touch[ prop ];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn event;\r\n}\r\n\r\nfunction getVirtualBindingFlags( element ) {\r\n\r\n\tvar flags = {},\r\n\t\tb, k;\r\n\r\n\twhile ( element ) {\r\n\r\n\t\tb = $.data( element, dataPropertyName );\r\n\r\n\t\tfor ( k in b ) {\r\n\t\t\tif ( b[ k ] ) {\r\n\t\t\t\tflags[ k ] = flags.hasVirtualBinding = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\telement = element.parentNode;\r\n\t}\r\n\treturn flags;\r\n}\r\n\r\nfunction getClosestElementWithVirtualBinding( element, eventType ) {\r\n\tvar b;\r\n\twhile ( element ) {\r\n\r\n\t\tb = $.data( element, dataPropertyName );\r\n\r\n\t\tif ( b && ( !eventType || b[ eventType ] ) ) {\r\n\t\t\treturn element;\r\n\t\t}\r\n\t\telement = element.parentNode;\r\n\t}\r\n\treturn null;\r\n}\r\n\r\nfunction enableTouchBindings() {\r\n\tblockTouchTriggers = false;\r\n}\r\n\r\nfunction disableTouchBindings() {\r\n\tblockTouchTriggers = true;\r\n}\r\n\r\nfunction enableMouseBindings() {\r\n\tlastTouchID = 0;\r\n\tclickBlockList.length = 0;\r\n\tblockMouseTriggers = false;\r\n\r\n\t// When mouse bindings are enabled, our\r\n\t// touch bindings are disabled.\r\n\tdisableTouchBindings();\r\n}\r\n\r\nfunction disableMouseBindings() {\r\n\t// When mouse bindings are disabled, our\r\n\t// touch bindings are enabled.\r\n\tenableTouchBindings();\r\n}\r\n\r\nfunction clearResetTimer() {\r\n\tif ( resetTimerID ) {\r\n\t\tclearTimeout( resetTimerID );\r\n\t\tresetTimerID = 0;\r\n\t}\r\n}\r\n\r\nfunction startResetTimer() {\r\n\tclearResetTimer();\r\n\tresetTimerID = setTimeout( function() {\r\n\t\tresetTimerID = 0;\r\n\t\tenableMouseBindings();\r\n\t}, $.vmouse.resetTimerDuration );\r\n}\r\n\r\nfunction triggerVirtualEvent( eventType, event, flags ) {\r\n\tvar ve;\r\n\r\n\tif ( ( flags && flags[ eventType ] ) ||\r\n\t\t\t( !flags && getClosestElementWithVirtualBinding( event.target, eventType ) ) ) {\r\n\r\n\t\tve = createVirtualEvent( event, eventType );\r\n\r\n\t\t$( event.target ).trigger( ve );\r\n\t}\r\n\r\n\treturn ve;\r\n}\r\n\r\nfunction mouseEventCallback( event ) {\r\n\tvar touchID = $.data( event.target, touchTargetPropertyName ),\r\n\t\tve;\r\n\r\n\t// It is unexpected if a click event is received before a touchend\r\n\t// or touchmove event, however this is a known behavior in Mobile\r\n\t// Safari when Mobile VoiceOver (as of iOS 8) is enabled and the user\r\n\t// double taps to activate a link element. In these cases if a touch\r\n\t// event is not received within the maximum time between touches,\r\n\t// re-enable mouse bindings and call the mouse event handler again.\r\n\tif ( event.type === \"click\" && $.data( event.target, \"lastTouchType\" ) === \"touchstart\" ) {\r\n\t\tsetTimeout( function() {\r\n\t\t\tif ( $.data( event.target, \"lastTouchType\" ) === \"touchstart\" ) {\r\n\t\t\t\tenableMouseBindings();\r\n\t\t\t\tdelete $.data( event.target ).lastTouchType;\r\n\t\t\t\tmouseEventCallback( event );\r\n\t\t\t}\r\n\t\t}, $.vmouse.maximumTimeBetweenTouches );\r\n\t}\r\n\r\n\tif ( !blockMouseTriggers && ( !lastTouchID || lastTouchID !== touchID ) ) {\r\n\t\tve = triggerVirtualEvent( \"v\" + event.type, event );\r\n\t\tif ( ve ) {\r\n\t\t\tif ( ve.isDefaultPrevented() ) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t}\r\n\t\t\tif ( ve.isPropagationStopped() ) {\r\n\t\t\t\tevent.stopPropagation();\r\n\t\t\t}\r\n\t\t\tif ( ve.isImmediatePropagationStopped() ) {\r\n\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction handleTouchStart( event ) {\r\n\r\n\tvar touches = getNativeEvent( event ).touches,\r\n\t\ttarget, flags, t;\r\n\r\n\tif ( touches && touches.length === 1 ) {\r\n\r\n\t\ttarget = event.target;\r\n\t\tflags = getVirtualBindingFlags( target );\r\n\r\n\t\t$.data( event.target, \"lastTouchType\", event.type );\r\n\r\n\t\tif ( flags.hasVirtualBinding ) {\r\n\r\n\t\t\tlastTouchID = nextTouchID++;\r\n\t\t\t$.data( target, touchTargetPropertyName, lastTouchID );\r\n\r\n\t\t\tclearResetTimer();\r\n\r\n\t\t\tdisableMouseBindings();\r\n\t\t\tdidScroll = false;\r\n\r\n\t\t\tt = getNativeEvent( event ).touches[ 0 ];\r\n\t\t\tstartX = t.pageX;\r\n\t\t\tstartY = t.pageY;\r\n\r\n\t\t\ttriggerVirtualEvent( \"vmouseover\", event, flags );\r\n\t\t\ttriggerVirtualEvent( \"vmousedown\", event, flags );\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction handleScroll( event ) {\r\n\tif ( blockTouchTriggers ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif ( !didScroll ) {\r\n\t\ttriggerVirtualEvent( \"vmousecancel\", event, getVirtualBindingFlags( event.target ) );\r\n\t}\r\n\r\n\t$.data( event.target, \"lastTouchType\", event.type );\r\n\r\n\tdidScroll = true;\r\n\tstartResetTimer();\r\n}\r\n\r\nfunction handleTouchMove( event ) {\r\n\tif ( blockTouchTriggers ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar t = getNativeEvent( event ).touches[ 0 ],\r\n\t\tdidCancel = didScroll,\r\n\t\tmoveThreshold = $.vmouse.moveDistanceThreshold,\r\n\t\tflags = getVirtualBindingFlags( event.target );\r\n\r\n\t$.data( event.target, \"lastTouchType\", event.type );\r\n\r\n\tdidScroll = didScroll ||\r\n\t\t( Math.abs( t.pageX - startX ) > moveThreshold ||\r\n\t\tMath.abs( t.pageY - startY ) > moveThreshold );\r\n\r\n\tif ( didScroll && !didCancel ) {\r\n\t\ttriggerVirtualEvent( \"vmousecancel\", event, flags );\r\n\t}\r\n\r\n\ttriggerVirtualEvent( \"vmousemove\", event, flags );\r\n\tstartResetTimer();\r\n}\r\n\r\nfunction handleTouchEnd( event ) {\r\n\tif ( blockTouchTriggers || $.data( event.target, \"lastTouchType\" ) === undefined ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tdisableTouchBindings();\r\n\tdelete $.data( event.target ).lastTouchType;\r\n\r\n\tvar flags = getVirtualBindingFlags( event.target ),\r\n\t\tve, t;\r\n\ttriggerVirtualEvent( \"vmouseup\", event, flags );\r\n\r\n\tif ( !didScroll ) {\r\n\t\tve = triggerVirtualEvent( \"vclick\", event, flags );\r\n\t\tif ( ve && ve.isDefaultPrevented() ) {\r\n\t\t\t// The target of the mouse events that follow the touchend\r\n\t\t\t// event don't necessarily match the target used during the\r\n\t\t\t// touch. This means we need to rely on coordinates for blocking\r\n\t\t\t// any click that is generated.\r\n\t\t\tt = getNativeEvent( event ).changedTouches[ 0 ];\r\n\t\t\tclickBlockList.push( {\r\n\t\t\t\ttouchID: lastTouchID,\r\n\t\t\t\tx: t.clientX,\r\n\t\t\t\ty: t.clientY\r\n\t\t\t} );\r\n\r\n\t\t\t// Prevent any mouse events that follow from triggering\r\n\t\t\t// virtual event notifications.\r\n\t\t\tblockMouseTriggers = true;\r\n\t\t}\r\n\t}\r\n\ttriggerVirtualEvent( \"vmouseout\", event, flags );\r\n\tdidScroll = false;\r\n\r\n\tstartResetTimer();\r\n}\r\n\r\nfunction hasVirtualBindings( ele ) {\r\n\tvar bindings = $.data( ele, dataPropertyName ),\r\n\t\tk;\r\n\r\n\tif ( bindings ) {\r\n\t\tfor ( k in bindings ) {\r\n\t\t\tif ( bindings[ k ] ) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nfunction dummyMouseHandler() {\r\n}\r\n\r\nfunction getSpecialEventObject( eventType ) {\r\n\tvar realType = eventType.substr( 1 );\r\n\r\n\treturn {\r\n\t\tsetup: function( /* data, namespace */ ) {\r\n\t\t\t// If this is the first virtual mouse binding for this element,\r\n\t\t\t// add a bindings object to its data.\r\n\r\n\t\t\tif ( !hasVirtualBindings( this ) ) {\r\n\t\t\t\t$.data( this, dataPropertyName, {} );\r\n\t\t\t}\r\n\r\n\t\t\t// If setup is called, we know it is the first binding for this\r\n\t\t\t// eventType, so initialize the count for the eventType to zero.\r\n\t\t\tvar bindings = $.data( this, dataPropertyName );\r\n\t\t\tbindings[ eventType ] = true;\r\n\r\n\t\t\t// If this is the first virtual mouse event for this type,\r\n\t\t\t// register a global handler on the document.\r\n\r\n\t\t\tactiveDocHandlers[ eventType ] = ( activeDocHandlers[ eventType ] || 0 ) + 1;\r\n\r\n\t\t\tif ( activeDocHandlers[ eventType ] === 1 ) {\r\n\t\t\t\t$document.bind( realType, mouseEventCallback );\r\n\t\t\t}\r\n\r\n\t\t\t// Some browsers, like Opera Mini, won't dispatch mouse/click events\r\n\t\t\t// for elements unless they actually have handlers registered on them.\r\n\t\t\t// To get around this, we register dummy handlers on the elements.\r\n\r\n\t\t\t$( this ).bind( realType, dummyMouseHandler );\r\n\r\n\t\t\t// For now, if event capture is not supported, we rely on mouse handlers.\r\n\t\t\tif ( eventCaptureSupported ) {\r\n\t\t\t\t// If this is the first virtual mouse binding for the document,\r\n\t\t\t\t// register our touchstart handler on the document.\r\n\r\n\t\t\t\tactiveDocHandlers[ \"touchstart\" ] = ( activeDocHandlers[ \"touchstart\" ] || 0 ) + 1;\r\n\r\n\t\t\t\tif ( activeDocHandlers[ \"touchstart\" ] === 1 ) {\r\n\t\t\t\t\t$document.bind( \"touchstart\", handleTouchStart )\r\n\t\t\t\t\t\t.bind( \"touchend\", handleTouchEnd )\r\n\r\n\t\t\t\t\t\t// On touch platforms, touching the screen and then dragging your finger\r\n\t\t\t\t\t\t// causes the window content to scroll after some distance threshold is\r\n\t\t\t\t\t\t// exceeded. On these platforms, a scroll prevents a click event from being\r\n\t\t\t\t\t\t// dispatched, and on some platforms, even the touchend is suppressed. To\r\n\t\t\t\t\t\t// mimic the suppression of the click event, we need to watch for a scroll\r\n\t\t\t\t\t\t// event. Unfortunately, some platforms like iOS don't dispatch scroll\r\n\t\t\t\t\t\t// events until *AFTER* the user lifts their finger (touchend). This means\r\n\t\t\t\t\t\t// we need to watch both scroll and touchmove events to figure out whether\r\n\t\t\t\t\t\t// or not a scroll happenens before the touchend event is fired.\r\n\r\n\t\t\t\t\t\t.bind( \"touchmove\", handleTouchMove )\r\n\t\t\t\t\t\t.bind( \"scroll\", handleScroll );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tteardown: function( /* data, namespace */ ) {\r\n\t\t\t// If this is the last virtual binding for this eventType,\r\n\t\t\t// remove its global handler from the document.\r\n\r\n\t\t\t--activeDocHandlers[eventType];\r\n\r\n\t\t\tif ( !activeDocHandlers[ eventType ] ) {\r\n\t\t\t\t$document.unbind( realType, mouseEventCallback );\r\n\t\t\t}\r\n\r\n\t\t\tif ( eventCaptureSupported ) {\r\n\t\t\t\t// If this is the last virtual mouse binding in existence,\r\n\t\t\t\t// remove our document touchstart listener.\r\n\r\n\t\t\t\t--activeDocHandlers[\"touchstart\"];\r\n\r\n\t\t\t\tif ( !activeDocHandlers[ \"touchstart\" ] ) {\r\n\t\t\t\t\t$document.unbind( \"touchstart\", handleTouchStart )\r\n\t\t\t\t\t\t.unbind( \"touchmove\", handleTouchMove )\r\n\t\t\t\t\t\t.unbind( \"touchend\", handleTouchEnd )\r\n\t\t\t\t\t\t.unbind( \"scroll\", handleScroll );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar $this = $( this ),\r\n\t\t\t\tbindings = $.data( this, dataPropertyName );\r\n\r\n\t\t\t// teardown may be called when an element was\r\n\t\t\t// removed from the DOM. If this is the case,\r\n\t\t\t// jQuery core may have already stripped the element\r\n\t\t\t// of any data bindings so we need to check it before\r\n\t\t\t// using it.\r\n\t\t\tif ( bindings ) {\r\n\t\t\t\tbindings[ eventType ] = false;\r\n\t\t\t}\r\n\r\n\t\t\t// Unregister the dummy event handler.\r\n\r\n\t\t\t$this.unbind( realType, dummyMouseHandler );\r\n\r\n\t\t\t// If this is the last virtual mouse binding on the\r\n\t\t\t// element, remove the binding data from the element.\r\n\r\n\t\t\tif ( !hasVirtualBindings( this ) ) {\r\n\t\t\t\t$this.removeData( dataPropertyName );\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\n// Expose our custom events to the jQuery bind/unbind mechanism.\r\n\r\nfor ( i = 0; i < virtualEventNames.length; i++ ) {\r\n\t$.event.special[ virtualEventNames[ i ] ] = getSpecialEventObject( virtualEventNames[ i ] );\r\n}\r\n\r\n// Add a capture click handler to block clicks.\r\n// Note that we require event capture support for this so if the device\r\n// doesn't support it, we punt for now and rely solely on mouse events.\r\nif ( eventCaptureSupported ) {\r\n\tdocument.addEventListener( \"click\", function( e ) {\r\n\t\tvar cnt = clickBlockList.length,\r\n\t\t\ttarget = e.target,\r\n\t\t\tx, y, ele, i, o, touchID;\r\n\r\n\t\tif ( cnt ) {\r\n\t\t\tx = e.clientX;\r\n\t\t\ty = e.clientY;\r\n\t\t\tthreshold = $.vmouse.clickDistanceThreshold;\r\n\r\n\t\t\t// The idea here is to run through the clickBlockList to see if\r\n\t\t\t// the current click event is in the proximity of one of our\r\n\t\t\t// vclick events that had preventDefault() called on it. If we find\r\n\t\t\t// one, then we block the click.\r\n\t\t\t//\r\n\t\t\t// Why do we have to rely on proximity?\r\n\t\t\t//\r\n\t\t\t// Because the target of the touch event that triggered the vclick\r\n\t\t\t// can be different from the target of the click event synthesized\r\n\t\t\t// by the browser. The target of a mouse/click event that is synthesized\r\n\t\t\t// from a touch event seems to be implementation specific. For example,\r\n\t\t\t// some browsers will fire mouse/click events for a link that is near\r\n\t\t\t// a touch event, even though the target of the touchstart/touchend event\r\n\t\t\t// says the user touched outside the link. Also, it seems that with most\r\n\t\t\t// browsers, the target of the mouse/click event is not calculated until the\r\n\t\t\t// time it is dispatched, so if you replace an element that you touched\r\n\t\t\t// with another element, the target of the mouse/click will be the new\r\n\t\t\t// element underneath that point.\r\n\t\t\t//\r\n\t\t\t// Aside from proximity, we also check to see if the target and any\r\n\t\t\t// of its ancestors were the ones that blocked a click. This is necessary\r\n\t\t\t// because of the strange mouse/click target calculation done in the\r\n\t\t\t// Android 2.1 browser, where if you click on an element, and there is a\r\n\t\t\t// mouse/click handler on one of its ancestors, the target will be the\r\n\t\t\t// innermost child of the touched element, even if that child is no where\r\n\t\t\t// near the point of touch.\r\n\r\n\t\t\tele = target;\r\n\r\n\t\t\twhile ( ele ) {\r\n\t\t\t\tfor ( i = 0; i < cnt; i++ ) {\r\n\t\t\t\t\to = clickBlockList[ i ];\r\n\t\t\t\t\ttouchID = 0;\r\n\r\n\t\t\t\t\tif ( ( ele === target && Math.abs( o.x - x ) < threshold && Math.abs( o.y - y ) < threshold ) ||\r\n\t\t\t\t\t\t\t$.data( ele, touchTargetPropertyName ) === o.touchID ) {\r\n\t\t\t\t\t\t// XXX: We may want to consider removing matches from the block list\r\n\t\t\t\t\t\t// instead of waiting for the reset timer to fire.\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tele = ele.parentNode;\r\n\t\t\t}\r\n\t\t}\r\n\t}, true );\r\n}\r\n} );\r\n\r\n/*!\r\n * jQuery Mobile Namespace @VERSION\r\n * http://jquerymobile.com\r\n *\r\n * Copyright jQuery Foundation and other contributors\r\n * Released under the MIT license.\r\n * http://jquery.org/license\r\n */\r\n\r\n//>>label: Namespace\r\n//>>group: Core\r\n//>>description: The mobile namespace on the jQuery object\r\n\r\n( function( factory ) {\r\n\tif ( typeof define === \"function\" && define.amd ) {\r\n\r\n\t\t// AMD. Register as an anonymous module.\r\n\t\tdefine( 'ns',[ \"jquery\" ], factory );\r\n\t} else {\r\n\r\n\t\t// Browser globals\r\n\t\tfactory( jQuery );\r\n\t}\r\n} )( function( $ ) {\r\n\r\n$.mobile = { version: \"@VERSION\" };\r\n\r\nreturn $.mobile;\r\n} );\r\n\r\n/*!\r\n * jQuery Mobile Touch Support Test @VERSION\r\n * http://jquerymobile.com\r\n *\r\n * Copyright jQuery Foundation and other contributors\r\n * Released under the MIT license.\r\n * http://jquery.org/license\r\n */\r\n\r\n//>>label: Touch support test\r\n//>>group: Core\r\n//>>description: Touch feature test\r\n\r\n( function( factory ) {\r\n\tif ( typeof define === \"function\" && define.amd ) {\r\n\r\n\t\t// AMD. Register as an anonymous module.\r\n\t\tdefine( 'support/touch',[\r\n\t\t\t\"jquery\",\r\n\t\t\t\"../ns\" ], factory );\r\n\t} else {\r\n\r\n\t\t// Browser globals\r\n\t\tfactory( jQuery );\r\n\t}\r\n} )( function( $ ) {\r\n\r\nvar support = {\r\n\ttouch: \"ontouchend\" in document\r\n};\r\n\r\n$.mobile.support = $.mobile.support || {};\r\n$.extend( $.support, support );\r\n$.extend( $.mobile.support, support );\r\n\r\nreturn $.support;\r\n} );\r\n\r\n/*!\r\n * jQuery Mobile Touch Events @VERSION\r\n * http://jquerymobile.com\r\n *\r\n * Copyright jQuery Foundation and other contributors\r\n * Released under the MIT license.\r\n * http://jquery.org/license\r\n */\r\n\r\n//>>label: Touch\r\n//>>group: Events\r\n//>>description: Touch events including: touchstart, touchmove, touchend, tap, taphold, swipe, swipeleft, swiperight\r\n\r\n( function( factory ) {\r\n\tif ( typeof define === \"function\" && define.amd ) {\r\n\r\n\t\t// AMD. Register as an anonymous module.\r\n\t\tdefine( 'events/touch',[\r\n\t\t\t\"jquery\",\r\n\t\t\t\"../vmouse\",\r\n\t\t\t\"../support/touch\" ], factory );\r\n\t} else {\r\n\r\n\t\t// Browser globals\r\n\t\tfactory( jQuery );\r\n\t}\r\n} )( function( $ ) {\r\nvar $document = $( document ),\r\n\tsupportTouch = $.mobile.support.touch,\r\n\ttouchStartEvent = supportTouch ? \"touchstart\" : \"mousedown\",\r\n\ttouchStopEvent = supportTouch ? \"touchend\" : \"mouseup\",\r\n\ttouchMoveEvent = supportTouch ? \"touchmove\" : \"mousemove\";\r\n\r\n// setup new event shortcuts\r\n$.each( ( \"touchstart touchmove touchend \" +\r\n\"tap taphold \" +\r\n\"swipe swipeleft swiperight\" ).split( \" \" ), function( i, name ) {\r\n\r\n\t$.fn[ name ] = function( fn ) {\r\n\t\treturn fn ? this.bind( name, fn ) : this.trigger( name );\r\n\t};\r\n\r\n\t// jQuery < 1.8\r\n\tif ( $.attrFn ) {\r\n\t\t$.attrFn[ name ] = true;\r\n\t}\r\n} );\r\n\r\nfunction triggerCustomEvent( obj, eventType, event, bubble ) {\r\n\tvar originalType = event.type;\r\n\tevent.type = eventType;\r\n\tif ( bubble ) {\r\n\t\t$.event.trigger( event, undefined, obj );\r\n\t} else {\r\n\t\t$.event.dispatch.call( obj, event );\r\n\t}\r\n\tevent.type = originalType;\r\n}\r\n\r\n// also handles taphold\r\n$.event.special.tap = {\r\n\ttapholdThreshold: 750,\r\n\temitTapOnTaphold: true,\r\n\tsetup: function() {\r\n\t\tvar thisObject = this,\r\n\t\t\t$this = $( thisObject ),\r\n\t\t\tisTaphold = false;\r\n\r\n\t\t$this.bind( \"vmousedown\", function( event ) {\r\n\t\t\tisTaphold = false;\r\n\t\t\tif ( event.which && event.which !== 1 ) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tvar origTarget = event.target,\r\n\t\t\t\ttimer, clickHandler;\r\n\r\n\t\t\tfunction clearTapTimer() {\r\n\t\t\t\tif ( timer ) {\r\n\t\t\t\t\t$this.bind( \"vclick\", clickHandler );\r\n\t\t\t\t\tclearTimeout( timer );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction clearTapHandlers() {\r\n\t\t\t\tclearTapTimer();\r\n\r\n\t\t\t\t$this.unbind( \"vclick\", clickHandler )\r\n\t\t\t\t\t.unbind( \"vmouseup\", clearTapTimer );\r\n\t\t\t\t$document.unbind( \"vmousecancel\", clearTapHandlers );\r\n\t\t\t}\r\n\r\n\t\t\tclickHandler = function( event ) {\r\n\t\t\t\tclearTapHandlers();\r\n\r\n\t\t\t\t// ONLY trigger a 'tap' event if the start target is\r\n\t\t\t\t// the same as the stop target.\r\n\t\t\t\tif ( !isTaphold && origTarget === event.target ) {\r\n\t\t\t\t\ttriggerCustomEvent( thisObject, \"tap\", event );\r\n\t\t\t\t} else if ( isTaphold ) {\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t$this.bind( \"vmouseup\", clearTapTimer );\r\n\r\n\t\t\t$document.bind( \"vmousecancel\", clearTapHandlers );\r\n\r\n\t\t\ttimer = setTimeout( function() {\r\n\t\t\t\tif ( !$.event.special.tap.emitTapOnTaphold ) {\r\n\t\t\t\t\tisTaphold = true;\r\n\t\t\t\t}\r\n\t\t\t\ttimer = 0;\r\n\t\t\t\ttriggerCustomEvent( thisObject, \"taphold\", $.Event( \"taphold\", { target: origTarget } ) );\r\n\t\t\t}, $.event.special.tap.tapholdThreshold );\r\n\t\t} );\r\n\t},\r\n\tteardown: function() {\r\n\t\t$( this ).unbind( \"vmousedown\" ).unbind( \"vclick\" ).unbind( \"vmouseup\" );\r\n\t\t$document.unbind( \"vmousecancel\" );\r\n\t}\r\n};\r\n\r\n// Also handles swipeleft, swiperight\r\n$.event.special.swipe = {\r\n\r\n\t// More than this horizontal displacement, and we will suppress scrolling.\r\n\tscrollSupressionThreshold: 30,\r\n\r\n\t// More time than this, and it isn't a swipe.\r\n\tdurationThreshold: 1000,\r\n\r\n\t// Swipe horizontal displacement must be more than this.\r\n\thorizontalDistanceThreshold: window.devicePixelRatio >= 2 ? 15 : 30,\r\n\r\n\t// Swipe vertical displacement must be less than this.\r\n\tverticalDistanceThreshold: window.devicePixelRatio >= 2 ? 15 : 30,\r\n\r\n\tgetLocation: function( event ) {\r\n\t\tvar winPageX = window.pageXOffset,\r\n\t\t\twinPageY = window.pageYOffset,\r\n\t\t\tx = event.clientX,\r\n\t\t\ty = event.clientY;\r\n\r\n\t\tif ( event.pageY === 0 && Math.floor( y ) > Math.floor( event.pageY ) ||\r\n\t\t\t\tevent.pageX === 0 && Math.floor( x ) > Math.floor( event.pageX ) ) {\r\n\r\n\t\t\t// iOS4 clientX/clientY have the value that should have been\r\n\t\t\t// in pageX/pageY. While pageX/page/ have the value 0\r\n\t\t\tx = x - winPageX;\r\n\t\t\ty = y - winPageY;\r\n\t\t} else if ( y < ( event.pageY - winPageY ) || x < ( event.pageX - winPageX ) ) {\r\n\r\n\t\t\t// Some Android browsers have totally bogus values for clientX/Y\r\n\t\t\t// when scrolling/zooming a page. Detectable since clientX/clientY\r\n\t\t\t// should never be smaller than pageX/pageY minus page scroll\r\n\t\t\tx = event.pageX - winPageX;\r\n\t\t\ty = event.pageY - winPageY;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tx: x,\r\n\t\t\ty: y\r\n\t\t};\r\n\t},\r\n\r\n\tstart: function( event ) {\r\n\t\tvar data = event.originalEvent.touches ?\r\n\t\t\t\tevent.originalEvent.touches[ 0 ] : event,\r\n\t\t\tlocation = $.event.special.swipe.getLocation( data );\r\n\t\treturn {\r\n\t\t\ttime: ( new Date() ).getTime(),\r\n\t\t\tcoords: [ location.x, location.y ],\r\n\t\t\torigin: $( event.target )\r\n\t\t};\r\n\t},\r\n\r\n\tstop: function( event ) {\r\n\t\tvar data = event.originalEvent.touches ?\r\n\t\t\t\tevent.originalEvent.touches[ 0 ] : event,\r\n\t\t\tlocation = $.event.special.swipe.getLocation( data );\r\n\t\treturn {\r\n\t\t\ttime: ( new Date() ).getTime(),\r\n\t\t\tcoords: [ location.x, location.y ]\r\n\t\t};\r\n\t},\r\n\r\n\thandleSwipe: function( start, stop, thisObject, origTarget ) {\r\n\t\tif ( stop.time - start.time < $.event.special.swipe.durationThreshold &&\r\n\t\t\t\tMath.abs( start.coords[ 0 ] - stop.coords[ 0 ] ) > $.event.special.swipe.horizontalDistanceThreshold &&\r\n\t\t\t\tMath.abs( start.coords[ 1 ] - stop.coords[ 1 ] ) < $.event.special.swipe.verticalDistanceThreshold ) {\r\n\t\t\tvar direction = start.coords[ 0 ] > stop.coords[ 0 ] ? \"swipeleft\" : \"swiperight\";\r\n\r\n\t\t\ttriggerCustomEvent( thisObject, \"swipe\", $.Event( \"swipe\", { target: origTarget, swipestart: start, swipestop: stop } ), true );\r\n\t\t\ttriggerCustomEvent( thisObject, direction, $.Event( direction, { target: origTarget, swipestart: start, swipestop: stop } ), true );\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\r\n\t},\r\n\r\n\t// This serves as a flag to ensure that at most one swipe event event is\r\n\t// in work at any given time\r\n\teventInProgress: false,\r\n\r\n\tsetup: function() {\r\n\t\tvar events,\r\n\t\t\tthisObject = this,\r\n\t\t\t$this = $( thisObject ),\r\n\t\t\tcontext = {};\r\n\r\n\t\t// Retrieve the events data for this element and add the swipe context\r\n\t\tevents = $.data( this, \"mobile-events\" );\r\n\t\tif ( !events ) {\r\n\t\t\tevents = { length: 0 };\r\n\t\t\t$.data( this, \"mobile-events\", events );\r\n\t\t}\r\n\t\tevents.length++;\r\n\t\tevents.swipe = context;\r\n\r\n\t\tcontext.start = function( event ) {\r\n\r\n\t\t\t// Bail if we're already working on a swipe event\r\n\t\t\tif ( $.event.special.swipe.eventInProgress ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t$.event.special.swipe.eventInProgress = true;\r\n\r\n\t\t\tvar stop,\r\n\t\t\t\tstart = $.event.special.swipe.start( event ),\r\n\t\t\t\torigTarget = event.target,\r\n\t\t\t\temitted = false;\r\n\r\n\t\t\tcontext.move = function( event ) {\r\n\t\t\t\tif ( !start || event.isDefaultPrevented() ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tstop = $.event.special.swipe.stop( event );\r\n\t\t\t\tif ( !emitted ) {\r\n\t\t\t\t\temitted = $.event.special.swipe.handleSwipe( start, stop, thisObject, origTarget );\r\n\t\t\t\t\tif ( emitted ) {\r\n\r\n\t\t\t\t\t\t// Reset the context to make way for the next swipe event\r\n\t\t\t\t\t\t$.event.special.swipe.eventInProgress = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// prevent scrolling\r\n\t\t\t\tif ( Math.abs( start.coords[ 0 ] - stop.coords[ 0 ] ) > $.event.special.swipe.scrollSupressionThreshold ) {\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tcontext.stop = function() {\r\n\t\t\t\temitted = true;\r\n\r\n\t\t\t\t// Reset the context to make way for the next swipe event\r\n\t\t\t\t$.event.special.swipe.eventInProgress = false;\r\n\t\t\t\t$document.off( touchMoveEvent, context.move );\r\n\t\t\t\tcontext.move = null;\r\n\t\t\t};\r\n\r\n\t\t\t$document.on( touchMoveEvent, context.move )\r\n\t\t\t\t.one( touchStopEvent, context.stop );\r\n\t\t};\r\n\t\t$this.on( touchStartEvent, context.start );\r\n\t},\r\n\r\n\tteardown: function() {\r\n\t\tvar events, context;\r\n\r\n\t\tevents = $.data( this, \"mobile-events\" );\r\n\t\tif ( events ) {\r\n\t\t\tcontext = events.swipe;\r\n\t\t\tdelete events.swipe;\r\n\t\t\tevents.length--;\r\n\t\t\tif ( events.length === 0 ) {\r\n\t\t\t\t$.removeData( this, \"mobile-events\" );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( context ) {\r\n\t\t\tif ( context.start ) {\r\n\t\t\t\t$( this ).off( touchStartEvent, context.start );\r\n\t\t\t}\r\n\t\t\tif ( context.move ) {\r\n\t\t\t\t$document.off( touchMoveEvent, context.move );\r\n\t\t\t}\r\n\t\t\tif ( context.stop ) {\r\n\t\t\t\t$document.off( touchStopEvent, context.stop );\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n$.each( {\r\n\ttaphold: \"tap\",\r\n\tswipeleft: \"swipe.left\",\r\n\tswiperight: \"swipe.right\"\r\n}, function( event, sourceEvent ) {\r\n\r\n\t$.event.special[ event ] = {\r\n\t\tsetup: function() {\r\n\t\t\t$( this ).bind( sourceEvent, $.noop );\r\n\t\t},\r\n\t\tteardown: function() {\r\n\t\t\t$( this ).unbind( sourceEvent );\r\n\t\t}\r\n\t};\r\n} );\r\n\r\nreturn $.event.special;\r\n} );\r\n\r\n\r\n\r\n}));\r\n","/**!\r\n * @fileOverview Kickass library to create and place poppers near their reference elements.\r\n * @version 1.12.6\r\n * @license\r\n * Copyright (c) 2016 Federico Zivolo and contributors\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in all\r\n * copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n * SOFTWARE.\r\n */\r\n(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\r\n typeof define === 'function' && define.amd ? define(factory) :\r\n (global.Popper = factory());\r\n}(this, (function () { 'use strict';\r\n\r\nvar isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';\r\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\r\nvar timeoutDuration = 0;\r\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\r\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\r\n timeoutDuration = 1;\r\n break;\r\n }\r\n}\r\n\r\nfunction microtaskDebounce(fn) {\r\n var called = false;\r\n return function () {\r\n if (called) {\r\n return;\r\n }\r\n called = true;\r\n Promise.resolve().then(function () {\r\n called = false;\r\n fn();\r\n });\r\n };\r\n}\r\n\r\nfunction taskDebounce(fn) {\r\n var scheduled = false;\r\n return function () {\r\n if (!scheduled) {\r\n scheduled = true;\r\n setTimeout(function () {\r\n scheduled = false;\r\n fn();\r\n }, timeoutDuration);\r\n }\r\n };\r\n}\r\n\r\nvar supportsMicroTasks = isBrowser && window.Promise;\r\n\r\n/**\r\n* Create a debounced version of a method, that's asynchronously deferred\r\n* but called in the minimum time possible.\r\n*\r\n* @method\r\n* @memberof Popper.Utils\r\n* @argument {Function} fn\r\n* @returns {Function}\r\n*/\r\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\r\n\r\n/**\r\n * Check if the given variable is a function\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Any} functionToCheck - variable to check\r\n * @returns {Boolean} answer to: is a function?\r\n */\r\nfunction isFunction(functionToCheck) {\r\n var getType = {};\r\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\r\n}\r\n\r\n/**\r\n * Get CSS computed property of the given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Eement} element\r\n * @argument {String} property\r\n */\r\nfunction getStyleComputedProperty(element, property) {\r\n if (element.nodeType !== 1) {\r\n return [];\r\n }\r\n // NOTE: 1 DOM access here\r\n var css = window.getComputedStyle(element, null);\r\n return property ? css[property] : css;\r\n}\r\n\r\n/**\r\n * Returns the parentNode or the host of the element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @returns {Element} parent\r\n */\r\nfunction getParentNode(element) {\r\n if (element.nodeName === 'HTML') {\r\n return element;\r\n }\r\n return element.parentNode || element.host;\r\n}\r\n\r\n/**\r\n * Returns the scrolling parent of the given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @returns {Element} scroll parent\r\n */\r\nfunction getScrollParent(element) {\r\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\r\n if (!element) {\r\n return window.document.body;\r\n }\r\n\r\n switch (element.nodeName) {\r\n case 'HTML':\r\n case 'BODY':\r\n return element.ownerDocument.body;\r\n case '#document':\r\n return element.body;\r\n }\r\n\r\n // Firefox want us to check `-x` and `-y` variations as well\r\n\r\n var _getStyleComputedProp = getStyleComputedProperty(element),\r\n overflow = _getStyleComputedProp.overflow,\r\n overflowX = _getStyleComputedProp.overflowX,\r\n overflowY = _getStyleComputedProp.overflowY;\r\n\r\n if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {\r\n return element;\r\n }\r\n\r\n return getScrollParent(getParentNode(element));\r\n}\r\n\r\n/**\r\n * Returns the offset parent of the given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @returns {Element} offset parent\r\n */\r\nfunction getOffsetParent(element) {\r\n // NOTE: 1 DOM access here\r\n var offsetParent = element && element.offsetParent;\r\n var nodeName = offsetParent && offsetParent.nodeName;\r\n\r\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\r\n if (element) {\r\n return element.ownerDocument.documentElement;\r\n }\r\n\r\n return window.document.documentElement;\r\n }\r\n\r\n // .offsetParent will return the closest TD or TABLE in case\r\n // no offsetParent is present, I hate this job...\r\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\r\n return getOffsetParent(offsetParent);\r\n }\r\n\r\n return offsetParent;\r\n}\r\n\r\nfunction isOffsetContainer(element) {\r\n var nodeName = element.nodeName;\r\n\r\n if (nodeName === 'BODY') {\r\n return false;\r\n }\r\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\r\n}\r\n\r\n/**\r\n * Finds the root node (document, shadowDOM root) of the given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} node\r\n * @returns {Element} root node\r\n */\r\nfunction getRoot(node) {\r\n if (node.parentNode !== null) {\r\n return getRoot(node.parentNode);\r\n }\r\n\r\n return node;\r\n}\r\n\r\n/**\r\n * Finds the offset parent common to the two provided nodes\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element1\r\n * @argument {Element} element2\r\n * @returns {Element} common offset parent\r\n */\r\nfunction findCommonOffsetParent(element1, element2) {\r\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\r\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\r\n return window.document.documentElement;\r\n }\r\n\r\n // Here we make sure to give as \"start\" the element that comes first in the DOM\r\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\r\n var start = order ? element1 : element2;\r\n var end = order ? element2 : element1;\r\n\r\n // Get common ancestor container\r\n var range = document.createRange();\r\n range.setStart(start, 0);\r\n range.setEnd(end, 0);\r\n var commonAncestorContainer = range.commonAncestorContainer;\r\n\r\n // Both nodes are inside #document\r\n\r\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\r\n if (isOffsetContainer(commonAncestorContainer)) {\r\n return commonAncestorContainer;\r\n }\r\n\r\n return getOffsetParent(commonAncestorContainer);\r\n }\r\n\r\n // one of the nodes is inside shadowDOM, find which one\r\n var element1root = getRoot(element1);\r\n if (element1root.host) {\r\n return findCommonOffsetParent(element1root.host, element2);\r\n } else {\r\n return findCommonOffsetParent(element1, getRoot(element2).host);\r\n }\r\n}\r\n\r\n/**\r\n * Gets the scroll value of the given element in the given side (top and left)\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @argument {String} side `top` or `left`\r\n * @returns {number} amount of scrolled pixels\r\n */\r\nfunction getScroll(element) {\r\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\r\n\r\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\r\n var nodeName = element.nodeName;\r\n\r\n if (nodeName === 'BODY' || nodeName === 'HTML') {\r\n var html = element.ownerDocument.documentElement;\r\n var scrollingElement = element.ownerDocument.scrollingElement || html;\r\n return scrollingElement[upperSide];\r\n }\r\n\r\n return element[upperSide];\r\n}\r\n\r\n/*\r\n * Sum or subtract the element scroll values (left and top) from a given rect object\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {Object} rect - Rect object you want to change\r\n * @param {HTMLElement} element - The element from the function reads the scroll values\r\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\r\n * @return {Object} rect - The modifier rect object\r\n */\r\nfunction includeScroll(rect, element) {\r\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\r\n\r\n var scrollTop = getScroll(element, 'top');\r\n var scrollLeft = getScroll(element, 'left');\r\n var modifier = subtract ? -1 : 1;\r\n rect.top += scrollTop * modifier;\r\n rect.bottom += scrollTop * modifier;\r\n rect.left += scrollLeft * modifier;\r\n rect.right += scrollLeft * modifier;\r\n return rect;\r\n}\r\n\r\n/*\r\n * Helper to detect borders of a given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {CSSStyleDeclaration} styles\r\n * Result of `getStyleComputedProperty` on the given element\r\n * @param {String} axis - `x` or `y`\r\n * @return {number} borders - The borders size of the given axis\r\n */\r\n\r\nfunction getBordersSize(styles, axis) {\r\n var sideA = axis === 'x' ? 'Left' : 'Top';\r\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\r\n\r\n return +styles['border' + sideA + 'Width'].split('px')[0] + +styles['border' + sideB + 'Width'].split('px')[0];\r\n}\r\n\r\n/**\r\n * Tells if you are running Internet Explorer 10\r\n * @method\r\n * @memberof Popper.Utils\r\n * @returns {Boolean} isIE10\r\n */\r\nvar isIE10 = undefined;\r\n\r\nvar isIE10$1 = function () {\r\n if (isIE10 === undefined) {\r\n isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;\r\n }\r\n return isIE10;\r\n};\r\n\r\nfunction getSize(axis, body, html, computedStyle) {\r\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\r\n}\r\n\r\nfunction getWindowSizes() {\r\n var body = window.document.body;\r\n var html = window.document.documentElement;\r\n var computedStyle = isIE10$1() && window.getComputedStyle(html);\r\n\r\n return {\r\n height: getSize('Height', body, html, computedStyle),\r\n width: getSize('Width', body, html, computedStyle)\r\n };\r\n}\r\n\r\nvar classCallCheck = function (instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\");\r\n }\r\n};\r\n\r\nvar createClass = function () {\r\n function defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) descriptor.writable = true;\r\n Object.defineProperty(target, descriptor.key, descriptor);\r\n }\r\n }\r\n\r\n return function (Constructor, protoProps, staticProps) {\r\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\r\n if (staticProps) defineProperties(Constructor, staticProps);\r\n return Constructor;\r\n };\r\n}();\r\n\r\n\r\n\r\n\r\n\r\nvar defineProperty = function (obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n });\r\n } else {\r\n obj[key] = value;\r\n }\r\n\r\n return obj;\r\n};\r\n\r\nvar _extends = Object.assign || function (target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = arguments[i];\r\n\r\n for (var key in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n\r\n return target;\r\n};\r\n\r\n/**\r\n * Given element offsets, generate an output similar to getBoundingClientRect\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Object} offsets\r\n * @returns {Object} ClientRect like output\r\n */\r\nfunction getClientRect(offsets) {\r\n return _extends({}, offsets, {\r\n right: offsets.left + offsets.width,\r\n bottom: offsets.top + offsets.height\r\n });\r\n}\r\n\r\n/**\r\n * Get bounding client rect of given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {HTMLElement} element\r\n * @return {Object} client rect\r\n */\r\nfunction getBoundingClientRect(element) {\r\n var rect = {};\r\n\r\n // IE10 10 FIX: Please, don't ask, the element isn't\r\n // considered in DOM in some circumstances...\r\n // This isn't reproducible in IE10 compatibility mode of IE11\r\n if (isIE10$1()) {\r\n try {\r\n rect = element.getBoundingClientRect();\r\n var scrollTop = getScroll(element, 'top');\r\n var scrollLeft = getScroll(element, 'left');\r\n rect.top += scrollTop;\r\n rect.left += scrollLeft;\r\n rect.bottom += scrollTop;\r\n rect.right += scrollLeft;\r\n } catch (err) {}\r\n } else {\r\n rect = element.getBoundingClientRect();\r\n }\r\n\r\n var result = {\r\n left: rect.left,\r\n top: rect.top,\r\n width: rect.right - rect.left,\r\n height: rect.bottom - rect.top\r\n };\r\n\r\n // subtract scrollbar size from sizes\r\n var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\r\n var width = sizes.width || element.clientWidth || result.right - result.left;\r\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\r\n\r\n var horizScrollbar = element.offsetWidth - width;\r\n var vertScrollbar = element.offsetHeight - height;\r\n\r\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\r\n // we make this check conditional for performance reasons\r\n if (horizScrollbar || vertScrollbar) {\r\n var styles = getStyleComputedProperty(element);\r\n horizScrollbar -= getBordersSize(styles, 'x');\r\n vertScrollbar -= getBordersSize(styles, 'y');\r\n\r\n result.width -= horizScrollbar;\r\n result.height -= vertScrollbar;\r\n }\r\n\r\n return getClientRect(result);\r\n}\r\n\r\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\r\n var isIE10 = isIE10$1();\r\n var isHTML = parent.nodeName === 'HTML';\r\n var childrenRect = getBoundingClientRect(children);\r\n var parentRect = getBoundingClientRect(parent);\r\n var scrollParent = getScrollParent(children);\r\n\r\n var styles = getStyleComputedProperty(parent);\r\n var borderTopWidth = +styles.borderTopWidth.split('px')[0];\r\n var borderLeftWidth = +styles.borderLeftWidth.split('px')[0];\r\n\r\n var offsets = getClientRect({\r\n top: childrenRect.top - parentRect.top - borderTopWidth,\r\n left: childrenRect.left - parentRect.left - borderLeftWidth,\r\n width: childrenRect.width,\r\n height: childrenRect.height\r\n });\r\n offsets.marginTop = 0;\r\n offsets.marginLeft = 0;\r\n\r\n // Subtract margins of documentElement in case it's being used as parent\r\n // we do this only on HTML because it's the only element that behaves\r\n // differently when margins are applied to it. The margins are included in\r\n // the box of the documentElement, in the other cases not.\r\n if (!isIE10 && isHTML) {\r\n var marginTop = +styles.marginTop.split('px')[0];\r\n var marginLeft = +styles.marginLeft.split('px')[0];\r\n\r\n offsets.top -= borderTopWidth - marginTop;\r\n offsets.bottom -= borderTopWidth - marginTop;\r\n offsets.left -= borderLeftWidth - marginLeft;\r\n offsets.right -= borderLeftWidth - marginLeft;\r\n\r\n // Attach marginTop and marginLeft because in some circumstances we may need them\r\n offsets.marginTop = marginTop;\r\n offsets.marginLeft = marginLeft;\r\n }\r\n\r\n if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\r\n offsets = includeScroll(offsets, parent);\r\n }\r\n\r\n return offsets;\r\n}\r\n\r\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\r\n var html = element.ownerDocument.documentElement;\r\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\r\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\r\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\r\n\r\n var scrollTop = getScroll(html);\r\n var scrollLeft = getScroll(html, 'left');\r\n\r\n var offset = {\r\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\r\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\r\n width: width,\r\n height: height\r\n };\r\n\r\n return getClientRect(offset);\r\n}\r\n\r\n/**\r\n * Check if the given element is fixed or is inside a fixed parent\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @argument {Element} customContainer\r\n * @returns {Boolean} answer to \"isFixed?\"\r\n */\r\nfunction isFixed(element) {\r\n var nodeName = element.nodeName;\r\n if (nodeName === 'BODY' || nodeName === 'HTML') {\r\n return false;\r\n }\r\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\r\n return true;\r\n }\r\n return isFixed(getParentNode(element));\r\n}\r\n\r\n/**\r\n * Computed the boundaries limits and return them\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {HTMLElement} popper\r\n * @param {HTMLElement} reference\r\n * @param {number} padding\r\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\r\n * @returns {Object} Coordinates of the boundaries\r\n */\r\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\r\n // NOTE: 1 DOM access here\r\n var boundaries = { top: 0, left: 0 };\r\n var offsetParent = findCommonOffsetParent(popper, reference);\r\n\r\n // Handle viewport case\r\n if (boundariesElement === 'viewport') {\r\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent);\r\n } else {\r\n // Handle other cases based on DOM element used as boundaries\r\n var boundariesNode = void 0;\r\n if (boundariesElement === 'scrollParent') {\r\n boundariesNode = getScrollParent(getParentNode(popper));\r\n if (boundariesNode.nodeName === 'BODY') {\r\n boundariesNode = popper.ownerDocument.documentElement;\r\n }\r\n } else if (boundariesElement === 'window') {\r\n boundariesNode = popper.ownerDocument.documentElement;\r\n } else {\r\n boundariesNode = boundariesElement;\r\n }\r\n\r\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent);\r\n\r\n // In case of HTML, we need a different computation\r\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\r\n var _getWindowSizes = getWindowSizes(),\r\n height = _getWindowSizes.height,\r\n width = _getWindowSizes.width;\r\n\r\n boundaries.top += offsets.top - offsets.marginTop;\r\n boundaries.bottom = height + offsets.top;\r\n boundaries.left += offsets.left - offsets.marginLeft;\r\n boundaries.right = width + offsets.left;\r\n } else {\r\n // for all the other DOM elements, this one is good\r\n boundaries = offsets;\r\n }\r\n }\r\n\r\n // Add paddings\r\n boundaries.left += padding;\r\n boundaries.top += padding;\r\n boundaries.right -= padding;\r\n boundaries.bottom -= padding;\r\n\r\n return boundaries;\r\n}\r\n\r\nfunction getArea(_ref) {\r\n var width = _ref.width,\r\n height = _ref.height;\r\n\r\n return width * height;\r\n}\r\n\r\n/**\r\n * Utility used to transform the `auto` placement to the placement with more\r\n * available space.\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\r\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\r\n\r\n if (placement.indexOf('auto') === -1) {\r\n return placement;\r\n }\r\n\r\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\r\n\r\n var rects = {\r\n top: {\r\n width: boundaries.width,\r\n height: refRect.top - boundaries.top\r\n },\r\n right: {\r\n width: boundaries.right - refRect.right,\r\n height: boundaries.height\r\n },\r\n bottom: {\r\n width: boundaries.width,\r\n height: boundaries.bottom - refRect.bottom\r\n },\r\n left: {\r\n width: refRect.left - boundaries.left,\r\n height: boundaries.height\r\n }\r\n };\r\n\r\n var sortedAreas = Object.keys(rects).map(function (key) {\r\n return _extends({\r\n key: key\r\n }, rects[key], {\r\n area: getArea(rects[key])\r\n });\r\n }).sort(function (a, b) {\r\n return b.area - a.area;\r\n });\r\n\r\n var filteredAreas = sortedAreas.filter(function (_ref2) {\r\n var width = _ref2.width,\r\n height = _ref2.height;\r\n return width >= popper.clientWidth && height >= popper.clientHeight;\r\n });\r\n\r\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\r\n\r\n var variation = placement.split('-')[1];\r\n\r\n return computedPlacement + (variation ? '-' + variation : '');\r\n}\r\n\r\n/**\r\n * Get offsets to the reference element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {Object} state\r\n * @param {Element} popper - the popper element\r\n * @param {Element} reference - the reference element (the popper will be relative to this)\r\n * @returns {Object} An object containing the offsets which will be applied to the popper\r\n */\r\nfunction getReferenceOffsets(state, popper, reference) {\r\n var commonOffsetParent = findCommonOffsetParent(popper, reference);\r\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent);\r\n}\r\n\r\n/**\r\n * Get the outer sizes of the given element (offset size + margins)\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @returns {Object} object containing width and height properties\r\n */\r\nfunction getOuterSizes(element) {\r\n var styles = window.getComputedStyle(element);\r\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\r\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\r\n var result = {\r\n width: element.offsetWidth + y,\r\n height: element.offsetHeight + x\r\n };\r\n return result;\r\n}\r\n\r\n/**\r\n * Get the opposite placement of the given one\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {String} placement\r\n * @returns {String} flipped placement\r\n */\r\nfunction getOppositePlacement(placement) {\r\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\r\n return placement.replace(/left|right|bottom|top/g, function (matched) {\r\n return hash[matched];\r\n });\r\n}\r\n\r\n/**\r\n * Get offsets to the popper\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {Object} position - CSS position the Popper will get applied\r\n * @param {HTMLElement} popper - the popper element\r\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\r\n * @param {String} placement - one of the valid placement options\r\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\r\n */\r\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\r\n placement = placement.split('-')[0];\r\n\r\n // Get popper node sizes\r\n var popperRect = getOuterSizes(popper);\r\n\r\n // Add position, width and height to our offsets object\r\n var popperOffsets = {\r\n width: popperRect.width,\r\n height: popperRect.height\r\n };\r\n\r\n // depending by the popper placement we have to compute its offsets slightly differently\r\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\r\n var mainSide = isHoriz ? 'top' : 'left';\r\n var secondarySide = isHoriz ? 'left' : 'top';\r\n var measurement = isHoriz ? 'height' : 'width';\r\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\r\n\r\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\r\n if (placement === secondarySide) {\r\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\r\n } else {\r\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\r\n }\r\n\r\n return popperOffsets;\r\n}\r\n\r\n/**\r\n * Mimics the `find` method of Array\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Array} arr\r\n * @argument prop\r\n * @argument value\r\n * @returns index or -1\r\n */\r\nfunction find(arr, check) {\r\n // use native find if supported\r\n if (Array.prototype.find) {\r\n return arr.find(check);\r\n }\r\n\r\n // use `filter` to obtain the same behavior of `find`\r\n return arr.filter(check)[0];\r\n}\r\n\r\n/**\r\n * Return the index of the matching object\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Array} arr\r\n * @argument prop\r\n * @argument value\r\n * @returns index or -1\r\n */\r\nfunction findIndex(arr, prop, value) {\r\n // use native findIndex if supported\r\n if (Array.prototype.findIndex) {\r\n return arr.findIndex(function (cur) {\r\n return cur[prop] === value;\r\n });\r\n }\r\n\r\n // use `find` + `indexOf` if `findIndex` isn't supported\r\n var match = find(arr, function (obj) {\r\n return obj[prop] === value;\r\n });\r\n return arr.indexOf(match);\r\n}\r\n\r\n/**\r\n * Loop trough the list of modifiers and run them in order,\r\n * each of them will then edit the data object.\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {dataObject} data\r\n * @param {Array} modifiers\r\n * @param {String} ends - Optional modifier name used as stopper\r\n * @returns {dataObject}\r\n */\r\nfunction runModifiers(modifiers, data, ends) {\r\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\r\n\r\n modifiersToRun.forEach(function (modifier) {\r\n if (modifier['function']) {\r\n // eslint-disable-line dot-notation\r\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\r\n }\r\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\r\n if (modifier.enabled && isFunction(fn)) {\r\n // Add properties to offsets to make them a complete clientRect object\r\n // we do this before each modifier to make sure the previous one doesn't\r\n // mess with these values\r\n data.offsets.popper = getClientRect(data.offsets.popper);\r\n data.offsets.reference = getClientRect(data.offsets.reference);\r\n\r\n data = fn(data, modifier);\r\n }\r\n });\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * Updates the position of the popper, computing the new offsets and applying\r\n * the new style.
\r\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\r\n * @method\r\n * @memberof Popper\r\n */\r\nfunction update() {\r\n // if popper is destroyed, don't perform any further update\r\n if (this.state.isDestroyed) {\r\n return;\r\n }\r\n\r\n var data = {\r\n instance: this,\r\n styles: {},\r\n arrowStyles: {},\r\n attributes: {},\r\n flipped: false,\r\n offsets: {}\r\n };\r\n\r\n // compute reference element offsets\r\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference);\r\n\r\n // compute auto placement, store placement inside the data object,\r\n // modifiers will be able to edit `placement` if needed\r\n // and refer to originalPlacement to know the original value\r\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\r\n\r\n // store the computed placement inside `originalPlacement`\r\n data.originalPlacement = data.placement;\r\n\r\n // compute the popper offsets\r\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\r\n data.offsets.popper.position = 'absolute';\r\n\r\n // run the modifiers\r\n data = runModifiers(this.modifiers, data);\r\n\r\n // the first `update` will call `onCreate` callback\r\n // the other ones will call `onUpdate` callback\r\n if (!this.state.isCreated) {\r\n this.state.isCreated = true;\r\n this.options.onCreate(data);\r\n } else {\r\n this.options.onUpdate(data);\r\n }\r\n}\r\n\r\n/**\r\n * Helper used to know if the given modifier is enabled.\r\n * @method\r\n * @memberof Popper.Utils\r\n * @returns {Boolean}\r\n */\r\nfunction isModifierEnabled(modifiers, modifierName) {\r\n return modifiers.some(function (_ref) {\r\n var name = _ref.name,\r\n enabled = _ref.enabled;\r\n return enabled && name === modifierName;\r\n });\r\n}\r\n\r\n/**\r\n * Get the prefixed supported property name\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {String} property (camelCase)\r\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\r\n */\r\nfunction getSupportedPropertyName(property) {\r\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\r\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\r\n\r\n for (var i = 0; i < prefixes.length - 1; i++) {\r\n var prefix = prefixes[i];\r\n var toCheck = prefix ? '' + prefix + upperProp : property;\r\n if (typeof window.document.body.style[toCheck] !== 'undefined') {\r\n return toCheck;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\n/**\r\n * Destroy the popper\r\n * @method\r\n * @memberof Popper\r\n */\r\nfunction destroy() {\r\n this.state.isDestroyed = true;\r\n\r\n // touch DOM only if `applyStyle` modifier is enabled\r\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\r\n this.popper.removeAttribute('x-placement');\r\n this.popper.style.left = '';\r\n this.popper.style.position = '';\r\n this.popper.style.top = '';\r\n this.popper.style[getSupportedPropertyName('transform')] = '';\r\n }\r\n\r\n this.disableEventListeners();\r\n\r\n // remove the popper if user explicity asked for the deletion on destroy\r\n // do not use `remove` because IE11 doesn't support it\r\n if (this.options.removeOnDestroy) {\r\n this.popper.parentNode.removeChild(this.popper);\r\n }\r\n return this;\r\n}\r\n\r\n/**\r\n * Get the window associated with the element\r\n * @argument {Element} element\r\n * @returns {Window}\r\n */\r\nfunction getWindow(element) {\r\n var ownerDocument = element.ownerDocument;\r\n return ownerDocument ? ownerDocument.defaultView : window;\r\n}\r\n\r\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\r\n var isBody = scrollParent.nodeName === 'BODY';\r\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\r\n target.addEventListener(event, callback, { passive: true });\r\n\r\n if (!isBody) {\r\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\r\n }\r\n scrollParents.push(target);\r\n}\r\n\r\n/**\r\n * Setup needed event listeners used to update the popper position\r\n * @method\r\n * @memberof Popper.Utils\r\n * @private\r\n */\r\nfunction setupEventListeners(reference, options, state, updateBound) {\r\n // Resize event listener on window\r\n state.updateBound = updateBound;\r\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\r\n\r\n // Scroll event listener on scroll parents\r\n var scrollElement = getScrollParent(reference);\r\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\r\n state.scrollElement = scrollElement;\r\n state.eventsEnabled = true;\r\n\r\n return state;\r\n}\r\n\r\n/**\r\n * It will add resize/scroll events and start recalculating\r\n * position of the popper element when they are triggered.\r\n * @method\r\n * @memberof Popper\r\n */\r\nfunction enableEventListeners() {\r\n if (!this.state.eventsEnabled) {\r\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\r\n }\r\n}\r\n\r\n/**\r\n * Remove event listeners used to update the popper position\r\n * @method\r\n * @memberof Popper.Utils\r\n * @private\r\n */\r\nfunction removeEventListeners(reference, state) {\r\n // Remove resize event listener on window\r\n getWindow(reference).removeEventListener('resize', state.updateBound);\r\n\r\n // Remove scroll event listener on scroll parents\r\n state.scrollParents.forEach(function (target) {\r\n target.removeEventListener('scroll', state.updateBound);\r\n });\r\n\r\n // Reset state\r\n state.updateBound = null;\r\n state.scrollParents = [];\r\n state.scrollElement = null;\r\n state.eventsEnabled = false;\r\n return state;\r\n}\r\n\r\n/**\r\n * It will remove resize/scroll events and won't recalculate popper position\r\n * when they are triggered. It also won't trigger onUpdate callback anymore,\r\n * unless you call `update` method manually.\r\n * @method\r\n * @memberof Popper\r\n */\r\nfunction disableEventListeners() {\r\n if (this.state.eventsEnabled) {\r\n window.cancelAnimationFrame(this.scheduleUpdate);\r\n this.state = removeEventListeners(this.reference, this.state);\r\n }\r\n}\r\n\r\n/**\r\n * Tells if a given input is a number\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {*} input to check\r\n * @return {Boolean}\r\n */\r\nfunction isNumeric(n) {\r\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\r\n}\r\n\r\n/**\r\n * Set the style to the given popper\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element - Element to apply the style to\r\n * @argument {Object} styles\r\n * Object with a list of properties and values which will be applied to the element\r\n */\r\nfunction setStyles(element, styles) {\r\n Object.keys(styles).forEach(function (prop) {\r\n var unit = '';\r\n // add unit if the value is numeric and is one of the following\r\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\r\n unit = 'px';\r\n }\r\n element.style[prop] = styles[prop] + unit;\r\n });\r\n}\r\n\r\n/**\r\n * Set the attributes to the given popper\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element - Element to apply the attributes to\r\n * @argument {Object} styles\r\n * Object with a list of properties and values which will be applied to the element\r\n */\r\nfunction setAttributes(element, attributes) {\r\n Object.keys(attributes).forEach(function (prop) {\r\n var value = attributes[prop];\r\n if (value !== false) {\r\n element.setAttribute(prop, attributes[prop]);\r\n } else {\r\n element.removeAttribute(prop);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\r\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The same data object\r\n */\r\nfunction applyStyle(data) {\r\n // any property present in `data.styles` will be applied to the popper,\r\n // in this way we can make the 3rd party modifiers add custom styles to it\r\n // Be aware, modifiers could override the properties defined in the previous\r\n // lines of this modifier!\r\n setStyles(data.instance.popper, data.styles);\r\n\r\n // any property present in `data.attributes` will be applied to the popper,\r\n // they will be set as HTML attributes of the element\r\n setAttributes(data.instance.popper, data.attributes);\r\n\r\n // if arrowElement is defined and arrowStyles has some properties\r\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\r\n setStyles(data.arrowElement, data.arrowStyles);\r\n }\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * Set the x-placement attribute before everything else because it could be used\r\n * to add margins to the popper margins needs to be calculated to get the\r\n * correct popper offsets.\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @param {HTMLElement} reference - The reference element used to position the popper\r\n * @param {HTMLElement} popper - The HTML element used as popper.\r\n * @param {Object} options - Popper.js options\r\n */\r\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\r\n // compute reference element offsets\r\n var referenceOffsets = getReferenceOffsets(state, popper, reference);\r\n\r\n // compute auto placement, store placement inside the data object,\r\n // modifiers will be able to edit `placement` if needed\r\n // and refer to originalPlacement to know the original value\r\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\r\n\r\n popper.setAttribute('x-placement', placement);\r\n\r\n // Apply `position` to popper before anything else because\r\n // without the position applied we can't guarantee correct computations\r\n setStyles(popper, { position: 'absolute' });\r\n\r\n return options;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction computeStyle(data, options) {\r\n var x = options.x,\r\n y = options.y;\r\n var popper = data.offsets.popper;\r\n\r\n // Remove this legacy support in Popper.js v2\r\n\r\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\r\n return modifier.name === 'applyStyle';\r\n }).gpuAcceleration;\r\n if (legacyGpuAccelerationOption !== undefined) {\r\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\r\n }\r\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\r\n\r\n var offsetParent = getOffsetParent(data.instance.popper);\r\n var offsetParentRect = getBoundingClientRect(offsetParent);\r\n\r\n // Styles\r\n var styles = {\r\n position: popper.position\r\n };\r\n\r\n // floor sides to avoid blurry text\r\n var offsets = {\r\n left: Math.floor(popper.left),\r\n top: Math.floor(popper.top),\r\n bottom: Math.floor(popper.bottom),\r\n right: Math.floor(popper.right)\r\n };\r\n\r\n var sideA = x === 'bottom' ? 'top' : 'bottom';\r\n var sideB = y === 'right' ? 'left' : 'right';\r\n\r\n // if gpuAcceleration is set to `true` and transform is supported,\r\n // we use `translate3d` to apply the position to the popper we\r\n // automatically use the supported prefixed version if needed\r\n var prefixedProperty = getSupportedPropertyName('transform');\r\n\r\n // now, let's make a step back and look at this code closely (wtf?)\r\n // If the content of the popper grows once it's been positioned, it\r\n // may happen that the popper gets misplaced because of the new content\r\n // overflowing its reference element\r\n // To avoid this problem, we provide two options (x and y), which allow\r\n // the consumer to define the offset origin.\r\n // If we position a popper on top of a reference element, we can set\r\n // `x` to `top` to make the popper grow towards its top instead of\r\n // its bottom.\r\n var left = void 0,\r\n top = void 0;\r\n if (sideA === 'bottom') {\r\n top = -offsetParentRect.height + offsets.bottom;\r\n } else {\r\n top = offsets.top;\r\n }\r\n if (sideB === 'right') {\r\n left = -offsetParentRect.width + offsets.right;\r\n } else {\r\n left = offsets.left;\r\n }\r\n if (gpuAcceleration && prefixedProperty) {\r\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\r\n styles[sideA] = 0;\r\n styles[sideB] = 0;\r\n styles.willChange = 'transform';\r\n } else {\r\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\r\n var invertTop = sideA === 'bottom' ? -1 : 1;\r\n var invertLeft = sideB === 'right' ? -1 : 1;\r\n styles[sideA] = top * invertTop;\r\n styles[sideB] = left * invertLeft;\r\n styles.willChange = sideA + ', ' + sideB;\r\n }\r\n\r\n // Attributes\r\n var attributes = {\r\n 'x-placement': data.placement\r\n };\r\n\r\n // Update `data` attributes, styles and arrowStyles\r\n data.attributes = _extends({}, attributes, data.attributes);\r\n data.styles = _extends({}, styles, data.styles);\r\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * Helper used to know if the given modifier depends from another one.
\r\n * It checks if the needed modifier is listed and enabled.\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {Array} modifiers - list of modifiers\r\n * @param {String} requestingName - name of requesting modifier\r\n * @param {String} requestedName - name of requested modifier\r\n * @returns {Boolean}\r\n */\r\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\r\n var requesting = find(modifiers, function (_ref) {\r\n var name = _ref.name;\r\n return name === requestingName;\r\n });\r\n\r\n var isRequired = !!requesting && modifiers.some(function (modifier) {\r\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\r\n });\r\n\r\n if (!isRequired) {\r\n var _requesting = '`' + requestingName + '`';\r\n var requested = '`' + requestedName + '`';\r\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\r\n }\r\n return isRequired;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction arrow(data, options) {\r\n // arrow depends on keepTogether in order to work\r\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\r\n return data;\r\n }\r\n\r\n var arrowElement = options.element;\r\n\r\n // if arrowElement is a string, suppose it's a CSS selector\r\n if (typeof arrowElement === 'string') {\r\n arrowElement = data.instance.popper.querySelector(arrowElement);\r\n\r\n // if arrowElement is not found, don't run the modifier\r\n if (!arrowElement) {\r\n return data;\r\n }\r\n } else {\r\n // if the arrowElement isn't a query selector we must check that the\r\n // provided DOM node is child of its popper node\r\n if (!data.instance.popper.contains(arrowElement)) {\r\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\r\n return data;\r\n }\r\n }\r\n\r\n var placement = data.placement.split('-')[0];\r\n var _data$offsets = data.offsets,\r\n popper = _data$offsets.popper,\r\n reference = _data$offsets.reference;\r\n\r\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\r\n\r\n var len = isVertical ? 'height' : 'width';\r\n var sideCapitalized = isVertical ? 'Top' : 'Left';\r\n var side = sideCapitalized.toLowerCase();\r\n var altSide = isVertical ? 'left' : 'top';\r\n var opSide = isVertical ? 'bottom' : 'right';\r\n var arrowElementSize = getOuterSizes(arrowElement)[len];\r\n\r\n //\r\n // extends keepTogether behavior making sure the popper and its\r\n // reference have enough pixels in conjuction\r\n //\r\n\r\n // top/left side\r\n if (reference[opSide] - arrowElementSize < popper[side]) {\r\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\r\n }\r\n // bottom/right side\r\n if (reference[side] + arrowElementSize > popper[opSide]) {\r\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\r\n }\r\n\r\n // compute center of the popper\r\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\r\n\r\n // Compute the sideValue using the updated popper offsets\r\n // take popper margin in account because we don't have this info available\r\n var popperMarginSide = getStyleComputedProperty(data.instance.popper, 'margin' + sideCapitalized).replace('px', '');\r\n var sideValue = center - getClientRect(data.offsets.popper)[side] - popperMarginSide;\r\n\r\n // prevent arrowElement from being placed not contiguously to its popper\r\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\r\n\r\n data.arrowElement = arrowElement;\r\n data.offsets.arrow = {};\r\n data.offsets.arrow[side] = Math.round(sideValue);\r\n data.offsets.arrow[altSide] = ''; // make sure to unset any eventual altSide value from the DOM node\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * Get the opposite placement variation of the given one\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {String} placement variation\r\n * @returns {String} flipped placement variation\r\n */\r\nfunction getOppositeVariation(variation) {\r\n if (variation === 'end') {\r\n return 'start';\r\n } else if (variation === 'start') {\r\n return 'end';\r\n }\r\n return variation;\r\n}\r\n\r\n/**\r\n * List of accepted placements to use as values of the `placement` option.
\r\n * Valid placements are:\r\n * - `auto`\r\n * - `top`\r\n * - `right`\r\n * - `bottom`\r\n * - `left`\r\n *\r\n * Each placement can have a variation from this list:\r\n * - `-start`\r\n * - `-end`\r\n *\r\n * Variations are interpreted easily if you think of them as the left to right\r\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\r\n * is right.
\r\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\r\n *\r\n * Some valid examples are:\r\n * - `top-end` (on top of reference, right aligned)\r\n * - `right-start` (on right of reference, top aligned)\r\n * - `bottom` (on bottom, centered)\r\n * - `auto-right` (on the side with more space available, alignment depends by placement)\r\n *\r\n * @static\r\n * @type {Array}\r\n * @enum {String}\r\n * @readonly\r\n * @method placements\r\n * @memberof Popper\r\n */\r\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\r\n\r\n// Get rid of `auto` `auto-start` and `auto-end`\r\nvar validPlacements = placements.slice(3);\r\n\r\n/**\r\n * Given an initial placement, returns all the subsequent placements\r\n * clockwise (or counter-clockwise).\r\n *\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {String} placement - A valid placement (it accepts variations)\r\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\r\n * @returns {Array} placements including their variations\r\n */\r\nfunction clockwise(placement) {\r\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\r\n\r\n var index = validPlacements.indexOf(placement);\r\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\r\n return counter ? arr.reverse() : arr;\r\n}\r\n\r\nvar BEHAVIORS = {\r\n FLIP: 'flip',\r\n CLOCKWISE: 'clockwise',\r\n COUNTERCLOCKWISE: 'counterclockwise'\r\n};\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction flip(data, options) {\r\n // if `inner` modifier is enabled, we can't use the `flip` modifier\r\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\r\n return data;\r\n }\r\n\r\n if (data.flipped && data.placement === data.originalPlacement) {\r\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\r\n return data;\r\n }\r\n\r\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement);\r\n\r\n var placement = data.placement.split('-')[0];\r\n var placementOpposite = getOppositePlacement(placement);\r\n var variation = data.placement.split('-')[1] || '';\r\n\r\n var flipOrder = [];\r\n\r\n switch (options.behavior) {\r\n case BEHAVIORS.FLIP:\r\n flipOrder = [placement, placementOpposite];\r\n break;\r\n case BEHAVIORS.CLOCKWISE:\r\n flipOrder = clockwise(placement);\r\n break;\r\n case BEHAVIORS.COUNTERCLOCKWISE:\r\n flipOrder = clockwise(placement, true);\r\n break;\r\n default:\r\n flipOrder = options.behavior;\r\n }\r\n\r\n flipOrder.forEach(function (step, index) {\r\n if (placement !== step || flipOrder.length === index + 1) {\r\n return data;\r\n }\r\n\r\n placement = data.placement.split('-')[0];\r\n placementOpposite = getOppositePlacement(placement);\r\n\r\n var popperOffsets = data.offsets.popper;\r\n var refOffsets = data.offsets.reference;\r\n\r\n // using floor because the reference offsets may contain decimals we are not going to consider here\r\n var floor = Math.floor;\r\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\r\n\r\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\r\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\r\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\r\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\r\n\r\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\r\n\r\n // flip the variation if required\r\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\r\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\r\n\r\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\r\n // this boolean to detect any flip loop\r\n data.flipped = true;\r\n\r\n if (overlapsRef || overflowsBoundaries) {\r\n placement = flipOrder[index + 1];\r\n }\r\n\r\n if (flippedVariation) {\r\n variation = getOppositeVariation(variation);\r\n }\r\n\r\n data.placement = placement + (variation ? '-' + variation : '');\r\n\r\n // this object contains `position`, we want to preserve it along with\r\n // any additional property we may add in the future\r\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\r\n\r\n data = runModifiers(data.instance.modifiers, data, 'flip');\r\n }\r\n });\r\n return data;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction keepTogether(data) {\r\n var _data$offsets = data.offsets,\r\n popper = _data$offsets.popper,\r\n reference = _data$offsets.reference;\r\n\r\n var placement = data.placement.split('-')[0];\r\n var floor = Math.floor;\r\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\r\n var side = isVertical ? 'right' : 'bottom';\r\n var opSide = isVertical ? 'left' : 'top';\r\n var measurement = isVertical ? 'width' : 'height';\r\n\r\n if (popper[side] < floor(reference[opSide])) {\r\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\r\n }\r\n if (popper[opSide] > floor(reference[side])) {\r\n data.offsets.popper[opSide] = floor(reference[side]);\r\n }\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * Converts a string containing value + unit into a px value number\r\n * @function\r\n * @memberof {modifiers~offset}\r\n * @private\r\n * @argument {String} str - Value + unit string\r\n * @argument {String} measurement - `height` or `width`\r\n * @argument {Object} popperOffsets\r\n * @argument {Object} referenceOffsets\r\n * @returns {Number|String}\r\n * Value in pixels, or original string if no values were extracted\r\n */\r\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\r\n // separate value from unit\r\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\r\n var value = +split[1];\r\n var unit = split[2];\r\n\r\n // If it's not a number it's an operator, I guess\r\n if (!value) {\r\n return str;\r\n }\r\n\r\n if (unit.indexOf('%') === 0) {\r\n var element = void 0;\r\n switch (unit) {\r\n case '%p':\r\n element = popperOffsets;\r\n break;\r\n case '%':\r\n case '%r':\r\n default:\r\n element = referenceOffsets;\r\n }\r\n\r\n var rect = getClientRect(element);\r\n return rect[measurement] / 100 * value;\r\n } else if (unit === 'vh' || unit === 'vw') {\r\n // if is a vh or vw, we calculate the size based on the viewport\r\n var size = void 0;\r\n if (unit === 'vh') {\r\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\r\n } else {\r\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\r\n }\r\n return size / 100 * value;\r\n } else {\r\n // if is an explicit pixel unit, we get rid of the unit and keep the value\r\n // if is an implicit unit, it's px, and we return just the value\r\n return value;\r\n }\r\n}\r\n\r\n/**\r\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\r\n * @function\r\n * @memberof {modifiers~offset}\r\n * @private\r\n * @argument {String} offset\r\n * @argument {Object} popperOffsets\r\n * @argument {Object} referenceOffsets\r\n * @argument {String} basePlacement\r\n * @returns {Array} a two cells array with x and y offsets in numbers\r\n */\r\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\r\n var offsets = [0, 0];\r\n\r\n // Use height if placement is left or right and index is 0 otherwise use width\r\n // in this way the first offset will use an axis and the second one\r\n // will use the other one\r\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\r\n\r\n // Split the offset string to obtain a list of values and operands\r\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\r\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\r\n return frag.trim();\r\n });\r\n\r\n // Detect if the offset string contains a pair of values or a single one\r\n // they could be separated by comma or space\r\n var divider = fragments.indexOf(find(fragments, function (frag) {\r\n return frag.search(/,|\\s/) !== -1;\r\n }));\r\n\r\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\r\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\r\n }\r\n\r\n // If divider is found, we divide the list of values and operands to divide\r\n // them by ofset X and Y.\r\n var splitRegex = /\\s*,\\s*|\\s+/;\r\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\r\n\r\n // Convert the values with units to absolute pixels to allow our computations\r\n ops = ops.map(function (op, index) {\r\n // Most of the units rely on the orientation of the popper\r\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\r\n var mergeWithPrevious = false;\r\n return op\r\n // This aggregates any `+` or `-` sign that aren't considered operators\r\n // e.g.: 10 + +5 => [10, +, +5]\r\n .reduce(function (a, b) {\r\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\r\n a[a.length - 1] = b;\r\n mergeWithPrevious = true;\r\n return a;\r\n } else if (mergeWithPrevious) {\r\n a[a.length - 1] += b;\r\n mergeWithPrevious = false;\r\n return a;\r\n } else {\r\n return a.concat(b);\r\n }\r\n }, [])\r\n // Here we convert the string values into number values (in px)\r\n .map(function (str) {\r\n return toValue(str, measurement, popperOffsets, referenceOffsets);\r\n });\r\n });\r\n\r\n // Loop trough the offsets arrays and execute the operations\r\n ops.forEach(function (op, index) {\r\n op.forEach(function (frag, index2) {\r\n if (isNumeric(frag)) {\r\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\r\n }\r\n });\r\n });\r\n return offsets;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @argument {Number|String} options.offset=0\r\n * The offset value as described in the modifier description\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction offset(data, _ref) {\r\n var offset = _ref.offset;\r\n var placement = data.placement,\r\n _data$offsets = data.offsets,\r\n popper = _data$offsets.popper,\r\n reference = _data$offsets.reference;\r\n\r\n var basePlacement = placement.split('-')[0];\r\n\r\n var offsets = void 0;\r\n if (isNumeric(+offset)) {\r\n offsets = [+offset, 0];\r\n } else {\r\n offsets = parseOffset(offset, popper, reference, basePlacement);\r\n }\r\n\r\n if (basePlacement === 'left') {\r\n popper.top += offsets[0];\r\n popper.left -= offsets[1];\r\n } else if (basePlacement === 'right') {\r\n popper.top += offsets[0];\r\n popper.left += offsets[1];\r\n } else if (basePlacement === 'top') {\r\n popper.left += offsets[0];\r\n popper.top -= offsets[1];\r\n } else if (basePlacement === 'bottom') {\r\n popper.left += offsets[0];\r\n popper.top += offsets[1];\r\n }\r\n\r\n data.popper = popper;\r\n return data;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction preventOverflow(data, options) {\r\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\r\n\r\n // If offsetParent is the reference element, we really want to\r\n // go one step up and use the next offsetParent as reference to\r\n // avoid to make this modifier completely useless and look like broken\r\n if (data.instance.reference === boundariesElement) {\r\n boundariesElement = getOffsetParent(boundariesElement);\r\n }\r\n\r\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement);\r\n options.boundaries = boundaries;\r\n\r\n var order = options.priority;\r\n var popper = data.offsets.popper;\r\n\r\n var check = {\r\n primary: function primary(placement) {\r\n var value = popper[placement];\r\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\r\n value = Math.max(popper[placement], boundaries[placement]);\r\n }\r\n return defineProperty({}, placement, value);\r\n },\r\n secondary: function secondary(placement) {\r\n var mainSide = placement === 'right' ? 'left' : 'top';\r\n var value = popper[mainSide];\r\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\r\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\r\n }\r\n return defineProperty({}, mainSide, value);\r\n }\r\n };\r\n\r\n order.forEach(function (placement) {\r\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\r\n popper = _extends({}, popper, check[side](placement));\r\n });\r\n\r\n data.offsets.popper = popper;\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction shift(data) {\r\n var placement = data.placement;\r\n var basePlacement = placement.split('-')[0];\r\n var shiftvariation = placement.split('-')[1];\r\n\r\n // if shift shiftvariation is specified, run the modifier\r\n if (shiftvariation) {\r\n var _data$offsets = data.offsets,\r\n reference = _data$offsets.reference,\r\n popper = _data$offsets.popper;\r\n\r\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\r\n var side = isVertical ? 'left' : 'top';\r\n var measurement = isVertical ? 'width' : 'height';\r\n\r\n var shiftOffsets = {\r\n start: defineProperty({}, side, reference[side]),\r\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\r\n };\r\n\r\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\r\n }\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction hide(data) {\r\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\r\n return data;\r\n }\r\n\r\n var refRect = data.offsets.reference;\r\n var bound = find(data.instance.modifiers, function (modifier) {\r\n return modifier.name === 'preventOverflow';\r\n }).boundaries;\r\n\r\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\r\n // Avoid unnecessary DOM access if visibility hasn't changed\r\n if (data.hide === true) {\r\n return data;\r\n }\r\n\r\n data.hide = true;\r\n data.attributes['x-out-of-boundaries'] = '';\r\n } else {\r\n // Avoid unnecessary DOM access if visibility hasn't changed\r\n if (data.hide === false) {\r\n return data;\r\n }\r\n\r\n data.hide = false;\r\n data.attributes['x-out-of-boundaries'] = false;\r\n }\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction inner(data) {\r\n var placement = data.placement;\r\n var basePlacement = placement.split('-')[0];\r\n var _data$offsets = data.offsets,\r\n popper = _data$offsets.popper,\r\n reference = _data$offsets.reference;\r\n\r\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\r\n\r\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\r\n\r\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\r\n\r\n data.placement = getOppositePlacement(placement);\r\n data.offsets.popper = getClientRect(popper);\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * Modifier function, each modifier can have a function of this type assigned\r\n * to its `fn` property.
\r\n * These functions will be called on each update, this means that you must\r\n * make sure they are performant enough to avoid performance bottlenecks.\r\n *\r\n * @function ModifierFn\r\n * @argument {dataObject} data - The data object generated by `update` method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {dataObject} The data object, properly modified\r\n */\r\n\r\n/**\r\n * Modifiers are plugins used to alter the behavior of your poppers.
\r\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\r\n * needed by the library.\r\n *\r\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\r\n * All the other properties are configurations that could be tweaked.\r\n * @namespace modifiers\r\n */\r\nvar modifiers = {\r\n /**\r\n * Modifier used to shift the popper on the start or end of its reference\r\n * element.
\r\n * It will read the variation of the `placement` property.
\r\n * It can be one either `-end` or `-start`.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n shift: {\r\n /** @prop {number} order=100 - Index used to define the order of execution */\r\n order: 100,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: shift\r\n },\r\n\r\n /**\r\n * The `offset` modifier can shift your popper on both its axis.\r\n *\r\n * It accepts the following units:\r\n * - `px` or unitless, interpreted as pixels\r\n * - `%` or `%r`, percentage relative to the length of the reference element\r\n * - `%p`, percentage relative to the length of the popper element\r\n * - `vw`, CSS viewport width unit\r\n * - `vh`, CSS viewport height unit\r\n *\r\n * For length is intended the main axis relative to the placement of the popper.
\r\n * This means that if the placement is `top` or `bottom`, the length will be the\r\n * `width`. In case of `left` or `right`, it will be the height.\r\n *\r\n * You can provide a single value (as `Number` or `String`), or a pair of values\r\n * as `String` divided by a comma or one (or more) white spaces.
\r\n * The latter is a deprecated method because it leads to confusion and will be\r\n * removed in v2.
\r\n * Additionally, it accepts additions and subtractions between different units.\r\n * Note that multiplications and divisions aren't supported.\r\n *\r\n * Valid examples are:\r\n * ```\r\n * 10\r\n * '10%'\r\n * '10, 10'\r\n * '10%, 10'\r\n * '10 + 10%'\r\n * '10 - 5vh + 3%'\r\n * '-10px + 5vh, 5px - 6%'\r\n * ```\r\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\r\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\r\n * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\r\n *\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n offset: {\r\n /** @prop {number} order=200 - Index used to define the order of execution */\r\n order: 200,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: offset,\r\n /** @prop {Number|String} offset=0\r\n * The offset value as described in the modifier description\r\n */\r\n offset: 0\r\n },\r\n\r\n /**\r\n * Modifier used to prevent the popper from being positioned outside the boundary.\r\n *\r\n * An scenario exists where the reference itself is not within the boundaries.
\r\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\r\n * In this case we need to decide whether the popper should either:\r\n *\r\n * - detach from the reference and remain \"trapped\" in the boundaries, or\r\n * - if it should ignore the boundary and \"escape with its reference\"\r\n *\r\n * When `escapeWithReference` is set to`true` and reference is completely\r\n * outside its boundaries, the popper will overflow (or completely leave)\r\n * the boundaries in order to remain attached to the edge of the reference.\r\n *\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n preventOverflow: {\r\n /** @prop {number} order=300 - Index used to define the order of execution */\r\n order: 300,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: preventOverflow,\r\n /**\r\n * @prop {Array} [priority=['left','right','top','bottom']]\r\n * Popper will try to prevent overflow following these priorities by default,\r\n * then, it could overflow on the left and on top of the `boundariesElement`\r\n */\r\n priority: ['left', 'right', 'top', 'bottom'],\r\n /**\r\n * @prop {number} padding=5\r\n * Amount of pixel used to define a minimum distance between the boundaries\r\n * and the popper this makes sure the popper has always a little padding\r\n * between the edges of its container\r\n */\r\n padding: 5,\r\n /**\r\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\r\n * Boundaries used by the modifier, can be `scrollParent`, `window`,\r\n * `viewport` or any DOM element.\r\n */\r\n boundariesElement: 'scrollParent'\r\n },\r\n\r\n /**\r\n * Modifier used to make sure the reference and its popper stay near eachothers\r\n * without leaving any gap between the two. Expecially useful when the arrow is\r\n * enabled and you want to assure it to point to its reference element.\r\n * It cares only about the first axis, you can still have poppers with margin\r\n * between the popper and its reference element.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n keepTogether: {\r\n /** @prop {number} order=400 - Index used to define the order of execution */\r\n order: 400,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: keepTogether\r\n },\r\n\r\n /**\r\n * This modifier is used to move the `arrowElement` of the popper to make\r\n * sure it is positioned between the reference element and its popper element.\r\n * It will read the outer size of the `arrowElement` node to detect how many\r\n * pixels of conjuction are needed.\r\n *\r\n * It has no effect if no `arrowElement` is provided.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n arrow: {\r\n /** @prop {number} order=500 - Index used to define the order of execution */\r\n order: 500,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: arrow,\r\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\r\n element: '[x-arrow]'\r\n },\r\n\r\n /**\r\n * Modifier used to flip the popper's placement when it starts to overlap its\r\n * reference element.\r\n *\r\n * Requires the `preventOverflow` modifier before it in order to work.\r\n *\r\n * **NOTE:** this modifier will interrupt the current update cycle and will\r\n * restart it if it detects the need to flip the placement.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n flip: {\r\n /** @prop {number} order=600 - Index used to define the order of execution */\r\n order: 600,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: flip,\r\n /**\r\n * @prop {String|Array} behavior='flip'\r\n * The behavior used to change the popper's placement. It can be one of\r\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\r\n * placements (with optional variations).\r\n */\r\n behavior: 'flip',\r\n /**\r\n * @prop {number} padding=5\r\n * The popper will flip if it hits the edges of the `boundariesElement`\r\n */\r\n padding: 5,\r\n /**\r\n * @prop {String|HTMLElement} boundariesElement='viewport'\r\n * The element which will define the boundaries of the popper position,\r\n * the popper will never be placed outside of the defined boundaries\r\n * (except if keepTogether is enabled)\r\n */\r\n boundariesElement: 'viewport'\r\n },\r\n\r\n /**\r\n * Modifier used to make the popper flow toward the inner of the reference element.\r\n * By default, when this modifier is disabled, the popper will be placed outside\r\n * the reference element.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n inner: {\r\n /** @prop {number} order=700 - Index used to define the order of execution */\r\n order: 700,\r\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\r\n enabled: false,\r\n /** @prop {ModifierFn} */\r\n fn: inner\r\n },\r\n\r\n /**\r\n * Modifier used to hide the popper when its reference element is outside of the\r\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\r\n * be used to hide with a CSS selector the popper when its reference is\r\n * out of boundaries.\r\n *\r\n * Requires the `preventOverflow` modifier before it in order to work.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n hide: {\r\n /** @prop {number} order=800 - Index used to define the order of execution */\r\n order: 800,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: hide\r\n },\r\n\r\n /**\r\n * Computes the style that will be applied to the popper element to gets\r\n * properly positioned.\r\n *\r\n * Note that this modifier will not touch the DOM, it just prepares the styles\r\n * so that `applyStyle` modifier can apply it. This separation is useful\r\n * in case you need to replace `applyStyle` with a custom implementation.\r\n *\r\n * This modifier has `850` as `order` value to maintain backward compatibility\r\n * with previous versions of Popper.js. Expect the modifiers ordering method\r\n * to change in future major versions of the library.\r\n *\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n computeStyle: {\r\n /** @prop {number} order=850 - Index used to define the order of execution */\r\n order: 850,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: computeStyle,\r\n /**\r\n * @prop {Boolean} gpuAcceleration=true\r\n * If true, it uses the CSS 3d transformation to position the popper.\r\n * Otherwise, it will use the `top` and `left` properties.\r\n */\r\n gpuAcceleration: true,\r\n /**\r\n * @prop {string} [x='bottom']\r\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\r\n * Change this if your popper should grow in a direction different from `bottom`\r\n */\r\n x: 'bottom',\r\n /**\r\n * @prop {string} [x='left']\r\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\r\n * Change this if your popper should grow in a direction different from `right`\r\n */\r\n y: 'right'\r\n },\r\n\r\n /**\r\n * Applies the computed styles to the popper element.\r\n *\r\n * All the DOM manipulations are limited to this modifier. This is useful in case\r\n * you want to integrate Popper.js inside a framework or view library and you\r\n * want to delegate all the DOM manipulations to it.\r\n *\r\n * Note that if you disable this modifier, you must make sure the popper element\r\n * has its position set to `absolute` before Popper.js can do its work!\r\n *\r\n * Just disable this modifier and define you own to achieve the desired effect.\r\n *\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n applyStyle: {\r\n /** @prop {number} order=900 - Index used to define the order of execution */\r\n order: 900,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: applyStyle,\r\n /** @prop {Function} */\r\n onLoad: applyStyleOnLoad,\r\n /**\r\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\r\n * @prop {Boolean} gpuAcceleration=true\r\n * If true, it uses the CSS 3d transformation to position the popper.\r\n * Otherwise, it will use the `top` and `left` properties.\r\n */\r\n gpuAcceleration: undefined\r\n }\r\n};\r\n\r\n/**\r\n * The `dataObject` is an object containing all the informations used by Popper.js\r\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\r\n * @name dataObject\r\n * @property {Object} data.instance The Popper.js instance\r\n * @property {String} data.placement Placement applied to popper\r\n * @property {String} data.originalPlacement Placement originally defined on init\r\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\r\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\r\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\r\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\r\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\r\n * @property {Object} data.boundaries Offsets of the popper boundaries\r\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\r\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\r\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\r\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\r\n */\r\n\r\n/**\r\n * Default options provided to Popper.js constructor.
\r\n * These can be overriden using the `options` argument of Popper.js.
\r\n * To override an option, simply pass as 3rd argument an object with the same\r\n * structure of this object, example:\r\n * ```\r\n * new Popper(ref, pop, {\r\n * modifiers: {\r\n * preventOverflow: { enabled: false }\r\n * }\r\n * })\r\n * ```\r\n * @type {Object}\r\n * @static\r\n * @memberof Popper\r\n */\r\nvar Defaults = {\r\n /**\r\n * Popper's placement\r\n * @prop {Popper.placements} placement='bottom'\r\n */\r\n placement: 'bottom',\r\n\r\n /**\r\n * Whether events (resize, scroll) are initially enabled\r\n * @prop {Boolean} eventsEnabled=true\r\n */\r\n eventsEnabled: true,\r\n\r\n /**\r\n * Set to true if you want to automatically remove the popper when\r\n * you call the `destroy` method.\r\n * @prop {Boolean} removeOnDestroy=false\r\n */\r\n removeOnDestroy: false,\r\n\r\n /**\r\n * Callback called when the popper is created.
\r\n * By default, is set to no-op.
\r\n * Access Popper.js instance with `data.instance`.\r\n * @prop {onCreate}\r\n */\r\n onCreate: function onCreate() {},\r\n\r\n /**\r\n * Callback called when the popper is updated, this callback is not called\r\n * on the initialization/creation of the popper, but only on subsequent\r\n * updates.
\r\n * By default, is set to no-op.
\r\n * Access Popper.js instance with `data.instance`.\r\n * @prop {onUpdate}\r\n */\r\n onUpdate: function onUpdate() {},\r\n\r\n /**\r\n * List of modifiers used to modify the offsets before they are applied to the popper.\r\n * They provide most of the functionalities of Popper.js\r\n * @prop {modifiers}\r\n */\r\n modifiers: modifiers\r\n};\r\n\r\n/**\r\n * @callback onCreate\r\n * @param {dataObject} data\r\n */\r\n\r\n/**\r\n * @callback onUpdate\r\n * @param {dataObject} data\r\n */\r\n\r\n// Utils\r\n// Methods\r\nvar Popper = function () {\r\n /**\r\n * Create a new Popper.js instance\r\n * @class Popper\r\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\r\n * @param {HTMLElement} popper - The HTML element used as popper.\r\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\r\n * @return {Object} instance - The generated Popper.js instance\r\n */\r\n function Popper(reference, popper) {\r\n var _this = this;\r\n\r\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\r\n classCallCheck(this, Popper);\r\n\r\n this.scheduleUpdate = function () {\r\n return requestAnimationFrame(_this.update);\r\n };\r\n\r\n // make update() debounced, so that it only runs at most once-per-tick\r\n this.update = debounce(this.update.bind(this));\r\n\r\n // with {} we create a new object with the options inside it\r\n this.options = _extends({}, Popper.Defaults, options);\r\n\r\n // init state\r\n this.state = {\r\n isDestroyed: false,\r\n isCreated: false,\r\n scrollParents: []\r\n };\r\n\r\n // get reference and popper elements (allow jQuery wrappers)\r\n this.reference = reference && reference.jquery ? reference[0] : reference;\r\n this.popper = popper && popper.jquery ? popper[0] : popper;\r\n\r\n // Deep merge modifiers options\r\n this.options.modifiers = {};\r\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\r\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\r\n });\r\n\r\n // Refactoring modifiers' list (Object => Array)\r\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\r\n return _extends({\r\n name: name\r\n }, _this.options.modifiers[name]);\r\n })\r\n // sort the modifiers by order\r\n .sort(function (a, b) {\r\n return a.order - b.order;\r\n });\r\n\r\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\r\n // such code is executed in the same order of its modifier\r\n // they could add new properties to their options configuration\r\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\r\n this.modifiers.forEach(function (modifierOptions) {\r\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\r\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\r\n }\r\n });\r\n\r\n // fire the first update to position the popper in the right place\r\n this.update();\r\n\r\n var eventsEnabled = this.options.eventsEnabled;\r\n if (eventsEnabled) {\r\n // setup event listeners, they will take care of update the position in specific situations\r\n this.enableEventListeners();\r\n }\r\n\r\n this.state.eventsEnabled = eventsEnabled;\r\n }\r\n\r\n // We can't use class properties because they don't get listed in the\r\n // class prototype and break stuff like Sinon stubs\r\n\r\n\r\n createClass(Popper, [{\r\n key: 'update',\r\n value: function update$$1() {\r\n return update.call(this);\r\n }\r\n }, {\r\n key: 'destroy',\r\n value: function destroy$$1() {\r\n return destroy.call(this);\r\n }\r\n }, {\r\n key: 'enableEventListeners',\r\n value: function enableEventListeners$$1() {\r\n return enableEventListeners.call(this);\r\n }\r\n }, {\r\n key: 'disableEventListeners',\r\n value: function disableEventListeners$$1() {\r\n return disableEventListeners.call(this);\r\n }\r\n\r\n /**\r\n * Schedule an update, it will run on the next UI update available\r\n * @method scheduleUpdate\r\n * @memberof Popper\r\n */\r\n\r\n\r\n /**\r\n * Collection of utilities useful when writing custom modifiers.\r\n * Starting from version 1.7, this method is available only if you\r\n * include `popper-utils.js` before `popper.js`.\r\n *\r\n * **DEPRECATION**: This way to access PopperUtils is deprecated\r\n * and will be removed in v2! Use the PopperUtils module directly instead.\r\n * Due to the high instability of the methods contained in Utils, we can't\r\n * guarantee them to follow semver. Use them at your own risk!\r\n * @static\r\n * @private\r\n * @type {Object}\r\n * @deprecated since version 1.8\r\n * @member Utils\r\n * @memberof Popper\r\n */\r\n\r\n }]);\r\n return Popper;\r\n}();\r\n\r\n/**\r\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\r\n * and lets you use it as replacement of a real DOM node.
\r\n * You can use this method to position a popper relatively to a set of coordinates\r\n * in case you don't have a DOM node to use as reference.\r\n *\r\n * ```\r\n * new Popper(referenceObject, popperNode);\r\n * ```\r\n *\r\n * NB: This feature isn't supported in Internet Explorer 10\r\n * @name referenceObject\r\n * @property {Function} data.getBoundingClientRect\r\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\r\n * @property {number} data.clientWidth\r\n * An ES6 getter that will return the width of the virtual reference element.\r\n * @property {number} data.clientHeight\r\n * An ES6 getter that will return the height of the virtual reference element.\r\n */\r\n\r\n\r\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\r\nPopper.placements = placements;\r\nPopper.Defaults = Defaults;\r\n\r\nreturn Popper;\r\n\r\n})));\r\n//# sourceMappingURL=popper.js.map","var e4 = e4 || {};\r\n( function () {\r\n 'use strict';\r\n e4.settings = {\r\n lang: ( function () {\r\n return jQuery( 'html' ).attr( 'lang' );\r\n }() ),\r\n separatorInteger: ( function () {\r\n return jQuery( 'html' ).data( 'separatorInteger' );\r\n }() ),\r\n separatorDecimal: ( function () {\r\n return jQuery( 'html' ).data( 'separatorDecimal' );\r\n }() ),\r\n animation: {\r\n speed: 375\r\n },\r\n header: {\r\n autoHideTolerance: {\r\n up: 500,\r\n down: 1000\r\n }\r\n },\r\n nav: {\r\n revealActive: {\r\n delay: 400,\r\n speed: 0.75,\r\n easing: 'swing'\r\n },\r\n flagCDN: 'https://cdn.jsdelivr.net/npm/flag-icon-css@2.8.0/flags/1x1/'\r\n },\r\n parallax: {\r\n speed: -0.35\r\n },\r\n scrollReveal: {\r\n selector: '.js-e-scroll-reveal',\r\n classConceal: 'e-reveal-conceal',\r\n classRevealFade: 'e-reveal-fade',\r\n classRevealSlide: 'e-reveal-slide',\r\n classRevealDone: 'e-reveal-done',\r\n classReset: 'reset-transform-containing-block'\r\n },\r\n scrollToAnchor: {\r\n speed: 0.5,\r\n nudge: 2,\r\n easing: 'swing',\r\n stickyElements: '.js-e-header.is-sticky, .js-e-nav-local-horizontal.is-sticky',\r\n fullscreenElements: '.e-section-height-fullscreen, .p-section-fullscreen, .p-banner-fullscreen',\r\n backToTop: {\r\n revealOffset: 3\r\n }\r\n },\r\n forms: {\r\n validate: {\r\n messages: {\r\n da: {}\r\n }\r\n }\r\n },\r\n search: {\r\n debounceDelay: 250,\r\n result: {\r\n pages: {\r\n show: true,\r\n url: '/system/data/pages?q='\r\n },\r\n products: {\r\n show: true,\r\n url: '/system/data/products?q=',\r\n showAllLink: '/shop/search?q=',\r\n max: {\r\n xs: 2,\r\n sm: 2,\r\n md: 4,\r\n lg: 4,\r\n xl: 4\r\n }\r\n }\r\n }\r\n },\r\n require: {\r\n timeout: 2000,\r\n jQueryValidate: {\r\n url: '//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js',\r\n fallback: '/files/system/espresso/design/_assets/js/vendor/jquery.validate.min.js',\r\n callback: null\r\n },\r\n handlebars: {\r\n url: '//cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.11/handlebars.min.js',\r\n fallback: '/files/system/espresso/design/_assets/js/vendor/handlebars.min.js',\r\n callback: null // Register helper and compile templates\r\n },\r\n MarkerClusterer: {\r\n url: '//cdnjs.cloudflare.com/ajax/libs/js-marker-clusterer/1.0.0/markerclusterer_compiled.js',\r\n fallback: '/files/system/espresso/design/_assets/js/vendor/markerclusterer_compiled.js',\r\n callback: null\r\n },\r\n jQueryUImap: {\r\n url: '//cdnjs.cloudflare.com/ajax/libs/jquery-ui-map/3.0-rc1/min/jquery.ui.map.min.js',\r\n fallback: '/files/system/espresso/design/_assets/js/vendor/jquery.ui.map.min.js',\r\n callback: null\r\n },\r\n typeahead: {\r\n url: '//cdnjs.cloudflare.com/ajax/libs/corejs-typeahead/1.1.1/typeahead.jquery.min.js',\r\n fallback: '/files/system/espresso/design/_assets/js/vendor/typeahead.jquery.min.js',\r\n callback: null\r\n },\r\n drawSVG: {\r\n url: 'https://cdn.jsdelivr.net/jquery.drawsvg/1.1.0/jquery.drawsvg.min.js',\r\n fallback: '/files/system/espresso/design/_assets/js/vendor/jquery.drawsvg.min.js',\r\n callback: null\r\n }\r\n },\r\n ecom: {\r\n filters: {\r\n url: '/system/data/facets',\r\n delay: 350,\r\n cleanUrl: false\r\n },\r\n cart: {\r\n url: '/system/data/cart',\r\n msgHideDelay: 10000,\r\n debounceDelay: 500\r\n },\r\n download: {\r\n url: '/system/data/cart-download'\r\n },\r\n quickorder: {\r\n url: '/system/data/products'\r\n },\r\n checkout: {\r\n url: '/system/data/checkout',\r\n delay: 500,\r\n multipageBreakpoint: 'lg',\r\n shipping: {\r\n searchCount: 8\r\n },\r\n termsAndConditions: '/shop/terms-and-conditions'\r\n },\r\n favoriteProducts:{\r\n url: '/system/data/favoriteproducts'\r\n }\r\n },\r\n breakpoint: {\r\n xs: 0,\r\n sm: 544,\r\n md: 768,\r\n lg: 922,\r\n xl: 1200\r\n },\r\n collapse: {\r\n peekSizeMin: 1.5\r\n },\r\n dealersearch: {\r\n geolocation: true,\r\n zoom: {\r\n min: 12,\r\n max: 15,\r\n initial: 6\r\n },\r\n results: {\r\n min: 2,\r\n sensitivity: 0.5\r\n },\r\n country: {\r\n DK: {\r\n center: {\r\n lat: 56.26392,\r\n lng: 9.501785\r\n },\r\n zoom: 7\r\n },\r\n NO: {\r\n center: {\r\n lat: 60.47202399999999,\r\n lng: 8.468945999999999\r\n },\r\n zoom: 6\r\n },\r\n SE: {\r\n center: {\r\n lat: 60.12816100000001,\r\n lng: 18.643501\r\n },\r\n zoom: 5\r\n },\r\n DE: {\r\n center: {\r\n lat: 51.165691,\r\n lng: 10.451526\r\n },\r\n zoom: 6\r\n },\r\n GB: {\r\n center: {\r\n lat: 55.378051,\r\n lng: -3.435973\r\n },\r\n zoom: 4\r\n }\r\n }\r\n },\r\n event: {\r\n namespace: 'e4',\r\n transitionend: ( function ( domElm ) {\r\n var objTestTransitionEnd = {\r\n 'transition': 'transitionend',\r\n 'OTransition': 'oTransitionEnd',\r\n 'MSTransition': 'MSTransitionEnd',\r\n 'WebkitTransition': 'webkitTransitionEnd'\r\n };\r\n for ( var name in objTestTransitionEnd ) {\r\n if ( domElm.style[ name ] !== undefined ) {\r\n return objTestTransitionEnd[ name ];\r\n }\r\n }\r\n return false;\r\n } )( document.createElement( 'espresso' ) ),\r\n animationend: ( function ( domElm ) {\r\n var objTestAnimationEnd = {\r\n 'animation': 'animationend',\r\n 'OAnimation': 'oAnimationEnd',\r\n 'MSAnimation': 'MSAnimationEnd',\r\n 'WebkitAnimation': 'webkitAnimationEnd'\r\n };\r\n for ( var name in objTestAnimationEnd ) {\r\n if ( domElm.style[ name ] !== undefined ) {\r\n return objTestAnimationEnd[ name ];\r\n }\r\n }\r\n return false;\r\n } )( document.createElement( 'espresso' ) )\r\n },\r\n cookieAcceptLink: '/admin/public/CookieOptInLevelConfig.aspx?cmd=SetCookieOptInLevel&OptInLevel=2'\r\n };\r\n}() );\r\n\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v4.0.0-beta.2): util.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\nvar Util = function () {\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Private TransitionEnd Helpers\r\n * ------------------------------------------------------------------------\r\n */\r\n var transition = false;\r\n var MAX_UID = 1000000;\r\n var TransitionEndEvent = {\r\n WebkitTransition: 'webkitTransitionEnd',\r\n MozTransition: 'transitionend',\r\n OTransition: 'oTransitionEnd otransitionend',\r\n transition: 'transitionend' // shoutout AngusCroll (https://goo.gl/pxwQGp)\r\n\r\n };\r\n\r\n function toType(obj) {\r\n return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase();\r\n }\r\n\r\n function getSpecialTransitionEndEvent() {\r\n return {\r\n bindType: transition.end,\r\n delegateType: transition.end,\r\n handle: function handle(event) {\r\n if ($(event.target).is(this)) {\r\n return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\r\n }\r\n\r\n return undefined; // eslint-disable-line no-undefined\r\n }\r\n };\r\n }\r\n\r\n function transitionEndTest() {\r\n if (window.QUnit) {\r\n return false;\r\n }\r\n\r\n var el = document.createElement('bootstrap');\r\n\r\n for (var name in TransitionEndEvent) {\r\n if (typeof el.style[name] !== 'undefined') {\r\n return {\r\n end: TransitionEndEvent[name]\r\n };\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function transitionEndEmulator(duration) {\r\n var _this = this;\r\n\r\n var called = false;\r\n $(this).one(Util.TRANSITION_END, function () {\r\n called = true;\r\n });\r\n setTimeout(function () {\r\n if (!called) {\r\n Util.triggerTransitionEnd(_this);\r\n }\r\n }, duration);\r\n return this;\r\n }\r\n\r\n function setTransitionEndSupport() {\r\n transition = transitionEndTest();\r\n $.fn.emulateTransitionEnd = transitionEndEmulator;\r\n\r\n if (Util.supportsTransitionEnd()) {\r\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\r\n }\r\n }\r\n /**\r\n * --------------------------------------------------------------------------\r\n * Public Util Api\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n\r\n var Util = {\r\n TRANSITION_END: 'bsTransitionEnd',\r\n getUID: function getUID(prefix) {\r\n do {\r\n // eslint-disable-next-line no-bitwise\r\n prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\r\n } while (document.getElementById(prefix));\r\n\r\n return prefix;\r\n },\r\n getSelectorFromElement: function getSelectorFromElement(element) {\r\n var selector = element.getAttribute('data-target');\r\n\r\n if (!selector || selector === '#') {\r\n selector = element.getAttribute('href') || '';\r\n }\r\n\r\n try {\r\n var $selector = $(document).find(selector);\r\n return $selector.length > 0 ? selector : null;\r\n } catch (error) {\r\n return null;\r\n }\r\n },\r\n reflow: function reflow(element) {\r\n return element.offsetHeight;\r\n },\r\n triggerTransitionEnd: function triggerTransitionEnd(element) {\r\n $(element).trigger(transition.end);\r\n },\r\n supportsTransitionEnd: function supportsTransitionEnd() {\r\n return Boolean(transition);\r\n },\r\n isElement: function isElement(obj) {\r\n return (obj[0] || obj).nodeType;\r\n },\r\n typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\r\n for (var property in configTypes) {\r\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\r\n var expectedTypes = configTypes[property];\r\n var value = config[property];\r\n var valueType = value && Util.isElement(value) ? 'element' : toType(value);\r\n\r\n if (!new RegExp(expectedTypes).test(valueType)) {\r\n throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\r\n }\r\n }\r\n }\r\n }\r\n };\r\n setTransitionEndSupport();\r\n return Util;\r\n}($);\r\n//# sourceMappingURL=util.js.map","e4.util = {\r\n init: function () {\r\n e4.util.catchInternalBackLinks();\r\n e4.util.catchBlockLinks();\r\n },\r\n isInViewport: function ( jElement ) {\r\n var domElm = jElement.get( 0 ),\r\n bounds = domElm.getBoundingClientRect();\r\n return bounds.top < window.innerHeight && bounds.bottom > 0;\r\n },\r\n getUrlParameter: function getUrlParameter ( strParam ) {\r\n var strPageURL = e4.data.urlParams.substring( 1 ),\r\n arrURLVariables = strPageURL.split( '&' ),\r\n arrParameterName,\r\n i;\r\n for ( i = 0; i < arrURLVariables.length; i++ ) {\r\n arrParameterName = arrURLVariables[ i ].split( '=' );\r\n if ( arrParameterName[ 0 ] === strParam ) {\r\n return arrParameterName[ 1 ] === undefined ? true : decodeURIComponent( arrParameterName[ 1 ] );\r\n }\r\n }\r\n },\r\n formatStringToJavascriptNumber: function ( strNumber ) {\r\n return parseFloat( String( strNumber ).replace( new RegExp( '\\\\' + e4.settings.separatorInteger, 'g' ), '' ).replace( new RegExp( '\\\\' + e4.settings.separatorDecimal, 'g' ), '.' ) );\r\n },\r\n formatJavascriptNumberToLocaleString: function ( intNumber ) {\r\n var strNumber = String( parseFloat( Math.round( intNumber * 100 ) / 100 ).toFixed( 2 ) ).replace( /[^\\d\\.\\-]/g, '' ).replace( /(\\.\\d{2})[\\W\\w]+/g, '$1' ).split( '' ).reverse().join( '' ).replace( /(\\d{3})/g, '$1.' ).split( '' ).reverse().join( '' ).replace( /^([\\-]{0,1})\\./, '$1' ).replace( /\\.(\\d\\d)$/, ',' + '$1' ).replace( /\\.(\\d)$/, ',' + '$1' + '0' ).replace( /\\.$/, ',00' );\r\n if ( e4.settings.lang !== 'da' ) {\r\n strNumber = strNumber.replace( /\\./g, '{integer}' );\r\n strNumber = strNumber.replace( /\\,/g, '{decimal}' );\r\n strNumber = strNumber.replace( /{integer}/g, e4.settings.separatorInteger );\r\n strNumber = strNumber.replace( /{decimal}/g, e4.settings.separatorDecimal );\r\n }\r\n return strNumber;\r\n },\r\n require: {\r\n ajax: function ( strURL ) {\r\n if ( strURL !== undefined && strURL !== null && strURL !== '' ) {\r\n return jQuery.ajax( {\r\n url: strURL,\r\n cache: true,\r\n timeout: e4.settings.require.timeout,\r\n dataType: 'script'\r\n } );\r\n }\r\n else {\r\n return jQuery.Deferred().reject();\r\n }\r\n },\r\n js: function ( script, fnCallback, arrCallbackArgs ) {\r\n var strScriptName = script.url.split( '/' ).reverse()[ 0 ];\r\n // console.log( 'LOADING:', strScriptName );\r\n if ( script.promise !== undefined ) {// console.log( 'state', script.promise.state() );\r\n }\r\n if ( script.promise === undefined || script.promise.state() === 'rejected' ) {\r\n script.promise = jQuery.when( e4.util.require.ajax( script.url ) ).then( function () {\r\n //TODO: remember to replace this function with null to resolve/reject chain then's with the\r\n // same values as the original console.log( 'Success - FIRST', strScriptName );\r\n }, function () {\r\n // console.log( 'Failure - FIRST', strScriptName );\r\n return e4.util.require.ajax( script.fallback );\r\n } ).then( function () {\r\n // console.log( 'Success - SECOND', strScriptName );\r\n if ( typeof script.callback === 'function' ) {\r\n script.callback.apply( script );\r\n // console.log( 'callback for GLOBAL', strScriptName );\r\n }\r\n }, function () {\r\n //TODO: remember to replace this function with null to resolve/reject chain then's with the\r\n // same values as the original console.log( 'Failure - SECOND', strScriptName ); console.warn(\r\n // 'Failed to load script: ', strScriptName );\r\n } );\r\n }\r\n if ( typeof fnCallback === 'function' ) {\r\n script.promise.done( function () {\r\n // console.log( 'callback for LOCAL', strScriptName );\r\n fnCallback.apply( window, arrCallbackArgs );\r\n } );\r\n }\r\n return script.promise;\r\n },\r\n polyfills: function ( strFeatures, fnCallback ) {\r\n var objScript = {\r\n url: '//polyfill.io/v3/polyfill.min.js?features=' + strFeatures.split( ' ' ).join( ',' ) + '&flags=gated',\r\n callback: fnCallback\r\n };\r\n e4.util.require.js( objScript );\r\n }\r\n },\r\n registerEvents: function ( arrEvents, strNamespaceLocal ) {\r\n var objEvents = {},\r\n strNamespace = [\r\n e4.settings.event.namespace,\r\n strNamespaceLocal\r\n ].join( '.' );\r\n jQuery.each( arrEvents.split( ' ' ), function ( index, element ) {\r\n objEvents[ element ] = [\r\n element,\r\n strNamespace\r\n ].join( '.' );\r\n } );\r\n return objEvents;\r\n },\r\n debounce: function ( fnFunction, intDelay ) {\r\n var intDeferTimer = null;\r\n return function () {\r\n var thisArg = this,\r\n arrArgs = arguments;\r\n clearTimeout( intDeferTimer );\r\n intDeferTimer = setTimeout( function () {\r\n fnFunction.apply( thisArg, arrArgs );\r\n }, intDelay );\r\n };\r\n },\r\n catchInternalBackLinks: function () {\r\n jQuery( document ).on( 'click', '.js-e-back-link', function ( event ) {\r\n if ( document.referrer.indexOf( location.protocol + '//' + location.host ) === 0 && history.length !== 1 ) {\r\n event.preventDefault();\r\n history.back();\r\n }\r\n } );\r\n },\r\n catchBlockLinks: function () {\r\n jQuery( document ).on( 'click', '.js-e-block-link', function ( event ) {\r\n var jBlockLink = jQuery( this ).find( 'a[href]' ).first();\r\n if ( jBlockLink.length === 1 && jQuery( event.target ).closest( 'a[href], form' ).length === 0 ) {\r\n if ( jBlockLink.attr( 'target' ) === '_blank' ) {\r\n window.open( jBlockLink.attr( 'href' ) );\r\n }\r\n else {\r\n location.href = jBlockLink.attr( 'href' );\r\n }\r\n }\r\n } );\r\n },\r\n getBreakPoint: function () {\r\n var intWindowWidth = Math.max( jQuery( window ).width(), window.innerWidth );\r\n if ( intWindowWidth >= e4.settings.breakpoint.xs && intWindowWidth < e4.settings.breakpoint.sm ) {\r\n return 'xs';\r\n }\r\n else if ( intWindowWidth >= e4.settings.breakpoint.sm && intWindowWidth < e4.settings.breakpoint.md ) {\r\n return 'sm';\r\n }\r\n else if ( intWindowWidth >= e4.settings.breakpoint.md && intWindowWidth < e4.settings.breakpoint.lg ) {\r\n return 'md';\r\n }\r\n else if ( intWindowWidth >= e4.settings.breakpoint.lg && intWindowWidth < e4.settings.breakpoint.xl ) {\r\n return 'lg';\r\n }\r\n else if ( intWindowWidth >= e4.settings.breakpoint.xl ) {\r\n return 'xl';\r\n }\r\n return null;\r\n },\r\n hash: {\r\n get: function ( key ) {\r\n var returnValue,\r\n arrHashes = [];\r\n if ( location.hash.indexOf( '#/' ) === 0 && location.hash.lastIndexOf( '/' ) === location.hash.length - 1 ) {\r\n arrHashes = location.hash.substring( 2, location.hash.length - 1 ).split( '&' );\r\n }\r\n if ( key === undefined ) {\r\n returnValue = {};\r\n }\r\n else {\r\n key = e4.util.hash.decode.key( e4.util.hash.encode.key( key ) );\r\n }\r\n for ( var i = 0; i < arrHashes.length; i++ ) {\r\n try {\r\n var arrHashKeyValue = arrHashes[ i ].split( '=' ),\r\n hashKey = e4.util.hash.decode.key( arrHashKeyValue[ 0 ] ),\r\n hashValue = e4.util.hash.decode.value( arrHashKeyValue.slice( 1 ).join( '=' ) );\r\n if ( key === hashKey ) {\r\n returnValue = hashValue;\r\n break;\r\n }\r\n else if ( key === undefined ) {\r\n returnValue[ hashKey ] = hashValue;\r\n }\r\n }\r\n catch ( e ) {\r\n }\r\n }\r\n return returnValue;\r\n },\r\n set: function ( key, value ) {\r\n var arrHashes = e4.util.hash.buildNewHashArray( key, value ),\r\n strHash = e4.util.hash.buildNewHashString( arrHashes );\r\n //console.log( location.hash, e4.util.hash.getCurrentHashStringValue(), strHash, arrHashes );\r\n if ( e4.util.hash.getCurrentHashStringValue() !== strHash ) {\r\n location.hash = strHash;\r\n //console.log( 'hash changed - set' );\r\n }\r\n },\r\n replace: function ( key, value ) {\r\n var arrHashes = e4.util.hash.buildNewHashArray( key, value ),\r\n strHashNew = e4.util.hash.buildNewHashString( arrHashes ),\r\n strHashCurrent = e4.util.hash.getCurrentHashStringValue(),\r\n strURL = location.href;\r\n //console.log( location.hash, e4.util.hash.getCurrentHashStringValue(), strHashNew, arrHashes );\r\n if ( strHashCurrent !== strHashNew ) {\r\n if ( location.href.indexOf( '#' ) === -1 ) {\r\n strURL = strURL + '#' + strHashNew;\r\n }\r\n else {\r\n strURL = strURL.replace( '#' + strHashCurrent, '#' + strHashNew );\r\n }\r\n window.history.replaceState( null, '', strURL );\r\n jQuery( window ).triggerHandler( 'hashchange' );\r\n //console.log( 'hash changed - replace' );\r\n }\r\n },\r\n remove: function ( key ) {\r\n e4.util.hash.set( key, null );\r\n },\r\n buildNewHashArray: function ( key, value ) {\r\n var arrHashes = [],\r\n hashKeyExists = false;\r\n key = e4.util.hash.encode.key( key );\r\n jQuery.each( e4.util.hash.get(), function ( hashKey, hashValue ) {\r\n hashKey = e4.util.hash.encode.key( hashKey );\r\n hashValue = e4.util.hash.encode.value( hashValue );\r\n if ( hashKey === key ) {\r\n hashKeyExists = true;\r\n if ( value !== null ) {\r\n hashValue = e4.util.hash.encode.value( value );\r\n arrHashes.push( hashKey + '=' + hashValue );\r\n }\r\n }\r\n else {\r\n arrHashes.push( hashKey + '=' + hashValue );\r\n }\r\n } );\r\n if ( hashKeyExists === false && value !== null ) {\r\n arrHashes.push( key + '=' + e4.util.hash.encode.value( value ) );\r\n }\r\n return arrHashes;\r\n },\r\n buildNewHashString: function ( arrHashes ) {\r\n var strHash = '';\r\n if ( arrHashes.length !== 0 ) {\r\n strHash = '/' + arrHashes.join( '&' ) + '/';\r\n }\r\n return strHash;\r\n },\r\n getCurrentHashStringValue: function () {\r\n return location.hash.replace( /^#/, '' );\r\n },\r\n encode: {\r\n key: function ( key ) {\r\n return encodeURIComponent( String( key ).replace( /\\s/g, '_' ) );\r\n },\r\n value: function ( value ) {\r\n if ( String( value ).charAt( 0 ) === '{' || typeof value === 'object' ) {\r\n try {\r\n value = JSON.stringify( value );\r\n }\r\n catch ( e ) {\r\n }\r\n }\r\n return value === undefined ? '' : encodeURIComponent( value );\r\n }\r\n },\r\n decode: {\r\n key: function ( key ) {\r\n return decodeURIComponent( key );\r\n },\r\n value: function ( value ) {\r\n value = decodeURIComponent( value );\r\n if ( value.charAt( 0 ) === '{' ) {\r\n try {\r\n value = JSON.parse( value );\r\n }\r\n catch ( e ) {\r\n }\r\n }\r\n return value;\r\n }\r\n }\r\n },\r\n observer: {\r\n _instances: [],\r\n options: {\r\n root: null,\r\n rootMargin: '0px',\r\n threshold: 0\r\n },\r\n bind: function ( arrTargets, fnCallback, objOptions ) {\r\n if ( 'IntersectionObserver' in window === false ) {\r\n e4.util.require.polyfills( 'IntersectionObserver IntersectionObserverEntry', e4.util.observer.observe( arrTargets, fnCallback, objOptions ) );\r\n }\r\n else {\r\n e4.util.observer.observe( arrTargets, fnCallback, objOptions );\r\n }\r\n },\r\n observe: function ( arrTargets, fnCallback, objOptions ) {\r\n var instance = {};\r\n instance.id = '_instance' + Math.random().toString( 36 ).substr( 2, 9 );\r\n instance.options = objOptions !== undefined ? objOptions : e4.util.observer.options;\r\n arrTargets.forEach( function ( target ) {\r\n instance.observer = new IntersectionObserver( function ( entries, observer ) {\r\n entries.forEach( function ( entry ) {\r\n if ( typeof fnCallback === 'function' ) {\r\n fnCallback( entry, observer );\r\n }\r\n else {\r\n console.warn( 'No callback function defined' );\r\n }\r\n } );\r\n }, instance.options );\r\n instance.observer.observe( target );\r\n } );\r\n e4.util.observer._instances.push( instance );\r\n }\r\n }\r\n};\r\n","e4.handlebars = {\r\n tmpl: {},\r\n registerTemplates: function ( strTemplates ) {\r\n var arrTemplates = strTemplates.split( ' ' );\r\n for ( var i = 0; i < arrTemplates.length; i++ ) {\r\n if ( jQuery( arrTemplates[ i ] ).length === 1 ) {\r\n var tmplName = arrTemplates[ i ].replace( '#js-e-handlebars-tmpl-', '' ).replace( /-([a-z])/g, function ( strFirstLetter ) {\r\n return strFirstLetter[ 1 ].toUpperCase();\r\n } );\r\n e4.handlebars.tmpl[ tmplName ] = Handlebars.compile( jQuery( arrTemplates[ i ] ).html() );\r\n }\r\n }\r\n },\r\n partial: {},\r\n registerPartials: function ( strPartials ) {\r\n var arrPartials = strPartials.split( ' ' );\r\n for ( var i = 0; i < arrPartials.length; i++ ) {\r\n if ( jQuery( arrPartials[ i ] ).length === 1 ) {\r\n var partialName = arrPartials[ i ].replace( '#js-e-handlebars-partial-', '' ).replace( /-([a-z])/g, function ( strFirstLetter ) {\r\n return strFirstLetter[ 1 ].toUpperCase();\r\n } );\r\n Handlebars.registerPartial( partialName, jQuery( arrPartials[ i ] ).html() );\r\n e4.handlebars.partial[ partialName ] = Handlebars.compile( jQuery( arrPartials[ i ] ).html() );\r\n }\r\n }\r\n },\r\n registerHelpers: function ( strHelpers ) {\r\n var arrHelpers = strHelpers.split( ' ' );\r\n for ( var i = 0; i < arrHelpers.length; i++ ) {\r\n if ( window.Handlebars.helpers[ arrHelpers[ i ] ] === undefined ) {\r\n e4.handlebars.helpers[ arrHelpers[ i ] ]();\r\n }\r\n }\r\n },\r\n helpers: {\r\n testValue: function ( v1, operator, v2 ) {\r\n switch ( operator ) {\r\n case '===':\r\n return ( v1 === v2 );\r\n case '!==':\r\n return ( v1 !== v2 );\r\n case '<':\r\n return ( v1 < v2 );\r\n case '<=':\r\n return ( v1 <= v2 );\r\n case '>':\r\n return ( v1 > v2 );\r\n case '>=':\r\n return ( v1 >= v2 );\r\n case '&&':\r\n return ( v1 && v2 );\r\n case '||':\r\n return ( v1 || v2 );\r\n case '!!':\r\n return ( !v1 && !v2 );\r\n case '!|':\r\n return ( !v1 && v2 );\r\n case '|!':\r\n return ( v1 && !v2 );\r\n case '%':\r\n return ( v1 % v2 === 0 );\r\n default:\r\n return false;\r\n }\r\n },\r\n compare_extended: function () {\r\n Handlebars.registerHelper( 'compare_extended', function ( v1, operator, v2, options ) {\r\n if ( v2.indexOf( ',' ) > -1 ) {\r\n // v2 is array - extend compare-function\r\n var v2Arr = v2.split( ',' ),\r\n v2ReturnArr = [];\r\n // iterate v2-array and test each value, adding the returned boolean to a temp array\r\n for ( var i = 0; i < v2Arr.length; i++ ) {\r\n v2ReturnArr.push( e4.handlebars.helpers.testValue( v1, operator, v2Arr[ i ] ) );\r\n }\r\n // test temp array values, returning true if all values are the same, eg. [true,true] or\r\n // [false,false]\r\n return v2ReturnArr.every( function ( val ) {\r\n return val;\r\n } ) === true ? options.fn( this ) : options.inverse( this );\r\n }\r\n else {\r\n // v2 is string - standard compare function\r\n return e4.handlebars.helpers.testValue( v1, operator, v2 ) ? options.fn( this ) : options.inverse( this );\r\n }\r\n } );\r\n },\r\n compare: function () {\r\n Handlebars.registerHelper( 'compare', function ( v1, operator, v2, options ) {\r\n switch ( operator ) {\r\n case '===':\r\n return ( v1 === v2 ) ? options.fn( this ) : options.inverse( this );\r\n case '!==':\r\n return ( v1 !== v2 ) ? options.fn( this ) : options.inverse( this );\r\n case '<':\r\n return ( v1 < v2 ) ? options.fn( this ) : options.inverse( this );\r\n case '<=':\r\n return ( v1 <= v2 ) ? options.fn( this ) : options.inverse( this );\r\n case '>':\r\n return ( v1 > v2 ) ? options.fn( this ) : options.inverse( this );\r\n case '>=':\r\n return ( v1 >= v2 ) ? options.fn( this ) : options.inverse( this );\r\n case '&&':\r\n return ( v1 && v2 ) ? options.fn( this ) : options.inverse( this );\r\n case '||':\r\n return ( v1 || v2 ) ? options.fn( this ) : options.inverse( this );\r\n case '!!':\r\n return ( !v1 && !v2 ) ? options.fn( this ) : options.inverse( this );\r\n case '!|':\r\n return ( !v1 && v2 ) ? options.fn( this ) : options.inverse( this );\r\n case '|!':\r\n return ( v1 && !v2 ) ? options.fn( this ) : options.inverse( this );\r\n case '%':\r\n return ( v1 % v2 === 0 ) ? options.fn( this ) : options.inverse( this );\r\n default:\r\n return options.inverse( this );\r\n }\r\n } );\r\n },\r\n counter: function () {\r\n Handlebars.registerHelper( 'counter', function ( index ) {\r\n return index + 1;\r\n } );\r\n },\r\n loop: function () {\r\n Handlebars.registerHelper( 'loop', function ( items, options ) {\r\n var out = '';\r\n for ( var i = 0, l = items.length; i < l; i++ ) {\r\n out = out + options.fn( items[ i ] );\r\n }\r\n return out;\r\n } );\r\n },\r\n encoder: function () {\r\n Handlebars.registerHelper( 'encoder', function ( str ) {\r\n return encodeURIComponent( str );\r\n } );\r\n },\r\n json: function () {\r\n Handlebars.registerHelper( 'json', function ( context ) {\r\n return JSON.stringify( context );\r\n } );\r\n },\r\n compareLength: function () {\r\n Handlebars.registerHelper( 'compareLength', function ( arr, operator, v2, options ) {\r\n var v1 = arr.length;\r\n return e4.handlebars.helpers.testValue( v1, operator, v2 ) ? options.fn( this ) : options.inverse( this );\r\n } );\r\n },\r\n hasCategories: function () {\r\n Handlebars.registerHelper( 'hasCategories', function ( categories, options ) {\r\n var hasCategories = false;\r\n Object.keys( categories ).filter( function ( key ) {\r\n var hasCategory = categories[ key ].parts.filter( function ( part ) {\r\n return part.isDefault === true;\r\n } ).length === 0;\r\n if ( hasCategory ) {\r\n hasCategories = true;\r\n }\r\n } );\r\n return hasCategories ? options.fn( this ) : options.inverse( this );\r\n } );\r\n },\r\n isNotDefaultPartInCategory: function () {\r\n Handlebars.registerHelper( 'isNotDefaultPartInCategory', function ( category, options ) {\r\n var shouldShowCategoty = category.parts.filter( function ( part ) {\r\n return part.isDefault === true;\r\n } ).length === 0;\r\n return shouldShowCategoty ? options.fn( this ) : options.inverse( this );\r\n } );\r\n },\r\n grouped_each: function () {\r\n Handlebars.registerHelper( 'grouped_each', function ( every, context, options ) {\r\n var out = '',\r\n subcontext = [],\r\n i;\r\n if ( context && context.length > 0 ) {\r\n for ( i = 0; i < context.length; i++ ) {\r\n if ( i > 0 && i % every === 0 ) {\r\n out += options.fn( subcontext );\r\n subcontext = [];\r\n }\r\n subcontext.push( context[ i ] );\r\n }\r\n out += options.fn( subcontext );\r\n }\r\n return out;\r\n } );\r\n },\r\n getCustomOsLanguagePartName: function () {\r\n Handlebars.registerHelper( 'getCustomOsLanguagePartName', function () {\r\n return jQuery( '.js-dcc-configurator-overview-custom-os-language' ).val();\r\n } );\r\n },\r\n filterConfigurationParts: function () {\r\n Handlebars.registerHelper( 'filterConfigurationParts', function ( part, key, options ) {\r\n if ( !part || part.length === 0 ) {\r\n return options.inverse( this );\r\n }\r\n if ( key === 'oslanguage' ) {\r\n if ( part.number === part.osLang ) {\r\n return options.inverse( this );\r\n }\r\n }\r\n return options.fn( this );\r\n } );\r\n },\r\n filterKeyboardLanguages: function () {\r\n Handlebars.registerHelper( 'filterKeyboardLanguages', function ( languagesArr, options ) {\r\n if ( !languagesArr || languagesArr.length === 0 ) {\r\n return options.inverse( this );\r\n }\r\n var uniqueLanguageArr = [],\r\n result = [];\r\n languagesArr = languagesArr.sort( function ( a, b ) {\r\n if ( a.isDefault === b.isDefault ) {\r\n var langA = a.keyboardLang.toUpperCase(),\r\n langB = b.keyboardLang.toUpperCase();\r\n return ( langA < langB ) ? -1 : ( langA > langB ) ? 1 : 0;\r\n }\r\n return b.isDefault - a.isDefault;\r\n } );\r\n for ( var i = 0; i < languagesArr.length; ++i ) {\r\n var languageObj = languagesArr[ i ],\r\n uniqueIndex = uniqueLanguageArr.indexOf( languageObj.keyboardLang );\r\n if ( uniqueIndex === -1 ) {\r\n if ( languageObj.keyboardLang !== '' ) {\r\n uniqueLanguageArr.push( languageObj.keyboardLang );\r\n result.push( options.fn( languageObj ) );\r\n }\r\n }\r\n else if ( languageObj.isDefault === true ) {\r\n uniqueLanguageArr[ uniqueIndex ] = languageObj;\r\n result[ uniqueIndex ] = options.fn( languageObj );\r\n }\r\n }\r\n return result;\r\n } );\r\n },\r\n getKeyboardDiffPrice: function () {\r\n Handlebars.registerHelper( 'getKeyboardDiffPrice', function ( languagesArr ) {\r\n var result = 0;\r\n for ( var i = 0; i < languagesArr.length; ++i ) {\r\n var languageObj = languagesArr[ i ];\r\n if ( languageObj.price > 0 && languageObj.isDefault === false ) {\r\n result = languageObj.price;\r\n break;\r\n }\r\n }\r\n return e4.util.formatJavascriptNumberToLocaleString( result );\r\n } );\r\n }\r\n }\r\n};\r\n\r\n","e4.bootstrap = {\r\n};\r\n\r\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\r\n\r\n/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v4.0.0-beta.2): carousel.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\nvar Carousel = function () {\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n var NAME = 'carousel';\r\n var VERSION = '4.0.0-beta.2';\r\n var DATA_KEY = 'bs.carousel';\r\n var EVENT_KEY = \".\" + DATA_KEY;\r\n var DATA_API_KEY = '.data-api';\r\n var JQUERY_NO_CONFLICT = $.fn[NAME];\r\n var TRANSITION_DURATION = 600;\r\n var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\r\n\r\n var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\r\n\r\n var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\r\n\r\n var Default = {\r\n interval: 5000,\r\n keyboard: true,\r\n slide: false,\r\n pause: 'hover',\r\n wrap: true\r\n };\r\n var DefaultType = {\r\n interval: '(number|boolean)',\r\n keyboard: 'boolean',\r\n slide: '(boolean|string)',\r\n pause: '(string|boolean)',\r\n wrap: 'boolean'\r\n };\r\n var Direction = {\r\n NEXT: 'next',\r\n PREV: 'prev',\r\n LEFT: 'left',\r\n RIGHT: 'right'\r\n };\r\n var Event = {\r\n SLIDE: \"slide\" + EVENT_KEY,\r\n SLID: \"slid\" + EVENT_KEY,\r\n KEYDOWN: \"keydown\" + EVENT_KEY,\r\n MOUSEENTER: \"mouseenter\" + EVENT_KEY,\r\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY,\r\n TOUCHEND: \"touchend\" + EVENT_KEY,\r\n LOAD_DATA_API: \"load\" + EVENT_KEY + DATA_API_KEY,\r\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\r\n };\r\n var ClassName = {\r\n CAROUSEL: 'carousel',\r\n ACTIVE: 'active',\r\n SLIDE: 'slide',\r\n RIGHT: 'carousel-item-right',\r\n LEFT: 'carousel-item-left',\r\n NEXT: 'carousel-item-next',\r\n PREV: 'carousel-item-prev',\r\n ITEM: 'carousel-item'\r\n };\r\n var Selector = {\r\n ACTIVE: '.active',\r\n ACTIVE_ITEM: '.active.carousel-item',\r\n ITEM: '.carousel-item',\r\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\r\n INDICATORS: '.carousel-indicators',\r\n DATA_SLIDE: '[data-slide], [data-slide-to]',\r\n DATA_RIDE: '[data-ride=\"carousel\"]'\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n };\r\n\r\n var Carousel =\r\n /*#__PURE__*/\r\n function () {\r\n function Carousel(element, config) {\r\n this._items = null;\r\n this._interval = null;\r\n this._activeElement = null;\r\n this._isPaused = false;\r\n this._isSliding = false;\r\n this.touchTimeout = null;\r\n this._config = this._getConfig(config);\r\n this._element = $(element)[0];\r\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];\r\n\r\n this._addEventListeners();\r\n } // getters\r\n\r\n\r\n var _proto = Carousel.prototype;\r\n\r\n // public\r\n _proto.next = function next() {\r\n if (!this._isSliding) {\r\n this._slide(Direction.NEXT);\r\n }\r\n };\r\n\r\n _proto.nextWhenVisible = function nextWhenVisible() {\r\n // Don't call next when the page isn't visible\r\n // or the carousel or its parent isn't visible\r\n if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {\r\n this.next();\r\n }\r\n };\r\n\r\n _proto.prev = function prev() {\r\n if (!this._isSliding) {\r\n this._slide(Direction.PREV);\r\n }\r\n };\r\n\r\n _proto.pause = function pause(event) {\r\n if (!event) {\r\n this._isPaused = true;\r\n }\r\n\r\n if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {\r\n Util.triggerTransitionEnd(this._element);\r\n this.cycle(true);\r\n }\r\n\r\n clearInterval(this._interval);\r\n this._interval = null;\r\n };\r\n\r\n _proto.cycle = function cycle(event) {\r\n if (!event) {\r\n this._isPaused = false;\r\n }\r\n\r\n if (this._interval) {\r\n clearInterval(this._interval);\r\n this._interval = null;\r\n }\r\n\r\n if (this._config.interval && !this._isPaused) {\r\n this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\r\n }\r\n };\r\n\r\n _proto.to = function to(index) {\r\n var _this = this;\r\n\r\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];\r\n\r\n var activeIndex = this._getItemIndex(this._activeElement);\r\n\r\n if (index > this._items.length - 1 || index < 0) {\r\n return;\r\n }\r\n\r\n if (this._isSliding) {\r\n $(this._element).one(Event.SLID, function () {\r\n return _this.to(index);\r\n });\r\n return;\r\n }\r\n\r\n if (activeIndex === index) {\r\n this.pause();\r\n this.cycle();\r\n return;\r\n }\r\n\r\n var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;\r\n\r\n this._slide(direction, this._items[index]);\r\n };\r\n\r\n _proto.dispose = function dispose() {\r\n $(this._element).off(EVENT_KEY);\r\n $.removeData(this._element, DATA_KEY);\r\n this._items = null;\r\n this._config = null;\r\n this._element = null;\r\n this._interval = null;\r\n this._isPaused = null;\r\n this._isSliding = null;\r\n this._activeElement = null;\r\n this._indicatorsElement = null;\r\n }; // private\r\n\r\n\r\n _proto._getConfig = function _getConfig(config) {\r\n config = $.extend({}, Default, config);\r\n Util.typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n };\r\n\r\n _proto._addEventListeners = function _addEventListeners() {\r\n var _this2 = this;\r\n\r\n if (this._config.keyboard) {\r\n $(this._element).on(Event.KEYDOWN, function (event) {\r\n return _this2._keydown(event);\r\n });\r\n }\r\n\r\n if (this._config.pause === 'hover') {\r\n $(this._element).on(Event.MOUSEENTER, function (event) {\r\n return _this2.pause(event);\r\n }).on(Event.MOUSELEAVE, function (event) {\r\n return _this2.cycle(event);\r\n });\r\n\r\n if ('ontouchstart' in document.documentElement) {\r\n // if it's a touch-enabled device, mouseenter/leave are fired as\r\n // part of the mouse compatibility events on first tap - the carousel\r\n // would stop cycling until user tapped out of it;\r\n // here, we listen for touchend, explicitly pause the carousel\r\n // (as if it's the second time we tap on it, mouseenter compat event\r\n // is NOT fired) and after a timeout (to allow for mouse compatibility\r\n // events to fire) we explicitly restart cycling\r\n $(this._element).on(Event.TOUCHEND, function () {\r\n _this2.pause();\r\n\r\n if (_this2.touchTimeout) {\r\n clearTimeout(_this2.touchTimeout);\r\n }\r\n\r\n _this2.touchTimeout = setTimeout(function (event) {\r\n return _this2.cycle(event);\r\n }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);\r\n });\r\n }\r\n }\r\n };\r\n\r\n _proto._keydown = function _keydown(event) {\r\n if (/input|textarea/i.test(event.target.tagName)) {\r\n return;\r\n }\r\n\r\n switch (event.which) {\r\n case ARROW_LEFT_KEYCODE:\r\n event.preventDefault();\r\n this.prev();\r\n break;\r\n\r\n case ARROW_RIGHT_KEYCODE:\r\n event.preventDefault();\r\n this.next();\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n };\r\n\r\n _proto._getItemIndex = function _getItemIndex(element) {\r\n this._items = $.makeArray($(element).parent().find(Selector.ITEM));\r\n return this._items.indexOf(element);\r\n };\r\n\r\n _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\r\n var isNextDirection = direction === Direction.NEXT;\r\n var isPrevDirection = direction === Direction.PREV;\r\n\r\n var activeIndex = this._getItemIndex(activeElement);\r\n\r\n var lastItemIndex = this._items.length - 1;\r\n var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\r\n\r\n if (isGoingToWrap && !this._config.wrap) {\r\n return activeElement;\r\n }\r\n\r\n var delta = direction === Direction.PREV ? -1 : 1;\r\n var itemIndex = (activeIndex + delta) % this._items.length;\r\n return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\r\n };\r\n\r\n _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\r\n var targetIndex = this._getItemIndex(relatedTarget);\r\n\r\n var fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0]);\r\n\r\n var slideEvent = $.Event(Event.SLIDE, {\r\n relatedTarget: relatedTarget,\r\n direction: eventDirectionName,\r\n from: fromIndex,\r\n to: targetIndex\r\n });\r\n $(this._element).trigger(slideEvent);\r\n return slideEvent;\r\n };\r\n\r\n _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\r\n if (this._indicatorsElement) {\r\n $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);\r\n\r\n var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\r\n\r\n if (nextIndicator) {\r\n $(nextIndicator).addClass(ClassName.ACTIVE);\r\n }\r\n }\r\n };\r\n\r\n _proto._slide = function _slide(direction, element) {\r\n var _this3 = this;\r\n\r\n var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];\r\n\r\n var activeElementIndex = this._getItemIndex(activeElement);\r\n\r\n var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\r\n\r\n var nextElementIndex = this._getItemIndex(nextElement);\r\n\r\n var isCycling = Boolean(this._interval);\r\n var directionalClassName;\r\n var orderClassName;\r\n var eventDirectionName;\r\n\r\n if (direction === Direction.NEXT) {\r\n directionalClassName = ClassName.LEFT;\r\n orderClassName = ClassName.NEXT;\r\n eventDirectionName = Direction.LEFT;\r\n } else {\r\n directionalClassName = ClassName.RIGHT;\r\n orderClassName = ClassName.PREV;\r\n eventDirectionName = Direction.RIGHT;\r\n }\r\n\r\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\r\n this._isSliding = false;\r\n return;\r\n }\r\n\r\n var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\r\n\r\n if (slideEvent.isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n if (!activeElement || !nextElement) {\r\n // some weirdness is happening, so we bail\r\n return;\r\n }\r\n\r\n this._isSliding = true;\r\n\r\n if (isCycling) {\r\n this.pause();\r\n }\r\n\r\n this._setActiveIndicatorElement(nextElement);\r\n\r\n var slidEvent = $.Event(Event.SLID, {\r\n relatedTarget: nextElement,\r\n direction: eventDirectionName,\r\n from: activeElementIndex,\r\n to: nextElementIndex\r\n });\r\n\r\n if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) {\r\n $(nextElement).addClass(orderClassName);\r\n Util.reflow(nextElement);\r\n $(activeElement).addClass(directionalClassName);\r\n $(nextElement).addClass(directionalClassName);\r\n $(activeElement).one(Util.TRANSITION_END, function () {\r\n $(nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(ClassName.ACTIVE);\r\n $(activeElement).removeClass(ClassName.ACTIVE + \" \" + orderClassName + \" \" + directionalClassName);\r\n _this3._isSliding = false;\r\n setTimeout(function () {\r\n return $(_this3._element).trigger(slidEvent);\r\n }, 0);\r\n }).emulateTransitionEnd(TRANSITION_DURATION);\r\n } else {\r\n $(activeElement).removeClass(ClassName.ACTIVE);\r\n $(nextElement).addClass(ClassName.ACTIVE);\r\n this._isSliding = false;\r\n $(this._element).trigger(slidEvent);\r\n }\r\n\r\n if (isCycling) {\r\n this.cycle();\r\n }\r\n }; // static\r\n\r\n\r\n Carousel._jQueryInterface = function _jQueryInterface(config) {\r\n return this.each(function () {\r\n var data = $(this).data(DATA_KEY);\r\n\r\n var _config = $.extend({}, Default, $(this).data());\r\n\r\n if (typeof config === 'object') {\r\n $.extend(_config, config);\r\n }\r\n\r\n var action = typeof config === 'string' ? config : _config.slide;\r\n\r\n if (!data) {\r\n data = new Carousel(this, _config);\r\n $(this).data(DATA_KEY, data);\r\n }\r\n\r\n if (typeof config === 'number') {\r\n data.to(config);\r\n } else if (typeof action === 'string') {\r\n if (typeof data[action] === 'undefined') {\r\n throw new Error(\"No method named \\\"\" + action + \"\\\"\");\r\n }\r\n\r\n data[action]();\r\n } else if (_config.interval) {\r\n data.pause();\r\n data.cycle();\r\n }\r\n });\r\n };\r\n\r\n Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\r\n var selector = Util.getSelectorFromElement(this);\r\n\r\n if (!selector) {\r\n return;\r\n }\r\n\r\n var target = $(selector)[0];\r\n\r\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\r\n return;\r\n }\r\n\r\n var config = $.extend({}, $(target).data(), $(this).data());\r\n var slideIndex = this.getAttribute('data-slide-to');\r\n\r\n if (slideIndex) {\r\n config.interval = false;\r\n }\r\n\r\n Carousel._jQueryInterface.call($(target), config);\r\n\r\n if (slideIndex) {\r\n $(target).data(DATA_KEY).to(slideIndex);\r\n }\r\n\r\n event.preventDefault();\r\n };\r\n\r\n _createClass(Carousel, null, [{\r\n key: \"VERSION\",\r\n get: function get() {\r\n return VERSION;\r\n }\r\n }, {\r\n key: \"Default\",\r\n get: function get() {\r\n return Default;\r\n }\r\n }]);\r\n\r\n return Carousel;\r\n }();\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n\r\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);\r\n $(window).on(Event.LOAD_DATA_API, function () {\r\n $(Selector.DATA_RIDE).each(function () {\r\n var $carousel = $(this);\r\n\r\n Carousel._jQueryInterface.call($carousel, $carousel.data());\r\n });\r\n });\r\n /**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n $.fn[NAME] = Carousel._jQueryInterface;\r\n $.fn[NAME].Constructor = Carousel;\r\n\r\n $.fn[NAME].noConflict = function () {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Carousel._jQueryInterface;\r\n };\r\n\r\n return Carousel;\r\n}($);\r\n//# sourceMappingURL=carousel.js.map","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\r\n\r\n/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v4.0.0-beta.2): collapse.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\nvar Collapse = function () {\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n var NAME = 'collapse';\r\n var VERSION = '4.0.0-beta.2';\r\n var DATA_KEY = 'bs.collapse';\r\n var EVENT_KEY = \".\" + DATA_KEY;\r\n var DATA_API_KEY = '.data-api';\r\n var JQUERY_NO_CONFLICT = $.fn[NAME];\r\n var TRANSITION_DURATION = 600;\r\n var Default = {\r\n toggle: true,\r\n parent: ''\r\n };\r\n var DefaultType = {\r\n toggle: 'boolean',\r\n parent: '(string|element)'\r\n };\r\n var Event = {\r\n SHOW: \"show\" + EVENT_KEY,\r\n SHOWN: \"shown\" + EVENT_KEY,\r\n HIDE: \"hide\" + EVENT_KEY,\r\n HIDDEN: \"hidden\" + EVENT_KEY,\r\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\r\n };\r\n var ClassName = {\r\n SHOW: 'show',\r\n COLLAPSE: 'collapse',\r\n COLLAPSING: 'collapsing',\r\n COLLAPSED: 'collapsed'\r\n };\r\n var Dimension = {\r\n WIDTH: 'width',\r\n HEIGHT: 'height'\r\n };\r\n var Selector = {\r\n ACTIVES: '.show, .collapsing',\r\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n };\r\n\r\n var Collapse =\r\n /*#__PURE__*/\r\n function () {\r\n function Collapse(element, config) {\r\n this._isTransitioning = false;\r\n this._element = element;\r\n this._config = this._getConfig(config);\r\n this._triggerArray = $.makeArray($(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\r\n var tabToggles = $(Selector.DATA_TOGGLE);\r\n\r\n for (var i = 0; i < tabToggles.length; i++) {\r\n var elem = tabToggles[i];\r\n var selector = Util.getSelectorFromElement(elem);\r\n\r\n if (selector !== null && $(selector).filter(element).length > 0) {\r\n this._triggerArray.push(elem);\r\n }\r\n }\r\n\r\n this._parent = this._config.parent ? this._getParent() : null;\r\n\r\n if (!this._config.parent) {\r\n this._addAriaAndCollapsedClass(this._element, this._triggerArray);\r\n }\r\n\r\n if (this._config.toggle) {\r\n this.toggle();\r\n }\r\n } // getters\r\n\r\n\r\n var _proto = Collapse.prototype;\r\n\r\n // public\r\n _proto.toggle = function toggle() {\r\n if ($(this._element).hasClass(ClassName.SHOW)) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n };\r\n\r\n _proto.show = function show() {\r\n var _this = this;\r\n\r\n if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) {\r\n return;\r\n }\r\n\r\n var actives;\r\n var activesData;\r\n\r\n if (this._parent) {\r\n actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES));\r\n\r\n if (!actives.length) {\r\n actives = null;\r\n }\r\n }\r\n\r\n if (actives) {\r\n activesData = $(actives).data(DATA_KEY);\r\n\r\n if (activesData && activesData._isTransitioning) {\r\n return;\r\n }\r\n }\r\n\r\n var startEvent = $.Event(Event.SHOW);\r\n $(this._element).trigger(startEvent);\r\n\r\n if (startEvent.isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n if (actives) {\r\n Collapse._jQueryInterface.call($(actives), 'hide');\r\n\r\n if (!activesData) {\r\n $(actives).data(DATA_KEY, null);\r\n }\r\n }\r\n\r\n var dimension = this._getDimension();\r\n\r\n $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);\r\n this._element.style[dimension] = 0;\r\n\r\n if (this._triggerArray.length) {\r\n $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);\r\n }\r\n\r\n this.setTransitioning(true);\r\n\r\n var complete = function complete() {\r\n $(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);\r\n _this._element.style[dimension] = '';\r\n\r\n _this.setTransitioning(false);\r\n\r\n $(_this._element).trigger(Event.SHOWN);\r\n };\r\n\r\n if (!Util.supportsTransitionEnd()) {\r\n complete();\r\n return;\r\n }\r\n\r\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\r\n var scrollSize = \"scroll\" + capitalizedDimension;\r\n $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\r\n this._element.style[dimension] = this._element[scrollSize] + \"px\";\r\n };\r\n\r\n _proto.hide = function hide() {\r\n var _this2 = this;\r\n\r\n if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) {\r\n return;\r\n }\r\n\r\n var startEvent = $.Event(Event.HIDE);\r\n $(this._element).trigger(startEvent);\r\n\r\n if (startEvent.isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n var dimension = this._getDimension();\r\n\r\n this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\r\n Util.reflow(this._element);\r\n $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);\r\n\r\n if (this._triggerArray.length) {\r\n for (var i = 0; i < this._triggerArray.length; i++) {\r\n var trigger = this._triggerArray[i];\r\n var selector = Util.getSelectorFromElement(trigger);\r\n\r\n if (selector !== null) {\r\n var $elem = $(selector);\r\n\r\n if (!$elem.hasClass(ClassName.SHOW)) {\r\n $(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.setTransitioning(true);\r\n\r\n var complete = function complete() {\r\n _this2.setTransitioning(false);\r\n\r\n $(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);\r\n };\r\n\r\n this._element.style[dimension] = '';\r\n\r\n if (!Util.supportsTransitionEnd()) {\r\n complete();\r\n return;\r\n }\r\n\r\n $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\r\n };\r\n\r\n _proto.setTransitioning = function setTransitioning(isTransitioning) {\r\n this._isTransitioning = isTransitioning;\r\n };\r\n\r\n _proto.dispose = function dispose() {\r\n $.removeData(this._element, DATA_KEY);\r\n this._config = null;\r\n this._parent = null;\r\n this._element = null;\r\n this._triggerArray = null;\r\n this._isTransitioning = null;\r\n }; // private\r\n\r\n\r\n _proto._getConfig = function _getConfig(config) {\r\n config = $.extend({}, Default, config);\r\n config.toggle = Boolean(config.toggle); // coerce string values\r\n\r\n Util.typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n };\r\n\r\n _proto._getDimension = function _getDimension() {\r\n var hasWidth = $(this._element).hasClass(Dimension.WIDTH);\r\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;\r\n };\r\n\r\n _proto._getParent = function _getParent() {\r\n var _this3 = this;\r\n\r\n var parent = null;\r\n\r\n if (Util.isElement(this._config.parent)) {\r\n parent = this._config.parent; // it's a jQuery object\r\n\r\n if (typeof this._config.parent.jquery !== 'undefined') {\r\n parent = this._config.parent[0];\r\n }\r\n } else {\r\n parent = $(this._config.parent)[0];\r\n }\r\n\r\n var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\r\n $(parent).find(selector).each(function (i, element) {\r\n _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\r\n });\r\n return parent;\r\n };\r\n\r\n _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\r\n if (element) {\r\n var isOpen = $(element).hasClass(ClassName.SHOW);\r\n\r\n if (triggerArray.length) {\r\n $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\r\n }\r\n }\r\n }; // static\r\n\r\n\r\n Collapse._getTargetFromElement = function _getTargetFromElement(element) {\r\n var selector = Util.getSelectorFromElement(element);\r\n return selector ? $(selector)[0] : null;\r\n };\r\n\r\n Collapse._jQueryInterface = function _jQueryInterface(config) {\r\n return this.each(function () {\r\n var $this = $(this);\r\n var data = $this.data(DATA_KEY);\r\n\r\n var _config = $.extend({}, Default, $this.data(), typeof config === 'object' && config);\r\n\r\n if (!data && _config.toggle && /show|hide/.test(config)) {\r\n _config.toggle = false;\r\n }\r\n\r\n if (!data) {\r\n data = new Collapse(this, _config);\r\n $this.data(DATA_KEY, data);\r\n }\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new Error(\"No method named \\\"\" + config + \"\\\"\");\r\n }\r\n\r\n data[config]();\r\n }\r\n });\r\n };\r\n\r\n _createClass(Collapse, null, [{\r\n key: \"VERSION\",\r\n get: function get() {\r\n return VERSION;\r\n }\r\n }, {\r\n key: \"Default\",\r\n get: function get() {\r\n return Default;\r\n }\r\n }]);\r\n\r\n return Collapse;\r\n }();\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n\r\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\r\n // preventDefault only for elements (which change the URL) not inside the collapsible element\r\n if (event.currentTarget.tagName === 'A') {\r\n event.preventDefault();\r\n }\r\n\r\n var $trigger = $(this);\r\n var selector = Util.getSelectorFromElement(this);\r\n $(selector).each(function () {\r\n var $target = $(this);\r\n var data = $target.data(DATA_KEY);\r\n var config = data ? 'toggle' : $trigger.data();\r\n\r\n Collapse._jQueryInterface.call($target, config);\r\n });\r\n });\r\n /**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n $.fn[NAME] = Collapse._jQueryInterface;\r\n $.fn[NAME].Constructor = Collapse;\r\n\r\n $.fn[NAME].noConflict = function () {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Collapse._jQueryInterface;\r\n };\r\n\r\n return Collapse;\r\n}($);\r\n//# sourceMappingURL=collapse.js.map","e4.bootstrap.carousel = {\r\n init: function () {\r\n e4.bootstrap.carousel.bindEvents();\r\n },\r\n bindEvents: function () {\r\n //jQuery( document ).on( 'keydown', function ( event ) {\r\n //console.log(event);\r\n //event.type ='keydown.bs.carousel';\r\n //jQuery( this ).trigger( event );\r\n // jQuery( '.carousel' ).each( function () { jQuery( this ).triggerHandler( event );\r\n // } );\r\n // jQuery( '.carousel' ).each( function () {\r\n // var jThis = jQuery( this );\r\n // if ( e4.util.isInViewport( jThis ) === true ) {\r\n // if ( /input|textarea/i.test( event.target.tagName ) ) {\r\n // return;\r\n // }\r\n // switch ( event.which ) {\r\n // case ARROW_LEFT_KEYCODE:\r\n // event.preventDefault();\r\n // jThis.prev();\r\n // break;\r\n // case ARROW_RIGHT_KEYCODE:\r\n // event.preventDefault();\r\n // jThis.next();\r\n // break;\r\n // default:\r\n // return;\r\n // }\r\n // }\r\n //} );\r\n jQuery( document ).on( 'keydown', function ( event ) {\r\n jQuery( '.carousel').each( function () {\r\n var jThis = jQuery( this );\r\n if ( e4.util.isInViewport( jThis ) === true ) {\r\n if ( /input|textarea/i.test( event.target.tagName ) ) {\r\n return;\r\n }\r\n //console.log( event.which );\r\n switch ( event.which ) {\r\n case 37:\r\n //event.preventDefault();\r\n jThis.carousel( 'prev' );\r\n break;\r\n case 39:\r\n //event.preventDefault();\r\n jThis.carousel( 'next' );\r\n break;\r\n default:\r\n return;\r\n }\r\n }\r\n } );\r\n } );\r\n jQuery( '.carousel' ).on( 'swipeleft', function () {\r\n jQuery( this ).carousel( 'next' );\r\n } ).on( 'swiperight', function () {\r\n jQuery( this ).carousel( 'prev' );\r\n } ).find( '.carousel-indicators li' ).on( 'mouseenter', function () {\r\n jQuery( this ).trigger( 'click' );\r\n } );\r\n }\r\n};\r\n\r\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\r\n\r\n/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v4.0.0-beta.2): dropdown.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\nvar Dropdown = function () {\r\n /**\r\n * Check for Popper dependency\r\n * Popper - https://popper.js.org\r\n */\r\n if (typeof Popper === 'undefined') {\r\n throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');\r\n }\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n\r\n var NAME = 'dropdown';\r\n var VERSION = '4.0.0-beta.2';\r\n var DATA_KEY = 'bs.dropdown';\r\n var EVENT_KEY = \".\" + DATA_KEY;\r\n var DATA_API_KEY = '.data-api';\r\n var JQUERY_NO_CONFLICT = $.fn[NAME];\r\n var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\r\n\r\n var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\r\n\r\n var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\r\n\r\n var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\r\n\r\n var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\r\n\r\n var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\r\n\r\n var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE);\r\n var Event = {\r\n HIDE: \"hide\" + EVENT_KEY,\r\n HIDDEN: \"hidden\" + EVENT_KEY,\r\n SHOW: \"show\" + EVENT_KEY,\r\n SHOWN: \"shown\" + EVENT_KEY,\r\n CLICK: \"click\" + EVENT_KEY,\r\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY,\r\n KEYDOWN_DATA_API: \"keydown\" + EVENT_KEY + DATA_API_KEY,\r\n KEYUP_DATA_API: \"keyup\" + EVENT_KEY + DATA_API_KEY\r\n };\r\n var ClassName = {\r\n DISABLED: 'disabled',\r\n SHOW: 'show',\r\n DROPUP: 'dropup',\r\n MENURIGHT: 'dropdown-menu-right',\r\n MENULEFT: 'dropdown-menu-left'\r\n };\r\n var Selector = {\r\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\r\n FORM_CHILD: '.dropdown form',\r\n MENU: '.dropdown-menu',\r\n NAVBAR_NAV: '.navbar-nav',\r\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'\r\n };\r\n var AttachmentMap = {\r\n TOP: 'top-start',\r\n TOPEND: 'top-end',\r\n BOTTOM: 'bottom-start',\r\n BOTTOMEND: 'bottom-end'\r\n };\r\n var Default = {\r\n offset: 0,\r\n flip: true\r\n };\r\n var DefaultType = {\r\n offset: '(number|string|function)',\r\n flip: 'boolean'\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n };\r\n\r\n var Dropdown =\r\n /*#__PURE__*/\r\n function () {\r\n function Dropdown(element, config) {\r\n this._element = element;\r\n this._popper = null;\r\n this._config = this._getConfig(config);\r\n this._menu = this._getMenuElement();\r\n this._inNavbar = this._detectNavbar();\r\n\r\n this._addEventListeners();\r\n } // getters\r\n\r\n\r\n var _proto = Dropdown.prototype;\r\n\r\n // public\r\n _proto.toggle = function toggle() {\r\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\r\n return;\r\n }\r\n\r\n var parent = Dropdown._getParentFromElement(this._element);\r\n\r\n var isActive = $(this._menu).hasClass(ClassName.SHOW);\r\n\r\n Dropdown._clearMenus();\r\n\r\n if (isActive) {\r\n return;\r\n }\r\n\r\n var relatedTarget = {\r\n relatedTarget: this._element\r\n };\r\n var showEvent = $.Event(Event.SHOW, relatedTarget);\r\n $(parent).trigger(showEvent);\r\n\r\n if (showEvent.isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n var element = this._element; // for dropup with alignment we use the parent as popper container\r\n\r\n if ($(parent).hasClass(ClassName.DROPUP)) {\r\n if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\r\n element = parent;\r\n }\r\n }\r\n\r\n this._popper = new Popper(element, this._menu, this._getPopperConfig()); // if this is a touch-enabled device we add extra\r\n // empty mouseover listeners to the body's immediate children;\r\n // only needed because of broken event delegation on iOS\r\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\r\n\r\n if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {\r\n $('body').children().on('mouseover', null, $.noop);\r\n }\r\n\r\n this._element.focus();\r\n\r\n this._element.setAttribute('aria-expanded', true);\r\n\r\n $(this._menu).toggleClass(ClassName.SHOW);\r\n $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));\r\n };\r\n\r\n _proto.dispose = function dispose() {\r\n $.removeData(this._element, DATA_KEY);\r\n $(this._element).off(EVENT_KEY);\r\n this._element = null;\r\n this._menu = null;\r\n\r\n if (this._popper !== null) {\r\n this._popper.destroy();\r\n }\r\n\r\n this._popper = null;\r\n };\r\n\r\n _proto.update = function update() {\r\n this._inNavbar = this._detectNavbar();\r\n\r\n if (this._popper !== null) {\r\n this._popper.scheduleUpdate();\r\n }\r\n }; // private\r\n\r\n\r\n _proto._addEventListeners = function _addEventListeners() {\r\n var _this = this;\r\n\r\n $(this._element).on(Event.CLICK, function (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n _this.toggle();\r\n });\r\n };\r\n\r\n _proto._getConfig = function _getConfig(config) {\r\n config = $.extend({}, this.constructor.Default, $(this._element).data(), config);\r\n Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);\r\n return config;\r\n };\r\n\r\n _proto._getMenuElement = function _getMenuElement() {\r\n if (!this._menu) {\r\n var parent = Dropdown._getParentFromElement(this._element);\r\n\r\n this._menu = $(parent).find(Selector.MENU)[0];\r\n }\r\n\r\n return this._menu;\r\n };\r\n\r\n _proto._getPlacement = function _getPlacement() {\r\n var $parentDropdown = $(this._element).parent();\r\n var placement = AttachmentMap.BOTTOM; // Handle dropup\r\n\r\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\r\n placement = AttachmentMap.TOP;\r\n\r\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\r\n placement = AttachmentMap.TOPEND;\r\n }\r\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\r\n placement = AttachmentMap.BOTTOMEND;\r\n }\r\n\r\n return placement;\r\n };\r\n\r\n _proto._detectNavbar = function _detectNavbar() {\r\n return $(this._element).closest('.navbar').length > 0;\r\n };\r\n\r\n _proto._getPopperConfig = function _getPopperConfig() {\r\n var _this2 = this;\r\n\r\n var offsetConf = {};\r\n\r\n if (typeof this._config.offset === 'function') {\r\n offsetConf.fn = function (data) {\r\n data.offsets = $.extend({}, data.offsets, _this2._config.offset(data.offsets) || {});\r\n return data;\r\n };\r\n } else {\r\n offsetConf.offset = this._config.offset;\r\n }\r\n\r\n var popperConfig = {\r\n placement: this._getPlacement(),\r\n modifiers: {\r\n offset: offsetConf,\r\n flip: {\r\n enabled: this._config.flip\r\n }\r\n } // Disable Popper.js for Dropdown in Navbar\r\n\r\n };\r\n\r\n if (this._inNavbar) {\r\n popperConfig.modifiers.applyStyle = {\r\n enabled: !this._inNavbar\r\n };\r\n }\r\n\r\n return popperConfig;\r\n }; // static\r\n\r\n\r\n Dropdown._jQueryInterface = function _jQueryInterface(config) {\r\n return this.each(function () {\r\n var data = $(this).data(DATA_KEY);\r\n\r\n var _config = typeof config === 'object' ? config : null;\r\n\r\n if (!data) {\r\n data = new Dropdown(this, _config);\r\n $(this).data(DATA_KEY, data);\r\n }\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new Error(\"No method named \\\"\" + config + \"\\\"\");\r\n }\r\n\r\n data[config]();\r\n }\r\n });\r\n };\r\n\r\n Dropdown._clearMenus = function _clearMenus(event) {\r\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\r\n return;\r\n }\r\n\r\n var toggles = $.makeArray($(Selector.DATA_TOGGLE));\r\n\r\n for (var i = 0; i < toggles.length; i++) {\r\n var parent = Dropdown._getParentFromElement(toggles[i]);\r\n\r\n var context = $(toggles[i]).data(DATA_KEY);\r\n var relatedTarget = {\r\n relatedTarget: toggles[i]\r\n };\r\n\r\n if (!context) {\r\n continue;\r\n }\r\n\r\n var dropdownMenu = context._menu;\r\n\r\n if (!$(parent).hasClass(ClassName.SHOW)) {\r\n continue;\r\n }\r\n\r\n if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {\r\n continue;\r\n }\r\n\r\n var hideEvent = $.Event(Event.HIDE, relatedTarget);\r\n $(parent).trigger(hideEvent);\r\n\r\n if (hideEvent.isDefaultPrevented()) {\r\n continue;\r\n } // if this is a touch-enabled device we remove the extra\r\n // empty mouseover listeners we added for iOS support\r\n\r\n\r\n if ('ontouchstart' in document.documentElement) {\r\n $('body').children().off('mouseover', null, $.noop);\r\n }\r\n\r\n toggles[i].setAttribute('aria-expanded', 'false');\r\n $(dropdownMenu).removeClass(ClassName.SHOW);\r\n $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));\r\n }\r\n };\r\n\r\n Dropdown._getParentFromElement = function _getParentFromElement(element) {\r\n var parent;\r\n var selector = Util.getSelectorFromElement(element);\r\n\r\n if (selector) {\r\n parent = $(selector)[0];\r\n }\r\n\r\n return parent || element.parentNode;\r\n };\r\n\r\n Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\r\n if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE || /input|textarea/i.test(event.target.tagName)) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\r\n return;\r\n }\r\n\r\n var parent = Dropdown._getParentFromElement(this);\r\n\r\n var isActive = $(parent).hasClass(ClassName.SHOW);\r\n\r\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\r\n if (event.which === ESCAPE_KEYCODE) {\r\n var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];\r\n $(toggle).trigger('focus');\r\n }\r\n\r\n $(this).trigger('click');\r\n return;\r\n }\r\n\r\n var items = $(parent).find(Selector.VISIBLE_ITEMS).get();\r\n\r\n if (!items.length) {\r\n return;\r\n }\r\n\r\n var index = items.indexOf(event.target);\r\n\r\n if (event.which === ARROW_UP_KEYCODE && index > 0) {\r\n // up\r\n index--;\r\n }\r\n\r\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\r\n // down\r\n index++;\r\n }\r\n\r\n if (index < 0) {\r\n index = 0;\r\n }\r\n\r\n items[index].focus();\r\n };\r\n\r\n _createClass(Dropdown, null, [{\r\n key: \"VERSION\",\r\n get: function get() {\r\n return VERSION;\r\n }\r\n }, {\r\n key: \"Default\",\r\n get: function get() {\r\n return Default;\r\n }\r\n }, {\r\n key: \"DefaultType\",\r\n get: function get() {\r\n return DefaultType;\r\n }\r\n }]);\r\n\r\n return Dropdown;\r\n }();\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n\r\n $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + \" \" + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n Dropdown._jQueryInterface.call($(this), 'toggle');\r\n }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {\r\n e.stopPropagation();\r\n });\r\n /**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n $.fn[NAME] = Dropdown._jQueryInterface;\r\n $.fn[NAME].Constructor = Dropdown;\r\n\r\n $.fn[NAME].noConflict = function () {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Dropdown._jQueryInterface;\r\n };\r\n\r\n return Dropdown;\r\n}($, Popper);\r\n//# sourceMappingURL=dropdown.js.map","e4.bootstrap.collapse = {\r\n init: function () {\r\n// e4.bootstrap.collapse.peekContent();\r\n// e4.bootstrap.collapse.bindEvents();\r\n },\r\n bindEvents: function () {\r\n// jQuery( '.collapse-peek' ).on( 'click', '.collapse:not(.show)', function () {\r\n// jQuery( this ).collapse( 'show' );\r\n// } ).find( '.collapse-peek-content' ).on( 'show.bs.collapse', function () {\r\n// jQuery( this ).addClass( 'is-expanding' );\r\n// } ).on( 'shown.bs.collapse', function () {\r\n// jQuery( this ).removeClass( 'is-expanding' );\r\n// } ).on( 'hide.bs.collapse', function () {\r\n// jQuery( this ).addClass( 'is-collapsing' );\r\n// } ).on( 'hidden.bs.collapse', function () {\r\n// jQuery( this ).removeClass( 'is-collapsing' );\r\n// } );\r\n },\r\n peekContent: function () {\r\n// jQuery( '.collapse-peek-content' ).each( function () {\r\n// var jThis = jQuery( this );\r\n// if ( this.scrollHeight <= jThis.height() * e4.settings.collapse.peekSizeMin ) {\r\n// jThis.closest( '.collapse-peek' ).addClass( 'collapse-peek-disabled' ).find( '[data-toggle=\"collapse\"]' ).removeAttr( 'data-toggle' );\r\n// jThis.collapse( 'show' );\r\n// }\r\n// } );\r\n }\r\n};\r\n\r\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\r\n\r\n/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v4.0.0-beta.2): modal.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\nvar Modal = function () {\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n var NAME = 'modal';\r\n var VERSION = '4.0.0-beta.2';\r\n var DATA_KEY = 'bs.modal';\r\n var EVENT_KEY = \".\" + DATA_KEY;\r\n var DATA_API_KEY = '.data-api';\r\n var JQUERY_NO_CONFLICT = $.fn[NAME];\r\n var TRANSITION_DURATION = 300;\r\n var BACKDROP_TRANSITION_DURATION = 150;\r\n var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\r\n\r\n var Default = {\r\n backdrop: true,\r\n keyboard: true,\r\n focus: true,\r\n show: true\r\n };\r\n var DefaultType = {\r\n backdrop: '(boolean|string)',\r\n keyboard: 'boolean',\r\n focus: 'boolean',\r\n show: 'boolean'\r\n };\r\n var Event = {\r\n HIDE: \"hide\" + EVENT_KEY,\r\n HIDDEN: \"hidden\" + EVENT_KEY,\r\n SHOW: \"show\" + EVENT_KEY,\r\n SHOWN: \"shown\" + EVENT_KEY,\r\n FOCUSIN: \"focusin\" + EVENT_KEY,\r\n RESIZE: \"resize\" + EVENT_KEY,\r\n CLICK_DISMISS: \"click.dismiss\" + EVENT_KEY,\r\n KEYDOWN_DISMISS: \"keydown.dismiss\" + EVENT_KEY,\r\n MOUSEUP_DISMISS: \"mouseup.dismiss\" + EVENT_KEY,\r\n MOUSEDOWN_DISMISS: \"mousedown.dismiss\" + EVENT_KEY,\r\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\r\n };\r\n var ClassName = {\r\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\r\n BACKDROP: 'modal-backdrop',\r\n OPEN: 'modal-open',\r\n FADE: 'fade',\r\n SHOW: 'show'\r\n };\r\n var Selector = {\r\n DIALOG: '.modal-dialog',\r\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\r\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\r\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\r\n STICKY_CONTENT: '.sticky-top',\r\n NAVBAR_TOGGLER: '.navbar-toggler'\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n };\r\n\r\n var Modal =\r\n /*#__PURE__*/\r\n function () {\r\n function Modal(element, config) {\r\n this._config = this._getConfig(config);\r\n this._element = element;\r\n this._dialog = $(element).find(Selector.DIALOG)[0];\r\n this._backdrop = null;\r\n this._isShown = false;\r\n this._isBodyOverflowing = false;\r\n this._ignoreBackdropClick = false;\r\n this._originalBodyPadding = 0;\r\n this._scrollbarWidth = 0;\r\n } // getters\r\n\r\n\r\n var _proto = Modal.prototype;\r\n\r\n // public\r\n _proto.toggle = function toggle(relatedTarget) {\r\n return this._isShown ? this.hide() : this.show(relatedTarget);\r\n };\r\n\r\n _proto.show = function show(relatedTarget) {\r\n var _this = this;\r\n\r\n if (this._isTransitioning || this._isShown) {\r\n return;\r\n }\r\n\r\n if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\r\n this._isTransitioning = true;\r\n }\r\n\r\n var showEvent = $.Event(Event.SHOW, {\r\n relatedTarget: relatedTarget\r\n });\r\n $(this._element).trigger(showEvent);\r\n\r\n if (this._isShown || showEvent.isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n this._isShown = true;\r\n\r\n this._checkScrollbar();\r\n\r\n this._setScrollbar();\r\n\r\n this._adjustDialog();\r\n\r\n $(document.body).addClass(ClassName.OPEN);\r\n\r\n this._setEscapeEvent();\r\n\r\n this._setResizeEvent();\r\n\r\n $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {\r\n return _this.hide(event);\r\n });\r\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {\r\n $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {\r\n if ($(event.target).is(_this._element)) {\r\n _this._ignoreBackdropClick = true;\r\n }\r\n });\r\n });\r\n\r\n this._showBackdrop(function () {\r\n return _this._showElement(relatedTarget);\r\n });\r\n };\r\n\r\n _proto.hide = function hide(event) {\r\n var _this2 = this;\r\n\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n\r\n if (this._isTransitioning || !this._isShown) {\r\n return;\r\n }\r\n\r\n var hideEvent = $.Event(Event.HIDE);\r\n $(this._element).trigger(hideEvent);\r\n\r\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n this._isShown = false;\r\n var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);\r\n\r\n if (transition) {\r\n this._isTransitioning = true;\r\n }\r\n\r\n this._setEscapeEvent();\r\n\r\n this._setResizeEvent();\r\n\r\n $(document).off(Event.FOCUSIN);\r\n $(this._element).removeClass(ClassName.SHOW);\r\n $(this._element).off(Event.CLICK_DISMISS);\r\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS);\r\n\r\n if (transition) {\r\n $(this._element).one(Util.TRANSITION_END, function (event) {\r\n return _this2._hideModal(event);\r\n }).emulateTransitionEnd(TRANSITION_DURATION);\r\n } else {\r\n this._hideModal();\r\n }\r\n };\r\n\r\n _proto.dispose = function dispose() {\r\n $.removeData(this._element, DATA_KEY);\r\n $(window, document, this._element, this._backdrop).off(EVENT_KEY);\r\n this._config = null;\r\n this._element = null;\r\n this._dialog = null;\r\n this._backdrop = null;\r\n this._isShown = null;\r\n this._isBodyOverflowing = null;\r\n this._ignoreBackdropClick = null;\r\n this._scrollbarWidth = null;\r\n };\r\n\r\n _proto.handleUpdate = function handleUpdate() {\r\n this._adjustDialog();\r\n }; // private\r\n\r\n\r\n _proto._getConfig = function _getConfig(config) {\r\n config = $.extend({}, Default, config);\r\n Util.typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n };\r\n\r\n _proto._showElement = function _showElement(relatedTarget) {\r\n var _this3 = this;\r\n\r\n var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);\r\n\r\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\r\n // don't move modals dom position\r\n document.body.appendChild(this._element);\r\n }\r\n\r\n this._element.style.display = 'block';\r\n\r\n this._element.removeAttribute('aria-hidden');\r\n\r\n this._element.scrollTop = 0;\r\n\r\n if (transition) {\r\n Util.reflow(this._element);\r\n }\r\n\r\n $(this._element).addClass(ClassName.SHOW);\r\n\r\n if (this._config.focus) {\r\n this._enforceFocus();\r\n }\r\n\r\n var shownEvent = $.Event(Event.SHOWN, {\r\n relatedTarget: relatedTarget\r\n });\r\n\r\n var transitionComplete = function transitionComplete() {\r\n if (_this3._config.focus) {\r\n _this3._element.focus();\r\n }\r\n\r\n _this3._isTransitioning = false;\r\n $(_this3._element).trigger(shownEvent);\r\n };\r\n\r\n if (transition) {\r\n $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);\r\n } else {\r\n transitionComplete();\r\n }\r\n };\r\n\r\n _proto._enforceFocus = function _enforceFocus() {\r\n var _this4 = this;\r\n\r\n $(document).off(Event.FOCUSIN) // guard against infinite focus loop\r\n .on(Event.FOCUSIN, function (event) {\r\n if (document !== event.target && _this4._element !== event.target && !$(_this4._element).has(event.target).length) {\r\n _this4._element.focus();\r\n }\r\n });\r\n };\r\n\r\n _proto._setEscapeEvent = function _setEscapeEvent() {\r\n var _this5 = this;\r\n\r\n if (this._isShown && this._config.keyboard) {\r\n $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {\r\n if (event.which === ESCAPE_KEYCODE) {\r\n event.preventDefault();\r\n\r\n _this5.hide();\r\n }\r\n });\r\n } else if (!this._isShown) {\r\n $(this._element).off(Event.KEYDOWN_DISMISS);\r\n }\r\n };\r\n\r\n _proto._setResizeEvent = function _setResizeEvent() {\r\n var _this6 = this;\r\n\r\n if (this._isShown) {\r\n $(window).on(Event.RESIZE, function (event) {\r\n return _this6.handleUpdate(event);\r\n });\r\n } else {\r\n $(window).off(Event.RESIZE);\r\n }\r\n };\r\n\r\n _proto._hideModal = function _hideModal() {\r\n var _this7 = this;\r\n\r\n this._element.style.display = 'none';\r\n\r\n this._element.setAttribute('aria-hidden', true);\r\n\r\n this._isTransitioning = false;\r\n\r\n this._showBackdrop(function () {\r\n $(document.body).removeClass(ClassName.OPEN);\r\n\r\n _this7._resetAdjustments();\r\n\r\n _this7._resetScrollbar();\r\n\r\n $(_this7._element).trigger(Event.HIDDEN);\r\n });\r\n };\r\n\r\n _proto._removeBackdrop = function _removeBackdrop() {\r\n if (this._backdrop) {\r\n $(this._backdrop).remove();\r\n this._backdrop = null;\r\n }\r\n };\r\n\r\n _proto._showBackdrop = function _showBackdrop(callback) {\r\n var _this8 = this;\r\n\r\n var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';\r\n\r\n if (this._isShown && this._config.backdrop) {\r\n var doAnimate = Util.supportsTransitionEnd() && animate;\r\n this._backdrop = document.createElement('div');\r\n this._backdrop.className = ClassName.BACKDROP;\r\n\r\n if (animate) {\r\n $(this._backdrop).addClass(animate);\r\n }\r\n\r\n $(this._backdrop).appendTo(document.body);\r\n $(this._element).on(Event.CLICK_DISMISS, function (event) {\r\n if (_this8._ignoreBackdropClick) {\r\n _this8._ignoreBackdropClick = false;\r\n return;\r\n }\r\n\r\n if (event.target !== event.currentTarget) {\r\n return;\r\n }\r\n\r\n if (_this8._config.backdrop === 'static') {\r\n _this8._element.focus();\r\n } else {\r\n _this8.hide();\r\n }\r\n });\r\n\r\n if (doAnimate) {\r\n Util.reflow(this._backdrop);\r\n }\r\n\r\n $(this._backdrop).addClass(ClassName.SHOW);\r\n\r\n if (!callback) {\r\n return;\r\n }\r\n\r\n if (!doAnimate) {\r\n callback();\r\n return;\r\n }\r\n\r\n $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);\r\n } else if (!this._isShown && this._backdrop) {\r\n $(this._backdrop).removeClass(ClassName.SHOW);\r\n\r\n var callbackRemove = function callbackRemove() {\r\n _this8._removeBackdrop();\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n\r\n if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\r\n $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);\r\n } else {\r\n callbackRemove();\r\n }\r\n } else if (callback) {\r\n callback();\r\n }\r\n }; // ----------------------------------------------------------------------\r\n // the following methods are used to handle overflowing modals\r\n // todo (fat): these should probably be refactored out of modal.js\r\n // ----------------------------------------------------------------------\r\n\r\n\r\n _proto._adjustDialog = function _adjustDialog() {\r\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\r\n\r\n if (!this._isBodyOverflowing && isModalOverflowing) {\r\n this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\r\n }\r\n\r\n if (this._isBodyOverflowing && !isModalOverflowing) {\r\n this._element.style.paddingRight = this._scrollbarWidth + \"px\";\r\n }\r\n };\r\n\r\n _proto._resetAdjustments = function _resetAdjustments() {\r\n this._element.style.paddingLeft = '';\r\n this._element.style.paddingRight = '';\r\n };\r\n\r\n _proto._checkScrollbar = function _checkScrollbar() {\r\n var rect = document.body.getBoundingClientRect();\r\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;\r\n this._scrollbarWidth = this._getScrollbarWidth();\r\n };\r\n\r\n _proto._setScrollbar = function _setScrollbar() {\r\n var _this9 = this;\r\n\r\n if (this._isBodyOverflowing) {\r\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\r\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\r\n // Adjust fixed content padding\r\n $(Selector.FIXED_CONTENT).each(function (index, element) {\r\n var actualPadding = $(element)[0].style.paddingRight;\r\n var calculatedPadding = $(element).css('padding-right');\r\n $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + \"px\");\r\n }); // Adjust sticky content margin\r\n\r\n $(Selector.STICKY_CONTENT).each(function (index, element) {\r\n var actualMargin = $(element)[0].style.marginRight;\r\n var calculatedMargin = $(element).css('margin-right');\r\n $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + \"px\");\r\n }); // Adjust navbar-toggler margin\r\n\r\n $(Selector.NAVBAR_TOGGLER).each(function (index, element) {\r\n var actualMargin = $(element)[0].style.marginRight;\r\n var calculatedMargin = $(element).css('margin-right');\r\n $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + \"px\");\r\n }); // Adjust body padding\r\n\r\n var actualPadding = document.body.style.paddingRight;\r\n var calculatedPadding = $('body').css('padding-right');\r\n $('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\r\n }\r\n };\r\n\r\n _proto._resetScrollbar = function _resetScrollbar() {\r\n // Restore fixed content padding\r\n $(Selector.FIXED_CONTENT).each(function (index, element) {\r\n var padding = $(element).data('padding-right');\r\n\r\n if (typeof padding !== 'undefined') {\r\n $(element).css('padding-right', padding).removeData('padding-right');\r\n }\r\n }); // Restore sticky content and navbar-toggler margin\r\n\r\n $(Selector.STICKY_CONTENT + \", \" + Selector.NAVBAR_TOGGLER).each(function (index, element) {\r\n var margin = $(element).data('margin-right');\r\n\r\n if (typeof margin !== 'undefined') {\r\n $(element).css('margin-right', margin).removeData('margin-right');\r\n }\r\n }); // Restore body padding\r\n\r\n var padding = $('body').data('padding-right');\r\n\r\n if (typeof padding !== 'undefined') {\r\n $('body').css('padding-right', padding).removeData('padding-right');\r\n }\r\n };\r\n\r\n _proto._getScrollbarWidth = function _getScrollbarWidth() {\r\n // thx d.walsh\r\n var scrollDiv = document.createElement('div');\r\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER;\r\n document.body.appendChild(scrollDiv);\r\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\r\n document.body.removeChild(scrollDiv);\r\n return scrollbarWidth;\r\n }; // static\r\n\r\n\r\n Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\r\n return this.each(function () {\r\n var data = $(this).data(DATA_KEY);\r\n\r\n var _config = $.extend({}, Modal.Default, $(this).data(), typeof config === 'object' && config);\r\n\r\n if (!data) {\r\n data = new Modal(this, _config);\r\n $(this).data(DATA_KEY, data);\r\n }\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new Error(\"No method named \\\"\" + config + \"\\\"\");\r\n }\r\n\r\n data[config](relatedTarget);\r\n } else if (_config.show) {\r\n data.show(relatedTarget);\r\n }\r\n });\r\n };\r\n\r\n _createClass(Modal, null, [{\r\n key: \"VERSION\",\r\n get: function get() {\r\n return VERSION;\r\n }\r\n }, {\r\n key: \"Default\",\r\n get: function get() {\r\n return Default;\r\n }\r\n }]);\r\n\r\n return Modal;\r\n }();\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n\r\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\r\n var _this10 = this;\r\n\r\n var target;\r\n var selector = Util.getSelectorFromElement(this);\r\n\r\n if (selector) {\r\n target = $(selector)[0];\r\n }\r\n\r\n var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data());\r\n\r\n if (this.tagName === 'A' || this.tagName === 'AREA') {\r\n event.preventDefault();\r\n }\r\n\r\n var $target = $(target).one(Event.SHOW, function (showEvent) {\r\n if (showEvent.isDefaultPrevented()) {\r\n // only register focus restorer if modal will actually get shown\r\n return;\r\n }\r\n\r\n $target.one(Event.HIDDEN, function () {\r\n if ($(_this10).is(':visible')) {\r\n _this10.focus();\r\n }\r\n });\r\n });\r\n\r\n Modal._jQueryInterface.call($(target), config, this);\r\n });\r\n /**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n $.fn[NAME] = Modal._jQueryInterface;\r\n $.fn[NAME].Constructor = Modal;\r\n\r\n $.fn[NAME].noConflict = function () {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Modal._jQueryInterface;\r\n };\r\n\r\n return Modal;\r\n}($);\r\n//# sourceMappingURL=modal.js.map","e4.bootstrap.dropdown = {\r\n init: function () {\r\n // Popper.Defaults.modifiers.computeStyle.enabled = false;\r\n e4.bootstrap.dropdown.bindEvents();\r\n },\r\n bindEvents: function () {\r\n //Prevent dropdown menu from closing when clicking child nodes.\r\n jQuery( '.dropdown' ).on( 'click.bs.dropdown.data-api', function ( event ) {\r\n var jTarget = jQuery( event.target );\r\n if ( jTarget.closest( '.js-e-dropdown-dismiss' ).length === 0 && jTarget.closest( '[data-toggle=\"dropdown\"],[data-collapse-toggle=\"true\"]' ).length === 0 ) {\r\n event.stopPropagation();\r\n }\r\n } );\r\n }\r\n};\r\n\r\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\r\n\r\n/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v4.0.0-beta.2): tab.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\nvar Tab = function () {\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n var NAME = 'tab';\r\n var VERSION = '4.0.0-beta.2';\r\n var DATA_KEY = 'bs.tab';\r\n var EVENT_KEY = \".\" + DATA_KEY;\r\n var DATA_API_KEY = '.data-api';\r\n var JQUERY_NO_CONFLICT = $.fn[NAME];\r\n var TRANSITION_DURATION = 150;\r\n var Event = {\r\n HIDE: \"hide\" + EVENT_KEY,\r\n HIDDEN: \"hidden\" + EVENT_KEY,\r\n SHOW: \"show\" + EVENT_KEY,\r\n SHOWN: \"shown\" + EVENT_KEY,\r\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\r\n };\r\n var ClassName = {\r\n DROPDOWN_MENU: 'dropdown-menu',\r\n ACTIVE: 'active',\r\n DISABLED: 'disabled',\r\n FADE: 'fade',\r\n SHOW: 'show'\r\n };\r\n var Selector = {\r\n DROPDOWN: '.dropdown',\r\n NAV_LIST_GROUP: '.nav, .list-group',\r\n ACTIVE: '.active',\r\n ACTIVE_UL: '> li > .active',\r\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\r\n DROPDOWN_TOGGLE: '.dropdown-toggle',\r\n DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n };\r\n\r\n var Tab =\r\n /*#__PURE__*/\r\n function () {\r\n function Tab(element) {\r\n this._element = element;\r\n } // getters\r\n\r\n\r\n var _proto = Tab.prototype;\r\n\r\n // public\r\n _proto.show = function show() {\r\n var _this = this;\r\n\r\n if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) {\r\n return;\r\n }\r\n\r\n var target;\r\n var previous;\r\n var listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0];\r\n var selector = Util.getSelectorFromElement(this._element);\r\n\r\n if (listElement) {\r\n var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;\r\n previous = $.makeArray($(listElement).find(itemSelector));\r\n previous = previous[previous.length - 1];\r\n }\r\n\r\n var hideEvent = $.Event(Event.HIDE, {\r\n relatedTarget: this._element\r\n });\r\n var showEvent = $.Event(Event.SHOW, {\r\n relatedTarget: previous\r\n });\r\n\r\n if (previous) {\r\n $(previous).trigger(hideEvent);\r\n }\r\n\r\n $(this._element).trigger(showEvent);\r\n\r\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n if (selector) {\r\n target = $(selector)[0];\r\n }\r\n\r\n this._activate(this._element, listElement);\r\n\r\n var complete = function complete() {\r\n var hiddenEvent = $.Event(Event.HIDDEN, {\r\n relatedTarget: _this._element\r\n });\r\n var shownEvent = $.Event(Event.SHOWN, {\r\n relatedTarget: previous\r\n });\r\n $(previous).trigger(hiddenEvent);\r\n $(_this._element).trigger(shownEvent);\r\n };\r\n\r\n if (target) {\r\n this._activate(target, target.parentNode, complete);\r\n } else {\r\n complete();\r\n }\r\n };\r\n\r\n _proto.dispose = function dispose() {\r\n $.removeData(this._element, DATA_KEY);\r\n this._element = null;\r\n }; // private\r\n\r\n\r\n _proto._activate = function _activate(element, container, callback) {\r\n var _this2 = this;\r\n\r\n var activeElements;\r\n\r\n if (container.nodeName === 'UL') {\r\n activeElements = $(container).find(Selector.ACTIVE_UL);\r\n } else {\r\n activeElements = $(container).children(Selector.ACTIVE);\r\n }\r\n\r\n var active = activeElements[0];\r\n var isTransitioning = callback && Util.supportsTransitionEnd() && active && $(active).hasClass(ClassName.FADE);\r\n\r\n var complete = function complete() {\r\n return _this2._transitionComplete(element, active, isTransitioning, callback);\r\n };\r\n\r\n if (active && isTransitioning) {\r\n $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\r\n } else {\r\n complete();\r\n }\r\n\r\n if (active) {\r\n $(active).removeClass(ClassName.SHOW);\r\n }\r\n };\r\n\r\n _proto._transitionComplete = function _transitionComplete(element, active, isTransitioning, callback) {\r\n if (active) {\r\n $(active).removeClass(ClassName.ACTIVE);\r\n var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];\r\n\r\n if (dropdownChild) {\r\n $(dropdownChild).removeClass(ClassName.ACTIVE);\r\n }\r\n\r\n if (active.getAttribute('role') === 'tab') {\r\n active.setAttribute('aria-selected', false);\r\n }\r\n }\r\n\r\n $(element).addClass(ClassName.ACTIVE);\r\n\r\n if (element.getAttribute('role') === 'tab') {\r\n element.setAttribute('aria-selected', true);\r\n }\r\n\r\n if (isTransitioning) {\r\n Util.reflow(element);\r\n $(element).addClass(ClassName.SHOW);\r\n } else {\r\n $(element).removeClass(ClassName.FADE);\r\n }\r\n\r\n if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\r\n var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];\r\n\r\n if (dropdownElement) {\r\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);\r\n }\r\n\r\n element.setAttribute('aria-expanded', true);\r\n }\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n }; // static\r\n\r\n\r\n Tab._jQueryInterface = function _jQueryInterface(config) {\r\n return this.each(function () {\r\n var $this = $(this);\r\n var data = $this.data(DATA_KEY);\r\n\r\n if (!data) {\r\n data = new Tab(this);\r\n $this.data(DATA_KEY, data);\r\n }\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new Error(\"No method named \\\"\" + config + \"\\\"\");\r\n }\r\n\r\n data[config]();\r\n }\r\n });\r\n };\r\n\r\n _createClass(Tab, null, [{\r\n key: \"VERSION\",\r\n get: function get() {\r\n return VERSION;\r\n }\r\n }]);\r\n\r\n return Tab;\r\n }();\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n\r\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\r\n event.preventDefault();\r\n\r\n Tab._jQueryInterface.call($(this), 'show');\r\n });\r\n /**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n $.fn[NAME] = Tab._jQueryInterface;\r\n $.fn[NAME].Constructor = Tab;\r\n\r\n $.fn[NAME].noConflict = function () {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Tab._jQueryInterface;\r\n };\r\n\r\n return Tab;\r\n}($);\r\n//# sourceMappingURL=tab.js.map","e4.bootstrap.modal = {\r\n init: function () {\r\n e4.bootstrap.modal.bindEvents();\r\n },\r\n bindEvents: function () {\r\n //TODO: Laves om så der i stedet tages højde for om modal'en ligger i et element med Translate og will-change.\r\n jQuery( '.modal' ).on( 'show.bs.modal', function () {\r\n jQuery( e4.settings.scrollReveal.selector ).addClass( e4.settings.scrollReveal.classReset );\r\n } ).on( 'shown.bs.modal', function () {\r\n jQuery( this ).trigger( 'focus' );\r\n } ).on( 'hidden.bs.modal', function () {\r\n jQuery( e4.settings.scrollReveal.selector ).removeClass( e4.settings.scrollReveal.classReset );\r\n } );\r\n }\r\n};\r\n\r\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\r\n\r\n/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v4.0.0-beta.2): tooltip.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\nvar Tooltip = function () {\r\n /**\r\n * Check for Popper dependency\r\n * Popper - https://popper.js.org\r\n */\r\n if (typeof Popper === 'undefined') {\r\n throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)');\r\n }\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n\r\n var NAME = 'tooltip';\r\n var VERSION = '4.0.0-beta.2';\r\n var DATA_KEY = 'bs.tooltip';\r\n var EVENT_KEY = \".\" + DATA_KEY;\r\n var JQUERY_NO_CONFLICT = $.fn[NAME];\r\n var TRANSITION_DURATION = 150;\r\n var CLASS_PREFIX = 'bs-tooltip';\r\n var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\r\n var DefaultType = {\r\n animation: 'boolean',\r\n template: 'string',\r\n title: '(string|element|function)',\r\n trigger: 'string',\r\n delay: '(number|object)',\r\n html: 'boolean',\r\n selector: '(string|boolean)',\r\n placement: '(string|function)',\r\n offset: '(number|string)',\r\n container: '(string|element|boolean)',\r\n fallbackPlacement: '(string|array)'\r\n };\r\n var AttachmentMap = {\r\n AUTO: 'auto',\r\n TOP: 'top',\r\n RIGHT: 'right',\r\n BOTTOM: 'bottom',\r\n LEFT: 'left'\r\n };\r\n var Default = {\r\n animation: true,\r\n template: '
' + '
' + '
',\r\n trigger: 'hover focus',\r\n title: '',\r\n delay: 0,\r\n html: false,\r\n selector: false,\r\n placement: 'top',\r\n offset: 0,\r\n container: false,\r\n fallbackPlacement: 'flip'\r\n };\r\n var HoverState = {\r\n SHOW: 'show',\r\n OUT: 'out'\r\n };\r\n var Event = {\r\n HIDE: \"hide\" + EVENT_KEY,\r\n HIDDEN: \"hidden\" + EVENT_KEY,\r\n SHOW: \"show\" + EVENT_KEY,\r\n SHOWN: \"shown\" + EVENT_KEY,\r\n INSERTED: \"inserted\" + EVENT_KEY,\r\n CLICK: \"click\" + EVENT_KEY,\r\n FOCUSIN: \"focusin\" + EVENT_KEY,\r\n FOCUSOUT: \"focusout\" + EVENT_KEY,\r\n MOUSEENTER: \"mouseenter\" + EVENT_KEY,\r\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY\r\n };\r\n var ClassName = {\r\n FADE: 'fade',\r\n SHOW: 'show'\r\n };\r\n var Selector = {\r\n TOOLTIP: '.tooltip',\r\n TOOLTIP_INNER: '.tooltip-inner',\r\n ARROW: '.arrow'\r\n };\r\n var Trigger = {\r\n HOVER: 'hover',\r\n FOCUS: 'focus',\r\n CLICK: 'click',\r\n MANUAL: 'manual'\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n };\r\n\r\n var Tooltip =\r\n /*#__PURE__*/\r\n function () {\r\n function Tooltip(element, config) {\r\n // private\r\n this._isEnabled = true;\r\n this._timeout = 0;\r\n this._hoverState = '';\r\n this._activeTrigger = {};\r\n this._popper = null; // protected\r\n\r\n this.element = element;\r\n this.config = this._getConfig(config);\r\n this.tip = null;\r\n\r\n this._setListeners();\r\n } // getters\r\n\r\n\r\n var _proto = Tooltip.prototype;\r\n\r\n // public\r\n _proto.enable = function enable() {\r\n this._isEnabled = true;\r\n };\r\n\r\n _proto.disable = function disable() {\r\n this._isEnabled = false;\r\n };\r\n\r\n _proto.toggleEnabled = function toggleEnabled() {\r\n this._isEnabled = !this._isEnabled;\r\n };\r\n\r\n _proto.toggle = function toggle(event) {\r\n if (!this._isEnabled) {\r\n return;\r\n }\r\n\r\n if (event) {\r\n var dataKey = this.constructor.DATA_KEY;\r\n var context = $(event.currentTarget).data(dataKey);\r\n\r\n if (!context) {\r\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\r\n $(event.currentTarget).data(dataKey, context);\r\n }\r\n\r\n context._activeTrigger.click = !context._activeTrigger.click;\r\n\r\n if (context._isWithActiveTrigger()) {\r\n context._enter(null, context);\r\n } else {\r\n context._leave(null, context);\r\n }\r\n } else {\r\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\r\n this._leave(null, this);\r\n\r\n return;\r\n }\r\n\r\n this._enter(null, this);\r\n }\r\n };\r\n\r\n _proto.dispose = function dispose() {\r\n clearTimeout(this._timeout);\r\n $.removeData(this.element, this.constructor.DATA_KEY);\r\n $(this.element).off(this.constructor.EVENT_KEY);\r\n $(this.element).closest('.modal').off('hide.bs.modal');\r\n\r\n if (this.tip) {\r\n $(this.tip).remove();\r\n }\r\n\r\n this._isEnabled = null;\r\n this._timeout = null;\r\n this._hoverState = null;\r\n this._activeTrigger = null;\r\n\r\n if (this._popper !== null) {\r\n this._popper.destroy();\r\n }\r\n\r\n this._popper = null;\r\n this.element = null;\r\n this.config = null;\r\n this.tip = null;\r\n };\r\n\r\n _proto.show = function show() {\r\n var _this = this;\r\n\r\n if ($(this.element).css('display') === 'none') {\r\n throw new Error('Please use show on visible elements');\r\n }\r\n\r\n var showEvent = $.Event(this.constructor.Event.SHOW);\r\n\r\n if (this.isWithContent() && this._isEnabled) {\r\n $(this.element).trigger(showEvent);\r\n var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);\r\n\r\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\r\n return;\r\n }\r\n\r\n var tip = this.getTipElement();\r\n var tipId = Util.getUID(this.constructor.NAME);\r\n tip.setAttribute('id', tipId);\r\n this.element.setAttribute('aria-describedby', tipId);\r\n this.setContent();\r\n\r\n if (this.config.animation) {\r\n $(tip).addClass(ClassName.FADE);\r\n }\r\n\r\n var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\r\n\r\n var attachment = this._getAttachment(placement);\r\n\r\n this.addAttachmentClass(attachment);\r\n var container = this.config.container === false ? document.body : $(this.config.container);\r\n $(tip).data(this.constructor.DATA_KEY, this);\r\n\r\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\r\n $(tip).appendTo(container);\r\n }\r\n\r\n $(this.element).trigger(this.constructor.Event.INSERTED);\r\n this._popper = new Popper(this.element, tip, {\r\n placement: attachment,\r\n modifiers: {\r\n offset: {\r\n offset: this.config.offset\r\n },\r\n flip: {\r\n behavior: this.config.fallbackPlacement\r\n },\r\n arrow: {\r\n element: Selector.ARROW\r\n }\r\n },\r\n onCreate: function onCreate(data) {\r\n if (data.originalPlacement !== data.placement) {\r\n _this._handlePopperPlacementChange(data);\r\n }\r\n },\r\n onUpdate: function onUpdate(data) {\r\n _this._handlePopperPlacementChange(data);\r\n }\r\n });\r\n $(tip).addClass(ClassName.SHOW); // if this is a touch-enabled device we add extra\r\n // empty mouseover listeners to the body's immediate children;\r\n // only needed because of broken event delegation on iOS\r\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\r\n\r\n if ('ontouchstart' in document.documentElement) {\r\n $('body').children().on('mouseover', null, $.noop);\r\n }\r\n\r\n var complete = function complete() {\r\n if (_this.config.animation) {\r\n _this._fixTransition();\r\n }\r\n\r\n var prevHoverState = _this._hoverState;\r\n _this._hoverState = null;\r\n $(_this.element).trigger(_this.constructor.Event.SHOWN);\r\n\r\n if (prevHoverState === HoverState.OUT) {\r\n _this._leave(null, _this);\r\n }\r\n };\r\n\r\n if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\r\n $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);\r\n } else {\r\n complete();\r\n }\r\n }\r\n };\r\n\r\n _proto.hide = function hide(callback) {\r\n var _this2 = this;\r\n\r\n var tip = this.getTipElement();\r\n var hideEvent = $.Event(this.constructor.Event.HIDE);\r\n\r\n var complete = function complete() {\r\n if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {\r\n tip.parentNode.removeChild(tip);\r\n }\r\n\r\n _this2._cleanTipClass();\r\n\r\n _this2.element.removeAttribute('aria-describedby');\r\n\r\n $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);\r\n\r\n if (_this2._popper !== null) {\r\n _this2._popper.destroy();\r\n }\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n\r\n $(this.element).trigger(hideEvent);\r\n\r\n if (hideEvent.isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n $(tip).removeClass(ClassName.SHOW); // if this is a touch-enabled device we remove the extra\r\n // empty mouseover listeners we added for iOS support\r\n\r\n if ('ontouchstart' in document.documentElement) {\r\n $('body').children().off('mouseover', null, $.noop);\r\n }\r\n\r\n this._activeTrigger[Trigger.CLICK] = false;\r\n this._activeTrigger[Trigger.FOCUS] = false;\r\n this._activeTrigger[Trigger.HOVER] = false;\r\n\r\n if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\r\n $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\r\n } else {\r\n complete();\r\n }\r\n\r\n this._hoverState = '';\r\n };\r\n\r\n _proto.update = function update() {\r\n if (this._popper !== null) {\r\n this._popper.scheduleUpdate();\r\n }\r\n }; // protected\r\n\r\n\r\n _proto.isWithContent = function isWithContent() {\r\n return Boolean(this.getTitle());\r\n };\r\n\r\n _proto.addAttachmentClass = function addAttachmentClass(attachment) {\r\n $(this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\r\n };\r\n\r\n _proto.getTipElement = function getTipElement() {\r\n this.tip = this.tip || $(this.config.template)[0];\r\n return this.tip;\r\n };\r\n\r\n _proto.setContent = function setContent() {\r\n var $tip = $(this.getTipElement());\r\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());\r\n $tip.removeClass(ClassName.FADE + \" \" + ClassName.SHOW);\r\n };\r\n\r\n _proto.setElementContent = function setElementContent($element, content) {\r\n var html = this.config.html;\r\n\r\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\r\n // content is a DOM node or a jQuery\r\n if (html) {\r\n if (!$(content).parent().is($element)) {\r\n $element.empty().append(content);\r\n }\r\n } else {\r\n $element.text($(content).text());\r\n }\r\n } else {\r\n $element[html ? 'html' : 'text'](content);\r\n }\r\n };\r\n\r\n _proto.getTitle = function getTitle() {\r\n var title = this.element.getAttribute('data-original-title');\r\n\r\n if (!title) {\r\n title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\r\n }\r\n\r\n return title;\r\n }; // private\r\n\r\n\r\n _proto._getAttachment = function _getAttachment(placement) {\r\n return AttachmentMap[placement.toUpperCase()];\r\n };\r\n\r\n _proto._setListeners = function _setListeners() {\r\n var _this3 = this;\r\n\r\n var triggers = this.config.trigger.split(' ');\r\n triggers.forEach(function (trigger) {\r\n if (trigger === 'click') {\r\n $(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {\r\n return _this3.toggle(event);\r\n });\r\n } else if (trigger !== Trigger.MANUAL) {\r\n var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;\r\n var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;\r\n $(_this3.element).on(eventIn, _this3.config.selector, function (event) {\r\n return _this3._enter(event);\r\n }).on(eventOut, _this3.config.selector, function (event) {\r\n return _this3._leave(event);\r\n });\r\n }\r\n\r\n $(_this3.element).closest('.modal').on('hide.bs.modal', function () {\r\n return _this3.hide();\r\n });\r\n });\r\n\r\n if (this.config.selector) {\r\n this.config = $.extend({}, this.config, {\r\n trigger: 'manual',\r\n selector: ''\r\n });\r\n } else {\r\n this._fixTitle();\r\n }\r\n };\r\n\r\n _proto._fixTitle = function _fixTitle() {\r\n var titleType = typeof this.element.getAttribute('data-original-title');\r\n\r\n if (this.element.getAttribute('title') || titleType !== 'string') {\r\n this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\r\n this.element.setAttribute('title', '');\r\n }\r\n };\r\n\r\n _proto._enter = function _enter(event, context) {\r\n var dataKey = this.constructor.DATA_KEY;\r\n context = context || $(event.currentTarget).data(dataKey);\r\n\r\n if (!context) {\r\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\r\n $(event.currentTarget).data(dataKey, context);\r\n }\r\n\r\n if (event) {\r\n context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;\r\n }\r\n\r\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {\r\n context._hoverState = HoverState.SHOW;\r\n return;\r\n }\r\n\r\n clearTimeout(context._timeout);\r\n context._hoverState = HoverState.SHOW;\r\n\r\n if (!context.config.delay || !context.config.delay.show) {\r\n context.show();\r\n return;\r\n }\r\n\r\n context._timeout = setTimeout(function () {\r\n if (context._hoverState === HoverState.SHOW) {\r\n context.show();\r\n }\r\n }, context.config.delay.show);\r\n };\r\n\r\n _proto._leave = function _leave(event, context) {\r\n var dataKey = this.constructor.DATA_KEY;\r\n context = context || $(event.currentTarget).data(dataKey);\r\n\r\n if (!context) {\r\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\r\n $(event.currentTarget).data(dataKey, context);\r\n }\r\n\r\n if (event) {\r\n context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;\r\n }\r\n\r\n if (context._isWithActiveTrigger()) {\r\n return;\r\n }\r\n\r\n clearTimeout(context._timeout);\r\n context._hoverState = HoverState.OUT;\r\n\r\n if (!context.config.delay || !context.config.delay.hide) {\r\n context.hide();\r\n return;\r\n }\r\n\r\n context._timeout = setTimeout(function () {\r\n if (context._hoverState === HoverState.OUT) {\r\n context.hide();\r\n }\r\n }, context.config.delay.hide);\r\n };\r\n\r\n _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\r\n for (var trigger in this._activeTrigger) {\r\n if (this._activeTrigger[trigger]) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n _proto._getConfig = function _getConfig(config) {\r\n config = $.extend({}, this.constructor.Default, $(this.element).data(), config);\r\n\r\n if (typeof config.delay === 'number') {\r\n config.delay = {\r\n show: config.delay,\r\n hide: config.delay\r\n };\r\n }\r\n\r\n if (typeof config.title === 'number') {\r\n config.title = config.title.toString();\r\n }\r\n\r\n if (typeof config.content === 'number') {\r\n config.content = config.content.toString();\r\n }\r\n\r\n Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);\r\n return config;\r\n };\r\n\r\n _proto._getDelegateConfig = function _getDelegateConfig() {\r\n var config = {};\r\n\r\n if (this.config) {\r\n for (var key in this.config) {\r\n if (this.constructor.Default[key] !== this.config[key]) {\r\n config[key] = this.config[key];\r\n }\r\n }\r\n }\r\n\r\n return config;\r\n };\r\n\r\n _proto._cleanTipClass = function _cleanTipClass() {\r\n var $tip = $(this.getTipElement());\r\n var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\r\n\r\n if (tabClass !== null && tabClass.length > 0) {\r\n $tip.removeClass(tabClass.join(''));\r\n }\r\n };\r\n\r\n _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {\r\n this._cleanTipClass();\r\n\r\n this.addAttachmentClass(this._getAttachment(data.placement));\r\n };\r\n\r\n _proto._fixTransition = function _fixTransition() {\r\n var tip = this.getTipElement();\r\n var initConfigAnimation = this.config.animation;\r\n\r\n if (tip.getAttribute('x-placement') !== null) {\r\n return;\r\n }\r\n\r\n $(tip).removeClass(ClassName.FADE);\r\n this.config.animation = false;\r\n this.hide();\r\n this.show();\r\n this.config.animation = initConfigAnimation;\r\n }; // static\r\n\r\n\r\n Tooltip._jQueryInterface = function _jQueryInterface(config) {\r\n return this.each(function () {\r\n var data = $(this).data(DATA_KEY);\r\n\r\n var _config = typeof config === 'object' && config;\r\n\r\n if (!data && /dispose|hide/.test(config)) {\r\n return;\r\n }\r\n\r\n if (!data) {\r\n data = new Tooltip(this, _config);\r\n $(this).data(DATA_KEY, data);\r\n }\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new Error(\"No method named \\\"\" + config + \"\\\"\");\r\n }\r\n\r\n data[config]();\r\n }\r\n });\r\n };\r\n\r\n _createClass(Tooltip, null, [{\r\n key: \"VERSION\",\r\n get: function get() {\r\n return VERSION;\r\n }\r\n }, {\r\n key: \"Default\",\r\n get: function get() {\r\n return Default;\r\n }\r\n }, {\r\n key: \"NAME\",\r\n get: function get() {\r\n return NAME;\r\n }\r\n }, {\r\n key: \"DATA_KEY\",\r\n get: function get() {\r\n return DATA_KEY;\r\n }\r\n }, {\r\n key: \"Event\",\r\n get: function get() {\r\n return Event;\r\n }\r\n }, {\r\n key: \"EVENT_KEY\",\r\n get: function get() {\r\n return EVENT_KEY;\r\n }\r\n }, {\r\n key: \"DefaultType\",\r\n get: function get() {\r\n return DefaultType;\r\n }\r\n }]);\r\n\r\n return Tooltip;\r\n }();\r\n /**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n\r\n $.fn[NAME] = Tooltip._jQueryInterface;\r\n $.fn[NAME].Constructor = Tooltip;\r\n\r\n $.fn[NAME].noConflict = function () {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Tooltip._jQueryInterface;\r\n };\r\n\r\n return Tooltip;\r\n}($, Popper);\r\n//# sourceMappingURL=tooltip.js.map","var e4 = e4 || {},\r\n dcc = dcc || {};\r\n( function () {\r\n dcc.hubspot = {\r\n settings: {\r\n url: 'https://tools.web2media.dk/request/data/update',\r\n client: 'dcc',\r\n version: 1.2,\r\n log: function () {\r\n return localStorage.getItem( 'hubspot_logging' ) === 'true';\r\n }\r\n },\r\n init: function () {\r\n dcc.hubspot.bindEvents();\r\n if ( jQuery( '.js-dcc-hubspot-receipt-data' ).length === 1 ) {\r\n var objData = window.receiptHubspotData;\r\n if ( objData !== undefined ) {\r\n dcc.hubspot.send( objData );\r\n }\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-dcc-hubspot-form' ).on( 'click', 'button[type=\"submit\"]', function ( event ) {\r\n event.preventDefault();\r\n if ( jQuery( event.target ).closest( 'form' ).valid() === true ) {\r\n var formData = jQuery( event.target ).closest( 'form' ).serializeArray();\r\n dcc.hubspot.events.userRequest( formData );\r\n }\r\n } );\r\n if ( jQuery( 'body' ).data( 'userauthenticated' ) === true && sessionStorage.getItem( 'e4.login.userauthenticated' ) === 'false' ) {\r\n dcc.hubspot.events.login();\r\n }\r\n },\r\n ajax: function ( objAjaxSettings, fnCallback ) {\r\n var jqXHR = jQuery.ajax( jQuery.extend( {\r\n url: dcc.hubspot.settings.url,\r\n method: 'POST',\r\n dataType: 'json',\r\n cache: false\r\n }, objAjaxSettings ) );\r\n jqXHR.done( function ( responds ) {\r\n if ( dcc.hubspot.settings.log() === true ) {\r\n console.log( 'HubSpot responds: ', responds );\r\n }\r\n if ( typeof fnCallback === 'function' ) {\r\n fnCallback( responds );\r\n }\r\n } );\r\n },\r\n send: function ( objExtendData, fnCallback ) {\r\n var objData = {\r\n client: dcc.hubspot.settings.client,\r\n version: dcc.hubspot.settings.version\r\n };\r\n if ( jQuery.isPlainObject( objExtendData ) ) {\r\n jQuery.extend( objData, objExtendData );\r\n }\r\n if ( dcc.hubspot.settings.log() === true ) {\r\n console.group( 'Hubspot send' );\r\n console.log( 'Hubspot post data: ', objData );\r\n }\r\n /*\r\n dcc.hubspot.ajax( {\r\n data: objData\r\n }, function ( responds ) {\r\n if ( dcc.hubspot.settings.log() === true ) {\r\n console.log( 'Hubspot post status: ', responds );\r\n }\r\n if ( responds.accept !== true ) {\r\n console.error( 'Hubspot error. Error ID: ', responds.id );\r\n }\r\n else {\r\n if ( typeof fnCallback === 'function' ) {\r\n fnCallback( responds );\r\n }\r\n }\r\n if ( dcc.hubspot.settings.log() === true ) {\r\n console.groupEnd();\r\n }\r\n } );\r\n \r\n */\r\n },\r\n getOrderlines: function ( objCartData ) {\r\n var orderlines = [];\r\n objCartData.cart.orderlines.forEach( function ( objOrderline ) {\r\n orderlines.push( {\r\n ean: '',\r\n sku: objOrderline.product.id,\r\n amount: objOrderline.quantity,\r\n price: objOrderline.product.priceWithVat,\r\n price_witout_vat: objOrderline.product.priceWithoutVat,\r\n vat: objOrderline.product.vat,\r\n discount: objOrderline.product.discount,\r\n name: objOrderline.product.name\r\n } );\r\n } );\r\n return orderlines;\r\n },\r\n getFormField: function ( arrFormFields, key ) {\r\n var foundFormField = arrFormFields.filter( function ( formField ) {\r\n return formField.name === key;\r\n } );\r\n if ( foundFormField.length ) {\r\n return foundFormField[ 0 ].value;\r\n }\r\n return '';\r\n },\r\n getUserData: function () {\r\n var userData = null;\r\n if ( window.getUserData !== undefined ) {\r\n userData = window.getUserData();\r\n }\r\n return userData;\r\n },\r\n getSplitName: function ( strName ) {\r\n var strFullName = strName.split( ' ' ),\r\n strFirstName = strFullName[ 0 ],\r\n strLastName = strFullName[ strFullName.length - 1 ];\r\n return {\r\n firstname: strFirstName,\r\n lastname: strLastName\r\n };\r\n },\r\n events: {\r\n userRequest: function ( formData ) {\r\n /* -- HUBSPOT EVENT = userRequest -- tested ok */\r\n var objName = dcc.hubspot.getSplitName( dcc.hubspot.getFormField( formData, 'Name' ) ),\r\n objData = {\r\n formType: 'userRequest',\r\n first_name: objName.firstname,\r\n last_name: objName.lastname,\r\n company_name: dcc.hubspot.getFormField( formData, 'CompanyName' ),\r\n email: dcc.hubspot.getFormField( formData, 'Email' ),\r\n phone: dcc.hubspot.getFormField( formData, 'Phone' ),\r\n language: navigator.language,\r\n country: dcc.hubspot.getFormField( formData, 'dealerCountry' )\r\n };\r\n dcc.hubspot.send( objData, function () {\r\n jQuery( '.js-dcc-hubspot-form' ).submit();\r\n } );\r\n },\r\n login: function () {\r\n /* -- HUBSPOT EVENT = login -- tested ok */\r\n var userData = dcc.hubspot.getUserData(),\r\n objName = '',\r\n objData = {};\r\n if ( userData !== null ) {\r\n objName = dcc.hubspot.getSplitName( userData.name );\r\n objData = {\r\n formType: 'login',\r\n first_name: objName.firstname,\r\n last_name: objName.lastname,\r\n company_name: userData.company,\r\n email: userData.email,\r\n language: userData.language,\r\n dcc_contact_id: userData.dcc_contact_id,\r\n dcc_customer_id: userData.dcc_customer_id\r\n };\r\n }\r\n dcc.hubspot.send( objData );\r\n },\r\n newBasket: function ( objCartData ) {\r\n /* -- HUBSPOT EVENT = newBasket -- tested ok */\r\n var userData = dcc.hubspot.getUserData(),\r\n objData = {\r\n formType: 'newBasket',\r\n email: userData !== null ? userData.email : '',\r\n language: userData !== null ? userData.language : '',\r\n dcc_contact_id: userData !== null ? userData.dcc_contact_id : '',\r\n dcc_customer_id: userData !== null ? userData.dcc_customer_id : '',\r\n order_id: objCartData.cart.id,\r\n order_total: objCartData.cart.priceClean,\r\n vat_total: objCartData.cart.priceVATClean,\r\n number_of_items: objCartData.cart.productQuantity,\r\n order_lines: dcc.hubspot.getOrderlines( objCartData )\r\n };\r\n dcc.hubspot.send( objData );\r\n },\r\n updatedBasket: function ( objCartData ) {\r\n /* -- HUBSPOT EVENT = updatedBasket -- tested ok */\r\n var userData = dcc.hubspot.getUserData(),\r\n objData = {\r\n formType: 'updatedBasket',\r\n email: userData !== null ? userData.email : '',\r\n language: userData !== null ? userData.language : '',\r\n dcc_contact_id: userData !== null ? userData.dcc_contact_id : '',\r\n dcc_customer_id: userData !== null ? userData.dcc_customer_id : '',\r\n order_id: objCartData.cart.id,\r\n order_total: objCartData.cart.priceClean,\r\n vat_total: objCartData.cart.priceVATClean,\r\n number_of_items: objCartData.cart.productQuantity,\r\n order_lines: dcc.hubspot.getOrderlines( objCartData )\r\n };\r\n dcc.hubspot.send( objData );\r\n },\r\n checkoutStep: function ( stepData, objOrderData ) {\r\n /* -- HUBSPOT EVENT = checkoutStep -- tested ok */\r\n var intStepNumber = 0;\r\n if ( stepData === 'shipping' ) {\r\n intStepNumber = 1;\r\n }\r\n else if ( stepData === 'customer' ) {\r\n intStepNumber = 2;\r\n }\r\n else if ( stepData === 'approve' ) {\r\n intStepNumber = 3;\r\n }\r\n if ( intStepNumber > 0 ) {\r\n e4.cart.ajax( {\r\n method: 'GET'\r\n }, function ( data ) {\r\n var objCartData = data,\r\n userData = dcc.hubspot.getUserData(),\r\n objName = dcc.hubspot.getSplitName( objOrderData.order.customer.name ),\r\n objData = {\r\n formType: 'checkoutStep' + intStepNumber,\r\n email: objOrderData.order.customer.email,\r\n language: objOrderData.order.customer.countryCode,\r\n dcc_contact_id: userData !== null ? userData.dcc_contact_id : '',\r\n dcc_customer_id: userData !== null ? userData.dcc_customer_id : '',\r\n order_id: objCartData.cart.id,\r\n order_total: objCartData.cart.priceClean,\r\n vat_total: objCartData.cart.priceVATClean,\r\n number_of_items: objCartData.cart.productQuantity,\r\n order_lines: dcc.hubspot.getOrderlines( objCartData )\r\n },\r\n shippingMethod = objOrderData.order.shippingmethods.filter( function ( method ) {\r\n return method.isSelected === true;\r\n } )[ 0 ].id,\r\n paymethod = objOrderData.order.paymethods.filter( function ( method ) {\r\n return method.isSelected === true;\r\n } )[ 0 ].id;\r\n switch ( intStepNumber ) {\r\n case 1: //Shipping\r\n jQuery.extend( objData, {\r\n address_1: objOrderData.order.customer.address,\r\n address_2: objOrderData.order.customer.address2,\r\n delivery_Address: objOrderData.order.delivery.address,\r\n delivery_option: shippingMethod,\r\n zipcode: objOrderData.order.customer.zip,\r\n city: objOrderData.order.customer.city,\r\n country: objOrderData.order.customer.country\r\n } );\r\n break;\r\n case 2: //Customer\r\n jQuery.extend( objData, {\r\n first_name: objName.firstname,\r\n last_name: objName.lastname,\r\n address_1: objOrderData.order.customer.address,\r\n address_2: objOrderData.order.customer.address2,\r\n zipcode: objOrderData.order.customer.zip,\r\n city: objOrderData.order.customer.city,\r\n country: objOrderData.order.customer.country,\r\n phone: objOrderData.order.customer.phone,\r\n delivery_option: shippingMethod\r\n } );\r\n break;\r\n case 3: //Approve\r\n jQuery.extend( objData, {\r\n payment_option: paymethod,\r\n delivery_option: shippingMethod\r\n } );\r\n break;\r\n }\r\n dcc.hubspot.send( objData );\r\n } );\r\n }\r\n }\r\n }\r\n };\r\n}() );\r\n","e4.header = {\r\n init: function () {\r\n // console.log( 'e4.header.autoHideTolerance', e4.settings.header.autoHideTolerance.down );\r\n var jHeader = jQuery( '.js-e-header' );\r\n if ( jHeader.length === 1 ) {\r\n // If the page has sticky local horizontal navigation, the header cannot be sticky.\r\n if ( jQuery( '.e-nav-local-horizontal.is-sticky:visible' ).length > 0 ) {\r\n e4.header.disableSticky();\r\n }\r\n e4.header.lastScrollTop = jQuery( window ).scrollTop();\r\n e4.header.scrollDirectionLast = 'down';\r\n e4.header.scrollDirectionCurrent = 'down';\r\n e4.header.canAutoHide = jHeader.data( 'autohide' );\r\n e4.header.isTransitioning = false;\r\n e4.header.isShown = true;\r\n e4.header.isRAF = false;\r\n e4.header.event = e4.util.registerEvents( 'hide hidden show shown', 'header' );\r\n e4.header.bindEvents();\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( window ).on( 'scroll', function () {\r\n // console.log( 'e4.header.isRAF', e4.settings.header.autoHideTolerance[ e4.header.scrollDirectionCurrent\r\n // ], e4.header.scrollDirectionCurrent );\r\n if ( e4.header.isRAF === false ) {\r\n window.requestAnimationFrame( function () {\r\n e4.header.toggleSticky();\r\n e4.header.toggleVisibility();\r\n e4.header.isRAF = false;\r\n } );\r\n e4.header.isRAF = true;\r\n }\r\n // else {\r\n // console.warn( 'header is busy requestAnimationFrame' );\r\n // }\r\n } );\r\n },\r\n toggleSticky: function () {\r\n if ( jQuery( window ).scrollTop() > 0 ) {\r\n jQuery( '.js-e-header' ).addClass( 'is-stuck' );\r\n }\r\n else {\r\n jQuery( '.js-e-header' ).removeClass( 'is-stuck' );\r\n }\r\n },\r\n toggleVisibility: function () {\r\n if ( e4.header.canAutoHide === true ) {\r\n var windowScrollTop = jQuery( window ).scrollTop();\r\n e4.header.scrollDirectionCurrent = windowScrollTop >= e4.header.lastScrollTop ? 'down' : 'up';\r\n // Check for iOS scroll bounce\r\n if ( windowScrollTop <= e4.settings.header.autoHideTolerance.down * 2 ) {\r\n e4.header.show();\r\n }\r\n else if ( Math.abs( windowScrollTop - e4.header.lastScrollTop ) > e4.settings.header.autoHideTolerance[ e4.header.scrollDirectionCurrent ] ) {\r\n if ( e4.header.scrollDirectionCurrent === 'down' && e4.header.scrollDirectionLast !== e4.header.scrollDirectionCurrent ) {\r\n if ( jQuery( '.js-e-header' ).find( '.dropdown.show, .modal.show' ).length < 1 ) {\r\n e4.header.hide();\r\n }\r\n }\r\n else if ( e4.header.scrollDirectionCurrent === 'up' && e4.header.scrollDirectionLast !== e4.header.scrollDirectionCurrent ) {\r\n e4.header.show();\r\n }\r\n e4.header.lastScrollTop = windowScrollTop;\r\n e4.header.scrollDirectionLast = e4.header.scrollDirectionCurrent;\r\n }\r\n }\r\n },\r\n enableSticky: function () {\r\n jQuery( '.js-e-header' ).addClass( 'is-sticky' );\r\n },\r\n disableSticky: function () {\r\n jQuery( '.js-e-header' ).removeClass( 'is-sticky' );\r\n },\r\n show: function () {\r\n if ( e4.header.isTransitioning === false && e4.header.isShown === false ) {\r\n var jHeader = jQuery( '.js-e-header' );\r\n jHeader.trigger( e4.header.event.show );\r\n if ( e4.settings.event.transitionend !== false ) {\r\n e4.header.isTransitioning = true;\r\n jHeader.one( e4.settings.event.transitionend, function () {\r\n e4.header.isTransitioning = false;\r\n jHeader.trigger( e4.header.event.shown );\r\n } );\r\n }\r\n else {\r\n jHeader.trigger( e4.header.event.shown );\r\n }\r\n jHeader.removeClass( 'is-hidden' );\r\n e4.header.isShown = true;\r\n }\r\n // else {\r\n // console.log( 'show condition not met', e4.header.isTransitioning === false, e4.header.isShown === false\r\n // ); }\r\n },\r\n hide: function () {\r\n if ( ( e4.header.isTransitioning === false && e4.header.isShown === true ) && e4.header.canAutoHide === true ) {\r\n var jHeader = jQuery( '.js-e-header' );\r\n jHeader.trigger( e4.header.event.hide );\r\n if ( e4.settings.event.transitionend !== false ) {\r\n e4.header.isTransitioning = true;\r\n jHeader.one( e4.settings.event.transitionend, function () {\r\n e4.header.isTransitioning = false;\r\n jHeader.trigger( e4.header.event.hidden );\r\n } );\r\n }\r\n else {\r\n jHeader.trigger( e4.header.event.hidden );\r\n }\r\n jHeader.addClass( 'is-hidden' );\r\n e4.header.isShown = false;\r\n }\r\n // else {\r\n // console.log( 'wont hide header', e4.header.isTransitioning, e4.header.isShown, e4.header.canAutoHide );\r\n // }\r\n }\r\n};\r\n\r\n","e4.nav = {\r\n init: function () {\r\n e4.nav.global.init();\r\n e4.nav.local.horizontal.init();\r\n e4.nav.local.vertical.init();\r\n e4.nav.util.init();\r\n },\r\n global: {\r\n init: function () {\r\n e4.nav.global.bindEvents();\r\n },\r\n bindEvents: function () {\r\n var jNav = jQuery( '.js-e-nav' ),\r\n jHeader = jQuery( '.js-e-header' ),\r\n jNavToggle = jQuery( '.js-e-nav-toggle' );\r\n jNavToggle.on( 'click', function ( event ) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n jNav.modal( 'toggle' );\r\n } );\r\n jNav.on( 'swipeleft', function () {\r\n jNav.modal( 'hide' );\r\n } );\r\n jNav.on( 'show.bs.modal', function () {\r\n // TODO: Lav util setting/class\r\n jHeader.addClass( 'reset-transform-containing-block' );\r\n } );\r\n jNav.on( 'shown.bs.modal', function () {\r\n e4.nav.global.revealActive();\r\n } );\r\n jNav.on( 'hide.bs.modal', function () {\r\n // TODO: Lav util setting/class\r\n jHeader.removeClass( 'reset-transform-containing-block' );\r\n } );\r\n jNav.on( 'hidden.bs.modal', function () {\r\n //TODO: Lægges ud i funktion.\r\n var jNav = jQuery( '.js-e-nav' );\r\n jNav.scrollTop( 0 );\r\n jNav.removeAttr( 'style' );\r\n jNav.find( '.js-e-nav-global' ).find( '.nav-link.is-inpath' ).filter( '[data-collapse-target]' ).each( function () {\r\n jQuery( this.getAttribute( 'data-collapse-target' ) ).removeClass( 'show' );\r\n } );\r\n } );\r\n jNav.on( 'click', 'a', function ( event ) {\r\n //TODO: Lægges ud i funktion.\r\n var jThis = jQuery( this );\r\n if ( jThis.is( '.show [data-toggle=\"dropdown\"]' ) === true ) {\r\n event.stopPropagation();\r\n }\r\n if ( jThis.is( '.show [data-collapse-toggle=\"true\"]' ) === true ) {\r\n event.preventDefault();\r\n jQuery( this.getAttribute( 'data-collapse-target' ) ).collapse( 'toggle' );\r\n }\r\n } );\r\n },\r\n revealActive: function () {\r\n var jNav = jQuery( '.js-e-nav' ),\r\n jNavItemActive = jNav.find( '.nav-link.is-active' ).last(),\r\n jNavItemActiveParent = jNavItemActive.closest( '.nav' ).closest( '.nav-item' ),\r\n jOffsetElement = jNavItemActiveParent,\r\n intScrollTarget = 0;\r\n jQuery( '.js-e-nav-global' ).find( '.nav-link.is-inpath' ).filter( '[data-collapse-target]' ).each( function () {\r\n jQuery( this.getAttribute( 'data-collapse-target' ) ).addClass( 'show' );\r\n } );\r\n if ( jNavItemActive.length === 1 && e4.util.isInViewport( jNavItemActive ) === false ) {\r\n setTimeout( function () {\r\n // Hvis parent item ikke findes, eller er for høj til viewport, sættes offset element til det aktive item.\r\n if ( jNavItemActiveParent.length === 0 || jNavItemActiveParent.height() > jNav.height() ) {\r\n jOffsetElement = jNavItemActive;\r\n }\r\n // Beregn relativt offset til containeren.\r\n intScrollTarget = jOffsetElement.offset().top - jNav.offset().top;\r\n jNav.animate( {\r\n scrollTop: intScrollTarget\r\n }, Math.floor( intScrollTarget * e4.settings.nav.revealActive.speed ), e4.settings.nav.revealActive.easing );\r\n\r\n }, e4.settings.nav.revealActive.delay );\r\n }\r\n }\r\n },\r\n local: {\r\n horizontal: {\r\n init: function () {\r\n var jNavLocalHorizontal = jQuery( '.js-e-nav-local-horizontal.is-sticky' );\r\n if ( jNavLocalHorizontal.length === 1 ) {\r\n //e4.nav.local.horizontal.domElm = jNavLocalHorizontal.get( 0 );\r\n e4.nav.local.horizontal.isRAF = false;\r\n jNavLocalHorizontal.removeClass( 'is-sticky' );\r\n e4.nav.local.horizontal.intialOffsetTop = jNavLocalHorizontal.offset().top;\r\n jNavLocalHorizontal.addClass( 'is-sticky' );\r\n e4.nav.local.horizontal.bindEvents();\r\n e4.nav.local.horizontal.toggleSticky();\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( window ).on( 'scroll', function () {\r\n if ( e4.nav.local.horizontal.isRAF === false ) {\r\n window.requestAnimationFrame( function () {\r\n e4.nav.local.horizontal.toggleSticky();\r\n e4.nav.local.horizontal.isRAF = false;\r\n } );\r\n e4.nav.local.horizontal.isRAF = true;\r\n }\r\n } );\r\n },\r\n toggleSticky: function () {\r\n //var intOffsetTop = e4.nav.local.horizontal.domElm.getBoundingClientRect().top;\r\n if ( jQuery( window ).scrollTop() > e4.nav.local.horizontal.intialOffsetTop ) {\r\n jQuery( '.js-e-nav-local-horizontal' ).addClass( 'is-stuck' );\r\n }\r\n else {\r\n jQuery( '.js-e-nav-local-horizontal' ).removeClass( 'is-stuck' );\r\n }\r\n }\r\n },\r\n vertical: {\r\n init: function () {\r\n var jNavLocalVertical = jQuery( '.js-e-nav-local-vertical' );\r\n if ( jNavLocalVertical.length === 1 ) {\r\n if ( jNavLocalVertical.is( '.is-sticky' ) === true ) {\r\n if ( jNavLocalVertical.outerHeight( true ) > jQuery( window ).height() ) {\r\n jNavLocalVertical.removeClass( 'is-sticky' );\r\n }\r\n else {\r\n //e4.nav.local.vertical.domElm = jNavLocalVertical.get( 0 );\r\n e4.nav.local.vertical.isRAF = false;\r\n jNavLocalVertical.removeClass( 'is-sticky' );\r\n e4.nav.local.vertical.intialOffsetTop = jNavLocalVertical.offset().top;\r\n jNavLocalVertical.addClass( 'is-sticky' );\r\n e4.nav.local.vertical.bindEvents();\r\n e4.nav.local.vertical.toggleSticky();\r\n }\r\n }\r\n e4.nav.local.vertical.setContentHeight();\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( window ).on( 'scroll', function () {\r\n if ( e4.nav.local.vertical.isRAF === false ) {\r\n window.requestAnimationFrame( function () {\r\n e4.nav.local.vertical.toggleSticky();\r\n e4.nav.local.vertical.isRAF = false;\r\n } );\r\n e4.nav.local.vertical.isRAF = true;\r\n }\r\n } );\r\n },\r\n toggleSticky: function () {\r\n var intWindowScrollTop = jQuery( window ).scrollTop(),\r\n intContentMainBottom = Math.floor( jQuery( '.e-content-main' ).offset().top + jQuery( '.e-content-main' ).height() ),\r\n intNavLocalVerticalHeight = Math.ceil( jQuery( '.js-e-nav-local-vertical' ).height() );\r\n //var intOffsetTop = e4.nav.local.vertical.domElm.getBoundingClientRect().top;\r\n if ( intWindowScrollTop > e4.nav.local.vertical.intialOffsetTop ) {\r\n jQuery( '.js-e-nav-local-vertical' ).addClass( 'is-stuck' );\r\n if ( intWindowScrollTop + intNavLocalVerticalHeight >= intContentMainBottom ) {\r\n jQuery( '.js-e-nav-local-vertical' ).addClass( 'has-reached-bottom' );\r\n\r\n }\r\n else {\r\n jQuery( '.js-e-nav-local-vertical' ).removeClass( 'has-reached-bottom' );\r\n }\r\n }\r\n else {\r\n jQuery( '.js-e-nav-local-vertical' ).removeClass( 'is-stuck' );\r\n }\r\n },\r\n setContentHeight: function () {\r\n jQuery( '.e-content-main' ).css( 'min-height', function () {\r\n var intNavLocalHeight = parseInt( jQuery( '.js-e-nav-local-vertical' ).outerHeight( true ) ) || 0,\r\n intContentPaddingTop = parseInt( window.getComputedStyle( this ).getPropertyValue( 'padding-top' ) ) || 0,\r\n intContentPaddingBottom = parseInt( window.getComputedStyle( this ).getPropertyValue( 'padding-bottom' ) ) || 0;\r\n return intContentPaddingTop + intNavLocalHeight + intContentPaddingBottom;\r\n } );\r\n }\r\n }\r\n },\r\n util: {\r\n init: function () {\r\n jQuery( '.js-e-nav-pageicon-language' ).each( function () {\r\n var jThis = jQuery( this ),\r\n arrClassList = jThis.parent().attr( 'class' ).split( ' ' ),\r\n strLangISO = '';\r\n for ( var c = 0; c < arrClassList.length; c++ ) {\r\n if ( arrClassList[ c ].indexOf( 'icon-flag-' ) === 0 ) {\r\n strLangISO = arrClassList[ c ].split( '-' )[ 2 ];\r\n jThis.css( 'background-image', 'url(' + e4.settings.nav.flagCDN + strLangISO + '.svg)' );\r\n }\r\n }\r\n } );\r\n }\r\n }\r\n};\r\n\r\n","e4.cta = {\r\n init: function () {\r\n var jCTA = jQuery( '.js-e-cta' ),\r\n jHeader = jQuery( '.js-e-header' );\r\n if ( jCTA.length === 1 && jHeader.length === 1 ) {\r\n jHeader.on( 'hidden.e4.header', function () {\r\n e4.cta.show();\r\n } ).on( 'show.e4.header', function () {\r\n e4.cta.hide();\r\n } );\r\n }\r\n },\r\n show: function () {\r\n jQuery( '.js-e-cta' ).removeClass( 'is-hidden' );\r\n },\r\n hide: function () {\r\n jQuery( '.js-e-cta' ).addClass( 'is-hidden' );\r\n }\r\n};\r\n\r\n","e4.forms = {\r\n init: function () {\r\n if ( jQuery( '.js-e-form-dw, form[data-validate=\"true\"]' ).length > 0 ) {\r\n e4.util.require.js( e4.settings.require.jQueryValidate, function () {\r\n e4.forms.validate.init();\r\n e4.forms.mailchimp.init();\r\n } );\r\n }\r\n e4.forms.toggleState();\r\n e4.forms.setSubmitPage();\r\n },\r\n setSubmitPage: function () {\r\n jQuery( '.js-e-form-dw' ).find( 'input[name=\"SubmitPage\"]' ).val( location.href );\r\n },\r\n toggleState: function () {\r\n //Toggle class on form groups to focus active fields and labels.\r\n jQuery( '.js-e-form-dw' ).find( '.form-group :input' ).on( 'focus blur', function ( event ) {\r\n var jThisFormGroup = jQuery( this ).closest( '.form-group' );\r\n if ( event.type === 'focus' ) {\r\n jThisFormGroup.addClass( 'has-focus' );\r\n }\r\n else {\r\n jThisFormGroup.removeClass( 'has-focus' );\r\n }\r\n } );\r\n },\r\n validate: {\r\n init: function () {\r\n if ( jQuery( '.js-e-form-dw, form[data-validate=\"true\"]' ).length > 0 ) {\r\n e4.forms.validate.loadTranslations();\r\n e4.forms.validate.setDefaults();\r\n e4.forms.validate.bindEvents();\r\n }\r\n },\r\n setDefaults: function () {\r\n //Set validation plugin default settings.\r\n jQuery.validator.setDefaults( {\r\n //debug: true,\r\n validClass: 'is-valid',\r\n errorClass: 'is-invalid',\r\n highlight: function ( domElm, strClassError /*, strClassValid */ ) {\r\n jQuery( domElm ).addClass( strClassError ).closest( '.form-group' ).addClass( strClassError );\r\n },\r\n unhighlight: function ( domElm, strClassError /*, strClassValid */ ) {\r\n jQuery( domElm ).removeClass( strClassError ).closest( '.form-group' ).removeClass( strClassError );\r\n },\r\n errorPlacement: function ( jError, jElement ) {\r\n var jFormGroup = jElement.closest( '.form-group' ),\r\n jFormValidationMsg = jFormGroup.find( '.js-e-form-validation-msg' );\r\n jError.addClass( 'form-text small invalid-feedback' );\r\n if ( jFormValidationMsg.length === 1 ) {\r\n jFormValidationMsg.replaceWith( jError );\r\n }\r\n else {\r\n jFormGroup.append( jError );\r\n }\r\n },\r\n focusInvalid: false,\r\n invalidHandler: function ( form, validator ) {\r\n var jFirstError = jQuery( validator.invalidElements()[ 0 ] );\r\n jQuery( form ).find('[type=\"submit\"]').prop('disabled', false);\r\n if ( e4.util.isInViewport( jFirstError ) === true ) {\r\n validator.focusInvalid();\r\n }\r\n else {\r\n jFirstError.focus();\r\n e4.scrollToAnchor.animate( jFirstError.closest( '.form-group' ).offset().top * 0.875, e4.header.hide );\r\n }\r\n },\r\n submitHandler: function ( form ) {\r\n if ( jQuery( form ).is( '.js-e-form-dw' ) === true ) {\r\n //Read Dynamicweb spam script from inline script block inside the forms.\r\n console.log(jQuery( form ).find('[type=\"submit\"]'));\r\n jQuery( form ).find('[type=\"submit\"]').prop('disabled', true); \r\n e4.data.forms.dwSpamScripts[ form.id ]( form );\r\n // console.log( e4.data.forms.dwSpamScripts );\r\n }\r\n form.submit();\r\n }\r\n } );\r\n },\r\n bindEvents: function () {\r\n //Bind validation method to all Dynamiweb forms and custom forms with data-validate=\"true\" using default settings.\r\n jQuery( '.js-e-form-dw, form[data-validate=\"true\"]' ).each( function () {\r\n jQuery( this ).validate();\r\n } );\r\n },\r\n loadTranslations: function () {\r\n var strLang = e4.settings.lang;\r\n if ( strLang !== 'en' ) {\r\n if ( strLang === 'nb' || strLang === 'nn' ) {\r\n strLang = 'no';\r\n }\r\n else if ( strLang === 'se' ) {\r\n strLang = 'sv';\r\n }\r\n // Load validation messages from cdn, and then extend if custom messages are set.\r\n e4.util.require.js( {\r\n //test: undefined,\r\n url: '//ajax.aspnetcdn.com/ajax/jquery.validate/1.17.0/localization/messages_' + strLang + '.js',\r\n fallback: '/files/system/espresso/design/_assets/js/vendor/jquery.validate.messages_' + strLang + '.js',\r\n callback: function () {\r\n e4.forms.validate.extendTranslations( strLang );\r\n }\r\n } );\r\n }\r\n else {\r\n e4.forms.validate.extendTranslations( strLang );\r\n }\r\n },\r\n extendTranslations: function ( strLang ) {\r\n if ( e4.settings.forms.validate.messages[ strLang ] !== undefined ) {\r\n jQuery.extend( jQuery.validator.messages, e4.settings.forms.validate.messages[ strLang ] );\r\n }\r\n }\r\n },\r\n mailchimp: {\r\n init: function () {\r\n if ( jQuery( '.js-e-form-dw-mailchimp-signup' ).length > 0 ) {\r\n e4.forms.mailchimp.setSubmitHandler();\r\n }\r\n },\r\n setSubmitHandler: function () {\r\n jQuery( '.js-e-form-dw-mailchimp-signup' ).data( 'validator' ).settings.submitHandler = e4.forms.mailchimp.submitHandler;\r\n },\r\n submitHandler: function ( form ) {\r\n var jForm = jQuery( form );\r\n jQuery.ajax( {\r\n type: jForm.attr( 'method' ),\r\n url: jForm.find( 'input[name=\"MailChimp_SignUpURL\"]' ).val().replace( '/post?', '/post-json?' ),\r\n data: jForm.serialize(),\r\n timeout: 1000,\r\n cache: false,\r\n dataType: 'jsonp',\r\n jsonp: 'c',\r\n context: form\r\n } ).always( function ( data ) {\r\n e4.forms.mailchimp.responseHandler( this, data );\r\n } );\r\n },\r\n responseHandler: function ( form, data ) {\r\n //console.log( form, data );\r\n var jForm = jQuery( form ),\r\n jMailChimpSignUp = jForm.closest( '.js-e-mailchimp-signup' );\r\n jMailChimpSignUp.find( '.js-e-msg' ).removeClass( 'show' );\r\n if ( data.result === 'success' ) {\r\n var jMsgSuccess = jMailChimpSignUp.find( '.js-e-msg-success' );\r\n if ( jMsgSuccess.html() === '' ) {\r\n jMsgSuccess.html( data.msg );\r\n }\r\n jMailChimpSignUp.css( {\r\n 'min-height': ( function () {\r\n return jMailChimpSignUp.height();\r\n } )()\r\n } );\r\n jForm.fadeOut( e4.settings.animation.speed, function () {\r\n jMsgSuccess.addClass( 'show' );\r\n } );\r\n }\r\n else if ( data.result === 'error' && data.msg.split( ' ' )[ 0 ] === jForm.find( 'input[name=\"EMAIL\"]' ).val() ) {\r\n var jMsgMailExists = jMailChimpSignUp.find( '.js-e-msg-mail-exists' );\r\n if ( jMsgMailExists.html() === '' ) {\r\n jMsgMailExists.html( data.msg );\r\n }\r\n else {\r\n jMsgMailExists.html( jMsgMailExists.html().replace( '{{Email}}', jForm.find( 'input[name=\"EMAIL\"]' ).val() ) );\r\n }\r\n jMsgMailExists.addClass( 'show' );\r\n }\r\n else {\r\n var jMsgError = jMailChimpSignUp.find( '.js-e-msg-error' );\r\n if ( jMsgError.html() === '' ) {\r\n jMsgError.html( data.msg );\r\n }\r\n jMsgError.addClass( 'show' );\r\n }\r\n }\r\n }\r\n};\r\n\r\n/*\r\njQuery.validator.addMethod( 'localizedNumber', function ( value, domElm ) {\r\n var regExpLocalizedNumber = new RegExp( '^-?(?:\\\\d+|\\\\d{1,3}(?:\\\\' + vetoryl.logbook.number.intergerSeperator + '\\\\d{3})+)?(?:\\\\' + vetoryl.logbook.number.decimalSeperator + '\\\\d+)?$' );\r\n return this.optional( domElm ) || regExpLocalizedNumber.test( value );\r\n}, jQuery.validator.messages.number );\r\n*/\r\n\r\n","e4.scrollReveal = {\r\n init: function () {\r\n e4.scrollReveal.conceal( e4.settings.scrollReveal.classConceal );\r\n e4.scrollReveal.reveal( e4.settings.scrollReveal.classRevealFade );\r\n e4.scrollReveal.bindEvents();\r\n },\r\n bindEvents: function () {\r\n e4.scrollReveal.isRAF = false;\r\n jQuery( window ).on( 'scroll resize', function () {\r\n if ( e4.scrollReveal.isRAF === false ) {\r\n window.requestAnimationFrame( function () {\r\n e4.scrollReveal.reveal( e4.settings.scrollReveal.classRevealSlide );\r\n e4.scrollReveal.isRAF = false;\r\n } );\r\n e4.scrollReveal.isRAF = true;\r\n }\r\n } );\r\n },\r\n conceal: function ( strClass ) {\r\n jQuery( e4.settings.scrollReveal.selector ).each( function () {\r\n var jThis = jQuery( this );\r\n if ( e4.util.isInViewport( jThis ) === false ) {\r\n jThis.addClass( strClass );\r\n // console.log( 'conceal', jThis );\r\n }\r\n else {\r\n // TODO: Lav seperat p-txt-animate funktion for undgå denne\r\n jThis.removeClass( [\r\n e4.settings.scrollReveal.selector.substring( 1 ),\r\n e4.settings.scrollReveal.classConceal,\r\n e4.settings.scrollReveal.classRevealFade,\r\n e4.settings.scrollReveal.classRevealSlide\r\n ].join( ' ' ) );\r\n jThis.addClass( e4.settings.scrollReveal.classRevealDone );\r\n // console.log( 'done', jThis );\r\n\r\n }\r\n } );\r\n },\r\n reveal: function ( strClass ) {\r\n jQuery( e4.settings.scrollReveal.selector ).each( function () {\r\n var jThis = jQuery( this );\r\n if ( e4.util.isInViewport( jThis ) === true ) {\r\n // console.log( 'reveal', this );\r\n jThis.removeClass( e4.settings.scrollReveal.selector.substring( 1 ) );\r\n jThis.one( e4.settings.event.transitionend, function () {\r\n jThis.removeClass( [\r\n e4.settings.scrollReveal.classConceal,\r\n e4.settings.scrollReveal.classRevealFade,\r\n e4.settings.scrollReveal.classRevealSlide\r\n ].join( ' ' ) );\r\n jThis.addClass( e4.settings.scrollReveal.classRevealDone );\r\n } );\r\n jThis.addClass( strClass );\r\n }\r\n } );\r\n }\r\n};\r\n\r\n","e4.scrollToAnchor = {\r\n init: function () {\r\n e4.scrollToAnchor.animating = false;\r\n e4.scrollToAnchor.goToLocationHash();\r\n e4.scrollToAnchor.bindEvents();\r\n e4.scrollToAnchor.backToTop.init();\r\n },\r\n goToLocationHash: function () {\r\n if ( e4.util.hash.getCurrentHashStringValue() !== '' && location.hash.indexOf( '/' ) === -1 ) {\r\n var intScrollTarget = e4.scrollToAnchor.getTarget( location.hash );\r\n if ( intScrollTarget > -1 ) {\r\n e4.scrollToAnchor.animate( intScrollTarget, e4.header.hide );\r\n }\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( 'a[href*=\"#\"]' ).not( 'a[href*=\"#/\"],a[data-toggle],a[data-slide]' ).on( 'click', function ( event ) {\r\n if ( this.hash === '#top' ) {\r\n event.preventDefault();\r\n e4.scrollToAnchor.animate( 0 );\r\n }\r\n else if ( location.pathname.replace( /^\\//, '' ) === this.pathname.replace( /^\\//, '' ) && location.hostname === this.hostname ) {\r\n event.preventDefault();\r\n e4.scrollToAnchor.animate( e4.scrollToAnchor.getTarget( this.hash ), e4.header.hide );\r\n }\r\n } );\r\n },\r\n getTarget: function ( selector ) {\r\n var jTarget = jQuery( selector ),\r\n jTargetSection = jTarget.closest( '.e-section' ),\r\n intScrollTarget = -1;\r\n if ( jTarget.length === 1 ) {\r\n if ( jTargetSection.hasClass( e4.settings.scrollReveal.selector ) === true ) {\r\n jTargetSection.addClass( e4.settings.scrollReveal.classReset );\r\n }\r\n intScrollTarget = jTarget.offset().top;\r\n if ( jTargetSection.is( e4.settings.scrollToAnchor.fullscreenElements ) === false ) {\r\n intScrollTarget -= e4.scrollToAnchor.getNudge();\r\n }\r\n jQuery( e4.settings.scrollToAnchor.stickyElements ).each( function () {\r\n intScrollTarget -= jQuery( this ).height();\r\n } );\r\n // TODO: Handle sticky+autohide header/cta\r\n intScrollTarget = Math.max( intScrollTarget, 0 );\r\n }\r\n return intScrollTarget;\r\n },\r\n getNudge: function () {\r\n return jQuery( window ).height() / 100 * e4.settings.scrollToAnchor.nudge;\r\n },\r\n animate: function ( intScrollTarget, fnCallback ) {\r\n if ( intScrollTarget > -1 ) {\r\n if ( e4.scrollToAnchor.animating === false ) {\r\n e4.scrollToAnchor.animating = true;\r\n jQuery( 'html,body' ).animate( {\r\n scrollTop: intScrollTarget\r\n }, Math.floor( Math.abs( jQuery( window ).scrollTop() - intScrollTarget ) * e4.settings.scrollToAnchor.speed ), e4.settings.scrollToAnchor.easing, function () {\r\n e4.scrollToAnchor.animating = false;\r\n if ( typeof fnCallback === 'function' ) {\r\n fnCallback();\r\n }\r\n } );\r\n }\r\n }\r\n else {\r\n if ( typeof fnCallback === 'function' ) {\r\n fnCallback();\r\n }\r\n }\r\n },\r\n backToTop: {\r\n init: function () {\r\n if ( jQuery( '.js-e-back-to-top' ).length === 1 ) {\r\n e4.scrollToAnchor.backToTop.bindEvents();\r\n }\r\n },\r\n bindEvents: function () {\r\n e4.scrollToAnchor.backToTop.isRAF = false;\r\n jQuery( window ).on( 'scroll', function () {\r\n if ( e4.scrollToAnchor.backToTop.isRAF === false ) {\r\n window.requestAnimationFrame( function () {\r\n e4.scrollToAnchor.backToTop.toggleVisibility();\r\n e4.scrollToAnchor.backToTop.isRAF = false;\r\n } );\r\n e4.scrollToAnchor.backToTop.isRAF = true;\r\n }\r\n } );\r\n },\r\n toggleVisibility: function () {\r\n var jWindow = jQuery( window ),\r\n intWindowScrollTop = jWindow.scrollTop();\r\n e4.scrollToAnchor.scrollDirectionCurrent = intWindowScrollTop > e4.scrollToAnchor.lastScrollTop ? 'down' : 'up';\r\n if ( e4.scrollToAnchor.scrollDirectionCurrent !== e4.scrollToAnchor.scrollDirectionNew ) {\r\n if ( intWindowScrollTop > jWindow.height() * e4.settings.scrollToAnchor.backToTop.revealOffset ) {\r\n e4.scrollToAnchor.backToTop.show();\r\n }\r\n else {\r\n e4.scrollToAnchor.backToTop.hide();\r\n }\r\n }\r\n e4.scrollToAnchor.scrollDirectionLast = e4.scrollToAnchor.scrollDirectionCurrent;\r\n },\r\n show: function () {\r\n jQuery( '.js-e-back-to-top' ).addClass( 'is-visible' );\r\n },\r\n hide: function () {\r\n jQuery( '.js-e-back-to-top' ).removeClass( 'is-visible' );\r\n }\r\n }\r\n};\r\n\r\n","//https://medium.com/@dhg/parallax-done-right-82ced812e61c#.1y2cgqm4b\r\n\r\ne4.parallax = {\r\n init: function () {\r\n e4.parallax.isRAF = false;\r\n e4.parallax.bindEvents();\r\n e4.parallax.loadImages();\r\n e4.parallax.animate();\r\n },\r\n loadImages: function () {\r\n jQuery( '.js-p-img-parallax' ).each( function () {\r\n jQuery( this ).attr( 'src', this.getAttribute( 'data-src' ) );\r\n } );\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-p-img-parallax' ).on( 'load', function () {\r\n jQuery( this ).addClass( 'is-loaded' );\r\n } );\r\n jQuery( window ).on( 'scroll resize', function () {\r\n if ( e4.parallax.isRAF === false ) {\r\n window.requestAnimationFrame( function () {\r\n e4.parallax.animate();\r\n e4.parallax.isRAF = false;\r\n } );\r\n e4.parallax.isRAF = true;\r\n }\r\n } );\r\n },\r\n animate: function () {\r\n var windowScrollTop = jQuery( window ).scrollTop();\r\n jQuery( '.js-p-img-parallax' ).each( function () {\r\n var jThis = jQuery( this );\r\n if ( e4.util.isInViewport( jThis ) === true ) {\r\n var translateY = Math.round( ( jThis.parent().offset().top - windowScrollTop ) * e4.settings.parallax.speed );\r\n jThis.css( {\r\n 'transform': 'translateY(' + translateY + 'px)'\r\n } );\r\n }\r\n } );\r\n }\r\n};\r\n\r\n","e4.p = {\r\n init: function () {\r\n e4.p.card.init();\r\n e4.p.icon.init();\r\n e4.p.banner.init();\r\n }\r\n};\r\n","e4.p.card = {\r\n init: function () {\r\n e4.p.card.bindEvents();\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-p-card-link' ).on( 'click', ':not(a[href])', function ( event ) {\r\n var jCardLink = jQuery( this ).find( 'a[href]' );\r\n if ( jCardLink.length === 1 && event.target === event.currentTarget && /input|textarea/i.test( event.target.tagName ) === false ) {\r\n if ( jCardLink.attr( 'target' ) === '_blank' ) {\r\n window.open( jCardLink.attr( 'href' ) );\r\n }\r\n else {\r\n location.href = jCardLink.attr( 'href' );\r\n }\r\n jCardLink.triggerHandler( 'click' );\r\n }\r\n } );\r\n }\r\n};\r\n\r\n","e4.p.icon = {\r\n init: function () {\r\n var jSVG = jQuery( '.js-p-icontext-animate svg' );\r\n if ( jSVG.length > 0 ) {\r\n e4.util.require.js( e4.settings.require.drawSVG, function () {\r\n jSVG.drawsvg( {\r\n duration: e4.settings.animation.speed * 5,\r\n stagger: 750\r\n } );\r\n e4.p.icon.animate();\r\n e4.p.icon.bindEvents();\r\n } );\r\n }\r\n },\r\n bindEvents: function () {\r\n e4.p.icon.isRAF = false;\r\n jQuery( window ).on( 'scroll', function () {\r\n if ( e4.p.icon.isRAF === false ) {\r\n window.requestAnimationFrame( function () {\r\n e4.p.icon.animate();\r\n e4.p.icon.isRAF = false;\r\n } );\r\n e4.p.icon.isRAF = true;\r\n }\r\n } );\r\n },\r\n animate: function () {\r\n jQuery( '.js-p-icontext-animate svg' ).each( function () {\r\n var jThis = jQuery( this ),\r\n jThisParagraph = jThis.closest( '.js-p-icontext-animate' );\r\n if ( e4.util.isInViewport( jThisParagraph ) === true ) {\r\n jThis.drawsvg( 'animate' );\r\n jThisParagraph.removeClass( 'js-p-icontext-animate' );\r\n }\r\n } );\r\n }\r\n};\r\n\r\n","e4.p.banner = {\r\n init: function () {\r\n e4.p.banner.loadImages();\r\n e4.p.banner.bindEvents();\r\n },\r\n loadImages: function () {\r\n jQuery( '.js-p-banner-animation-image' ).each( function () {\r\n jQuery( this ).css( 'background-image', 'url(' + this.getAttribute( 'data-src' ) + ')' );\r\n } ).filter( ':first-child' ).addClass( 'animate-in' );\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-p-banner-animation-image-container' ).on( e4.settings.event.animationend, '.js-p-banner-animation-image', function () {\r\n e4.p.banner.animate( this );\r\n } ).on( e4.settings.event.transitionend, '.js-p-banner-animation-image.animate-out', function () {\r\n jQuery( this ).removeClass( 'animate-out' );\r\n } );\r\n jQuery( '.js-p-banner-next-section-link' ).on( 'click', function ( event ) {\r\n event.preventDefault();\r\n e4.p.banner.scrollToNextSection( this );\r\n } );\r\n },\r\n scrollToNextSection: function ( domElm ) {\r\n var intNextSectionOffset = jQuery( domElm ).closest( '.e-section' ).next( '.e-section' ).offset().top;\r\n e4.scrollToAnchor.animate( intNextSectionOffset );\r\n },\r\n animate: function ( domElm ) {\r\n var jImageActive = jQuery( domElm ),\r\n jImageNext = jImageActive.next();\r\n if ( jImageNext.length === 0 ) {\r\n jImageNext = jImageActive.closest( '.js-p-banner-animation-image-container' ).find( '.js-p-banner-animation-image' ).first();\r\n }\r\n jImageNext.addClass( 'animate-in' );\r\n jImageActive.removeClass( 'animate-in' ).addClass( 'animate-out' );\r\n }\r\n};\r\n\r\n","var e4 = e4 || {},\r\n dcc = dcc || {};\r\ndcc.search = {\r\n init: function () {\r\n var jForm = jQuery( '.js-dcc-search-typeahead-form' );\r\n \r\n if ( jForm.length > 0 ) {\r\n dcc.search.populate(jForm);\r\n e4.util.require.js( e4.settings.require.typeahead, function () {\r\n dcc.search.bindEvents();\r\n } );\r\n }\r\n },\r\n populate: function(jSearchForm){\r\n var populationData = jQuery('.js-search-form-template').data();\r\n\r\n jSearchForm.attr('action', populationData.action)\r\n .data('defaultValue', populationData.defaultValue);\r\n\r\n jSearchForm.find('.js-dcc-search-typeahead-input').val(populationData.defaultValue).attr('placeholder', populationData.placeholder);\r\n\r\n dcc.search.viewAllText = populationData.viewAllText;\r\n dcc.search.headerText = populationData.headerText;\r\n dcc.search.viewAllLink = populationData.viewAllLink;\r\n dcc.search.discontinuedUrl = populationData.discontinuedDetailsUrl;\r\n dcc.search.fallbackpage = populationData.fallbackPage;\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-dcc-search-typeahead-mobile-toggle' ).on( 'click', 'span', function ( event ) {\r\n event.preventDefault();\r\n jQuery( '.js-dcc-search-typeahead-mobile-toggle-target' ).toggleClass( 'show' );\r\n } );\r\n jQuery( '.js-dcc-search-typeahead-form' ).on( 'click', '.js-dcc-search-submit', function ( event ) {\r\n jQuery( event.target.form ).trigger( 'submit' );\r\n } ).find( '.js-dcc-search-typeahead-input' ).on( 'keydown', function ( event ) {\r\n if ( event.keyCode === 13 ) {\r\n var jSuggestions = jQuery( event.target.form ).find( '.js-dcc-search-suggestions' ),\r\n jSuggestionActive = jSuggestions.find( '.tt-selectable' ).filter( '.active' ),\r\n jHeader = jQuery( '.js-dcc-search-group-header' ),\r\n jExactProduct = jSuggestions.find( '.js-dcc-search-suggestions-item[data-type=\"product\"]' );\r\n jHeader.removeClass( 'd-block' );\r\n if ( jSuggestionActive.length === 0 && jSuggestions.css( 'display' ) === 'block' ) {\r\n if ( jHeader.length > 0 ) {\r\n jHeader.addClass( 'd-block' );\r\n return false;\r\n }\r\n else {\r\n if ( jExactProduct.length === 1 ) {\r\n event.preventDefault();\r\n jExactProduct.first().trigger( 'click' );\r\n }\r\n else {\r\n if ( dcc.search.query ) {\r\n jQuery( event.target.form ).find( '.js-dcc-search-typeahead-input' ).val( dcc.search.query );\r\n }\r\n jQuery( event.target.form ).trigger( 'submit' );\r\n }\r\n }\r\n }\r\n }\r\n } ).on( 'focus', function ( event ) {\r\n dcc.search.placeholderTxt = jQuery( event.target ).attr( 'placeholder' );\r\n jQuery( event.target ).attr( 'placeholder', '' );\r\n } ).on( 'blur', function ( event ) {\r\n jQuery( event.target ).attr( 'placeholder', dcc.search.placeholderTxt );\r\n } ).typeahead( {\r\n hint: false,\r\n highlight: true,\r\n minLength: 2,\r\n classNames: {\r\n wrapper: 'dcc-search-typeahead-wrapper js-dcc-search-typeahead-wrapper w-100 small',\r\n input: 'js-dcc-search-typeahead-input',\r\n menu: 'js-dcc-search-suggestions dcc-search-suggestions dropdown-menu ',\r\n suggestion: 'js-dcc-search-suggestions-item dropdown-item dcc-search-suggestions-item',\r\n open: 'open',\r\n cursor: 'active',\r\n highlight: 'active'\r\n }\r\n }, dcc.search.getTypeaheadDatasets() ).on( 'typeahead:autocomplete typeahead:select', function ( event, result ) { // typeahead:cursorchange\r\n if ( result !== null ) {\r\n dcc.search.select( result );\r\n //jQuery( event.target ).typeahead( 'close' );\r\n }\r\n } ).on( 'typeahead:active', function ( event ) {\r\n var strValue = jQuery( event.target ).val();\r\n if ( strValue.length > 0 ) {\r\n jQuery( event.target ).val( '' ).val( strValue ).trigger( 'input' );\r\n }\r\n } );\r\n dcc.search.setDefault();\r\n },\r\n testForGroup: function ( obj ) {\r\n return obj.Type === 'group';\r\n },\r\n getTypeaheadDatasets: function () {\r\n return {\r\n name: 'dcc-products',\r\n display: function ( suggestion ) {\r\n return suggestion.Title;\r\n },\r\n limit: 8,\r\n async: true,\r\n source: function ( query, syncResults, asyncResults ) {\r\n // console.log( 'source', query, syncResults, asyncResults );\r\n dcc.search.getSuggestions( query, function ( data ) {\r\n asyncResults( data );\r\n } );\r\n },\r\n templates: {\r\n suggestion: function ( data ) {\r\n return '
' + data.Title + '
';\r\n },\r\n header: function ( data ) {\r\n if ( data.suggestions.some( dcc.search.testForGroup ) === true ) {\r\n return '
' + dcc.search.headerText + '
';\r\n }\r\n },\r\n footer: function ( data ) {\r\n dcc.search.query = data.query;\r\n if ( data.suggestions.every( dcc.search.testForGroup ) === true ) {\r\n dcc.search.query = data.suggestions[ 0 ].Terms;\r\n }\r\n if ( data.suggestions.length === 1 ) {\r\n return '
';\r\n }\r\n return '
';\r\n }\r\n }\r\n };\r\n },\r\n getSuggestions: function ( query, asyncResults ) {\r\n if ( this.jqXHR !== undefined && this.jqXHR.readyState !== 4 ) {\r\n this.jqXHR.abort();\r\n }\r\n query = jQuery.trim( query );\r\n if ( query !== '' ) {\r\n this.jqXHR = jQuery.ajax( {\r\n type: 'GET',\r\n url: '/dccquery',\r\n data: { terms: query },\r\n dataType: 'json'\r\n } );\r\n this.jqXHR.done( function ( data ) {\r\n var productUrl = '',\r\n json = {\r\n suggestions: []\r\n };\r\n if ( data.Groups.length === 1 ) {\r\n productUrl = dcc.search.viewAllLink + encodeURIComponent( data.Terms );\r\n }\r\n jQuery.each( data.Groups, function ( intIndex, objElement ) {\r\n if ( json.suggestions.length < 8 ) {\r\n json.suggestions.push( {\r\n Title: objElement.Name + ' (' + objElement.Count + ')',\r\n Url: objElement.PageQuery,\r\n Type: 'group',\r\n Terms: data.Terms\r\n } );\r\n }\r\n } );\r\n if ( json.suggestions.length < 8 ) {\r\n jQuery.each( data.Products, function ( intIndex, objElement ) {\r\n var isDiscontinuedProduct = objElement.Type === 1,\r\n isSingleProduct = data.Products.length === 1; \r\n if ( isDiscontinuedProduct ) {\r\n productUrl = dcc.search.discontinuedUrl + '?productid=' + objElement.Id;\r\n }\r\n else if ( isSingleProduct === true && data.Groups.length > 0 ) {\r\n productUrl = dcc.search.viewAllLink + encodeURIComponent( query );\r\n } else if(isSingleProduct === true && data.Terms.toLowerCase() !== query.toLowerCase()){\r\n productUrl = dcc.search.viewAllLink + encodeURIComponent( data.Terms );\r\n }\r\n else if ( objElement.Url === '' ) {\r\n productUrl = dcc.search.fallbackpage + '?productid=' + objElement.Id;\r\n }\r\n else {\r\n productUrl = objElement.Url;\r\n }\r\n json.suggestions.push( {\r\n Title: objElement.Title,\r\n Url: productUrl,\r\n Type: 'product',\r\n Terms: data.Terms\r\n } );\r\n } );\r\n }\r\n asyncResults( json.suggestions );\r\n } );\r\n }\r\n },\r\n clear: function () {\r\n jQuery( '.js-dcc-search-typeahead-input' ).typeahead( 'val', '' );\r\n },\r\n setDefault: function () {\r\n var defaultValue = e4.util.getUrlParameter( 'q' );\r\n jQuery( '.js-dcc-search-typeahead-input' ).typeahead( 'val', defaultValue );\r\n },\r\n select: function ( objSuggestion ) {\r\n location.assign( objSuggestion.Url );\r\n }\r\n};\r\n","e4.breadcrumb = {\r\n init: function () {\r\n var jBreadcrumb = jQuery( '.js-e-breadcrumb' ),\r\n jBreadcrumbItemAppend = jQuery( '.js-e-breadcrumb-item-append' );\r\n if ( jBreadcrumb.length === 1 && jBreadcrumbItemAppend.length === 1 ) {\r\n var jBreadcrumbItemLast = jBreadcrumb.find( '.breadcrumb-item' ).last(),\r\n jBreadcrumbItemNew = jBreadcrumbItemLast.clone();\r\n jBreadcrumbItemNew.find( 'a' ).attr( 'href', jBreadcrumbItemAppend.data( 'link' ) );\r\n jBreadcrumbItemNew.find( 'span' ).text( jBreadcrumbItemAppend.data( 'text' ) );\r\n jBreadcrumbItemLast.after( jBreadcrumbItemNew );\r\n }\r\n }\r\n};\r\n\r\n","e4.cookies = {\r\n init: function () {\r\n if ( jQuery( '.js-e-cookie' ).length === 1 ) {\r\n jQuery( '.js-e-cookie' ).removeAttr( 'hidden' );\r\n e4.cookies.bindEvents();\r\n }\r\n },\r\n bindEvents: function () {\r\n var jCookie = jQuery( '.js-e-cookie' );\r\n jCookie.find( '.js-e-cookie-accept-btn' ).on( 'click', function ( event ) {\r\n event.preventDefault();\r\n jQuery.get( e4.settings.cookieAcceptLink );\r\n jCookie.addClass( 'is-accepted' ); \r\n } );\r\n\r\n }\r\n};\r\n\r\n","e4.news = {\r\n init: function () {\r\n e4.news.filter.init();\r\n e4.news.paging();\r\n },\r\n filter: {\r\n timeout: null,\r\n init: function () {\r\n if ( jQuery( '.js-e-news-filter' ).length > 0 ) {\r\n e4.news.filter.bindEvents();\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-e-news-filter' ).on( 'click', '.js-e-news-filter-option', function ( event ) {\r\n event.preventDefault();\r\n e4.news.filter.toggleControls( this );\r\n e4.news.filter.apply( this );\r\n } );\r\n },\r\n toggleControls: function ( domElm ) {\r\n var jThis = jQuery( domElm );\r\n if ( jThis.data( 'filter' ) === '*' ) {\r\n jThis.addClass( 'active' );\r\n jThis.closest( '.js-e-news-filter' ).find( '.js-e-news-filter-option' ).not( '[data-filter=\"*\"]' ).removeClass( 'active' );\r\n }\r\n else {\r\n jThis.toggleClass( 'active' );\r\n jThis.closest( '.js-e-news-filter' ).find( '.js-e-news-filter-option' ).filter( '[data-filter=\"*\"]' ).removeClass( 'active' );\r\n }\r\n },\r\n apply: function ( domElm ) {\r\n var arrSelectorFilter = [],\r\n jThis = jQuery( domElm );\r\n jThis.closest( '.js-e-news-filter' ).find( '.js-e-news-filter-option' ).filter( '.active' ).each( function () {\r\n arrSelectorFilter.push( this.getAttribute( 'data-filter' ) );\r\n } );\r\n if ( arrSelectorFilter.length === 0 ) {\r\n arrSelectorFilter.push( '*' );\r\n jThis.closest( '.js-e-news-filter' ).find( '.js-e-news-filter-option' ).filter( '[data-filter=\"*\"]' ).addClass( 'active' );\r\n }\r\n jThis.closest( '.js-e-news' ).css( 'min-height', function () {\r\n return this.scrollHeight;\r\n } ).addClass( 'is-filtering' );\r\n if ( e4.news.filter.timeout !== null ) {\r\n clearTimeout( e4.news.filter.timeout );\r\n e4.news.filter.timeout = null;\r\n }\r\n e4.news.filter.timeout = setTimeout( function () {\r\n jThis.closest( '.js-e-news' ).find( '.js-e-news-item' ).removeClass( 'd-none' ).not( arrSelectorFilter.join( ',' ) ).addClass( 'd-none' );\r\n jQuery( '.js-e-news' ).removeClass( 'is-filtering' ).css( {\r\n 'min-height': 0\r\n } );\r\n }, e4.settings.animation.speed );\r\n\r\n }\r\n },\r\n paging: function () {\r\n var jNewsPaging = jQuery( '.js-e-news-pagination' );\r\n if ( jNewsPaging.length === 1 ) {\r\n jNewsPaging.find( 'a' ).not( '.js-e-news-pagination-item' ).addClass( 'page-link' );\r\n var jNewsPagingList = jQuery( '.js-e-news-pagination-list-dw' ).find( 'a' ),\r\n jNewsPagingItemTemplate = jQuery( '.js-e-news-pagination-item' ),\r\n jNewsPagingListNew = [];\r\n jNewsPagingList.each( function () {\r\n var jThis = jQuery( this ),\r\n jNewsPagingItemNew = jNewsPagingItemTemplate.clone();\r\n jNewsPagingItemNew.find( 'a' ).attr( 'href', jThis.attr( 'href' ) ).text( jThis.text() );\r\n if ( jThis.find( 'b' ).length === 1 ) {\r\n jNewsPagingItemNew.addClass( 'active' );\r\n }\r\n jNewsPagingListNew.push( jNewsPagingItemNew );\r\n } );\r\n jNewsPagingItemTemplate.replaceWith( jNewsPagingListNew );\r\n }\r\n }\r\n};\r\n\r\n","e4.dealersearch = {\r\n GoogleMapsAPIkey: '',\r\n countrycode: '',\r\n data: {},\r\n jMap: [],\r\n gmMap: {},\r\n gmClusterer: {},\r\n gmGeocoder: function () {},\r\n init: function () {\r\n var jDealersearch = jQuery( '.js-e-dealersearch' );\r\n if ( jDealersearch.length === 1 ) {\r\n e4.dealersearch.GoogleMapsAPIkey = jDealersearch.data( 'googlemapsapikey' );\r\n e4.dealersearch.jMap = jDealersearch.find( '.js-e-dealersearch-googlemap' );\r\n e4.dealersearch.countrycode = jDealersearch.data( 'countrycode' );\r\n e4.dealersearch.getData();\r\n e4.dealersearch.apis.load();\r\n }\r\n },\r\n apis: {\r\n isReady: function () {\r\n return e4.dealersearch.apis.GoogleMaps.ready === true && e4.dealersearch.apis.MarkerClusterer.ready === true && e4.dealersearch.apis.jQueryUImap.ready === true && e4.dealersearch.apis.handlebars.ready === true;\r\n },\r\n load: function () {\r\n e4.dealersearch.apis.GoogleMaps.load();\r\n e4.dealersearch.apis.MarkerClusterer.load();\r\n e4.dealersearch.apis.jQueryUImap.load();\r\n e4.dealersearch.apis.typeahead.load();\r\n e4.dealersearch.apis.handlebars.load();\r\n },\r\n GoogleMaps: {\r\n ready: false,\r\n load: function () {\r\n var gm = document.createElement( 'script' ),\r\n script = document.getElementsByTagName( 'script' )[ 0 ];\r\n gm.src = '//maps.googleapis.com/maps/api/js?key=' + e4.dealersearch.GoogleMapsAPIkey + '&callback=' + 'e4.dealersearch.apis.GoogleMaps.callback'; //TODO: Brug e4 reqiure()\r\n script.parentNode.insertBefore( gm, script );\r\n },\r\n callback: function () {\r\n // console.log( google );\r\n e4.dealersearch.apis.GoogleMaps.ready = true;\r\n if ( e4.dealersearch.apis.isReady() === true ) {\r\n e4.dealersearch.map.init();\r\n }\r\n e4.dealersearch.gmGeocoder = new google.maps.Geocoder();\r\n }\r\n },\r\n jQueryUImap: {\r\n ready: false,\r\n load: function () {\r\n e4.util.require.js( e4.settings.require.jQueryUImap, function () {\r\n e4.dealersearch.apis.jQueryUImap.ready = true;\r\n if ( e4.dealersearch.apis.isReady() === true ) {\r\n e4.dealersearch.map.init();\r\n }\r\n } );\r\n }\r\n },\r\n MarkerClusterer: {\r\n ready: false,\r\n load: function () {\r\n e4.util.require.js( e4.settings.require.MarkerClusterer, function () {\r\n e4.dealersearch.apis.MarkerClusterer.ready = true;\r\n if ( e4.dealersearch.apis.isReady() === true ) {\r\n e4.dealersearch.map.init();\r\n }\r\n } );\r\n }\r\n },\r\n handlebars: {\r\n ready: false,\r\n load: function () {\r\n e4.util.require.js( e4.settings.require.handlebars, function () {\r\n e4.handlebars.registerHelpers( 'loop' );\r\n e4.handlebars.registerTemplates( '#js-e-handlebars-tmpl-typeahead-footer #js-e-handlebars-tmpl-typeahead-pending #js-e-handlebars-tmpl-googlemap-infowindow #js-e-handlebars-tmpl-marker-list' );\r\n e4.dealersearch.apis.handlebars.ready = true;\r\n if ( e4.dealersearch.apis.isReady() === true ) {\r\n e4.dealersearch.map.init();\r\n }\r\n\r\n } );\r\n }\r\n },\r\n typeahead: {\r\n load: function () {\r\n e4.util.require.js( e4.settings.require.typeahead, function () {\r\n e4.dealersearch.form.init();\r\n } );\r\n }\r\n }\r\n\r\n },\r\n search: function ( address ) {\r\n e4.dealersearch.map.setVirginState( false );\r\n e4.dealersearch.markers.updateDistanceToAddress( address );\r\n e4.dealersearch.jMap.gmap( 'get', 'map' ).fitBounds( e4.dealersearch.map.getBoundsByAddress( address ) );\r\n e4.dealersearch.map.fitResults();\r\n e4.dealersearch.list.syncWithMap();\r\n e4.dealersearch.form.hidePlaceholder();\r\n jQuery( '.js-e-dealersearch-input' ).typeahead( 'val', address.formatted_address );\r\n // e4.util.hash.replace( 'dealersearch', address.formatted_address );\r\n\r\n e4.gtm.pushDataLayer( {\r\n 'eventCategory': 'Forhandlersøgning',\r\n 'eventAction': address.formatted_address,\r\n 'eventLabel': location.pathname,\r\n 'eventValue': 0,\r\n 'eventInteraction': false,\r\n 'event': 'track-ga-event'\r\n } );\r\n },\r\n getData: function () {\r\n var intDealersearchID = jQuery( '.js-e-dealersearch' ).data( 'id' );\r\n e4.dealersearch.data = e4.data.dealersearch[ intDealersearchID ].users;\r\n e4.data.dealersearch[ intDealersearchID ].users = null;\r\n },\r\n setCountry: function ( countrycode ) {\r\n e4.dealersearch.countrycode = countrycode;\r\n e4.dealersearch.map.setCenterAndBoundsFromCountry();\r\n e4.dealersearch.form.clearInput();\r\n e4.dealersearch.clusterer.updateMarkers();\r\n },\r\n geoLocation: {\r\n init: function () {\r\n // if ( 'geolocation' in navigator === true ) {\r\n // e4.dealersearch.geoLocation.bindEvents();\r\n // }\r\n },\r\n bindEvents: function () {\r\n\r\n },\r\n search: function () {\r\n navigator.geolocation.getCurrentPosition( function ( position ) {\r\n e4.dealersearch.gmGeocoder.geocode( {\r\n location: {\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude\r\n }\r\n }, function ( addresses, status ) {\r\n if ( status === 'OK' ) {\r\n jQuery.each( addresses[ 0 ].address_components, function ( index, address_component ) {\r\n jQuery.each( address_component.types, function ( index, address_type ) {\r\n if ( address_type === 'country' ) {\r\n //TODO: Lav check for om landet findes i listen.\r\n jQuery( '.js-e-dealersearch-country' ).val( address_component.short_name ).triggerHandler( 'change' );\r\n }\r\n } );\r\n } );\r\n e4.dealersearch.search( addresses[ 0 ] );\r\n jQuery( '.js-e-dealersearch-input' ).typeahead( 'close' );\r\n }\r\n else {\r\n e4.dealersearch.map.logError( status );\r\n }\r\n } );\r\n }, function ( error ) {\r\n e4.gtm.pushDataLayer( {\r\n 'eventCategory': 'navigator.geolocation.getCurrentPosition',\r\n 'eventAction': error.code + ': ' + error.message,\r\n 'eventLabel': location.pathname,\r\n 'eventValue': 0,\r\n 'eventInteraction': false,\r\n 'event': 'track-ga-event'\r\n } );\r\n } );\r\n }\r\n },\r\n\r\n form: {\r\n init: function () {\r\n e4.dealersearch.form.bindEvents();\r\n // var strQuery = e4.util.hash.get( 'dealersearch' );\r\n // if ( strQuery !== undefined ) {\r\n // jQuery( '.js-e-dealersearch-input' ).typeahead( 'val', strQuery ).triggerHandler( 'input' );\r\n // jQuery( '.js-e-dealersearch-form' ).triggerHandler( 'submit' );\r\n // }\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-e-dealersearch-form' ).on( 'submit', function ( event ) {\r\n event.preventDefault();\r\n var jSuggestionFirst = jQuery( this ).find( '.js-e-dealersearch-suggestions' ).find( '.tt-selectable' ).first();\r\n if ( jSuggestionFirst.length === 1 ) {\r\n jSuggestionFirst.trigger( 'click' );\r\n }\r\n else if ( jSuggestionFirst.length === 0 ) {\r\n e4.dealersearch.geoLocation.search();\r\n }\r\n } ).on( 'click', '.js-e-dealersearch-submit', function () {\r\n jQuery( this.form ).triggerHandler( 'submit' );\r\n } ).on( 'click', '.js-e-dealersearch-geolocate', function ( event ) {\r\n event.preventDefault();\r\n e4.dealersearch.geoLocation.search();\r\n } );\r\n jQuery( '.js-e-dealersearch-country' ).on( 'change', function () {\r\n e4.dealersearch.setCountry( this.value );\r\n } );\r\n jQuery( '.js-e-dealersearch-input' ).on( 'keydown', function ( event ) {\r\n if ( event.keyCode === 13 ) {\r\n var jSuggestions = jQuery( this.form ).find( '.js-e-dealersearch-suggestions' ),\r\n jSuggestionActive = jSuggestions.find( '.tt-selectable' ).filter( '.active' );\r\n if ( jSuggestionActive.length === 0 && jSuggestions.css( 'display' ) === 'block' ) {\r\n jQuery( this.form ).triggerHandler( 'submit' );\r\n }\r\n else if ( jSuggestionActive.is( '.js-e-dealersearch-geolocate' ) === true ) {\r\n jSuggestionActive.trigger( 'click' );\r\n }\r\n }\r\n } ).on( 'focus input', function () {\r\n e4.dealersearch.form.hidePlaceholder();\r\n } ).on( 'blur', function () {\r\n if ( this.value === '' ) {\r\n e4.dealersearch.form.showPlaceholder();\r\n }\r\n } );\r\n jQuery( '.js-e-dealersearch-input' ).typeahead( {\r\n hint: true,\r\n highlight: true,\r\n // autoselect: true,\r\n minLength: 0,\r\n classNames: {\r\n wrapper: 'e-dealersearch-typeahead-wrapper js-e-dealersearch-typeahead-wrapper w-100',\r\n input: 'js-e-dealersearch-input',\r\n //hint: 'js-e-dealersearch-input-hint', //https://github.com/twitter/typeahead.js/issues/677#issuecomment-48807067\r\n menu: 'js-e-dealersearch-suggestions e-dealersearch-suggestions dropdown-menu',\r\n //dataset: 'js-e-dealersearch-dataset',\r\n suggestion: 'js-e-dealersearch-suggestions-item dropdown-item',\r\n //empty: ,\r\n open: 'open',\r\n cursor: 'active',\r\n highlight: 'active'\r\n }\r\n }, {\r\n name: 'espresso',\r\n display: 'formatted_address',\r\n limit: 8,\r\n async: true,\r\n source: function ( query, syncResults, asyncResults ) {\r\n e4.dealersearch.form.getSuggestions( query, function ( addresses ) {\r\n asyncResults( addresses );\r\n } );\r\n },\r\n templates: {\r\n pending: function ( data ) {\r\n //console.log( 'pending', data );\r\n return e4.handlebars.tmpl.typeaheadPending( data );\r\n },\r\n // header: function ( data ) {\r\n // //console.log( 'header', data );\r\n // },\r\n footer: function ( data ) {\r\n //console.log( 'footer', data );\r\n return e4.handlebars.tmpl.typeaheadFooter( data );\r\n }\r\n }\r\n } ).on( 'typeahead:autocomplete typeahead:select', function ( event, address ) { // typeahead:cursorchange\r\n if ( address !== null ) {\r\n e4.dealersearch.search( address );\r\n jQuery( this ).typeahead( 'close' );\r\n }\r\n } );\r\n },\r\n getSuggestions: function ( query, asyncResults ) {\r\n e4.dealersearch.gmGeocoder.geocode( {\r\n address: query,\r\n componentRestrictions: {\r\n country: e4.dealersearch.countrycode, //https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes\r\n }\r\n }, function ( addresses, status ) {\r\n if ( status === 'OK' ) {\r\n addresses = addresses.filter( function ( address ) {\r\n return address.address_components[ 0 ].types[ 0 ] !== 'country';\r\n } );\r\n asyncResults( addresses );\r\n }\r\n else {\r\n e4.dealersearch.map.logError( status );\r\n }\r\n } );\r\n },\r\n clearInput: function () {\r\n jQuery( '.js-e-dealersearch-input' ).typeahead( 'val', '' );\r\n\r\n },\r\n showPlaceholder: function () {\r\n jQuery( '.js-e-dealersearch-input-placeholder' ).removeClass( 'is-hidden' );\r\n },\r\n hidePlaceholder: function () {\r\n jQuery( '.js-e-dealersearch-input-placeholder' ).addClass( 'is-hidden' );\r\n }\r\n },\r\n map: {\r\n hasVirginState: true,\r\n init: function () {\r\n e4.dealersearch.jMap.gmap( {\r\n center: e4.dealersearch.map.getCenterByCountry(),\r\n zoom: e4.dealersearch.map.getZoomByCountry(),\r\n mapTypeControl: false,\r\n scrollwheel: false\r\n } ).on( 'init', function () {\r\n // console.log( 'map init' );\r\n e4.dealersearch.map.setCenterAndBoundsFromCountry();\r\n e4.dealersearch.clusterer.init();\r\n e4.dealersearch.markers.init();\r\n e4.dealersearch.list.init();\r\n e4.dealersearch.map.bindEvents();\r\n } );\r\n },\r\n bindEvents: function () {\r\n // google.maps.event.addListener( e4.dealersearch.jMap.gmap( 'get', 'map' ), 'dragend', function () {\r\n // //e4.dealersearch.markers.clearDistanceToAddress();\r\n // } );\r\n\r\n google.maps.event.addListener( e4.dealersearch.jMap.gmap( 'get', 'map' ), 'idle', function () {\r\n if ( e4.dealersearch.map.getVirginState() === true ) {\r\n e4.dealersearch.list.clear();\r\n }\r\n else {\r\n if ( e4.util.getBreakPoint() !== 'xs' && e4.util.getBreakPoint() !== 'sm' ) {\r\n e4.dealersearch.list.syncWithMap();\r\n // console.log( 'sync list from map idle' );\r\n }\r\n }\r\n e4.dealersearch.map.setVirginState( false );\r\n } );\r\n jQuery( window ).on( 'resize', function () {\r\n e4.dealersearch.jMap.gmap( 'refresh' );\r\n } );\r\n },\r\n setVirginState: function ( boolVirginState ) {\r\n e4.dealersearch.map.hasVirginState = boolVirginState;\r\n },\r\n getVirginState: function () {\r\n return e4.dealersearch.map.hasVirginState;\r\n },\r\n setCenterAndBoundsFromCountry: function () {\r\n e4.dealersearch.map.setVirginState( true );\r\n // If custom settings for center and zoom are present.\r\n if ( e4.settings.dealersearch.country[ e4.dealersearch.countrycode ] !== undefined ) {\r\n var gmMap = e4.dealersearch.jMap.gmap( 'get', 'map' );\r\n gmMap.setCenter( e4.dealersearch.map.getCenterByCountry() );\r\n gmMap.setZoom( e4.dealersearch.map.getZoomByCountry() );\r\n }\r\n // If no center and zoom settings are present, use geocode to get values from current country.\r\n else {\r\n e4.dealersearch.gmGeocoder.geocode( {\r\n address: e4.dealersearch.countrycode,\r\n componentRestrictions: {\r\n country: e4.dealersearch.countrycode, //https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes\r\n }\r\n }, function ( addresses, status ) {\r\n if ( status === 'OK' ) {\r\n var mapLatLngBounds = e4.dealersearch.map.getBoundsByAddress( addresses[ 0 ] );\r\n e4.dealersearch.jMap.gmap( 'get', 'map' ).fitBounds( mapLatLngBounds );\r\n }\r\n else {\r\n e4.dealersearch.map.logError( status );\r\n }\r\n } );\r\n }\r\n },\r\n getCenterByCountry: function () {\r\n if ( e4.settings.dealersearch.country[ e4.dealersearch.countrycode ] !== undefined ) {\r\n return new google.maps.LatLng( e4.settings.dealersearch.country[ e4.dealersearch.countrycode ].center );\r\n }\r\n else {\r\n return new google.maps.LatLng( {\r\n lat: 0,\r\n lng: 0\r\n } );\r\n }\r\n },\r\n getZoomByCountry: function () {\r\n if ( e4.settings.dealersearch.country[ e4.dealersearch.countrycode ] !== undefined ) {\r\n return e4.settings.dealersearch.country[ e4.dealersearch.countrycode ].zoom;\r\n }\r\n else {\r\n return 1;\r\n //https://developers.google.com/maps/documentation/static-maps/intro#Zoomlevels\r\n // 1: World\r\n // 5: Landmass/continent\r\n // 10: City\r\n // 15: Streets\r\n // 20: Buildings\r\n }\r\n },\r\n getBoundsByAddress: function ( address ) {\r\n var mapLatLngBounds;\r\n // console.log( address );\r\n if ( address.geometry.viewport !== undefined ) {\r\n mapLatLngBounds = address.geometry.viewport;\r\n }\r\n else if ( address.geometry.bounds !== undefined ) {\r\n mapLatLngBounds = address.geometry.bounds;\r\n }\r\n else {\r\n mapLatLngBounds = new google.maps.LatLngBounds();\r\n mapLatLngBounds.extend( address.geometry.location );\r\n }\r\n return mapLatLngBounds;\r\n },\r\n getMarkersInBounds: function () {\r\n var mapLatLngBounds = e4.dealersearch.jMap.gmap( 'get', 'map' ).getBounds(),\r\n arrMarkersInBounds = [];\r\n jQuery.each( e4.dealersearch.data.markers[ e4.dealersearch.countrycode ], function ( index, marker ) {\r\n if ( mapLatLngBounds.contains( marker.getPosition() ) === true ) {\r\n arrMarkersInBounds.push( marker );\r\n }\r\n } );\r\n return arrMarkersInBounds;\r\n },\r\n extendBoundsToMarker: function ( marker ) {\r\n var mapLatLngBounds = e4.dealersearch.jMap.gmap( 'get', 'map' ).getBounds();\r\n mapLatLngBounds.extend( marker.getPosition() );\r\n e4.dealersearch.jMap.gmap( 'get', 'map' ).fitBounds( mapLatLngBounds );\r\n },\r\n fitResults: function () {\r\n var intMapZoom = e4.dealersearch.jMap.gmap( 'get', 'map' ).getZoom();\r\n // Make sure that map zoom is within min/max settings.\r\n if ( intMapZoom > e4.settings.dealersearch.zoom.max ) {\r\n // console.log( 'max', intMapZoom, e4.settings.dealersearch.zoom.max )\r\n e4.dealersearch.jMap.gmap( 'get', 'map' ).setZoom( e4.settings.dealersearch.zoom.max );\r\n }\r\n else if ( intMapZoom < e4.settings.dealersearch.zoom.min ) {\r\n // console.log( 'min', intMapZoom, e4.settings.dealersearch.zoom.min )\r\n e4.dealersearch.jMap.gmap( 'get', 'map' ).setZoom( intMapZoom + 1 );\r\n }\r\n // If no markers are in bounds, then extend bounds to closest marker.\r\n if ( e4.dealersearch.map.getMarkersInBounds().length === 0 ) {\r\n e4.dealersearch.map.extendBoundsToMarker( e4.dealersearch.data.markers[ e4.dealersearch.countrycode ][ 0 ] );\r\n }\r\n // While markers in bounds is below min reult setting, extend bounds to closest marker.\r\n for ( var m = e4.dealersearch.map.getMarkersInBounds().length; m <= e4.settings.dealersearch.results.min; m++ ) {\r\n // Break if there is no more markers to show.\r\n if ( e4.dealersearch.data.markers[ e4.dealersearch.countrycode ].length > m ) {\r\n\r\n // If marker is within calculated sensitivity distance to previous marker, extend bounds to marker.\r\n if ( e4.dealersearch.data.markers[ e4.dealersearch.countrycode ][ m ].distanceToAddress < e4.dealersearch.data.markers[ e4.dealersearch.countrycode ][ m - 1 ].distanceToAddress * ( 1 + Math.pow( e4.settings.dealersearch.results.sensitivity, m ) ) ) {\r\n e4.dealersearch.map.extendBoundsToMarker( e4.dealersearch.data.markers[ e4.dealersearch.countrycode ][ m ] );\r\n // console.log('added',e4.dealersearch.data.markers[e4.dealersearch.countrycode][ m ].data.name);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n },\r\n logError: function ( strError ) {\r\n e4.gtm.pushDataLayer( {\r\n 'eventCategory': 'Google Maps Error',\r\n 'eventAction': strError,\r\n 'eventLabel': location.pathname,\r\n 'eventValue': 0,\r\n 'eventInteraction': false,\r\n 'event': 'track-ga-event'\r\n } );\r\n }\r\n },\r\n clusterer: {\r\n init: function () {\r\n e4.dealersearch.jMap.gmap( 'set', 'MarkerClusterer', new MarkerClusterer( e4.dealersearch.jMap.gmap( 'get', 'map' ), [], {\r\n maxZoom: e4.settings.dealersearch.zoom.max - 1,\r\n //minimumClusterSize: 5,\r\n averageCenter: true,\r\n //gridSize: 40,\r\n //styles: styles[ style ],\r\n imagePath: '//cdn.rawgit.com/googlemaps/js-marker-clusterer/gh-pages/images/m'\r\n } ) );\r\n },\r\n addMarkers: function () {\r\n e4.dealersearch.jMap.gmap( 'get', 'MarkerClusterer' ).addMarkers( e4.dealersearch.data.markers[ e4.dealersearch.countrycode ] );\r\n },\r\n updateMarkers: function () {\r\n if ( e4.dealersearch.jMap.gmap( 'get', 'MarkerClusterer' ).getTotalMarkers() > 0 ) {\r\n e4.dealersearch.clusterer.clearMarkers();\r\n }\r\n e4.dealersearch.clusterer.addMarkers();\r\n },\r\n clearMarkers: function () {\r\n e4.dealersearch.jMap.gmap( 'get', 'MarkerClusterer' ).clearMarkers();\r\n }\r\n },\r\n markers: {\r\n init: function () {\r\n e4.dealersearch.markers.build();\r\n e4.dealersearch.clusterer.addMarkers();\r\n e4.dealersearch.markers.bindEvents();\r\n },\r\n build: function () {\r\n e4.dealersearch.data.markers = {};\r\n jQuery.each( e4.dealersearch.data, function ( index, user ) {\r\n var lat = parseFloat( user.lat ),\r\n lng = parseFloat( user.lng );\r\n if ( isNaN( lat ) || isNaN( lng ) || Math.abs( lat ) > 90 || Math.abs( lng ) > 180 ) {\r\n console.error( 'Error - lat/lng data not valid for this address: ' + user.name + '' );\r\n }\r\n else if ( user.countrycode !== '' ) {\r\n if ( Array.isArray( e4.dealersearch.data.markers[ user.countrycode ] ) === false ) {\r\n e4.dealersearch.data.markers[ user.countrycode ] = [];\r\n }\r\n e4.dealersearch.data.markers[ user.countrycode ].push( new google.maps.Marker( {\r\n id: user.id,\r\n position: new google.maps.LatLng( lat, lng ),\r\n data: user,\r\n distanceToAddress: 0\r\n } ) );\r\n }\r\n } );\r\n },\r\n bindEvents: function () {\r\n jQuery.each( e4.dealersearch.data.markers, function ( country, arrCountryMarkers ) {\r\n jQuery.each( arrCountryMarkers, function ( index, marker ) {\r\n google.maps.event.addListener( marker, 'click', function () {\r\n e4.dealersearch.jMap.gmap( 'openInfoWindow', {\r\n 'content': e4.dealersearch.markers.getInfoWindowContent( marker )\r\n }, marker );\r\n e4.gtm.pushDataLayer( {\r\n 'eventCategory': 'Forhandlerkort',\r\n 'eventAction': marker.data.name,\r\n 'eventLabel': location.pathname,\r\n 'eventValue': 0,\r\n 'eventInteraction': false,\r\n 'event': 'track-ga-event'\r\n } );\r\n } );\r\n } );\r\n } );\r\n },\r\n get: function ( id ) {\r\n for ( var m = 0; m < e4.dealersearch.data.markers[ e4.dealersearch.countrycode ].length; m++ ) {\r\n if ( e4.dealersearch.data.markers[ e4.dealersearch.countrycode ][ m ].id === id ) {\r\n return e4.dealersearch.data.markers[ e4.dealersearch.countrycode ][ m ];\r\n }\r\n }\r\n return null;\r\n },\r\n getInfoWindowContent: function ( marker ) {\r\n return e4.handlebars.tmpl.googlemapInfowindow( marker.data );\r\n },\r\n showOnMap: function ( marker ) {\r\n //e4.dealersearch.markers.clearDistanceToAddress();\r\n var gmMap = e4.dealersearch.jMap.gmap( 'get', 'map' );\r\n gmMap.panTo( marker.getPosition() );\r\n gmMap.setZoom( e4.settings.dealersearch.zoom.max - 1 );\r\n google.maps.event.trigger( marker, 'click' );\r\n },\r\n updateDistanceToAddress: function ( address ) {\r\n var lat = address.geometry.location.lat(),\r\n lng = address.geometry.location.lng();\r\n jQuery.each( e4.dealersearch.data.markers[ e4.dealersearch.countrycode ], function ( index, marker ) {\r\n marker.distanceToAddress = e4.dealersearch.markers.math.getGreatCircleDistance( lat, lng, marker.getPosition().lat(), marker.getPosition().lng() );\r\n } );\r\n e4.dealersearch.markers.sortByDistanceToAddress();\r\n },\r\n clearDistanceToAddress: function () {\r\n jQuery.each( e4.dealersearch.data.markers[ e4.dealersearch.countrycode ], function ( index, marker ) {\r\n marker.distanceToAddress = 0;\r\n } );\r\n },\r\n sortByDistanceToAddress: function () {\r\n e4.dealersearch.data.markers[ e4.dealersearch.countrycode ].sort( function ( a, b ) {\r\n return a.distanceToAddress - b.distanceToAddress;\r\n } );\r\n },\r\n math: {\r\n formatDistance: function ( number ) {\r\n if ( e4.dealersearch.unitsystem === 'imperial' ) {\r\n number = number / 1.609344;\r\n }\r\n return Math.round( number * 100 ) / 100;\r\n // Number().toLocaleString( e4.settings.lang, {\r\n // minimumFractionDigits: 2\r\n // } );\r\n },\r\n toRadians: function ( number ) {\r\n return number * ( Math.PI / 180 );\r\n },\r\n getGreatCircleDistance: function ( lat1, lng1, lat2, lng2 ) {\r\n // https://en.wikipedia.org/wiki/Haversine_formula\r\n var dLat = e4.dealersearch.markers.math.toRadians( lat2 - lat1 ),\r\n dLng = e4.dealersearch.markers.math.toRadians( lng2 - lng1 ),\r\n a = Math.sin( dLat / 2 ) * Math.sin( dLat / 2 ) + Math.sin( dLng / 2 ) * Math.sin( dLng / 2 ) * Math.cos( e4.dealersearch.markers.math.toRadians( lat1 ) ) * Math.cos( e4.dealersearch.markers.math.toRadians( lat2 ) );\r\n return 6371 * ( 2 * Math.atan2( Math.sqrt( a ), Math.sqrt( 1 - a ) ) );\r\n }\r\n }\r\n },\r\n list: {\r\n init: function () {\r\n e4.dealersearch.list.bindEvents();\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-e-dealersearch-list' ).on( 'click', '.js-e-dealersearch-list-item', function () {\r\n e4.dealersearch.markers.showOnMap( e4.dealersearch.markers.get( jQuery( this ).data( 'id' ) ) );\r\n } ).on( 'click', '.js-e-dealersearch-show-map', function ( event ) {\r\n event.preventDefault();\r\n jQuery( '.js-e-dealersearch-googlemap-container' ).addClass( 'is-active' );\r\n e4.scrollToAnchor.animate( e4.scrollToAnchor.getTarget( '.js-e-dealersearch-googlemap-container' ) );\r\n } );\r\n\r\n },\r\n syncWithMap: function () {\r\n var arrMarkersInBounds = e4.dealersearch.map.getMarkersInBounds(),\r\n json = {\r\n markers: []\r\n };\r\n if ( arrMarkersInBounds.length === 0 ) {\r\n e4.dealersearch.list.clear();\r\n }\r\n else {\r\n jQuery.each( arrMarkersInBounds, function ( index, marker ) {\r\n json.markers.push( jQuery.extend( marker.data, {\r\n distanceToAddress: e4.dealersearch.markers.math.formatDistance( marker.distanceToAddress )\r\n } ) );\r\n } );\r\n jQuery( '.js-e-dealersearch-list' ).removeClass( 'is-empty' ).html( e4.handlebars.tmpl.markerList( json ) );\r\n }\r\n },\r\n clear: function () {\r\n jQuery( '.js-e-dealersearch-list' ).addClass( 'is-empty' ).html( '' );\r\n }\r\n }\r\n};\r\n\r\n","e4.productlist = {\r\n jProductList: jQuery( '.js-e-productlist' ),\r\n hasFilters: false,\r\n doUrlParameterUpdate: true,\r\n init: function () {\r\n if ( e4.productlist.jProductList.length > 0 ) {\r\n e4.util.require.js( e4.settings.require.handlebars, function () {\r\n e4.handlebars.registerHelpers( 'compare compare_extended encoder grouped_each' );\r\n e4.handlebars.registerTemplates( '#js-e-handlebars-tmpl-productlist-filters #js-e-handlebars-tmpl-productlist-products #js-e-handlebars-tmpl-productlist-sort #js-e-handlebars-tmpl-productlist-paging' );\r\n e4.productlist.event = e4.util.registerEvents( 'ready build builded', 'productlist' );\r\n e4.productlist.bindEvents();\r\n e4.productlist.history.init();\r\n if ( e4.productlist.jProductList.data( 'filters' ) === 'True' ) {\r\n e4.productlist.hasFilters = true;\r\n e4.productlist.filters.init();\r\n e4.productlist.modal.init();\r\n }\r\n e4.productlist.jProductList.trigger( e4.productlist.event.ready );\r\n } );\r\n }\r\n },\r\n bindEvents: function () {\r\n e4.productlist.jProductList.on( 'click', '.js-e-productlist-set-pagesize', function ( event ) {\r\n event.preventDefault();\r\n var intPagesize = jQuery( this ).data( 'page-size' );\r\n e4.productlist.setPagesize( intPagesize );\r\n } );\r\n e4.productlist.jProductList.on( 'click', '.js-e-productlist-set-pagenum', function ( event ) {\r\n event.preventDefault();\r\n e4.productlist.setPagenum( this );\r\n } );\r\n e4.productlist.jProductList.on( 'change', '.js-e-productlist-sort-select', function () {\r\n e4.productlist.setSort( this );\r\n } );\r\n e4.productlist.jProductList.each( function () {\r\n jQuery( this ).on( 'click', '.js-e-products-item a', function () {\r\n e4.productlist.history.setState();\r\n } );\r\n } );\r\n e4.productlist.jProductList.on( 'mouseenter', '.js-e-products-item', function (event) {\r\n e4.productlist.jProductList.find('.dropdown-menu').removeClass('show');\r\n } );\r\n },\r\n filters: {\r\n init: function () {\r\n e4.productlist.filters.bindEvents();\r\n e4.productlist.filters.collapse.init();\r\n e4.productlist.filters.range.init();\r\n e4.productlist.filters.search.init();\r\n },\r\n bindEvents: function () {\r\n e4.productlist.jProductList.find( '.js-e-productlist-form' ).on( 'submit', function ( event ) {\r\n event.preventDefault();\r\n e4.productlist.data.post( jQuery( event.target ).serialize(), e4.productlist.jProductList.offset().top );\r\n } );\r\n e4.productlist.jProductList.on( 'change', '.js-e-productlist-filter', function () {\r\n e4.productlist.filters.applyFilters( this );\r\n } );\r\n e4.productlist.jProductList.on( 'click', '.js-e-productlist-filters-remove', function ( event ) {\r\n event.preventDefault();\r\n e4.productlist.filters.removeFilter( this );\r\n } );\r\n jQuery( document ).on( 'click', '.js-e-productlist-filters-clear-all', function ( event ) {\r\n event.preventDefault();\r\n e4.productlist.filters.resetAll();\r\n } );\r\n e4.productlist.jProductList.on( 'change', '.js-e-productlist-filters-option-reset-group', function ( event ) {\r\n event.preventDefault();\r\n if ( jQuery( this ).is( ':checked' ) === true ) {\r\n e4.productlist.filters.resetGroup( this );\r\n }\r\n else {\r\n jQuery( this ).prop( 'checked', true );\r\n }\r\n } );\r\n e4.productlist.jProductList.on( 'click', '.js-e-productlist-filters-options-collapse-peek-toggle', function ( event ) {\r\n event.preventDefault();\r\n e4.productlist.filters.collapse.peek.toggle( this );\r\n } );\r\n jQuery( document ).on( 'click', '.js-e-productlist-filters-range-clear', function ( event ) {\r\n event.preventDefault();\r\n jQuery( '.js-e-productlist-filters-range-group' ).find( '.js-e-productlist-filters-range' ).val( '' );\r\n e4.productlist.data.post( e4.productlist.jProductList.find( '.js-e-productlist-form' ).serialize(), e4.productlist.jProductList.offset().top ); //Brug ProductList fra namespace.\r\n } );\r\n },\r\n refresh: function () {\r\n e4.productlist.filters.collapse.init();\r\n },\r\n applyFilters: function ( domElm ) {\r\n var jThis = jQuery( domElm );\r\n jThis.closest( '.js-e-productlist-filters-group' ).find( '.js-e-productlist-filters-option-reset-group' ).prop( 'checked', false );\r\n if ( jThis.is( ':checked' ) === false ) {\r\n var checkedLength = jThis.closest( '.js-e-productlist-filters-group' ).find( '.js-e-productlist-filter' ).filter( ':checked' ).length;\r\n if ( checkedLength === 0 ) {\r\n jThis.closest( '.js-e-productlist-filters-group' ).find( '.js-e-productlist-filters-option-reset-group' ).prop( 'checked', true );\r\n }\r\n }\r\n jQuery( 'input[name=\"PageNum\"]' ).val( 1 );\r\n e4.productlist.data.post();\r\n },\r\n removeFilter: function ( domElm ) {\r\n var strValue = jQuery( domElm ).data( 'value' );\r\n e4.productlist.jProductList.find( '.js-e-productlist-filter[value=\"' + strValue + '\"]' ).prop( 'checked', false );\r\n e4.productlist.data.post();\r\n },\r\n resetGroup: function ( domElm ) {\r\n jQuery( domElm ).closest( '.js-e-productlist-filters-group' ).find( '.js-e-productlist-filter' ).prop( 'checked', false );\r\n e4.productlist.data.post();\r\n },\r\n resetAll: function () {\r\n jQuery( 'input[name=\"PageNum\"]' ).val( 1 );\r\n e4.productlist.jProductList.find( '.js-e-productlist-filter' ).prop( 'checked', false );\r\n e4.productlist.jProductList.find( '.js-e-search-input' ).val( '' );\r\n e4.productlist.jProductList.find( '.js-e-productlist-filters-range' ).val( '' );\r\n e4.productlist.data.post( e4.productlist.jProductList.find( '.js-e-productlist-form' ).serialize(), 0 );\r\n },\r\n collapse: {\r\n init: function () {\r\n jQuery( '.js-e-productlist-filters-group-options' ).each( function () {\r\n var jThis = jQuery( this ),\r\n jPeekable = jThis.find( '.js-e-productlist-filters-options-collapse-peek' );\r\n if ( jThis.is( '.collapse' ) === true ) {\r\n jThis.addClass( 'show' );\r\n }\r\n if ( jPeekable.length === 1 ) {\r\n e4.productlist.filters.collapse.peek.setHeight( jPeekable );\r\n }\r\n if ( jThis.is( '.is-expanded' ) === false ) {\r\n jThis.removeClass( 'show' );\r\n }\r\n } );\r\n },\r\n peek: {\r\n setHeight: function ( jPeekable ) {\r\n var jFilterOptions = jPeekable.find( '.js-e-productlist-filters-option' ),\r\n intPeekOptionCount = parseInt( jQuery( '.js-e-visible-options-count' ).val() ) + 1.5,\r\n intHeightPeek = Math.ceil( jFilterOptions.first().outerHeight() ) * intPeekOptionCount,\r\n intHeightInitial = jPeekable.get( 0 ).scrollHeight,\r\n intHeightToggleButton = jPeekable.find( '.js-e-productlist-filters-options-collapse-peek-toggle' ).outerHeight();\r\n if ( jFilterOptions.filter( '.is-selected' ).length === 0 && jFilterOptions.length > intPeekOptionCount && intHeightInitial > intHeightPeek * e4.settings.collapse.peekSizeMin ) {\r\n // console.log( domElm, domElm.scrollHeight );\r\n jPeekable.data( {\r\n 'height-peek': intHeightPeek + intHeightToggleButton,\r\n 'height-initial': intHeightInitial + intHeightToggleButton\r\n } );\r\n jPeekable.addClass( 'is-peeking' );\r\n jPeekable.css( 'max-height', jPeekable.data( 'height-peek' ) );\r\n }\r\n else {\r\n jPeekable.removeClass( 'e-productlist-filters-options-collapse-peek is-peeking' );\r\n jPeekable.find( '.js-e-productlist-filters-options-collapse-peek-toggle' ).remove();\r\n }\r\n },\r\n toggle: function ( domElm ) {\r\n var jPeekable = jQuery( domElm ).closest( '.js-e-productlist-filters-options-collapse-peek' );\r\n if ( jPeekable.is( '.is-peeking' ) === true ) {\r\n jPeekable.removeClass( 'is-peeking' );\r\n jPeekable.css( 'max-height', jPeekable.data( 'height-initial' ) );\r\n }\r\n else {\r\n jPeekable.addClass( 'is-peeking' );\r\n jPeekable.css( 'max-height', jPeekable.data( 'height-peek' ) );\r\n }\r\n }\r\n }\r\n },\r\n range: {\r\n init: function () {\r\n e4.productlist.filters.range.bindEvents();\r\n },\r\n bindEvents: function () {\r\n e4.productlist.jProductList.on( 'click', '.js-e-productlist-filters-apply-range', function () {\r\n jQuery( 'input[name=\"PageNum\"]' ).val( 1 );\r\n e4.productlist.data.post();\r\n } );\r\n }\r\n },\r\n search: {\r\n init: function () {\r\n e4.productlist.filters.search.bindEvents();\r\n },\r\n bindEvents: function () {\r\n e4.productlist.jProductList.on( 'keyup', '.js-e-search-input', function ( event ) {\r\n if ( event.keyCode === 8 && event.target.value.length === 0 ) {\r\n e4.search.clearInput( event.target );\r\n e4.search.toggleInputGroupState( jQuery( event.target ).closest( '.js-e-search-input-group' ).find( '.js-e-search-input' )[ 0 ] );\r\n }\r\n if ( event.keyCode === 13 ) {\r\n e4.productlist.data.post();\r\n }\r\n } );\r\n e4.productlist.jProductList.on( 'click', '.js-e-productlist-filters-search-submit', function ( event ) {\r\n event.preventDefault();\r\n e4.productlist.data.post();\r\n } );\r\n e4.productlist.jProductList.on( 'click', '.js-e-productlist-filters-search-clear', function ( event ) {\r\n event.preventDefault();\r\n e4.productlist.jProductList.find( '.js-e-search-input' ).val( '' );\r\n e4.productlist.data.post();\r\n } );\r\n e4.productlist.jProductList.on( 'click', '.js-e-search-clear', function ( event ) {\r\n e4.search.clearInput( event.target );\r\n e4.search.toggleInputGroupState( jQuery( event.target ).closest( '.js-e-search-input-group' ).find( '.js-e-search-input' )[ 0 ] );\r\n //e4.productlist.data.post();\r\n } );\r\n }\r\n }\r\n },\r\n modal: {\r\n init: function () {\r\n e4.productlist.modal.bindEvents();\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-e-productlist-filters-modal' ).on( 'show.bs.modal', function () {\r\n e4.util.hash.set( 'isModalFilter', 'true' );\r\n } ).on( 'hide.bs.modal', function () {\r\n jQuery( '.js-e-products-loading-overlay' ).addClass( 'is-loading' );\r\n e4.util.hash.remove( 'isModalFilter' );\r\n setTimeout( function () {\r\n jQuery( '.js-e-products-loading-overlay' ).removeClass( 'is-loading' );\r\n }, e4.settings.ecom.filters.delay );\r\n } );\r\n }\r\n },\r\n setPagesize: function ( intPagesize ) {\r\n e4.productlist.jProductList.find( 'input[name=\"PageSize\"]' ).val( intPagesize );\r\n e4.productlist.jProductList.find( 'input[name=\"PageNum\"]' ).val( 1 );\r\n e4.productlist.data.post();\r\n },\r\n setPagenum: function ( domElm ) {\r\n var intPagenum = jQuery( domElm ).data( 'page-num' );\r\n e4.productlist.jProductList.find( 'input[name=\"PageNum\"]' ).val( intPagenum );\r\n e4.productlist.data.post();\r\n },\r\n setSort: function ( domElm ) {\r\n var arrSelectSortValue = jQuery( domElm ).val().split( ' ' );\r\n if ( arrSelectSortValue.length === 2 ) {\r\n e4.productlist.jProductList.find( 'input[name=\"Sort\"]' ).val( arrSelectSortValue[ 0 ] + ' ' + arrSelectSortValue[ 1 ] );\r\n e4.productlist.jProductList.find( 'input[name=\"SortBy\"]' ).val( arrSelectSortValue[ 0 ] );\r\n e4.productlist.jProductList.find( 'input[name=\"SortOrder\"]' ).val( arrSelectSortValue[ 1 ] );\r\n }\r\n else {\r\n e4.productlist.jProductList.find( 'input[name=\"SortBy\"], input[name=\"SortOrder\"]' ).val( '' );\r\n }\r\n e4.productlist.data.post();\r\n },\r\n setScrollTop: function ( intScrollTop ) {\r\n var jWindow = jQuery( window );\r\n if ( intScrollTop < jWindow.scrollTop() ) {\r\n intScrollTop -= jWindow.height() / 100 * e4.settings.scrollToAnchor.nudge;\r\n e4.scrollToAnchor.animate( intScrollTop, e4.header.hide );\r\n }\r\n },\r\n history: {\r\n params: null,\r\n utms: {},\r\n init: function () {\r\n if ( history.state !== null && history.state.params !== '' && e4.productlist.hasFilters === true ) {\r\n e4.productlist.data.post( history.state.params, history.state.scrollTop );\r\n }\r\n else {\r\n if ( e4.productlist.jProductList.data( 'filters' ) === 'True' ) {\r\n e4.productlist.jProductList.each( function () {\r\n e4.productlist.data.post( jQuery( this ).find( '.js-e-productlist-form' ).serialize(), 0, jQuery( this ) );\r\n } );\r\n }\r\n \r\n }\r\n e4.productlist.history.bindEvents();\r\n },\r\n bindEvents: function () {\r\n jQuery( window ).on( 'popstate', function ( event ) {\r\n if ( event.originalEvent.state !== null ) {\r\n e4.productlist.data.post( event.originalEvent.state.params, event.originalEvent.state.scrollTop );\r\n }\r\n } );\r\n },\r\n setState: function () {\r\n var strUrlParam = e4.productlist.history.getParams(),\r\n stateObj = {\r\n params: e4.productlist.history.params,\r\n scrollTop: jQuery( window ).scrollTop()\r\n };\r\n if ( e4.productlist.hasFilters === false ) {\r\n e4.settings.ecom.filters.cleanUrl = true;\r\n }\r\n \r\n if(jQuery( '#js-e-productlist-filters' ).length > 0) {\r\n history.replaceState( stateObj, null, location.pathname + ( e4.settings.ecom.filters.cleanUrl === false ? strUrlParam : '' ) );\r\n }\r\n },\r\n getParams: function () {\r\n var paramArr = e4.productlist.history.params.split( '&' );\r\n for ( var i = paramArr.length - 1; i >= 0; i-- ) {\r\n if ( paramArr[ i ].indexOf( 'PageUrl' ) > -1 ) {\r\n paramArr.splice( i, 1 );\r\n }\r\n else if ( paramArr[ i ].indexOf( 'reset-filter-' ) > -1 ) {\r\n paramArr.splice( i, 1 );\r\n }\r\n else if ( paramArr[ i ].indexOf( 'fg=' ) > -1 ) {\r\n paramArr.splice( i, 1 );\r\n }\r\n else if ( paramArr[ i ].indexOf( 'ViewPageID' ) > -1 ) {\r\n paramArr.splice( i, 1 );\r\n }\r\n /*\r\n else if ( paramArr[ i ].indexOf( 'SortBy' ) > -1 ) {\r\n paramArr.splice( i, 1 );\r\n }\r\n else if ( paramArr[ i ].indexOf( 'SortOrder' ) > -1 ) {\r\n paramArr.splice( i, 1 );\r\n }\r\n */\r\n else if ( paramArr[ i ].indexOf( 'PageSize' ) > -1 ) {\r\n paramArr.splice( i, 1 );\r\n }\r\n else if ( paramArr[ i ].indexOf( 'PriceRangeMin' ) > -1 ) {\r\n paramArr.splice( i, 1 );\r\n }\r\n else if ( paramArr[ i ].indexOf( 'PriceRangeMax' ) > -1 ) {\r\n paramArr.splice( i, 1 );\r\n }\r\n }\r\n var urlParams = paramArr.join( '&' );\r\n if ( urlParams.indexOf( '?' ) === -1 ) {\r\n urlParams = '?' + urlParams;\r\n }\r\n return urlParams;\r\n }\r\n },\r\n data: {\r\n hasLoadedQuery: false,\r\n processUrlParams: function ( strUrlParam ) {\r\n var userAddedUrlParams = location.search.substring( 1 ),\r\n userAddedUrlArr = userAddedUrlParams.split( '&' );\r\n for ( var i = 0; i < userAddedUrlArr.length; i++ ) {\r\n var splitParams = userAddedUrlArr[ i ].split( '=' );\r\n if ( splitParams[ 0 ].indexOf( 'utm_' ) > -1 ) {\r\n e4.productlist.history.utms[ splitParams[ 0 ] ] = splitParams[ 1 ];\r\n }\r\n if ( strUrlParam.indexOf( userAddedUrlArr[ i ] ) === -1 ) {\r\n strUrlParam += '&' + userAddedUrlArr[ i ];\r\n }\r\n }\r\n return strUrlParam;\r\n },\r\n post: function ( strUrlParam, intScrollTop, jProductList ) {\r\n if ( !jProductList ) {\r\n jProductList = e4.productlist.jProductList;\r\n }\r\n var strCustomUrl = jProductList.find( '.js-e-productlist-form' ).data( 'action' );\r\n strUrlParam = jProductList.find( '.js-e-productlist-form' ).serialize();\r\n if ( intScrollTop === undefined ) {\r\n intScrollTop = jProductList.offset().top;\r\n }\r\n if ( location.search.length > 1 && e4.productlist.doUrlParameterUpdate === true ) {\r\n strUrlParam = e4.productlist.data.processUrlParams( strUrlParam );\r\n }\r\n jQuery.ajax( {\r\n type: 'GET',\r\n url: strCustomUrl !== '' ? strCustomUrl : e4.settings.ecom.filters.url,\r\n cache: false,\r\n data: strUrlParam,\r\n beforeSend: function () {\r\n jQuery( '.js-e-products-loading-overlay' ).addClass( 'is-loading' );\r\n }\r\n } )\r\n .done( function ( data ) {\r\n if ( Object.keys( e4.productlist.history.utms ).length > 0 ) {\r\n jQuery.each( e4.productlist.history.utms, function ( key, value ) {\r\n if ( strUrlParam.indexOf( key + '=' + value ) === -1 ) {\r\n strUrlParam += '&' + key + '=' + value;\r\n }\r\n } );\r\n }\r\n //e4.productlist.history.utms = {};\r\n e4.productlist.history.params = strUrlParam;\r\n e4.productlist.doUrlParameterUpdate = false;\r\n e4.loading.resolveWait( '#' + jProductList.attr( 'id' ) );\r\n e4.productlist.data.handler( data, jProductList );\r\n e4.productlist.setScrollTop( intScrollTop );\r\n } )\r\n .fail( function ( error ) {\r\n console.error( error );\r\n } )\r\n .always( function () {\r\n jQuery( '.js-e-products-loading-overlay' ).removeClass( 'is-loading' );\r\n } );\r\n },\r\n handler: function ( data, jProductList ) {\r\n var selectedOptionsCount = 0;\r\n if ( e4.productlist.hasFilters === true ) {\r\n for ( var i = 0; i < data.facets.length; i++ ) {\r\n selectedOptionsCount += data.facets[ i ].selectedOptions.length;\r\n }\r\n if ( data.page.q !== null && data.page.q !== '' ) {\r\n //selectedOptionsCount++;\r\n }\r\n if ( ( data.page.minPrice.clean !== null && data.page.minPrice.clean !== '' ) && ( data.page.maxPrice.clean !== null && data.page.maxPrice.clean !== '' ) ) {\r\n selectedOptionsCount++;\r\n }\r\n data.page.filtersAppliedCount = selectedOptionsCount;\r\n if ( selectedOptionsCount > 0 ) {\r\n data.page.hasNoInteraction = false;\r\n }\r\n if ( e4.util.hash.get( 'isModalFilter' ) === 'true' ) {\r\n data.page.isModalFilter = true;\r\n }\r\n }\r\n e4.productlist.data.build( data, jProductList );\r\n },\r\n build: function ( data, jProductList ) {\r\n jProductList.trigger( e4.productlist.event.build );\r\n //if ( data.page.hasNoInteraction === false ) {\r\n e4.productlist.history.setState();\r\n //}\r\n var jFilters = jQuery( '#js-e-productlist-filters' ),\r\n jFiltersModal = jQuery( '#js-e-productlist-filters-modal' ),\r\n jFiltersModalBody = jFiltersModal.find( '#js-e-productlist-filters-modal-body' ),\r\n jSort = jProductList.find( '.js-e-productlist-sort' ),\r\n jPaging = jProductList.find( '.js-e-productlist-paging' );\r\n if ( e4.productlist.hasFilters === true ) {\r\n var strFiltersHtml = e4.handlebars.tmpl.productlistFilters( data );\r\n if ( jFilters.is( ':visible' ) === true ) {\r\n jFilters.html( strFiltersHtml );\r\n }\r\n else {\r\n jFiltersModalBody.html( strFiltersHtml );\r\n }\r\n }\r\n if ( jSort.length > 0 ) {\r\n jSort.html( e4.handlebars.tmpl.productlistSort( data ) );\r\n }\r\n if ( jPaging.length > 0 ) {\r\n jPaging.html( e4.handlebars.tmpl.productlistPaging( data ) );\r\n }\r\n e4.productlist.filters.refresh();\r\n if ( data && data.page && data.page.isModalFilter === true ) {\r\n jQuery( '.js-e-productlist-filters-modal' ).addClass( 'show' ).modal( 'show' );\r\n }\r\n if(data){\r\n if ( data.page && data.page.isModalFilter === true ) {\r\n jQuery( '.js-e-productlist-filters-modal' ).addClass( 'show' ).modal( 'show' );\r\n }\r\n if(data.page && data.page.productCount){\r\n jQuery( '.js-e-productlist-product-count' ).html( data.page.productCount );\r\n }\r\n if(data.page && data.page.filtersAppliedCount){\r\n jQuery( '.js-e-productlist-filters-applied-count' ).html( data.page.filtersAppliedCount === 0 ? '' : data.page.filtersAppliedCount );\r\n }\r\n if(typeof e4.handlebars.tmpl.productlistProducts === 'function'){\r\n jProductList.find( '.js-e-productlist-products' ).html( e4.handlebars.tmpl.productlistProducts( data ) );\r\n }\r\n \r\n }\r\n \r\n \r\n jProductList.trigger( e4.productlist.event.builded );\r\n }\r\n }\r\n};\r\n\r\n","e4.product = {\r\n init: function () {\r\n if ( jQuery( '.js-e-product-form, .js-e-productlist' ).length > 0 ) {\r\n e4.product.bindEvents();\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( document ).on( 'submit', '.js-e-product-form', function ( event ) {\r\n var jForm = jQuery( event.target );\r\n if ( jForm.is( '.js-e-product-form-removefromcart' ) === true ) {\r\n e4.product.removeFromCart( event );\r\n }\r\n else /* if ( jForm.is( '.js-e-product-form-addtocart' ) === true )*/ {\r\n e4.product.addToCart( event );\r\n }\r\n } );\r\n },\r\n addToCart: function ( event ) {\r\n event.preventDefault();\r\n var jForm = jQuery( event.target ),\r\n arrFormData = jForm.serializeArray(),\r\n objFormData = {};\r\n for ( var i = 0; i < arrFormData.length; i++ ) {\r\n objFormData[ arrFormData[ i ].name ] = arrFormData[ i ].value;\r\n }\r\n jQuery.extend( objFormData, {\r\n Redirect: false\r\n } );\r\n if ( jForm.is( '.js-e-product-form-download' ) === true ) {\r\n e4.download.cart.addProduct( objFormData );\r\n }\r\n else {\r\n e4.cart.addProduct( objFormData );\r\n }\r\n },\r\n removeFromCart: function ( event ) {\r\n event.preventDefault();\r\n var jForm = jQuery( event.target ),\r\n arrFormData = jForm.serializeArray(),\r\n objFormData = {};\r\n for ( var i = 0; i < arrFormData.length; i++ ) {\r\n objFormData[ arrFormData[ i ].name ] = arrFormData[ i ].value;\r\n }\r\n jQuery.extend( objFormData, {\r\n Redirect: false\r\n } );\r\n if ( jForm.is( '.js-e-product-form-download' ) === true ) {\r\n e4.download.cart.removeProduct( objFormData );\r\n }\r\n else {\r\n e4.cart.removeProduct( objFormData );\r\n }\r\n }\r\n};\r\n","e4.cart = {\r\n cartContent: {},\r\n isCleanCart: false,\r\n init: function () {\r\n if ( jQuery( '.js-e-cart-form' ).length === 1 ) {\r\n e4.util.require.js( e4.settings.require.handlebars, function () {\r\n e4.handlebars.registerHelpers( 'loop compare compare_extended' );\r\n e4.handlebars.registerTemplates( '#js-e-handlebars-tmpl-cart-orderlines #js-e-handlebars-tmpl-cart-summery' );\r\n // ATTENTION: Please note that all product-add/remove events are trigger on jQuery( document ) and not\r\n // the cart element.\r\n e4.cart.event = e4.util.registerEvents( 'load loaded update updated productadd productadded productremove productremoved orderlinedelete orderlinedeleted orderlineincrease orderlinedecrease', 'cart' );\r\n e4.cart.bindEvents();\r\n e4.cart.orderline.init();\r\n e4.cart.load();\r\n } );\r\n }\r\n else if ( jQuery( '.js-e-cart-quantity' ).length > 0 ) {\r\n e4.cart.event = e4.util.registerEvents( 'productadd productadded productremove productremoved', 'cart' );\r\n e4.cart.updateQuantity();\r\n e4.cart.msg.init();\r\n }\r\n },\r\n handleConfigLines: {\r\n instances: [],\r\n clearLines: function () {\r\n Object.keys( sessionStorage ).forEach( function ( key ) {\r\n if ( key.indexOf( 'dcc.config.total' ) > -1 ) {\r\n sessionStorage.removeItem( key );\r\n }\r\n } );\r\n },\r\n getLines: function () {\r\n var returnValue = [];\r\n Object.keys( sessionStorage ).forEach( function ( key ) {\r\n if ( key.indexOf( 'dcc.config.total' ) > -1 ) {\r\n returnValue.push( JSON.parse( sessionStorage.getItem( key ) ) );\r\n }\r\n } );\r\n return returnValue;\r\n },\r\n findLines: function () {\r\n var configOrderlines = jQuery( '.js-e-orderline.product-orderline[data-is-config-parent=\"true\"]' );\r\n e4.cart.handleConfigLines.clearLines();\r\n configOrderlines.each( function ( index, domOl ) {\r\n var olId = domOl.id,\r\n jLastLine = null,\r\n jServiceFeeLine = jQuery( domOl ).next( '.js-e-orderline.warranty-orderline' ),\r\n jWarrentyLine = null,\r\n jAutopilotLine = jQuery('.js-e-cart-orderlines').find('.autopilot-orderline').filter(function(index, autoDomEl){\r\n return autoDomEl.dataset.parentId === olId;\r\n });\r\n \r\n if ( jServiceFeeLine.length === 1 ) {\r\n jWarrentyLine = jServiceFeeLine.nextAll( '.js-e-orderline.service-orderline' ).first();\r\n if ( jWarrentyLine.length === 1 ) {\r\n jLastLine = jWarrentyLine;\r\n }\r\n else {\r\n if(jAutopilotLine.length){\r\n jLastLine = jAutopilotLine;\r\n } else{\r\n jLastLine = jServiceFeeLine;\r\n jWarrentyLine = null;\r\n }\r\n \r\n \r\n }\r\n \r\n }\r\n else {\r\n jWarrentyLine = jQuery( domOl ).nextAll( '.js-e-orderline.service-orderline' ).first();\r\n jServiceFeeLine = null;\r\n if ( jWarrentyLine.length === 1 ) {\r\n jLastLine = jWarrentyLine;\r\n }\r\n else {\r\n if(jAutopilotLine.length === 1){\r\n jLastLine = jAutopilotLine;\r\n }\r\n jWarrentyLine = null;\r\n }\r\n }\r\n \r\n e4.cart.handleConfigLines.buildTotalLineInCart( jQuery( domOl ), jAutopilotLine, jServiceFeeLine, jWarrentyLine, jLastLine );\r\n } );\r\n },\r\n buildTotalLineInCart: function ( jConfigLine, jAutopilotLine, jServiceLine, jWarrentyLine, jLastLine ) {\r\n if(jLastLine !== null){\r\n var totalPrice = 0,\r\n configLineQuantity = jConfigLine.data( 'quantity' ),\r\n configPrice = jConfigLine !== null ? e4.util.formatStringToJavascriptNumber( jConfigLine.data( 'price' ) ) / configLineQuantity : 0,\r\n servicePrice = jServiceLine !== null ? e4.util.formatStringToJavascriptNumber( jServiceLine.data( 'price' ) ) / configLineQuantity : 0,\r\n autopilotPrice = jAutopilotLine.length > 0 ? e4.util.formatStringToJavascriptNumber( jAutopilotLine.data( 'price' ) ) / configLineQuantity : 0,\r\n warrentyPrice = jWarrentyLine !== null ? e4.util.formatStringToJavascriptNumber( jWarrentyLine.data( 'price' ) ) / configLineQuantity : 0;\r\n \r\n totalPrice += configPrice;\r\n totalPrice += servicePrice;\r\n totalPrice += autopilotPrice;\r\n totalPrice += warrentyPrice;\r\n var totalTmp = jQuery( '.js-config-total-tmpl' ).html(),\r\n jTotalMarkup = jQuery( totalTmp );\r\n jTotalMarkup.find( '.js-config-total-price .e-price-price' ).html( e4.util.formatJavascriptNumberToLocaleString( totalPrice ) );\r\n jLastLine.after( jTotalMarkup );\r\n if(servicePrice > 0){\r\n jServiceLine.find('.js-dcc-service-unit-price .e-price-price').html(e4.util.formatJavascriptNumberToLocaleString(servicePrice));\r\n }\r\n sessionStorage.setItem( 'dcc.config.total.' + jLastLine.attr( 'id' ), JSON.stringify( {\r\n lastLineId: jLastLine.attr( 'id' ),\r\n configLineId: jConfigLine.attr('id'),\r\n isServiceFee: jWarrentyLine === null && jServiceLine !== null,\r\n totalPrice: totalPrice\r\n } ) );\r\n }\r\n \r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-e-cart-form' ).on( 'submit', function ( event ) {\r\n event.preventDefault();\r\n } );\r\n },\r\n ajax: function ( objAjaxSettings, fnCallback ) {\r\n var jqXHR = jQuery.ajax( jQuery.extend( {\r\n url: e4.settings.ecom.cart.url,\r\n method: 'POST',\r\n dataType: 'json',\r\n cache: false\r\n }, objAjaxSettings ) );\r\n jqXHR.done( function ( data ) {\r\n if ( typeof fnCallback === 'function' ) {\r\n fnCallback( data );\r\n }\r\n } );\r\n },\r\n load: function () {\r\n var jCart = jQuery( '.js-e-cart' );\r\n jCart.trigger( e4.cart.event.load );\r\n e4.cart.ajax( {\r\n method: 'GET',\r\n beforeSend: function () {\r\n jCart.find( '.js-e-loading-overlay' ).addClass( 'is-loading' );\r\n }\r\n }, function ( data ) {\r\n e4.cart.updateContent( data );\r\n jCart.trigger( e4.cart.event.loaded );\r\n } );\r\n },\r\n addProduct: function ( objProductFormData, fnCallback ) {\r\n var jDocument = jQuery( document ),\r\n jCart = jDocument.find( '.js-e-cart' );\r\n var objProductData = {\r\n CartCmd: 'add',\r\n ProductID: '',\r\n VariantID: '',\r\n Quantity: 1,\r\n Redirect: false\r\n };\r\n if ( jQuery.isPlainObject( objProductFormData ) ) {\r\n jQuery.extend( objProductData, objProductFormData );\r\n }\r\n else if ( jQuery.type( objProductFormData ) === 'string' ) {\r\n objProductData.ProductID = objProductFormData;\r\n }\r\n jDocument.trigger( e4.cart.event.productadd, objProductData );\r\n //if ( objProductData.ProductID.indexOf( 'PROD' ) === 0 ) {\r\n e4.cart.ajax( {\r\n data: objProductData,\r\n beforeSend: function () {\r\n if ( jCart.length === 1 ) {\r\n jCart.find( '.js-e-loading-overlay' ).addClass( 'is-loading' );\r\n }\r\n }\r\n }, function ( data ) {\r\n if ( jCart.length === 1 ) {\r\n e4.cart.updateContent( data );\r\n jCart.find( '.js-e-loading-overlay' ).removeClass( 'is-loading' );\r\n e4.cart.orderline.setFocus( data.cart.lastAdded[ 0 ].id );\r\n }\r\n else {\r\n if ( parseInt( objProductData.Quantity ) > parseInt( data.cart.lastAdded[ 0 ].stock.quantity ) ) {\r\n }\r\n //if(objProductFormData.EcomOrderLineFieldInput_HasConfiguration === 'false'){}\r\n e4.cart.msg.show( data );\r\n }\r\n if ( e4.cart.isCleanCart === true ) {\r\n e4.cart.isCleanCart = false;\r\n dcc.hubspot.events.newBasket( data );\r\n }\r\n else {\r\n dcc.hubspot.events.updatedBasket( data );\r\n }\r\n e4.cart.updateQuantity( data.cart.productQuantity );\r\n if ( typeof fnCallback === 'function' ) {\r\n fnCallback( data );\r\n }\r\n jDocument.trigger( e4.cart.event.productadded, objProductData );\r\n } );\r\n //}\r\n },\r\n removeProduct: function ( orderlineKey ) {\r\n var jDocument = jQuery( document );\r\n jDocument.trigger( e4.cart.event.productremove );\r\n var orderlineToRemove = e4.cart.cartContent.cart.orderlines.filter( function ( orderline ) {\r\n return orderline.id === orderlineKey;\r\n } ),\r\n trackingObj = {};\r\n if ( orderlineToRemove.length ) {\r\n trackingObj = {\r\n CurrencyCode: orderlineToRemove[ 0 ].product.currencyCode,\r\n Name: orderlineToRemove[ 0 ].product.name,\r\n Number: orderlineToRemove[ 0 ].product.number,\r\n Price: orderlineToRemove[ 0 ].product.priceClean,\r\n Quantity: orderlineToRemove[ 0 ].product.quantity\r\n };\r\n jDocument.trigger( e4.cart.event.productremoved, trackingObj );\r\n }\r\n },\r\n updateContent: function ( data ) {\r\n var jCart = jQuery( '.js-e-cart' );\r\n e4.cart.cartContent = data;\r\n jCart.trigger( e4.cart.event.update );\r\n jQuery( '.js-e-cart-orderlines' ).html( e4.handlebars.tmpl.cartOrderlines( data ) );\r\n e4.loading.resolveWait( '.js-e-cart-orderlines' );\r\n jQuery( '.js-e-cart-summery' ).html( e4.handlebars.tmpl.cartSummery( data ) );\r\n e4.loading.resolveWait( '.js-e-cart-summery' );\r\n e4.cart.updateQuantity( data.cart.productQuantity );\r\n e4.cart.removeStrayWarrantyLines();\r\n e4.cart.handleConfigLines.findLines();\r\n //e4.cart.removeStrayWarrentyLines();\r\n jCart.find( '.js-e-loading-overlay' ).removeClass( 'is-loading' );\r\n jCart.trigger( e4.cart.event.updated );\r\n },\r\n removeStrayWarrantyLines: function(){\r\n var warrentyLines = jQuery('.js-e-orderline.service-orderline');\r\n\r\n jQuery.each(warrentyLines, function(index, domLine){\r\n var parentOrderlineId = domLine.dataset.parentId;\r\n var jParentOrderline = jQuery('.js-e-orderline.product-orderline[data-product=\"'+parentOrderlineId+'\"]');\r\n if(jParentOrderline.length === 0){\r\n e4.cart.orderline.deleteWarrantyLine(domLine.id); \r\n }\r\n });\r\n },\r\n updateQuantity: function ( intQuantity ) {\r\n if ( e4.cart.isQuantityValid( intQuantity ) === false ) {\r\n e4.cart.ajax( {\r\n method: 'GET'\r\n }, function ( data ) {\r\n if ( e4.cart.isQuantityValid( data.cart.productQuantity ) === true ) {\r\n e4.cart.updateQuantity( data.cart.productQuantity );\r\n }\r\n } );\r\n }\r\n else if ( intQuantity === 0 ) {\r\n e4.cart.isCleanCart = true;\r\n jQuery( '.js-e-cart-quantity' ).html( '' );\r\n }\r\n else {\r\n jQuery( '.js-e-cart-quantity' ).html( intQuantity );\r\n }\r\n },\r\n isQuantityValid: function ( intQuantity ) {\r\n return isNaN( parseInt( intQuantity ) ) === false;\r\n },\r\n orderline: {\r\n init: function () {\r\n e4.cart.orderline.bindEvents();\r\n },\r\n bindEvents: function () {\r\n e4.cart.orderline.updateTimeout = null;\r\n jQuery( '.js-e-cart-form' )\r\n .on( 'focus blur', '.js-e-orderline-quantity', e4.cart.orderline.toggleFocus )\r\n .on( 'input', '.js-e-orderline-quantity', e4.util.debounce( e4.cart.orderline.onInput, e4.settings.ecom.cart.debounceDelay ) )\r\n .on( 'click', '.js-e-orderline-update', function ( event ) {\r\n event.preventDefault();\r\n e4.cart.orderline.update( this );\r\n } )\r\n .on( 'click', '.js-e-orderline-delete', function ( event ) {\r\n event.preventDefault();\r\n e4.cart.orderline.delete( this );\r\n } );\r\n },\r\n toggleFocus: function ( event ) {\r\n var jOrderline = jQuery( event.target ).closest( '.js-e-orderline' );\r\n if ( event.type === 'focusin' ) {\r\n jQuery( event.target ).select();\r\n jOrderline.addClass( 'has-focus' );\r\n }\r\n else {\r\n jOrderline.removeClass( 'has-focus' );\r\n }\r\n },\r\n onInput: function ( event ) {\r\n if ( parseInt( event.target.value ) !== 0 && event.target.value !== '' ) {\r\n e4.cart.orderline.update( event.target );\r\n }\r\n },\r\n update: function ( domElm ) {\r\n var jCart = jQuery( '.js-e-cart' ),\r\n jForm = jQuery( domElm ).closest( '.js-e-cart-form' ),\r\n jOrderline = jQuery( domElm ).closest( '.js-e-orderline' ),\r\n intOrderlineQuantity = parseInt( jOrderline.find( '.js-e-orderline-quantity' ).val() ),\r\n strOrderlineProductId = jOrderline.find( '.js-e-orderline-quantity' ).data( 'productId' ),\r\n intOrderlineQuantityOriginal = parseInt( jOrderline.data( 'product-quantity' ) ),\r\n boolHasConfiguration = jOrderline.find( '.js-e-orderline-quantity' ).data( 'hasConfiguration' );\r\n if ( boolHasConfiguration === true ) {\r\n jQuery( '.service-orderline' ).each( function ( index, domElm ) {\r\n var quantityElm = jQuery( domElm ).find( '.js-e-orderline-quantity' );\r\n if ( quantityElm.data( 'productId' ) === strOrderlineProductId ) {\r\n quantityElm.val( intOrderlineQuantity );\r\n }\r\n } );\r\n }\r\n if ( intOrderlineQuantity !== 0 ) {\r\n if ( intOrderlineQuantity > intOrderlineQuantityOriginal ) {\r\n jCart.trigger( e4.cart.event.orderlineincrease );\r\n }\r\n else if ( intOrderlineQuantity < intOrderlineQuantityOriginal ) {\r\n jCart.trigger( e4.cart.event.orderlinedecrease );\r\n }\r\n jForm.find( '.js-e-cart-form-cartcmd' ).val( 'updateorderlines' );\r\n e4.cart.ajax( {\r\n data: jForm.serialize(),\r\n beforeSend: function () {\r\n jCart.find( '.js-e-loading-overlay' ).addClass( 'is-loading' );\r\n }\r\n }, function ( data ) {\r\n e4.cart.updateContent( data );\r\n dcc.hubspot.events.updatedBasket( data );\r\n jCart.find( '.js-e-loading-overlay' ).removeClass( 'is-loading' );\r\n e4.cart.orderline.setFocus( jOrderline.attr( 'id' ) );\r\n } );\r\n }\r\n else {\r\n e4.cart.orderline.delete( domElm );\r\n }\r\n },\r\n delete: function ( domElm ) {\r\n var jCart = jQuery( '.js-e-cart' ),\r\n orderlineKey = jQuery( domElm ).closest( '.js-e-orderline' ).attr( 'id' ),\r\n productId = jQuery( domElm ).closest( '.js-e-orderline' ).data( 'product' );\r\n jCart.trigger( e4.cart.event.orderlinedelete );\r\n e4.cart.removeProduct( orderlineKey );\r\n e4.cart.ajax( {\r\n data: {\r\n key: orderlineKey,\r\n CartCmd: 'delorderline',\r\n Redirect: false\r\n }\r\n }, function ( data ) {\r\n var warrantyOrderline = data.cart.orderlines.filter( function ( orderline ) {\r\n return orderline.product.orderlineFields.Warranty_Parent_Product === productId;\r\n } );\r\n if ( warrantyOrderline.length > 0 ) {\r\n var warrantyOrderlineKey = warrantyOrderline[ 0 ].id;\r\n e4.cart.orderline.deleteWarrantyLine(warrantyOrderlineKey);\r\n }\r\n else {\r\n jCart.trigger( e4.cart.event.orderlinedeleted );\r\n e4.cart.updateContent( data );\r\n }\r\n } );\r\n },\r\n deleteWarrantyLine: function(warrantyOrderlineKey){\r\n var jCart = jQuery( '.js-e-cart' );\r\n e4.cart.ajax( {\r\n data: {\r\n key: warrantyOrderlineKey,\r\n CartCmd: 'delorderline',\r\n Redirect: false\r\n }\r\n }, function ( data ) {\r\n jCart.trigger( e4.cart.event.orderlinedeleted );\r\n e4.cart.updateContent( data );\r\n } );\r\n },\r\n setFocus: function ( strIdentifier ) {\r\n var jOrderline = jQuery( '.js-e-orderline' ).filter( '#' + strIdentifier + ',[data-product-id=\"' + strIdentifier + '\"]' );\r\n if ( jOrderline.length === 1 ) {\r\n jOrderline.find( '.js-e-orderline-quantity' ).focus();\r\n }\r\n }\r\n },\r\n msg: {\r\n timeout: null,\r\n init: function () {\r\n if ( jQuery( '#js-e-cart-msg' ).length === 1 && jQuery( '.js-e-product-form, .js-e-productlist' ).length > 0 ) {\r\n e4.util.require.js( e4.settings.require.handlebars, function () {\r\n e4.handlebars.registerTemplates( '#js-e-handlebars-tmpl-cart-msg-lastadded' );\r\n } );\r\n e4.cart.msg.bindEvents();\r\n }\r\n },\r\n bindEvents: function () {\r\n var jBody = jQuery( 'body' );\r\n jQuery( '#js-e-cart-msg' ).on( 'show.bs.modal', function () {\r\n jBody.addClass( 'modal-open-no-adjustment' );\r\n } ).on( 'hidden.bs.modal', function () {\r\n jBody.removeClass( 'modal-open-no-adjustment' );\r\n } ).on( 'click', function ( event ) {\r\n if ( jQuery( event.target ).is( '#js-e-cart-msg' ) === true ) {\r\n e4.cart.msg.hide();\r\n }\r\n } ).find( '.modal-dialog' ).on( 'mouseenter', e4.cart.msg.clearTimeout ).on( 'mouseleave', e4.cart.msg.setTimeout );\r\n },\r\n show: function ( data, isConfiguration ) {\r\n var jCartMsg = jQuery( '#js-e-cart-msg' );\r\n //TODO: Lav set content, header og footer funktioner.\r\n data.isConfiguration = isConfiguration || false;\r\n jCartMsg.find( '.js-e-cart-msg-content' ).html( e4.handlebars.tmpl.cartMsgLastadded( data ) );\r\n e4.cart.msg.clearTimeout();\r\n e4.cart.msg.setPosition();\r\n jCartMsg.modal( 'show' );\r\n e4.cart.msg.setTimeout();\r\n },\r\n hide: function () {\r\n e4.cart.msg.clearTimeout();\r\n jQuery( '#js-e-cart-msg' ).modal( 'hide' );\r\n },\r\n setPosition: function ( objPosition ) {\r\n var jCartMsgDialog = jQuery( '#js-e-cart-msg' ).find( '.modal-dialog' ),\r\n jHeader = jQuery( '.js-e-header' ),\r\n jNavItemCart = jHeader.find( '.js-e-nav-item-cart' ).filter( ':visible' ),\r\n objCartMsgPosition = objPosition || {},\r\n objCartMsgReferencePosition = {};\r\n if ( jCartMsgDialog.length === 1 ) {\r\n if ( jQuery.isEmptyObject( objCartMsgPosition ) === true ) {\r\n if ( jNavItemCart.length === 1 ) {\r\n objCartMsgReferencePosition = jNavItemCart.get( 0 ).getBoundingClientRect();\r\n objCartMsgPosition = {\r\n top: jHeader.hasClass( 'is-hidden' ) === true ? '' : Math.floor( objCartMsgReferencePosition.bottom ),\r\n right: Math.floor( jQuery( window ).width() - objCartMsgReferencePosition.right ),\r\n left: '',\r\n maxWidth: ''\r\n };\r\n }\r\n else {\r\n objCartMsgReferencePosition = jHeader.get( 0 ).getBoundingClientRect();\r\n objCartMsgPosition = {\r\n top: jHeader.hasClass( 'is-hidden' ) === true ? '' : Math.floor( objCartMsgReferencePosition.bottom ),\r\n right: 0,\r\n left: 0,\r\n maxWidth: '100%'\r\n };\r\n }\r\n }\r\n }\r\n jCartMsgDialog.css( objCartMsgPosition );\r\n },\r\n setTimeout: function () {\r\n e4.cart.msg.clearTimeout();\r\n e4.cart.msg.timeout = setTimeout( e4.cart.msg.hide, e4.settings.ecom.cart.msgHideDelay );\r\n },\r\n clearTimeout: function () {\r\n if ( e4.cart.msg.timeout ) {\r\n e4.cart.msg.timeout = clearTimeout( e4.cart.msg.timeout );\r\n }\r\n }\r\n }\r\n};\r\n\r\n","e4.quickorder = {\r\n init: function () {\r\n if ( jQuery( '.js-e-quickorder' ).length === 1 ) {\r\n e4.util.require.js( e4.settings.require.typeahead, function () {\r\n e4.quickorder.bindEvents();\r\n } );\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-e-quickorder-form' ).on( 'submit', function ( event ) {\r\n event.preventDefault();\r\n var jSuggestionFirst = jQuery( this ).find( '.js-e-quickorder-suggestions' ).find( '.tt-selectable' ).first();\r\n if ( jSuggestionFirst.length === 1 ) {\r\n jSuggestionFirst.trigger( 'click' );\r\n }\r\n } ).on( 'click', '.js-e-quickorder-submit', function () {\r\n jQuery( this.form ).triggerHandler( 'submit' );\r\n } );\r\n jQuery( '.js-e-cart' ).on( 'loaded.e4.cart', function () {\r\n e4.quickorder.focus();\r\n } );\r\n jQuery( '.js-e-quickorder-input' ).on( 'keydown', function ( event ) {\r\n if ( event.keyCode === 13 ) {\r\n var jSuggestions = jQuery( this.form ).find( '.js-e-quickorder-suggestions' ),\r\n jSuggestionActive = jSuggestions.find( '.tt-selectable' ).filter( '.active' );\r\n if ( jSuggestionActive.length === 0 && jSuggestions.css( 'display' ) === 'block' ) {\r\n jQuery( this.form ).triggerHandler( 'submit' );\r\n }\r\n }\r\n } ).typeahead( {\r\n hint: true,\r\n highlight: true,\r\n minLength: 0,\r\n classNames: {\r\n wrapper: 'e-quickorder-typeahead-wrapper js-e-quickorder-typeahead-wrapper w-100',\r\n input: 'js-e-quickorder-input',\r\n menu: 'js-e-quickorder-suggestions e-quickorder-suggestions dropdown-menu w-100',\r\n suggestion: 'js-e-quickorder-suggestions-item dropdown-item',\r\n open: 'open',\r\n cursor: 'active',\r\n highlight: 'active'\r\n }\r\n }, {\r\n name: 'espresso',\r\n display: function ( suggestion ) {\r\n return suggestion.number + ' ' + suggestion.name;\r\n },\r\n limit: 8,\r\n async: true,\r\n source: function ( query, syncResults, asyncResults ) {\r\n e4.quickorder.getSuggestions( query, function ( products ) {\r\n asyncResults( products );\r\n } );\r\n }\r\n } ).on( 'typeahead:autocomplete typeahead:select', function ( event, product ) { // typeahead:cursorchange\r\n if ( product !== null ) {\r\n e4.quickorder.selectProduct( product );\r\n jQuery( this ).typeahead( 'close' );\r\n }\r\n } );\r\n },\r\n getSuggestions: function ( query, asyncResults ) {\r\n if ( this.jqXHR !== undefined && this.jqXHR.readyState !== 4 ) {\r\n this.jqXHR.abort();\r\n }\r\n query = jQuery.trim( query );\r\n if ( query !== '' ) {\r\n this.jqXHR = jQuery.ajax( {\r\n type: 'GET',\r\n url: e4.settings.ecom.quickorder.url,\r\n data: { q: query },\r\n dataType: 'json'\r\n } );\r\n this.jqXHR.done( function ( data ) {\r\n asyncResults( data.products );\r\n } );\r\n }\r\n },\r\n focus: function () {\r\n var jQuickorder = jQuery( '.js-e-quickorder' ),\r\n intTarget = Math.ceil( jQuickorder.offset().top - jQuery( window ).height() + jQuickorder.height() + e4.scrollToAnchor.getNudge() );\r\n e4.scrollToAnchor.animate( intTarget, function () {\r\n jQuickorder.find( '.js-e-quickorder-input' ).focus();\r\n } );\r\n },\r\n clear: function () {\r\n jQuery( '.js-e-quickorder-input' ).typeahead( 'val', '' );\r\n },\r\n selectProduct: function ( objProduct ) {\r\n e4.cart.addProduct( {\r\n ProductID: objProduct.id,\r\n VariantID: objProduct.variantId\r\n } );\r\n e4.quickorder.clear();\r\n }\r\n};\r\n","e4.checkout = {\r\n debug: false,\r\n validateOptions: {\r\n rules: {\r\n 'EcomOrderCustomerVatRegNumber': {\r\n required: true,\r\n cvr: true\r\n }\r\n }\r\n },\r\n init: function () {\r\n if ( jQuery( '.js-e-checkout' ).length === 1 ) {\r\n e4.util.require.js( e4.settings.require.handlebars, function () {\r\n e4.handlebars.registerHelpers( 'compare counter json' );\r\n e4.handlebars.registerTemplates( '#js-e-handlebars-tmpl-checkout #js-e-handlebars-tmpl-cart #js-e-handlebars-tmpl-checkout-summery' );\r\n e4.handlebars.registerPartials( '#js-e-handlebars-partial-gls #js-e-handlebars-partial-pacsoft' );\r\n e4.checkout.config();\r\n e4.checkout.bindEvents();\r\n } );\r\n }\r\n else {\r\n sessionStorage.removeItem( 'checkoutStep' );\r\n }\r\n if ( jQuery( '.js-e-checkout-receipt' ).length === 1 ) {\r\n e4.checkout.steps.receipt.init();\r\n }\r\n var waitForjQueryValidate = setInterval( function () {\r\n if ( window.jQuery.fn.validate ) {\r\n e4.checkout.setValidationRules();\r\n clearInterval( waitForjQueryValidate );\r\n }\r\n }, 100 );\r\n },\r\n config: function () {\r\n var disabledSteps = jQuery( '.js-e-checkout-steps-deactivated' ).val().split( ',' );\r\n for ( var i = 0; i < disabledSteps.length; i++ ) {\r\n if ( e4.checkout.steps.active[ disabledSteps[ i ] ] !== undefined ) {\r\n e4.checkout.steps.active[ disabledSteps[ i ] ] = false;\r\n }\r\n }\r\n jQuery.each( e4.checkout.steps.active, function ( index, isActive ) {\r\n if ( isActive === true ) {\r\n e4.checkout.steps.first = index;\r\n return false;\r\n }\r\n e4.checkout.steps.first = 'approve';\r\n } );\r\n },\r\n setValidationRules: function () {\r\n jQuery.validator.addMethod( 'cvr', function ( testValue, element ) {\r\n var countryValidationRules = jQuery( element ).data( 'cvrRules' );\r\n if ( countryValidationRules !== null ) {\r\n var isValidCvr = function ( val ) {\r\n if ( !val ) {\r\n return false;\r\n }\r\n return val.length >= countryValidationRules.Min && val.length <= countryValidationRules.Max;\r\n };\r\n return isValidCvr( testValue );\r\n }\r\n else {\r\n return true;\r\n }\r\n }, function ( params, element ) {\r\n return element.dataset.errorMessage;\r\n } );\r\n },\r\n bindEvents: function () {\r\n var savedStep = sessionStorage.checkoutStep !== undefined ? JSON.parse( sessionStorage.checkoutStep ) : null;\r\n if ( savedStep !== null ) {\r\n e4.checkout.steps.map = savedStep.map;\r\n }\r\n jQuery( window ).on( 'hashchange', function () {\r\n var hashStep = e4.util.hash.get( 'step' );\r\n if ( hashStep !== undefined ) {\r\n e4.checkout.order.get( hashStep, e4.settings.ecom.checkout.delay );\r\n }\r\n } );\r\n if ( e4.util.hash.get( 'step' ) === undefined ) {\r\n if ( savedStep !== null ) {\r\n if ( savedStep.index <= 1 ) {\r\n e4.util.hash.replace( 'step', e4.checkout.steps.first );\r\n }\r\n else {\r\n e4.util.hash.replace( 'step', savedStep.name );\r\n }\r\n }\r\n else {\r\n e4.util.hash.replace( 'step', e4.checkout.steps.first );\r\n }\r\n }\r\n else {\r\n jQuery( window ).triggerHandler( 'hashchange' );\r\n }\r\n jQuery( '.js-e-checkout' ).on( 'hidden.bs.collapse', '.collapse', function () {\r\n if ( e4.checkout.steps.current !== e4.checkout.steps.target ) {\r\n if ( Math.max( jQuery( window ).width(), window.innerWidth ) > e4.settings.breakpoint[ e4.settings.ecom.checkout.multipageBreakpoint ] ) {\r\n e4.scrollToAnchor.animate( e4.scrollToAnchor.getTarget( '.js-e-checkout-step[data-step=\"' + e4.checkout.steps.target + '\"]:first' ) - jQuery( '.js-e-header' ).height(), e4.header.hide );\r\n }\r\n }\r\n e4.checkout.steps.current = e4.checkout.steps.target;\r\n } ).on( 'hide.bs.collapse', '.collapse', function () {\r\n if ( e4.checkout.steps.current !== e4.checkout.steps.target ) {\r\n if ( Math.max( jQuery( window ).width(), window.innerWidth ) <= e4.settings.breakpoint[ e4.settings.ecom.checkout.multipageBreakpoint ] ) {\r\n jQuery( window ).scrollTop( 0 );\r\n }\r\n }\r\n } ).on( 'show.bs.collapse', '.collapse', function () {\r\n if ( e4.checkout.steps.direction !== null ) {\r\n jQuery( '.js-e-checkout' ).addClass( 'e-checkout-direction-' + e4.checkout.steps.direction );\r\n }\r\n } ).on( 'shown.bs.collapse', '.collapse', function ( event ) {\r\n jQuery( event.currentTarget ).find( 'form' ).validate( e4.checkout.validateOptions );\r\n } ).on( 'change', '.js-e-checkout-toggle-field', function ( event ) {\r\n event.preventDefault();\r\n var jToggleField = jQuery( this ).val(),\r\n jTarget = jQuery( '.js-e-checkout-toggle-target[data-target=\"' + jToggleField + '\"]' );\r\n jTarget.slideToggle( e4.settings.animation.speed );\r\n if ( jQuery( this ).is( ':checked' ) === false ) {\r\n jTarget.find( 'input, textarea' ).val( '' );\r\n }\r\n } ).on( 'change', 'select[name=\"EcomOrderDeliveryCountry\"]', function () {\r\n e4.checkout.order.countryChange();\r\n } );\r\n e4.checkout.steps.init();\r\n e4.checkout.cart.init();\r\n e4.checkout.order.init();\r\n },\r\n cart: {\r\n data: {},\r\n init: function () {\r\n e4.checkout.cart.get();\r\n e4.checkout.cart.bindEvents();\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-e-checkout' ).on( 'change', '.js-e-checkout-update-cart', function () {\r\n e4.checkout.cart.get();\r\n } ).on( 'click', '.js-e-checkout-update-cart-btn', function () {\r\n e4.checkout.cart.get();\r\n } );\r\n },\r\n buildTotalLineInCheckout: function () {\r\n var totalOrderlines = e4.cart.handleConfigLines.getLines();\r\n if ( totalOrderlines.length > 0 ) {\r\n totalOrderlines.forEach( function ( objTotalOrderline ) {\r\n var totalTmp = jQuery( '.js-config-total-tmpl' ).html(),\r\n jTotalMarkup = jQuery( totalTmp ),\r\n jLastLine = objTotalOrderline.isServiceFee === false ? jQuery( '[id=\"' + objTotalOrderline.lastLineId + '\"]' ) : jQuery('[id=\"'+objTotalOrderline.configLineId+'\"]').nextAll('.js-dcc-is-service-fee-line').first();\r\n jTotalMarkup.find( '.js-config-total-price .e-price-price' ).html( e4.util.formatJavascriptNumberToLocaleString( objTotalOrderline.totalPrice ) );\r\n jLastLine.after( jTotalMarkup );\r\n } );\r\n }\r\n },\r\n get: function () {\r\n jQuery.ajax( {\r\n url: e4.settings.ecom.cart.url,\r\n type: 'POST',\r\n beforeSend: function () {\r\n jQuery( '.js-e-checkout-cart-loading-overlay' ).addClass( 'is-loading' );\r\n },\r\n data: jQuery( '.js-e-checkout-step-form' ).serialize()\r\n } )\r\n .done( function ( data ) {\r\n e4.checkout.cart.data = data;\r\n e4.checkout.cart.build( data );\r\n if ( e4.checkout.debug === true ) {\r\n console.log( data.cart );\r\n }\r\n } )\r\n .fail( function ( error ) {\r\n if ( e4.checkout.debug === true ) {\r\n console.error( 'Failed to fetch CART DATA, please check your settings!.' );\r\n console.error( error.responseText );\r\n }\r\n } );\r\n },\r\n build: function ( data ) {\r\n setTimeout( function () {\r\n jQuery( '#js-e-checkout-cart' ).html( e4.handlebars.tmpl.cart( data ) );\r\n e4.checkout.cart.buildTotalLineInCheckout();\r\n e4.loading.resolveWait( '#js-e-checkout-cart' );\r\n }, e4.settings.ecom.checkout.delay );\r\n }\r\n },\r\n order: {\r\n hasChanged: {\r\n payment: false,\r\n shipping: false\r\n },\r\n init: function () {\r\n e4.checkout.order.bindEvents();\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-e-checkout' ).on( 'change', '.js-e-checkout-update-order', function () {\r\n var jStep = jQuery( this ).closest( '.js-e-checkout-step' ).data( 'step' );\r\n if ( jStep !== e4.util.hash.get( 'step' ) ) {\r\n e4.util.hash.set( 'step', jStep );\r\n }\r\n else {\r\n jQuery( window ).triggerHandler( 'hashchange' );\r\n }\r\n } );\r\n },\r\n countryChange: function () {\r\n var selectedShippingID = jQuery( '.js-e-checkout' ).find( '.js-e-checkout-shipping-method' ).val(),\r\n pacsoftShippingID = jQuery( '.js-e-checkout-shipping-id-pacsoft' ).val(),\r\n glsShippingID = jQuery( '.js-e-checkout-shipping-id-gls' ).val();\r\n if ( selectedShippingID === glsShippingID ) {\r\n e4.ecom.checkout.steps.shipping.gls.clear();\r\n }\r\n else if ( selectedShippingID === pacsoftShippingID ) {\r\n e4.ecom.checkout.steps.shipping.pacsoft.clear();\r\n }\r\n },\r\n isPreviosStepsCompleted: function ( data ) {\r\n if ( data.steps.states.current === 'customer' ) {\r\n if ( data.steps.shipping.isHidden === false && data.steps.shipping.isCompleted === false ) {\r\n return e4.util.hash.replace( 'step', 'shipping' );\r\n }\r\n }\r\n else if ( data.steps.states.current === 'payment' ) {\r\n if ( data.steps.shipping.isHidden === false && data.steps.shipping.isCompleted === false ) {\r\n return e4.util.hash.replace( 'step', 'shipping' );\r\n }\r\n else if ( data.steps.customer.isHidden === false && data.steps.customer.isCompleted === false ) {\r\n return e4.util.hash.replace( 'step', 'customer' );\r\n }\r\n }\r\n else if ( data.steps.states.current === 'approve' ) {\r\n if ( data.steps.shipping.isHidden === false && data.steps.shipping.isCompleted === false ) {\r\n return e4.util.hash.replace( 'step', 'shipping' );\r\n }\r\n else if ( data.steps.customer.isHidden === false && data.steps.customer.isCompleted === false ) {\r\n return e4.util.hash.replace( 'step', 'customer' );\r\n }\r\n else if ( data.steps.payment.isHidden === false && data.steps.payment.isCompleted === false ) {\r\n return e4.util.hash.replace( 'step', 'payment' );\r\n }\r\n }\r\n return true;\r\n },\r\n get: function ( step, delay ) {\r\n e4.checkout.steps.target = step;\r\n jQuery( '.js-e-checkout-step-previous' ).val( e4.checkout.steps.current );\r\n jQuery( '.js-e-checkout-step-current' ).val( e4.checkout.steps.target );\r\n jQuery( '.js-e-checkout-step-index' ).val( e4.checkout.steps.map[ e4.checkout.steps.target ] );\r\n jQuery.ajax( {\r\n url: e4.settings.ecom.checkout.url,\r\n type: 'POST',\r\n beforeSend: function () {\r\n jQuery( '.js-e-checkout-step-loading-overlay' ).addClass( 'is-loading' );\r\n },\r\n data: jQuery( '.js-e-checkout-step-form' ).serialize()\r\n } )\r\n .done( function ( data ) {\r\n if ( e4.checkout.order.isPreviosStepsCompleted( data ) === true ) {\r\n e4.checkout.order.dataHandler( data, e4.checkout.steps.target, delay );\r\n }\r\n if ( e4.checkout.debug === true ) {\r\n console.log( data.order );\r\n console.log( data.steps );\r\n }\r\n } )\r\n .fail( function ( error ) {\r\n if ( e4.checkout.debug === true ) {\r\n console.error( 'Failed to fetch ORDER DATA, please check your settings!' );\r\n console.error( error.responseText );\r\n }\r\n } );\r\n },\r\n dataHandler: function ( data, step, delay ) {\r\n var glsShippingID = jQuery( '.js-e-checkout-shipping-id-gls' ).val(),\r\n pacsoftShippingID = jQuery( '.js-e-checkout-shipping-id-pacsoft' ).val();\r\n if ( data.steps.shipping.hasChanged === true ) {\r\n e4.checkout.order.hasChanged.shipping = data.steps.shipping.hasChanged;\r\n data.steps.shipping.hasChanged = 'e-checkout-step-has-changed';\r\n }\r\n if ( data.steps.payment.hasChanged === true ) {\r\n e4.checkout.order.hasChanged.payment = data.steps.payment.hasChanged;\r\n data.steps.payment.hasChanged = 'e-checkout-step-has-changed';\r\n }\r\n if ( data.steps.shipping.shippingmethodID === glsShippingID ) {\r\n data.steps.shipping.isGLS = true;\r\n data.steps.shipping.isPacsoft = false;\r\n data.steps.shipping.isStandard = false;\r\n data.steps.customer.alternativeBillingAddress = true;\r\n }\r\n else if ( data.steps.shipping.shippingmethodID === pacsoftShippingID ) {\r\n data.steps.shipping.isPacsoft = true;\r\n data.steps.shipping.isStandard = false;\r\n data.steps.shipping.isGLS = false;\r\n data.steps.customer.alternativeBillingAddress = true;\r\n }\r\n else {\r\n data.steps.shipping.isStandard = true;\r\n data.steps.shipping.isPacsoft = false;\r\n data.steps.shipping.isGLS = false;\r\n }\r\n if ( data.steps.index <= 1 ) {\r\n for ( var i = 0; i < data.steps.progress.length; i++ ) {\r\n e4.checkout.steps.map[ data.steps.progress[ i ].name ] = data.steps.progress[ i ].index;\r\n }\r\n }\r\n data.steps.hasBilling = e4.checkout.steps.shipping.hasBillingSet;\r\n //TODO: lægges i namespace\r\n sessionStorage.checkoutStep = JSON.stringify( {\r\n name: data.steps.name,\r\n index: data.steps.index,\r\n map: e4.checkout.steps.map\r\n } );\r\n e4.checkout.order.build( data, step, delay );\r\n },\r\n build: function ( data, step, delay ) {\r\n setTimeout( function () {\r\n jQuery( '#js-e-checkout-form' ).html( e4.handlebars.tmpl.checkout( data ) );\r\n e4.checkout.steps.handler.switch();\r\n dcc.hubspot.events.checkoutStep( step, data );\r\n e4.checkout.tracking.step( data.steps[ e4.checkout.steps.target ] );\r\n e4.loading.resolveWait( '#js-e-checkout-form' );\r\n jQuery( '.js-e-checkout-set-delivery-address:checked' ).trigger( 'click:triggered' );\r\n }, delay );\r\n }\r\n },\r\n steps: {\r\n first: 'shipping',\r\n current: 'shipping',\r\n active: {\r\n shipping: true,\r\n customer: true,\r\n payment: true\r\n },\r\n target: null,\r\n map: {},\r\n direction: null,\r\n init: function () {\r\n e4.checkout.steps.handler.init();\r\n e4.checkout.steps.shipping.init();\r\n e4.checkout.steps.customer.init();\r\n e4.checkout.steps.payment.init();\r\n e4.checkout.steps.approve.init();\r\n },\r\n addressMapper: function ( jParent, mappingObj ) {\r\n jQuery.each( mappingObj, function ( key, value ) {\r\n var input = jParent.find( '[name=\"' + key + '\"]' );\r\n if ( input.is( '.js-custom-att-input' ) === false ) {\r\n jParent.find( '[name=\"' + key + '\"]' ).val( value );\r\n if ( key === 'EcomOrderDeliveryAddress2' ) {\r\n if ( value !== '' ) {\r\n jQuery( '#ToggleEcomOrderDeliveryAddress2' ).prop( 'checked', true );\r\n jQuery( '[data-target=\"EcomOrderDeliveryAddress2\"]' ).removeClass( 'e-checkout-toggle-target-hidden' );\r\n }\r\n else {\r\n jQuery( '#ToggleEcomOrderDeliveryAddress2' ).prop( 'checked', false );\r\n jQuery( '[data-target=\"EcomOrderDeliveryAddress2\"]' ).addClass( 'e-checkout-toggle-target-hidden' );\r\n }\r\n }\r\n }\r\n } );\r\n },\r\n handler: {\r\n init: function () {\r\n e4.checkout.steps.handler.next();\r\n e4.checkout.steps.handler.edit();\r\n e4.checkout.steps.handler.companyAddress();\r\n },\r\n switch: function () {\r\n e4.checkout.steps.handler.methodChange( e4.checkout.steps.current );\r\n var jCollapse = jQuery( '#js-e-checkout-accordion' );\r\n jCollapse.find( '.collapse.js-e-checkout-collapse-hide' ).collapse( 'hide' );\r\n jCollapse.find( '.collapse.js-e-checkout-collapse-show' ).collapse( 'show' );\r\n if ( e4.checkout.steps.map[ e4.checkout.steps.target ] === undefined ) {\r\n e4.util.hash.replace( 'step', e4.checkout.steps.first );\r\n }\r\n else {\r\n if ( e4.checkout.steps[ e4.checkout.steps.target ].show !== undefined ) {\r\n e4.checkout.steps[ e4.checkout.steps.target ].show();\r\n }\r\n }\r\n jQuery( 'body' ).attr( 'class', 'e-checkout-page e-checkout-page-' + e4.checkout.steps.target );\r\n },\r\n next: function () {\r\n jQuery( '.js-e-checkout' ).on( 'click', '.js-e-checkout-change-step', function ( event ) {\r\n event.preventDefault();\r\n var jStep = jQuery( this ).data( 'target' ).replace( '#', '' ),\r\n jForm = jQuery( this ).closest( 'form' );\r\n if ( jForm.valid() === true ) {\r\n e4.checkout.steps.direction = 'next';\r\n e4.util.hash.set( 'step', jStep );\r\n }\r\n } );\r\n },\r\n companyAddress: function () {\r\n jQuery( '.js-e-checkout' ).on( 'change', '.js-e-checkout-company-toggle', function ( event ) {\r\n event.preventDefault();\r\n jQuery( this ).closest( '.js-e-checkout-step-form' ).find( '.js-company-label-toggle' ).toggle();\r\n jQuery( this ).closest( '.js-e-checkout-step-form' ).find( '.js-e-checkout-company-address-fieldset' ).slideToggle( e4.settings.animation.speed );\r\n if ( jQuery( this ).val() === 'private' ) {\r\n jQuery( this ).closest( '.js-e-checkout-step-form' ).find( '.js-company-control-value' ).val( '' );\r\n }\r\n } );\r\n },\r\n methodChange: function ( step ) {\r\n if ( step === 'payment' || step === 'shipping' ) {\r\n jQuery( '.js-e-checkout-step[data-step=\"' + step + '\"]' ).removeClass( 'e-checkout-step-has-changed' );\r\n e4.checkout.order.hasChanged[ step ] = false;\r\n //TODO - open and scroll to first step with issue if current step is valid\r\n }\r\n },\r\n edit: function () {\r\n jQuery( '.js-e-checkout' ).on( 'click', '.js-e-checkout-edit-step', function ( event ) {\r\n event.preventDefault();\r\n var jStep = jQuery( this ).data( 'target' ).replace( '#', '' );\r\n e4.checkout.steps.target = jStep;\r\n e4.checkout.steps.direction = 'previous';\r\n e4.util.hash.set( 'step', jStep );\r\n } );\r\n }\r\n },\r\n customer: {\r\n init: function () {\r\n e4.checkout.steps.customer.bindEvents();\r\n },\r\n show: function () {\r\n if ( jQuery( '.js-e-checkout-has-alternative-billing-address' ).length && jQuery( '.js-e-checkout-has-alternative-billing-address:checked' ).val() === 'no' ) {\r\n e4.checkout.steps.customer.mapDeliveryToBilling( jQuery( '.js-e-checkout-alternative-billing-address' ) );\r\n }\r\n if ( jQuery( '.js-e-checkout-has-alternative-delivery-address' ).length && jQuery( '.js-e-checkout-has-alternative-delivery-address:checked' ).val() === 'no' ) {\r\n e4.checkout.steps.customer.mapBillingToDelivery( jQuery( '.js-e-checkout-delivery-address' ) );\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-e-checkout' ).on( 'change', '.js-e-checkout-has-alternative-billing-address', function ( event ) {\r\n var jAlternativeBillingAddress = jQuery( '.js-e-checkout-alternative-billing-address' );\r\n if ( jQuery( this ).is( ':checked' ) === true && jQuery( this ).val() === 'yes' ) {\r\n if ( event.isTrigger === undefined ) {\r\n e4.checkout.steps.customer.clear();\r\n }\r\n jAlternativeBillingAddress.collapse( 'show' );\r\n e4.scrollToAnchor.animate( e4.scrollToAnchor.getTarget( '.js-e-checkout-alternative-billing-address' ) );\r\n }\r\n else {\r\n jAlternativeBillingAddress.collapse( 'hide' );\r\n e4.checkout.steps.customer.mapDeliveryToBilling( jAlternativeBillingAddress );\r\n }\r\n } );\r\n },\r\n mapBillingToDelivery: function ( jAlternativeDeliveryAddress ) {\r\n var mappingObj = {\r\n EcomOrderDeliveryName: jQuery( 'input[name=\"EcomOrderCustomerName\"]' ).val(),\r\n EcomOrderDeliveryCompany: jQuery( 'input[name=\"EcomOrderCustomerCompany\"]' ).val(),\r\n EcomOrderDeliveryAddress: jQuery( 'input[name=\"EcomOrderCustomerAddress\"]' ).val(),\r\n EcomOrderDeliveryAddress2: jQuery( 'input[name=\"EcomOrderCustomerAddress2\"]' ).val(),\r\n EcomOrderDeliveryZip: jQuery( 'input[name=\"EcomOrderCustomerZip\"]' ).val(),\r\n EcomOrderDeliveryCity: jQuery( 'input[name=\"EcomOrderCustomerCity\"]' ).val(),\r\n EcomOrderDeliveryCountry: jQuery( ':input[name=\"EcomOrderCustomerCountry\"]' ).val(),\r\n EcomOrderDeliveryPhone: jQuery( 'input[name=\"EcomOrderCustomerPhone\"]' ).val()\r\n };\r\n console.log( 'mapping', mappingObj );\r\n e4.checkout.steps.addressMapper( jAlternativeDeliveryAddress, mappingObj );\r\n },\r\n mapDeliveryToBilling: function ( jAlternativeBillingAddress ) {\r\n var mappingObj = {\r\n EcomOrderCustomerName: jQuery( 'input[name=\"EcomOrderDeliveryName\"]' ).val(),\r\n EcomOrderCustomerCompany: jQuery( 'input[name=\"EcomOrderDeliveryCompany\"]' ).val(),\r\n EcomOrderCustomerAddress: jQuery( 'input[name=\"EcomOrderDeliveryAddress\"]' ).val(),\r\n EcomOrderCustomerAddress2: jQuery( 'input[name=\"EcomOrderDeliveryAddress2\"]' ).val(),\r\n EcomOrderCustomerZip: jQuery( 'input[name=\"EcomOrderDeliveryZip\"]' ).val(),\r\n EcomOrderCustomerCity: jQuery( 'input[name=\"EcomOrderDeliveryCity\"]' ).val(),\r\n EcomOrderCustomerCountry: jQuery( ':input[name=\"EcomOrderDeliveryCountry\"]' ).val(),\r\n EcomOrderCustomerPhone: jQuery( 'input[name=\"EcomOrderDeliveryPhone\"]' ).val()\r\n };\r\n e4.checkout.steps.addressMapper( jAlternativeBillingAddress, mappingObj );\r\n },\r\n clear: function () {\r\n jQuery( '.js-e-checkout-alternative-billing-address' ).find( 'input[type=\"text\"], input[type=\"number\"]' ).val( '' );\r\n jQuery( '.js-e-checkout-alternative-billing-address' ).find( 'input[type=\"checkbox\"]' ).prop( 'checked', false );\r\n }\r\n },\r\n payment: {\r\n init: function () {\r\n }\r\n },\r\n shipping: {\r\n selected: null,\r\n hasBillingSet: false,\r\n init: function () {\r\n e4.checkout.steps.shipping.bindEvents();\r\n },\r\n show: function () {\r\n e4.checkout.steps.shipping.gls.init();\r\n e4.checkout.steps.shipping.pacsoft.init();\r\n },\r\n mapAddressToForm: function ( mappingItems ) {\r\n var mappingObj = {\r\n EcomOrderDeliveryName: mappingItems.find( '[data-item=\"EcomOrderDeliveryName\"]' ).text(),\r\n EcomOrderDeliveryCompany: mappingItems.find( '[data-item=\"EcomOrderDeliveryCompany\"]' ).text(),\r\n EcomOrderDeliveryAddress: mappingItems.find( '[data-item=\"EcomOrderDeliveryAddress\"]' ).text(),\r\n EcomOrderDeliveryAddress2: mappingItems.find( '[data-item=\"EcomOrderDeliveryAddress2\"]' ).text(),\r\n EcomOrderDeliveryZip: mappingItems.find( '[data-item=\"EcomOrderDeliveryZip\"]' ).text(),\r\n EcomOrderDeliveryCity: mappingItems.find( '[data-item=\"EcomOrderDeliveryCity\"]' ).text(),\r\n CustomDeliveryCountry: mappingItems.find( '[data-item=\"EcomOrderDeliveryCountry\"]' ).text(),\r\n EcomOrderDeliveryPhone: mappingItems.find( '[data-item=\"EcomOrderDeliveryPhone\"]' ).text()\r\n };\r\n e4.checkout.steps.addressMapper( jQuery( '#AlternativeDeliveryAddress' ), mappingObj );\r\n },\r\n clear: function () {\r\n var jDeliveryForm = jQuery( '.js-e-checkout-delivery-address' );\r\n jDeliveryForm.find( 'input[type=\"text\"], input[type=\"number\"]' ).val( '' );\r\n jDeliveryForm.find( 'input[type=\"checkbox\"]' ).prop( 'checked', false );\r\n jDeliveryForm.find( '.js-e-checkout-toggle-target' ).hide();\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-e-checkout' ).on( 'change', '.js-e-checkout-shipping-method', function () {\r\n var jShippingID = jQuery( this ).val(),\r\n pacsoftShippingID = jQuery( '.js-e-checkout-shipping-id-pacsoft' ).val(),\r\n glsShippingID = jQuery( '.js-e-checkout-shipping-id-gls' ).val();\r\n if ( jShippingID === pacsoftShippingID ) {\r\n e4.checkout.steps.shipping.pacsoft.show();\r\n e4.checkout.steps.shipping.gls.hide();\r\n e4.checkout.steps.shipping.standard.hide();\r\n jQuery( '.js-e-checkout-shipping-type' ).val( 'pacsoft' );\r\n }\r\n else if ( jShippingID === glsShippingID ) {\r\n e4.checkout.steps.shipping.gls.show();\r\n e4.checkout.steps.shipping.pacsoft.hide();\r\n e4.checkout.steps.shipping.standard.hide();\r\n jQuery( '.js-e-checkout-shipping-type' ).val( 'gls' );\r\n }\r\n else {\r\n e4.checkout.steps.shipping.pacsoft.hide();\r\n e4.checkout.steps.shipping.gls.hide();\r\n e4.checkout.steps.shipping.standard.show();\r\n jQuery( '.js-e-checkout-shipping-type' ).val( 'standard' );\r\n }\r\n } ).on( 'click', '.js-e-checkout-shippingmethod-pacsoft-lookup-btn', function () {\r\n var jSearchValue = jQuery( '.js-e-checkout-shippingmethod-pacsoft-zip' ).val();\r\n e4.checkout.steps.shipping.pacsoft.search( jSearchValue );\r\n } ).on( 'click', '.js-e-checkout-shippingmethod-gls-lookup-btn', function () {\r\n var jSearchValue = jQuery( '.js-e-checkout-shippingmethod-gls-zip' ).val();\r\n e4.checkout.steps.shipping.gls.search( jSearchValue );\r\n } ).on( 'click', '.js-e-checkout-shippingmethod-gls-result-item', function () {\r\n var parcelShopID = jQuery( this ).val();\r\n e4.checkout.steps.shipping.gls.set( parcelShopID );\r\n } ).on( 'click', '.js-e-checkout-shippingmethod-pacsoft-result-item', function () {\r\n var servicePointID = jQuery( this ).val();\r\n e4.checkout.steps.shipping.pacsoft.set( servicePointID );\r\n } ).on( 'click', '.js-e-checkout-set-delivery-address', function () {\r\n var jValue = jQuery( this ).val(),\r\n mappingItems = jQuery( this ).closest( '.js-e-checkout-shipping-user-address-item' ).find( '.js-e-checkout-set-delivery-address-mapping-data' );\r\n if ( jValue === '999' ) {\r\n console.log( 'is clicked' );\r\n e4.checkout.steps.shipping.clear();\r\n jQuery( window ).triggerHandler( 'hashchange' );\r\n jQuery( '.js-e-checkout-delivery-address' ).collapse( 'show' );\r\n }\r\n else {\r\n jQuery( '.js-e-checkout-delivery-address' ).collapse( 'show' );\r\n //e4.checkout.steps.shipping.mapAddressToForm( mappingItems ); \r\n jQuery( window ).triggerHandler( 'hashchange' );\r\n }\r\n } ).on( 'click:triggered', '.js-e-checkout-set-delivery-address', function ( event ) {\r\n var jValue = jQuery( this ).val(),\r\n mappingItems = jQuery( this ).closest( '.js-e-checkout-shipping-user-address-item' ).find( '.js-e-checkout-set-delivery-address-mapping-data' );\r\n if ( jValue === '999' ) {\r\n console.log( 'is triggered' );\r\n //e4.ecom.checkout.steps.shipping.clear();\r\n jQuery( '.js-e-checkout-delivery-address' ).collapse( 'show' );\r\n }\r\n else {\r\n jQuery( '.js-e-checkout-delivery-address' ).collapse( 'show' );\r\n e4.checkout.steps.shipping.mapAddressToForm( mappingItems );\r\n }\r\n } ).on( 'change', '.js-e-checkout-has-alternative-delivery-address', function ( event ) {\r\n var jAlternativeDeliveryAddress = jQuery( '.js-e-checkout-delivery-address' );\r\n if ( jQuery( this ).is( ':checked' ) === true && jQuery( this ).val() === 'yes' ) {\r\n e4.checkout.steps.shipping.clear();\r\n jAlternativeDeliveryAddress.collapse( 'show' );\r\n e4.scrollToAnchor.animate( e4.scrollToAnchor.getTarget( '.js-e-checkout-delivery-address' ) );\r\n }\r\n else {\r\n jAlternativeDeliveryAddress.collapse( 'hide' );\r\n e4.checkout.steps.customer.mapBillingToDelivery( jAlternativeDeliveryAddress );\r\n }\r\n } ).on( 'keyup', '.js-dcc-direct-new-customer-email', function () {\r\n jQuery( '.js-dcc-direct-new-customer-email-error' ).addClass( 'd-none' );\r\n } ).on( 'click', '.js-e-checkout-jump-to-real-shipping', function ( event ) {\r\n event.preventDefault();\r\n if ( jQuery( event.target ).closest( 'form' ).valid() ) {\r\n e4.checkout.steps.shipping.hasBillingSet = true;\r\n jQuery.ajax( {\r\n url: e4.settings.ecom.checkout.url,\r\n type: 'POST',\r\n data: jQuery( '.js-e-checkout-step-form' ).serialize()\r\n } )\r\n .done( function ( data ) {\r\n if ( data.order.customer.isEmailKnown === true ) {\r\n e4.checkout.steps.shipping.hasBillingSet = false;\r\n jQuery( '.js-dcc-direct-new-customer-email-error' ).removeClass( 'd-none' );\r\n }\r\n else {\r\n data.steps.hasBilling = e4.checkout.steps.shipping.hasBillingSet;\r\n jQuery( '.js-dcc-direct-new-customer-email-error' ).addClass( 'd-none' );\r\n jQuery( '#js-e-checkout-form' ).html( e4.handlebars.tmpl.checkout( data ) );\r\n }\r\n } )\r\n .fail( function ( error ) {\r\n if ( e4.checkout.debug === true ) {\r\n console.error( 'Failed to fetch ORDER DATA, please check your settings!' );\r\n console.error( error.responseText );\r\n }\r\n } );\r\n }\r\n else {\r\n e4.checkout.steps.shipping.hasBillingSet = false;\r\n }\r\n } ).on( 'click', '.js-e-checkout-jump-to-login', function ( event ) {\r\n event.preventDefault();\r\n jQuery( '.js-e-checkout-login' ).collapse( 'toggle' );\r\n jQuery( '.js-e-select-delivery-address' ).collapse( 'toggle' );\r\n } ).on( 'change', '.js-dcc-save-address-checkbox', function ( event ) {\r\n jQuery( '.js-dcc-save-address-input' ).val( event.target.checked ? 'true' : '' );\r\n } ).on( 'keyup input', '.js-dcc-search-user-addresses-input', e4.checkout.steps.shipping.search );\r\n },\r\n search: function ( event ) {\r\n var jAddresses = jQuery( '.js-e-checkout-shipping-user-address-item' ),\r\n strQuery = event.target.value;\r\n if ( strQuery.length > 0 ) {\r\n jAddresses.each( function ( index, domAddress ) {\r\n var jAddress = jQuery( domAddress ),\r\n strTerms = jAddress.data( 'terms' ),\r\n arrTerms = strTerms.split( '|' ),\r\n hasMatch = arrTerms.some( function ( strTerm ) {\r\n if ( strTerm.length ) {\r\n return strTerm.toLowerCase().indexOf( strQuery.toLowerCase() ) > -1;\r\n }\r\n return false;\r\n } );\r\n if ( hasMatch === true ) {\r\n jAddress.removeClass( 'd-none' );\r\n }\r\n else {\r\n jAddress.addClass( 'd-none' );\r\n }\r\n } );\r\n }\r\n else {\r\n jAddresses.each( function ( index, domAddress ) {\r\n jQuery( domAddress ).removeClass( 'd-none' );\r\n } );\r\n }\r\n },\r\n standard: {\r\n init: function () {\r\n },\r\n show: function () {\r\n jQuery( '.js-e-checkout-delivery-address' ).collapse( 'show' );\r\n },\r\n hide: function () {\r\n jQuery( '.js-e-checkout-delivery-address' ).collapse( 'hide' );\r\n e4.checkout.steps.shipping.clear();\r\n }\r\n },\r\n pacsoft: {\r\n init: function () {\r\n e4.checkout.steps.shipping.pacsoft.bindEvents();\r\n if ( e4.checkout.steps.shipping.pacsoft.data ) {\r\n jQuery( '#js-e-checkout-shippingmethod-pacsoft-results' ).html( e4.handlebars.partial.pacsoft( e4.checkout.steps.shipping.pacsoft.data ) );\r\n jQuery( '.js-e-checkout-shippingmethod-pacsoft-zip' ).data( 'rule-required', false );\r\n }\r\n },\r\n show: function () {\r\n jQuery( '.js-e-checkout-shippingmethod-pacsoft' ).collapse( 'show' );\r\n },\r\n hide: function () {\r\n jQuery( '.js-e-checkout-shippingmethod-pacsoft' ).collapse( 'hide' );\r\n e4.checkout.steps.shipping.pacsoft.clear();\r\n },\r\n clear: function () {\r\n e4.checkout.steps.shipping.clear();\r\n jQuery( '.js-e-checkout-shippingmethod-pacsoft-id' ).val( '' );\r\n jQuery( '.js-e-checkout-shippingmethod-pacsoft-search-string' ).val( '' );\r\n e4.checkout.steps.shipping.pacsoft.data = null;\r\n jQuery( '.js-e-checkout-shippingmethod-pacsoft-zip' ).data( 'rule-required', true );\r\n jQuery( '#js-e-checkout-shippingmethod-pacsoft-results' ).slideUp( e4.settings.animation.speed, function () {\r\n jQuery( this ).html( '' );\r\n } );\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-e-checkout' ).on( 'keydown blur', '.js-e-checkout-shippingmethod-pacsoft-zip', function ( event ) {\r\n var jSearchValue = jQuery( this ).val();\r\n jQuery( '.js-e-checkout-shippingmethod-pacsoft-search-string' ).val( jSearchValue + ' ' + jQuery( '.js-e-checkout-shippingmethod-pacsoft-address' ).val() );\r\n if ( jSearchValue.length > 3 ) {\r\n if ( event.which === 9 || event.which === 13 || event.type === 'focusout' ) {\r\n e4.checkout.steps.shipping.pacsoft.search( jSearchValue );\r\n }\r\n }\r\n } ).on( 'keydown blur', '.js-e-checkout-shippingmethod-pacsoft-address', function ( event ) {\r\n var jSearchValue = jQuery( this ).val();\r\n jQuery( '.js-e-checkout-shippingmethod-pacsoft-search-string' ).val( jQuery( '.js-e-checkout-shippingmethod-pacsoft-zip' ).val() + ' ' + jSearchValue );\r\n if ( jQuery( '.js-e-checkout-shippingmethod-pacsoft-zip' ).val() && jSearchValue.length > 3 ) {\r\n if ( event.which === 9 || event.which === 13 || event.type === 'focusout' ) {\r\n e4.checkout.steps.shipping.pacsoft.search( jQuery( '.js-e-checkout-shippingmethod-pacsoft-zip' ).val() );\r\n }\r\n }\r\n } ).on( 'click', '.js-e-checkout-shippingmethod-pacsoft-edit-btn', function ( event ) {\r\n event.preventDefault();\r\n e4.checkout.steps.shipping.pacsoft.clear();\r\n jQuery( window ).triggerHandler( 'hashchange' );\r\n } );\r\n },\r\n set: function ( servicePointID ) {\r\n var jAlternativeShippingAddress = jQuery( '.js-e-checkout-delivery-address' );\r\n for ( var i = 0; i < e4.checkout.steps.shipping.pacsoft.data.servicePoints.length; i++ ) {\r\n e4.checkout.steps.shipping.pacsoft.data.servicePoints[ i ].isSelected = '';\r\n if ( e4.checkout.steps.shipping.pacsoft.data.servicePoints[ i ].servicePointId === servicePointID ) {\r\n var mappingObj = {\r\n EcomOrderDeliveryName: e4.checkout.steps.shipping.pacsoft.data.servicePoints[ i ].name,\r\n EcomOrderDeliveryCompany: e4.checkout.steps.shipping.pacsoft.data.servicePoints[ i ].name,\r\n EcomOrderDeliveryAddress: e4.checkout.steps.shipping.pacsoft.data.servicePoints[ i ].deliveryAddress.streetName + ' ' + e4.checkout.steps.shipping.pacsoft.data.servicePoints[ i ].deliveryAddress.streetNumber,\r\n EcomOrderDeliveryZip: e4.checkout.steps.shipping.pacsoft.data.servicePoints[ i ].deliveryAddress.postalCode,\r\n EcomOrderDeliveryCity: e4.checkout.steps.shipping.pacsoft.data.servicePoints[ i ].deliveryAddress.city\r\n };\r\n e4.checkout.steps.shipping.pacsoft.data.servicePoints[ i ].isSelected = true;\r\n e4.checkout.steps.addressMapper( jAlternativeShippingAddress, mappingObj );\r\n jQuery( '.js-e-checkout-shippingmethod-pacsoft-id' ).val( e4.checkout.steps.shipping.pacsoft.data.servicePoints[ i ].servicePointId );\r\n }\r\n jQuery( '.js-e-checkout-shippingmethod-pacsoft-zip' ).data( 'rule-required', false );\r\n }\r\n },\r\n search: function ( pacsoftZip ) {\r\n var pacsoftAddress = jQuery( '.js-e-checkout-shippingmethod-pacsoft-address' ).val();\r\n jQuery.ajax( {\r\n url: '/pnlookup.ashx',\r\n type: 'POST',\r\n beforeSend: function () {\r\n jQuery( '.js-e-checkout-step-loading-overlay' ).addClass( 'is-loading' );\r\n },\r\n data: {\r\n countryCode: jQuery( '#EcomOrderDeliveryCountry' ).val(),\r\n numberOfServicePoints: e4.settings.ecom.checkout.shipping.searchCount,\r\n postalCode: pacsoftZip,\r\n streetName: pacsoftAddress\r\n }\r\n } )\r\n .done( function ( data ) {\r\n if ( e4.checkout.debug === true ) {\r\n console.info( data );\r\n }\r\n e4.checkout.steps.shipping.pacsoft.data = data.servicePointInformationResponse;\r\n jQuery( '.js-e-checkout-step-loading-overlay' ).removeClass( 'is-loading' );\r\n e4.checkout.steps.shipping.pacsoft.build();\r\n } );\r\n },\r\n build: function () {\r\n jQuery( '#js-e-checkout-shippingmethod-pacsoft-results' ).html( e4.handlebars.partial.pacsoft( e4.checkout.steps.shipping.pacsoft.data ) ).slideDown( e4.settings.animation.speed, function () {\r\n e4.scrollToAnchor.animate( e4.scrollToAnchor.getTarget( '.js-e-checkout-shippingmethod-pacsoft' ) );\r\n } );\r\n }\r\n },\r\n gls: {\r\n init: function () {\r\n e4.checkout.steps.shipping.gls.bindEvents();\r\n if ( e4.checkout.steps.shipping.gls.data ) {\r\n jQuery( '#js-e-checkout-shippingmethod-gls-results' ).html( e4.handlebars.partial.gls( e4.checkout.steps.shipping.gls.data ) );\r\n jQuery( '.js-e-checkout-shippingmethod-gls-zip' ).data( 'rule-required', false );\r\n }\r\n },\r\n show: function () {\r\n jQuery( '.js-e-checkout-shippingmethod-gls' ).on( 'shown.bs.collapse', function () {\r\n if ( jQuery( '.js-e-checkout-shippingmethod-gls-zip' ).val() ) {\r\n jQuery( '.js-e-checkout-shippingmethod-gls-zip' ).trigger( 'keyup' );\r\n }\r\n } ).collapse( 'show' );\r\n },\r\n hide: function () {\r\n jQuery( '.js-e-checkout-shippingmethod-gls' ).collapse( 'hide' );\r\n e4.checkout.steps.shipping.gls.clear();\r\n },\r\n clear: function () {\r\n e4.checkout.steps.shipping.clear();\r\n jQuery( '.js-e-checkout-shippingmethod-gls-id' ).val( '' );\r\n jQuery( '.js-e-checkout-shippingmethod-gls-search-string' ).val( '' );\r\n e4.checkout.steps.shipping.gls.data = null;\r\n jQuery( '.js-e-checkout-shippingmethod-gls-zip' ).data( 'rule-required', true );\r\n jQuery( '#js-e-checkout-shippingmethod-gls-results' ).slideUp( e4.settings.animation.speed, function () {\r\n jQuery( this ).html( '' );\r\n } );\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-e-checkout' ).on( 'keydown blur', '.js-e-checkout-shippingmethod-gls-zip', function ( event ) {\r\n var jSearchValue = jQuery( this ).val();\r\n jQuery( '.js-e-checkout-shippingmethod-gls-search-string' ).val( jSearchValue + ' ' + jQuery( '.js-e-checkout-shippingmethod-gls-address' ).val() );\r\n if ( jSearchValue.length > 3 ) {\r\n if ( event.which === 9 || event.which === 13 || event.type === 'focusout' ) {\r\n e4.checkout.steps.shipping.gls.search( jSearchValue );\r\n }\r\n }\r\n } ).on( 'keydown blur', '.js-e-checkout-shippingmethod-gls-address', function ( event ) {\r\n var jSearchValue = jQuery( this ).val();\r\n jQuery( '.js-e-checkout-shippingmethod-gls-search-string' ).val( jQuery( '.js-e-checkout-shippingmethod-gls-zip' ).val() + ' ' + jSearchValue );\r\n if ( jQuery( '.js-e-checkout-shippingmethod-gls-zip' ).val() && jSearchValue.length > 3 ) {\r\n if ( event.which === 9 || event.which === 13 || event.type === 'focusout' ) {\r\n e4.checkout.steps.shipping.gls.search( jQuery( '.js-e-checkout-shippingmethod-gls-zip' ).val() );\r\n }\r\n }\r\n } ).on( 'click', '.js-e-checkout-shippingmethod-gls-edit-btn', function ( event ) {\r\n event.preventDefault();\r\n e4.checkout.steps.shipping.gls.clear();\r\n jQuery( window ).triggerHandler( 'hashchange' );\r\n } );\r\n },\r\n set: function ( parcelShopID ) {\r\n var jAlternativeShippingAddress = jQuery( '.js-e-checkout-delivery-address' );\r\n for ( var i = 0; i < e4.checkout.steps.shipping.gls.data.parcelshops.length; i++ ) {\r\n e4.checkout.steps.shipping.gls.data.parcelshops[ i ].isSelected = '';\r\n if ( e4.checkout.steps.shipping.gls.data.parcelshops[ i ].Number === parcelShopID ) {\r\n var mappingObj = {\r\n EcomOrderDeliveryName: e4.checkout.steps.shipping.gls.data.parcelshops[ i ].CompanyName,\r\n EcomOrderDeliveryCompany: e4.checkout.steps.shipping.gls.data.parcelshops[ i ].Streetname2,\r\n EcomOrderDeliveryAddress: e4.checkout.steps.shipping.gls.data.parcelshops[ i ].Streetname,\r\n EcomOrderDeliveryZip: e4.checkout.steps.shipping.gls.data.parcelshops[ i ].ZipCode,\r\n EcomOrderDeliveryCity: e4.checkout.steps.shipping.gls.data.parcelshops[ i ].CityName\r\n };\r\n e4.checkout.steps.shipping.gls.data.parcelshops[ i ].isSelected = true;\r\n e4.checkout.steps.addressMapper( jAlternativeShippingAddress, mappingObj );\r\n jQuery( '.js-e-checkout-shippingmethod-gls-id' ).val( e4.checkout.steps.shipping.gls.data.parcelshops[ i ].Number );\r\n }\r\n jQuery( '.js-e-checkout-shippingmethod-gls-zip' ).data( 'rule-required', false );\r\n }\r\n },\r\n search: function ( glsZip ) {\r\n var glsAddress = jQuery( '.js-e-checkout-shippingmethod-gls-address' ).val();\r\n jQuery.ajax( {\r\n url: '/glslookup.ashx',\r\n type: 'POST',\r\n beforeSend: function () {\r\n jQuery( '.js-e-checkout-step-loading-overlay' ).addClass( 'is-loading' );\r\n },\r\n data: {\r\n count: e4.settings.ecom.checkout.shipping.searchCount,\r\n type: glsAddress ? 'ADDRESS' : 'ZIP',\r\n street: glsAddress,\r\n zipcode: glsZip\r\n }\r\n } )\r\n .done( function ( data ) {\r\n if ( e4.checkout.debug === true ) {\r\n console.info( data );\r\n }\r\n e4.checkout.steps.shipping.gls.data = data;\r\n jQuery( '.js-e-checkout-step-loading-overlay' ).removeClass( 'is-loading' );\r\n e4.checkout.steps.shipping.gls.build();\r\n } );\r\n },\r\n build: function () {\r\n jQuery( '#js-e-checkout-shippingmethod-gls-results' ).html( e4.handlebars.partial.gls( e4.checkout.steps.shipping.gls.data ) ).slideDown( e4.settings.animation.speed, function () {\r\n //jQuery( this ).find( '.js-e-checkout-shippingmethod-gls-result-item' ).first().prop(\r\n // 'checked', true ).trigger( 'click' );\r\n e4.scrollToAnchor.animate( e4.scrollToAnchor.getTarget( '.js-e-checkout-shippingmethod-gls' ) );\r\n } );\r\n }\r\n }\r\n },\r\n approve: {\r\n init: function () {\r\n e4.checkout.steps.approve.termsAndConditions.init();\r\n },\r\n show: function () {\r\n jQuery( '.js-e-checkout-approve-form' ).validate( e4.checkout.validateOptions );\r\n },\r\n newsletterSubscription: function () {\r\n jQuery( '.js-e-checkout' ).on( 'change', 'input[name=\"Co3EspressoEcomOrderSubscribeToNewsletter\"]', function () {\r\n jQuery( '.js-e-checkout-approve-form' ).find( 'input[name=\"EcomOrderSubscribeToNewsletter\"]' ).val( this.checked === true ? 'true' : '' );\r\n } ).triggerHandler( 'change' );\r\n },\r\n termsAndConditions: {\r\n init: function () {\r\n e4.checkout.steps.approve.termsAndConditions.bindEvents();\r\n e4.checkout.steps.approve.termsAndConditions.get();\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-e-checkout' ).on( 'change', 'input[name=\"EcomOrderCustomerAccepted\"]', function () {\r\n jQuery( 'input[name=\"EcomOrderCustomerAccepted\"]' ).prop( 'checked', jQuery( this ).prop( 'checked' ) );\r\n } );\r\n jQuery( '.js-e-accept-term-and-conditions' ).on( 'click', function () {\r\n jQuery( 'input[name=\"EcomOrderCustomerAccepted\"]' ).prop( 'checked', true );\r\n } );\r\n },\r\n get: function () {\r\n jQuery.get( e4.settings.ecom.checkout.termsAndConditions, function ( data ) {\r\n var strHtml = jQuery( data ).find( '.e-content-main' ).html();\r\n jQuery( '.js-e-checkout-modal-terms-and-conditions' ).replaceWith( strHtml );\r\n } );\r\n }\r\n }\r\n },\r\n receipt: {\r\n // OBS: Receipt is not really a step, it is separate page and works it completely different than the steps.\r\n init: function () {\r\n e4.util.hash.remove( 'step' );\r\n sessionStorage.removeItem( 'checkoutStep' );\r\n var step = {\r\n index: 5,\r\n name: 'receipt'\r\n };\r\n e4.checkout.tracking.step( step );\r\n e4.util.require.js( e4.settings.require.handlebars, function () {\r\n e4.handlebars.registerHelpers( 'compare counter' );\r\n e4.handlebars.registerTemplates( '#js-e-handlebars-tmpl-cart' );\r\n e4.checkout.steps.receipt.load();\r\n } );\r\n },\r\n load: function () {\r\n var jCheckoutReceipt = jQuery( '.js-e-checkout-receipt' ),\r\n objOrderData = jCheckoutReceipt.data();\r\n jQuery.ajax( {\r\n method: 'GET',\r\n url: e4.settings.ecom.cart.url,\r\n data: objOrderData\r\n } ).done( function ( jsonData ) {\r\n e4.checkout.steps.receipt.build( jsonData );\r\n } );\r\n },\r\n build: function ( jsonData ) {\r\n jQuery( '.js-e-checkout-cart-receipt' ).html( e4.handlebars.tmpl.cart( jsonData ) );\r\n e4.checkout.cart.buildTotalLineInCheckout();\r\n }\r\n }\r\n },\r\n tracking: {\r\n step: function ( data ) {\r\n var virtualPageview = {\r\n 'event': 'VirtualPageview',\r\n 'vpevent': 'VirtualPageview',\r\n 'virtualPageURL': '/shop/cart/checkout?step=' + data.index + ' ' + data.name,\r\n 'virtualPageTitle': 'Order Step ' + data.index + ' – ' + data.name\r\n };\r\n var checkout = {\r\n 'event': 'checkout',\r\n 'ecommerce': {\r\n 'checkout': {\r\n 'actionField': {\r\n 'step': data.index\r\n }\r\n }\r\n }\r\n };\r\n e4.gtm.pushDataLayer( virtualPageview );\r\n e4.gtm.pushDataLayer( checkout );\r\n }\r\n }\r\n};\r\n\r\n","e4.cc = {\r\n init: function () {\r\n if ( jQuery( '.js-e-cc-list' ).length > 0 ) {\r\n e4.util.require.js( e4.settings.require.handlebars, function () {\r\n e4.handlebars.registerHelpers( 'compare counter' );\r\n e4.handlebars.registerTemplates( '#js-e-handlebars-tmpl-productlist-favorite-products #js-e-handlebars-tmpl-cart-msg-lastadded' );\r\n \r\n } );\r\n }\r\n e4.cc.lists.product.bindEvents();\r\n e4.cc.lists.list.bindEvents();\r\n },\r\n lists: {\r\n list: {\r\n bindEvents: function () {\r\n var jList = jQuery( '.js-e-cc-list' );\r\n jQuery(document).on( 'click', '.js-e-cc-list-product-remove', e4.cc.lists.list.removeProduct );\r\n jQuery(document).on( 'click', '.js-e-cc-list-product-add-to-cart', e4.cc.lists.list.addSingleProductToCart );\r\n jQuery(document).on( 'click', '.js-e-cc-list-delete', e4.cc.lists.list.delete );\r\n e4.cc.lists.list.bindNewListEvent();\r\n },\r\n removeProduct: function ( event ) {\r\n event.preventDefault();\r\n e4.cc.lists.ajax( {\r\n url: event.target.href,\r\n beforeSend: function(){\r\n jQuery( event.target ).closest( '.js-e-cc-list-product' ).slideUp( function () {\r\n jQuery( this ).closest( '.js-e-cc-list' ).find( '.js-e-cc-list-product-count' ).html( function ( index, oldhtml ) {\r\n return parseInt( oldhtml ) - 1;\r\n } );\r\n } );\r\n }\r\n });\r\n },\r\n addSingleProductToCart: function ( event ) {\r\n event.preventDefault();\r\n var jForm = jQuery( event.target ).closest( '.js-add-multi-single-form' ),\r\n objProductData = {};\r\n jForm.find( 'input' ).each( function ( index, domInput ) {\r\n var name = domInput.name.replace( jForm.data( 'index' ), '' );\r\n objProductData[ name ] = domInput.value;\r\n } );\r\n e4.cart.addProduct( objProductData );\r\n },\r\n delete: function ( event ) {\r\n if ( confirm( jQuery( event.target ).data( 'confirm-msg' ) ) === false ) {\r\n event.preventDefault();\r\n }\r\n },\r\n bindNewListEvent: function () {\r\n jQuery( document ).on( 'show.bs.collapse', '.js-dcc-favoritelist-collapse', function ( event ) {\r\n if ( event.target.classList.contains( 'has-loaded' ) === false ) {\r\n var listId = event.target.dataset.listId;\r\n jQuery.ajax( {\r\n method: 'POST',\r\n url: e4.settings.ecom.favoriteProducts.url,\r\n beforeSend: function () {\r\n },\r\n data: {\r\n listId: listId\r\n }\r\n } ).done( function ( jsonData ) {\r\n if ( jsonData.status === 'success' ) {\r\n jQuery( event.target ).find( '.js-dcc-favorites-products-hbs-container' ).html( e4.handlebars.tmpl.productlistFavoriteProducts( jsonData ) );\r\n event.target.classList.add( 'has-loaded' );\r\n }\r\n else {\r\n event.target.classList.add( 'has-error' );\r\n console.error( jsonData );\r\n }\r\n } );\r\n }\r\n } );\r\n }\r\n },\r\n product: {\r\n bindEvents: function () {\r\n jQuery(document).on( 'submit', '.js-e-product-cc-list-form',function ( event ) {\r\n event.preventDefault();\r\n } ).on( 'change', '.js-e-cc-list', e4.cc.lists.product.toggleList );\r\n },\r\n toggleList: function ( event ) {\r\n var jInput = jQuery( event.target );\r\n if ( jInput.prop( 'checked' ) === true ) {\r\n e4.cc.lists.product.addToList( jInput );\r\n }\r\n else {\r\n e4.cc.lists.product.removeFromList( jInput );\r\n }\r\n },\r\n addToList: function ( jInput ) {\r\n jInput.prop( 'disabled', true );\r\n fetch( jInput.data( 'url-add' ) + '&Redirect=false', { redirect: 'manual' } ).then( function () {\r\n jInput.prop( 'disabled', false );\r\n } );\r\n },\r\n removeFromList: function ( jInput ) {\r\n jInput.prop( 'disabled', true );\r\n fetch( jInput.data( 'url-remove' ) + '&Redirect=false', { redirect: 'manual' } ).then( function () {\r\n jInput.prop( 'disabled', false );\r\n } );\r\n }\r\n },\r\n ajax: function ( objAjaxSettings, fnCallback ) {\r\n var jqXHR = jQuery.ajax( jQuery.extend( {\r\n url: location.href,\r\n method: 'GET',\r\n dataType: 'html',\r\n cache: false\r\n }, objAjaxSettings ) );\r\n jqXHR.done( function () {\r\n if ( typeof fnCallback === 'function' ) {\r\n fnCallback();\r\n }\r\n } );\r\n jqXHR.fail( function ( data, textStatus, errorThrown ) {\r\n console.error( data, textStatus, errorThrown );\r\n } );\r\n }\r\n }\r\n};\r\n","e4.login = {\r\n init: function () {\r\n // ATTENTION: Please note that all events are trigger on jQuery( document ) and not the login form.\r\n e4.login.event = e4.util.registerEvents( 'userauthenticated', 'login' );\r\n e4.login.checkUserAuthentication();\r\n e4.login.remember();\r\n },\r\n checkUserAuthentication: function () {\r\n // Check to see if user is authenticated\r\n if ( jQuery( 'body' ).data( 'userauthenticated' ) === true ) {\r\n // Check to see if knew that already\r\n jQuery( document ).trigger( e4.login.event.userauthenticated );\r\n // Make sure that we remember this for next page load\r\n sessionStorage.setItem( 'e4.login.userauthenticated', 'true' );\r\n }\r\n else {\r\n // Invalidate info if user logs off.\r\n sessionStorage.setItem( 'e4.login.userauthenticated', 'false' );\r\n }\r\n },\r\n remember: function () {\r\n jQuery( '.js-e-login-remember' ).on( 'change', function () {\r\n jQuery( this.form ).find( '.js-e-login-remember-username, .js-e-login-remember-password' ).val( ( jQuery( this ).prop( 'checked' ) === true ? 'True' : '' ) );\r\n } ).triggerHandler( 'change' );\r\n }\r\n};\r\n","e4.impersonation = {\r\n init: function () {\r\n if ( jQuery( '.js-e-extranet-impersonateable-users' ).length === 1 ) {\r\n e4.util.require.js( e4.settings.require.handlebars, function () {\r\n e4.handlebars.registerTemplates( '#js-e-handlebars-tmpl-extranet-impersonateable-users' );\r\n e4.impersonation.bindEvents();\r\n e4.impersonation.load();\r\n } );\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-e-extranet-impersonateable-users-search-form' ).on( 'submit', function ( event ) {\r\n event.preventDefault();\r\n } );\r\n jQuery( '.js-e-extranet-impersonateable-users-search-input' ).on( 'keyup input', function () {\r\n e4.impersonation.toggleInputGroupState( this );\r\n e4.impersonation.getUsers( this );\r\n } );\r\n jQuery( '.js-e-extranet-impersonateable-users-search-clear' ).on( 'click', function () {\r\n e4.impersonation.clearInput( this );\r\n } );\r\n },\r\n toggleInputGroupState: function ( domElm ) {\r\n var jSearchInputGroup = jQuery( domElm ).closest( '.js-e-extranet-impersonateable-users-search-input-group' );\r\n if ( domElm.value === '' ) {\r\n jSearchInputGroup.addClass( 'is-empty' );\r\n }\r\n else {\r\n jSearchInputGroup.removeClass( 'is-empty' );\r\n }\r\n },\r\n clearInput: function ( domElm ) {\r\n jQuery( domElm ).closest( '.js-e-extranet-impersonateable-users-search-input-group' ).find( '.js-e-extranet-impersonateable-users-search-input' ).val( '' ).trigger( 'focus' ).triggerHandler( 'keyup' );\r\n sessionStorage.removeItem( 'e4.impersonation.search.query' );\r\n }, // jqXHR: null,\r\n ajax: function ( objAjaxSettings, fnCallback ) {\r\n if ( this.jqXHR !== undefined && this.jqXHR.readyState !== 4 ) {\r\n this.jqXHR.abort();\r\n }\r\n this.jqXHR = jQuery.ajax( jQuery.extend( {\r\n url: '/system/data/users-impersonateable', // e4.settings.user.impersonation.url,\r\n method: 'GET',\r\n dataType: 'json',\r\n cache: false\r\n }, objAjaxSettings ) );\r\n this.jqXHR.done( function ( data ) {\r\n if ( typeof fnCallback === 'function' ) {\r\n fnCallback( data );\r\n }\r\n } );\r\n },\r\n load: function () {\r\n var jInput = jQuery( '.js-e-extranet-impersonateable-users-search-input' ),\r\n strQuery = sessionStorage.getItem( 'e4.impersonation.search.query' );\r\n if ( strQuery !== null ) {\r\n jInput.val( strQuery );\r\n e4.impersonation.toggleInputGroupState( jInput.get( 0 ) );\r\n }\r\n e4.impersonation.ajax( {\r\n data: jInput.closest( 'form' ).serialize()\r\n }, function ( data ) {\r\n e4.impersonation.update( data );\r\n e4.loading.resolveWait( '.js-e-extranet-impersonateable-users' );\r\n } );\r\n },\r\n timeout: null,\r\n getUsers: function ( domElm ) {\r\n if ( e4.impersonation.timeout !== null ) {\r\n clearTimeout( e4.impersonation.timeout );\r\n }\r\n e4.impersonation.timeout = setTimeout( function () {\r\n e4.impersonation.ajax( {\r\n data: jQuery( domElm.form ).serialize()\r\n }, function ( data ) {\r\n e4.impersonation.update( data );\r\n } );\r\n }, 250 );\r\n },\r\n update: function ( data ) {\r\n sessionStorage.setItem( 'e4.impersonation.search.query', data.q );\r\n jQuery( '.js-e-extranet-impersonateable-users' ).html( e4.handlebars.tmpl.extranetImpersonateableUsers( data ) );\r\n e4.loading.resolveWait( '.js-e-extranet-impersonateable-users' );\r\n }\r\n};\r\n\r\n","e4.gtm = {\r\n init: function () {\r\n if ( window.google_tag_manager !== undefined ) {\r\n e4.gtm.bindEvents();\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( document )\r\n .on( 'userauthenticated.e4.login', e4.gtm.login )\r\n .on( 'productadded.e4.cart', e4.gtm.ecom.addProduct )\r\n .on( 'productremoved.e4.cart', e4.gtm.ecom.removeProduct );\r\n\r\n jQuery( '.js-e-search-form' )\r\n .on( 'getresult.e4.search', e4.gtm.search );\r\n },\r\n pushDataLayer: function ( objDataLayer ) {\r\n // console.log( objDataLayer )\r\n if ( window.dataLayer !== undefined ) {\r\n dataLayer.push( objDataLayer );\r\n }\r\n },\r\n login: function () {\r\n e4.gtm.pushDataLayer( {\r\n 'LoggedOn': 'OK',\r\n 'event': 'LoggedOnDone'\r\n } );\r\n },\r\n search: function ( event, data ) {\r\n e4.gtm.pushDataLayer( {\r\n 'event': 'VirtualPageviewSearch',\r\n 'virtualPageSearchURL': '/search?q=' + data.query,\r\n 'virtualPageSearchTitle': 'Search'\r\n } );\r\n if ( data.resultCount === 0 ) {\r\n e4.gtm.pushDataLayer( {\r\n 'eventCategory': 'Nulsøgning',\r\n 'eventAction': data.query,\r\n 'eventLabel': '{{Page URL}}',\r\n 'eventValue': 0,\r\n 'eventInteraction': true,\r\n 'event': 'track-ga-event'\r\n } );\r\n }\r\n },\r\n ecom: {\r\n // https://developers.google.com/tag-manager/enhanced-ecommerce#cart\r\n addProduct: function ( event, data ) {\r\n\r\n e4.gtm.pushDataLayer( {\r\n event: 'addToCart',\r\n ecommerce: {\r\n currencyCode: data.CurrencyCode,\r\n add: {\r\n products: [ {\r\n name: data.Name,\r\n id: data.Number,\r\n price: data.Price,\r\n quantity: data.Quantity\r\n } ]\r\n }\r\n }\r\n } );\r\n },\r\n removeProduct: function ( event, data ) {\r\n e4.gtm.pushDataLayer( {\r\n 'event': 'removeFromCart',\r\n 'ecommerce': {\r\n currencyCode: data.CurrencyCode,\r\n 'remove': {\r\n 'products': [ {\r\n name: data.Name,\r\n id: data.Number,\r\n price: data.Price,\r\n quantity: data.Quantity\r\n } ]\r\n }\r\n }\r\n } );\r\n }\r\n }\r\n};\r\n","e4.animateTxt = {\r\n init: function () {\r\n var jTxt = jQuery( '.p-txt-animate' );\r\n if ( jTxt.length > 0 ) {\r\n e4.animateTxt.animate();\r\n e4.animateTxt.bindEvents();\r\n }\r\n },\r\n bindEvents: function () {\r\n e4.animateTxt.isRAF = false;\r\n jQuery( window ).on( 'scroll', function () {\r\n if ( e4.animateTxt.isRAF === false ) {\r\n window.requestAnimationFrame( function () {\r\n e4.animateTxt.animate();\r\n e4.animateTxt.isRAF = false;\r\n } );\r\n e4.animateTxt.isRAF = true;\r\n }\r\n } );\r\n },\r\n animate: function () {\r\n jQuery( '.p-txt-animate' ).each( function () {\r\n var jThis = jQuery( this );\r\n if ( e4.util.isInViewport( jThis ) === true ) {\r\n jThis.addClass( 'is-visible' );\r\n }\r\n } );\r\n }\r\n\r\n};\r\n\r\n","e4.animateNumber = {\r\n init: function () {\r\n var jNumber = jQuery( '.js-e-animate-number' );\r\n if ( jNumber.length > 0 ) {\r\n e4.animateNumber.fixElementWidths();\r\n e4.animateNumber.animate();\r\n e4.animateNumber.bindEvents();\r\n }\r\n },\r\n fixElementWidths: function () {\r\n jQuery( '.js-e-animate-number' ).html( function ( index, oldHtml ) {\r\n return jQuery( '' ).text( oldHtml ).addClass( 'e-animate-number' ).width( this.offsetWidth );\r\n } );\r\n },\r\n bindEvents: function () {\r\n e4.animateNumber.isRAF = false;\r\n jQuery( window ).on( 'scroll', function () {\r\n if ( e4.animateNumber.isRAF === false ) {\r\n window.requestAnimationFrame( function () {\r\n e4.animateNumber.animate();\r\n e4.animateNumber.isRAF = false;\r\n } );\r\n e4.animateNumber.isRAF = true;\r\n }\r\n } );\r\n },\r\n animate: function () {\r\n jQuery( '.js-e-animate-number' ).each( function () {\r\n var jThis = jQuery( this );\r\n if ( e4.util.isInViewport( jThis ) === true ) {\r\n jThis.removeClass( 'js-e-animate-number' );\r\n var jThisNumber = jThis.find( '.e-animate-number' ),\r\n intAnimateToward = parseInt( jThis.text() ),\r\n intDuration = e4.settings.animation.speed;\r\n if ( intAnimateToward > 10000 ) {\r\n intDuration = intDuration * 15;\r\n }\r\n else if ( intAnimateToward > 5000 ) {\r\n intDuration = intDuration * 12.5;\r\n }\r\n else if ( intAnimateToward > 1000 ) {\r\n intDuration = intDuration * 11.125;\r\n }\r\n else if ( intAnimateToward > 250 ) {\r\n intDuration = intDuration * 10;\r\n }\r\n else if ( intAnimateToward > 100 ) {\r\n intDuration = intDuration * 8.75;\r\n }\r\n else if ( intAnimateToward > 50 ) {\r\n intDuration = intDuration * 7.5;\r\n }\r\n else if ( intAnimateToward > 10 ) {\r\n intDuration = intDuration * 6.25;\r\n }\r\n else {\r\n intDuration = intDuration * 5;\r\n }\r\n // console.log( intAnimateToward, intDuration );\r\n jThis.prop( 'counter', 0 ).animate( {\r\n counter: intAnimateToward\r\n }, {\r\n duration: intDuration,\r\n easing: 'linear',\r\n step: function ( now ) {\r\n jThisNumber.text( Math.ceil( now ) );\r\n }\r\n } );\r\n }\r\n } );\r\n }\r\n\r\n};\r\n\r\n","( function () {\r\n 'use strict';\r\n jQuery( function () {\r\n e4.forms.init();\r\n e4.product.init();\r\n dcc.product.init();\r\n e4.cart.init();\r\n e4.checkout.init();\r\n e4.productlist.init();\r\n dcc.productlist.init();\r\n e4.header.init();\r\n e4.nav.init();\r\n dcc.sidebarContact();\r\n dcc.customercenter.init();\r\n dcc.cart.init();\r\n dcc.configurator.init();\r\n dcc.currencyChanger.init();\r\n } );\r\n}() );\r\n\r\n\r\n","( function () {\r\n 'use strict';\r\n jQuery( window ).on( 'load', function () {\r\n e4.loading.done();\r\n e4.util.init();\r\n e4.gtm.init();\r\n e4.scrollReveal.init();\r\n e4.scrollToAnchor.init();\r\n e4.breadcrumb.init();\r\n e4.p.init();\r\n e4.parallax.init();\r\n e4.search.init();\r\n dcc.search.init();\r\n e4.login.init();\r\n e4.cta.init();\r\n e4.cc.init();\r\n e4.quickorder.init();\r\n e4.impersonation.init();\r\n e4.dealersearch.init();\r\n e4.news.init();\r\n e4.cookies.init();\r\n e4.bootstrap.dropdown.init();\r\n e4.bootstrap.carousel.init();\r\n e4.bootstrap.modal.init();\r\n e4.bootstrap.collapse.init();\r\n e4.animateTxt.init();\r\n e4.animateNumber.init();\r\n } );\r\n}() );\r\n","var e4 = e4 || {},\r\n dcc = dcc || {};\r\n( function () {\r\n dcc.configurator = {\r\n productId: function () {\r\n return jQuery( dcc.configurator.selectors.main ).data( 'productId' );\r\n },\r\n states: {\r\n config: 'configuration',\r\n cart: 'cart',\r\n qty: 'qty'\r\n },\r\n constants: {\r\n supportPrice: 'supportPrice',\r\n combinedSupportPrice: 'combinedSupportPrice',\r\n keyboardsInternal: 'keyboardsinternal',\r\n oslanguage: 'oslanguage',\r\n warranty: 'Warranty',\r\n osOtherLang: 'OSLOther',\r\n nothingSelected: 'NOTHINGSELECTED',\r\n autopilotCheckedOrderlineFieldSystemName: 'Autopilot',\r\n autopilotEmailOrderlineFieldSystemName: 'AutopilotEmail'\r\n },\r\n selectors: {\r\n main: '.js-dcc-main-product',\r\n section: '.js-dcc-configurator-section',\r\n trigger: '.js-dcc-configurator-open',\r\n close: '.js-dcc-configurator-close',\r\n loader: '.js-dcc-configurator-loading-overlay',\r\n partInput: '.js-dcc-configurator-part-input',\r\n partInputLanguage: '.js-dcc-configurator-part-input-language',\r\n partOsLanguageInput: '.js-dcc-configurator-input-os-language',\r\n partInputNone: '.js-dcc-configurator-part-input-none',\r\n partSelect: '.js-dcc-configurator-category-item-language-select',\r\n partIdDefault: '.js-dcc-configurator-part-diff-default',\r\n reminder: '.js-dcc-configurator-reminder',\r\n dynamicValueInput: '.js-dcc-configurator-dynamic-value',\r\n diffPrice: '.js-dcc-configurator-part-price-diff',\r\n diffPriceKeyboard: '.js-dcc-configurator-part-keyboard-price-diff',\r\n categoryContainer: '.js-dcc-configurator-category',\r\n categoryItem: '.js-dcc-configurator-category-item',\r\n partsContainer: '.js-dcc-configurator-parts',\r\n overview: '.js-dcc-configurator-overview',\r\n overviewContainer: '.js-dcc-configurator-overview-container',\r\n overviewCalculatedPrice: '.js-dcc-configurator-overview-price-configured',\r\n mobileHandle: '.js-dcc-configurator-overview-mobile-handle',\r\n mobileHandlerPrice: '.js-dcc-configurator-overview-mobile-handle-price',\r\n cartContainer: '.js-dcc-configurator-cart-container',\r\n cartRelatedContainer: '.js-dcc-configurator-cart-related-products-container',\r\n relatedProducts: '.js-dcc-section-related-products',\r\n quantity: '.js-dcc-configurator-quantity',\r\n form: '.js-dcc-configurator-configuration-form',\r\n hasConfiguration: '.js-dcc-configurator-overview-has-configuration',\r\n warranty: {\r\n input: '.js-dcc-configurator-overview-warranty-input',\r\n orderLineField: '.js-dcc-configurator-overview-warranty-orderline-field',\r\n collapse: '.js-dcc-configurator-overview-warranty-collapse'\r\n },\r\n leasing: {\r\n checkbox: '.js-dcc-configurator-overview-leasing-checkbox',\r\n selectRate: '.js-dcc-configurator-overview-leasing-interest-rate',\r\n inputRate: '.js-dcc-configurator-overview-leasing-input-rate',\r\n checked: '.js-dcc-configurator-overview-leasing-checked',\r\n price: '.js-dcc-configurator-overview-leasing-price',\r\n collapse: '.js-dcc-configurator-overview-leasing-collapse'\r\n },\r\n autopilot: {\r\n checkbox: '.js-dcc-configurator-overview-autopilot-checkbox',\r\n collapse: '.js-dcc-configurator-overview-autopilot-collapse',\r\n checked: '.js-dcc-configurator-overview-autopilot-checked',\r\n email: '.js-dcc-configurator-overview-autopilot-email',\r\n emailValue: '.js-dcc-configurator-autopilot-email-value',\r\n },\r\n disableElements: '.js-dcc-configurator-disabled-element',\r\n sectionCollapseContent: '.p-section-collapse-content',\r\n productlistLink: '.js-dcc-itemlist-icon-configurable',\r\n cssUtils: {\r\n isLoading: 'is-loading',\r\n hide: 'd-none',\r\n below: 'below',\r\n above: 'above',\r\n open: 'open',\r\n disabledForm: 'disabled-form',\r\n totalCollapse: 'dcc-configurator-total-collapse'\r\n }\r\n },\r\n templates: [\r\n '#js-e-handlebars-tmpl-configurator-parts',\r\n '#js-e-handlebars-tmpl-configurator-overview',\r\n '#js-e-handlebars-tmpl-configurator-cart'\r\n ],\r\n helpers: [\r\n 'compare',\r\n 'compare_extended',\r\n 'counter',\r\n 'compareLength',\r\n 'isNotDefaultPartInCategory',\r\n 'hasCategories',\r\n 'getCustomOsLanguagePartName',\r\n 'filterKeyboardLanguages',\r\n 'filterConfigurationParts',\r\n 'getKeyboardDiffPrice'\r\n ],\r\n events: [\r\n 'domready',\r\n 'dataready',\r\n 'stateready',\r\n 'configurationchanged',\r\n 'listbuild',\r\n 'overviewbuild',\r\n 'addtocart'\r\n ],\r\n init: function () {\r\n if ( jQuery( dcc.configurator.selectors.section ).length === 1 ) {\r\n e4.util.require.js( e4.settings.require.handlebars, function () {\r\n e4.handlebars.registerTemplates( dcc.configurator.templates.join( ' ' ) );\r\n e4.handlebars.registerHelpers( dcc.configurator.helpers.join( ' ' ) );\r\n dcc.configurator.bindEvents();\r\n dcc.configurator.data.init();\r\n if ( e4.util.hash.get( dcc.configurator.states.qty ) ) {\r\n jQuery( '.js-e-product-form' ).find( 'input[name=\"Quantity\"]' ).val( e4.util.hash.get( dcc.configurator.states.qty ) ).trigger( 'input' );\r\n }\r\n } );\r\n dcc.configurator.event = e4.util.registerEvents( dcc.configurator.events.join( ' ' ), 'configurator' );\r\n }\r\n else {\r\n dcc.configurator.bindExternalEvents();\r\n }\r\n dcc.configurator.utils.loader( false );\r\n },\r\n bindExternalEvents: function () {\r\n jQuery( '.js-e-productlist' ).on( 'click', dcc.configurator.selectors.productlistLink, function () {\r\n location.href = jQuery( this ).data( 'href' );\r\n } );\r\n jQuery( document ).on( 'input', '.js-e-products-item input[name^=\"Quantity\"]', function ( event ) {\r\n var productItem = jQuery( event.target ).closest( '.js-e-products-item' ),\r\n configuratorLink = productItem.find( '.js-dcc-configurator-open' ),\r\n hrefSplit = jQuery( configuratorLink ).attr( 'href' ).split( '#' ),\r\n href = hrefSplit[ 0 ] + '#/qty=' + event.target.value + '&' + hrefSplit[ 1 ].replace( '/', '' );\r\n jQuery( configuratorLink ).attr( 'href', href );\r\n } );\r\n },\r\n bindEvents: function () {\r\n jQuery( dcc.configurator.selectors.trigger ).on( 'click', function () {\r\n dcc.configurator.utils.tabs( 'dcc-productpage-tab-config', true );\r\n } );\r\n jQuery('.js-dcc-configurator-anchor-link').on('click', function(){\r\n dcc.configurator.utils.tabs( 'dcc-productpage-tab-config', true );\r\n });\r\n \r\n jQuery( '.js-e-product-form' ).on( 'input', 'input[name=\"Quantity\"]', function () {\r\n dcc.configurator.overview.build( null, true );\r\n } ).on( 'click', '.js-dcc-add-configuration-to-cart-from-main', function ( event ) {\r\n if ( dcc.configurator.data.configuration.hasConfiguration ) {\r\n event.preventDefault();\r\n jQuery( dcc.configurator.selectors.form ).trigger( 'submit' );\r\n }\r\n } );\r\n jQuery( '.js-dcc-productpage-tab' ).on( 'shown.bs.tab', function ( event ) {\r\n dcc.configurator.utils.tabs( event.target.id, event.target.id === 'dcc-productpage-tab-config' );\r\n } );\r\n /* List events */\r\n jQuery( dcc.configurator.selectors.partsContainer ).on( 'change', dcc.configurator.selectors.partInput, function ( event ) {\r\n if ( jQuery( event.target ).data( 'category' ) === dcc.configurator.constants.keyboardsInternal && jQuery( event.target ).is( dcc.configurator.selectors.partInputLanguage ) === false ) {\r\n jQuery( dcc.configurator.selectors.partSelect ).find( 'option.js-dcc-is-default-keyboard-language' ).prop( 'selected', true );\r\n }\r\n if ( jQuery( event.target ).data( 'category' ) === dcc.configurator.constants.oslanguage && jQuery( event.target ).is( dcc.configurator.selectors.partInputLanguage ) === false ) {\r\n jQuery( dcc.configurator.selectors.partOsLanguageInput ).val( '' );\r\n }\r\n jQuery( dcc.configurator.selectors.section ).trigger( dcc.configurator.event.configurationchanged, [ event.target ] );\r\n } ).on( 'change', dcc.configurator.selectors.partSelect, function ( event ) {\r\n var defaultLang = dcc.configurator.utils.getDefaultLanguagePartObj();\r\n dcc.configurator.overview.price.updateKeyboardPrice( event.target );\r\n if ( defaultLang && event.target.value === defaultLang.id ) {\r\n jQuery( event.target ).closest( dcc.configurator.selectors.categoryContainer ).find( dcc.configurator.selectors.partInput ).first().prop( 'checked', true ).trigger( 'change' );\r\n }\r\n else {\r\n jQuery( event.target ).closest( dcc.configurator.selectors.categoryItem ).find( dcc.configurator.selectors.partInput ).prop( 'checked', true ).trigger( 'change' );\r\n }\r\n if ( event.target.value === 'PROD1' ) {\r\n jQuery( event.target ).closest( dcc.configurator.selectors.categoryContainer ).find( dcc.configurator.selectors.partInput ).first().prop( 'checked', true ).trigger( 'change' );\r\n }\r\n } ).on( 'focus', dcc.configurator.selectors.partOsLanguageInput, function ( event ) {\r\n if ( jQuery( event.target ).closest( dcc.configurator.selectors.categoryItem ).find( dcc.configurator.selectors.partInput ).is( ':checked' ) === false ) {\r\n jQuery( event.target ).closest( dcc.configurator.selectors.categoryItem ).find( dcc.configurator.selectors.partInput ).prop( 'checked', true ).trigger( 'change' );\r\n }\r\n } ).on( 'input', dcc.configurator.selectors.partOsLanguageInput, function ( event ) {\r\n jQuery( '.js-dcc-configurator-overview-custom-os-language-label' ).text( event.target.value );\r\n jQuery( '.js-dcc-configurator-overview-custom-os-language' ).val( event.target.value );\r\n } ).on( 'change', dcc.configurator.selectors.warranty.input, function ( event ) {\r\n dcc.configurator.overview.warranty.update( event.target );\r\n dcc.configurator.overview.update();\r\n } ).on( 'hidden.bs.collapse', dcc.configurator.selectors.warranty.collapse, function () {\r\n dcc.configurator.overview.warranty.isOpen = false;\r\n } ).on( 'shown.bs.collapse', dcc.configurator.selectors.warranty.collapse, function () {\r\n dcc.configurator.overview.warranty.isOpen = true;\r\n } );\r\n /* Overview events */\r\n jQuery( dcc.configurator.selectors.overviewContainer ).on( 'change', dcc.configurator.selectors.leasing.checkbox, function () {\r\n dcc.configurator.overview.leasing.offer();\r\n } ).on( 'change', dcc.configurator.selectors.leasing.selectRate, function () {\r\n dcc.configurator.overview.leasing.price();\r\n } ).on( 'hidden.bs.collapse', dcc.configurator.selectors.leasing.collapse, function () {\r\n dcc.configurator.overview.leasing.model.open = false;\r\n dcc.configurator.overview.leasing.update();\r\n } ).on( 'shown.bs.collapse', dcc.configurator.selectors.leasing.collapse, function () {\r\n dcc.configurator.overview.leasing.model.open = true;\r\n dcc.configurator.overview.leasing.update();\r\n } ).on('change', dcc.configurator.selectors.autopilot.checkbox, function(event){\r\n jQuery('.js-dcc-autopilot-checkbox').prop('checked', event.target.checked).trigger('change');\r\n dcc.configurator.overview.autopilot.update(event.target.checked);\r\n }).on('hidden.bs.collapse', dcc.configurator.selectors.autopilot.collapse, function(event){\r\n dcc.configurator.overview.autopilot.model.open = false;\r\n }).on('shown.bs.collapse', dcc.configurator.selectors.autopilot.collapse, function(event){\r\n dcc.configurator.overview.autopilot.model.open = true;\r\n }).on('input', dcc.configurator.selectors.autopilot.emailValue, function(event){\r\n dcc.configurator.selectors.autopilot.email = event.target.value;\r\n });\r\n /* Mobile events */\r\n jQuery( dcc.configurator.selectors.section ).on( 'click', dcc.configurator.selectors.mobileHandle, function () {\r\n dcc.configurator.overview.mobile.toggle();\r\n } );\r\n /* Cart events */\r\n jQuery( dcc.configurator.selectors.overview ).on( 'submit', dcc.configurator.selectors.form, function ( event ) {\r\n event.preventDefault();\r\n if ( dcc.configurator.data.configuration.isEditing === true ) {\r\n dcc.configurator.overview.cart.update( dcc.configurator.editConfiguration.orderlineId );\r\n }\r\n else {\r\n dcc.configurator.overview.cart.add();\r\n }\r\n } );\r\n /* Window events */\r\n jQuery( window ).on( 'hashchange', function () {\r\n dcc.configurator.observers.statesObserver();\r\n } );\r\n /* Custom events */\r\n jQuery( dcc.configurator.selectors.section ).on( 'dataready.e4.configurator', function () {\r\n dcc.configurator.list.init();\r\n } ).on( 'domready.e4.configurator', function () {\r\n dcc.configurator.observers.statesObserver();\r\n dcc.configurator.utils.loader( false );\r\n } ).on( 'listbuild.e4.configurator', function () {\r\n dcc.configurator.overview.init();\r\n } ).on( 'stateready.e4.configurator', function () {\r\n dcc.configurator.editConfiguration.init();\r\n } ).on( 'configurationchanged.e4.configurator', function ( event, domElm ) {\r\n dcc.configurator.data.configuration.hasChanged = true;\r\n dcc.configurator.observers.configurationObserver( domElm );\r\n dcc.configurator.overview.update();\r\n dcc.configurator.list.priceDiff.update( domElm );\r\n } );\r\n /*\r\n var observerElements = jQuery( dcc.configurator.selectors.section ).toArray();\r\n e4.util.observer.bind( observerElements, dcc.configurator.utils.reminder );\r\n */\r\n },\r\n utils: {\r\n loader: function ( boolShow ) {\r\n if ( boolShow === true ) {\r\n jQuery( dcc.configurator.selectors.loader ).addClass( dcc.configurator.selectors.cssUtils.isLoading );\r\n }\r\n else {\r\n jQuery( dcc.configurator.selectors.loader ).removeClass( dcc.configurator.selectors.cssUtils.isLoading );\r\n }\r\n },\r\n reminder: function ( domElm ) {\r\n if ( e4.util.hash.get( 'state' ) === dcc.configurator.states.config ) {\r\n if ( domElm.isIntersecting === false ) {\r\n jQuery( dcc.configurator.selectors.reminder ).removeClass( dcc.configurator.selectors.cssUtils.hide );\r\n if ( domElm.boundingClientRect.top > 0 ) {\r\n jQuery( dcc.configurator.selectors.reminder ).addClass( dcc.configurator.selectors.cssUtils.below );\r\n }\r\n else {\r\n jQuery( dcc.configurator.selectors.reminder ).addClass( dcc.configurator.selectors.cssUtils.above );\r\n }\r\n }\r\n else {\r\n jQuery( dcc.configurator.selectors.reminder ).removeClass( dcc.configurator.selectors.cssUtils.below + ' ' + dcc.configurator.selectors.cssUtils.above );\r\n jQuery( dcc.configurator.selectors.reminder ).addClass( dcc.configurator.selectors.cssUtils.hide );\r\n }\r\n }\r\n },\r\n tabs: function ( id, isConfig ) {\r\n var intScrollTarget = e4.scrollToAnchor.getTarget( '#' + id );\r\n if ( isConfig === true ) {\r\n jQuery( '#' + id ).tab( 'show' );\r\n e4.util.hash.set( 'state', dcc.configurator.states.config );\r\n /*\r\n jQuery( 'html,body' ).animate( {\r\n scrollTop: intScrollTarget\r\n }, Math.floor( Math.abs( jQuery( window ).scrollTop() - intScrollTarget ) * e4.settings.scrollToAnchor.speed ), e4.settings.scrollToAnchor.easing, function () {\r\n e4.header.hide();\r\n jQuery( '#' + id ).tab( 'show' );\r\n jQuery( dcc.configurator.selectors.disableElements ).addClass( dcc.configurator.selectors.cssUtils.disabledForm );\r\n e4.util.hash.set( 'state', dcc.configurator.states.config );\r\n } );\r\n */\r\n }\r\n else {\r\n if ( e4.util.hash.get( 'state' ) === dcc.configurator.states.cart ) {\r\n jQuery( 'html,body' ).animate( {\r\n scrollTop: intScrollTarget\r\n }, Math.floor( Math.abs( jQuery( window ).scrollTop() - intScrollTarget ) * e4.settings.scrollToAnchor.speed ), e4.settings.scrollToAnchor.easing, function () {\r\n e4.header.hide();\r\n jQuery( '#' + id ).tab( 'show' );\r\n } );\r\n }\r\n jQuery( dcc.configurator.selectors.disableElements ).removeClass( dcc.configurator.selectors.cssUtils.disabledForm );\r\n history.pushState( '', document.title, window.location.pathname + window.location.search );\r\n e4.util.hash.remove( 'state' );\r\n }\r\n },\r\n getUrlParams: function () {\r\n var params = {};\r\n if ( location.search.substring( 1 ).length > 0 ) {\r\n var paramGroups = location.search.substring( 1 ).split( '&' );\r\n for ( var i = 0; i < paramGroups.length; i++ ) {\r\n var urlParamPair = paramGroups[ i ].split( '=' );\r\n params[ urlParamPair[ 0 ] ] = urlParamPair[ 1 ];\r\n }\r\n }\r\n return params;\r\n },\r\n removeUrlParam: function ( parameter ) {\r\n var url = location.href;\r\n var urlparts = url.split( '?' );\r\n if ( urlparts.length >= 2 ) {\r\n var prefix = encodeURIComponent( parameter ) + '=';\r\n var pars = urlparts[ 1 ].split( /[&;]/g );\r\n //reverse iteration as may be destructive\r\n for ( var i = pars.length; i-- > 0; ) {\r\n //idiom for string.startsWith\r\n if ( pars[ i ].lastIndexOf( prefix, 0 ) !== -1 ) {\r\n pars.splice( i, 1 );\r\n }\r\n }\r\n url = urlparts[ 0 ] + '?' + pars.join( '&' );\r\n return url;\r\n }\r\n else {\r\n return url;\r\n }\r\n },\r\n getPartDefaultConfiguration: function ( domCategory ) {\r\n var returnValue = '',\r\n jInputDefaultValue = jQuery( domCategory ).find( dcc.configurator.selectors.partInput ).filter( '[data-default-configuration]' ).data( 'defaultConfiguration' );\r\n if ( jInputDefaultValue === undefined ) {\r\n returnValue = jQuery( domCategory ).find( dcc.configurator.selectors.partSelect + ' option' ).filter( '[class=\"js-dcc-is-default-keyboard-language\"]' ).val();\r\n }\r\n else {\r\n returnValue = jInputDefaultValue;\r\n }\r\n return returnValue;\r\n },\r\n getPartRAM: function ( domCategory ) {\r\n var intPartRam = jQuery( domCategory ).find( dcc.configurator.selectors.partInput ).filter( '[data-ram]' ).filter( ':checked' ).data( 'ram' );\r\n if ( intPartRam === undefined ) {\r\n return;\r\n }\r\n return {\r\n partRam: intPartRam,\r\n maxRam: jQuery( domCategory ).find( dcc.configurator.selectors.partInput ).filter( '[data-max-ram-supported]' ).data( 'maxRamSupported' )\r\n };\r\n },\r\n getPartConfiguration: function ( domCategory ) {\r\n var returnValue = '',\r\n jInput = jQuery( domCategory ).find( dcc.configurator.selectors.partInput ),\r\n jSelect = jQuery( domCategory ).find( dcc.configurator.selectors.partSelect );\r\n if ( jSelect.val() !== undefined ) {\r\n returnValue = jSelect.val();\r\n }\r\n else {\r\n returnValue = jInput.filter( ':checked' ).val();\r\n }\r\n return returnValue;\r\n },\r\n getSelectedParts: function () {\r\n return jQuery( dcc.configurator.selectors.partInput ).filter( ':checked' );\r\n },\r\n getCategoryObj: function ( strCategoryKey ) {\r\n return dcc.configurator.data.json.configurables[ strCategoryKey ];\r\n },\r\n getPartObj: function ( partCategory, partId ) {\r\n var returnObj = dcc.configurator.data.json.configurables[ partCategory ].parts.filter( function ( obj ) {\r\n return obj.id === partId;\r\n } );\r\n return returnObj[ 0 ];\r\n },\r\n getLanguagePartObj: function ( partCategory, selectedLanguageProductId ) {\r\n var returnObj = dcc.configurator.data.json.configurables[ partCategory ].languageParts.filter( function ( obj ) {\r\n return obj.id === selectedLanguageProductId;\r\n } );\r\n return returnObj[ 0 ];\r\n },\r\n getDefaultLanguagePartObj: function () {\r\n var returnObj = dcc.configurator.data.json.configurables.keyboardsinternal.parts[ 0 ].languages.filter( function ( langObj ) {\r\n return langObj.isDefault === true;\r\n } );\r\n if ( returnObj.length === 0 ) {\r\n returnObj = dcc.configurator.data.json.configurables.keyboardsinternal.parts[ 0 ].languages.filter( function ( langObj ) {\r\n return langObj.id === 'PROD1';\r\n } );\r\n }\r\n //console.log(returnObj);\r\n return returnObj[ 0 ];\r\n },\r\n getSelectedWarranty: function () {\r\n var jSelectedWarranty = jQuery( dcc.configurator.selectors.warranty.input ).filter( ':checked' ),\r\n strSelectedProductId = jSelectedWarranty.val(),\r\n returnObj = dcc.configurator.data.json.warrantyRelatedProducts.filter( function ( obj ) {\r\n return obj.id === strSelectedProductId;\r\n } );\r\n return returnObj[ 0 ];\r\n },\r\n getSelectedRAMSlots: function () {\r\n var selectedRamArr = [];\r\n jQuery( dcc.configurator.selectors.categoryContainer ).filter( '[data-slot=\"MEMORY\"]' ).each( function ( categoryIndex, category ) {\r\n jQuery( category ).find( dcc.configurator.selectors.partInput ).filter( ':checked' ).each( function ( partIndex, domInput ) {\r\n if ( jQuery( domInput ).data( 'ram' ) ) {\r\n selectedRamArr.push( jQuery( domInput ).data( 'ram' ) );\r\n }\r\n } );\r\n } );\r\n return selectedRamArr;\r\n },\r\n sortByDefault: function ( arrToSort ) {\r\n var returnArrToSort = arrToSort.sort( function ( a, b ) {\r\n return ( a.isDefault === b.isDefault ) ? 0 : a.isDefault ? -1 : 1;\r\n } );\r\n var otherLanguagePlaceholder = {};\r\n for ( var i = 0; i < returnArrToSort.length; i++ ) {\r\n if ( returnArrToSort[ i ].number === dcc.configurator.constants.osOtherLang ) {\r\n otherLanguagePlaceholder = returnArrToSort[ i ];\r\n returnArrToSort.splice( i, 1 );\r\n }\r\n }\r\n if ( Object.keys( otherLanguagePlaceholder ).length > 0 ) {\r\n returnArrToSort.push( otherLanguagePlaceholder );\r\n }\r\n return returnArrToSort;\r\n },\r\n sortByStock: function ( arrToSort ) {\r\n return arrToSort.sort( function ( a, b ) {\r\n return parseInt( b.stock ) - parseInt( a.stock );\r\n } );\r\n },\r\n sortPartsByPrice: function ( arrParts ) {\r\n var returnParts = arrParts;\r\n if ( arrParts.length > 1 ) {\r\n returnParts = arrParts.sort( function ( a, b ) {\r\n return b.price - a.price;\r\n } );\r\n }\r\n return returnParts;\r\n },\r\n cleanupConfigurationGroups: function () {\r\n jQuery.each( dcc.configurator.data.json.configurables, function ( strKey, arrGroup ) {\r\n var objGroup = arrGroup[ 0 ];\r\n dcc.configurator.data.json.configurables[ strKey ] = objGroup;\r\n } );\r\n var keys = Object.keys( dcc.configurator.data.json.configurables ).sort(),\r\n returnObj = {};\r\n keys.forEach( function ( key ) {\r\n returnObj[ key.replace( key.substring( 0, 2 ), '' ) ] = dcc.configurator.data.json.configurables[ key ];\r\n } );\r\n return returnObj;\r\n }\r\n },\r\n data: {\r\n defaults: {},\r\n json: {},\r\n configuration: {\r\n isEditing: false,\r\n isLeasingAllowed: false,\r\n leasing: {},\r\n autopilot: {},\r\n warranty: {},\r\n warrantyRelatedProducts: [],\r\n basePrice: '',\r\n baseBeforePrice: '',\r\n hasBeforePrice: false,\r\n price: 0,\r\n fee: 0,\r\n categories: {},\r\n orderlineFields: {}\r\n },\r\n init: function () {\r\n dcc.configurator.data.json = e4.data.get( 'dcc.configurator.data.json' );\r\n dcc.configurator.data.defaults.configuration = dcc.configurator.data.configuration;\r\n dcc.configurator.data.handleData();\r\n },\r\n handleData: function () {\r\n dcc.configurator.data.json.configurables = dcc.configurator.utils.cleanupConfigurationGroups();\r\n jQuery.each( dcc.configurator.data.json.configurables, function ( strKey, objGroup ) {\r\n dcc.configurator.utils.sortPartsByPrice( objGroup.parts );\r\n if ( strKey === dcc.configurator.constants.keyboardsInternal ) {\r\n if ( objGroup.parts.length > 0 ) {\r\n if ( objGroup.parts[ 0 ].languageParts !== undefined && objGroup.parts[ 0 ].languageParts.length > 0 ) {\r\n objGroup.hasGroupedParts = true;\r\n objGroup.groupedParts = objGroup.parts[ 0 ].languageParts;\r\n }\r\n var temKeyBoardObj = Object.assign( {}, objGroup.parts[ 0 ] );\r\n objGroup.parts[ 0 ].isDefault = true;\r\n objGroup.parts[ 0 ].basicKeyboard = true;\r\n temKeyBoardObj.isDefault = false;\r\n temKeyBoardObj.id = temKeyBoardObj.id + 'temp';\r\n temKeyBoardObj.basicKeyboard = false;\r\n objGroup.parts.push( temKeyBoardObj );\r\n var hasDefaultLanguagePart = objGroup.parts[ 0 ].languages.filter( function ( objPart ) {\r\n return objPart.isDefault === true;\r\n } );\r\n if ( hasDefaultLanguagePart.length === 0 ) {\r\n var objClone = Object.assign( {}, objGroup.parts[ 0 ].languages[ 0 ] );\r\n objClone.id = objClone.id + 'temp';\r\n objClone.isDefault = true;\r\n objClone.price = 0;\r\n objClone.priceDiff = 0;\r\n objClone.keyboardLang = objClone.defaultLanguage;\r\n objGroup.parts[ 0 ].languages.unshift( objClone );\r\n objGroup.languageParts.unshift( objClone );\r\n }\r\n }\r\n }\r\n var hasDefault = objGroup.parts.filter( function ( objPart ) {\r\n return objPart.isDefault === true;\r\n } );\r\n objGroup.hasDefault = hasDefault.length > 0;\r\n if ( objGroup.hasDefault === true && objGroup.isLocked === false ) {\r\n objGroup.parts.forEach( function ( part, index ) {\r\n if ( part.number === dcc.configurator.constants.nothingSelected ) {\r\n objGroup.parts.splice( index, 1 );\r\n if ( strKey === dcc.configurator.constants.keyboardsInternal ) {\r\n objGroup.parts.push( hasDefault[ 0 ] );\r\n }\r\n }\r\n } );\r\n }\r\n else {\r\n objGroup.parts.forEach( function ( part ) {\r\n if ( part.number === dcc.configurator.constants.nothingSelected ) {\r\n part.isDefault = true;\r\n }\r\n part.price = part.originalPriceObj.price;\r\n part.priceFormatted = part.originalPriceObj.priceFormatted;\r\n part.priceDiff = part.originalPriceObj.price;\r\n part.priceDiffFormatted = part.originalPriceObj.priceFormatted;\r\n } );\r\n }\r\n } );\r\n var defaultWarranty = dcc.configurator.data.json.ItemDescriptionByItemRelations.filter( function ( objRelationItem ) {\r\n return objRelationItem.header === dcc.configurator.constants.warranty;\r\n } );\r\n if ( dcc.configurator.data.json.warrantyRelatedProducts.length > 0 ) {\r\n if ( defaultWarranty.length > 0 ) {\r\n dcc.configurator.data.json.warrantyRelatedProducts.unshift( {\r\n id: 'x',\r\n name: defaultWarranty[ 0 ].value,\r\n number: 'x',\r\n intPrice: dcc.configurator.overview.price.formatPrice( 0, 0 ).intPrice,\r\n strPrice: dcc.configurator.overview.price.formatPrice( 0, 0 ).strPrice,\r\n shortDescription: defaultWarranty[ 0 ].value\r\n } );\r\n }\r\n else {\r\n dcc.configurator.data.json.warrantyRelatedProducts.unshift( {\r\n id: 'x',\r\n name: 'Intet valgt',\r\n number: 'x',\r\n intPrice: dcc.configurator.overview.price.formatPrice( 0, 0 ).intPrice,\r\n strPrice: dcc.configurator.overview.price.formatPrice( 0, 0 ).strPrice,\r\n shortDescription: ''\r\n } );\r\n }\r\n }\r\n jQuery( dcc.configurator.selectors.section ).trigger( dcc.configurator.event.dataready );\r\n }\r\n },\r\n observers: {\r\n useFee: '',\r\n domReady: function () {\r\n jQuery( dcc.configurator.selectors.section ).trigger( dcc.configurator.event.domready );\r\n },\r\n configurationObserver: function () {\r\n dcc.configurator.observers.changedInstances = [];\r\n dcc.configurator.observers.RAMInstances = {\r\n category: null,\r\n max: 0,\r\n combined: 0,\r\n partRAM: []\r\n };\r\n jQuery( dcc.configurator.selectors.categoryContainer ).each( function ( index, category ) {\r\n var containerDefaultConfiguration = dcc.configurator.utils.getPartDefaultConfiguration( category ),\r\n containerSelectedConfiguration = dcc.configurator.utils.getPartConfiguration( category ),\r\n containerRAM = dcc.configurator.utils.getPartRAM( category );\r\n if ( containerRAM !== undefined ) {\r\n dcc.configurator.observers.RAMInstances.category = category;\r\n dcc.configurator.observers.RAMInstances.max = containerRAM.maxRam;\r\n dcc.configurator.observers.RAMInstances.combined += containerRAM.partRam;\r\n dcc.configurator.observers.RAMInstances.partRAM.push( containerRAM.partRam );\r\n }\r\n //console.log( 'containerDefaultConfiguration - debug', containerDefaultConfiguration );\r\n //console.log( 'containerSelectedConfiguration', containerSelectedConfiguration );\r\n if ( containerDefaultConfiguration !== undefined && containerSelectedConfiguration !== 'none' ) {\r\n if ( containerDefaultConfiguration !== containerSelectedConfiguration ) {\r\n dcc.configurator.observers.changedInstances.push( category );\r\n }\r\n }\r\n } );\r\n dcc.configurator.observers.defaultsObserver();\r\n dcc.configurator.observers.RAMObserver();\r\n },\r\n defaultsObserver: function () {\r\n if ( dcc.configurator.observers.changedInstances.length < 2 ) {\r\n dcc.configurator.observers.useFee = dcc.configurator.constants.supportPrice;\r\n }\r\n else if ( dcc.configurator.observers.changedInstances.length > 1 ) {\r\n dcc.configurator.observers.useFee = dcc.configurator.constants.combinedSupportPrice;\r\n }\r\n else {\r\n dcc.configurator.observers.useFee = '';\r\n }\r\n },\r\n RAMObserver: function () {\r\n var freeRAMLeft = dcc.configurator.observers.RAMInstances.max - dcc.configurator.observers.RAMInstances.combined,\r\n categorySlots = jQuery( dcc.configurator.observers.RAMInstances.category ).data(),\r\n ramCategories = jQuery( dcc.configurator.selectors.categoryContainer ).filter( '[data-slot=\"MEMORY\"]' ),\r\n selectedRamArr = dcc.configurator.utils.getSelectedRAMSlots();\r\n if ( categorySlots !== undefined && ramCategories.length > 1 ) {\r\n ramCategories.each( function ( categoryIndex, category ) {\r\n jQuery( category ).find( dcc.configurator.selectors.partInput ).each( function ( partIndex, domInput ) {\r\n if ( jQuery( domInput ).is( dcc.configurator.selectors.partInputNone ) === true ) {\r\n return;\r\n }\r\n var dataRAM = jQuery( domInput ).data( 'ram' );\r\n if ( selectedRamArr[ categoryIndex ] !== dataRAM && parseInt( dataRAM ) > freeRAMLeft ) {\r\n jQuery( domInput ).prop( 'disabled', true );\r\n }\r\n else {\r\n jQuery( domInput ).prop( 'disabled', false );\r\n }\r\n } );\r\n } );\r\n }\r\n },\r\n statesObserver: function () {\r\n if ( e4.util.hash.get( 'state' ) === dcc.configurator.states.config ) {\r\n dcc.configurator.utils.tabs( 'dcc-productpage-tab-config', true );\r\n }\r\n if ( e4.util.hash.get( 'state' ) === dcc.configurator.states.cart ) {\r\n //dcc.configurator.overview.cart.load( dcc.configurator.overview.cart.build );\r\n //dcc.configurator.overview.cart.relatedProducts.load();\r\n jQuery( '.js-dcc-configurator-cart' ).removeClass( dcc.configurator.selectors.cssUtils.hide );\r\n }\r\n else {\r\n jQuery( '.js-dcc-configurator-cart' ).addClass( dcc.configurator.selectors.cssUtils.hide );\r\n }\r\n if ( location.search.substring( 1 ).length > 0 ) {\r\n var paramGroups = location.search.substring( 1 ).split( '&' );\r\n for ( var i = 0; i < paramGroups.length; i++ ) {\r\n var urlParamPair = paramGroups[ i ].split( '=' );\r\n if ( urlParamPair[ 0 ] === 'edit' && urlParamPair[ 1 ] === 'true' ) {\r\n dcc.configurator.data.configuration.isEditing = true;\r\n }\r\n else if ( urlParamPair[ 0 ] === 'ol' ) {\r\n dcc.configurator.editConfiguration.orderlineId = urlParamPair[ 1 ];\r\n }\r\n }\r\n }\r\n jQuery( dcc.configurator.selectors.section ).trigger( dcc.configurator.event.stateready );\r\n }\r\n },\r\n editConfiguration: {\r\n orderlineId: '',\r\n warrantyOrderlineId: '',\r\n latestOrerlinerData: {},\r\n init: function () {\r\n if ( dcc.configurator.data.configuration.isEditing === true && dcc.configurator.editConfiguration.orderlineId !== '' ) {\r\n dcc.configurator.overview.cart.load( dcc.configurator.editConfiguration.getEditableOrderline );\r\n }\r\n },\r\n getEditableOrderline: function ( data ) {\r\n var editableOrderline = data.cart.orderlines.filter( function ( objOrderline ) {\r\n return objOrderline.id === dcc.configurator.editConfiguration.orderlineId;\r\n } );\r\n if ( editableOrderline.length > 0 ) {\r\n var warrantyOrderline = data.cart.orderlines.filter( function ( objOrderline ) {\r\n return objOrderline.product.orderlineFields.Warranty_Parent_Product === editableOrderline[ 0 ].product.id;\r\n } );\r\n dcc.configurator.editConfiguration.update( editableOrderline[ 0 ], warrantyOrderline[ 0 ] );\r\n }\r\n },\r\n update: function ( objOrderline, objWarrantyOrderline ) {\r\n dcc.configurator.editConfiguration.setMainValues( objOrderline );\r\n dcc.configurator.editConfiguration.setWarranty( objWarrantyOrderline );\r\n objOrderline.product.orderlineBOMItems.forEach( function ( objBomItem ) {\r\n dcc.configurator.editConfiguration.setBomItem( objBomItem );\r\n } );\r\n dcc.configurator.editConfiguration.setLeasing( objOrderline.product.orderlineFields );\r\n dcc.configurator.editConfiguration.setAutopilot( objOrderline.product.orderlineFields );\r\n dcc.configurator.utils.tabs( 'dcc-productpage-tab-config', true );\r\n var intScrollTarget = e4.scrollToAnchor.getTarget( '#dcc-productpage-tab-config' );\r\n jQuery( 'html,body' ).animate( {\r\n scrollTop: intScrollTarget\r\n }, Math.floor( Math.abs( jQuery( window ).scrollTop() - intScrollTarget ) * e4.settings.scrollToAnchor.speed ), e4.settings.scrollToAnchor.easing );\r\n },\r\n setMainValues: function ( objOrderline ) {\r\n setTimeout( function () {\r\n jQuery( dcc.configurator.selectors.quantity ).val( objOrderline.quantity );\r\n }, 10 );\r\n },\r\n setBomItem: function ( bomItem ) {\r\n var slotName = bomItem.bomOrderlineFields.SlotName;\r\n if ( slotName !== undefined ) {\r\n var categoryContainer = jQuery( dcc.configurator.selectors.categoryContainer + '[data-edit-slot=\"' + slotName.toLowerCase() + '\"]' );\r\n if ( categoryContainer.length > 0 ) {\r\n var bomItemInput = categoryContainer.find( dcc.configurator.selectors.partInput + '[value=\"' + bomItem.id + '\"]' );\r\n if ( bomItemInput.length > 0 ) {\r\n bomItemInput.prop( 'checked', true ).trigger( 'change' );\r\n }\r\n else {\r\n var bomItemSelect = categoryContainer.find( dcc.configurator.selectors.partSelect ).filter( function ( domElm ) {\r\n return jQuery( domElm ).find( 'option[value=\"' + bomItem.id + '\"]' );\r\n } );\r\n bomItemSelect.val( bomItem.id ).trigger( 'change' );\r\n }\r\n if ( bomItem.number === dcc.configurator.constants.osOtherLang ) {\r\n var customInput = bomItemInput.closest( dcc.configurator.selectors.categoryItem ).find( dcc.configurator.selectors.partOsLanguageInput );\r\n if ( customInput.length > 0 ) {\r\n var customLang = bomItem.bomOrderlineFields.OSLanguageCustom;\r\n customInput.val( customLang ).trigger( 'input' );\r\n }\r\n }\r\n }\r\n }\r\n },\r\n setWarranty: function ( objWarrantyOrderline ) {\r\n if ( objWarrantyOrderline ) {\r\n dcc.configurator.overview.warranty.isOpen = true;\r\n dcc.configurator.editConfiguration.warrantyOrderlineId = objWarrantyOrderline.id;\r\n jQuery( dcc.configurator.selectors.warranty.input ).filter( '[value=\"' + objWarrantyOrderline.product.id + '\"]' ).prop( 'checked', true ).trigger( 'change' );\r\n }\r\n },\r\n setLeasing: function ( objLeasingDetails ) {\r\n if ( objLeasingDetails.Leasing_checked === 'true' ) {\r\n dcc.configurator.overview.leasing.model.open = true;\r\n jQuery( dcc.configurator.selectors.leasing.checkbox ).prop( 'checked', true );\r\n jQuery( dcc.configurator.selectors.leasing.selectRate ).val( objLeasingDetails.Leasing_price ).trigger( 'change' );\r\n }\r\n },\r\n setAutopilot: function ( objLeasingDetails ) {\r\n if ( objLeasingDetails.Autopilot_checked === 'true' ) {\r\n dcc.configurator.overview.autopilot.model.open = true;\r\n dcc.configurator.overview.autopilot.model.checked = true;\r\n jQuery( dcc.configurator.selectors.autopilot.checkbox ).prop( 'checked', true );\r\n jQuery( dcc.configurator.selectors.autopilot.email ).val( objLeasingDetails[dcc.configurator.constants.autopilotEmailOrderlineFieldSystemName] ).trigger( 'change' );\r\n }\r\n },\r\n setOsLang: function () {\r\n },\r\n reset: function () {\r\n dcc.configurator.data.configuration.isEditing = false;\r\n dcc.configurator.editConfiguration.orderlineId = '';\r\n dcc.configurator.editConfiguration.warrantyOrderlineId = '';\r\n history.pushState( null, null, location.href.replace( location.search, '' ) );\r\n }\r\n },\r\n list: {\r\n init: function () {\r\n dcc.configurator.list.build();\r\n dcc.configurator.list.priceDiff.init();\r\n },\r\n build: function () {\r\n jQuery.each( dcc.configurator.data.json.configurables, function ( key ) {\r\n dcc.configurator.data.json.configurables[ key ].parts = dcc.configurator.utils.sortByDefault( dcc.configurator.data.json.configurables[ key ].parts );\r\n } );\r\n jQuery( dcc.configurator.selectors.partsContainer ).html( e4.handlebars.tmpl.configuratorParts( dcc.configurator.data.json ) );\r\n jQuery( dcc.configurator.selectors.section ).trigger( dcc.configurator.event.listbuild );\r\n },\r\n reset: function () {\r\n dcc.configurator.list.build();\r\n dcc.configurator.list.priceDiff.init();\r\n },\r\n priceDiff: {\r\n init: function () {\r\n jQuery( dcc.configurator.selectors.categoryContainer ).each( function ( index, container ) {\r\n dcc.configurator.list.priceDiff.update( container );\r\n } );\r\n },\r\n update: function ( domElm ) {\r\n /*var priceFormat = '' + dcc.configurator.data.json.prices.currencyCode + '';*/\r\n jQuery( domElm ).find( dcc.configurator.selectors.partInput ).each( function ( index, input ) {\r\n if ( jQuery( input ).is( dcc.configurator.selectors.partInputNone ) === true ) {\r\n return;\r\n }\r\n var partCategory = jQuery( input ).data( 'category' ),\r\n partId = jQuery( input ).data( 'id' ),\r\n partObj = dcc.configurator.utils.getPartObj( partCategory, partId ),\r\n jDiffPriceElm = jQuery( input ).parent().find( dcc.configurator.selectors.diffPrice ),\r\n pricePrefix = dcc.configurator.overview.price.getPricePrefix( partObj.priceDiff );\r\n if ( jDiffPriceElm.is( dcc.configurator.selectors.partIdDefault ) === false ) {\r\n jDiffPriceElm.html( '' + pricePrefix + e4.util.formatJavascriptNumberToLocaleString( partObj.priceDiff ) + '' );\r\n }\r\n } );\r\n }\r\n }\r\n },\r\n main: {\r\n update: function ( strPrice ) {\r\n var jMainPrice = jQuery( '.js-dcc-configuration-main-price' );\r\n if ( strPrice === undefined ) {\r\n strPrice = jMainPrice.data( 'basePrice' );\r\n jMainPrice.html( strPrice );\r\n } else{\r\n jMainPrice.find( '.e-price-price' ).text( strPrice );\r\n }\r\n \r\n }\r\n },\r\n overview: {\r\n init: function () {\r\n dcc.configurator.data.configuration.basePrice = e4.util.formatJavascriptNumberToLocaleString( dcc.configurator.data.json.prices.basePrice );\r\n dcc.configurator.data.configuration.hasBeforePrice = dcc.configurator.data.json.prices.beforePrice > 0;\r\n dcc.configurator.data.configuration.baseBeforePrice = dcc.configurator.data.json.prices.beforePriceFormatted;\r\n dcc.configurator.data.configuration.warrantyRelatedProducts = dcc.configurator.data.json.warrantyRelatedProducts;\r\n dcc.configurator.overview.build( dcc.configurator.observers.domReady );\r\n dcc.configurator.overview.update();\r\n },\r\n update: function () {\r\n dcc.configurator.data.configuration.price = dcc.configurator.overview.price.calculatePrice();\r\n dcc.configurator.data.configuration.hasConfiguration = dcc.configurator.overview.hasConfiguration();\r\n dcc.configurator.data.configuration.isLeasingAllowed = dcc.configurator.data.json.isLeasingAllowed;\r\n dcc.configurator.data.configuration.categories = dcc.configurator.overview.categories.update();\r\n //console.log(dcc.configurator.data.configuration.hasConfiguration);\r\n if ( dcc.configurator.data.configuration.hasConfiguration === true || dcc.configurator.data.configuration.hasChanged === true) {\r\n dcc.configurator.main.update( dcc.configurator.data.configuration.price.strPrice );\r\n } else{\r\n dcc.configurator.main.update();\r\n }\r\n \r\n dcc.configurator.overview.build();\r\n },\r\n reset: function () {\r\n dcc.configurator.data.configuration = dcc.configurator.data.defaults.configuration;\r\n dcc.configurator.list.reset();\r\n dcc.configurator.data.configuration.basePrice = e4.util.formatJavascriptNumberToLocaleString( dcc.configurator.data.json.prices.basePrice );\r\n dcc.configurator.data.configuration.hasBeforePrice = dcc.configurator.data.json.prices.beforePrice > 0;\r\n dcc.configurator.data.configuration.baseBeforePrice = dcc.configurator.data.json.prices.beforePriceFormatted;\r\n dcc.configurator.data.configuration.warrantyRelatedProducts = dcc.configurator.data.json.warrantyRelatedProducts;\r\n dcc.configurator.overview.update();\r\n },\r\n build: function ( fnCallback, forceQuantity ) {\r\n dcc.configurator.overview.setQuantity( forceQuantity );\r\n jQuery( dcc.configurator.selectors.overviewContainer ).html( e4.handlebars.tmpl.configuratorOverview( dcc.configurator.data.configuration ) );\r\n jQuery( dcc.configurator.selectors.mobileHandlerPrice ).html( dcc.configurator.data.configuration.price.strPrice );\r\n jQuery( dcc.configurator.selectors.section ).trigger( dcc.configurator.event.overviewbuild );\r\n jQuery( '[data-toggle=\"tooltip\"]' ).tooltip();\r\n dcc.configurator.overview.leasing.price();\r\n if ( typeof fnCallback === 'function' ) {\r\n fnCallback();\r\n }\r\n },\r\n setQuantity: function ( forceQuantity ) {\r\n var productQuantity = jQuery( '.js-e-product-form' ).find( 'input[name=\"Quantity\"]' ).val(),\r\n configuratorQuantity = jQuery( dcc.configurator.selectors.quantity ).val();\r\n if ( forceQuantity !== true ) {\r\n dcc.configurator.data.configuration.quantity = configuratorQuantity !== '' ? configuratorQuantity : 1;\r\n }\r\n else {\r\n dcc.configurator.data.configuration.quantity = productQuantity;\r\n }\r\n },\r\n hasConfiguration: function () {\r\n var returnValue = false;\r\n if ( typeof dcc.configurator.observers.changedInstances !== 'undefined' ) {\r\n returnValue = dcc.configurator.observers.changedInstances.length > 0;\r\n }\r\n if ( Object.keys( dcc.configurator.data.configuration.warranty ).length > 0 ) {\r\n returnValue = dcc.configurator.data.configuration.warranty.selectedValue.length > 0;\r\n }\r\n return returnValue;\r\n },\r\n categories: {\r\n update: function () {\r\n //console.log( '-- Update --' );\r\n var jSelectedParts = dcc.configurator.utils.getSelectedParts(),\r\n objItems = {};\r\n jSelectedParts.each( function ( index, domElm ) {\r\n var boolIsNoneInput = jQuery( domElm ).is( dcc.configurator.selectors.partInputNone ),\r\n strPartCategory = jQuery( domElm ).data( 'category' ),\r\n strPartId = jQuery( domElm ).data( 'id' ),\r\n objItem = {},\r\n objCategory = dcc.configurator.utils.getCategoryObj( strPartCategory );\r\n if ( boolIsNoneInput === false ) {\r\n if ( strPartCategory === dcc.configurator.constants.keyboardsInternal ) {\r\n var strSelectedLanguageProductId = jQuery( domElm ).closest( dcc.configurator.selectors.categoryContainer ).find( dcc.configurator.selectors.partSelect ).val();\r\n objItem = dcc.configurator.utils.getLanguagePartObj( strPartCategory, strSelectedLanguageProductId );\r\n }\r\n else {\r\n objItem = dcc.configurator.utils.getPartObj( strPartCategory, strPartId );\r\n }\r\n objItems[ strPartCategory ] = objItems[ strPartCategory ] || {};\r\n objItems[ strPartCategory ].id = objCategory.bomId;\r\n objItems[ strPartCategory ].key = objCategory.id;\r\n objItems[ strPartCategory ].label = objCategory.label;\r\n if ( strPartCategory === dcc.configurator.constants.keyboardsInternal ) {\r\n objItems[ strPartCategory ].parts = objItems[ strPartCategory ].groupedParts || [];\r\n }\r\n else {\r\n objItems[ strPartCategory ].parts = objItems[ strPartCategory ].parts || [];\r\n }\r\n if ( strPartCategory === dcc.configurator.constants.oslanguage ) {\r\n objItems[ strPartCategory ].partOsLanguage = jQuery( dcc.configurator.selectors.partOsLanguageInput ).val();\r\n }\r\n objItems[ strPartCategory ].parts.push( objItem );\r\n }\r\n } );\r\n return objItems;\r\n }\r\n },\r\n price: {\r\n formatPrice: function ( intPrice, intSupportPrice ) {\r\n var strServiceFeePrefix = dcc.configurator.overview.price.getPricePrefix( intSupportPrice );\r\n return {\r\n strPrice: e4.util.formatJavascriptNumberToLocaleString( intPrice ),\r\n intPrice: intPrice,\r\n strSupportPrice: strServiceFeePrefix + e4.util.formatJavascriptNumberToLocaleString( intSupportPrice ),\r\n intSupportPrice: intSupportPrice\r\n };\r\n },\r\n calculatePrice: function () {\r\n var intTotalPrice = e4.util.formatStringToJavascriptNumber( dcc.configurator.data.json.prices.basePrice ),\r\n intWarrantyPrice = dcc.configurator.overview.warranty.getPrice(),\r\n jSelectedParts = dcc.configurator.utils.getSelectedParts(),\r\n intSupportPrice = 0,\r\n intArrCombinedPrices = [];\r\n jSelectedParts.each( function ( index, domElm ) {\r\n var boolIsNoneInput = jQuery( domElm ).is( dcc.configurator.selectors.partInputNone ),\r\n strPartCategory = jQuery( domElm ).data( 'category' ),\r\n strPartId = jQuery( domElm ).data( 'id' ),\r\n partObj = dcc.configurator.utils.getPartObj( strPartCategory, strPartId );\r\n if ( boolIsNoneInput === false ) {\r\n if ( strPartCategory === dcc.configurator.constants.keyboardsInternal ) {\r\n var strSelectedLanguageProductId = jQuery( domElm ).closest( dcc.configurator.selectors.categoryContainer ).find( dcc.configurator.selectors.partSelect ).val();\r\n partObj = dcc.configurator.utils.getLanguagePartObj( strPartCategory, strSelectedLanguageProductId );\r\n }\r\n if ( partObj.isDefault === false && dcc.configurator.observers.useFee !== '' ) {\r\n if ( dcc.configurator.observers.useFee === dcc.configurator.constants.supportPrice ) {\r\n intSupportPrice += partObj.supportPrice;\r\n }\r\n else if ( dcc.configurator.observers.useFee === dcc.configurator.constants.combinedSupportPrice ) {\r\n intArrCombinedPrices.push( partObj.combinedSupportPrice );\r\n intSupportPrice = intArrCombinedPrices.reduce( function ( a, b ) {\r\n return Math.max( a, b );\r\n } );\r\n }\r\n }\r\n intTotalPrice += e4.util.formatStringToJavascriptNumber( partObj.priceDiff );\r\n }\r\n } );\r\n intTotalPrice += dcc.configurator.overview.autopilot.model.intPrice;\r\n intTotalPrice += e4.util.formatStringToJavascriptNumber( ( intSupportPrice + intWarrantyPrice ) );\r\n return dcc.configurator.overview.price.formatPrice( intTotalPrice, intSupportPrice );\r\n },\r\n getPricePrefix: function ( intPrice ) {\r\n var pricePrefix = '+';\r\n if ( intPrice <= 0 ) {\r\n pricePrefix = '';\r\n }\r\n return pricePrefix;\r\n },\r\n updateKeyboardPrice: function ( domElm ) {\r\n var dataObj = dcc.configurator.utils.getLanguagePartObj( dcc.configurator.constants.keyboardsInternal, domElm.value ),\r\n pricePrefix = dcc.configurator.overview.price.getPricePrefix( dataObj.priceDiff );\r\n jQuery( domElm ).closest( dcc.configurator.selectors.categoryItem ).find( dcc.configurator.selectors.diffPriceKeyboard ).text( pricePrefix + e4.util.formatJavascriptNumberToLocaleString( dataObj.priceDiff ) );\r\n }\r\n },\r\n mobile: {\r\n toggle: function () {\r\n jQuery( dcc.configurator.selectors.overview ).toggleClass( dcc.configurator.selectors.cssUtils.open );\r\n jQuery( dcc.configurator.selectors.mobileHandle ).toggleClass( dcc.configurator.selectors.cssUtils.open );\r\n }\r\n },\r\n autopilot: {\r\n model: {\r\n intPrice: 0,\r\n strPrice: '',\r\n checked: false,\r\n open: false,\r\n email: ''\r\n },\r\n update: function(isChecked){\r\n dcc.configurator.overview.autopilot.model.checked = isChecked;\r\n dcc.configurator.overview.autopilot.model.intPrice = isChecked ? e4.util.formatStringToJavascriptNumber(jQuery(dcc.configurator.selectors.autopilot.checkbox).data('price')) : 0;\r\n dcc.configurator.overview.autopilot.model.strPrice = isChecked ? e4.util.formatJavascriptNumberToLocaleString(jQuery(dcc.configurator.selectors.autopilot.checkbox).data('price')) : '';\r\n dcc.configurator.overview.autopilot.model.email = isChecked ? jQuery(dcc.configurator.selectors.autopilot.emailValue).val() : '';\r\n dcc.configurator.data.configuration.autopilot = dcc.configurator.overview.autopilot.model;\r\n dcc.configurator.overview.update();\r\n }\r\n },\r\n leasing: {\r\n model: {\r\n rate: '',\r\n price: '',\r\n checked: false,\r\n open: false\r\n },\r\n init: function () {\r\n dcc.configurator.overview.leasing.price();\r\n },\r\n price: function () {\r\n jQuery( dcc.configurator.selectors.leasing.price ).html( jQuery( dcc.configurator.selectors.leasing.selectRate ).val() );\r\n dcc.configurator.overview.leasing.offer();\r\n },\r\n offer: function () {\r\n var isChecked = jQuery( dcc.configurator.selectors.leasing.checkbox ).is( ':checked' );\r\n //console.log( 'leasing checked', isChecked );\r\n if ( isChecked === true ) {\r\n dcc.configurator.overview.leasing.set();\r\n }\r\n else {\r\n dcc.configurator.overview.leasing.reset();\r\n }\r\n dcc.configurator.overview.leasing.model.checked = isChecked;\r\n dcc.configurator.data.configuration.leasing.checked = isChecked;\r\n jQuery( dcc.configurator.selectors.leasing.checked ).val( isChecked );\r\n dcc.configurator.overview.leasing.update();\r\n },\r\n set: function () {\r\n var strRate = jQuery( dcc.configurator.selectors.leasing.selectRate + ' option:selected' ).text(),\r\n strLeasingPrice = jQuery( dcc.configurator.selectors.leasing.price ).text();\r\n dcc.configurator.overview.leasing.model.rate = strRate;\r\n dcc.configurator.overview.leasing.model.price = strLeasingPrice;\r\n jQuery( dcc.configurator.selectors.leasingInputRate ).val( strRate );\r\n jQuery( dcc.configurator.selectors.leasing.inputRate ).val( strLeasingPrice );\r\n },\r\n reset: function () {\r\n dcc.configurator.overview.leasing.model.rate = '';\r\n dcc.configurator.overview.leasing.model.price = '';\r\n jQuery( dcc.configurator.selectors.leasingInputRate ).val( '' );\r\n jQuery( dcc.configurator.selectors.leasing.inputRate ).val( '' );\r\n },\r\n update: function () {\r\n dcc.configurator.data.configuration.leasing = dcc.configurator.overview.leasing.model;\r\n }\r\n },\r\n warranty: {\r\n isOpen: false,\r\n selectedValue: '',\r\n update: function ( domElm ) {\r\n dcc.configurator.overview.warranty.selectedValue = domElm.value;\r\n dcc.configurator.data.configuration.warranty = {\r\n isOpen: dcc.configurator.overview.warranty.isOpen,\r\n selectedValue: dcc.configurator.overview.warranty.selectedValue,\r\n data: dcc.configurator.utils.getSelectedWarranty()\r\n };\r\n },\r\n getPrice: function () {\r\n var checkedWarrantyInput = jQuery( dcc.configurator.selectors.partsContainer ).find( dcc.configurator.selectors.warranty.input ).filter( ':checked' );\r\n return checkedWarrantyInput.length > 0 ? checkedWarrantyInput.data( 'price' ) : 0;\r\n }\r\n },\r\n cart: {\r\n load: function ( fnCallback ) {\r\n e4.cart.ajax( {\r\n method: 'GET'\r\n }, function ( data ) {\r\n if ( typeof fnCallback === 'function' ) {\r\n fnCallback( data );\r\n }\r\n } );\r\n },\r\n update: function ( orderlineId ) {\r\n e4.cart.ajax( {\r\n data: {\r\n key: orderlineId,\r\n CartCmd: 'delorderline',\r\n Redirect: false\r\n }\r\n }, function () {\r\n if ( dcc.configurator.editConfiguration.warrantyOrderlineId !== '' ) {\r\n dcc.configurator.overview.cart.update( dcc.configurator.editConfiguration.warrantyOrderlineId );\r\n dcc.configurator.editConfiguration.reset();\r\n }\r\n else {\r\n dcc.configurator.editConfiguration.reset();\r\n dcc.configurator.overview.update();\r\n dcc.configurator.overview.cart.add();\r\n }\r\n } );\r\n },\r\n add: function () {\r\n jQuery( dcc.configurator.selectors.section ).trigger( dcc.configurator.event.addtocart );\r\n var formData = jQuery( dcc.configurator.selectors.form ).serializeArray(),\r\n formDataJson = {};\r\n jQuery.map( formData, function ( input ) {\r\n formDataJson[ input[ 'name' ] ] = input[ 'value' ];\r\n } );\r\n e4.cart.ajax( {\r\n beforeSend: function () {\r\n dcc.configurator.utils.loader( true );\r\n //jQuery( dcc.configurator.selectors.section ).collapse( 'hide' );\r\n },\r\n data: formDataJson\r\n }, function ( data ) {\r\n var selectedWarrantyProductObj = dcc.configurator.utils.getSelectedWarranty();\r\n if ( selectedWarrantyProductObj !== undefined ) {\r\n dcc.configurator.overview.cart.addWarranty( selectedWarrantyProductObj );\r\n }\r\n else {\r\n dcc.configurator.overview.cart.build( data );\r\n }\r\n } );\r\n },\r\n addWarranty: function ( selectedWarrantyProductObj ) {\r\n e4.cart.ajax( {\r\n data: {\r\n cartcmd: 'add',\r\n redirect: false,\r\n productid: selectedWarrantyProductObj.id,\r\n variantid: '',\r\n unitid: '',\r\n quantity: jQuery( dcc.configurator.selectors.quantity ).val(),\r\n EcomOrderLineFieldInput_Warranty_Parent_Product: jQuery( dcc.configurator.selectors.warranty.orderLineField ).val()\r\n }\r\n }, function ( data ) {\r\n dcc.configurator.overview.cart.build( data );\r\n } );\r\n },\r\n build: function ( data ) {\r\n e4.cart.msg.show( data, true );\r\n e4.cart.updateQuantity( data.cart.productQuantity );\r\n e4.util.hash.set( 'state', dcc.configurator.states.cart );\r\n jQuery( '#dcc-productpage-tab-accessories' ).tab( 'show' );\r\n dcc.configurator.overview.reset();\r\n dcc.configurator.utils.loader( false );\r\n }\r\n }\r\n },\r\n related: {\r\n hide: function () {\r\n jQuery( dcc.configurator.selectors.relatedProducts ).addClass( dcc.configurator.selectors.cssUtils.totalCollapse );\r\n },\r\n show: function () {\r\n jQuery( dcc.configurator.selectors.relatedProducts ).removeClass( dcc.configurator.selectors.cssUtils.totalCollapse );\r\n }\r\n }\r\n };\r\n}() );\r\n","var e4 = e4 || {},\r\n dcc = dcc || {};\r\n( function () {\r\n 'use strict';\r\n dcc.isStaging = function () {\r\n return location.href.indexOf( 'staging' ) > -1;\r\n };\r\n dcc.currencyChanger = {\r\n init: function () {\r\n dcc.currencyChanger.bindEvents();\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-dcc-change-currency' ).on( 'click', function ( event ) {\r\n event.preventDefault();\r\n var strDebitorCurrencyCode = event.currentTarget.dataset.value;\r\n if ( strDebitorCurrencyCode !== undefined ) {\r\n dcc.currencyChanger.findCurrency( strDebitorCurrencyCode.toLowerCase() );\r\n }\r\n } );\r\n },\r\n findCurrency: function ( strDebitorCurrencyCode ) {\r\n var currencyCode = '';\r\n if ( strDebitorCurrencyCode.indexOf( 'eur' ) > -1 ) {\r\n currencyCode = 'eur';\r\n }\r\n else if ( strDebitorCurrencyCode.indexOf( 'gbp' ) > -1 ) {\r\n currencyCode = 'gbp';\r\n }\r\n else if ( strDebitorCurrencyCode.indexOf( 'dkk' ) > -1 ) {\r\n currencyCode = 'dkk';\r\n }\r\n if ( currencyCode !== '' ) {\r\n dcc.currencyChanger.buildCurrencyChangeFormAndSubmit( currencyCode );\r\n }\r\n },\r\n buildCurrencyChangeFormAndSubmit: function ( currency ) {\r\n var form = document.createElement( 'form' ),\r\n currencyCodeInput = document.createElement( 'input' );\r\n form.method = 'POST';\r\n form.action = location.href;\r\n currencyCodeInput.type = 'hidden';\r\n currencyCodeInput.value = currency;\r\n currencyCodeInput.name = 'currencycode';\r\n form.appendChild( currencyCodeInput );\r\n document.body.appendChild( form );\r\n form.submit();\r\n }\r\n }, dcc.alert = function ( text, dialogue ) {\r\n var modal = jQuery( '#js-dcc-alert-modal' );\r\n modal.find( '.js-dcc-alert-modal-text' ).text( text );\r\n if ( dialogue === true ) {\r\n modal.find( '.js-dcc-alert-modal-dialogue-actions' ).removeClass( 'd-none' );\r\n }\r\n else {\r\n modal.find( '.js-dcc-alert-modal-dialogue-actions' ).addClass( 'd-none' );\r\n }\r\n modal.modal();\r\n };\r\n dcc.customercenter = {\r\n init: function () {\r\n dcc.customercenter.testForActiveTab();\r\n dcc.customercenter.bindEvents();\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-tablist' ).on( 'shown.bs.tab', '.js-tablist-nav-link', function ( event ) {\r\n e4.util.hash.set( 'tab', event.target.hash.replace( '#', '' ) );\r\n } );\r\n },\r\n testForActiveTab: function () {\r\n var currentTab = e4.util.hash.get( 'tab' );\r\n if ( currentTab ) {\r\n jQuery( '.js-tablist-nav-link[href=\"#' + currentTab + '\"]' ).tab( 'show' );\r\n }\r\n else {\r\n jQuery( '.js-tablist-nav-link' ).first().tab( 'show' );\r\n }\r\n },\r\n downloadOrderPDF: function ( domElm ) {\r\n var url = domElm.href;\r\n jQuery.get( url ).done( function ( data, textStatus, jqXHR ) {\r\n var respondsHeaders = jqXHR.getAllResponseHeaders().split( '\\r\\n' );\r\n for ( var i = 0; i < respondsHeaders.length; i++ ) {\r\n var respondsHeader = respondsHeaders[ i ].split( ' ' );\r\n if ( respondsHeader[ 0 ] === 'content-type:' ) {\r\n if ( respondsHeader[ 1 ] === 'application/pdf' ) {\r\n location.href = url;\r\n }\r\n else {\r\n dcc.customercenter.downloadOrderPDFError();\r\n }\r\n }\r\n }\r\n } );\r\n },\r\n downloadOrderPDFError: function () {\r\n dcc.alert( 'Error downloading PDF', false );\r\n }\r\n }, dcc.productlist = {\r\n init: function () {\r\n dcc.productlist.presentation.init();\r\n dcc.productlist.searchUrlQuery();\r\n dcc.productlist.addToFavorites.init();\r\n dcc.productlist.plain.init();\r\n },\r\n addToFavorites: {\r\n init: function () {\r\n \r\n }\r\n },\r\n parseQueryString: function ( query ) {\r\n var vars = query.split( '&' ),\r\n query_string = {};\r\n for ( var i = 0; i < vars.length; i++ ) {\r\n var pair = vars[ i ].split( '=' ),\r\n key = decodeURIComponent( pair[ 0 ] ),\r\n value = decodeURIComponent( pair[ 1 ] );\r\n if ( typeof query_string[ key ] === 'undefined' ) {\r\n query_string[ key ] = decodeURIComponent( value );\r\n }\r\n else if ( typeof query_string[ key ] === 'string' ) {\r\n var arr = [\r\n query_string[ key ],\r\n decodeURIComponent( value )\r\n ];\r\n query_string[ key ] = arr;\r\n // If third or later entry with this name\r\n }\r\n else {\r\n query_string[ key ].push( decodeURIComponent( value ) );\r\n }\r\n }\r\n return query_string;\r\n },\r\n searchUrlQuery: function () {\r\n jQuery( '.js-e-productlist' ).on( 'builded.e4.productlist', function ( event ) {\r\n var jProductlist = jQuery( event.target ),\r\n url = location.href,\r\n locationSearch = window.location.search.substring( 1 ),\r\n urlParams = dcc.productlist.parseQueryString( locationSearch );\r\n if ( urlParams.q && e4.productlist.data.hasLoadedQuery === false ) {\r\n jProductlist.find( '.js-e-search-input' ).val( urlParams.q );\r\n var cleanUrl = url.substring( 0, url.indexOf( '?' ) );\r\n if ( Object.keys( urlParams ).length > 0 ) {\r\n jQuery.each( urlParams, function ( key, value ) {\r\n if ( key.indexOf( 'utm_' ) > -1 && cleanUrl.indexOf( key + '=' + value ) === -1 ) {\r\n e4.productlist.history.utms[ key ] = value;\r\n cleanUrl += ( cleanUrl.indexOf( '?' ) > -1 ? '&' : '?' ) + key + '=' + value;\r\n }\r\n } );\r\n }\r\n e4.productlist.data.hasLoadedQuery = true;\r\n if ( jQuery( '#js-e-productlist-filters' ).length > 0 ) {\r\n history.replaceState( null, null, cleanUrl );\r\n e4.productlist.data.post();\r\n }\r\n }\r\n } );\r\n },\r\n presentation: {\r\n typeSessionStorageKey: 'dcc.productlist.presentation.type.obj',\r\n viewPageID: function () {\r\n return jQuery( 'input[name=\"ViewPageID\"]' ).val();\r\n },\r\n init: function () {\r\n var prensentationType = dcc.productlist.presentation.store.get();\r\n if ( prensentationType === 'list' ) {\r\n dcc.productlist.presentation.setList( false );\r\n }\r\n else {\r\n dcc.productlist.presentation.setGrid( false );\r\n }\r\n dcc.productlist.presentation.bindEvents();\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-productlist-presentation-btn-list' ).on( 'click', function ( event ) {\r\n event.preventDefault();\r\n dcc.productlist.presentation.setList( true );\r\n } );\r\n jQuery( '.js-productlist-presentation-btn-grid' ).on( 'click', function ( event ) {\r\n event.preventDefault();\r\n dcc.productlist.presentation.setGrid( true );\r\n } );\r\n },\r\n setGrid: function ( store ) {\r\n var jProductlist = jQuery( '.js-e-productlist' );\r\n jProductlist.addClass( 'dcc-productlist-presentation-grid' );\r\n jProductlist.removeClass( 'dcc-productlist-presentation-list' );\r\n if ( store === true ) {\r\n dcc.productlist.presentation.store.set( 'grid' );\r\n }\r\n },\r\n setList: function ( store ) {\r\n var jProductlist = jQuery( '.js-e-productlist' );\r\n jProductlist.addClass( 'dcc-productlist-presentation-list' );\r\n jProductlist.removeClass( 'dcc-productlist-presentation-grid' );\r\n if ( store === true ) {\r\n dcc.productlist.presentation.store.set( 'list' );\r\n }\r\n },\r\n store: {\r\n get: function () {\r\n var viewPageID = dcc.productlist.presentation.viewPageID(),\r\n presentationTypeObj = {};\r\n if ( sessionStorage.getItem( dcc.productlist.presentation.typeSessionStorageKey ) !== null ) {\r\n presentationTypeObj = JSON.parse( sessionStorage.getItem( dcc.productlist.presentation.typeSessionStorageKey ) );\r\n }\r\n if ( viewPageID === undefined || presentationTypeObj[ viewPageID ] === undefined ) {\r\n presentationTypeObj[ viewPageID ] = jQuery( '.js-e-productslist-header' ).find( '.js-productlist-presentation-type' ).filter( '.default-presentation' ).data( 'presentation' );\r\n }\r\n return presentationTypeObj[ viewPageID ];\r\n },\r\n set: function ( presentation ) {\r\n var presentationTypeObj = {},\r\n viewPageID = dcc.productlist.presentation.viewPageID();\r\n if ( viewPageID !== undefined ) {\r\n if ( sessionStorage.getItem( dcc.productlist.presentation.typeSessionStorageKey ) !== null ) {\r\n presentationTypeObj = JSON.parse( sessionStorage.getItem( dcc.productlist.presentation.typeSessionStorageKey ) );\r\n presentationTypeObj[ viewPageID ] = presentation;\r\n }\r\n else {\r\n presentationTypeObj = {};\r\n presentationTypeObj[ viewPageID ] = presentation;\r\n }\r\n sessionStorage.setItem( dcc.productlist.presentation.typeSessionStorageKey, JSON.stringify( presentationTypeObj ) );\r\n }\r\n }\r\n }\r\n },\r\n plain: {\r\n resizeDebounce: null,\r\n windowBaseWidth: 0,\r\n carouselBaseCount: 4,\r\n carouselCount: 0,\r\n _instances: [],\r\n init: function () {\r\n var jPlainProductsList = jQuery( '.js-dcc-plain-products-list' );\r\n if ( jPlainProductsList.length > 0 ) {\r\n e4.util.require.js( e4.settings.require.handlebars, function () {\r\n e4.handlebars.registerTemplates( '#js-e-handlebars-tmpl-productlist-plain-products' );\r\n e4.handlebars.registerHelpers( 'counter compare compare_extended encoder grouped_each' );\r\n dcc.productlist.plain.testCarouselCount();\r\n dcc.productlist.plain.bindEvents();\r\n } );\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( window ).on( 'resize', dcc.productlist.plain.testCarouselCount );\r\n },\r\n testCarouselCount: function () {\r\n clearTimeout( dcc.productlist.plain.resizeDebounce );\r\n dcc.productlist.plain.resizeDebounce = setTimeout( function () {\r\n var windowWidth = jQuery( window ).width();\r\n if ( windowWidth < e4.settings.breakpoint.lg && windowWidth >= e4.settings.breakpoint.md ) {\r\n dcc.productlist.plain.carouselCount = 2;\r\n }\r\n else if ( windowWidth < e4.settings.breakpoint.md ) {\r\n dcc.productlist.plain.carouselCount = 1;\r\n }\r\n else {\r\n dcc.productlist.plain.carouselCount = 4;\r\n }\r\n if ( dcc.productlist.plain.carouselCount !== dcc.productlist.plain.carouselBaseCount ) {\r\n dcc.productlist.plain.carouselBaseCount = dcc.productlist.plain.carouselCount;\r\n }\r\n dcc.productlist.plain.build();\r\n }, 100 );\r\n },\r\n build: function () {\r\n jQuery( '.js-dcc-plain-products-list' ).each( function ( index, domElm ) {\r\n if ( dcc.productlist.plain._instances[ index ] === undefined ) {\r\n dcc.productlist.plain._instances[ index ] = JSON.parse( jQuery( domElm ).find( '.js-dcc-plain-products-list-data' ).html() );\r\n }\r\n var data = dcc.productlist.plain._instances[ index ];\r\n data.carouselCount = dcc.productlist.plain.carouselCount;\r\n jQuery( domElm ).find( '.js-dcc-plain-products-list-products' ).html( e4.handlebars.tmpl.productlistPlainProducts( data ) );\r\n dcc.productlist.plain.carousel( domElm );\r\n } );\r\n },\r\n carousel: function ( domElm ) {\r\n var jCarousel = jQuery( domElm ).find( '.js-dcc-plain-products-list-carousel' );\r\n if ( jCarousel.length > 0 ) {\r\n jCarousel.find( '.carousel-item' ).first().addClass( 'active' );\r\n jQuery( '.dcc-product-list-item-add-to-favorites' ).addClass( 'dropup' );\r\n }\r\n }\r\n }\r\n };\r\n dcc.product = {\r\n init: function () {\r\n e4.util.require.js( e4.settings.require.handlebars, function () {\r\n e4.handlebars.registerHelpers( 'compare compare_extended' );\r\n dcc.product.imageCarousel.init();\r\n dcc.product.relatedProducts.init();\r\n } );\r\n dcc.product.bindEvents();\r\n dcc.product.leasing.init();\r\n dcc.product.autopilot.init();\r\n },\r\n bindEvents: function () {\r\n jQuery( document ).on( 'productadded.e4.cart', function () {\r\n var jAccessoryTab = jQuery( '#dcc-productpage-tab-accessories' ),\r\n intScrollTarget = e4.scrollToAnchor.getTarget( '#' + jAccessoryTab.attr( 'id' ) );\r\n if ( jAccessoryTab.length === 1 ) {\r\n jAccessoryTab.tab( 'show' );\r\n jQuery( 'html,body' ).animate( {\r\n scrollTop: intScrollTarget\r\n }, Math.floor( Math.abs( jQuery( window ).scrollTop() - intScrollTarget ) * e4.settings.scrollToAnchor.speed ), e4.settings.scrollToAnchor.easing, function () {\r\n e4.header.hide();\r\n } );\r\n }\r\n } );\r\n },\r\n imageCarousel: {\r\n isModalOpen: false,\r\n init: function () {\r\n var jImageCarousel = jQuery( '.js-e-product-image-container' );\r\n if ( jImageCarousel.length === 1 ) {\r\n e4.handlebars.registerTemplates( '#js-e-handlebars-tmpl-carousel-images #js-e-handlebars-tmpl-carousel-thumbs #js-e-handlebars-tmpl-carousel-modal-images #js-e-handlebars-tmpl-carousel-modal-thumbs' );\r\n dcc.product.imageCarousel.build();\r\n //dcc.product.imageCarousel.bindEvents();\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( '#js-e-product-image-modal' ).on( 'shown.bs.modal', function () {\r\n dcc.product.imageCarousel.isModalOpen = true;\r\n } ).on( 'hidden.bs.modal', function () {\r\n dcc.product.imageCarousel.isModalOpen = false;\r\n } );\r\n jQuery( document ).on( 'keyup', function ( event ) {\r\n if ( dcc.product.imageCarousel.isModalOpen === true ) {\r\n if ( event.which === 27 ) {\r\n jQuery( '#js-e-product-image-modal' ).modal( 'hide' );\r\n }\r\n }\r\n } );\r\n },\r\n build: function () {\r\n var carouselImages = window.carouselDataImages,\r\n jCarouselImages = jQuery( '.js-dcc-image-carousel-images-container' ),\r\n jCarouselThumbs = jQuery( '.js-dcc-image-carousel-thumbs-container' );\r\n jCarouselImages.html( e4.handlebars.tmpl.carouselImages( carouselImages ) );\r\n jCarouselThumbs.html( e4.handlebars.tmpl.carouselThumbs( carouselImages ) );\r\n dcc.product.imageCarousel.images.preload( 0, [\r\n jCarouselThumbs,\r\n jCarouselImages\r\n ], false );\r\n //dcc.product.imageCarousel.images.load();\r\n },\r\n images: {\r\n imageArr: [],\r\n preload: function ( index, arrImages, isDone ) {\r\n if ( isDone === false ) {\r\n if ( arrImages !== null ) {\r\n dcc.product.imageCarousel.images.imageArr = arrImages;\r\n }\r\n var currentImageObj = dcc.product.imageCarousel.images.imageArr[ index ],\r\n srcLength = jQuery( currentImageObj ).find( '.js-preload-src-image' ).length,\r\n imageType = srcLength > 0 ? 'src' : 'bg';\r\n dcc.product.imageCarousel.images.loadSrc( index, currentImageObj, imageType );\r\n }\r\n else {\r\n var carouselImages = window.carouselDataImages,\r\n jCarouselModalImages = jQuery( '.js-dcc-image-carousel-modal-images-container' ),\r\n jCarouselModalThumbs = jQuery( '.js-dcc-image-carousel-modal-thumbs-container' );\r\n jCarouselModalImages.html( e4.handlebars.tmpl.carouselModalImages( carouselImages ) );\r\n jCarouselModalThumbs.html( e4.handlebars.tmpl.carouselModalThumbs( carouselImages ) );\r\n }\r\n },\r\n loadSrc: function ( imageObjIndex, imageObj, imageType ) {\r\n var imageClassname = imageType === 'src' ? '.js-preload-src-image' : '.js-preload-background-image';\r\n jQuery( imageObj ).find( imageClassname ).each( function () {\r\n var strImagePath = jQuery( this ).data( 'src' ),\r\n domImageElement = this,\r\n imageToLoad = new Image();\r\n imageToLoad.src = strImagePath;\r\n jQuery( imageToLoad ).on( 'load', function () {\r\n if ( imageType === 'src' ) {\r\n jQuery( domImageElement ).attr( 'src', imageToLoad.src );\r\n }\r\n else if ( imageType === 'bg' ) {\r\n jQuery( domImageElement ).css( 'background-image', 'url(' + imageToLoad.src + ')' );\r\n }\r\n } ).on( 'error', function () {\r\n if ( imageType === 'src' ) {\r\n jQuery( domImageElement ).attr( 'src', '/Files/Templates/Designs/dcc/_assets/img/dcc-noimage.svg' );\r\n }\r\n else if ( imageType === 'bg' ) {\r\n jQuery( domImageElement ).css( 'background-image', 'url(/Files/Templates/Designs/dcc/_assets/img/dcc-noimage.svg)' );\r\n }\r\n } );\r\n } );\r\n var nextImageGroupIndex = dcc.product.imageCarousel.images.imageArr[ imageObjIndex + 1 ] !== undefined ? ( imageObjIndex + 1 ) : null,\r\n isDone = nextImageGroupIndex === null ? true : false;\r\n dcc.product.imageCarousel.images.preload( nextImageGroupIndex, null, isDone );\r\n }\r\n }\r\n },\r\n _relatedProducts: {\r\n init: function () {\r\n var jRelatedProductsCarousel = jQuery( '.js-dcc-related-products-carousel' ),\r\n jRelatedProductsList = jQuery( '.js-dcc-plain-products-list' );\r\n if ( jRelatedProductsCarousel.length === 1 ) {\r\n e4.handlebars.registerTemplates( '#js-e-handlebars-tmpl-related-products-carousel-inner #js-e-handlebars-tmpl-related-products-modal-content' );\r\n dcc.product._relatedProducts.bindEvents();\r\n dcc.product._relatedProducts.load( jRelatedProductsCarousel.data( 'productId' ) );\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-dcc-related-products-modal' ).on( 'show.bs.modal', function ( event ) {\r\n dcc.product._relatedProducts.updateModalContent( jQuery( event.relatedTarget ).data( 'groupId' ) );\r\n } ).on( 'shown.bs.modal', function ( event ) {\r\n jQuery( event.target ).modal( 'handleUpdate' );\r\n } );\r\n },\r\n load: function ( strProductId ) {\r\n this.jqXHR = jQuery.ajax( {\r\n url: '/system/data/related-products',\r\n data: {\r\n ProductID: strProductId\r\n },\r\n method: 'GET',\r\n dataType: 'json',\r\n cache: true\r\n } );\r\n this.jqXHR.done( function ( json ) {\r\n var objCarouselSlideData = dcc.product._relatedProducts.buildCarouselSlideData( json );\r\n dcc.product._relatedProducts.buildCarousel( objCarouselSlideData );\r\n dcc.product._relatedProducts.saveData( json );\r\n } );\r\n },\r\n buildCarousel: function ( objCarouselSlideData ) {\r\n var jCarouselInner = jQuery( '.js-dcc-related-products-carousel-inner' );\r\n jCarouselInner.html( e4.handlebars.tmpl.relatedProductsCarouselInner( objCarouselSlideData ) );\r\n jCarouselInner.find( '.carousel-item' ).first().addClass( 'active' );\r\n },\r\n buildCarouselSlideData: function ( json ) {\r\n var arrCarouselSlides = [];\r\n for ( var i = 0; i < json.relatedGroups.length; i++ ) {\r\n if ( i % 6 === 0 ) {\r\n arrCarouselSlides.push( { relatedGroups: [] } );\r\n }\r\n arrCarouselSlides[ arrCarouselSlides.length - 1 ].relatedGroups.push( json.relatedGroups[ i ] );\r\n }\r\n // console.log( arrCarouselSlides );\r\n return { slides: arrCarouselSlides };\r\n },\r\n saveData: function ( json ) {\r\n dcc.product._relatedProducts.json = json;\r\n },\r\n updateModalContent: function ( strGroupId ) {\r\n var objRelatedProducts = {};\r\n jQuery.each( dcc.product._relatedProducts.json.relatedGroups, function ( intIndex, objElement ) {\r\n if ( objElement.id === strGroupId ) {\r\n objRelatedProducts = objElement;\r\n return false;\r\n }\r\n } );\r\n jQuery( '.js-dcc-related-products-modal-content' ).html( e4.handlebars.tmpl.relatedProductsModalContent( objRelatedProducts ) );\r\n }\r\n },\r\n relatedProducts: {\r\n init: function () {\r\n var jRelatedProductsList = jQuery( '.js-dcc-section-related-products' );\r\n if ( jRelatedProductsList.length === 1 ) {\r\n e4.handlebars.registerTemplates( '#js-e-handlebars-tmpl-configurator-cart-related-products #js-e-handlebars-tmpl-related-products-carousel-inner #js-e-handlebars-tmpl-related-products-modal-content' );\r\n e4.handlebars.registerPartials( '#js-e-handlebars-partial-configurator-cart-related-products-details #js-e-handlebars-partial-configurator-cart-related-product' );\r\n dcc.product.relatedProducts.bindEvents();\r\n e4.handlebars.registerHelpers( 'compare counter compareLength' );\r\n dcc.product.relatedProducts.load( jQuery( '.js-dcc-main-product' ).data( 'productId' ), true );\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-dcc-related-products-modal' ).on( 'show.bs.modal', function ( event ) {\r\n dcc.product.relatedProducts.updateModalContent( jQuery( event.relatedTarget ).data( 'groupId' ) );\r\n } ).on( 'shown.bs.modal', function ( event ) {\r\n jQuery( event.target ).modal( 'handleUpdate' );\r\n } );\r\n jQuery( '.js-dcc-configurator-cart-related-products-container' ).on( 'click', '.js-dcc-related-list-custom-toggle', function ( event ) {\r\n var target = jQuery( event.target ).data( 'target' );\r\n if ( jQuery( target ).find( '.js-inner-collapse' ).is( '.show' ) === false ) {\r\n event.stopPropagation();\r\n jQuery( target ).find( '.js-inner-collapse' ).collapse( 'show' );\r\n }\r\n } ).on( 'click', '.js-dcc-related-list-custom-inner-toggle', function ( event ) {\r\n //var target = jQuery( event.target ).data( 'target' );\r\n var targets = jQuery( event.target ).closest( '.collapse' ).find( '.js-inner-collapse' );\r\n if ( jQuery( this ).attr( 'aria-expanded' ) === 'true' ) {\r\n event.stopPropagation();\r\n targets.collapse( 'hide' );\r\n }\r\n else {\r\n event.stopPropagation();\r\n targets.collapse( 'show' );\r\n }\r\n } );\r\n jQuery( document ).on( 'shown.bs.collapse', '.p-section-collapse-content', function ( event ) {\r\n var target = event.target,\r\n targetAddition = 20;\r\n if ( jQuery( target ).is( '.js-inner-collapse' ) === true ) {\r\n target = jQuery( event.target ).closest( '.e-products' ).find( '.js-e-products-item' ).first();\r\n targetAddition = 60;\r\n }\r\n var intScrollTarget = e4.scrollToAnchor.getTarget( target );\r\n if ( jQuery( target ).is( '.dcc-productlist-presentation-list' ) === false ) {\r\n jQuery( 'html,body' ).scrollTop( intScrollTarget - targetAddition );\r\n }\r\n } );\r\n },\r\n load: function ( strProductId, doStdCalc ) {\r\n this.jqXHR = jQuery.ajax( {\r\n url: '/system/data/related-products',\r\n data: {\r\n ProductID: strProductId,\r\n DoStdCalc: doStdCalc\r\n },\r\n method: 'GET',\r\n dataType: 'json',\r\n cache: true\r\n } );\r\n this.jqXHR.done( function ( json ) {\r\n dcc.product.relatedProducts.handleData( json );\r\n dcc.product.relatedProducts.saveData( json );\r\n } );\r\n },\r\n handleData: function ( json ) {\r\n json.collapseCount = 1;\r\n json.relatedGroups.forEach( function ( group ) {\r\n group.products = dcc.configurator.utils.sortByStock( group.products );\r\n } );\r\n if ( json.relatedGroups.length ) {\r\n dcc.product.relatedProducts.buildStacks( json );\r\n }\r\n else {\r\n jQuery( dcc.configurator.selectors.cartRelatedContainer ).html( '' );\r\n jQuery( '#dcc-productpage-tab-accessories' ).hide();\r\n if ( jQuery( '.js-dcc-configurator-section' ).length === 0 && jQuery( '#dcc-productpage-tab-content-specs' ).length > 0 ) {\r\n jQuery( '#dcc-productpage-tab-specs' ).tab( 'show' );\r\n }\r\n }\r\n },\r\n buildStacks: function ( json ) {\r\n jQuery( dcc.configurator.selectors.cartRelatedContainer ).html( e4.handlebars.tmpl.configuratorCartRelatedProducts( json ) );\r\n \r\n },\r\n buildCarousel: function ( objCarouselSlideData ) {\r\n var jCarouselInner = jQuery( '.js-dcc-related-products-carousel-inner' );\r\n jCarouselInner.html( e4.handlebars.tmpl.relatedProductsCarouselInner( objCarouselSlideData ) );\r\n jCarouselInner.find( '.carousel-item' ).first().addClass( 'active' );\r\n },\r\n buildCarouselSlideData: function ( json ) {\r\n var arrCarouselSlides = [];\r\n for ( var i = 0; i < json.relatedGroups.length; i++ ) {\r\n if ( i % 6 === 0 ) {\r\n arrCarouselSlides.push( { relatedGroups: [] } );\r\n }\r\n arrCarouselSlides[ arrCarouselSlides.length - 1 ].relatedGroups.push( json.relatedGroups[ i ] );\r\n }\r\n // console.log( arrCarouselSlides );\r\n return { slides: arrCarouselSlides };\r\n },\r\n saveData: function ( json ) {\r\n dcc.product.relatedProducts.json = json;\r\n },\r\n updateModalContent: function ( strGroupId ) {\r\n var objRelatedProducts = {};\r\n jQuery.each( dcc.product.relatedProducts.json.relatedGroups, function ( intIndex, objElement ) {\r\n if ( objElement.id === strGroupId ) {\r\n objRelatedProducts = objElement;\r\n return false;\r\n }\r\n } );\r\n jQuery( '.js-dcc-related-products-modal-content' ).html( e4.handlebars.tmpl.relatedProductsModalContent( objRelatedProducts ) );\r\n }\r\n },\r\n autopilot: {\r\n init: function(){\r\n dcc.product.autopilot.bindEvents();\r\n },\r\n bindEvents: function(){\r\n jQuery('.js-dcc-autopilot-checkbox').on('change', function(event){\r\n dcc.product.autopilot.setValues(event.target.checked, event.isTrigger);\r\n });\r\n jQuery('.js-dcc-autopilot-email-input').on('input', function(){\r\n dcc.product.autopilot.setValues(true);\r\n });\r\n },\r\n setValues: function(isChecked, isTrigger){\r\n var jConfigCheckbox = jQuery('.js-dcc-configurator-overview-autopilot-checkbox');\r\n jQuery('.js-dcc-autopilot-checked-orderline-input').val(isChecked);\r\n jQuery('.js-dcc-autopilot-email-orderline-input').val(isChecked ? jQuery('.js-dcc-autopilot-email-input').val() : '');\r\n if( jConfigCheckbox.length > 0 && isTrigger === undefined){\r\n dcc.configurator.overview.autopilot.model.open = isChecked;\r\n jConfigCheckbox.prop('checked', isChecked).trigger('change');\r\n } else if( isTrigger !== undefined){\r\n jQuery('#dcc-autopilot-collapse').collapse(isChecked ? 'show' : 'hide' );\r\n }\r\n }\r\n },\r\n leasing: {\r\n init: function () {\r\n dcc.product.leasing.bindEvents();\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-dcc-product-leasing-interest-rate' ).on( 'change', function ( event ) {\r\n dcc.product.leasing.togglePrice( event.target );\r\n } ).triggerHandler( 'change' );\r\n jQuery( '.js-leasing-offer-checkbox' ).on( 'change', function ( event ) {\r\n dcc.product.leasing.toggleOffer( event.target );\r\n } ).triggerHandler( 'change' );\r\n jQuery( '.js-dcc-product-leasing-toggle' ).on( 'click', function ( event ) {\r\n event.preventDefault();\r\n dcc.product.leasing.collapse( event.target );\r\n } );\r\n },\r\n collapse: function ( domElm ) {\r\n jQuery( '.js-dcc-product-leasing-toggle-target' ).collapse( 'toggle' );\r\n },\r\n toggleOffer: function ( domElm ) {\r\n var jCheckBox = jQuery( '.js-leasing-offer-checkbox' ),\r\n jLeasingRate = jQuery( '.js-leasing-offer-input-rate' ),\r\n jLeasingPrice = jQuery( '.js-leasing-offer-input-price' ),\r\n jLeasingChecked = jQuery( '.js-leasing-offer-input-checked' );\r\n if ( jCheckBox.is( ':checked' ) === true ) {\r\n var avanceiProcent = jQuery( '.js-dcc-product-leasing-interest-rate option:selected' ).text(),\r\n leasingPrice = jQuery( '.js-dcc-product-leasing-price' ).text();\r\n jLeasingRate.val( avanceiProcent );\r\n jLeasingPrice.val( leasingPrice );\r\n }\r\n else {\r\n jLeasingRate.val( '' );\r\n jLeasingPrice.val( '' );\r\n }\r\n jLeasingChecked.val( jCheckBox.is( ':checked' ) );\r\n },\r\n togglePrice: function ( domElm ) {\r\n jQuery( '.js-dcc-product-leasing-price' ).html( jQuery( domElm ).val() );\r\n dcc.product.leasing.toggleOffer( domElm );\r\n }\r\n }\r\n };\r\n dcc.cart = {\r\n init: function () {\r\n jQuery( '.js-e-cart' ).on( 'loaded.e4.cart', dcc.cart.updateOrderlinesQuantity );\r\n },\r\n updateOrderlinesQuantity: function () {\r\n e4.cart.ajax( {\r\n data: jQuery( '.js-e-cart-form' ).serialize()\r\n } );\r\n }\r\n };\r\n dcc.sidebarContact = function () {\r\n var timeOut;\r\n jQuery( '.js-dcc-custom-sticky-wrapper' ).on( 'click', function () {\r\n clearTimeout( timeOut );\r\n jQuery( this ).toggleClass( 'active' );\r\n } ).on( 'mouseenter', function () {\r\n clearTimeout( timeOut );\r\n } ).on( 'mouseleave', function () {\r\n var selectStickyWrapper = this;\r\n timeOut = setTimeout( function () {\r\n jQuery( selectStickyWrapper ).removeClass( 'active' );\r\n }, 3000 );\r\n } );\r\n };\r\n}() );\r\n"]}