{"version":3,"sources":["TinySlider.js","Cleanup.js","Model.js","Scroll.js","JackpotInfo.js","MithrilFlipClock.js","HammerTime.js","DataLayer.js","Params.js","Resize.js","Utils.js","AccountIntegration.js","Confirm.js","Overlay.js","ErrorOverlay.js","CouponOverlay.js","Countdown.js","SelectDropdown.js","ReceiveWinnerMessage.js","StorageCheck.js","NumberGamesDictionary.js","HowToPlayContent.js","HowToPlayPopup.js","HowToPlay.js","CarouselSpot.js","NewsView.js","StatisticsModuleApi.js","InformationSwitcherSelector.js","SelectedNumbers.js","PeriodFilter.js","NumbersTypeSwitch.js","GraphOverview.js","Graph.js","StatisticsModule.js","StatisticsComponentForGameClient.js","TopSpotPageHeader.js","KenoUtils.js","KenoDictionary.js","KenoApi.js","KenoInfo.js","KenoGame.js","SliderSelector.js","CollapsibleSection.js","PurchaseBar.js","ConfirmBar.js","RowAutogenerate.js","RowNumbersHeader.js","RowNumber.js","RowNumbers.js","Barometer.js","DeleteOverlay.js","Navigation.js","RowHeader.js","LevelWinnings.js","RowWinnings.js","Row.js","RowsList.js","Rows.js","SystemTable.js","NoOpenDraw.js","DatePicker.js","KenoClassicClient.js","KenoClassic.js","KenoFastPlay.js","KenoMillion.js","KenoSystemClient.js","KenoSystem.js","KenoConfirm.js","KenoReceipt.js","KenoWinningNumbers.js","KenoFaqSelector.js","KenoFaqPrizes.js","KenoGameClosed.js","KenoTop.js","TutorialFooter.js","TutorialNavigation.js","TutorialHero.js","TutorialSearchBar.js","TutorialFrontPage.js","TutorialAvalonPage.js","TutorialSlidePage.js","TutorialTipsSystemPage.js","TutorialSimplePage.js","Tutorial.js"],"names":["defineDs","t","window","Ai","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","setTimeout","e","Ni","cancelAnimationFrame","mozCancelAnimationFrame","clearTimeout","Li","n","i","arguments","a","r","length","Bi","indexOf","JSON","parse","Si","setItem","Hi","document","body","createElement","fake","documentElement","Oi","style","overflow","background","appendChild","Di","remove","offsetHeight","ki","insertRule","addRule","Ri","cssRules","rules","Ii","call","Pi","classList","contains","className","zi","add","Wi","replace","qi","hasAttribute","Fi","getAttribute","item","ji","Array","Object","prototype","toString","setAttribute","Vi","removeAttribute","Gi","push","Qi","display","Xi","Yi","getComputedStyle","Ki","charAt","toUpperCase","substr","forEach","Ji","test","toLowerCase","o","defineProperty","get","addEventListener","u","passive","Ui","_i","removeEventListener","Zi","topics","on","this","off","splice","emit","type","keys","hasOwnProperty","Element","parentNode","removeChild","$i","H","container","mode","axis","items","gutter","edgePadding","fixedWidth","autoWidth","viewportMax","slideBy","center","controls","controlsPosition","controlsText","controlsContainer","prevButton","nextButton","nav","navPosition","navContainer","navAsThumbnails","arrowKeys","speed","autoplay","autoplayPosition","autoplayTimeout","autoplayDirection","autoplayText","autoplayHoverPause","autoplayButton","autoplayButtonOutput","autoplayResetOnVisibility","animateIn","animateOut","animateNormal","animateDelay","loop","rewind","autoHeight","responsive","lazyload","lazyloadSelector","touch","mouseDrag","swipeAngle","nested","preventActionWhenRunning","preventScrollOnTouch","freezable","onInit","useLocalStorage","nonce","O","m","ENTER","SPACE","LEFT","RIGHT","navigator","userAgent","Date","localStorage","getItem","removeItem","tnsApp","y","tC","l","width","offsetWidth","g","tPL","innerHTML","Math","abs","getBoundingClientRect","left","children","D","tMQ","matchMedia","msMatchMedia","styleSheet","cssText","createTextNode","position","currentStyle","tTf","t3D","slice","insertBefore","getPropertyValue","x","tTDu","tTDe","b","tADu","tADe","s","tTE","c","tAE","f","console","warn","d","v","querySelector","nodeName","M","q","k","R","I","p","h","w","P","z","C","W","N","L","B","S","K","J","_","Z","F","T","j","V","E","A","outerHTML","G","Q","X","rn","Y","En","ge","$","tt","sn","et","nt","it","un","at","rt","floor","ot","ut","fixedWidthViewportWidth","lt","st","ct","ft","dt","vt","pt","ht","mt","yt","gt","xt","bt","wt","Ct","Mt","sheet","Tt","Et","At","Nt","ceil","min","apply","max","ln","Lt","Bt","St","_n","Ht","Ot","Dt","kt","Rt","It","en","Pt","zt","tn","Wt","qt","Ft","jt","Vt","Gt","Qt","Xt","Yt","id","tnsId","Kt","Jt","Ut","_t","Tn","Zt","$t","click","oi","keydown","pi","keyCode","we","disabled","Ce","te","ai","hi","Ae","Se","Number","Le","ri","le","He","Pe","fi","activeElement","vi","Ee","ee","mouseover","li","ze","mouseout","ui","ne","visibilitychange","hidden","qe","ie","ae","touchstart","xi","touchmove","bi","touchend","wi","touchcancel","re","mousedown","mousemove","mouseup","mouseleave","oe","ue","se","ce","fe","de","ve","pe","he","load","kn","error","Rn","me","ye","xe","be","Me","Te","We","Ne","Mi","Be","an","Oe","De","ke","Re","Ie","Xe","Fe","je","Ve","Ge","Qe","Ye","Ke","Je","Ue","$e","tabindex","createDocumentFragment","cloneNode","firstChild","fontSize","marginLeft","hn","cn","fn","dn","vn","mn","parseInt","yn","_e","Ze","Jn","ti","Zn","Ci","ei","version","getInfo","Ei","events","goTo","play","ci","pause","isOn","updateSliderHeight","Fn","refresh","destroy","ownerNode","resize","Cn","di","clearInterval","previousElementSibling","nextElementSibling","firstElementChild","rebuild","nn","innerWidth","clientWidth","right","pn","substring","querySelectorAll","src","zn","In","gn","$n","bn","wn","xn","jn","Vn","insertAdjacentHTML","Hn","Ti","Qn","Kn","An","Mn","Pn","Dn","Bn","Ln","Wn","Nn","margin","height","Sn","deleteRule","removeRule","On","parseFloat","stopPropagation","srcset","complete","qn","Gn","Xn","Yn","Un","ni","ii","target","propertyName","isNaN","setInterval","si","focus","mi","event","changedTouches","srcElement","yi","preventDefault","returnValue","gi","atan2","PI","clientX","clientY","cancelable","slideItems","navItems","hasControls","cloneCount","slideCount","slideCountNew","index","indexCached","displayIndex","navCurrentIndex","navCurrentIndexCached","pages","pagesCached","now","getTime","key","timestamp","RegExp","location","search","Cleanup","modelName","constructor","generateId","random","cache","construct","content","state","save","record","prop","init","data","stringify","toJSON","update","updatedRecord","query","cached","val","json","bulk","filter","match","first","second","delete","new","callbacks","amount","$element","callback","Storage","TimeUtils","Utils","Ensighten","_window$minimumPoolSi","_window$minimumPoolSi2","_window$minimumPoolSi3","_window$minimumPoolSi4","_window$minimumPoolSi5","aliases","lottosaturday","saturdaylotto","lottowednesday","wednesdaylotto","superpulje","jokersaturday","jokerwednesday","joker","onsdagsjoker","minimumPoolSizes","lotto","eurojackpot","vikinglotto","jokerloerdag","jokeronsdag","getByGame","name","poolSizeDecimalsRequested","secondPrizeRequested","split","shift","join","GameId","currentDateTime","getCurrentDateTime","gameStopDate","gamestopExceeded","poolSize","PoolSizeDecimal","PoolSizeFormatted","poolSizeSecondPrize","SecondPrizePoolSizeDecimal","SecondPrizePoolSizeFormatted","numberFormat","poolSizeDecimal","poolSizeFormatted","minimumPoolSize","minimumPoolSizeDecimal","feedValid","str","storeToCache","set","ready","Promise","resolve","reject","$jackpotInfo","domData","domJson","pushJackpots","cacheData","getDynamicFeed","sitecoreEnv","pulje","iter","lastIndex","handleBarString","Render","MithrilRedrawEverySecond","render","controller","options","settings","flipClockSizeCss","deadline","endDate","countersBefore","countersActive","toggleStates","flipClockOptionsCss","staticFlip","colorLight","labelLight","flipper","counter","diff","getServerDateTime","getCompoundTimeObject","valBefore","formatCounter","valActive","class","bind","resized","windowWidth","breakPoints","sizeSmall","sizeDefault","sizeLarge","sizeExtraLarge","flipClockStyles","then","start","view","deactivated","config","depend","MutationObserver","WebKitMutationObserver","DocumentTouch","Hammer","WebGLRenderingContext","getContext","time","getTouchAction","checkStyleString","shouldHammer","hasParent","lastStart","touchHandler","top","pos","scrolled","touchStart","styleWatcher","styleUpdater","updateNext","hadTouchNone","oldValue","installStartEvents","installEndEvents","installObserver","observer","observe","subtree","attributes","attributeOldValue","attributeFilter","install","localDataLayer","returnAsArray","array","isArray","payload","getDataLayer","ecommerce","dataLayer","variantName","brand","rows","playType","systemName","variant","eurojackpotDrawDay","categoryName","category","quantity","getSystemCombinationAmount","rowPrice","feedData","numberOfDraws","draws","promoView","productArray","promotions","promoClick","productImpression","impressions","productDetail","detail","products","addToCart","removeFromCart","checkout","step","option","actionField","purchaseCompleted","revenue","totalPrice","firstInteraction","lastInteraction","purchase","MithrilParams","destruct","params","segments","properties","singles","segment","detect","extract","param","_location$hash","additional","existing","final","hash","hasParamsInHash","map","property","single","history","replaceState","title","pathname","removeParams","urlParams","existingUrlParam","includes","element","finalURL","concat","uniqueParams","querySplit","paramsSplit","unique","DateUtils","NumberUtils","formatNaming","format","excludedNames","camelCase","allornothing","pascalCase","keno","kebabCase","alternative","alternativeNameFormat","_objectSpread","openCoupon","protocol","hostname","getQueryParam","args","decodeURIComponent","prepareParamString","isMobile","isTabletDevice","elementFullyScrolledInViewport","selector","elem","getElementsByClassName","bounding","Event","LoginCache","SitecoreAuth","LoginController","deferred","isSynced","subscribe","promise","getUserData","userObj","getUserObj","customerInfo","getLoginStatus","loggedIn","triggerBalanceUpdate","DSAPI","Account","doBalanceUpdate","checkBalance","requiredAmount","debug","balance","openLogin","loginSuccessUrl","cancelUrl","openDeposit","price","url","DS","Config","PRETTYPREFIX","encodeURIComponent","instantAmount","href","openAccountPage","logout","undefined","AccountIntegration","authFailed","game","checkAuthAndBalance","isLoggedIn","checkAuth","balanceOk","getPurchaseError","errorType","handlePurchaseError","errorMessage","showErrorCallback","template","$container","$wrapper","getElementById","clear","action","self","$gameOverlay","redraw","confirm","dismiss","$overlay","show","dictionary","header","onclick","couponId","origin","frameborder","allowfullscreen","contentWindow","print","printButton","closeButton","currentTime","diffSeconds","countdownTime","days","hours","minutes","seconds","headlineText","gameName","noOpenDraw","alternativeHeadline","ignoredElement","rendered","OutsideClick","DOMUtils","dropdownActive","selected","select","$selectDropdown","$selectPlaceholder","$selectOptions","$selectOptionsList","$selectOptionsItem","setScrollTop","value","scrollTop","nodes","$options","context","toggle","maxHeight","$placeholder","placeholderHeight","calculateElementOuterHeight","$selectOptionsBox","$optionsList","$optionsItem","dropdownListHeight","dropdownHeight","itemHeight","selectPosition","getElementOffset","scrollY","possibleMaxHeight","windowHeight","innerHeight","styleClassPrefix","iconUrl","for","onchange","withAttr","notifyPrizeEmail","notifyPrizeSms","Overlay","ErrorOverlay","supported","Dictionary","playVideo","player","playing","provider","YT","Player","contentId","onReady","Vimeo","youtube","include","onYouTubeIframeAPIReady","vimeo","contents","slideshare","sort","order","text","getFrame","hasPreviewImage","previewImage","alt","Component","HashChange","HowToPlayContent","route","_document$querySelect","youtubeIds","vimeoIds","slideshareIds","requests","$body","$html","$popup","popupOpen","bodyLockedEventTriggered","html","requestUrl","request","dataType","callbackKey","xhr","setRequestHeader","response","sync","popupClose","trust","pushState","loading","$carousel","started","SlideShowConstructor","el","slideShow","timer","animFreq","slideWidth","slideMargin","currentSlide","initialize","slides","animationInterval","slideStyle","marginRight","_createNav","stop","changeSlide","slide","_getNextSlide","_animateSlide","transform","updateUI","animTime","trim","childNodes","span","_createNavListeners","els","parentElement","_clickSlideNav","HammerCarousel","showIndex","percent","animate","slideshow","translate","mozTransform","webkitTransform","onPan","ev","delta","deltaX","_target$closest","tagName","closest","nodeValue","runSlideshow","DIRECTION_HORIZONTAL","slideshowElements","onresize","$nav","hammer","Manager","recognizers","Tap","Pan","bindFn","newsUrl","getOptions","logDeprecated","open","ApiRequest","baseURL","drawDates","gameType","method","statisticsFeed","dates","yearlyWinnings","biggestWins","SelectDropdown","panels","panelSettings","$panel","pSettings","selectQuestion","selectedElements","selectedEl","currentPos","newPosition","scroll","behavior","pushVirtualPage","selectedVal","getUrlParams","urlFriendlyName","queryString","newUrl","host","path","pushSelectedToUrlParams","selectedInUrlParams","queries","URLSearchParams","selectedGameClient","Lotto","Vikinglotto","Eurojackpot","Keno","selectedPoints","removeSelectedNumbers","removeSelectedNumber","numberType","number","toggleMobileSelectedNumbers","outerDOM","innerDOM","toLocaleLowerCase","months","filterOrderDirection","direction","getStatisticsFeed","resetFilter","filterField","selectMonth","month","selectYear","year","gameClients","gameClient","getCompletedDrawDates","completedDrawYears","completedDrawMonths","completedDrawDatesFeed","numbersType","setNumbersType","changeNumberType","barWidth","statisticsNumbersFeed","point","drawnCount","mostDrawnCount","pointHovered","pointIndex","currentPosition","numbers","extraNumbers","onmouseover","onmouseout","leastDrawnCount","slideGraphSlide","NumberGamesDictionary","StatisticsModuleApi","PeriodFilter","NumbersTypeSwitch","Graph","GraphOverview","SelectedNumbers","$graphViewFinder","$largeBarsWrapper","prefix","eurojackpotClassicGameClientLink","eurojackpotLuckyGameClientLink","eurojackpotSystemGameClientLink","kenoClassicGameClientLink","kenoSystemGameClientLink","lottoClassicGameClientLink","lottoLuckyGameClientLink","lottoSystemGameClientLink","vikinglottoClassicGameClientLink","vikinglottoLuckyGameClientLink","vikinglottoSystemGameClientLink","filteredStatisticsDataFeed","numbersFromStorage","statisticsDataFeed","selectedDatesToFeed","periods","orderProperty","selectedMonths","yearsToFeed","numbersTypeFeed","mainNumbersStatistic","extraNumbersStatistic","hasGameVersionConflict","Status","LeastDrawnCount","MostDrawnCount","drawCountDistribution","graphInit","date","dateFormatted","largeBarsWrapperWidth","sliderValue","graphPanAction","deltaValue","$targetedGraph","movementDirection","positionAfterTap","changedPointers","layerX","maxPosition","offsetX","StatisticsDictionary","numbersFromStatistics","currentRow","toggleNumber","hasNumber","removeNumber","numbersPerRowMax","getRow","addNumber","hasStarNumber","removeStarNumber","starNumbersPerRowMax","starNumbers","addStarNumber","hasVikingNumber","removeVikingNumber","vikingNumbersPerRowMax","vikingNumber","addVikingNumber","numberIndex","$statisticsComponentInnerWrapper","statisticsNumberWrapperHeight","numbersDOM","statisticsNumber","getNumbersFromStatistics","isRowValid","amountOfNumbersToGenerate","numbersPerRow","amountOfSpecialNumbersToGenerate","unselectedNumbers","unselectedSpecialNumbers","randomNumbers","randomSpecialNumbers","randomNumbersGenerator","limit","numbersArray","randomArray","randomNumber","MithrilFlipClock","JackpotInfo","componentElement","BackgroundMediaSetting","Url","BackgroundColor","backgroundColor","prefaceReplacedValue","titleReplacedValue","subTitleReplacedValue","shouldShowFallBack","flipClockSettings","FlipClockDeactivated","FlipClockEndDate","FlipClockStaticFlip","FlipClockColorLight","FlipClockLabelLight","FlipClockSizeSmall","FlipClockSizeDefault","FlipClockSizeLarge","FlipClockSizeExtraLarge","iconTagLine","preface","subtitle","checkIfTextHasError","rawValue","replacedValue","regex","exec","info","replaceDay","day","ShowFallBack","Preface","FlipClockEndDay","Title","Subtitle","PrefaceFallBack","TitleFallBack","SubtitleFallBack","splashDOM","Splash","ImageUrl","ImageTabletUrl","ImageMobileUrl","ReverseLeftToRight","PositionAbsolute","PositionFromTop","PositionFromLeft","fontSizeAndColorStyles","size","unit","color","desktopAndMobileStyles","desktopStyles","PrefaceDecoration","FontSize","FontColorHex","TitleDecoration","SubtitleDecoration","prefaceStyleMobile","PrefaceMobileDecoration","titleStyleMobile","TitleMobileDecoration","subtitleStyleMobile","SubtitleMobileDecoration","Manchete","EnableTopBorderFrame","EnableBottomBorderFrame","BackgroundImageMobileSource","media","BackgroundImageSource","BackgroundImageTabletSource","ReverseTopToBottom","IconSource","CallToAction","Text","Target","gotoKenoClosed","formatCurrency","formatNumber","formatISO8601","parseISO8601","getLongDate","KenoUtils","createCoupon","Message","localCacheTTL","unwrapSuccess","getCompletedDraws","getKenoSystemTables","systemTables","getKenoInfo","getRandomNumbers","getWinningNumbers","getCoupon","KenoApi","isFeedDown","openDraw","$kenoFeedData","getOpenDraw","getStakeOptions","stakeOptions","Value","getStakeDefault","IsDefault","getDrawRepeatOptions","drawRepeatOptions","getDrawRepeatDefault","default","getPrizeGroups","rowLength","prizes","prizeGroups","correctNumbers","winning","getChanceRatio","chanceRatio","Model","KenoInfo","DataLayer","KenoGame","classicMaxRows","numbersPerRowMin","numbersIntervalMax","numberOfDrawsOptions","rebuyCouponId","verticalType","drawDays","status","stakePerRow","numberOfNumbersPerRow","rowsToGenerate","systemLevel","startUrl","purchaseTracked","isProductDetailsTracked","isAddToCartTracked","isPurchaseCompleteTracked","plusSubscriptionJackpot","firstDepositInfo","rowCount","count","row","sortRow","autogenerated","addRow","removeRow","removeAllRows","resetRow","rowNumber","setRow","autogenerate","nextRow","requiredNumbers","generated","gameAutogenerate","setNumberOfDraws","setStakePerRow","stake","getSystemString","level","drawId","rowNumbers","getRowsSummary","multidraw","pricePerRow","salesChannel","system","sendToSubscription","trackingAddToCart","createDataLayerProduct","subscription","dataLayerProducts","product","getRowAmount","trackingProductDetails","trackingPurchaseComplete","getRows","minimumRowLength","calculateWinnings","prizeGroup","values","drawDateHtml","delimiter","closingTime","result","toISOString","includeTime","setDate","getDate","drawDateHtmlShort","firstDate","lastDate","draw","getMonth","getFullYear","futureDate","hasJoker","summary","trackPurchase","copyFromOldCoupon","multiWagers","games","systemNumbers","setupGame","gameInstanceId","ignoredHammerTime","currentValue","currentOptions","hasTouch","maximumLeft","minimumLeft","selectNumber","numbersAmount","numbersWidth","sliderBar","didPan","minLeft","maxLeft","offset","transition","moved","round","selectorStyle","persistent","expanded","wrapperHeight","hideOnMobile","expand","hide","noMobileVersion","Resize","Scroll","KenoDictionary","$bar","$top","getHeaderHeight","$header","getDaysStyle","dayListItemHeight","getStakeStyle","stakeListItemHeight","formatDraws","setDraws","sticky","barHeight","topTop","offsetTop","containerHeight","containerTop","parentWidth","pageYOffset","aboveViewport","belowViewport","relativeViewport","bottom","paddingBottom","containerEnd","scrollBottom","totalstake","back","chosenNumbers","rowNumbersAmount","currentRowNumbers","chosen","RowAutogenerate","suppe","toggleAutogenerate","RowNumber","dom","totalNumbers","createNumberConfig","activeClassName","touchClick","touchEnd","touchMove","touchTimer","numberCounter","percentage","classNames","currentNumbers","heading","svgIconName","viewBox","hasLastRow","maxRows","minimum","hasMoreRows","showCreate","showNext","rowsCount","notDeletable","deleteOverlay","deleteRow","numbersMinimum","numberCount","out","inner","LevelWinnings","validRows","winnings","winningNumbers","reverse","winningNumbersAmount","winningFactors","rightMarks","combinations","selectedIndex","changeNumber","numbersStyle","translateX","winningsStyle","$winningsInnerWrapper","rowsNumbersBlue","wrapper","clientHeight","$blueNumbers","$whiteNumbers","onmouseup","nextButtonClass","RowHeader","RowNumbersHeader","RowNumbers","rowIndex","currentRowNumber","rowsLength","rowsAmount","getElementHeight","rowInit","$errorBox","$headline","errorMessageBoxHeight","rowHeadlineHeight","rowTopPosition","rowsListTopPosition","$parent","itemsBox","rowsList","scrollDown","scrollUp","scrollTimeout","boxHeight","distance","includeYear","Navigation","RowsList","Row","clean","CollapsibleSection","systemTable","factorAmount","colspan","factor","indexI","combination","rightMarksKeys","indexJ","rightMark","trClass","factors","Countdown","getHours","getMinutes","setHours","setMinutes","setSeconds","getCountdownOptions","pushWeekToHash","dateFormating","completedDrawsDates","dateA","valueOf","selectDate","datePickerDays","formattedSelectedDate","selectedDrawDate","selectedDateYear","datePickerMonthOffset","datePickerMonth","datePickerYear","datePickerMonthName","monthName","numberOfDaysForCurrentMonth","numberOfDaysForPreviousMonth","firstDayIndex","getDay","numberOfDaysForNextMonth","startDayLimit","isFirstMonth","endDayLimit","isLastMonth","changeMonth","dayObj","dayNumber","dateFormattet","cssClass","daysFromPreviousMonth","daysFromCurrentMonth","daysFromNextMonth","numberOfDays","getWeekNumber","insertWeekNumbers","weekAndYear","getWeekAndYearFromHash","matchingDate","getMatchingDateFromWeekAndYear","week","checkHashForDate","isDatepickerOpened","isInactive","setWeekAndYearToHash","Params","StatisticsComponentForGameClient","Barometer","DeleteOverlay","Rows","PurchaseBar","RowWinnings","pageReload","confirmUrl","subscriptionsMode","KenoClassicClient","gameClosed","getSetting","ctaText","backgroundImageUrl","closingDate","errorOverlay","colorStyle","compact","regenerate","wrapperCssClasses","topManchete","bottomManchete","logoImageUrl","headerText","drawdate","gamestopdate","includeDate","gamestoptime","includeTimePrefix","SliderSelector","SystemTable","levels","rowClass","rowConfig","listenerOptions","once","onAnimationEnd","KenoSystemClient","Confirm","ConfirmBar","ReceiveWinnerMessage","returnToCompletedGamesOverviewLink","page","period","channel","askForDeposit","rebuyCouponNotFound","showPrizeNotificationSection","$rowsWrapperElement","confirmErrorOverlay","errorTexts","drawDate","receiptUrl","showError","createRowNumberString","texts","showExtraRows","rowsContainerHeight","gameStatusClass","startComputation","notifyPrizeEMail","endComputation","toggleCollapsible","currentTarget","gameDrawDates","CouponOverlay","couponOverlay","go","gotoCoupon","firstName","lastName","userName","userData","dateObject","countdownOptions","isCountdownDisabled","subscribeUserLoggedOut","SelectedIconString","DatePicker","onNumberDown","onNumberUp","dataset","selectedNumbers","numbersValue","stakes","stakesValue","winnerCategories","setings","completedDrawsDatesWithDrawNr","selectedDrawNr","obj","addedListeners","$numberElement","addEventListeners","isWinningNumbersReady","completedDraws","completedDrawsWithDrawNr","drawNo","winnerGroup","numbersPlayed","winners","prize","winnerCount","$panels","selectedOption","nodeList","attributeKey","attributeValue","$selectedContent","from","node","contentIsPanel","$selectedPanel","headline","infoText","no","prizeGroupMarkup","rowspan","ratio","NoOpenDraw","ignoredM","$video","setVideoState","readyState","_ref","footerElements","activate","footerElement","image","helpLink","currentUrl","mostVisitedList","mostVisitedLabel","onscroll","cave","scrollLeft","tutorial","safeTitle","urlPrefix","_ref2","isButtonVisible","updateSearchQuery","searchQuery","filteredTutorials","allTutorials","matchTutorialTitleWithSearchQuery","collapseCategories","textToSearch","richText","firstOpeningParagraphTagIndex","lastClosingParagraphTagIndex","lastIndexOf","searchableRichText","elements","firstOpeningDivTagIndex","lastClosingDivTagIndex","searchableText","every","word","xmlns","cx","cy","oninput","placeholder","searchBarPlaceholder","TutorialFooter","Searchbar","Hero","scrollTo","categories","headerImage","tutorials","titleCssStyle","relatedHelpText","frontpageHeroTitle","jointList","slideTutorials","avalonTutorials","richTextTutorials","tipsSystemTutorial","nullResultHelpText","searchResultNull","latestSearches","footerSettings","categoryClickHandler","showTutorialCategories","isFiltered","_tutorial$imageFilter","_tutorial$imageFilter2","_tutorial$image$Sourc2","_tutorial$image2","_tutorial$image$Sourc","_tutorial$image","saveToLocalStorage","Source","imageFiltered","getFromLocalStorage","currentLocalStorage","reduce","acc","storage","matchRelatedTutorialsWithFilteredTutorials","filtratedTutorialsCategories","filteredTutorial","getCategoryDOM","getTutorialDOM","onStepRendered","entry","_tutorial$image$Sourc3","_tutorial$image3","decodeURI","getTextWithHighligt","avalonContent","onRender","_this$tutorial$conten","_this$tutorial$conten2","contentWithoutComments","activateHeader","useFullWidth","activateFooter","TinySlider","safeTutorialName","heroTitle","heroText","elementsCount","slidepageRelatedHelpTitle","relatedHelpTutorials","heroImage","actionButton","activeSlide","showPrevArrow","showNextArrow","isSliderActive","desktopSlider","vimeoReady","vimeoPlayers","addPlayers","iframe","isPlaying","isInitialized","itemNumber","interval","setCurrentTime","slider","steps","footerHelpText","mobileVideo","allowFullScreen","desktopVideo","ModalDialog","consts","U","DESCRIPTION","GUARANTEE","KEY","freeze","systems","selectedSystem","selectedCombination","dropdownOpen","selectedTable","rSystemFolder","tipsSystems","uSystemFolder","showOverlay","popupHeader","popupText","popupImage","AlternameText","buttons","firstHeader","rSystemButtonText","uSystemButtonText","subButtonsText","secondHeader","combinationKey","TutorialFrontpage","TutorialSlidepage","TutorialSimplePage","TutorialAvalonPage","TutorialTipsSystemPage","ignoredRoute","ignoredProperty","rootctrl","footer","accumulator","finalText","openingTags","matchAll","closingTags","searchRegexPrep","searchRegex","indexOffset","closestPreviousOpeningTag","prev","current","component"],"mappings":"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","file":"region-keno.js","sourcesContent":["/* eslint-disable */\r\n\r\n// Documentation: https://github.com/ganlanyuan/tiny-slider\r\n\r\ndefineDs('Common/Framework/ScriptLibraries/Scripts/TinySlider', function () {\r\n \r\n return function () {\r\n var t = window;\r\n var Ai = t.requestAnimationFrame || t.webkitRequestAnimationFrame || t.mozRequestAnimationFrame || t.msRequestAnimationFrame || function (t) {\r\n return setTimeout(t, 16);\r\n };\r\n var e = window;\r\n var Ni = e.cancelAnimationFrame || e.mozCancelAnimationFrame || function (t) {\r\n clearTimeout(t);\r\n };\r\n\r\n function Li() {\r\n for (var t, e, n, i = arguments[0] || {}, a = 1, r = arguments.length; a < r; a++) if (null !== (t = arguments[a])) for (e in t) i !== (n = t[e]) && void 0 !== n && (i[e] = n);\r\n return i;\r\n }\r\n\r\n function Bi(t) {\r\n return 0 <= ['true', 'false'].indexOf(t) ? JSON.parse(t) : t;\r\n }\r\n\r\n function Si(t, e, n, i) {\r\n if (i) try {\r\n t.setItem(e, n);\r\n } catch (t) {\r\n }\r\n return n;\r\n }\r\n\r\n function Hi() {\r\n var t = document;\r\n var e = t.body;\r\n return e || ((e = t.createElement('body')).fake = !0), e;\r\n }\r\n\r\n var n = document.documentElement;\r\n\r\n function Oi(t) {\r\n var e = '';\r\n return t.fake && (e = n.style.overflow, t.style.background = '', t.style.overflow = n.style.overflow = 'hidden', n.appendChild(t)), e;\r\n }\r\n\r\n function Di(t, e) {\r\n t.fake && (t.remove(), n.style.overflow = e, n.offsetHeight);\r\n }\r\n\r\n function ki(t, e, n, i) {\r\n 'insertRule' in t ? t.insertRule(e + '{' + n + '}', i) : t.addRule(e, n, i);\r\n }\r\n\r\n function Ri(t) {\r\n return ('insertRule' in t ? t.cssRules : t.rules).length;\r\n }\r\n\r\n function Ii(t, e, n) {\r\n for (var i = 0, a = t.length; i < a; i++) e.call(n, t[i], i);\r\n }\r\n\r\n var i = 'classList' in document.createElement('_');\r\n var Pi = i ? function (t, e) {\r\n return t.classList.contains(e);\r\n } : function (t, e) {\r\n return 0 <= t.className.indexOf(e);\r\n };\r\n var zi = i ? function (t, e) {\r\n Pi(t, e) || t.classList.add(e);\r\n } : function (t, e) {\r\n Pi(t, e) || (t.className += ' ' + e);\r\n };\r\n var Wi = i ? function (t, e) {\r\n Pi(t, e) && t.classList.remove(e);\r\n } : function (t, e) {\r\n Pi(t, e) && (t.className = t.className.replace(e, ''));\r\n };\r\n\r\n function qi(t, e) {\r\n return t.hasAttribute(e);\r\n }\r\n\r\n function Fi(t, e) {\r\n return t.getAttribute(e);\r\n }\r\n\r\n function r(t) {\r\n return void 0 !== t.item;\r\n }\r\n\r\n function ji(t, e) {\r\n if (t = r(t) || t instanceof Array ? t : [t], '[object Object]' === Object.prototype.toString.call(e)) for (var n = t.length; n--;) for (var i in e) t[n].setAttribute(i, e[i]);\r\n }\r\n\r\n function Vi(t, e) {\r\n t = r(t) || t instanceof Array ? t : [t];\r\n for (var n = (e = e instanceof Array ? e : [e]).length, i = t.length; i--;) for (var a = n; a--;) t[i].removeAttribute(e[a]);\r\n }\r\n\r\n function Gi(t) {\r\n for (var e = [], n = 0, i = t.length; n < i; n++) e.push(t[n]);\r\n return e;\r\n }\r\n\r\n function Qi(t, e) {\r\n 'none' !== t.style.display && (t.style.display = 'none');\r\n }\r\n\r\n function Xi(t, e) {\r\n 'none' === t.style.display && (t.style.display = '');\r\n }\r\n\r\n function Yi(t) {\r\n return 'none' !== window.getComputedStyle(t).display;\r\n }\r\n\r\n function Ki(e) {\r\n if ('string' == typeof e) {\r\n var n = [e];\r\n var i = e.charAt(0).toUpperCase() + e.substr(1);\r\n ['Webkit', 'Moz', 'ms', 'O'].forEach(function (t) {\r\n 'ms' === t && 'transform' !== e || n.push(t + i);\r\n }), e = n;\r\n }\r\n for (var t = document.createElement('fakeelement'), a = (e.length, 0); a < e.length; a++) {\r\n var r = e[a];\r\n if (void 0 !== t.style[r]) return r;\r\n }\r\n return !1;\r\n }\r\n\r\n function Ji(t, e) {\r\n var n = !1;\r\n return /^Webkit/.test(t) ? n = 'webkit' + e + 'End' : /^O/.test(t) ? n = 'o' + e + 'End' : t && (n = e.toLowerCase() + 'end'), n;\r\n }\r\n\r\n var a = !1;\r\n try {\r\n var o = Object.defineProperty({}, 'passive', {\r\n get: function () {\r\n a = !0;\r\n }\r\n });\r\n window.addEventListener('test', null, o);\r\n } catch (t) {\r\n }\r\n var u = !!a && {passive: !0};\r\n\r\n function Ui(t, e, n) {\r\n for (var i in e) {\r\n var a = 0 <= ['touchstart', 'touchmove'].indexOf(i) && !n && u;\r\n t.addEventListener(i, e[i], a);\r\n }\r\n }\r\n\r\n function _i(t, e) {\r\n for (var n in e) {\r\n var i = 0 <= ['touchstart', 'touchmove'].indexOf(n) && u;\r\n t.removeEventListener(n, e[n], i);\r\n }\r\n }\r\n\r\n function Zi() {\r\n return {\r\n topics: {}, on: function (t, e) {\r\n this.topics[t] = this.topics[t] || [], this.topics[t].push(e);\r\n }, off: function (t, e) {\r\n if (this.topics[t]) for (var n = 0; n < this.topics[t].length; n++) if (this.topics[t][n] === e) {\r\n this.topics[t].splice(n, 1);\r\n break;\r\n }\r\n }, emit: function (e, n) {\r\n n.type = e, this.topics[e] && this.topics[e].forEach(function (t) {\r\n t(n, e);\r\n });\r\n }\r\n };\r\n }\r\n\r\n Object.keys || (Object.keys = function (t) {\r\n var e = [];\r\n for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && e.push(n);\r\n return e;\r\n }), 'remove' in Element.prototype || (Element.prototype.remove = function () {\r\n this.parentNode && this.parentNode.removeChild(this);\r\n });\r\n var $i = function (H) {\r\n H = Li({\r\n container: '.slider',\r\n mode: 'carousel',\r\n axis: 'horizontal',\r\n items: 1,\r\n gutter: 0,\r\n edgePadding: 0,\r\n fixedWidth: !1,\r\n autoWidth: !1,\r\n viewportMax: !1,\r\n slideBy: 1,\r\n center: !1,\r\n controls: !0,\r\n controlsPosition: 'top',\r\n controlsText: ['prev', 'next'],\r\n controlsContainer: !1,\r\n prevButton: !1,\r\n nextButton: !1,\r\n nav: !0,\r\n navPosition: 'top',\r\n navContainer: !1,\r\n navAsThumbnails: !1,\r\n arrowKeys: !1,\r\n speed: 300,\r\n autoplay: !1,\r\n autoplayPosition: 'top',\r\n autoplayTimeout: 5e3,\r\n autoplayDirection: 'forward',\r\n autoplayText: ['start', 'stop'],\r\n autoplayHoverPause: !1,\r\n autoplayButton: !1,\r\n autoplayButtonOutput: !0,\r\n autoplayResetOnVisibility: !0,\r\n animateIn: 'tns-fadeIn',\r\n animateOut: 'tns-fadeOut',\r\n animateNormal: 'tns-normal',\r\n animateDelay: !1,\r\n loop: !0,\r\n rewind: !1,\r\n autoHeight: !1,\r\n responsive: !1,\r\n lazyload: !1,\r\n lazyloadSelector: '.tns-lazy-img',\r\n touch: !0,\r\n mouseDrag: !1,\r\n swipeAngle: 15,\r\n nested: !1,\r\n preventActionWhenRunning: !1,\r\n preventScrollOnTouch: !1,\r\n freezable: !0,\r\n onInit: !1,\r\n useLocalStorage: !0,\r\n nonce: !1\r\n }, H || {});\r\n var O = document;\r\n var m = window;\r\n var a = {ENTER: 13, SPACE: 32, LEFT: 37, RIGHT: 39};\r\n var e = {};\r\n var n = H.useLocalStorage;\r\n if (n) {\r\n var t = navigator.userAgent;\r\n var i = new Date;\r\n try {\r\n (e = m.localStorage) ? (e.setItem(i, i), n = e.getItem(i) == i, e.removeItem(i)) : n = !1, n || (e = {});\r\n } catch (t) {\r\n n = !1;\r\n }\r\n n && (e.tnsApp && e.tnsApp !== t && ['tC', 'tPL', 'tMQ', 'tTf', 't3D', 'tTDu', 'tTDe', 'tADu', 'tADe', 'tTE', 'tAE'].forEach(function (t) {\r\n e.removeItem(t);\r\n }), localStorage.tnsApp = t);\r\n }\r\n var y = e.tC ? Bi(e.tC) : Si(e, 'tC', function () {\r\n var t = document;\r\n var e = Hi();\r\n var n = Oi(e);\r\n var i = t.createElement('div');\r\n var a = !1;\r\n e.appendChild(i);\r\n try {\r\n for (var r, o = '(10px * 10)', u = ['calc' + o, '-moz-calc' + o, '-webkit-calc' + o], l = 0; l < 3; l++) if (r = u[l], i.style.width = r, 100 === i.offsetWidth) {\r\n a = r.replace(o, '');\r\n break;\r\n }\r\n } catch (t) {\r\n }\r\n return e.fake ? Di(e, n) : i.remove(), a;\r\n }(), n);\r\n var g = e.tPL ? Bi(e.tPL) : Si(e, 'tPL', function () {\r\n var t;\r\n var e = document;\r\n var n = Hi();\r\n var i = Oi(n);\r\n var a = e.createElement('div');\r\n var r = e.createElement('div');\r\n var o = '';\r\n a.className = 'tns-t-subp2', r.className = 'tns-t-ct';\r\n for (var u = 0; u < 70; u++) o += '
';\r\n return r.innerHTML = o, a.appendChild(r), n.appendChild(a), t = Math.abs(a.getBoundingClientRect().left - r.children[67].getBoundingClientRect().left) < 2, n.fake ? Di(n, i) : a.remove(), t;\r\n }(), n);\r\n var D = e.tMQ ? Bi(e.tMQ) : Si(e, 'tMQ', function () {\r\n if (window.matchMedia || window.msMatchMedia) return !0;\r\n var t;\r\n var e = document;\r\n var n = Hi();\r\n var i = Oi(n);\r\n var a = e.createElement('div');\r\n var r = e.createElement('style');\r\n var o = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}';\r\n return r.type = 'text/css', a.className = 'tns-mq-test', n.appendChild(r), n.appendChild(a), r.styleSheet ? r.styleSheet.cssText = o : r.appendChild(e.createTextNode(o)), t = window.getComputedStyle ? window.getComputedStyle(a).position : a.currentStyle.position, n.fake ? Di(n, i) : a.remove(), 'absolute' === t;\r\n }(), n);\r\n var r = e.tTf ? Bi(e.tTf) : Si(e, 'tTf', Ki('transform'), n);\r\n var o = e.t3D ? Bi(e.t3D) : Si(e, 't3D', function (t) {\r\n if (!t) return !1;\r\n if (!window.getComputedStyle) return !1;\r\n var e;\r\n var n = document;\r\n var i = Hi();\r\n var a = Oi(i);\r\n var r = n.createElement('p');\r\n var o = 9 < t.length ? '-' + t.slice(0, -9).toLowerCase() + '-' : '';\r\n return o += 'transform', i.insertBefore(r, null), r.style[t] = 'translate3d(1px,1px,1px)', e = window.getComputedStyle(r).getPropertyValue(o), i.fake ? Di(i, a) : r.remove(), void 0 !== e && 0 < e.length && 'none' !== e;\r\n }(r), n);\r\n var x = e.tTDu ? Bi(e.tTDu) : Si(e, 'tTDu', Ki('transitionDuration'), n);\r\n var u = e.tTDe ? Bi(e.tTDe) : Si(e, 'tTDe', Ki('transitionDelay'), n);\r\n var b = e.tADu ? Bi(e.tADu) : Si(e, 'tADu', Ki('animationDuration'), n);\r\n var l = e.tADe ? Bi(e.tADe) : Si(e, 'tADe', Ki('animationDelay'), n);\r\n var s = e.tTE ? Bi(e.tTE) : Si(e, 'tTE', Ji(x, 'Transition'), n);\r\n var c = e.tAE ? Bi(e.tAE) : Si(e, 'tAE', Ji(b, 'Animation'), n);\r\n var f = m.console && 'function' == typeof m.console.warn;\r\n var d = ['container', 'controlsContainer', 'prevButton', 'nextButton', 'navContainer', 'autoplayButton'];\r\n var v = {};\r\n if (d.forEach(function (t) {\r\n if ('string' == typeof H[t]) {\r\n var e = H[t];\r\n var n = O.querySelector(e);\r\n if (v[t] = e, !n || !n.nodeName) return void (f && console.warn('Can\\'t find', H[t]));\r\n H[t] = n;\r\n }\r\n }), !(H.container.children.length < 1)) {\r\n var k = H.responsive;\r\n var R = H.nested;\r\n var I = 'carousel' === H.mode;\r\n if (k) {\r\n 0 in k && (H = Li(H, k[0]), delete k[0]);\r\n var p = {};\r\n for (var h in k) {\r\n var w = k[h];\r\n w = 'number' == typeof w ? {items: w} : w, p[h] = w;\r\n }\r\n k = p, p = null;\r\n }\r\n if (I || function t(e) {\r\n for (var n in e) I || ('slideBy' === n && (e[n] = 'page'), 'edgePadding' === n && (e[n] = !1), 'autoHeight' === n && (e[n] = !1)), 'responsive' === n && t(e[n]);\r\n }(H), !I) {\r\n H.axis = 'horizontal', H.slideBy = 'page', H.edgePadding = !1;\r\n var P = H.animateIn;\r\n var z = H.animateOut;\r\n var C = H.animateDelay;\r\n var W = H.animateNormal;\r\n }\r\n var M;\r\n var q;\r\n var F = 'horizontal' === H.axis;\r\n var T = O.createElement('div');\r\n var j = O.createElement('div');\r\n var V = H.container;\r\n var E = V.parentNode;\r\n var A = V.outerHTML;\r\n var G = V.children;\r\n var Q = G.length;\r\n var X = rn();\r\n var Y = !1;\r\n k && En(), I && (V.className += ' tns-vpfix');\r\n var N;\r\n var L;\r\n var B;\r\n var S;\r\n var K;\r\n var J;\r\n var U;\r\n var _;\r\n var Z;\r\n var $ = H.autoWidth;\r\n var tt = sn('fixedWidth');\r\n var et = sn('edgePadding');\r\n var nt = sn('gutter');\r\n var it = un();\r\n var at = sn('center');\r\n var rt = $ ? 1 : Math.floor(sn('items'));\r\n var ot = sn('slideBy');\r\n var ut = H.viewportMax || H.fixedWidthViewportWidth;\r\n var lt = sn('arrowKeys');\r\n var st = sn('speed');\r\n var ct = H.rewind;\r\n var ft = !ct && H.loop;\r\n var dt = sn('autoHeight');\r\n var vt = sn('controls');\r\n var pt = sn('controlsText');\r\n var ht = sn('nav');\r\n var mt = sn('touch');\r\n var yt = sn('mouseDrag');\r\n var gt = sn('autoplay');\r\n var xt = sn('autoplayTimeout');\r\n var bt = sn('autoplayText');\r\n var wt = sn('autoplayHoverPause');\r\n var Ct = sn('autoplayResetOnVisibility');\r\n var Mt = (U = null, _ = sn('nonce'), Z = document.createElement('style'), U && Z.setAttribute('media', U), _ && Z.setAttribute('nonce', _), document.querySelector('head').appendChild(Z), Z.sheet ? Z.sheet : Z.styleSheet);\r\n var Tt = H.lazyload;\r\n var Et = H.lazyloadSelector;\r\n var At = [];\r\n var Nt = ft ? (K = function () {\r\n {\r\n if ($ || tt && !ut) return Q - 1;\r\n var t = tt ? 'fixedWidth' : 'items';\r\n var e = [];\r\n if ((tt || H[t] < Q) && e.push(H[t]), k) for (var n in k) {\r\n var i = k[n][t];\r\n i && (tt || i < Q) && e.push(i);\r\n }\r\n return e.length || e.push(0), Math.ceil(tt ? ut / Math.min.apply(null, e) : Math.max.apply(null, e));\r\n }\r\n }(), J = I ? Math.ceil((5 * K - Q) / 2) : 4 * K - Q, J = Math.max(K, J), ln('edgePadding') ? J + 1 : J) : 0;\r\n var Lt = I ? Q + 2 * Nt : Q + Nt;\r\n var Bt = !(!tt && !$ || ft);\r\n var St = tt ? _n() : null;\r\n var Ht = !I || !ft;\r\n var Ot = F ? 'left' : 'top';\r\n var Dt = '';\r\n var kt = '';\r\n var Rt = tt ? function () {\r\n return at && !ft ? Q - 1 : Math.ceil(-St / (tt + nt));\r\n } : $ ? function () {\r\n for (var t = 0; t < Lt; t++) if (N[t] >= -St) return t;\r\n } : function () {\r\n return at && I && !ft ? Q - 1 : ft || I ? Math.max(0, Lt - Math.ceil(rt)) : Lt - 1;\r\n };\r\n var It = en(sn('startIndex'));\r\n var Pt = It;\r\n var zt = (tn(), 0);\r\n var Wt = $ ? null : Rt();\r\n var qt = H.preventActionWhenRunning;\r\n var Ft = H.swipeAngle;\r\n var jt = !Ft || '?';\r\n var Vt = !1;\r\n var Gt = H.onInit;\r\n var Qt = new Zi;\r\n var Xt = ' tns-slider tns-' + H.mode;\r\n var Yt = V.id || (S = window.tnsId, window.tnsId = S ? S + 1 : 1, 'tns' + window.tnsId);\r\n var Kt = sn('disable');\r\n var Jt = !1;\r\n var Ut = H.freezable;\r\n var _t = !(!Ut || $) && Tn();\r\n var Zt = !1;\r\n var $t = {\r\n click: oi, keydown: function (t) {\r\n t = pi(t);\r\n var e = [a.LEFT, a.RIGHT].indexOf(t.keyCode);\r\n 0 <= e && (0 === e ? we.disabled || oi(t, -1) : Ce.disabled || oi(t, 1));\r\n }\r\n };\r\n var te = {\r\n click: function (t) {\r\n if (Vt) {\r\n if (qt) return;\r\n ai();\r\n }\r\n var e = hi(t = pi(t));\r\n for (; e !== Ae && !qi(e, 'data-nav');) e = e.parentNode;\r\n if (qi(e, 'data-nav')) {\r\n var n = Se = Number(Fi(e, 'data-nav'));\r\n var i = tt || $ ? n * Q / Le : n * rt;\r\n var a = le ? n : Math.min(Math.ceil(i), Q - 1);\r\n ri(a, t), He === n && (Pe && fi(), Se = -1);\r\n }\r\n }, keydown: function (t) {\r\n t = pi(t);\r\n var e = O.activeElement;\r\n if (!qi(e, 'data-nav')) return;\r\n var n = [a.LEFT, a.RIGHT, a.ENTER, a.SPACE].indexOf(t.keyCode);\r\n var i = Number(Fi(e, 'data-nav'));\r\n 0 <= n && (0 === n ? 0 < i && vi(Ee[i - 1]) : 1 === n ? i < Le - 1 && vi(Ee[i + 1]) : ri(Se = i, t));\r\n }\r\n };\r\n var ee = {\r\n mouseover: function () {\r\n Pe && (li(), ze = !0);\r\n }, mouseout: function () {\r\n ze && (ui(), ze = !1);\r\n }\r\n };\r\n var ne = {\r\n visibilitychange: function () {\r\n O.hidden ? Pe && (li(), qe = !0) : qe && (ui(), qe = !1);\r\n }\r\n };\r\n var ie = {\r\n keydown: function (t) {\r\n t = pi(t);\r\n var e = [a.LEFT, a.RIGHT].indexOf(t.keyCode);\r\n 0 <= e && oi(t, 0 === e ? -1 : 1);\r\n }\r\n };\r\n var ae = {touchstart: xi, touchmove: bi, touchend: wi, touchcancel: wi};\r\n var re = {mousedown: xi, mousemove: bi, mouseup: wi, mouseleave: wi};\r\n var oe = ln('controls');\r\n var ue = ln('nav');\r\n var le = !!$ || H.navAsThumbnails;\r\n var se = ln('autoplay');\r\n var ce = ln('touch');\r\n var fe = ln('mouseDrag');\r\n var de = 'tns-slide-active';\r\n var ve = 'tns-slide-cloned';\r\n var pe = 'tns-complete';\r\n var he = {\r\n load: function (t) {\r\n kn(hi(t));\r\n }, error: function (t) {\r\n e = hi(t), zi(e, 'failed'), Rn(e);\r\n var e;\r\n }\r\n };\r\n var me = 'force' === H.preventScrollOnTouch;\r\n if (oe) var ye;\r\n var ge;\r\n var xe = H.controlsContainer;\r\n var be = H.controlsContainer ? H.controlsContainer.outerHTML : '';\r\n var we = H.prevButton;\r\n var Ce = H.nextButton;\r\n var Me = H.prevButton ? H.prevButton.outerHTML : '';\r\n var Te = H.nextButton ? H.nextButton.outerHTML : '';\r\n if (ue) var Ee;\r\n var Ae = H.navContainer;\r\n var Ne = H.navContainer ? H.navContainer.outerHTML : '';\r\n var Le = $ ? Q : Mi();\r\n var Be = 0;\r\n var Se = -1;\r\n var He = an();\r\n var Oe = He;\r\n var De = 'tns-nav-active';\r\n var ke = 'Carousel Page ';\r\n var Re = ' (Current Slide)';\r\n if (se) var Ie;\r\n var Pe;\r\n var ze;\r\n var We;\r\n var qe;\r\n var Fe = 'forward' === H.autoplayDirection ? 1 : -1;\r\n var je = H.autoplayButton;\r\n var Ve = H.autoplayButton ? H.autoplayButton.outerHTML : '';\r\n var Ge = ['', ' animation'];\r\n if (ce || fe) var Qe;\r\n var Xe;\r\n var Ye = {};\r\n var Ke = {};\r\n var Je = !1;\r\n var Ue = F ? function (t, e) {\r\n return t.x - e.x;\r\n } : function (t, e) {\r\n return t.y - e.y;\r\n };\r\n $ || $e(Kt || _t), r && (Ot = r, Dt = 'translate', o ? (Dt += F ? '3d(' : '3d(0px, ', kt = F ? ', 0px, 0px)' : ', 0px)') : (Dt += F ? 'X(' : 'Y(', kt = ')')), I && (V.className = V.className.replace('tns-vpfix', '')), function () {\r\n ln('gutter');\r\n T.className = 'tns-outer', j.className = 'tns-inner', T.id = Yt + '-ow', j.id = Yt + '-iw', '' === V.id && (V.id = Yt);\r\n Xt += g || $ ? ' tns-subpixel' : ' tns-no-subpixel', Xt += y ? ' tns-calc' : ' tns-no-calc', $ && (Xt += ' tns-autowidth');\r\n Xt += ' tns-' + H.axis, V.className += Xt, I ? ((M = O.createElement('div')).id = Yt + '-mw', M.className = 'tns-ovh', T.appendChild(M), M.appendChild(j)) : T.appendChild(j);\r\n if (dt) {\r\n var t = M || j;\r\n t.className += ' tns-ah';\r\n }\r\n if (E.insertBefore(T, V), j.appendChild(V), Ii(G, function (t, e) {\r\n zi(t, 'tns-item'), t.id || (t.id = Yt + '-item' + e), !I && W && zi(t, W), ji(t, {\r\n 'aria-hidden': 'true',\r\n tabindex: '-1'\r\n });\r\n }), Nt) {\r\n for (var e = O.createDocumentFragment(), n = O.createDocumentFragment(), i = Nt; i--;) {\r\n var a = i % Q;\r\n var r = G[a].cloneNode(!0);\r\n if (zi(r, ve), Vi(r, 'id'), n.insertBefore(r, n.firstChild), I) {\r\n var o = G[Q - 1 - a].cloneNode(!0);\r\n zi(o, ve), Vi(o, 'id'), e.appendChild(o);\r\n }\r\n }\r\n V.insertBefore(e, V.firstChild), V.appendChild(n), G = V.children;\r\n }\r\n }(), function () {\r\n if (!I) for (var t = It, e = It + Math.min(Q, rt); t < e; t++) {\r\n var n = G[t];\r\n n.style.left = 100 * (t - It) / rt + '%', zi(n, P), Wi(n, W);\r\n }\r\n F && (g || $ ? (ki(Mt, '#' + Yt + ' > .tns-item', 'font-size:' + m.getComputedStyle(G[0]).fontSize + ';', Ri(Mt)), ki(Mt, '#' + Yt, 'font-size:0;', Ri(Mt))) : I && Ii(G, function (t, e) {\r\n var n;\r\n t.style.marginLeft = (n = e, y ? y + '(' + 100 * n + '% / ' + Lt + ')' : 100 * n / Lt + '%');\r\n }));\r\n if (D) {\r\n if (x) {\r\n var i = M && H.autoHeight ? hn(H.speed) : '';\r\n ki(Mt, '#' + Yt + '-mw', i, Ri(Mt));\r\n }\r\n i = cn(H.edgePadding, H.gutter, H.fixedWidth, H.speed, H.autoHeight), ki(Mt, '#' + Yt + '-iw', i, Ri(Mt)), I && (i = F && !$ ? 'width:' + fn(H.fixedWidth, H.gutter, H.items) + ';' : '', x && (i += hn(st)), ki(Mt, '#' + Yt, i, Ri(Mt))), i = F && !$ ? dn(H.fixedWidth, H.gutter, H.items) : '', H.gutter && (i += vn(H.gutter)), I || (x && (i += hn(st)), b && (i += mn(st))), i && ki(Mt, '#' + Yt + ' > .tns-item', i, Ri(Mt));\r\n } else {\r\n I && dt && (M.style[x] = st / 1e3 + 's'), j.style.cssText = cn(et, nt, tt, dt), I && F && !$ && (V.style.width = fn(tt, nt, rt));\r\n var i = F && !$ ? dn(tt, nt, rt) : '';\r\n nt && (i += vn(nt)), i && ki(Mt, '#' + Yt + ' > .tns-item', i, Ri(Mt));\r\n }\r\n if (k && D) for (var a in k) {\r\n a = parseInt(a);\r\n var r = k[a];\r\n var i = '';\r\n var o = '';\r\n var u = '';\r\n var l = '';\r\n var s = '';\r\n var c = $ ? null : sn('items', a);\r\n var f = sn('fixedWidth', a);\r\n var d = sn('speed', a);\r\n var v = sn('edgePadding', a);\r\n var p = sn('autoHeight', a);\r\n var h = sn('gutter', a);\r\n x && M && sn('autoHeight', a) && 'speed' in r && (o = '#' + Yt + '-mw{' + hn(d) + '}'), ('edgePadding' in r || 'gutter' in r) && (u = '#' + Yt + '-iw{' + cn(v, h, f, d, p) + '}'), I && F && !$ && ('fixedWidth' in r || 'items' in r || tt && 'gutter' in r) && (l = 'width:' + fn(f, h, c) + ';'), x && 'speed' in r && (l += hn(d)), l && (l = '#' + Yt + '{' + l + '}'), ('fixedWidth' in r || tt && 'gutter' in r || !I && 'items' in r) && (s += dn(f, h, c)), 'gutter' in r && (s += vn(h)), !I && 'speed' in r && (x && (s += hn(d)), b && (s += mn(d))), s && (s = '#' + Yt + ' > .tns-item{' + s + '}'), (i = o + u + l + s) && Mt.insertRule('@media (min-width: ' + a / 16 + 'em) {' + i + '}', Mt.cssRules.length);\r\n }\r\n }(), yn();\r\n var _e = ft ? I ? function () {\r\n var t = zt;\r\n var e = Wt;\r\n t += ot, e -= ot, et ? (t += 1, e -= 1) : tt && (it + nt) % (tt + nt) && (e -= 1), Nt && (e < It ? It -= Q : It < t && (It += Q));\r\n } : function () {\r\n if (Wt < It) for (; zt + Q <= It;) It -= Q; else if (It < zt) for (; It <= Wt - Q;) It += Q;\r\n } : function () {\r\n It = Math.max(zt, Math.min(Wt, It));\r\n };\r\n var Ze = I ? function () {\r\n var e;\r\n var n;\r\n var i;\r\n var a;\r\n var t;\r\n var r;\r\n var o;\r\n var u;\r\n var l;\r\n var s;\r\n var c;\r\n Jn(V, ''), x || !st ? (ti(), st && Yi(V) || ai()) : (e = V, n = Ot, i = Dt, a = kt, t = Zn(), r = st, o = ai, u = Math.min(r, 10), l = 0 <= t.indexOf('%') ? '%' : 'px', t = t.replace(l, ''), s = Number(e.style[n].replace(i, '').replace(a, '').replace(l, '')), c = (t - s) / r * u, setTimeout(function t() {\r\n r -= u, s += c, e.style[n] = i + s + l + a, 0 < r ? setTimeout(t, u) : o();\r\n }, u)), F || Ci();\r\n } : function () {\r\n At = [];\r\n var t = {};\r\n t[s] = t[c] = ai, _i(G[Pt], t), Ui(G[It], t), ei(Pt, P, z, !0), ei(It, W, P), s && c && st && Yi(V) || ai();\r\n };\r\n return {\r\n version: '2.9.3', getInfo: Ei, events: Qt, goTo: ri, play: function () {\r\n gt && !Pe && (ci(), We = !1);\r\n }, pause: function () {\r\n Pe && (fi(), We = !0);\r\n }, isOn: Y, updateSliderHeight: Fn, refresh: yn, destroy: function () {\r\n if (Mt.disabled = !0, Mt.ownerNode && Mt.ownerNode.remove(), _i(m, {resize: Cn}), lt && _i(O, ie), xe && _i(xe, $t), Ae && _i(Ae, te), _i(V, ee), _i(V, ne), je && _i(je, {click: di}), gt && clearInterval(Ie), I && s) {\r\n var t = {};\r\n t[s] = ai, _i(V, t);\r\n }\r\n mt && _i(V, ae), yt && _i(V, re);\r\n var r = [A, be, Me, Te, Ne, Ve];\r\n for (var e in d.forEach(function (t, e) {\r\n var n = 'container' === t ? T : H[t];\r\n if ('object' == typeof n && n) {\r\n var i = !!n.previousElementSibling && n.previousElementSibling;\r\n var a = n.parentNode;\r\n n.outerHTML = r[e], H[t] = i ? i.nextElementSibling : a.firstElementChild;\r\n }\r\n }), d = P = z = C = W = F = T = j = V = E = A = G = Q = q = X = $ = tt = et = nt = it = rt = ot = ut = lt = st = ct = ft = dt = Mt = Tt = N = At = Nt = Lt = Bt = St = Ht = Ot = Dt = kt = Rt = It = Pt = zt = Wt = Ft = jt = Vt = Gt = Qt = Xt = Yt = Kt = Jt = Ut = _t = Zt = $t = te = ee = ne = ie = ae = re = oe = ue = le = se = ce = fe = de = pe = he = L = vt = pt = xe = be = we = Ce = ye = ge = ht = Ae = Ne = Ee = Le = Be = Se = He = Oe = De = ke = Re = gt = xt = Fe = bt = wt = je = Ve = Ct = Ge = Ie = Pe = ze = We = qe = Ye = Ke = Qe = Je = Xe = Ue = mt = yt = null, this) 'rebuild' !== e && (this[e] = null);\r\n Y = !1;\r\n }, rebuild: function () {\r\n return $i(Li(H, v));\r\n }\r\n };\r\n }\r\n\r\n function $e(t) {\r\n t && (vt = ht = mt = yt = lt = gt = wt = Ct = !1);\r\n }\r\n\r\n function tn() {\r\n for (var t = I ? It - Nt : It; t < 0;) t += Q;\r\n return t % Q + 1;\r\n }\r\n\r\n function en(t) {\r\n return t = t ? Math.max(0, Math.min(ft ? Q - 1 : Q - rt, t)) : 0, I ? t + Nt : t;\r\n }\r\n\r\n function nn(t) {\r\n for (null == t && (t = It), I && (t -= Nt); t < 0;) t += Q;\r\n return Math.floor(t % Q);\r\n }\r\n\r\n function an() {\r\n var t;\r\n var e = nn();\r\n return t = le ? e : tt || $ ? Math.ceil((e + 1) * Le / Q - 1) : Math.floor(e / rt), !ft && I && It === Wt && (t = Le - 1), t;\r\n }\r\n\r\n function rn() {\r\n return m.innerWidth || O.documentElement.clientWidth || O.body.clientWidth;\r\n }\r\n\r\n function on(t) {\r\n return 'top' === t ? 'afterbegin' : 'beforeend';\r\n }\r\n\r\n function un() {\r\n var t = et ? 2 * et - nt : 0;\r\n return function t(e) {\r\n if (null != e) {\r\n var n;\r\n var i;\r\n var a = O.createElement('div');\r\n return e.appendChild(a), i = (n = a.getBoundingClientRect()).right - n.left, a.remove(), i || t(e.parentNode);\r\n }\r\n }(E) - t;\r\n }\r\n\r\n function ln(t) {\r\n if (H[t]) return !0;\r\n if (k) for (var e in k) if (k[e][t]) return !0;\r\n return !1;\r\n }\r\n\r\n function sn(t, e) {\r\n if (null == e && (e = X), 'items' === t && tt) return Math.floor((it + nt) / (tt + nt)) || 1;\r\n var n = H[t];\r\n if (k) for (var i in k) e >= parseInt(i) && t in k[i] && (n = k[i][t]);\r\n return 'slideBy' === t && 'page' === n && (n = sn('items')), I || 'slideBy' !== t && 'items' !== t || (n = Math.floor(n)), n;\r\n }\r\n\r\n function cn(t, e, n, i, a) {\r\n var r = '';\r\n if (void 0 !== t) {\r\n var o = t;\r\n e && (o -= e), r = F ? 'margin: 0 ' + o + 'px 0 ' + t + 'px;' : 'margin: ' + t + 'px 0 ' + o + 'px 0;';\r\n } else if (e && !n) {\r\n var u = '-' + e + 'px';\r\n r = 'margin: 0 ' + (F ? u + ' 0 0' : '0 ' + u + ' 0') + ';';\r\n }\r\n return !I && a && x && i && (r += hn(i)), r;\r\n }\r\n\r\n function fn(t, e, n) {\r\n return t ? (t + e) * Lt + 'px' : y ? y + '(' + 100 * Lt + '% / ' + n + ')' : 100 * Lt / n + '%';\r\n }\r\n\r\n function dn(t, e, n) {\r\n var i;\r\n if (t) i = t + e + 'px'; else {\r\n I || (n = Math.floor(n));\r\n var a = I ? Lt : n;\r\n i = y ? y + '(100% / ' + a + ')' : 100 / a + '%';\r\n }\r\n return i = 'width:' + i, 'inner' !== R ? i + ';' : i + ' !important;';\r\n }\r\n\r\n function vn(t) {\r\n var e = '';\r\n !1 !== t && (e = (F ? 'padding-' : 'margin-') + (F ? 'right' : 'bottom') + ': ' + t + 'px;');\r\n return e;\r\n }\r\n\r\n function pn(t, e) {\r\n var n = t.substring(0, t.length - e).toLowerCase();\r\n return n && (n = '-' + n + '-'), n;\r\n }\r\n\r\n function hn(t) {\r\n return pn(x, 18) + 'transition-duration:' + t / 1e3 + 's;';\r\n }\r\n\r\n function mn(t) {\r\n return pn(b, 17) + 'animation-duration:' + t / 1e3 + 's;';\r\n }\r\n\r\n function yn() {\r\n if (ln('autoHeight') || $ || !F) {\r\n var t = V.querySelectorAll('img');\r\n Ii(t, function (t) {\r\n var e = t.src;\r\n Tt || (e && e.indexOf('data:image') < 0 ? (t.src = '', Ui(t, he), zi(t, 'loading'), t.src = e) : kn(t));\r\n }), Ai(function () {\r\n zn(Gi(t), function () {\r\n L = !0;\r\n });\r\n }), ln('autoHeight') && (t = In(It, Math.min(It + rt - 1, Lt - 1))), Tt ? gn() : Ai(function () {\r\n zn(Gi(t), gn);\r\n });\r\n } else I && $n(), bn(), wn();\r\n }\r\n\r\n function gn() {\r\n if ($ && 1 < Q) {\r\n var i = ft ? It : Q - 1;\r\n !function t() {\r\n var e = G[i].getBoundingClientRect().left;\r\n var n = G[i - 1].getBoundingClientRect().right;\r\n Math.abs(e - n) <= 1 ? xn() : setTimeout(function () {\r\n t();\r\n }, 16);\r\n }();\r\n } else xn();\r\n }\r\n\r\n function xn() {\r\n F && !$ || (jn(), $ ? (St = _n(), Ut && (_t = Tn()), Wt = Rt(), $e(Kt || _t)) : Ci()), I && $n(), bn(), wn();\r\n }\r\n\r\n function bn() {\r\n if (Vn(), T.insertAdjacentHTML('afterbegin', '
slide ' + Hn() + ' of ' + Q + '
'), B = T.querySelector('.tns-liveregion .current'), se) {\r\n var t = gt ? 'stop' : 'start';\r\n je ? ji(je, {'data-action': t}) : H.autoplayButtonOutput && (T.insertAdjacentHTML(on(H.autoplayPosition), ''), je = T.querySelector('[data-action]')), je && Ui(je, {click: di}), gt && (ci(), wt && Ui(V, ee), Ct && Ui(V, ne));\r\n }\r\n if (ue) {\r\n if (Ae) ji(Ae, {'aria-label': 'Carousel Pagination'}), Ii(Ee = Ae.children, function (t, e) {\r\n ji(t, {'data-nav': e, tabindex: '-1', 'aria-label': ke + (e + 1), 'aria-controls': Yt});\r\n }); else {\r\n for (var e = '', n = le ? '' : 'style=\"display:none\"', i = 0; i < Q; i++) e += '';\r\n e = '
' + e + '
', T.insertAdjacentHTML(on(H.navPosition), e), Ae = T.querySelector('.tns-nav'), Ee = Ae.children;\r\n }\r\n if (Ti(), x) {\r\n var a = x.substring(0, x.length - 18).toLowerCase();\r\n var r = 'transition: all ' + st / 1e3 + 's';\r\n a && (r = '-' + a + '-' + r), ki(Mt, '[aria-controls^=' + Yt + '-item]', r, Ri(Mt));\r\n }\r\n ji(Ee[He], {'aria-label': ke + (He + 1) + Re}), Vi(Ee[He], 'tabindex'), zi(Ee[He], De), Ui(Ae, te);\r\n }\r\n oe && (xe || we && Ce || (T.insertAdjacentHTML(on(H.controlsPosition), '
'), xe = T.querySelector('.tns-controls')), we && Ce || (we = xe.children[0], Ce = xe.children[1]), H.controlsContainer && ji(xe, {\r\n 'aria-label': 'Carousel Navigation',\r\n tabindex: '0'\r\n }), (H.controlsContainer || H.prevButton && H.nextButton) && ji([we, Ce], {\r\n 'aria-controls': Yt,\r\n tabindex: '-1'\r\n }), (H.controlsContainer || H.prevButton && H.nextButton) && (ji(we, {'data-controls': 'prev'}), ji(Ce, {'data-controls': 'next'})), ye = Qn(we), ge = Qn(Ce), Kn(), xe ? Ui(xe, $t) : (Ui(we, $t), Ui(Ce, $t))), An();\r\n }\r\n\r\n function wn() {\r\n if (I && s) {\r\n var t = {};\r\n t[s] = ai, Ui(V, t);\r\n }\r\n mt && Ui(V, ae, H.preventScrollOnTouch), yt && Ui(V, re), lt && Ui(O, ie), 'inner' === R ? Qt.on('outerResized', function () {\r\n Mn(), Qt.emit('innerLoaded', Ei());\r\n }) : (k || tt || $ || dt || !F) && Ui(m, {resize: Cn}), dt && ('outer' === R ? Qt.on('innerLoaded', Pn) : Kt || Pn()), Dn(), Kt ? Bn() : _t && Ln(), Qt.on('indexChanged', Wn), 'inner' === R && Qt.emit('innerLoaded', Ei()), 'function' == typeof Gt && Gt(Ei()), Y = !0;\r\n }\r\n\r\n function Cn(t) {\r\n Ai(function () {\r\n Mn(pi(t));\r\n });\r\n }\r\n\r\n function Mn(t) {\r\n if (Y) {\r\n 'outer' === R && Qt.emit('outerResized', Ei(t)), X = rn();\r\n var e;\r\n var n = q;\r\n var i = !1;\r\n k && (En(), (e = n !== q) && Qt.emit('newBreakpointStart', Ei(t)));\r\n var a;\r\n var r;\r\n var o;\r\n var u;\r\n var l = rt;\r\n var s = Kt;\r\n var c = _t;\r\n var f = lt;\r\n var d = vt;\r\n var v = ht;\r\n var p = mt;\r\n var h = yt;\r\n var m = gt;\r\n var y = wt;\r\n var g = Ct;\r\n var x = It;\r\n if (e) {\r\n var b = tt;\r\n var w = dt;\r\n var C = pt;\r\n var M = at;\r\n var T = bt;\r\n if (!D) var E = nt;\r\n var A = et;\r\n }\r\n if (lt = sn('arrowKeys'), vt = sn('controls'), ht = sn('nav'), mt = sn('touch'), at = sn('center'), yt = sn('mouseDrag'), gt = sn('autoplay'), wt = sn('autoplayHoverPause'), Ct = sn('autoplayResetOnVisibility'), e && (Kt = sn('disable'), tt = sn('fixedWidth'), st = sn('speed'), dt = sn('autoHeight'), pt = sn('controlsText'), bt = sn('autoplayText'), xt = sn('autoplayTimeout'), D || (et = sn('edgePadding'), nt = sn('gutter'))), $e(Kt), it = un(), F && !$ || Kt || (jn(), F || (Ci(), i = !0)), (tt || $) && (St = _n(), Wt = Rt()), (e || tt) && (rt = sn('items'), ot = sn('slideBy'), (r = rt !== l) && (tt || $ || (Wt = Rt()), _e())), e && Kt !== s && (Kt ? Bn() : function () {\r\n if (!Jt) return;\r\n if (Mt.disabled = !1, V.className += Xt, $n(), ft) for (var t = Nt; t--;) I && Xi(G[t]), Xi(G[Lt - t - 1]);\r\n if (!I) for (var e = It, n = It + Q; e < n; e++) {\r\n var i = G[e];\r\n var a = e < It + rt ? P : W;\r\n i.style.left = 100 * (e - It) / rt + '%', zi(i, a);\r\n }\r\n Nn(), Jt = !1;\r\n }()), Ut && (e || tt || $) && (_t = Tn()) !== c && (_t ? (ti(Zn(en(0))), Ln()) : (!function () {\r\n if (!Zt) return;\r\n et && D && (j.style.margin = '');\r\n if (Nt) for (var t = 'tns-transparent', e = Nt; e--;) I && Wi(G[e], t), Wi(G[Lt - e - 1], t);\r\n Nn(), Zt = !1;\r\n }(), i = !0)), $e(Kt || _t), gt || (wt = Ct = !1), lt !== f && (lt ? Ui(O, ie) : _i(O, ie)), vt !== d && (vt ? xe ? Xi(xe) : (we && Xi(we), Ce && Xi(Ce)) : xe ? Qi(xe) : (we && Qi(we), Ce && Qi(Ce))), ht !== v && (ht ? (Xi(Ae), Ti()) : Qi(Ae)), mt !== p && (mt ? Ui(V, ae, H.preventScrollOnTouch) : _i(V, ae)), yt !== h && (yt ? Ui(V, re) : _i(V, re)), gt !== m && (gt ? (je && Xi(je), Pe || We || ci()) : (je && Qi(je), Pe && fi())), wt !== y && (wt ? Ui(V, ee) : _i(V, ee)), Ct !== g && (Ct ? Ui(O, ne) : _i(O, ne)), e) {\r\n if (tt === b && at === M || (i = !0), dt !== w && (dt || (j.style.height = '')), vt && pt !== C && (we.innerHTML = pt[0], Ce.innerHTML = pt[1]), je && bt !== T) {\r\n var N = gt ? 1 : 0;\r\n var L = je.innerHTML;\r\n var B = L.length - T[N].length;\r\n L.substring(B) === T[N] && (je.innerHTML = L.substring(0, B) + bt[N]);\r\n }\r\n } else at && (tt || $) && (i = !0);\r\n if ((r || tt && !$) && (Le = Mi(), Ti()), (a = It !== x) ? (Qt.emit('indexChanged', Ei()), i = !0) : r ? a || Wn() : (tt || $) && (Dn(), Vn(), Sn()), r && !I && function () {\r\n for (var t = It + Math.min(Q, rt), e = Lt; e--;) {\r\n var n = G[e];\r\n It <= e && e < t ? (zi(n, 'tns-moving'), n.style.left = 100 * (e - It) / rt + '%', zi(n, P), Wi(n, W)) : n.style.left && (n.style.left = '', zi(n, W), Wi(n, P)), Wi(n, z);\r\n }\r\n setTimeout(function () {\r\n Ii(G, function (t) {\r\n Wi(t, 'tns-moving');\r\n });\r\n }, 300);\r\n }(), !Kt && !_t) {\r\n if (e && !D && (et === A && nt === E || (j.style.cssText = cn(et, nt, tt, st, dt)), F)) {\r\n I && (V.style.width = fn(tt, nt, rt));\r\n var S = dn(tt, nt, rt) + vn(nt);\r\n u = Ri(o = Mt) - 1, 'deleteRule' in o ? o.deleteRule(u) : o.removeRule(u), ki(Mt, '#' + Yt + ' > .tns-item', S, Ri(Mt));\r\n }\r\n dt && Pn(), i && ($n(), Pt = It);\r\n }\r\n e && Qt.emit('newBreakpointEnd', Ei(t));\r\n }\r\n }\r\n\r\n function Tn() {\r\n if (!tt && !$) return Q <= (at ? rt - (rt - 1) / 2 : rt);\r\n var t = tt ? (tt + nt) * Q : N[Q];\r\n var e = et ? it + 2 * et : it + nt;\r\n return at && (e -= tt ? (it - tt) / 2 : (it - (N[It + 1] - N[It] - nt)) / 2), t <= e;\r\n }\r\n\r\n function En() {\r\n for (var t in q = 0, k) (t = parseInt(t)) <= X && (q = t);\r\n }\r\n\r\n function An() {\r\n !gt && je && Qi(je), !ht && Ae && Qi(Ae), vt || (xe ? Qi(xe) : (we && Qi(we), Ce && Qi(Ce)));\r\n }\r\n\r\n function Nn() {\r\n gt && je && Xi(je), ht && Ae && Xi(Ae), vt && (xe ? Xi(xe) : (we && Xi(we), Ce && Xi(Ce)));\r\n }\r\n\r\n function Ln() {\r\n if (!Zt) {\r\n if (et && (j.style.margin = '0px'), Nt) for (var t = 'tns-transparent', e = Nt; e--;) I && zi(G[e], t), zi(G[Lt - e - 1], t);\r\n An(), Zt = !0;\r\n }\r\n }\r\n\r\n function Bn() {\r\n if (!Jt) {\r\n if (Mt.disabled = !0, V.className = V.className.replace(Xt.substring(1), ''), Vi(V, ['style']), ft) for (var t = Nt; t--;) I && Qi(G[t]), Qi(G[Lt - t - 1]);\r\n if (F && I || Vi(j, ['style']), !I) for (var e = It, n = It + Q; e < n; e++) {\r\n var i = G[e];\r\n Vi(i, ['style']), Wi(i, P), Wi(i, W);\r\n }\r\n An(), Jt = !0;\r\n }\r\n }\r\n\r\n function Sn() {\r\n var t = Hn();\r\n B.innerHTML !== t && (B.innerHTML = t);\r\n }\r\n\r\n function Hn() {\r\n var t = On();\r\n var e = t[0] + 1;\r\n var n = t[1] + 1;\r\n return e === n ? e + '' : e + ' to ' + n;\r\n }\r\n\r\n function On(t) {\r\n null == t && (t = Zn());\r\n var n;\r\n var i;\r\n var a;\r\n var r = It;\r\n if (at || et ? ($ || tt) && (i = -(parseFloat(t) + et), a = i + it + 2 * et) : $ && (i = N[It], a = i + it), $) N.forEach(function (t, e) {\r\n e < Lt && ((at || et) && t <= i + .5 && (r = e), .5 <= a - t && (n = e));\r\n }); else {\r\n if (tt) {\r\n var e = tt + nt;\r\n at || et ? (r = Math.floor(i / e), n = Math.ceil(a / e - 1)) : n = r + Math.ceil(it / e) - 1;\r\n } else if (at || et) {\r\n var o = rt - 1;\r\n if (at ? (r -= o / 2, n = It + o / 2) : n = It + o, et) {\r\n var u = et * rt / it;\r\n r -= u, n += u;\r\n }\r\n r = Math.floor(r), n = Math.ceil(n);\r\n } else n = r + rt - 1;\r\n r = Math.max(r, 0), n = Math.min(n, Lt - 1);\r\n }\r\n return [r, n];\r\n }\r\n\r\n function Dn() {\r\n if (Tt && !Kt) {\r\n var t = On();\r\n t.push(Et), In.apply(null, t).forEach(function (t) {\r\n if (!Pi(t, pe)) {\r\n var e = {};\r\n e[s] = function (t) {\r\n t.stopPropagation();\r\n }, Ui(t, e), Ui(t, he), t.src = Fi(t, 'data-src');\r\n var n = Fi(t, 'data-srcset');\r\n n && (t.srcset = n), zi(t, 'loading');\r\n }\r\n });\r\n }\r\n }\r\n\r\n function kn(t) {\r\n zi(t, 'loaded'), Rn(t);\r\n }\r\n\r\n function Rn(t) {\r\n zi(t, pe), Wi(t, 'loading'), _i(t, he);\r\n }\r\n\r\n function In(t, e, n) {\r\n var i = [];\r\n for (n || (n = 'img'); t <= e;) Ii(G[t].querySelectorAll(n), function (t) {\r\n i.push(t);\r\n }), t++;\r\n return i;\r\n }\r\n\r\n function Pn() {\r\n var t = In.apply(null, On());\r\n Ai(function () {\r\n zn(t, Fn);\r\n });\r\n }\r\n\r\n function zn(n, t) {\r\n return L ? t() : (n.forEach(function (t, e) {\r\n !Tt && t.complete && Rn(t), Pi(t, pe) && n.splice(e, 1);\r\n }), n.length ? void Ai(function () {\r\n zn(n, t);\r\n }) : t());\r\n }\r\n\r\n function Wn() {\r\n Dn(), Vn(), Sn(), Kn(), function () {\r\n if (ht && (He = 0 <= Se ? Se : an(), Se = -1, He !== Oe)) {\r\n var t = Ee[Oe];\r\n var e = Ee[He];\r\n ji(t, {\r\n tabindex: '-1',\r\n 'aria-label': ke + (Oe + 1)\r\n }), Wi(t, De), ji(e, {'aria-label': ke + (He + 1) + Re}), Vi(e, 'tabindex'), zi(e, De), Oe = He;\r\n }\r\n }();\r\n }\r\n\r\n function qn(t, e) {\r\n for (var n = [], i = t, a = Math.min(t + e, Lt); i < a; i++) n.push(G[i].offsetHeight);\r\n return Math.max.apply(null, n);\r\n }\r\n\r\n function Fn() {\r\n var t = dt ? qn(It, rt) : qn(Nt, Q);\r\n var e = M || j;\r\n e.style.height !== t && (e.style.height = t + 'px');\r\n }\r\n\r\n function jn() {\r\n N = [0];\r\n var n = F ? 'left' : 'top';\r\n var i = F ? 'right' : 'bottom';\r\n var a = G[0].getBoundingClientRect()[n];\r\n Ii(G, function (t, e) {\r\n e && N.push(t.getBoundingClientRect()[n] - a), e === Lt - 1 && N.push(t.getBoundingClientRect()[i] - a);\r\n });\r\n }\r\n\r\n function Vn() {\r\n var t = On();\r\n var n = t[0];\r\n var i = t[1];\r\n Ii(G, function (t, e) {\r\n n <= e && e <= i ? qi(t, 'aria-hidden') && (Vi(t, ['aria-hidden', 'tabindex']), zi(t, de)) : qi(t, 'aria-hidden') || (ji(t, {\r\n 'aria-hidden': 'true',\r\n tabindex: '-1'\r\n }), Wi(t, de));\r\n });\r\n }\r\n\r\n function Gn(t) {\r\n return t.nodeName.toLowerCase();\r\n }\r\n\r\n function Qn(t) {\r\n return 'button' === Gn(t);\r\n }\r\n\r\n function Xn(t) {\r\n return 'true' === t.getAttribute('aria-disabled');\r\n }\r\n\r\n function Yn(t, e, n) {\r\n t ? e.disabled = n : e.setAttribute('aria-disabled', n.toString());\r\n }\r\n\r\n function Kn() {\r\n if (vt && !ct && !ft) {\r\n var t = ye ? we.disabled : Xn(we);\r\n var e = ge ? Ce.disabled : Xn(Ce);\r\n var n = It <= zt;\r\n var i = !ct && Wt <= It;\r\n n && !t && Yn(ye, we, !0), !n && t && Yn(ye, we, !1), i && !e && Yn(ge, Ce, !0), !i && e && Yn(ge, Ce, !1);\r\n }\r\n }\r\n\r\n function Jn(t, e) {\r\n x && (t.style[x] = e);\r\n }\r\n\r\n function Un(t) {\r\n return null == t && (t = It), $ ? (it - (et ? nt : 0) - (N[t + 1] - N[t] - nt)) / 2 : tt ? (it - tt) / 2 : (rt - 1) / 2;\r\n }\r\n\r\n function _n() {\r\n var t = it + (et ? nt : 0) - (tt ? (tt + nt) * Lt : N[Lt]);\r\n return at && !ft && (t = tt ? -(tt + nt) * (Lt - 1) - Un() : Un(Lt - 1) - N[Lt - 1]), 0 < t && (t = 0), t;\r\n }\r\n\r\n function Zn(t) {\r\n var e;\r\n if (null == t && (t = It), F && !$) if (tt) e = -(tt + nt) * t, at && (e += Un()); else {\r\n var n = r ? Lt : rt;\r\n at && (t -= Un()), e = 100 * -t / n;\r\n } else e = -N[t], at && $ && (e += Un());\r\n return Bt && (e = Math.max(e, St)), e += !F || $ || tt ? 'px' : '%';\r\n }\r\n\r\n function $n(t) {\r\n Jn(V, '0s'), ti(t);\r\n }\r\n\r\n function ti(t) {\r\n null == t && (t = Zn()), V.style[Ot] = Dt + t + kt;\r\n }\r\n\r\n function ei(t, e, n, i) {\r\n var a = t + rt;\r\n ft || (a = Math.min(a, Lt));\r\n for (var r = t; r < a; r++) {\r\n var o = G[r];\r\n i || (o.style.left = 100 * (r - It) / rt + '%'), C && u && (o.style[u] = o.style[l] = C * (r - t) / 1e3 + 's'), Wi(o, e), zi(o, n), i && At.push(o);\r\n }\r\n }\r\n\r\n function ni(t, e) {\r\n Ht && _e(), (It !== Pt || e) && (Qt.emit('indexChanged', Ei()), Qt.emit('transitionStart', Ei()), dt && Pn(), Pe && t && 0 <= ['click', 'keydown'].indexOf(t.type) && fi(), Vt = !0, Ze());\r\n }\r\n\r\n function ii(t) {\r\n return t.toLowerCase().replace(/-/g, '');\r\n }\r\n\r\n function ai(t) {\r\n if (I || Vt) {\r\n if (Qt.emit('transitionEnd', Ei(t)), !I && 0 < At.length) for (var e = 0; e < At.length; e++) {\r\n var n = At[e];\r\n n.style.left = '', l && u && (n.style[l] = '', n.style[u] = ''), Wi(n, z), zi(n, W);\r\n }\r\n if (!t || !I && t.target.parentNode === V || t.target === V && ii(t.propertyName) === ii(Ot)) {\r\n if (!Ht) {\r\n var i = It;\r\n _e(), It !== i && (Qt.emit('indexChanged', Ei()), $n());\r\n }\r\n 'inner' === R && Qt.emit('innerLoaded', Ei()), Vt = !1, Pt = It;\r\n }\r\n }\r\n }\r\n\r\n function ri(t, e) {\r\n if (!_t) if ('prev' === t) oi(e, -1); else if ('next' === t) oi(e, 1); else {\r\n if (Vt) {\r\n if (qt) return;\r\n ai();\r\n }\r\n var n = nn();\r\n var i = 0;\r\n if ('first' === t ? i = -n : 'last' === t ? i = I ? Q - rt - n : Q - 1 - n : ('number' != typeof t && (t = parseInt(t)), isNaN(t) || (e || (t = Math.max(0, Math.min(Q - 1, t))), i = t - n)), !I && i && Math.abs(i) < rt) {\r\n var a = 0 < i ? 1 : -1;\r\n i += zt <= It + i - Q ? Q * a : 2 * Q * a * -1;\r\n }\r\n It += i, I && ft && (It < zt && (It += Q), Wt < It && (It -= Q)), nn(It) !== nn(Pt) && ni(e);\r\n }\r\n }\r\n\r\n function oi(t, e) {\r\n if (Vt) {\r\n if (qt) return;\r\n ai();\r\n }\r\n var n;\r\n if (!e) {\r\n for (var i = hi(t = pi(t)); i !== xe && [we, Ce].indexOf(i) < 0;) i = i.parentNode;\r\n var a = [we, Ce].indexOf(i);\r\n 0 <= a && (n = !0, e = 0 === a ? -1 : 1);\r\n }\r\n if (ct) {\r\n if (It === zt && -1 === e) return void ri('last', t);\r\n if (It === Wt && 1 === e) return void ri('first', t);\r\n }\r\n e && (It += ot * e, $ && (It = Math.floor(It)), ni(n || t && 'keydown' === t.type ? t : null));\r\n }\r\n\r\n function ui() {\r\n Ie = setInterval(function () {\r\n oi(null, Fe);\r\n }, xt), Pe = !0;\r\n }\r\n\r\n function li() {\r\n clearInterval(Ie), Pe = !1;\r\n }\r\n\r\n function si(t, e) {\r\n ji(je, {'data-action': t}), je.innerHTML = Ge[0] + t + Ge[1] + e;\r\n }\r\n\r\n function ci() {\r\n ui(), je && si('stop', bt[1]);\r\n }\r\n\r\n function fi() {\r\n li(), je && si('start', bt[0]);\r\n }\r\n\r\n function di() {\r\n Pe ? (fi(), We = !0) : (ci(), We = !1);\r\n }\r\n\r\n function vi(t) {\r\n t.focus();\r\n }\r\n\r\n function pi(t) {\r\n return mi(t = t || m.event) ? t.changedTouches[0] : t;\r\n }\r\n\r\n function hi(t) {\r\n return t.target || m.event.srcElement;\r\n }\r\n\r\n function mi(t) {\r\n return 0 <= t.type.indexOf('touch');\r\n }\r\n\r\n function yi(t) {\r\n t.preventDefault ? t.preventDefault() : t.returnValue = !1;\r\n }\r\n\r\n function gi() {\r\n return a = Ke.y - Ye.y, r = Ke.x - Ye.x, t = Math.atan2(a, r) * (180 / Math.PI), e = Ft, n = !1, i = Math.abs(90 - Math.abs(t)), 90 - e <= i ? n = 'horizontal' : i <= e && (n = 'vertical'), n === H.axis;\r\n var t;\r\n var e;\r\n var n;\r\n var i;\r\n var a;\r\n var r;\r\n }\r\n\r\n function xi(t) {\r\n if (Vt) {\r\n if (qt) return;\r\n ai();\r\n }\r\n gt && Pe && li(), Je = !0, Xe && (Ni(Xe), Xe = null);\r\n var e = pi(t);\r\n Qt.emit(mi(t) ? 'touchStart' : 'dragStart', Ei(t)), !mi(t) && 0 <= ['img', 'a'].indexOf(Gn(hi(t))) && yi(t), Ke.x = Ye.x = e.clientX, Ke.y = Ye.y = e.clientY, I && (Qe = parseFloat(V.style[Ot].replace(Dt, '')), Jn(V, '0s'));\r\n }\r\n\r\n function bi(t) {\r\n if (Je) {\r\n var e = pi(t);\r\n Ke.x = e.clientX, Ke.y = e.clientY, I ? Xe || (Xe = Ai(function () {\r\n !function t(e) {\r\n if (!jt) return void (Je = !1);\r\n Ni(Xe);\r\n Je && (Xe = Ai(function () {\r\n t(e);\r\n }));\r\n '?' === jt && (jt = gi());\r\n if (jt) {\r\n !me && mi(e) && (me = !0);\r\n try {\r\n e.type && Qt.emit(mi(e) ? 'touchMove' : 'dragMove', Ei(e));\r\n } catch (t) {\r\n }\r\n var n = Qe;\r\n var i = Ue(Ke, Ye);\r\n if (!F || tt || $) n += i, n += 'px'; else {\r\n var a = r ? i * rt * 100 / ((it + nt) * Lt) : 100 * i / (it + nt);\r\n n += a, n += '%';\r\n }\r\n V.style[Ot] = Dt + n + kt;\r\n }\r\n }(t);\r\n })) : ('?' === jt && (jt = gi()), jt && (me = !0)), ('boolean' != typeof t.cancelable || t.cancelable) && me && t.preventDefault();\r\n }\r\n }\r\n\r\n function wi(i) {\r\n if (Je) {\r\n Xe && (Ni(Xe), Xe = null), I && Jn(V, ''), Je = !1;\r\n var t = pi(i);\r\n Ke.x = t.clientX, Ke.y = t.clientY;\r\n var a = Ue(Ke, Ye);\r\n if (Math.abs(a)) {\r\n if (!mi(i)) {\r\n var n = hi(i);\r\n Ui(n, {\r\n click: function t(e) {\r\n yi(e), _i(n, {click: t});\r\n }\r\n });\r\n }\r\n I ? Xe = Ai(function () {\r\n if (F && !$) {\r\n var t = -a * rt / (it + nt);\r\n t = 0 < a ? Math.floor(t) : Math.ceil(t), It += t;\r\n } else {\r\n var e = -(Qe + a);\r\n if (e <= 0) It = zt; else if (e >= N[Lt - 1]) It = Wt; else for (var n = 0; n < Lt && e >= N[n];) e > N[It = n] && a < 0 && (It += 1), n++;\r\n }\r\n ni(i, a), Qt.emit(mi(i) ? 'touchEnd' : 'dragEnd', Ei(i));\r\n }) : jt && oi(i, 0 < a ? -1 : 1);\r\n }\r\n }\r\n 'auto' === H.preventScrollOnTouch && (me = !1), Ft && (jt = '?'), gt && !Pe && ui();\r\n }\r\n\r\n function Ci() {\r\n (M || j).style.height = N[It + rt] - N[It] + 'px';\r\n }\r\n\r\n function Mi() {\r\n var t = tt ? (tt + nt) * Q / it : Q / rt;\r\n return Math.min(Math.ceil(t), Q);\r\n }\r\n\r\n function Ti() {\r\n if (ht && !le && Le !== Be) {\r\n var t = Be;\r\n var e = Le;\r\n var n = Xi;\r\n for (Le < Be && (t = Le, e = Be, n = Qi); t < e;) n(Ee[t]), t++;\r\n Be = Le;\r\n }\r\n }\r\n\r\n function Ei(t) {\r\n return {\r\n container: V,\r\n slideItems: G,\r\n navContainer: Ae,\r\n navItems: Ee,\r\n controlsContainer: xe,\r\n hasControls: oe,\r\n prevButton: we,\r\n nextButton: Ce,\r\n items: rt,\r\n slideBy: ot,\r\n cloneCount: Nt,\r\n slideCount: Q,\r\n slideCountNew: Lt,\r\n index: It,\r\n indexCached: Pt,\r\n displayIndex: tn(),\r\n navCurrentIndex: He,\r\n navCurrentIndexCached: Oe,\r\n pages: Le,\r\n pagesCached: Be,\r\n sheet: Mt,\r\n isOn: Y,\r\n event: t || {}\r\n };\r\n }\r\n\r\n f && console.warn('No slides found in', H.container);\r\n };\r\n return $i;\r\n }();\r\n});\r\n","defineDs('Shared/Framework/Mithril/Scripts/Helpers/Cleanup',\r\n function () {\r\n\r\n // Functions:\r\n var Cleanup = function () {\r\n try {\r\n var keys = Object.keys(localStorage);\r\n var now = (new Date()).getTime();\r\n var ttl = 86400 * 1000;\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n\r\n if (key.substring(0, 5) === 'Model') {\r\n var item = JSON.parse(localStorage.getItem(key));\r\n\r\n if (now - item.timestamp > ttl) {\r\n var regex = new RegExp(item.id);\r\n\r\n if (!regex.test(location.search)) {\r\n console.warn('Deleting from localStorage: ' + key);\r\n\r\n localStorage.removeItem(key);\r\n }\r\n }\r\n }\r\n }\r\n } catch (e) { }\r\n\r\n };\r\n\r\n // Public functions:\r\n return Cleanup;\r\n\r\n });\r\n","defineDs('Shared/Framework/Mithril/Scripts/Core/Model',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Cleanup'\r\n ],\r\n function (m, Cleanup) {\r\n\r\n // Functions:\r\n var model = function (modelName, constructor) {\r\n modelName = 'Model-' + modelName;\r\n\r\n constructor.generateId = function () {\r\n return 'xxxxxxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n /* eslint-disable no-bitwise, no-mixed-operators, one-var */\r\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n /* eslint-enable no-bitwise, no-mixed-operators, one-var */\r\n return v.toString(16);\r\n });\r\n };\r\n\r\n constructor.cache = {};\r\n\r\n constructor.construct = function (content, state, save) {\r\n content = content || {};\r\n\r\n var record = new this(content);\r\n\r\n record.id = m.prop(content.id ? content.id : this.generateId());\r\n record.state = m.prop(state ? state : 'clean');\r\n record.timestamp = m.prop(content.timestamp || (new Date()).getTime());\r\n\r\n if (typeof record.init === 'function') {\r\n record.init(content);\r\n }\r\n\r\n if (typeof save === 'undefined' || save) {\r\n record.save();\r\n }\r\n\r\n return record;\r\n };\r\n\r\n constructor.prototype.save = function () {\r\n this.state('clean');\r\n this.timestamp((new Date()).getTime());\r\n\r\n var data = JSON.stringify(this.toJSON());\r\n\r\n try {\r\n localStorage.setItem(modelName + '-' + this.id(), data);\r\n } catch (e) {\r\n console.warn('Model.js Cannot write to localStorage');\r\n }\r\n\r\n constructor.cache[this.id()] = this;\r\n };\r\n\r\n constructor.update = function (record, content) {\r\n\r\n var id = record.id();\r\n\r\n content.id = id;\r\n\r\n var updatedRecord = this.construct(content, 'new');\r\n\r\n Object.keys(updatedRecord).forEach(function (key) {\r\n record[key] = updatedRecord[key];\r\n });\r\n\r\n return record;\r\n\r\n };\r\n\r\n constructor.get = function (query) {\r\n var type = typeof query;\r\n\r\n if (type === 'undefined') {\r\n return null;\r\n }\r\n\r\n // Get by ID:\r\n if (type === 'number' || type === 'string') {\r\n var cached = constructor.cache[query];\r\n\r\n if (cached) {\r\n return cached;\r\n }\r\n\r\n try {\r\n var val = localStorage.getItem(modelName + '-' + query);\r\n } catch (e) {\r\n console.warn('Model.js Cannot read from localStorage');\r\n }\r\n\r\n if (!val) {\r\n return null;\r\n }\r\n\r\n var json = JSON.parse(val);\r\n var record = this.construct(json);\r\n\r\n return record;\r\n }\r\n\r\n var bulk = [];\r\n var keys = Object.keys(constructor.cache);\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n bulk.push(constructor.cache[keys[i]]);\r\n }\r\n\r\n // Query:\r\n if (type === 'object') {\r\n keys = Object.keys(query);\r\n var length = keys.length;\r\n\r\n bulk = bulk.filter(function (record) {\r\n var match = true;\r\n\r\n for (var i = 0; i < length; i++) {\r\n var first = typeof first === 'function' ? query[keys[i]]() : query[keys[i]];\r\n var second = record[keys[i]]();\r\n\r\n if (/delete|remove/.test(record.state()) || first !== second) {\r\n match = false;\r\n\r\n break;\r\n }\r\n }\r\n\r\n return match;\r\n });\r\n\r\n }\r\n\r\n // Bulk:\r\n return bulk;\r\n\r\n };\r\n\r\n constructor.delete = function (query) {\r\n if (!query) {\r\n return;\r\n }\r\n\r\n try {\r\n localStorage.removeItem(modelName + '-' + query);\r\n delete constructor.cache[query];\r\n } catch (e) {\r\n console.warn('Model.js Cannot remove from localStorage');\r\n }\r\n };\r\n\r\n constructor.new = function (content, state, save) {\r\n return this.construct(content, state || 'new', save);\r\n };\r\n\r\n return constructor;\r\n };\r\n\r\n // Cleanup\r\n Cleanup();\r\n\r\n // Public functions:\r\n return model;\r\n\r\n });\r\n","defineDs('Shared/Framework/Mithril/Scripts/Helpers/Scroll', function () {\r\n\r\n // Variables:\r\n var callbacks = [];\r\n\r\n // Functions:\r\n var add = function ($element, callback) {\r\n if (typeof callback === 'undefined') {\r\n callbacks.push($element);\r\n } else {\r\n $element.addEventListener('scroll', callback);\r\n }\r\n };\r\n\r\n // Init:\r\n window.addEventListener('scroll', function () {\r\n var amount = callbacks.length;\r\n\r\n for (var i = 0; i < amount; i++) {\r\n callbacks[i]();\r\n }\r\n });\r\n\r\n // Public functions:\r\n return add;\r\n\r\n});\r\n","defineDs('DanskeSpil/Framework/PuljeFeed/Scripts/JackpotInfo',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage',\r\n 'DanskeSpil/Framework/TimeUtils/Scripts/TimeUtils',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n ],\r\n function (Storage, TimeUtils, Utils, Ensighten) {\r\n\r\n // Variables:\r\n var aliases = {\r\n lottosaturday: 'lotto',\r\n saturdaylotto: 'lotto',\r\n lottowednesday: 'onsdagslotto',\r\n wednesdaylotto: 'onsdagslotto',\r\n superpulje: 'superpulje',\r\n jokersaturday: 'jokerloerdag',\r\n jokerwednesday: 'jokeronsdag',\r\n\r\n // nye aliases 11/5/2017\r\n joker: 'jokerloerdag',\r\n onsdagsjoker: 'jokeronsdag'\r\n };\r\n\r\n // Minimum pool sizes:\r\n // window.minimumPoolSizes is intended to be used in case we need to change the minimum pool size for a specific game without a deploy.\r\n const minimumPoolSizes = {\r\n lotto: window.minimumPoolSizes?.lotto || 8000000,\r\n eurojackpot: window.minimumPoolSizes?.eurojackpot || 63000000,\r\n vikinglotto: window.minimumPoolSizes?.vikinglotto || 19000000,\r\n jokerloerdag: window.minimumPoolSizes?.jokerloerdag || 2000000,\r\n jokeronsdag: window.minimumPoolSizes?.jokeronsdag || 2000000\r\n };\r\n\r\n var data = {};\r\n\r\n // Functions:\r\n\r\n var getSetData = function (val) {\r\n // Mimics m.prop functionality\r\n if (typeof val !== 'undefined') {\r\n data = val;\r\n }\r\n return data;\r\n };\r\n\r\n var getByGame = function (name) {\r\n var poolSizeDecimalsRequested = false;\r\n var secondPrizeRequested = false;\r\n name = name.toLowerCase();\r\n\r\n // check to see if decimal value is requested.\r\n if (name.indexOf('d:') === 0) {\r\n poolSizeDecimalsRequested = true;\r\n name = name.split(':');\r\n name.shift();\r\n name = name.join(':');\r\n }\r\n\r\n // check to see if second prize is requested.\r\n if (name.indexOf(':2') !== -1) {\r\n secondPrizeRequested = true;\r\n name = name.split(':')[0];\r\n }\r\n\r\n if (aliases[name]) {\r\n name = aliases[name];\r\n }\r\n\r\n var items = data && Object.keys(data).length !== 0 ? data.filter(function (item) {\r\n return (item.GameId && item.GameId.toLowerCase() === name);\r\n }) : [];\r\n\r\n var item = items.length > 0 ? items[0] : null;\r\n\r\n if (item) {\r\n var currentDateTime = TimeUtils.getCurrentDateTime();\r\n var gameStopDate = item.gameStopDate;\r\n var gameStopDateTime = new Date(gameStopDate);\r\n var gamestopExceeded = currentDateTime > gameStopDateTime;\r\n var poolSize = poolSizeDecimalsRequested ? item.PoolSizeDecimal : item.PoolSizeFormatted;\r\n var poolSizeSecondPrize = poolSizeDecimalsRequested ? item.SecondPrizePoolSizeDecimal : item.SecondPrizePoolSizeFormatted;\r\n\r\n if (secondPrizeRequested) {\r\n return {\r\n gamestopExceeded: gamestopExceeded,\r\n poolSize: Utils.numberFormat(poolSizeSecondPrize),\r\n poolSizeDecimal: item.SecondPrizePoolSizeDecimal,\r\n poolSizeFormatted: item.SecondPrizePoolSizeFormatted,\r\n minimumPoolSize: Utils.numberFormat(minimumPoolSizes[name] / 1000000),\r\n minimumPoolSizeDecimal: minimumPoolSizes[name]\r\n };\r\n }\r\n\r\n return {\r\n gamestopExceeded: gamestopExceeded,\r\n poolSize: Utils.numberFormat(poolSize),\r\n poolSizeDecimal: item.PoolSizeDecimal,\r\n poolSizeFormatted: item.PoolSizeFormatted,\r\n minimumPoolSize: Utils.numberFormat(minimumPoolSizes[name] / 1000000),\r\n minimumPoolSizeDecimal: minimumPoolSizes[name]\r\n };\r\n }\r\n\r\n return {\r\n minimumPoolSize: Utils.numberFormat(minimumPoolSizes[name] / 1000000),\r\n minimumPoolSizeDecimal: minimumPoolSizes[name]\r\n };\r\n };\r\n\r\n /**\r\n * This string replaces all occurences of {alias\\\\puljefeedname} to the corresponding feed.\r\n * @param str - The string containing the handlebars.\r\n */\r\n var getDynamicFeed = function (str) {\r\n\r\n // if the context is expierience editor or the str is not of type string; break!\r\n if (window.sitecoreEnv || typeof str !== 'string') {\r\n return str;\r\n }\r\n\r\n // initiate variable\r\n var pulje = '';\r\n\r\n // variables for preventing infinite looping; maxDepth is the maximum loop depth; iter is the iteration counter.\r\n var maxDepth = 100;\r\n var iter = 0;\r\n // Might be more occurances of '{' and '}' in the text\r\n while (str.indexOf('{') >= 0) {\r\n\r\n // prevent infinite looping, by restricting the iteration depth\r\n iter += 1;\r\n if (iter > maxDepth) {\r\n return str;\r\n }\r\n\r\n // Find occurance of {\r\n var index = str.indexOf('{');\r\n // Find occurance of }\r\n var lastIndex = str.indexOf('}');\r\n // Did the text contain { or }?\r\n if (index < 0 || lastIndex < 0) {\r\n // Did not contain a handlebar, return original string\r\n return str;\r\n } else {\r\n // Take out the whole {pulje} string\r\n var handleBarString = str.substring(index, lastIndex + 1);\r\n // Take out only 'pulje' from {pulje}\r\n var substring = str.substring(index + 1, lastIndex);\r\n // Special occasion, on onsdagslotto combined pulje should be presented by adding superpulje and onsdagspulje together\r\n if (substring !== 'combowednesday') {\r\n pulje = getByGame(substring).poolSize;\r\n } else {\r\n pulje = parseInt(getByGame('superpulje').poolSizeFormatted, 10) + parseInt(getByGame('onsdagslotto').poolSizeFormatted, 10);\r\n }\r\n\r\n // if the corresponding feed value is undefined return the empty string -> wrong feed keys etc should not be displayed to the end user.\r\n if (typeof (pulje) === 'undefined') {\r\n return '';\r\n }\r\n\r\n // Replace the handlebar {pulje} with for example 30\r\n str = str.replace(handleBarString, pulje);\r\n }\r\n }\r\n return str;\r\n };\r\n\r\n var feedValid = function (str) {\r\n try {\r\n var json = JSON.parse(str);\r\n\r\n if (json instanceof Array) {\r\n return true;\r\n }\r\n } catch (e) {\r\n }\r\n\r\n return false;\r\n };\r\n\r\n var storeToCache = function (json) {\r\n // Store with TTL 30 min.\r\n Storage.set('JackpotInfoFeed', json ? JSON.stringify(json) : null, 60 * 30);\r\n };\r\n\r\n // Initialize:\r\n var ready = new Promise(function (resolve, reject) {\r\n\r\n // 1) LOOK IN DOM\r\n var $jackpotInfo = document.querySelector('#jackpot-info');\r\n\r\n if ($jackpotInfo) {\r\n var domData = $jackpotInfo.innerHTML;\r\n\r\n if (feedValid(domData)) {\r\n var domJson = JSON.parse(domData);\r\n\r\n Ensighten.pushJackpots(domJson);\r\n\r\n data = domJson;\r\n\r\n // Store to cache\r\n storeToCache(domJson);\r\n resolve();\r\n\r\n return;\r\n }\r\n }\r\n\r\n // 2) LOOK IN LOCALSTORAGE\r\n var cacheData = Storage.get('JackpotInfoFeed');\r\n if (!cacheData || !feedValid(cacheData)) {\r\n // Clear cache\r\n storeToCache(null);\r\n data = {};\r\n reject();\r\n } else {\r\n // Use cache\r\n data = JSON.parse(cacheData);\r\n resolve();\r\n }\r\n\r\n });\r\n\r\n // Public functions:\r\n return {\r\n data: getSetData,\r\n ready: ready,\r\n getByGame: getByGame,\r\n getDynamicFeed: getDynamicFeed\r\n };\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/FlipClock/Scripts/MithrilFlipClock',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'DanskeSpil/Framework/TimeUtils/Scripts/TimeUtils',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/MithrilRedrawEverySecond'\r\n ],\r\n function (m, Render, TimeUtils, MithrilRedrawEverySecond) {\r\n var render = Render();\r\n\r\n return {\r\n controller: function (options) {\r\n this.settings = m.prop(options.settings);\r\n this.flipClockSizeCss = m.prop('flip-clock--hidden');\r\n this.deadline = m.prop(new Date(this.settings().endDate));\r\n var countersBefore = {};\r\n var countersActive = {};\r\n var toggleStates = {};\r\n var flipClockOptionsCss = ' ';\r\n flipClockOptionsCss += this.settings().staticFlip ? 'flip-clock--static ' : '';\r\n flipClockOptionsCss += this.settings().colorLight ? 'flip-clock--light ' : '';\r\n flipClockOptionsCss += this.settings().labelLight ? 'flip-clock--label-light ' : '';\r\n\r\n this.flipper = function (counter) {\r\n var diff = this.deadline() - TimeUtils.getServerDateTime();\r\n var t = TimeUtils.getCompoundTimeObject(diff);\r\n\r\n if (countersBefore[counter] !== t[counter]) {\r\n countersBefore[counter] = t[counter];\r\n countersActive[counter] = t[counter] + 1;\r\n toggleStates[counter] = !toggleStates[counter];\r\n }\r\n\r\n var state = toggleStates[counter];\r\n var valBefore = formatCounter(counter, countersBefore[counter]);\r\n var valActive = formatCounter(counter, countersActive[counter]);\r\n\r\n return m('ul.flip', [\r\n m('li', { class: state ? 'active' : 'before' },\r\n m('.flipper', [\r\n m('.up', [\r\n m('.shadow'),\r\n m('.inn.js-up', state ? valBefore : valActive)\r\n ]),\r\n m('.down', [\r\n m('.shadow'),\r\n m('.inn.js-down', state ? valBefore : valActive)\r\n ]),\r\n ])),\r\n m('li', { class: !state ? 'active' : 'before' },\r\n m('.flipper', [\r\n m('.up', [\r\n m('.shadow'),\r\n m('.inn.js-up', !state ? valBefore : valActive)\r\n ]),\r\n m('.down', [\r\n m('.shadow'),\r\n m('.inn.js-down', !state ? valBefore : valActive)\r\n ]),\r\n ]))\r\n ]);\r\n }.bind(this);\r\n\r\n var formatCounter = function (counter, val) {\r\n if (counter === 'days') {\r\n val = val >= 99 ? 99 : val;\r\n } else if (counter === 'hours') {\r\n val = val === 24 ? 0 : val;\r\n } else {\r\n // mins and secs\r\n val = val === 60 ? 0 : val;\r\n }\r\n // prefix with zero for value 0-9\r\n val = ('0' + val).slice(-2);\r\n return val;\r\n };\r\n\r\n var resized = function () {\r\n var windowWidth = document.querySelector('body').offsetWidth;\r\n var breakPoints = {\r\n small: parseInt(this.settings().sizeSmall, 10) || 400,\r\n default: parseInt(this.settings().sizeDefault, 10) || 550,\r\n large: parseInt(this.settings().sizeLarge, 10) || 700,\r\n extraLarge: parseInt(this.settings().sizeExtraLarge, 10) || 900,\r\n };\r\n\r\n if (breakPoints.extraLarge && windowWidth >= breakPoints.extraLarge) {\r\n this.flipClockSizeCss('flip-clock--xlarge');\r\n } else if (breakPoints.large && windowWidth >= breakPoints.large) {\r\n this.flipClockSizeCss('flip-clock--large');\r\n } else if (breakPoints.default && windowWidth >= breakPoints.default) {\r\n this.flipClockSizeCss('flip-clock--default');\r\n } else if (breakPoints.small && windowWidth >= breakPoints.small) {\r\n this.flipClockSizeCss('flip-clock--small');\r\n } else {\r\n this.flipClockSizeCss('flip-clock--xsmall');\r\n }\r\n }.bind(this);\r\n\r\n this.flipClockStyles = function () {\r\n return this.flipClockSizeCss() + flipClockOptionsCss;\r\n }.bind(this);\r\n\r\n render.ready.then(function () {\r\n // \"manually\" redraw every second if Time Consuming Notification is not doing it for us\r\n if (!document.querySelector('div[data-component=time-consuming-notification]')) {\r\n MithrilRedrawEverySecond.start();\r\n }\r\n\r\n window.addEventListener('resize', resized);\r\n resized();\r\n });\r\n\r\n return this;\r\n },\r\n\r\n view: function (controller) {\r\n if (controller.settings().deactivated || !controller.settings().endDate) {\r\n // returning null or an empty string generates a Mithril error, as it\r\n // cannot read the attributes of that, so we return an empty mithril instead\r\n return m('');\r\n }\r\n\r\n return m('.flip-clock.play.js-mithril-flip-clock', {\r\n config: render.depend(),\r\n class: controller.flipClockStyles()\r\n }, [\r\n controller.flipper('days'),\r\n controller.flipper('hours'),\r\n controller.flipper('mins'),\r\n controller.flipper('secs')\r\n ]);\r\n }\r\n };\r\n\r\n });\r\n","/* eslint-disable */\r\ndefineDs('DanskeSpil/Framework/NumberGames/Scripts/Framework/HammerTime', function () {\r\n\r\n // Hammer-Time:\r\n !function () { var a = window.MutationObserver || window.WebKitMutationObserver, b = \"ontouchstart\" in window || window.DocumentTouch && document instanceof DocumentTouch, c = void 0 !== document.documentElement.style[\"touch-action\"] || document.documentElement.style[\"-ms-touch-action\"]; if (!c && b && a) { window.Hammer = window.Hammer || {}; var d = /touch-action[:][\\s]*(none)[^;'\"]*/, e = /touch-action[:][\\s]*(manipulation)[^;'\"]*/, f = /touch-action/, g = navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? !0 : !1, h = function () { try { var a = document.createElement(\"canvas\"); return !(!window.WebGLRenderingContext || !a.getContext(\"webgl\") && !a.getContext(\"experimental-webgl\")) } catch (b) { return !1 } }(), i = h && g; window.Hammer.time = { getTouchAction: function (a) { return this.checkStyleString(a.getAttribute(\"style\")) }, checkStyleString: function (a) { return f.test(a) ? d.test(a) ? \"none\" : e.test(a) ? \"manipulation\" : !0 : void 0 }, shouldHammer: function (a) { var b = this.hasParent(a.target); return b && (!i || Date.now() - a.target.lastStart < 125) ? b : !1 }, touchHandler: function (a) { var b = a.target.getBoundingClientRect(), c = b.top !== this.pos.top || b.left !== this.pos.left, d = this.shouldHammer(a); (\"none\" === d || c === !1 && \"manipulation\" === d) && (\"touchend\" === a.type && (a.target.focus(), setTimeout(function () { a.target.click() }, 0)), a.preventDefault()), this.scrolled = !1, delete a.target.lastStart }, touchStart: function (a) { this.pos = a.target.getBoundingClientRect(), i && this.hasParent(a.target) && (a.target.lastStart = Date.now()) }, styleWatcher: function (a) { a.forEach(this.styleUpdater, this) }, styleUpdater: function (a) { if (a.target.updateNext) return void (a.target.updateNext = !1); var b = this.getTouchAction(a.target); return b ? void (\"none\" !== b && (a.target.hadTouchNone = !1)) : void (!b && (a.oldValue && this.checkStyleString(a.oldValue) || a.target.hadTouchNone) && (a.target.hadTouchNone = !0, a.target.updateNext = !1, a.target.setAttribute(\"style\", a.target.getAttribute(\"style\") + \" touch-action: none;\"))) }, hasParent: function (a) { for (var b, c = a; c && c.parentNode; c = c.parentNode) if (b = this.getTouchAction(c)) return b; return !1 }, installStartEvents: function () { document.addEventListener(\"touchstart\", this.touchStart.bind(this)), document.addEventListener(\"mousedown\", this.touchStart.bind(this)) }, installEndEvents: function () { document.addEventListener(\"touchend\", this.touchHandler.bind(this), !0), document.addEventListener(\"mouseup\", this.touchHandler.bind(this), !0) }, installObserver: function () { this.observer = new a(this.styleWatcher.bind(this)).observe(document, { subtree: !0, attributes: !0, attributeOldValue: !0, attributeFilter: [\"style\"] }) }, install: function () { this.installEndEvents(), this.installStartEvents(), this.installObserver() } }, window.Hammer.time.install() } }();\r\n\r\n});\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/DataLayer',\r\n function () {\r\n\r\n // Variables:\r\n var localDataLayer = [];\r\n\r\n // Functions:\r\n var returnAsArray = function (array) {\r\n if (!Array.isArray(array)) {\r\n return [array];\r\n } else {\r\n return array;\r\n }\r\n };\r\n\r\n var promoView = function (productArray) {\r\n productArray = returnAsArray(productArray);\r\n push('promoView', {\r\n promoView: {\r\n promotions: productArray\r\n }\r\n });\r\n };\r\n\r\n var promoClick = function (productArray) {\r\n productArray = returnAsArray(productArray);\r\n push('promoClick', {\r\n promoClick: {\r\n promotions: productArray\r\n }\r\n });\r\n };\r\n\r\n var productImpression = function (productArray) {\r\n productArray = returnAsArray(productArray);\r\n push('productImpression', {\r\n impressions: productArray\r\n });\r\n };\r\n\r\n var productDetail = function (productArray) {\r\n productArray = returnAsArray(productArray);\r\n push('productDetail', {\r\n detail: {\r\n products: productArray\r\n }\r\n });\r\n };\r\n\r\n var addToCart = function (productArray) {\r\n productArray = returnAsArray(productArray);\r\n push('addToCart', {\r\n add: {\r\n products: productArray\r\n }\r\n });\r\n };\r\n\r\n var removeFromCart = function (productArray) {\r\n productArray = returnAsArray(productArray);\r\n if (productArray.length > 0) {\r\n push('removeFromCart', {\r\n remove: {\r\n products: productArray\r\n }\r\n });\r\n }\r\n };\r\n\r\n var checkout = function (data, productArray) {\r\n productArray = returnAsArray(productArray);\r\n var step = data.step;\r\n var option = data.option;\r\n\r\n push('checkout', {\r\n checkout: {\r\n actionField: {\r\n step: step,\r\n option: option\r\n },\r\n products: productArray\r\n }\r\n });\r\n };\r\n\r\n var purchaseCompleted = function (data, productArray) {\r\n productArray = returnAsArray(productArray);\r\n var id = data.id;\r\n var totalPrice = data.totalPrice.toString();\r\n const actionField = {\r\n id: id,\r\n revenue: totalPrice\r\n };\r\n if (data.firstInteraction) {\r\n actionField.firstInteraction = data.firstInteraction;\r\n }\r\n if (data.lastInteraction) {\r\n actionField.lastInteraction = data.lastInteraction;\r\n }\r\n\r\n push('purchaseComplete', {\r\n purchase: {\r\n actionField: actionField,\r\n products: productArray\r\n }\r\n });\r\n };\r\n\r\n var push = function (event, payload) {\r\n getDataLayer().push({\r\n event: event,\r\n ecommerce: payload\r\n });\r\n };\r\n\r\n var getDataLayer = function () {\r\n if (window.dataLayer) {\r\n for (var i = 0; i < localDataLayer.length; i++) {\r\n window.dataLayer.push(localDataLayer[i]);\r\n }\r\n }\r\n\r\n return window.dataLayer || localDataLayer;\r\n };\r\n\r\n // Set the category field to the correct naming\r\n var categoryName = function (category) {\r\n var lynCategories = ['KenoMillion', 'KenoLarge', 'KenoSmall', 'Lightning'];\r\n var systemCategories = ['KenoSystem', 'System'];\r\n var vaelgSelvCategories = ['KenoClassic', 'Classic'];\r\n var lykkeCategories = ['Lucky'];\r\n\r\n if (lynCategories.indexOf(category) > -1) {\r\n category = 'lyn';\r\n }\r\n\r\n if (systemCategories.indexOf(category) > -1) {\r\n category = 'system';\r\n }\r\n\r\n if (vaelgSelvCategories.indexOf(category) > -1) {\r\n category = 'vaelg_selv';\r\n }\r\n\r\n if (lykkeCategories.indexOf(category) > -1) {\r\n category = 'lykke';\r\n }\r\n\r\n return category;\r\n };\r\n\r\n // Generate the variant field\r\n var variantName = function (brand, rows, playType, systemName) {\r\n var variant;\r\n\r\n // Make sure there is always 2 digits in the row number (fx 02).\r\n rows = ('0' + rows).slice(-2);\r\n\r\n // -- AllOrNothing Variants --\r\n if (brand == 'allornothing' || brand == 'plus_allornothing') {\r\n rows = rows + 'dag' + (rows !== 1 ? 'e' : '');\r\n variant = 'alt_';\r\n\r\n if (brand == 'plus_allornothing') {\r\n rows = '';\r\n variant = 'plu_alt';\r\n // ensure that plus will always have _raekker variant\r\n playType = 'Lightning';\r\n }\r\n\r\n if (playType == 'Lightning' || playType == 'Classic') {\r\n variant += rows + '_raekker';\r\n }\r\n }\r\n\r\n // -- Keno Variants --\r\n if (brand == 'keno' || brand === 'plus_keno') {\r\n rows = rows + 'dage';\r\n variant = 'ken_';\r\n\r\n if (brand === 'plus_keno') {\r\n variant = 'plu_ken';\r\n }\r\n\r\n if (playType == 'KenoMillion') {\r\n variant += rows + '_million';\r\n }\r\n\r\n if (playType == 'KenoClassic') {\r\n variant += rows + '_raekker';\r\n }\r\n\r\n if (playType == 'KenoSystem') {\r\n variant += rows + '_system';\r\n }\r\n\r\n if (playType == 'KenoLarge') {\r\n variant += rows + '_store';\r\n }\r\n\r\n if (playType == 'KenoSmall') {\r\n variant += rows + '_lille';\r\n }\r\n }\r\n\r\n // -- Lotto Variants --\r\n if (brand == 'lotto' || brand == 'plus_lotto') {\r\n rows = rows + 'uger';\r\n variant = 'lot_';\r\n\r\n if (brand == 'plus_lotto') {\r\n rows = '';\r\n variant = 'plu_lot';\r\n // ensure that plus will always have _raekker variant\r\n playType = 'Lightning';\r\n }\r\n\r\n if (playType == 'System') {\r\n // Set systemName to 'R', 'M', or 'C'\r\n // These are Reduced, Mathematical, or Chance\r\n systemName = systemName.charAt(0);\r\n if (systemName == 'R' || systemName == 'C') {\r\n variant += rows + '_reduceret';\r\n }\r\n\r\n if (systemName == 'M') {\r\n variant += rows + '_matematisk';\r\n }\r\n }\r\n\r\n if (playType == 'Lightning' || playType == 'Classic' || playType == 'Lucky') {\r\n variant += rows + '_raekker';\r\n }\r\n }\r\n\r\n // -- VikingeLotto Variants --\r\n if (brand == 'viking' || brand == 'plus_viking') {\r\n variant = 'vik_';\r\n rows = rows + 'uger';\r\n\r\n if (brand == 'plus_viking') {\r\n rows = '';\r\n variant = 'plu_vik';\r\n // ensure that plus will always have _raekker variant\r\n playType = 'Lightning';\r\n }\r\n\r\n if (playType == 'System') {\r\n // Set systemName to 'R', 'M', or 'C'\r\n // These are Reduced, Mathematical, or Chance\r\n systemName = systemName.charAt(0);\r\n if (systemName == 'R' || systemName == 'C') {\r\n variant += rows + '_reduceret';\r\n }\r\n\r\n if (systemName == 'M') {\r\n variant += rows + '_matematisk';\r\n }\r\n }\r\n\r\n if (playType == 'Lightning' || playType == 'Classic' || playType == 'Lucky') {\r\n variant += rows + '_raekker';\r\n }\r\n }\r\n\r\n // -- Joker --\r\n if (brand == 'joker' || brand == 'plus_joker') {\r\n rows = '_' + rows + 'uger';\r\n variant = 'jok_';\r\n\r\n if (brand == 'plus_joker') {\r\n rows = '';\r\n variant = 'plu_jok_';\r\n }\r\n\r\n if (playType == 'saturday') {\r\n variant += 'loerdag' + rows;\r\n }\r\n\r\n if (playType == 'wednesday') {\r\n variant += 'onsdag' + rows;\r\n }\r\n }\r\n\r\n // -- EuroJackpot --\r\n if (brand == 'eurojackpot' ||\r\n brand == 'plus_eurojackpot' ||\r\n brand.indexOf('eurojackpot') !== -1) {\r\n rows = rows + 'draws';\r\n variant = 'ejp_';\r\n\r\n var eurojackpotDrawDay = brand.split('eurojackpot_')[1];\r\n if (eurojackpotDrawDay) variant = variant + eurojackpotDrawDay + '_';\r\n\r\n if (brand == 'plus_eurojackpot') {\r\n rows = '';\r\n variant = 'plu_ejp';\r\n // ensure that plus will always have _raekker variant\r\n playType = 'Lightning';\r\n }\r\n\r\n if (playType == 'Lightning' || playType == 'Classic' || playType == 'Lucky') {\r\n variant += rows + '_raekker';\r\n }\r\n\r\n if (playType == 'System') {\r\n variant += rows + '_matematisk';\r\n }\r\n }\r\n\r\n return variant;\r\n };\r\n\r\n var quantity = function (brand, rows, playType, getSystemCombinationAmount) {\r\n if (brand == 'keno') {\r\n if (playType == 'KenoSystem') {\r\n rows = getSystemCombinationAmount;\r\n }\r\n\r\n if (playType == 'KenoLarge' || playType == 'KenoSmall') {\r\n rows = 1;\r\n }\r\n }\r\n\r\n // -- Lotto Variants --\r\n if (brand == 'lotto') {\r\n rows = getSystemCombinationAmount;\r\n }\r\n\r\n // -- VikingeLotto Variants --\r\n if (brand == 'viking') {\r\n rows = getSystemCombinationAmount;\r\n }\r\n\r\n // -- EuroJackpot --\r\n if (brand == 'eurojackpot') {\r\n rows = getSystemCombinationAmount;\r\n }\r\n\r\n return rows;\r\n };\r\n\r\n var rowPrice = function (feedData, numberOfDraws, type) {\r\n var rowPrice;\r\n\r\n if (type === 'AllOrNothingClassic' || type === 'AllOrNothingLightning') {\r\n rowPrice = feedData * numberOfDraws;\r\n } else if (type == 'KenoMillion' || type == 'KenoClassic' || type == 'KenoSystem' || type == 'KenoLarge' || type == 'KenoSmall') {\r\n if (type == 'KenoMillion' || type == 'KenoClassic' || type == 'KenoSystem') {\r\n rowPrice = feedData * numberOfDraws;\r\n }\r\n\r\n if (type == 'KenoLarge') {\r\n rowPrice = (feedData * numberOfDraws) * 10;\r\n }\r\n\r\n if (type == 'KenoSmall') {\r\n rowPrice = (feedData * numberOfDraws) * 5;\r\n }\r\n } else {\r\n if (type != 'joker') {\r\n rowPrice = feedData.draws && feedData.draws[0] && feedData.draws[0].rowPrice ? feedData.draws[0].rowPrice : 0;\r\n rowPrice = rowPrice * numberOfDraws;\r\n }\r\n\r\n if (type == 'plus') {\r\n rowPrice = feedData.draws && feedData.draws[0] && feedData.draws[0].rowPrice ? feedData.draws[0].rowPrice : 0;\r\n }\r\n\r\n if (type == 'joker') {\r\n rowPrice = feedData * 2 * numberOfDraws;\r\n }\r\n\r\n if (type == 'plus_joker') {\r\n rowPrice = feedData * 2;\r\n }\r\n }\r\n\r\n rowPrice = rowPrice.toString();\r\n\r\n return rowPrice;\r\n };\r\n\r\n // Public functions:\r\n return {\r\n variantName: variantName,\r\n categoryName: categoryName,\r\n quantity: quantity,\r\n rowPrice: rowPrice,\r\n promoView: promoView,\r\n promoClick: promoClick,\r\n productImpression: productImpression,\r\n productDetail: productDetail,\r\n addToCart: addToCart,\r\n removeFromCart: removeFromCart,\r\n checkout: checkout,\r\n purchaseCompleted: purchaseCompleted,\r\n push: push\r\n };\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/Params', [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Params'\r\n], function (MithrilParams) {\r\n\r\n // Functions:\r\n var destruct = function (params) {\r\n var segments = params.split('&');\r\n var properties = {};\r\n var singles = [];\r\n\r\n for (var i = 0; i < segments.length; i++) {\r\n var segment = segments[i];\r\n\r\n if (segment !== '') {\r\n var split = segment.split('=');\r\n\r\n if (split.length === 1) {\r\n singles.push(split[0]);\r\n } else {\r\n properties[split[0]] = split[1];\r\n }\r\n }\r\n }\r\n\r\n return { properties: properties, singles: singles };\r\n };\r\n\r\n var extract = function (param) {\r\n return MithrilParams.extract(param, null);\r\n };\r\n\r\n var set = function (params) {\r\n var additional = destruct(params);\r\n var existing = destruct(location.search.slice(1));\r\n var final = [];\r\n let hash = location.hash;\r\n\r\n // Maybe URL is constucted with hash, e.g. /roed-konto/mine-oplysninger#/cards?foo&bar.\r\n const hasParamsInHash = location.hash?.split('?');\r\n\r\n if (hasParamsInHash?.length > 1) {\r\n hash = hasParamsInHash[0];\r\n final.push(hasParamsInHash[1]);\r\n }\r\n\r\n Object.keys(additional.properties).map(function (key) {\r\n existing.properties[key] = additional.properties[key];\r\n });\r\n\r\n additional.singles.map(function (key) {\r\n if (existing.singles.indexOf(key) === -1) {\r\n existing.singles.push(key);\r\n }\r\n });\r\n\r\n Object.keys(existing.properties).map(function (property) {\r\n final.push(property + '=' + existing.properties[property]);\r\n });\r\n\r\n existing.singles.map(function (single) {\r\n final.push(single);\r\n });\r\n\r\n history.replaceState(\r\n null,\r\n document.title,\r\n location.pathname + '?' + final.join('&') + hash\r\n );\r\n };\r\n\r\n /**\r\n * Removes specified URL parameters from the current URL and updates the browser history.\r\n * @param {string} params - A string containing URL parameters to be removed (e.g., \"param1¶m2\").\r\n */\r\n const remove = (params) => {\r\n // Split the parameters to be removed and the existing parameters into arrays.\r\n const removeParams = params.split('&');\r\n const existing = location.search.slice(1).split('&');\r\n\r\n // Filter and construct the URL parameters to keep.\r\n const urlParams = existing\r\n .filter((existingUrlParam) => !removeParams.includes(existingUrlParam.split('=')[0]))\r\n .filter((element) => element !== '')\r\n .join('&');\r\n\r\n // Create the final URL.\r\n const finalURL = urlParams.length ? `?${urlParams}` : '';\r\n\r\n // Update the browser history with the new URL.\r\n setTimeout(() => {\r\n history.replaceState(null, document.title, location.pathname + finalURL + location.hash);\r\n }, 0);\r\n };\r\n\r\n var uniqueParams = function (params) {\r\n var querySplit = params.split('?');\r\n\r\n if (querySplit.length !== 2) {\r\n return params;\r\n }\r\n\r\n var paramsSplit = querySplit[1].split('&').filter(function (param) {\r\n // remove empty items in array.\r\n return param;\r\n });\r\n var unique = [];\r\n\r\n for (var i = 0; i < paramsSplit.length; i++) {\r\n var param = paramsSplit[i];\r\n\r\n if (unique.indexOf(param) === -1) {\r\n unique.push(param);\r\n }\r\n }\r\n\r\n return querySplit[0] + '?' + unique.join('&');\r\n };\r\n\r\n // Public functions:\r\n return {\r\n detect: MithrilParams.detect,\r\n extract: extract,\r\n set: set,\r\n remove,\r\n uniqueParams: uniqueParams\r\n };\r\n\r\n});\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/Resize',\r\n function () {\r\n\r\n // Variables:\r\n var callbacks = [];\r\n\r\n // Functions:\r\n var add = function (callback) {\r\n callbacks.push(callback);\r\n };\r\n\r\n // Init:\r\n window.addEventListener('resize', function () {\r\n var amount = callbacks.length;\r\n\r\n for (var i = 0; i < amount; i++) {\r\n callbacks[i]();\r\n }\r\n });\r\n\r\n // Public functions:\r\n return add;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils', [\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils/DateUtils',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils/NumberUtils',\r\n], function (DateUtils, NumberUtils) {\r\n\r\n // Functions:\r\n var openCoupon = function () {\r\n window.location.replace(location.protocol + '//' + location.hostname + '/roed-konto/mine-spil#/1/365/aktive/alle-kanaler/');\r\n };\r\n\r\n var getQueryParam = function (key) {\r\n var params = location.search.slice(1).split('&');\r\n\r\n for (var i = 0; i < params.length; i++) {\r\n var args = params[i].split('=');\r\n if (args[0] == key) {\r\n return decodeURIComponent(args[1]);\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n var prepareParamString = function (options) {\r\n options = options || {};\r\n var keys = Object.keys(options);\r\n var params = [];\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n var val = options[key];\r\n\r\n if (val && val instanceof Array) {\r\n val = val.join(',');\r\n }\r\n\r\n params.push(key + '=' + val);\r\n }\r\n\r\n return params.length ? '?' + params.join('&') : '';\r\n };\r\n\r\n const isMobile = () => document.querySelector('body.is-mobile-detected') || false;\r\n\r\n const isTabletDevice = () => document.querySelector('body.is-tablet-detected') || false;\r\n\r\n var elementFullyScrolledInViewport = function (selector) {\r\n var elem = document.getElementsByClassName(selector);\r\n elem = elem.length > 0 ? elem[0] : null;\r\n if (!elem) return;\r\n\r\n var bounding = elem.getBoundingClientRect();\r\n\r\n return (bounding.left < 0 && Math.abs(bounding.left) > (bounding.width / 2)) ||\r\n (bounding.right > window.innerWidth && (bounding.right - window.innerWidth) > (bounding.width / 2));\r\n };\r\n\r\n var formatNaming = function (name, format, options) {\r\n if (options &&\r\n options.excludedNames &&\r\n options.excludedNames.indexOf(name.toLowerCase()) !== -1) return name;\r\n\r\n if (format === 'lowercase') return name.toLowerCase();\r\n if (format === 'capitalized') return name.charAt(0).toUpperCase() + name.slice(1);\r\n\r\n if (format === 'camelCase') {\r\n var camelCase = {\r\n vikinglotto: 'vikingLotto',\r\n eurojackpot: 'euroJackpot',\r\n allornothing: 'allOrNothing',\r\n lottosaturday: 'lottoSaturday'\r\n };\r\n if (camelCase[name.toLowerCase()]) return camelCase[name.toLowerCase()];\r\n }\r\n\r\n if (format === 'pascalCase') {\r\n var pascalCase = {\r\n lotto: 'Lotto',\r\n vikinglotto: 'VikingLotto',\r\n eurojackpot: 'EuroJackpot',\r\n keno: 'Keno',\r\n allornothing: 'AllOrNothing',\r\n lottosaturday: 'LottoSaturday'\r\n };\r\n if (pascalCase[name.toLowerCase()]) return pascalCase[name.toLowerCase()];\r\n }\r\n\r\n if (format === 'kebabCase') {\r\n var kebabCase = {\r\n vikinglotto: 'viking-lotto',\r\n allornothing: 'all-or-nothing',\r\n lottosaturday: 'lotto-saturday',\r\n eurojackpot: 'euro-jackpot'\r\n };\r\n if (kebabCase[name.toLowerCase()]) return kebabCase[name.toLowerCase()];\r\n }\r\n\r\n if (format === 'alternativeName') {\r\n var alternative = {\r\n lotto: 'lottosaturday'\r\n };\r\n if (options &&\r\n options.alternativeNameFormat &&\r\n alternative[name.toLowerCase()]) {\r\n return formatNaming(alternative[name.toLowerCase()], options.alternativeNameFormat);\r\n }\r\n if (alternative[name.toLowerCase()]) return alternative[name.toLowerCase()];\r\n }\r\n\r\n return name;\r\n };\r\n\r\n\r\n // Public functions:\r\n return {\r\n openCoupon,\r\n getQueryParam,\r\n prepareParamString,\r\n isMobile,\r\n isTabletDevice,\r\n elementFullyScrolledInViewport,\r\n formatNaming,\r\n ...DateUtils,\r\n ...NumberUtils,\r\n };\r\n\r\n});\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/AccountIntegration', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Common/Framework/EventHandling/Scripts/Event',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'DanskeSpil/Domain/Authentification/Scripts/SitecoreAuth',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginController'\r\n], function (m, Event, LoginCache, SitecoreAuth, LoginController) {\r\n\r\n // Variables:\r\n var ready = m.deferred();\r\n\r\n var triggerBalanceUpdate = function () {\r\n window.DSAPI && DSAPI.ready(function () {\r\n DSAPI.Account.doBalanceUpdate();\r\n });\r\n };\r\n\r\n var getLoginStatus = function () {\r\n var deferred = m.deferred();\r\n\r\n SitecoreAuth.getLoginStatus(function (loggedIn) {\r\n deferred.resolve(loggedIn);\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n var checkBalance = function (requiredAmount) {\r\n console.debug('AccountIntegration.checkBalance');\r\n var deferred = m.deferred();\r\n\r\n SitecoreAuth.getUserObj(function (data) {\r\n if (data && data.customerInfo && typeof data.customerInfo.balance !== 'undefined') {\r\n console.debug('current balance', data.customerInfo.balance);\r\n\r\n if (requiredAmount <= data.customerInfo.balance) {\r\n deferred.resolve(true);\r\n } else { // not enough money\r\n deferred.resolve(false);\r\n }\r\n } else { // communcation error or user not logged in\r\n deferred.reject();\r\n }\r\n\r\n }, false);\r\n\r\n return deferred.promise;\r\n\r\n };\r\n\r\n\r\n var getUserData = function () {\r\n var deferred = m.deferred();\r\n\r\n var userObj = LoginCache.getUserObj();\r\n if (userObj && userObj.customerInfo) {\r\n // First, use cache:\r\n deferred.resolve(userObj.customerInfo);\r\n } else {\r\n // Retrieve user data:\r\n SitecoreAuth.getUserObj(function (data) {\r\n if (data && data.customerInfo) {\r\n deferred.resolve(data.customerInfo);\r\n } else { // communcation error or user not logged in\r\n deferred.reject();\r\n }\r\n });\r\n }\r\n\r\n return deferred.promise;\r\n };\r\n\r\n\r\n var openLogin = function (loginSuccessUrl, cancelUrl) {\r\n window.DSAPI && DSAPI.ready(function () {\r\n DSAPI.Account.openLogin({\r\n cancelUrl: cancelUrl || null,\r\n loginSuccessUrl: loginSuccessUrl || null,\r\n });\r\n\r\n });\r\n };\r\n\r\n var openDeposit = function (price) {\r\n var url = DS.Config.PRETTYPREFIX + '/indbetaling?returnurl=' + encodeURIComponent(location.pathname + location.search + location.hash);\r\n\r\n if (price && LoginCache.getUserObj() && LoginCache.getUserObj().customerInfo) {\r\n var instantAmount = price - LoginCache.getUserObj().customerInfo.balance;\r\n if (instantAmount > 0) {\r\n url += '&instantAmount=' + instantAmount;\r\n }\r\n }\r\n\r\n location.href = url;\r\n };\r\n\r\n var openAccountPage = function () {\r\n window.location.href = DS.Config.PRETTYPREFIX + '/mine-spil';\r\n };\r\n\r\n var logout = function (callback) {\r\n LoginController.logout(callback ? { callback: callback } : undefined);\r\n };\r\n\r\n // Initialize - Ready when page load auth sync is finished\r\n if (LoginController.isSynced()) {\r\n ready.resolve();\r\n } else {\r\n Event.subscribe('pageload-auth-synced', function () {\r\n ready.resolve();\r\n });\r\n }\r\n\r\n\r\n return {\r\n ready: ready.promise,\r\n getUserData: getUserData,\r\n getLoginStatus: getLoginStatus,\r\n triggerBalanceUpdate: triggerBalanceUpdate,\r\n checkBalance: checkBalance,\r\n openLogin: openLogin,\r\n openDeposit: openDeposit,\r\n openAccountPage: openAccountPage,\r\n logout: logout\r\n };\r\n\r\n\r\n});\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/Confirm',\r\n ['Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/AccountIntegration'],\r\n function (m, AccountIntegration) {\r\n\r\n // Authenficiation and balance checks:\r\n var checkAuth = function () {\r\n var deferred = m.deferred();\r\n\r\n // Auth check:\r\n AccountIntegration.getLoginStatus().then(function (isLoggedIn) {\r\n if (isLoggedIn) {\r\n deferred.resolve();\r\n } else {\r\n deferred.reject();\r\n }\r\n }, function () {\r\n deferred.reject();\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n var checkBalance = function (requiredAmount) {\r\n var deferred = m.deferred();\r\n\r\n AccountIntegration.checkBalance(requiredAmount).then(function (balanceOk) {\r\n if (!balanceOk) {\r\n deferred.reject('INSUFFICIENT_AMOUNT');\r\n } else {\r\n deferred.resolve();\r\n }\r\n }, function () {\r\n // Something odd went wrong with auth\r\n deferred.reject('AUTH_FAILED');\r\n });\r\n\r\n return deferred.promise;\r\n\r\n };\r\n\r\n var authFailed = function (game) {\r\n console.debug('Auth service failed');\r\n AccountIntegration.logout();\r\n\r\n console.warn('opening login with ', location.href, game().cancelUrl());\r\n\r\n AccountIntegration.openLogin(location.href, game().cancelUrl());\r\n };\r\n\r\n var checkAuthAndBalance = function (game) {\r\n var deferred = m.deferred();\r\n var requiredAmount = game().totalPrice();\r\n\r\n checkAuth().then(function () {\r\n checkBalance(requiredAmount).then(function () {\r\n deferred.resolve();\r\n }, function (error) {\r\n console.debug('checkBalance error', error);\r\n\r\n if (error === 'INSUFFICIENT_AMOUNT') {\r\n\r\n var paymentMethod = 'window';\r\n\r\n if (paymentMethod === 'window') {\r\n deferred.reject('ASK_FOR_DEPOSIT');\r\n } else if (paymentMethod === 'iframe') {\r\n AccountIntegration.openDeposit(requiredAmount, function () {\r\n location.href = game().cancelUrl();\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n if (error === 'AUTH_FAILED') {\r\n // Auth failed\r\n authFailed(game);\r\n }\r\n\r\n });\r\n }, function () {\r\n // Auth failed\r\n authFailed(game);\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n var getPurchaseError = function (errorType) {\r\n var customErrors = {\r\n 'NUMBERGAMES.NO_OPEN_DRAW': 'NoOpenDraw',\r\n 'NUMBERGAMES.OPEN_DRAW_MISMATCH': 'DrawMismatch',\r\n 'NUMBERGAMES.PLAYER_RESTRICTED_FROM_BUY': 'PlayerRestrictedFromBuy',\r\n 'NUMBERGAMES.GAMEPROVIDER_TIMEOUT': 'GameProviderTimeout',\r\n 'CLIENT.TIMEOUT': 'ClientConnectionTimeout',\r\n 'CLIENT.REFUSED': 'ClientConnectionRefused'\r\n };\r\n return customErrors[errorType] || 'TechnicalError';\r\n };\r\n\r\n\r\n var handlePurchaseError = function (game, errorMessage, showErrorCallback) {\r\n\r\n if (errorMessage == 'NUMBERGAMES.NO_FUNDS') {\r\n AccountIntegration.openDeposit(game().totalPrice(), function () {\r\n location.href = game().cancelUrl();\r\n });\r\n } else if (errorMessage == 'USER_UNAUTHORIZED') {\r\n checkAuthAndBalance();\r\n } else {\r\n showErrorCallback(errorMessage);\r\n }\r\n\r\n };\r\n\r\n\r\n return {\r\n checkAuthAndBalance: checkAuthAndBalance,\r\n getPurchaseError: getPurchaseError,\r\n handlePurchaseError: handlePurchaseError\r\n };\r\n\r\n\r\n });\r\n","\r\ndefineDs('DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n // Context:\r\n var Overlay = function (template) {\r\n\r\n // Variables:\r\n this.$container = m.prop();\r\n this.$wrapper = m.prop(document.getElementById('wrapper'));\r\n\r\n // Functions:\r\n this.clear = function (action) {\r\n var self = this;\r\n\r\n return function () {\r\n var $container = self.$container();\r\n var $gameOverlay = document.querySelector('.'.concat(template.class().split(' ').join('.')));\r\n var $wrapper = self.$wrapper();\r\n\r\n function onAnimationEnd() {\r\n if ($container && $container.parentNode) {\r\n $container.parentNode.removeChild($container);\r\n }\r\n\r\n $wrapper.className = $wrapper.className.replace('remove-overlay', '');\r\n\r\n if (typeof action === 'function') {\r\n action();\r\n }\r\n\r\n m.redraw();\r\n }\r\n\r\n $gameOverlay.classList.add('remove-overlay');\r\n\r\n $wrapper.className = $wrapper.className.replace('overlay-active', 'remove-overlay');\r\n\r\n $gameOverlay.addEventListener('animationend', onAnimationEnd);\r\n };\r\n }.bind(this);\r\n\r\n this.render = function (confirm, dismiss) {\r\n var $overlay = document.createElement('div');\r\n\r\n var render = template.render(this.clear(confirm, 'confirm'), this.clear(dismiss, 'dismiss'));\r\n\r\n m.render($overlay, render);\r\n\r\n this.$container($overlay);\r\n }.bind(this);\r\n\r\n this.show = function (confirm, dismiss) {\r\n this.render(confirm, dismiss);\r\n this.$wrapper().classList.add('overlay-active');\r\n\r\n document.body.appendChild(this.$container());\r\n }.bind(this);\r\n\r\n };\r\n\r\n // Public functions:\r\n return Overlay;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Templates/ErrorOverlay',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n // Context:\r\n var ErrorOverlay = function (className, dictionary) {\r\n\r\n // Return:\r\n return {\r\n class: m.prop(className),\r\n\r\n render: function (dismiss) {\r\n return m('div', { class: this.class() }, [\r\n m('div', { class: 'pannel' }, [\r\n m('div', { class: 'icon-wrapper' }, [\r\n m('svg', { class: 'icon' }, m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-error' }))\r\n ]),\r\n m('h2', { class: 'headline' }, dictionary.header),\r\n m('p', { class: 'text' }, dictionary.body),\r\n m('div', { class: 'buttons' }, [\r\n m('button', { class: 'btn dogderblue button-confirm', onclick: dismiss, style: 'float: none;' }, dictionary.dismiss)\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n };\r\n\r\n // Public functions:\r\n return ErrorOverlay;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Templates/CouponOverlay',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n // Context:\r\n var CouponOverlay = function (className, couponId, dictionary) {\r\n\r\n var printCoupon = function () {\r\n return function () {\r\n document.getElementsByClassName('coupon-iframe')[0].contentWindow.focus();\r\n document.getElementsByClassName('coupon-iframe')[0].contentWindow.print();\r\n };\r\n };\r\n\r\n // Return:\r\n return {\r\n class: m.prop(className),\r\n\r\n render: function (dismiss) {\r\n return m('div', { class: this.class() }, [\r\n m('div', { class: 'pannel' }, [\r\n m('div', { class: 'coupon-iframe-wrapper' }, [\r\n m('iframe', {\r\n class: 'coupon-iframe',\r\n src: window.location.origin + '/' + window.location.pathname.split('/')[1] + '/vis-kupon?couponId=' + couponId,\r\n frameborder: '0',\r\n allowfullscreen: '0'\r\n })\r\n ]),\r\n m('div', { class: 'buttons' }, [\r\n m('button', { class: 'btn cta', onclick: printCoupon() }, dictionary.printButton),\r\n m('button', { class: 'btn cta', onclick: dismiss }, dictionary.closeButton)\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n };\r\n\r\n // Public functions:\r\n return CouponOverlay;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Templates/Countdown',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/TimeUtils/Scripts/TimeUtils',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/MithrilRedrawEverySecond'\r\n ],\r\n function (m, TimeUtils, MithrilRedrawEverySecond) {\r\n\r\n // View:\r\n var Countdown = function (options) {\r\n\r\n // Variables:\r\n var d = options.dictionary;\r\n\r\n // Calculate diff\r\n var currentTime = TimeUtils.getCurrentDateTime();\r\n var diffSeconds = 0;\r\n\r\n if (options.countdownTime) {\r\n diffSeconds = Math.floor((options.countdownTime) - (currentTime.getTime() / 1000));\r\n var days = Math.floor(diffSeconds / 86400) <= 0 ? 0 : Math.floor(diffSeconds / 86400);\r\n var hours = Math.floor(diffSeconds / 3600 % 24) <= 0 ? 0 : Math.floor(diffSeconds / 3600) % 24;\r\n var minutes = Math.floor(diffSeconds % 3600 / 60) <= 0 ? 0 : Math.floor(diffSeconds % 3600 / 60);\r\n var seconds = Math.floor(diffSeconds % 3600 % 60) <= 0 ? 0 : Math.floor(diffSeconds % 3600 % 60);\r\n }\r\n\r\n // Config:\r\n var setupTimer = function (ignoredElement, rendered) {\r\n if (!rendered) {\r\n MithrilRedrawEverySecond.start();\r\n }\r\n };\r\n\r\n\r\n // View:\r\n if (diffSeconds < 1) {\r\n return null;\r\n }\r\n\r\n if (options.disabled) {\r\n return m('.countdown', [\r\n m('h2', { class: 'countdown-headline disabled' }, d('Countdown/CountdownDisabledHeading'))\r\n ]);\r\n } else {\r\n let headlineText = d('Countdown/ReceiptCountdownHeading', { gameName: options.gameName });\r\n if (options.noOpenDraw) {\r\n headlineText = d('Countdown/NoOpenDrawCountdownHeading') !== '!' ? d('Countdown/NoOpenDrawCountdownHeading') : null;\r\n }\r\n if (options.alternativeHeadline) {\r\n headlineText = options.alternativeHeadline;\r\n }\r\n return m('.countdown' + (options.noOpenDraw === true ? ' .no-opendraw' : ''), { config: setupTimer }, [\r\n m('h2', { class: 'countdown-headline' }, headlineText),\r\n (days > 0 ?\r\n m('.number-container', [\r\n m('span.number.days', days),\r\n m('span.time-denominator', days === 1 ? 'dag' : 'dage')\r\n ]) : ''\r\n ),\r\n m('.number-container', [\r\n m('span.number.hours', hours),\r\n m('span.time-denominator', hours === 1 ? 'time' : 'timer')\r\n ]),\r\n m('.number-container', [\r\n m('span.number.minutes', minutes),\r\n m('span.time-denominator', 'min.')\r\n ]),\r\n (days <= 0 ? [\r\n m('.number-container', [\r\n m('span.number.seconds', seconds),\r\n m('span.time-denominator', 'sek.')\r\n ])\r\n ] : '')\r\n ]);\r\n }\r\n\r\n };\r\n\r\n // Public functions:\r\n return Countdown;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Templates/SelectDropdown',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'Common/Framework/EventHandling/Scripts/OutsideClick',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/DOMUtils',\r\n ],\r\n function (m, Render, OutsideClick, DOMUtils) {\r\n\r\n // Variables:\r\n var dropdownActive = false;\r\n\r\n // View:\r\n var SelectDropdown = function (controller, options, selected, select) {\r\n\r\n // Elements:\r\n var $selectDropdown = m.prop();\r\n var $selectPlaceholder = m.prop();\r\n var $selectOptions = m.prop();\r\n var $selectOptionsList = m.prop();\r\n var $selectOptionsItem = m.prop();\r\n\r\n // Variables:\r\n var render = Render();\r\n\r\n // Functions:\r\n var selectOption = function (value) {\r\n return function () {\r\n select(value);\r\n };\r\n };\r\n\r\n const setScrollTop = (element, value) => {\r\n if (!element) return;\r\n element.scrollTop = value;\r\n };\r\n\r\n\r\n var toggleSelect = function () {\r\n var $wrapper = $selectDropdown();\r\n var $placeholder = $selectPlaceholder();\r\n var placeholderHeight = DOMUtils.calculateElementOuterHeight($placeholder);\r\n var $selectOptionsBox = $selectOptions();\r\n var $optionsList = $selectOptionsList();\r\n var $optionsItem = $selectOptionsItem();\r\n var dropdownListHeight = DOMUtils.calculateElementOuterHeight($optionsList);\r\n var dropdownHeight = dropdownListHeight + placeholderHeight;\r\n var itemHeight = $optionsItem ? DOMUtils.calculateElementOuterHeight($optionsItem) : 0;\r\n var selectPosition = DOMUtils.getElementOffset($placeholder).top - window.scrollY; // eslint-disable-line compat/compat\r\n var possibleMaxHeight = 0;\r\n var windowHeight = window.innerHeight;\r\n\r\n dropdownActive = !dropdownActive;\r\n\r\n if (dropdownActive) {\r\n $wrapper.classList.remove('reversed');\r\n }\r\n\r\n if (dropdownHeight > windowHeight - selectPosition && dropdownActive) {\r\n if (windowHeight - selectPosition - placeholderHeight > itemHeight * 3) {\r\n $selectOptionsBox.classList.add('overflowed');\r\n setScrollTop($selectOptionsBox, 0);\r\n $wrapper.classList.remove('reversed');\r\n\r\n possibleMaxHeight = windowHeight - selectPosition - placeholderHeight;\r\n } else {\r\n $wrapper.classList.add('reversed');\r\n\r\n if (dropdownListHeight > selectPosition) {\r\n possibleMaxHeight = selectPosition;\r\n } else {\r\n possibleMaxHeight = dropdownListHeight + 10;\r\n }\r\n\r\n if (possibleMaxHeight < dropdownListHeight) {\r\n $selectOptionsBox.classList.add('overflowed');\r\n setScrollTop($selectOptionsBox, dropdownListHeight - possibleMaxHeight);\r\n }\r\n }\r\n } else {\r\n possibleMaxHeight = dropdownListHeight + 10;\r\n\r\n $selectOptionsBox.classList.remove('overflowed');\r\n }\r\n\r\n $wrapper.classList.toggle('is-active', dropdownActive);\r\n\r\n $selectOptionsBox.style.maxHeight = (dropdownActive ? possibleMaxHeight - 10 : 0) + 'px';\r\n\r\n };\r\n // Renders:\r\n render.ready.then(function (nodes) {\r\n\r\n $selectDropdown((nodes['select-dropdown'].$element));\r\n $selectPlaceholder((nodes['select-placeholder'].$element));\r\n $selectOptions((nodes['select-options'].$element));\r\n $selectOptionsList((nodes['select-options-list'].$element));\r\n\r\n if (nodes['select-options-item']) {\r\n var $options = [];\r\n\r\n for (var i = 0; i < nodes['select-options-item'].length; i++) {\r\n $options.push(nodes['select-options-item'][i].$element);\r\n }\r\n\r\n $selectOptionsItem(($options));\r\n }\r\n\r\n OutsideClick(nodes['select-dropdown'].$element, nodes['select-dropdown'].context, function () {\r\n $selectDropdown().classList.toggle('is-active', false);\r\n $selectOptions().style.maxHeight = 0;\r\n\r\n dropdownActive = dropdownActive || false;\r\n });\r\n });\r\n\r\n // View:\r\n return m('div', { class: 'select-dropdown', config: render.depend('select-dropdown'), onclick: toggleSelect }, [\r\n m('span', { class: 'cs-placeholder', config: render.depend('select-placeholder') }, [\r\n selected() ? selected().name : controller.d('SelectDropdown/Placeholder'),\r\n m('svg', { class: 'select-dropdown-arrow' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-down-arrow' })\r\n ])\r\n ]),\r\n m('div', { class: 'select-options', config: render.depend('select-options') }, [\r\n m('ul', { config: render.depend('select-options-list') }, [\r\n options().map(function (option) {\r\n return m('li', { config: render.depend('select-options-item') }, [\r\n m('span', { onclick: selectOption(option) }, option.name)\r\n ]);\r\n })\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n // Public functions:\r\n return SelectDropdown;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Templates/ReceiveWinnerMessage',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n ],\r\n function (m) {\r\n\r\n // View:\r\n var ReceiveWinnerMessage = function (controller, styleClassPrefix, iconUrl) {\r\n\r\n var d = controller.d;\r\n\r\n\r\n // View:\r\n return m('div', { class: 'win-message-container' }, [\r\n\r\n // Icon\r\n iconUrl ? m('svg', { class: 'receive-winner-message-icon' },\r\n m('use', { class: 'receive-winner-message-icon', href: iconUrl })\r\n ) : null,\r\n\r\n m('div', { class: 'notice-step' }, [\r\n\r\n // Texts\r\n m('h2', { class: 'headline' }, controller.d('ConfirmStep/ReceiveWinnerMessage/Headline')),\r\n m('h3', { class: 'subheadline' }, controller.d('ConfirmStep/ReceiveWinnerMessage/Subheadline')),\r\n\r\n // Email checkbox\r\n m('div', { class: 'checkbox-container' }, [\r\n m('div', { class: styleClassPrefix + '-checkbox' }, [\r\n m('label', { class: 'ios-skin', for: 'email' }, [\r\n m('input', { type: 'checkbox', id: 'email', 'data-role': 'email', value: '1', onchange: m.withAttr('checked', controller.notifyPrizeEmail) }),\r\n m('span', { class: 'ios-skin_body' }, [\r\n m('span', { class: 'ios-skin_switch' })\r\n ]),\r\n m('i', { class: 'checkmark' })\r\n ]),\r\n m('label', { class: 'media-label', for: 'email' }, [\r\n m('p', { class: 'media-text' }, d('ConfirmStep/ReceiveWinnerMessage/EmailText'))\r\n ])\r\n ]),\r\n\r\n // SMS checkbox\r\n m('div', { class: styleClassPrefix + '-checkbox' }, [\r\n m('label', { class: 'ios-skin', for: 'sms' }, [\r\n m('input', { type: 'checkbox', id: 'sms', 'data-role': 'sms', value: '1', onchange: m.withAttr('checked', controller.notifyPrizeSms) }),\r\n m('span', { class: 'ios-skin_body' }, [\r\n m('span', { class: 'ios-skin_switch' })\r\n ]),\r\n m('i', { class: 'checkmark' })\r\n ]),\r\n m('label', { class: 'media-label', for: 'sms' }, [\r\n m('p', { class: 'media-text' }, d('ConfirmStep/ReceiveWinnerMessage/SmsText'))\r\n ])\r\n ])\r\n ])\r\n\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return ReceiveWinnerMessage;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/StorageCheck',\r\n [\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/ErrorOverlay',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage'\r\n ],\r\n function (Overlay, ErrorOverlay, Storage) {\r\n\r\n // Support:\r\n if (!Storage.supported) {\r\n new Overlay(ErrorOverlay('all-or-nothing-classic-game-overlay eurojackpot-classic-game-overlay keno-million-game-overlay lotto-classic-game-overlay vikinglotto-classic-game-overlay', {\r\n header: 'HOVSA!',\r\n body: 'Din browser er indstillet til ikke at gemme webside-data. Hvis du vil tilgÃ¥ danskespil.dk, er du nødt til at gøre det i normal browsertilstand.',\r\n dismiss: 'OK'\r\n })).show();\r\n }\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/Helpers/NumberGamesDictionary',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Dictionary'\r\n ],\r\n function (Dictionary) {\r\n\r\n return new Dictionary('/NumberGames');\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/HowToPlayContent', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render'\r\n],\r\nfunction (m, Render) {\r\n\r\n // Template:\r\n var HowToPlayContent = function (controller, settings) {\r\n\r\n // Variables:\r\n var render = Render();\r\n var data = controller.property('howToPlayData');\r\n\r\n // Functions:\r\n var playVideo = function (content) {\r\n return function () {\r\n\r\n if (content) {\r\n content.playing = true;\r\n var player;\r\n\r\n // YouTube:\r\n if (content.provider === 'youtube') {\r\n player = new window.YT.Player(content.contentId, {\r\n events: {\r\n onReady: function () {\r\n play();\r\n }\r\n }\r\n });\r\n\r\n var play = function () {\r\n player.playVideo();\r\n };\r\n\r\n // Vimeo:\r\n } else if (content.provider === 'vimeo') {\r\n player = new window.Vimeo.Player(data.nodes['vimeo-iframe-' + content.contentId].$element);\r\n\r\n player.ready().then(function () {\r\n player.play();\r\n });\r\n }\r\n }\r\n };\r\n };\r\n\r\n // Render:\r\n render.ready.then(function (nodes) {\r\n data.nodes = nodes;\r\n\r\n if (!data.youtube.ready) {\r\n include('https://www.youtube.com/iframe_api', function () {\r\n window.onYouTubeIframeAPIReady = function () {\r\n data.youtube.ready = true;\r\n };\r\n });\r\n }\r\n\r\n if (!data.vimeo.ready) {\r\n include('https://player.vimeo.com/api/player.js', function () {\r\n data.vimeo.ready = true;\r\n });\r\n }\r\n\r\n controller.property('howToPlayData', data);\r\n });\r\n\r\n // View:\r\n var items = [].concat(data.youtube.contents).concat(data.vimeo.contents).concat(data.slideshare.contents).sort(function (a, b) {\r\n return a.order > b.order ? 1 : -1;\r\n });\r\n\r\n return m('div', { class: 'how-to-play-content', config: render.depend('content') }, [\r\n m('h1', { class: 'headline' }, settings.header),\r\n m('p', { class: 'text' }, settings.text),\r\n m('div', { class: 'video-list' }, [\r\n items.map(function (content) {\r\n var id = content.contentId;\r\n var name = content.title;\r\n var provider = content.provider;\r\n\r\n return m('div', { class: 'video-element' }, [\r\n m('h2', { class: 'video-headline' }, name),\r\n m('div', { class: 'video-box ' + (content.playing ? 'video-playing' : 'video-ready') }, [\r\n m('div', { class: 'video-frame' }, controller.getFrame(content, render)),\r\n content.hasPreviewImage ? m('img', { src: content.previewImage, class: 'video-image', alt: name }) : null,\r\n m('div', { class: 'video-overlay', config: render.depend(provider + '-play-button-' + id), onclick: playVideo(content) }, [\r\n m('div', { class: 'video-play-button' }, [\r\n m('div', { class: 'play-spinner' }),\r\n m('div', { class: 'play-button' })\r\n ])\r\n ])\r\n ])\r\n ]);\r\n })\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return HowToPlayContent;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/HowToPlayPopup', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Project/Design/Js/Global/HashChange',\r\n 'DanskeSpil/Domain/NumberGames/Scripts/HowToPlayContent'\r\n],\r\nfunction (Component, HashChange, HowToPlayContent) {\r\n\r\n // Component:\r\n Component('how-to-play-popup', function (m, route, settings, property) {\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n var hash = 'how-to-play';\r\n var youtube = [];\r\n var youtubeIds = [];\r\n var vimeo = [];\r\n var vimeoIds = [];\r\n var slideshare = [];\r\n var slideshareIds = [];\r\n var requests = [];\r\n var $body = document.body;\r\n var $html = document.documentElement;\r\n var $popup = document.querySelector('.how-to-play-popup');\r\n\r\n this.property = property;\r\n\r\n if (!this.property('activated') && !this.property('loading')) {\r\n this.property('activated', false);\r\n this.property('loading', true);\r\n }\r\n\r\n // Functions:\r\n var popupOpen = function () {\r\n document.querySelector('.how-to-play-popup').classList.add('show');\r\n\r\n let bodyLockedEventTriggered = false;\r\n $popup.addEventListener('transitionend', () => {\r\n if (!bodyLockedEventTriggered) {\r\n $body.classList.add('lock');\r\n $html.classList.add('lock');\r\n }\r\n bodyLockedEventTriggered = true;\r\n });\r\n\r\n if (this.property('loading') && !this.property('activated')) {\r\n this.property('activated', true);\r\n\r\n settings.contents.forEach(function (value, index) {\r\n var id = value.contentId;\r\n\r\n value.html = '';\r\n value.order = index;\r\n value.playing = false;\r\n value.ready = false;\r\n\r\n // YouTube:\r\n if (value.provider === 'youtube' && youtubeIds.indexOf(id) === -1) {\r\n youtubeIds.push(id);\r\n youtube.push(value);\r\n\r\n // Vimeo:\r\n } else if (value.provider === 'vimeo' && vimeoIds.indexOf(id) === -1) {\r\n vimeo.push(value);\r\n vimeoIds.push(id);\r\n\r\n // SlideShare:\r\n } else if (value.provider === 'slideshare' && slideshareIds.indexOf(id) === -1) {\r\n var requestUrl = value.url + value.contentId + '&format=jsonp';\r\n\r\n requests.push(m.request({\r\n dataType: 'jsonp',\r\n url: requestUrl,\r\n callbackKey: 'callback',\r\n config: function (xhr) {\r\n xhr.setRequestHeader('Content-Type', 'application/javascript');\r\n }\r\n }).then(function (response) {\r\n value.html = response.html;\r\n\r\n slideshareIds.push(id);\r\n slideshare.push(value);\r\n }, function (error) {\r\n console.error('Error', error);\r\n }));\r\n }\r\n });\r\n\r\n m.sync(requests).then(function () {\r\n this.property('howToPlayData', {\r\n youtube: { ready: false, contents: youtube },\r\n vimeo: { ready: false, contents: vimeo },\r\n slideshare: { ready: false, contents: slideshare }\r\n });\r\n\r\n this.property('loading', false);\r\n\r\n m.redraw();\r\n }.bind(this));\r\n }\r\n\r\n m.redraw();\r\n }.bind(this);\r\n\r\n this.popupClose = function () {\r\n location.hash = '';\r\n\r\n document.querySelector('.how-to-play-popup').classList.remove('show');\r\n\r\n $body.classList.remove('lock');\r\n $html.classList.remove('lock');\r\n }.bind(this);\r\n\r\n this.getFrame = function (content, render) {\r\n if (content.provider === 'vimeo' || content.provider === 'youtube') {\r\n return m('iframe', {\r\n config: render.depend(content.provider + '-iframe-' + content.contentId),\r\n src: content.url,\r\n frameborder: '0',\r\n allowfullscreen: '0',\r\n id: content.contentId\r\n });\r\n } else if (content.provider === 'slideshare') {\r\n return m.trust(content.html);\r\n }\r\n };\r\n\r\n // Context:\r\n if (location.hash === '#' + hash) {\r\n popupOpen();\r\n }\r\n\r\n document.querySelector('[href=\"#' + hash + '\"]')?.addEventListener('click', function (event) {\r\n event.preventDefault();\r\n popupOpen(); // To do: Fix this properly so it triggers on hash change\r\n history.pushState(null, null, '#' + hash);\r\n });\r\n\r\n HashChange.match(hash, function () {\r\n popupOpen();\r\n });\r\n\r\n },\r\n\r\n // View:\r\n view: function (controller) {\r\n return m('div', { class: 'how-to-play-section' }, [\r\n m('div', { class: 'how-to-play-content-wrapper' }, [\r\n m('div', { class: 'close-button-wrapper' }, [\r\n m('a', { class: 'btn close help-link', onclick: controller.popupClose }),\r\n ]),\r\n controller.property('activated') && !controller.property('loading') ? HowToPlayContent(controller, settings) : null\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n // Routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/HowToPlay', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/NumberGames/Scripts/HowToPlayContent'\r\n],\r\nfunction (Component, HowToPlayContent) {\r\n\r\n // Component:\r\n Component('how-to-play', function (m, route, settings, property) {\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n this.loading = m.prop(true);\r\n this.property = property;\r\n\r\n this.getFrame = function (content, render) {\r\n if (content.provider === 'vimeo' || content.provider === 'youtube') {\r\n return m('iframe', {\r\n config: render.depend(content.provider + '-iframe-' + content.id),\r\n src: content.url,\r\n frameborder: '0',\r\n allowfullscreen: '0',\r\n id: content.contentId\r\n });\r\n } else if (content.provider === 'slideshare') {\r\n return m.trust(content.html);\r\n }\r\n }.bind(this);\r\n\r\n // Setup:\r\n var youtube = [];\r\n var youtubeIds = [];\r\n var vimeo = [];\r\n var vimeoIds = [];\r\n var slideshare = [];\r\n var slideshareIds = [];\r\n var requests = [];\r\n\r\n settings.contents.forEach(function (value, index) {\r\n var id = value.contentId;\r\n\r\n value.html = '';\r\n value.order = index;\r\n value.playing = false;\r\n value.ready = false;\r\n\r\n // YouTube:\r\n if (value.provider === 'youtube' && youtubeIds.indexOf(id) === -1) {\r\n youtubeIds.push(id);\r\n youtube.push(value);\r\n\r\n // Vimeo:\r\n } else if (value.provider === 'vimeo' && vimeoIds.indexOf(id) === -1) {\r\n vimeo.push(value);\r\n vimeoIds.push(id);\r\n\r\n // SlideShare:\r\n } else if (value.provider === 'slideshare' && slideshareIds.indexOf(id) === -1) {\r\n var requestUrl = value.url + value.contentId + '&format=jsonp';\r\n\r\n requests.push(m.request({\r\n dataType: 'jsonp',\r\n url: requestUrl,\r\n callbackKey: 'callback',\r\n config: function (xhr) {\r\n xhr.setRequestHeader('Content-Type', 'application/javascript');\r\n }\r\n }).then(function (response) {\r\n value.html = response.html;\r\n\r\n slideshareIds.push(id);\r\n slideshare.push(value);\r\n }, function (error) {\r\n console.error('Error', error);\r\n }));\r\n }\r\n });\r\n\r\n m.sync(requests).then(function () {\r\n this.property('howToPlayData', {\r\n youtube: { ready: false, contents: youtube },\r\n vimeo: { ready: false, contents: vimeo },\r\n slideshare: { ready: false, contents: slideshare }\r\n });\r\n\r\n this.loading(false);\r\n\r\n m.redraw();\r\n }.bind(this));\r\n\r\n },\r\n\r\n // View:\r\n view: function (controller) {\r\n return m('div', { class: 'how-to-play-section' }, [\r\n m('div', { class: 'how-to-play-content-wrapper' }, [\r\n m('div', { class: 'close-button-wrapper' }),\r\n !controller.loading() ? HowToPlayContent(controller, settings) : null\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n // Routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n});","defineDs('DanskeSpil/Domain/NumberGames/Scripts/NonMithril/CarouselSpot', [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Hammer'\r\n], function (Hammer) {\r\n\r\n // Return if no carouselspot in DOM\r\n const $carousel = document.querySelector('.carousel');\r\n if (!$carousel) {\r\n return;\r\n }\r\n\r\n if (window.sitecoreEnv) {\r\n return;\r\n }\r\n\r\n // Utils.logDeprecated('Domain/NumberGames/Scripts/NonMithril/CarouselSpot.js - .carousel'); // Used on /eurojackpot/pakke-kvittering (12/9-2022)\r\n\r\n let settings = $carousel.getAttribute('data-settings') || {};\r\n if (typeof settings === 'string') {\r\n settings = JSON.parse(settings);\r\n }\r\n\r\n var show;\r\n var started = false;\r\n var SlideShowConstructor = function (el) {\r\n\r\n\r\n var slideShow = {\r\n\r\n // vars\r\n el: el,\r\n timer: undefined,\r\n animFreq: 10,\r\n slideWidth: undefined,\r\n slideCount: 0,\r\n slideMargin: 0,\r\n currentSlide: 0,\r\n\r\n initialize: function () {\r\n var slides = el.children;\r\n // animation frequency\r\n\r\n this.animFreq = settings.animationInterval != -1 ? settings.animationInterval * 1000 : 2000;\r\n\r\n // slide width including margin\r\n var slideStyle = slides[0].currentStyle || window.getComputedStyle(slides[0]);\r\n\r\n this.slideWidth = slides[0].offsetWidth + parseInt(slideStyle.marginRight, 10);\r\n this.slideMargin = parseInt(slideStyle.marginRight, 10);\r\n\r\n // slide amount found inside ´el´\r\n this.slideCount = slides.length;\r\n // set slide track width\r\n // this.el.style = 'width: ' + (parseInt(this.slideCount * this.slideWidth, 10) + 10) + 'px';\r\n // remove listener for anchors\r\n\r\n Array.prototype.forEach.call(slides, function (el) {\r\n // el.childNodes[1].childNodes[0].addEventListener('click', function (e) {\r\n el.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n return false;\r\n });\r\n });\r\n\r\n this._createNav();\r\n // this._setStartPos();\r\n },\r\n\r\n // start slideshow\r\n start: function () {\r\n this.stop();\r\n this.timer = setInterval(this.changeSlide.bind(this), this.animFreq);\r\n },\r\n\r\n // stop slideshow\r\n stop: function () {\r\n clearInterval(this.timer);\r\n },\r\n\r\n // change to slide fn(x)\r\n changeSlide: function (slide, e) {\r\n this.currentSlide = slide != undefined ? slide : this._getNextSlide();\r\n this._animateSlide(this.currentSlide * this.slideWidth, e);\r\n },\r\n\r\n // center the first slide\r\n // _setStartPos: function () {\r\n // var leftOffset = (window.innerWidth - (this.slideWidth - this.slideMargin)) / 2;\r\n // el.style.left = leftOffset + 'px';\r\n // },\r\n\r\n // return incremented slide or\r\n // ´0´ if we've reach the end\r\n _getNextSlide: function () {\r\n return this.currentSlide < this.slideCount - 1 ? this.currentSlide + 1 : 0;\r\n },\r\n\r\n // translate used as animation\r\n _animateSlide: function (x) {\r\n el.className += ' animate';\r\n el.style.transform = 'translateX(-' + x + 'px)';\r\n\r\n this.updateUI(this.currentSlide);\r\n this.animTime = setTimeout(function () {\r\n el.className = el.className.replace('animate', '').trim();\r\n }, 300);\r\n\r\n },\r\n\r\n updateUI: function (index) {\r\n var nodes = this.nav.childNodes;\r\n if (nodes[this.currentSlide]) {\r\n\r\n for (var i = 0; i < nodes.length; i++) {\r\n nodes[i].className = nodes[i].className.replace('active', '').trim();\r\n }\r\n nodes[index].className += ' active';\r\n }\r\n },\r\n\r\n _createNav: function () {\r\n this.nav = document.createElement('div');\r\n this.nav.className = 'carousel-nav';\r\n\r\n for (var i = 0; i < this.slideCount; i++) {\r\n var span = document.createElement('span');\r\n span.setAttribute('data-slide', i);\r\n if (i === 0) span.className += ' active';\r\n this.nav.appendChild(span);\r\n }\r\n this.el.parentNode.appendChild(this.nav);\r\n\r\n this._createNavListeners();\r\n },\r\n\r\n // hook click listener to nav\r\n _createNavListeners: function () {\r\n var els = el.parentElement.getElementsByClassName('carousel-nav')[0];\r\n var self = this;\r\n\r\n els.addEventListener('click', function (e) {\r\n self._clickSlideNav(e);\r\n });\r\n },\r\n\r\n // change slide based on ´data-slide´ value\r\n _clickSlideNav: function (e) {\r\n this.stop();\r\n this.changeSlide(parseInt(e.target.getAttribute('data-slide'), 10), e);\r\n this.start();\r\n }\r\n };\r\n\r\n return slideShow;\r\n\r\n };\r\n\r\n\r\n function HammerCarousel(slideshow) {\r\n this.slideshow = slideshow || {};\r\n this.container = slideshow.el;\r\n this.slideWidth = slideshow.slideWidth;\r\n\r\n this.hammer = new Hammer.Manager(this.container, {\r\n // domEvents: true,\r\n recognizers: [\r\n [Hammer.Tap],\r\n [Hammer.Pan]\r\n ]\r\n });\r\n this.hammer.on('tap panstart panmove panend pancancel', Hammer.bindFn(this.onPan, this));\r\n this.show(this.slideshow.currentSlide);\r\n }\r\n\r\n HammerCarousel.prototype = {\r\n\r\n show: function (showIndex, percent, animate) {\r\n var className = this.container.className;\r\n if (animate) {\r\n if (className.indexOf('animate') === -1) {\r\n this.container.className += ' animate';\r\n }\r\n this.slideshow.stop();\r\n this.slideshow.start();\r\n this.slideshow.updateUI(this.slideshow.currentSlide);\r\n } else {\r\n if (className.indexOf('animate') !== -1) {\r\n this.container.className = this.container.className.replace('animate', '').trim();\r\n }\r\n }\r\n\r\n var pos = (this.slideWidth / 100) * (((showIndex) * 100) + percent);\r\n if (pos > 2 * this.slideWidth) {\r\n return false;\r\n }\r\n\r\n var translate = 'translate(-' + pos + 'px)';\r\n\r\n this.container.style.transform = translate;\r\n this.container.style.mozTransform = translate;\r\n this.container.style.webkitTransform = translate;\r\n\r\n this.slideshow.currentSlide = showIndex;\r\n },\r\n\r\n onPan: function (ev) {\r\n\r\n var delta = ev.deltaX;\r\n var percent = (100 / this.slideWidth) * delta;\r\n var animate = false;\r\n // var lock = false; // not used according to lint\r\n\r\n if (ev.type == 'panend' || ev.type == 'pancancel') {\r\n if (Math.abs(percent) > 20 && ev.type == 'panend') {\r\n this.slideshow.currentSlide += (percent < 0) ? 1 : -1;\r\n if (this.slideshow.currentSlide < 0) {\r\n this.slideshow.currentSlide = 0;\r\n }\r\n if (this.slideshow.currentSlide > 2) {\r\n this.slideshow.currentSlide = 2;\r\n }\r\n }\r\n percent = 0;\r\n animate = true;\r\n }\r\n\r\n if (ev.type == 'tap') {\r\n\r\n var target = ev.target;\r\n if (target) {\r\n var href = target.tagName == 'A' ? target.href : target.closest('a')?.attributes['href'].nodeValue;\r\n if (href) {\r\n location.href = href;\r\n }\r\n }\r\n\r\n }\r\n\r\n this.show(this.slideshow.currentSlide, -percent, animate);\r\n }\r\n };\r\n\r\n var runSlideshow = function (els) {\r\n var array = [];\r\n\r\n if (show) {\r\n show.start();\r\n }\r\n\r\n for (var i = 0; i < els.length; i++) {\r\n if (!started) {\r\n\r\n show = new SlideShowConstructor(els[i], {});\r\n show.initialize();\r\n show.start();\r\n\r\n new HammerCarousel(show, Hammer.DIRECTION_HORIZONTAL);\r\n\r\n array.push(show);\r\n }\r\n\r\n }\r\n started = true;\r\n\r\n return array;\r\n };\r\n\r\n var stopSlideshow = function () {\r\n show.stop();\r\n };\r\n\r\n // find the elements that need slidshow capabilities\r\n var slideshowElements = [];\r\n Array.prototype.forEach.call(document.getElementsByClassName('carousel'), function (el) {\r\n slideshowElements.push(el);\r\n });\r\n\r\n if (window.innerWidth < 960) {\r\n // add slideshow capabilities to each el\r\n if (!started) {\r\n runSlideshow(slideshowElements);\r\n }\r\n }\r\n\r\n window.onresize = function () {\r\n var $nav = document.querySelector('.carousel-nav');\r\n if (window.innerWidth < 960) {\r\n $nav.style.display = 'inline-block';\r\n\r\n SlideShowConstructor();\r\n runSlideshow(slideshowElements);\r\n\r\n }\r\n if (window.innerWidth >= 960) {\r\n $nav.style.display = 'none';\r\n var carouselSpot = document.getElementsByClassName('carousel')[0];\r\n carouselSpot.removeAttribute('style');\r\n if (show) {\r\n // show.animFreq = 0;\r\n stopSlideshow();\r\n }\r\n }\r\n\r\n };\r\n});\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/NewsView', ['Shared/Framework/Mithril/Scripts/Helpers/Utils'], function (Utils) {\r\n\r\n var newsUrl = window.location.href;\r\n\r\n var getOptions = function () {\r\n var width = 575;\r\n var height = 400;\r\n var left = (window.innerHeight - width) / 2;\r\n var top = (window.innerHeight - height) / 2;\r\n return 'status=1' + ',width=' + width + ',height=' + height + ',top=' + top + ',left=' + left;\r\n };\r\n\r\n if (document.getElementsByClassName('twitter-share')[0]) {\r\n document.getElementsByClassName('twitter-share')[0].addEventListener('click', function (e) {\r\n e.preventDefault();\r\n Utils.logDeprecated('NewsView.js - .twitter-share exist'); // Added by MIPE (30/4-2024)\r\n var url = 'http://twitter.com/share?text=' + newsUrl;\r\n window.open(url, 'twitter', getOptions());\r\n return false;\r\n });\r\n }\r\n\r\n if (document.getElementsByClassName('facebook-share')[0]) {\r\n document.getElementsByClassName('facebook-share')[0].addEventListener('click', function (e) {\r\n e.preventDefault();\r\n Utils.logDeprecated('NewsView.js - .facebook exist'); // Added by MIPE (30/4-2024)\r\n var url = 'https://www.facebook.com/sharer/sharer.php?u=' + newsUrl;\r\n window.open(url, 'facebook', getOptions());\r\n return false;\r\n });\r\n }\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/Helpers/StatisticsModuleApi',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/ApiRequest'\r\n ],\r\n function (ApiRequest) {\r\n\r\n // Variables:\r\n var baseURL = window.location.origin + '/dlo/scapi/danskespil/numbergames/';\r\n\r\n // Functions:\r\n var drawDates = function (gameType) {\r\n return ApiRequest({\r\n method: 'GET',\r\n url: baseURL + gameType + '/completedDrawDates'\r\n });\r\n };\r\n\r\n var statisticsFeed = function (gameType, dates) {\r\n return ApiRequest({\r\n data: dates,\r\n method: 'POST',\r\n url: baseURL + gameType + '/WinningNumbersStatisticsSearch'\r\n });\r\n };\r\n const biggestWins = function (gameType) {\r\n return ApiRequest({\r\n method: 'GET',\r\n url: baseURL + gameType + '/biggestWinners'\r\n });\r\n };\r\n\r\n const yearlyWinnings = (gameType) => {\r\n return ApiRequest({\r\n method: 'GET',\r\n url: baseURL + gameType + '/yearlyWinnings'\r\n });\r\n };\r\n\r\n // Public functions:\r\n return {\r\n drawDates: drawDates,\r\n statisticsFeed: statisticsFeed,\r\n yearlyWinnings: yearlyWinnings,\r\n biggestWins: biggestWins\r\n };\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/Components/InformationSwitcherSelector',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/SelectDropdown',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n ],\r\n function (Component, SelectDropdown, Ensighten) {\r\n\r\n // Component:\r\n Component('informationswitcher-selector', [], function (m, route) {\r\n\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n const panels = [...document.querySelectorAll('.informationswitcherspotview .panel')]; // panels outside this component\r\n\r\n var panelSettings = panels.map(function ($panel) {\r\n var pSettings = JSON.parse($panel.getAttribute('data-settings'));\r\n return { value: pSettings.value, name: pSettings.name };\r\n });\r\n\r\n this.options = m.prop(panelSettings || []);\r\n this.selected = m.prop(this.options()[0] || '');\r\n\r\n // Functions:\r\n this.selectQuestion = function (item) {\r\n this.selected(item);\r\n const selectedElements = panels.filter(($panel) => $panel.getAttribute('data-panelname') === item.value);\r\n if (selectedElements.length > 0) {\r\n const selectedEl = selectedElements[0];\r\n // If option is a subpanel, then select parent\r\n if (!selectedEl.classList.contains('panel')) {\r\n const currentPos = window.scrollY;\r\n const $selectedParent = selectedEl.closest('.panel');\r\n const scrollOffset = $selectedParent.getBoundingClientRect().top;\r\n const bufferTolerance = 100;\r\n const newPosition = scrollOffset + currentPos - bufferTolerance;\r\n window.scroll({ top: newPosition, behavior: 'smooth' });\r\n }\r\n panels.forEach(($panel) => $panel.classList.remove('is-displayed'));\r\n selectedEl.classList.add('is-displayed');\r\n\r\n Ensighten.pushVirtualPage(item.name, item.name.replace(/ /g, '-').toLowerCase());\r\n pushSelectedToUrlParams(item.name);\r\n }\r\n }.bind(this);\r\n // test\r\n\r\n // Init\r\n if (this.selected()) {\r\n // grab the 'selected' url parameter\r\n var selectedInUrlParams = this.options().filter(function (option) {\r\n return urlFriendlyName(option.name) === getUrlParams().selected;\r\n })[0];\r\n // if 'selected' was found, use that one instead\r\n selectedInUrlParams ? this.selectQuestion(selectedInUrlParams) : this.selectQuestion(this.selected());\r\n }\r\n\r\n function pushSelectedToUrlParams(selectedVal) {\r\n if (history.pushState) {\r\n var urlParams = getUrlParams();\r\n urlParams.selected = urlFriendlyName(selectedVal);\r\n\r\n var queryString = Object.keys(urlParams).map(function (key) { return key + '=' + urlParams[key]; }).join('&');\r\n var newUrl = window.location.protocol + '//' + window.location.host + window.location.pathname + '?' + queryString;\r\n window.history.pushState({ path: newUrl }, '', newUrl);\r\n }\r\n }\r\n\r\n function urlFriendlyName(s) {\r\n return s.toLowerCase().replace(/[^a-z]/g, '');\r\n }\r\n\r\n function getUrlParams() {\r\n var queries = {};\r\n const queryParams = new URLSearchParams(document.location.search);\r\n queryParams.forEach((value, key) => {\r\n queries[key] = value;\r\n });\r\n return queries;\r\n }\r\n\r\n },\r\n\r\n view: function (controller) {\r\n return [\r\n // Dropdown:\r\n SelectDropdown(controller, controller.options, controller.selected, controller.selectQuestion)\r\n ];\r\n }\r\n\r\n };\r\n\r\n // Setup routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/Templates/StatisticsModule/SelectedNumbers',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage'\r\n ],\r\n function (m, Storage) {\r\n\r\n var SelectedNumbers = function (controller) {\r\n\r\n // Variables\r\n var d = controller.d;\r\n var gameType = controller.selectedGameClient();\r\n var options = {\r\n Lotto: ['System', 'Classic', 'Lucky'],\r\n Vikinglotto: ['System', 'Classic', 'Lucky'],\r\n Eurojackpot: ['System', 'Classic', 'Lucky'],\r\n Keno: ['Classic', 'System']\r\n }[gameType];\r\n var selectedPoints = controller.property('selectedPoints');\r\n\r\n // Functions:\r\n var removeSelectedNumbers = function () {\r\n delete selectedPoints[gameType];\r\n };\r\n\r\n var removeSelectedNumber = function (numberType, number) {\r\n return function () {\r\n delete selectedPoints[gameType][numberType][number];\r\n };\r\n };\r\n\r\n var saveSelectedNumbersAndRedirect = function (game) {\r\n return function () {\r\n Storage.set(gameType + '-StatisticsNumbers', JSON.stringify(selectedPoints[gameType]));\r\n\r\n window.location.href = controller[gameType.toLowerCase() + game + 'GameClientLink']();\r\n };\r\n };\r\n\r\n var removeSelectedNumbersFromStorage = function () {\r\n Storage.set(gameType + '-StatisticsNumbers', null);\r\n };\r\n\r\n var toggleMobileSelectedNumbers = function () {\r\n controller.property('selectedNumbersMobileToggle', !controller.property('selectedNumbersMobileToggle'));\r\n };\r\n\r\n // Return:\r\n return m('div', { class: 'statistics-module-selected-numbers' + (controller.property('selectedNumbersMobileToggle') ? ' opened' : '') }, [\r\n function () {\r\n var outerDOM = [];\r\n var innerDOM = [];\r\n\r\n for (var numberType in selectedPoints[gameType]) {\r\n for (var number in selectedPoints[gameType][numberType]) {\r\n innerDOM.push(m('div', { class: 'selected-number-box' + (numberType === 'extraNumbers' ? ' special' : '') }, [\r\n m('div', { class: 'selected-number-delete-button', onclick: removeSelectedNumber(numberType, number) }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-x' })\r\n ])\r\n ]),\r\n m('div', { class: 'number-cell' }, selectedPoints[gameType][numberType][number])\r\n ]));\r\n }\r\n }\r\n\r\n outerDOM.push(m('div', { class: 'selected-numbers-game-wrapper ' + gameType.toLocaleLowerCase() + '-numbers' }, [\r\n function () {\r\n if (innerDOM.length > 0) {\r\n return m('div', { class: 'selected-numbers-game-inner-wrapper' }, [\r\n m('div', { class: 'selected-numbers-headline' }, [\r\n d('GraphModule/SelectedNumbers/Headline'),\r\n m('div', { class: 'selected-numbers-delete-button', onclick: removeSelectedNumbers }, [\r\n d('GraphModule/SelectedNumbers/RemoveNumbers'),\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-rubbish' })\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'selected-numbers-wrapper' }, innerDOM),\r\n m('div', { class: 'selected-numbers-go-to-game-buttons-wrapper' }, [\r\n m('div', { class: 'go-to-game-header' }, d('GraphModule/SelectedNumbers/ButtonsHeadline')),\r\n m('div', { class: 'go-to-game-buttons' }, options.map(function (option) {\r\n return m('div', { class: 'go-to-game-button', onclick: saveSelectedNumbersAndRedirect(option) }, d('GraphModule/SelectedNumbers/Buttons/' + gameType + '/' + option));\r\n }))\r\n ])\r\n ]);\r\n } else {\r\n removeSelectedNumbersFromStorage();\r\n\r\n return m('div', { class: 'no-selected-numbers' }, d('GraphModule/SelectedNumbers/NoSelectedNumbers'));\r\n }\r\n }()\r\n ]));\r\n\r\n if (innerDOM.length > 0) {\r\n outerDOM.push(m('span', { class: 'selected-numbers-mobile-toggle-button', onclick: toggleMobileSelectedNumbers }, [\r\n m('span', { class: 'count-wrapper' }, innerDOM.length),\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-rows-list' })\r\n ])\r\n ]));\r\n }\r\n\r\n return outerDOM;\r\n }()\r\n ]);\r\n };\r\n\r\n // Public functions:\r\n return SelectedNumbers;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/Templates/StatisticsModule/PeriodFilter',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage'\r\n ],\r\n function (m, Storage) {\r\n\r\n // Template:\r\n var PeriodFilter = function (controller) {\r\n\r\n // Variables:\r\n var d = controller.d;\r\n var months = d('Months').split(',');\r\n\r\n // Functions:\r\n var filterOrderDirection = function (direction) {\r\n return function () {\r\n if (controller.property('filterOrder') === direction) {\r\n direction = 'Number';\r\n }\r\n\r\n controller.property('filterOrder', direction);\r\n\r\n controller.getStatisticsFeed();\r\n };\r\n };\r\n\r\n var filterToggle = function () {\r\n return function () {\r\n controller.property('filterToggle', !controller.property('filterToggle'));\r\n };\r\n };\r\n\r\n var gameDropdownToggle = function () {\r\n return function () {\r\n controller.property('gameDropdownActive', !controller.property('gameDropdownActive'));\r\n };\r\n };\r\n\r\n var resetFilter = function (filterField) {\r\n return function () {\r\n if (filterField === 'years') {\r\n controller.property('selectedYears', []);\r\n }\r\n\r\n if (filterField === 'months') {\r\n controller.property('selectedMonths', []);\r\n }\r\n\r\n if (filterField === 'order') {\r\n controller.property('filterOrder', 'Number');\r\n controller.property('filterZeroToggle', false);\r\n }\r\n\r\n controller.getStatisticsFeed();\r\n };\r\n };\r\n\r\n var selectGame = function (game) {\r\n return function () {\r\n controller.property('gameDropdownActive', false);\r\n\r\n controller.selectedGameClient(game);\r\n controller.getCompletedDrawDates();\r\n if (!controller.property('selectedPoints')[game]) {\r\n controller.property('selectedPoints')[game] = JSON.parse(Storage.get(game + '-StatisticsNumbers'));\r\n }\r\n\r\n controller.getStatisticsFeed();\r\n };\r\n };\r\n\r\n var selectMonth = function (month) {\r\n return function () {\r\n if (controller.property('selectedMonths').indexOf(month) !== -1) {\r\n controller.property('selectedMonths').splice(controller.property('selectedMonths').indexOf(month), 1);\r\n } else {\r\n controller.property('selectedMonths').push(month);\r\n }\r\n\r\n controller.property('selectedMonths').sort(function (a, b) {\r\n return a - b ? -1 : 1;\r\n });\r\n\r\n controller.getStatisticsFeed();\r\n };\r\n };\r\n\r\n var selectYear = function (year) {\r\n return function () {\r\n if (controller.property('selectedYears').indexOf(year) !== -1) {\r\n controller.property('selectedYears').splice(controller.property('selectedYears').indexOf(year), 1);\r\n } else {\r\n controller.property('selectedYears').push(year);\r\n }\r\n\r\n controller.property('selectedYears').sort(function (a, b) {\r\n return a - b ? -1 : 1;\r\n });\r\n\r\n controller.getStatisticsFeed();\r\n };\r\n };\r\n\r\n var toggleNoZeroFilter = function () {\r\n controller.property('filterZeroToggle', !controller.property('filterZeroToggle'));\r\n\r\n controller.getStatisticsFeed();\r\n };\r\n\r\n // Return:\r\n return m('div', { class: 'statistics-module-period-filter-wrapper' + (controller.property('filterToggle') ? ' opened' : '') }, [\r\n m('div', { class: 'period-filter-inner-wrapper' }, [\r\n m('div', { class: 'period-filter-toggle-buttons-wrapper' }, [\r\n m('div', { class: 'period-filter-toggle-button', onclick: filterToggle() }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesStatisticsModuleIcons.svg#icon-filter' })\r\n ]),\r\n m('span', { class: 'text' }, d('GraphModule/PeriodFilter/PeriodFilterButtonText'))\r\n ])\r\n ]),\r\n m('div', { class: 'period-filter-content-wrapper' }, [\r\n m('div', { class: 'period-filter-header' }, [\r\n controller.property('selectedYears').length > 0 || controller.property('selectedMonths').length > 0 ? [\r\n m('div', { class: 'filter-text-wrapper' }, [\r\n d('GraphModule/PeriodFilter/FilterHeaderWithSelectedPeriod'),\r\n m('span', controller.property('selectedYears').map(function (year) {\r\n return year;\r\n }).join(', ')),\r\n (controller.property('selectedYears').length > 0 && controller.property('selectedMonths').length > 0) ? m('span', ' / ') : null,\r\n m('span', controller.property('selectedMonths').map(function (month) {\r\n return months[parseInt(month, 10) - 1];\r\n }).join(', '))\r\n ])\r\n ] : m('div', { class: 'filter-text-wrapper' }, d('GraphModule/PeriodFilter/FilterHeaderWithoutSelections')),\r\n m('div', { class: 'period-filter-game-client-dropdown' + (controller.property('gameDropdownActive') ? ' active' : '') }, [\r\n m('div', { class: 'game-client-dropdown-placeholder', onclick: gameDropdownToggle() }, [\r\n controller.selectedGameClient(),\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-down-arrow' })\r\n ])\r\n ]),\r\n m('div', { class: 'game-client-dropdown-list' }, [\r\n controller.gameClients.map(function (gameClient) {\r\n if (gameClient !== controller.selectedGameClient()) {\r\n return m('div', { class: 'game-client-dropdown-list-item', onclick: selectGame(gameClient) }, gameClient);\r\n }\r\n })\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'period-filter-row' }, [\r\n m('span', { class: 'filter-row-name' }, [\r\n m('span', { class: 'filter-row-reset' + (controller.property('selectedYears').length > 0 ? ' active' : ''), onclick: resetFilter('years') }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesStatisticsModuleIcons.svg#icon-refresh' })\r\n ])\r\n ]),\r\n d('GraphModule/PeriodFilter/YearFilter')\r\n ]),\r\n m('span', { class: 'filter-row-options' }, [\r\n controller.completedDrawYears.map(function (year) {\r\n return m('span', { class: 'option' + (controller.property('selectedYears').indexOf(year) !== -1 ? ' active' : ''), onclick: selectYear(year) }, year);\r\n })\r\n ])\r\n ]),\r\n m('div', { class: 'period-filter-row' }, [\r\n m('span', { class: 'filter-row-name' }, [\r\n m('span', { class: 'filter-row-reset' + (controller.property('selectedMonths').length > 0 ? ' active' : ''), onclick: resetFilter('months') }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesStatisticsModuleIcons.svg#icon-refresh' })\r\n ])\r\n ]),\r\n d('GraphModule/PeriodFilter/MonthFilter')\r\n ]),\r\n m('span', { class: 'filter-row-options' }, [\r\n controller.completedDrawMonths.map(function (month) {\r\n return m('span', { class: 'option' + (controller.property('selectedMonths').indexOf(month) !== -1 ? ' active' : '') + (controller.completedDrawDatesFeed[controller.property('selectedYears')] ? (controller.completedDrawDatesFeed[controller.property('selectedYears')].indexOf(month) !== -1 ? '' : ' inactive') : ''), onclick: selectMonth(month) }, months[parseInt(month, 10) - 1]);\r\n })\r\n ])\r\n ]),\r\n m('div', { class: 'period-filter-row' }, [\r\n m('span', { class: 'filter-row-name' }, [\r\n m('span', { class: 'filter-row-reset' + (controller.property('filterZeroToggle') || controller.property('filterOrder') !== 'Number' ? ' active' : ''), onclick: resetFilter('order') }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesStatisticsModuleIcons.svg#icon-refresh' })\r\n ])\r\n ]),\r\n d('GraphModule/PeriodFilter/OrderFilter')\r\n ]),\r\n m('span', { class: 'filter-row-options' }, [\r\n m('span', { class: 'option' + (controller.property('filterZeroToggle') ? ' active' : ''), onclick: toggleNoZeroFilter }, d('GraphModule/PeriodFilter/FilterOutNumbersWithoutValue')),\r\n m('span', { class: 'option filter-desc-button' + ((controller.property('filterOrder') === 'DrawnCountDesc') ? ' active' : ''), onclick: filterOrderDirection('DrawnCountDesc') }, [\r\n m('svg', { class: 'filter-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesStatisticsModuleIcons.svg#desc_filter_icon' })\r\n ])\r\n ]),\r\n m('span', { class: 'option filter-normal-button' + ((controller.property('filterOrder') === 'Number') ? ' active' : ''), onclick: filterOrderDirection('Number') }, [\r\n m('svg', { class: 'filter-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesStatisticsModuleIcons.svg#normal_filter_icon' })\r\n ])\r\n ]),\r\n m('span', { class: 'option filter-asc-button' + ((controller.property('filterOrder') === 'DrawnCountAsc') ? ' active' : ''), onclick: filterOrderDirection('DrawnCountAsc') }, [\r\n m('svg', { class: 'filter-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesStatisticsModuleIcons.svg#asc_filter_icon' })\r\n ])\r\n ])\r\n ])\r\n ])\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n // Public functions:\r\n return PeriodFilter;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/Templates/StatisticsModule/NumbersTypeSwitch',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n // Template:\r\n var NumbersTypeSwitch = function (controller) {\r\n\r\n // Variables:\r\n var d = controller.d;\r\n var numbersType = controller.property('numbersType');\r\n var selectedGameClient = controller.selectedGameClient();\r\n\r\n // Functions:\r\n if (selectedGameClient === 'Keno') {\r\n return;\r\n }\r\n\r\n var setNumbersType = function (type) {\r\n return function () {\r\n controller.property('numbersType', type);\r\n controller.changeNumberType();\r\n };\r\n };\r\n\r\n // Return:\r\n return m('div', { class: 'statistics-module-numbers-type-switch-wrapper' }, [\r\n m('div', { class: 'numbers-type-switch-inner-wrapper' }, [\r\n m('div', { class: 'numbers-type-switch-button-wrapper' + (numbersType === 'numbers' ? ' active' : ''), onclick: setNumbersType('numbers') }, [\r\n m('span', { class: 'button-text' }, d('GraphModule/NumbersTypeToggleSwitch/' + selectedGameClient + '/NormalNumbers'))\r\n ]),\r\n m('div', { class: 'numbers-type-switch-button-wrapper' + (numbersType === 'extraNumbers' ? ' active' : ''), onclick: setNumbersType('extraNumbers') }, [\r\n m('span', { class: 'button-text' }, d('GraphModule/NumbersTypeToggleSwitch/' + selectedGameClient + '/SpecialNumbers'))\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n // Public functions:\r\n return NumbersTypeSwitch;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/Templates/StatisticsModule/GraphOverview',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render'\r\n ],\r\n function (m, Render) {\r\n\r\n // Template:\r\n var GraphOverview = function (controller) {\r\n\r\n // Variables:\r\n var barWidth = ((controller.property('smallBarsWrapperWidth') / controller.property('largeBarsWrapperWidth')) * controller.property('largeBarWidth')) + 'px';\r\n var d = controller.d;\r\n var gameType = controller.selectedGameClient();\r\n var numbersType = controller.property('numbersType');\r\n var render = Render();\r\n var selectedPoints = controller.property('selectedPoints');\r\n var statisticsFeed = controller.statisticsNumbersFeed || [];\r\n\r\n // Functions:\r\n var expandToggle = function () {\r\n return function () {\r\n controller.property('graphOverviewExpandToggle', !controller.property('graphOverviewExpandToggle'));\r\n };\r\n };\r\n\r\n // Render:\r\n render.ready.then(function (nodes) {\r\n controller.property('smallBarsWrapperWidth', nodes['small-bars-wrapper'].$element.offsetWidth);\r\n });\r\n\r\n // Return:\r\n return m('div', { class: 'statistics-module-small-view' + (controller.property('largeBarsWrapperWidth') > controller.windowWidth ? ' active' : '') + (controller.property('graphOverviewExpandToggle') ? ' minimized' : ''), config: render.depend('statistics-graph-overview-wrapper') }, [\r\n m('div', { class: 'statistics-module-graph-overview-inner-wrapper' }, [\r\n m('div', { class: 'statistics-module-graph-overview-expand-wrapper', onclick: expandToggle() }, [\r\n m('div', { class: 'graph-overview-button minimize' }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesStatisticsModuleIcons.svg#icon-condensing-arrows' })\r\n ]),\r\n m('span', { class: 'text' }, d('GraphModule/GraphOverview/MinimizeOverview'))\r\n ]),\r\n m('div', { class: 'graph-overview-button maximize' }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesStatisticsModuleIcons.svg#icon-expand-arrows' })\r\n ]),\r\n m('span', { class: 'text' }, d('GraphModule/GraphOverview/MaximizeOverview'))\r\n ])\r\n ]),\r\n m('div', { class: 'statistics-internal-wrapper', config: render.depend('small-bars-wrapper') }, [\r\n m('div', { class: 'statistics-bars-wrapper' }, [\r\n statisticsFeed.map(function (point, index) {\r\n if (point.drawnCount === 0 && controller.property('filterZeroToggle')) {\r\n return;\r\n }\r\n\r\n return m('div', { class: 'statistics-small-bar-wrapper' + (controller.property('hoveredPoint') === index ? ' hovered' : ''), style: 'width: ' + barWidth }, [\r\n m('div', { class: 'bar' + (selectedPoints[gameType] ? (selectedPoints[gameType][numbersType][index] ? ' selected' : '') : ''), style: 'height: ' + (point.drawnCount / (controller.mostDrawnCount / 100)) + '%' }, [\r\n m('div', { class: 'number' }, point.number)\r\n ])\r\n ]);\r\n })\r\n ]),\r\n m('div', { class: 'statistics-zoom-finder-wrapper' }, [\r\n m('div', { class: 'zoom-finder', config: controller.render().depend('graph-view-finder') })\r\n ])\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n // Public functions:\r\n return GraphOverview;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/Templates/StatisticsModule/Graph',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render'\r\n ],\r\n function (m, Render) {\r\n\r\n // Template:\r\n var Graph = function (controller) {\r\n\r\n // Variables:\r\n var gameType = controller.selectedGameClient();\r\n var numbersType = controller.property('numbersType');\r\n var render = Render();\r\n var selectedPoints = controller.property('selectedPoints');\r\n var statisticsFeed = controller.statisticsNumbersFeed || [];\r\n\r\n // Functions:\r\n var pointSelected = function (pointIndex) {\r\n return function () {\r\n if (!selectedPoints[gameType]) {\r\n var gameObject = selectedPoints;\r\n\r\n gameObject[gameType] = { numbers: {}, extraNumbers: {} };\r\n }\r\n\r\n if (!selectedPoints[gameType][numbersType][pointIndex]) {\r\n var numberObject = selectedPoints[gameType][numbersType];\r\n\r\n numberObject[pointIndex] = statisticsFeed[pointIndex].number;\r\n } else {\r\n delete controller.property('selectedPoints')[gameType][numbersType][pointIndex];\r\n\r\n if (Object.keys(controller.property('selectedPoints')[gameType]['numbers']).length == 0 && Object.keys(controller.property('selectedPoints')[gameType]['extraNumbers']).length == 0) {\r\n delete controller.property('selectedPoints')[gameType];\r\n }\r\n }\r\n };\r\n };\r\n\r\n var pointHovered = function (pointIndex) {\r\n return function () {\r\n controller.property('hoveredPoint', pointIndex);\r\n };\r\n };\r\n\r\n var pointUnhovered = function () {\r\n return function () {\r\n controller.property('hoveredPoint', -1);\r\n };\r\n };\r\n\r\n // Render:\r\n render.ready.then(function (nodes) {\r\n var currentPosition = controller.property('currentPosition');\r\n\r\n controller.property('graphSlideToLeft', -currentPosition <= 0 ? false : true);\r\n controller.property('graphSlideToRight', -currentPosition >= controller.property('largeBarsWrapperWidth') - controller.windowWidth ? false : true);\r\n controller.property('largeBarWidth', nodes['large-bar'][0].$element.offsetWidth);\r\n });\r\n\r\n // Return:\r\n return m('div', { class: 'statistics-module-large-view', config: render.depend('statistics-module-large-view') }, [\r\n m('div', { class: 'statistics-module-large-internal-wrapper', config: controller.render().depend('large-bars-wrapper') }, [\r\n statisticsFeed.map(function (point, index) {\r\n if (point.drawnCount === 0 && controller.property('filterZeroToggle')) {\r\n return;\r\n }\r\n\r\n return [m('div', { class: 'statistics-large-bar-wrapper' + (selectedPoints[gameType] ? (selectedPoints[gameType][numbersType][index] ? ' selected' : '') : '') + (numbersType == 'extraNumbers' ? ' special' : ''), config: render.depend('large-bar'), onclick: pointSelected(index), onmouseover: pointHovered(index), onmouseout: pointUnhovered(index) }, [\r\n m('div', { class: 'bar' + (point.drawnCount === controller.mostDrawnCount ? ' most-drawn' : '') + (point.drawnCount === controller.leastDrawnCount ? ' least-drawn' : ''), style: (controller.isMobile() ? 'width:' : 'height:') + (point.drawnCount / (controller.mostDrawnCount / 100) || 0) + '%' }, [\r\n m('div', { class: 'amount' }, point.drawnCount),\r\n point.drawnCount === controller.mostDrawnCount && controller.mostDrawnCount > 0 ? [\r\n m('svg', { class: 'icon-most-drawn' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesStatisticsModuleIcons.svg#icon-highest-arrow' })\r\n ])\r\n ] : null,\r\n point.drawnCount === controller.leastDrawnCount ? [\r\n m('svg', { class: 'icon-least-drawn' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesStatisticsModuleIcons.svg#icon-lowest-arrow' })\r\n ])\r\n ] : null\r\n ]),\r\n m('div', { class: 'number' }, point.number)\r\n ])];\r\n })\r\n ]),\r\n m('div', { class: 'statistics-module-graph-slide-button right' + (controller.property('graphSlideToRight') ? ' active' : ''), onclick: controller.slideGraphSlide('right') }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-right-arrow' })\r\n ])\r\n ]),\r\n m('div', { class: 'statistics-module-graph-slide-button left' + (controller.property('graphSlideToLeft') ? ' active' : ''), onclick: controller.slideGraphSlide('left') }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-left-arrow' })\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n // Public functions:\r\n return Graph;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/Components/StatisticsModule',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Hammer',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage',\r\n 'DanskeSpil/Domain/NumberGames/Scripts/Helpers/NumberGamesDictionary',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/NumberGames/Scripts/Helpers/StatisticsModuleApi',\r\n 'DanskeSpil/Domain/NumberGames/Scripts/Templates/StatisticsModule/PeriodFilter',\r\n 'DanskeSpil/Domain/NumberGames/Scripts/Templates/StatisticsModule/NumbersTypeSwitch',\r\n 'DanskeSpil/Domain/NumberGames/Scripts/Templates/StatisticsModule/Graph',\r\n 'DanskeSpil/Domain/NumberGames/Scripts/Templates/StatisticsModule/GraphOverview',\r\n 'DanskeSpil/Domain/NumberGames/Scripts/Templates/StatisticsModule/SelectedNumbers'\r\n ],\r\n function (Component, Hammer, Render, Storage, NumberGamesDictionary, Utils, StatisticsModuleApi, PeriodFilter, NumbersTypeSwitch, Graph, GraphOverview, SelectedNumbers) {\r\n\r\n // Component:\r\n Component('statistics-module', [NumberGamesDictionary], function (m, route, settings, property) {\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n this.$graphViewFinder = m.prop();\r\n this.$largeBarsWrapper = m.prop();\r\n this.completedDrawDatesFeed = {};\r\n this.completedDrawMonths = [];\r\n this.completedDrawYears = [];\r\n this.d = NumberGamesDictionary.get.bind({ prefix: 'StatisticsModule/' });\r\n this.eurojackpotClassicGameClientLink = m.prop(settings.eurojackpotClassicGameClientLink);\r\n this.eurojackpotLuckyGameClientLink = m.prop(settings.eurojackpotLuckyGameClientLink);\r\n this.eurojackpotSystemGameClientLink = m.prop(settings.eurojackpotSystemGameClientLink);\r\n this.gameClients = ['Lotto', 'Vikinglotto', 'Eurojackpot', 'Keno'];\r\n this.kenoClassicGameClientLink = m.prop(settings.kenoClassicGameClientLink);\r\n this.kenoSystemGameClientLink = m.prop(settings.kenoSystemGameClientLink);\r\n this.isMobile = m.prop(Utils.isMobile() || (Utils.isTabletDevice() && (window.innerWidth < window.innerHeight)));\r\n this.loading = m.prop(true);\r\n this.lottoClassicGameClientLink = m.prop(settings.lottoClassicGameClientLink);\r\n this.lottoLuckyGameClientLink = m.prop(settings.lottoLuckyGameClientLink);\r\n this.lottoSystemGameClientLink = m.prop(settings.lottoSystemGameClientLink);\r\n this.property = property;\r\n this.render = m.prop(Render());\r\n this.selectedGameClient = m.prop('Eurojackpot');\r\n this.vikinglottoClassicGameClientLink = m.prop(settings.vikinglottoClassicGameClientLink);\r\n this.vikinglottoLuckyGameClientLink = m.prop(settings.vikinglottoClassicGameClientLink);\r\n this.vikinglottoSystemGameClientLink = m.prop(settings.vikinglottoClassicGameClientLink);\r\n this.windowWidth = document.documentElement.clientWidth;\r\n\r\n // Properties:\r\n this.property('currentPosition', 0);\r\n this.property('filterOrder', 'Number');\r\n this.property('filterToggle', true);\r\n this.property('filterZeroToggle', false);\r\n this.property('graphOverviewExpandToggle', true);\r\n this.property('largeBarsWrapperWidth');\r\n this.property('numbersType', 'numbers');\r\n this.property('selectedPoints', {});\r\n this.property('selectedMonths', []);\r\n this.property('selectedYears', []);\r\n\r\n // Context:\r\n var currentPosition = this.property('currentPosition');\r\n var delta = 0;\r\n var filteredStatisticsDataFeed = null;\r\n var numbersFromStorage = Storage.get(this.selectedGameClient() + '-StatisticsNumbers') || null;\r\n var statisticsDataFeed = m.prop();\r\n var url = location.pathname.toLowerCase();\r\n\r\n if (/\\/keno/.test(url)) {\r\n this.selectedGameClient('Keno');\r\n } else if (/\\/lotto/.test(url)) {\r\n this.selectedGameClient('Lotto');\r\n } else if (/\\/vikinglotto/.test(url)) {\r\n this.selectedGameClient('Vikinglotto');\r\n }\r\n\r\n if (numbersFromStorage) {\r\n this.property('selectedPoints')[this.selectedGameClient()] = JSON.parse(numbersFromStorage);\r\n }\r\n\r\n // Functions:\r\n this.getStatisticsFeed = function () {\r\n var selectedDatesToFeed = { periods: [], orderProperty: this.property('filterOrder') };\r\n var selectedMonths = this.property('selectedMonths');\r\n var yearsToFeed = this.property('selectedYears');\r\n\r\n if (yearsToFeed.length === 0 && selectedMonths.length > 0) {\r\n yearsToFeed = this.completedDrawYears;\r\n }\r\n\r\n yearsToFeed.forEach(function (year) {\r\n selectedDatesToFeed.periods.push({ year: year, months: selectedMonths });\r\n });\r\n\r\n StatisticsModuleApi.statisticsFeed(this.selectedGameClient(), selectedDatesToFeed).then(function (response) {\r\n statisticsDataFeed(response);\r\n statisticsFeed();\r\n });\r\n }.bind(this);\r\n\r\n var statisticsFeed = function () {\r\n var numbersTypeFeed = null;\r\n\r\n filteredStatisticsDataFeed = statisticsDataFeed() || filteredStatisticsDataFeed;\r\n\r\n if (this.property('numbersType') === 'numbers' || this.selectedGameClient() === 'Keno') {\r\n numbersTypeFeed = filteredStatisticsDataFeed.mainNumbersStatistic;\r\n } else if (this.property('numbersType') === 'extraNumbers') {\r\n numbersTypeFeed = filteredStatisticsDataFeed.extraNumbersStatistic;\r\n }\r\n\r\n this.hasGameVersionConflict = numbersTypeFeed.Status === 'GameVersionConflict';\r\n this.leastDrawnCount = numbersTypeFeed.LeastDrawnCount;\r\n this.loading(false);\r\n this.mostDrawnCount = numbersTypeFeed.MostDrawnCount;\r\n this.statisticsNumbersFeed = numbersTypeFeed.drawCountDistribution;\r\n\r\n m.redraw();\r\n\r\n this.graphInit();\r\n }.bind(this);\r\n\r\n this.changeNumberType = function () {\r\n statisticsFeed();\r\n };\r\n\r\n this.getCompletedDrawDates = function () {\r\n var self = this;\r\n // resetting all fields when the game client changes\r\n self.completedDrawDatesFeed = {};\r\n self.completedDrawMonths = [];\r\n self.completedDrawYears = [];\r\n self.property('selectedPoints', {});\r\n self.property('selectedMonths', []);\r\n self.property('selectedYears', []);\r\n\r\n StatisticsModuleApi.drawDates(this.selectedGameClient()).then(function (data) {\r\n var dates = data.drawDates;\r\n\r\n if (self.selectedGameClient() === 'Eurojackpot') {\r\n dates = data.eurojackpot.drawDates;\r\n }\r\n\r\n dates.forEach(function (date) {\r\n var dateFormatted = date.split('-');\r\n\r\n if (!self.completedDrawDatesFeed[dateFormatted[0]]) {\r\n self.completedDrawDatesFeed[dateFormatted[0]] = [];\r\n }\r\n\r\n if (self.completedDrawDatesFeed[dateFormatted[0]].indexOf(dateFormatted[1]) === -1) {\r\n self.completedDrawDatesFeed[dateFormatted[0]].push(dateFormatted[1]);\r\n }\r\n });\r\n\r\n for (var year in self.completedDrawDatesFeed) {\r\n self.completedDrawYears.push(year);\r\n\r\n self.completedDrawDatesFeed[year].map(function (month) {\r\n if (self.completedDrawMonths.indexOf(month) === -1) {\r\n self.completedDrawMonths.push(month);\r\n }\r\n });\r\n\r\n self.completedDrawMonths.sort(function (a, b) {\r\n return a - b;\r\n });\r\n }\r\n m.redraw();\r\n });\r\n }.bind(this);\r\n\r\n this.graphInit = function () {\r\n var $graphViewFinder = this.$graphViewFinder();\r\n var $largeBarsWrapper = this.$largeBarsWrapper();\r\n\r\n if ($largeBarsWrapper) {\r\n var largeBarsWrapperWidth = $largeBarsWrapper.offsetWidth;\r\n\r\n this.property('largeBarsWrapperWidth', largeBarsWrapperWidth);\r\n\r\n if ($graphViewFinder) {\r\n $graphViewFinder.style.width = ((this.windowWidth / largeBarsWrapperWidth) * 100) + '%';\r\n\r\n this.property('graphViewFinderWidth', $graphViewFinder.offsetWidth);\r\n }\r\n\r\n this.property('viewsRatio', this.property('graphViewFinderWidth') / this.windowWidth);\r\n this.property('graphSlideToRight', largeBarsWrapperWidth > this.windowWidth ? true : false);\r\n\r\n sliderValue(1);\r\n\r\n graphPanAction($largeBarsWrapper);\r\n }\r\n\r\n if ($graphViewFinder) {\r\n graphPanAction($graphViewFinder);\r\n }\r\n\r\n setTimeout(function () {\r\n m.redraw();\r\n }, 100);\r\n }.bind(this);\r\n\r\n var sliderValue = function (deltaValue) {\r\n var $graphViewFinder = this.$graphViewFinder();\r\n\r\n if (deltaValue > 0) {\r\n currentPosition = 0;\r\n deltaValue = 0;\r\n } else if (deltaValue < (-this.property('largeBarsWrapperWidth') + this.windowWidth)) {\r\n deltaValue = -this.property('largeBarsWrapperWidth') + this.windowWidth;\r\n currentPosition = deltaValue;\r\n }\r\n\r\n this.property('currentPosition', deltaValue);\r\n\r\n if (!this.isMobile()) {\r\n this.$largeBarsWrapper().style.transform = 'translateX(' + (deltaValue) + 'px)';\r\n }\r\n\r\n if ($graphViewFinder) {\r\n $graphViewFinder.style.transform = 'translateX(' + (-deltaValue * this.property('viewsRatio')) + 'px)';\r\n }\r\n\r\n m.redraw();\r\n }.bind(this);\r\n\r\n var graphPanAction = function ($targetedGraph) {\r\n var hammer = new Hammer($targetedGraph);\r\n var movementDirection = 1;\r\n var self = this;\r\n\r\n if ($targetedGraph.className === 'zoom-finder') {\r\n movementDirection = -1 / this.property('viewsRatio');\r\n\r\n hammer.on('tap', function (event) {\r\n var positionAfterTap = (event.changedPointers[0].layerX - (event.changedPointers[0].target.offsetWidth / 2));\r\n var maxPosition = self.property('smallBarsWrapperWidth') - self.property('graphViewFinderWidth');\r\n\r\n if (positionAfterTap < 0) {\r\n positionAfterTap = 0;\r\n } else if (positionAfterTap > maxPosition) {\r\n positionAfterTap = maxPosition;\r\n }\r\n\r\n sliderValue(-positionAfterTap / self.property('viewsRatio'));\r\n\r\n m.redraw();\r\n });\r\n } else {\r\n hammer.on('panstart', function (event) {\r\n currentPosition = event.changedPointers[0].layerX - event.changedPointers[0].offsetX;\r\n });\r\n }\r\n\r\n hammer.on('panleft panright', function (event) {\r\n delta = (currentPosition + (event.deltaX * movementDirection));\r\n\r\n sliderValue(delta);\r\n });\r\n\r\n hammer.on('panend', function () {\r\n currentPosition = delta;\r\n });\r\n }.bind(this);\r\n\r\n this.slideGraphSlide = function (direction) {\r\n return function () {\r\n var width = this.windowWidth;\r\n\r\n if (direction === 'right') {\r\n currentPosition = (currentPosition - (width / 3));\r\n } else if (direction === 'left') {\r\n currentPosition = (currentPosition + (width / 3));\r\n }\r\n\r\n sliderValue(currentPosition);\r\n }.bind(this);\r\n };\r\n\r\n // Setup:\r\n this.getCompletedDrawDates();\r\n this.getStatisticsFeed();\r\n\r\n // Render:\r\n this.render().ready.then(function (nodes) {\r\n this.$graphViewFinder(nodes['graph-view-finder'].$element);\r\n\r\n if (nodes['large-bars-wrapper']) {\r\n this.$largeBarsWrapper(nodes['large-bars-wrapper'].$element);\r\n }\r\n\r\n if (!this.isMobile()) {\r\n this.property('largeBarsWrapperHeight', this.$graphViewFinder().offsetHeight);\r\n }\r\n }.bind(this));\r\n\r\n },\r\n view: function (controller) {\r\n if (!controller.loading()) {\r\n var render = controller.render();\r\n\r\n return m('div', { class: 'statistics-module', config: render.depend('statistics-module') }, [\r\n m('div', { class: 'statistics-module-wrapper ' + controller.selectedGameClient().toLowerCase() + '-statistics' }, [\r\n PeriodFilter(controller),\r\n NumbersTypeSwitch(controller),\r\n controller.isMobile() ? null : GraphOverview(controller),\r\n controller.hasGameVersionConflict ?\r\n m('.statistics-module-gameversion-conflict', [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesCommonIcons.svg#vikinglotto-calendar-white' })\r\n ]),\r\n m('.statistics-module-gameversion-conflict-message', m.trust(controller.d('GameVersionConflict/' + controller.selectedGameClient())))\r\n ])\r\n : Graph(controller)\r\n ]),\r\n controller.hasGameVersionConflict ? null : SelectedNumbers(controller)\r\n ]);\r\n }\r\n }\r\n };\r\n\r\n // Routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/Components/StatisticsComponentForGameClient',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Dictionary',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils'\r\n ],\r\n function (m, Storage, Dictionary, Render, Utils) {\r\n // Pre-init:\r\n var StatisticsDictionary = new Dictionary('/NumberGames/StatisticsModule');\r\n\r\n var StatisticsComponentForGameClient = function (controller, gameName) {\r\n\r\n var numbersFromStatistics = JSON.parse(Storage.get(gameName + '-StatisticsNumbers'));\r\n if (!numbersFromStatistics) {\r\n return;\r\n }\r\n\r\n // Variables\r\n var d = StatisticsDictionary.get;\r\n var render = Render();\r\n var isMobile = m.prop(Utils.isMobile());\r\n var game = controller.game();\r\n var currentRow = controller.property('currentRow');\r\n\r\n // Functions:\r\n var toggleStaticticsModulePanel = function () {\r\n return function () {\r\n controller.property('toggleStaticticsModulePanel', !controller.property('toggleStaticticsModulePanel'));\r\n m.redraw();\r\n };\r\n };\r\n\r\n var toggleNumber = function (number, numberType) {\r\n return function () {\r\n // Eurojackpot\r\n if (gameName === 'Eurojackpot') {\r\n if (numberType === 'numbers') {\r\n if (game.hasNumber(currentRow, number)) {\r\n game.removeNumber(currentRow, number);\r\n } else {\r\n if ((game.numbersPerRowMax() !== game.getRow(currentRow).numbers.length) && (!controller.property('autogeneratingNumbers'))) {\r\n game.addNumber(currentRow, number, false);\r\n } else {\r\n controller.property('animate', 'shake');\r\n return;\r\n }\r\n }\r\n } else if (numberType === 'extraNumbers') {\r\n if (game.hasStarNumber(currentRow, number)) {\r\n game.removeStarNumber(currentRow, number);\r\n } else {\r\n if ((game.starNumbersPerRowMax() !== game.getRow(currentRow).starNumbers.length) && (!controller.property('autogeneratingNumbers'))) {\r\n game.addStarNumber(currentRow, number, false);\r\n } else {\r\n controller.property('animate', 'shake-star-numbers');\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Vikinglotto\r\n if (gameName === 'Vikinglotto') {\r\n if (numberType === 'numbers') {\r\n if (game.hasNumber(currentRow, number)) {\r\n game.removeNumber(currentRow, number);\r\n } else {\r\n if ((game.numbersPerRowMax() !== game.getRow(currentRow).numbers.length) && (!controller.property('autogeneratingNumbers'))) {\r\n game.addNumber(currentRow, number, false);\r\n } else {\r\n controller.property('animate', 'shake');\r\n return;\r\n }\r\n }\r\n } else if (numberType === 'extraNumbers') {\r\n if (game.hasVikingNumber(currentRow, number)) {\r\n game.removeVikingNumber(currentRow, number);\r\n } else {\r\n if ((game.vikingNumbersPerRowMax() !== (game.getRow(currentRow).vikingNumber ? 1 : 0)) && (!controller.property('autogeneratingNumbers'))) {\r\n game.addVikingNumber(currentRow, number, false);\r\n } else {\r\n controller.property('animate', 'shake-viking-numbers');\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Lotto or Keno\r\n if ((gameName === 'Lotto') || (gameName === 'Keno')) {\r\n if (game.hasNumber(currentRow, number)) {\r\n game.removeNumber(currentRow, number);\r\n } else {\r\n if ((game.numbersPerRowMax() !== game.getRow(currentRow).numbers.length) && (!controller.property('autogeneratingNumbers'))) {\r\n game.addNumber(currentRow, number, false);\r\n } else {\r\n controller.property('animate', 'shake');\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if (numberType === 'numbers') {\r\n controller.property('numberSelected' + number, true);\r\n }\r\n };\r\n };\r\n\r\n var removeNumber = function (numberIndex, numberType) {\r\n return function () {\r\n event.stopPropagation();\r\n delete numbersFromStatistics[numberType][numberIndex];\r\n Storage.set(gameName + '-StatisticsNumbers', JSON.stringify(numbersFromStatistics));\r\n };\r\n };\r\n\r\n var autoSelectFromStatistics = function () {\r\n return function () {\r\n if (gameName === 'Keno') {\r\n if ((game.getRow(currentRow).numbers.length === game.numbersPerRowMax()) || controller.property('autogeneratingNumbers')) {\r\n return;\r\n }\r\n } else {\r\n if ((game.isRowValid(currentRow)) || (controller.property('autogeneratingNumbers'))) {\r\n return;\r\n }\r\n }\r\n var amountOfNumbersToGenerate = ((gameName === 'Keno') ? game.numbersPerRowMax() : game.numbersPerRow()) - game.getRow(currentRow).numbers.length;\r\n var amountOfSpecialNumbersToGenerate = null;\r\n var unselectedNumbers = [];\r\n var unselectedSpecialNumbers = [];\r\n var randomNumbers = [];\r\n var randomSpecialNumbers = [];\r\n\r\n if (gameName === 'Eurojackpot') {\r\n amountOfSpecialNumbersToGenerate = game.starNumbersPerRowMax() - game.getRow(currentRow).starNumbers.length;\r\n }\r\n if (gameName === 'Vikinglotto') {\r\n amountOfSpecialNumbersToGenerate = game.vikingNumbersPerRowMax() - (game.getRow(currentRow).vikingNumber ? 1 : 0);\r\n }\r\n\r\n for (var numbersType in numbersFromStatistics) {\r\n for (var statisticsNumber in numbersFromStatistics[numbersType]) {\r\n var number = numbersFromStatistics[numbersType][statisticsNumber];\r\n\r\n if (gameName === 'Eurojackpot') {\r\n if (numbersType === 'numbers') {\r\n if (!game.hasNumber(currentRow, number)) {\r\n unselectedNumbers.push(number);\r\n }\r\n } else if (numbersType === 'extraNumbers') {\r\n if (!game.hasStarNumber(currentRow, number)) {\r\n unselectedSpecialNumbers.push(number);\r\n }\r\n }\r\n }\r\n\r\n if (gameName === 'Vikinglotto') {\r\n if (numbersType === 'numbers') {\r\n if (!game.hasNumber(currentRow, number)) {\r\n unselectedNumbers.push(number);\r\n }\r\n } else if (numbersType === 'extraNumbers') {\r\n if (!game.hasVikingNumber(currentRow, number)) {\r\n unselectedSpecialNumbers.push(number);\r\n }\r\n }\r\n }\r\n\r\n if ((gameName === 'Lotto') || (gameName === 'Keno')) {\r\n if (!game.hasNumber(currentRow, number)) {\r\n unselectedNumbers.push(number);\r\n }\r\n }\r\n }\r\n }\r\n\r\n var randomNumbersGenerator = function (limit, numbersArray, randomArray) {\r\n for (; (randomArray.length < limit) && (numbersArray.length > 0);) {\r\n var randomNumber = numbersArray[Math.floor(Math.random() * numbersArray.length)];\r\n if (randomArray.indexOf(randomNumber) === -1) {\r\n numbersArray.splice(numbersArray.indexOf(randomNumber), 1);\r\n randomArray.push(randomNumber);\r\n }\r\n }\r\n };\r\n\r\n randomNumbersGenerator(amountOfNumbersToGenerate, unselectedNumbers, randomNumbers);\r\n randomNumbersGenerator(amountOfSpecialNumbersToGenerate, unselectedSpecialNumbers, randomSpecialNumbers);\r\n\r\n if ((gameName === 'Eurojackpot') || (gameName === 'Vikinglotto')) {\r\n randomNumbers.map(function (number) {\r\n toggleNumber(number, 'numbers')();\r\n });\r\n randomSpecialNumbers.map(function (number) {\r\n toggleNumber(number, 'extraNumbers')();\r\n });\r\n }\r\n\r\n if ((gameName === 'Lotto') || (gameName === 'Keno')) {\r\n randomNumbers.map(function (number) {\r\n toggleNumber(number, 'numbers')();\r\n });\r\n }\r\n };\r\n };\r\n\r\n var getNumbersFromStatistics = function () {\r\n var numbersDOM = [];\r\n controller.property('countOfNumbersFromStatistics', 0);\r\n for (var numbersType in numbersFromStatistics) {\r\n for (var statisticsNumber in numbersFromStatistics[numbersType]) {\r\n var number = numbersFromStatistics[numbersType][statisticsNumber];\r\n\r\n var className = 'selected-number-box';\r\n if (numbersType === 'extraNumbers') {\r\n className += ' special';\r\n }\r\n if (((gameName === 'Eurojackpot') || (gameName === 'Vikinglotto')) && (numbersType === 'numbers')) {\r\n if (game.hasNumber(currentRow, number)) {\r\n className += ' selected';\r\n }\r\n } else if ((gameName === 'Eurojackpot') && (numbersType === 'extraNumbers')) {\r\n if (game.hasStarNumber(currentRow, number)) {\r\n className += ' selected';\r\n }\r\n } else if ((gameName === 'Vikinglotto') && (numbersType === 'extraNumbers')) {\r\n if (game.hasVikingNumber(currentRow, number)) {\r\n className += ' selected';\r\n }\r\n } else if (game.hasNumber(currentRow, number)) {\r\n className += ' selected';\r\n }\r\n controller.property('countOfNumbersFromStatistics', (controller.property('countOfNumbersFromStatistics') + 1));\r\n numbersDOM.push(m('div', { class: className, onclick: toggleNumber(number, numbersType) }, [\r\n m('div', { class: 'selected-number-delete-button', onclick: removeNumber(number - 1, numbersType) }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-x' })\r\n ])\r\n ]),\r\n m('div', { class: 'number-cell' }, number)\r\n ]));\r\n }\r\n }\r\n return numbersDOM;\r\n };\r\n\r\n var goToStatistics = function () {\r\n return function () {\r\n var baseURL = window.location.origin;\r\n window.location.href = baseURL + '/' + gameName + '/statistik';\r\n };\r\n };\r\n\r\n var deleteStatisticsNumbers = function () {\r\n return function () {\r\n Storage.set(gameName + '-StatisticsNumbers', null);\r\n };\r\n };\r\n\r\n // Render:\r\n render.ready.then(function (nodes) {\r\n var $statisticsComponentInnerWrapper = nodes['statistics-component-inner-wrapper'].$element;\r\n var statisticsNumberWrapperHeight = nodes['numbers-from-statistics-wrapper'].$element.offsetHeight;\r\n\r\n $statisticsComponentInnerWrapper.style.height = statisticsNumberWrapperHeight + 'px';\r\n\r\n if (!controller.property('hideStatisticsNumbersDemoMode') && isMobile()) {\r\n setTimeout(function () {\r\n controller.property('hideStatisticsNumbersDemoMode', true);\r\n m.redraw();\r\n }, 2500);\r\n }\r\n });\r\n\r\n // Return:\r\n return m('div', { class: 'statistics-component-for-game-client-wrapper' + (controller.property('hideStatisticsNumbersDemoMode') ? (controller.property('toggleStaticticsModulePanel') ? ' opened' : ' closed') : '') }, [\r\n m('div', { class: 'statistics-component-outer-wrapper' }, [\r\n m('div', { class: 'statistics-component-toggle-button-wrapper', onclick: toggleStaticticsModulePanel() }, [\r\n m('div', { class: 'toggle-button' }, [\r\n m('span', { class: 'icon-wrapper' }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-up-arrow' })\r\n ])\r\n ]),\r\n m('span', { class: 'text-wrapper' }, d('SelectedNumbersForGameClientsComponent/Headline')),\r\n m('span', { class: 'numbers-count-wrapper' }, [\r\n m('span', { class: 'count-value' }, controller.property('countOfNumbersFromStatistics'))\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'statistics-component-inner-wrapper', config: render.depend('statistics-component-inner-wrapper') }, [\r\n m('div', { class: 'numbers-from-statistics-wrapper', config: render.depend('numbers-from-statistics-wrapper') }, getNumbersFromStatistics()),\r\n m('div', { class: 'actions-buttons-wrapper' }, [\r\n m('div', { class: 'action-button-wrapper', onclick: autoSelectFromStatistics() }, [\r\n m('span', { class: 'text-wrapper' }, d('SelectedNumbersForGameClientsComponent/Buttons/Autoselect')),\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-shuffle' })\r\n ])\r\n ]),\r\n m('div', { class: 'action-button-wrapper', onclick: goToStatistics() }, [\r\n m('span', { class: 'text-wrapper' }, d('SelectedNumbersForGameClientsComponent/Buttons/Edit')),\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-edit' })\r\n ])\r\n ]),\r\n m('div', { class: 'action-button-wrapper', onclick: deleteStatisticsNumbers() }, [\r\n m('span', { class: 'text-wrapper' }, d('SelectedNumbersForGameClientsComponent/Buttons/Delete')),\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-rubbish' })\r\n ])\r\n ])\r\n ])\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n\r\n // Public functions:\r\n return StatisticsComponentForGameClient;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/Components/TopSpotPageHeader',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/NumberGames/Scripts/Helpers/NumberGamesDictionary',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/FlipClock/Scripts/MithrilFlipClock',\r\n 'DanskeSpil/Framework/PuljeFeed/Scripts/JackpotInfo'\r\n ],\r\n function (Component, NumberGamesDictionary, Utils, MithrilFlipClock, JackpotInfo) {\r\n\r\n // Component:\r\n Component('top-spot-page-header', [NumberGamesDictionary], function (m, route, settings, property) {\r\n var componentElement = this.$element;\r\n\r\n if (!settings.BackgroundMediaSetting.Url && settings.BackgroundColor) {\r\n componentElement.style.backgroundColor = settings.BackgroundColor;\r\n }\r\n\r\n var mancheteCheck = function () {\r\n if (settings.Manchete.EnableTopBorderFrame) {\r\n componentElement.classList.add('manchete-top');\r\n }\r\n if (settings.Manchete.EnableBottomBorderFrame) {\r\n componentElement.classList.add('manchete-bottom');\r\n }\r\n };\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n this.d = NumberGamesDictionary.get.bind({ prefix: '/NumberGames' });\r\n this.property = property;\r\n this.flipClockSettings = {\r\n deactivated: settings.FlipClockDeactivated,\r\n endDate: settings.FlipClockEndDate,\r\n staticFlip: settings.FlipClockStaticFlip,\r\n colorLight: settings.FlipClockColorLight,\r\n labelLight: settings.FlipClockLabelLight,\r\n sizeSmall: settings.FlipClockSizeSmall,\r\n sizeDefault: settings.FlipClockSizeDefault,\r\n sizeLarge: settings.FlipClockSizeLarge,\r\n sizeExtraLarge: settings.FlipClockSizeExtraLarge,\r\n };\r\n this.iconTagLine = m.prop();\r\n this.preface = m.prop();\r\n this.title = m.prop();\r\n this.subtitle = m.prop();\r\n var prefaceReplacedValue;\r\n var titleReplacedValue;\r\n var subTitleReplacedValue;\r\n var shouldShowFallBack;\r\n\r\n\r\n // Functions:\r\n var checkIfTextHasError = function (rawValue, replacedValue) {\r\n // 1) if handlebar is undefined, fx. {foobar}, JackpotInfo will return an empty string.\r\n if (rawValue !== '' && replacedValue === '') {\r\n shouldShowFallBack = true;\r\n }\r\n\r\n // 2) if feed is down, there might be a handlebar.\r\n if (replacedValue.match(/{.*?}/)) {\r\n shouldShowFallBack = true;\r\n }\r\n\r\n // 3) We check for dynamic JackpotInfo replacements and get the entire info-object.\r\n // Info-object is then used to determine if specific game-feed is down (during draw)\r\n var regex = /{[^{}]+}/g;\r\n var m;\r\n while ((m = regex.exec(rawValue)) !== null) {\r\n // This is necessary to avoid infinite loops with zero-width matches\r\n if (m.index === regex.lastIndex) {\r\n regex.lastIndex++;\r\n }\r\n // The result can be accessed through the `m`-variable.\r\n m.forEach(function (match) {\r\n // we strip handlebars from match and try to get info-object. E.g. '{eurojackpot}' -> 'eurojackpot'\r\n var info = JackpotInfo.getByGame(match.slice(1, -1));\r\n // poolSizeDecimal === 0 indicates that the feed was found but has no value, so we show fallback\r\n if (info && info.poolSizeDecimal === 0) {\r\n shouldShowFallBack = true;\r\n }\r\n });\r\n }\r\n };\r\n\r\n shouldShowFallBack = settings.ShowFallBack;\r\n var replaceDay = function (str, day) {\r\n if (str.indexOf('{day}') !== -1 && day) {\r\n return str.replace('{day}', day);\r\n }\r\n return str;\r\n };\r\n\r\n if (!shouldShowFallBack) {\r\n prefaceReplacedValue = JackpotInfo.getDynamicFeed(replaceDay(settings.Preface, settings.FlipClockEndDay));\r\n checkIfTextHasError(settings.Preface, prefaceReplacedValue);\r\n\r\n titleReplacedValue = JackpotInfo.getDynamicFeed(replaceDay(settings.Title, settings.FlipClockEndDay));\r\n checkIfTextHasError(settings.Title, titleReplacedValue);\r\n\r\n subTitleReplacedValue = JackpotInfo.getDynamicFeed(replaceDay(settings.Subtitle, settings.FlipClockEndDay));\r\n checkIfTextHasError(settings.Subtitle, subTitleReplacedValue);\r\n }\r\n\r\n if (shouldShowFallBack) {\r\n this.preface(settings.PrefaceFallBack || '');\r\n this.title(settings.TitleFallBack || '');\r\n this.subtitle(settings.SubtitleFallBack || '');\r\n } else {\r\n this.preface(prefaceReplacedValue || '');\r\n this.title(titleReplacedValue || '');\r\n this.subtitle(subTitleReplacedValue || '');\r\n }\r\n\r\n this.splashDOM = function () {\r\n var splashPosition = function () {\r\n var position = '';\r\n if (settings.Splash.PositionAbsolute && !Utils.isMobile()) {\r\n if (settings.Splash.PositionFromTop) {\r\n position += 'top:' + settings.Splash.PositionFromTop + '%;';\r\n }\r\n if (settings.Splash.PositionFromLeft) {\r\n position += 'left:' + settings.Splash.PositionFromLeft + '%;';\r\n }\r\n } else if (!Utils.isMobile()) {\r\n if (settings.Splash.PositionFromTop) {\r\n position += 'margin-top:' + settings.Splash.PositionFromTop + '%;';\r\n }\r\n if (settings.Splash.PositionFromLeft) {\r\n position += 'margin-left:' + settings.Splash.PositionFromLeft + '%;';\r\n }\r\n }\r\n\r\n return position;\r\n };\r\n if (settings.Splash.ImageUrl || settings.Splash.ImageTabletUrl || settings.Splash.ImageMobileUrl) {\r\n return [\r\n m('picture', {\r\n class: 'top-spot-splash' + (settings.Splash.ReverseLeftToRight ? ' right' : ''),\r\n style: splashPosition()\r\n }, [\r\n m('img', { src: settings.Splash.ImageUrl })\r\n ])\r\n ];\r\n }\r\n };\r\n\r\n this.fontSizeAndColorStyles = function (className, size, unit, color) {\r\n var style = className + '{';\r\n style += size ? 'font-size:' + parseInt(size, 10) + unit + ' !important;' : '';\r\n style += color ? 'color:' + color + ' !important;' : '';\r\n style += '}';\r\n return size || color ? style : '';\r\n };\r\n\r\n this.desktopAndMobileStyles = function () {\r\n var prefaceStyleDesktop = this.fontSizeAndColorStyles('.preface-text__line', settings.PrefaceDecoration.FontSize, 'px', settings.PrefaceDecoration.FontColorHex);\r\n var titleStyleDesktop = this.fontSizeAndColorStyles('.title-text__line', settings.TitleDecoration.FontSize, 'px', settings.TitleDecoration.FontColorHex);\r\n var subtitleStyleDesktop = this.fontSizeAndColorStyles('.subtitle-text__line', settings.SubtitleDecoration.FontSize, 'px', settings.SubtitleDecoration.FontColorHex);\r\n var desktopStyles = prefaceStyleDesktop + titleStyleDesktop + subtitleStyleDesktop;\r\n\r\n var prefaceStyleMobile = this.fontSizeAndColorStyles('.preface-text__line', settings.PrefaceMobileDecoration.FontSize, 'vw', settings.PrefaceMobileDecoration.FontColorHex);\r\n var titleStyleMobile = this.fontSizeAndColorStyles('.title-text__line', settings.TitleMobileDecoration.FontSize, 'vw', settings.TitleMobileDecoration.FontColorHex);\r\n var subtitleStyleMobile = this.fontSizeAndColorStyles('.subtitle-text__line', settings.SubtitleMobileDecoration.FontSize, 'vw', settings.SubtitleMobileDecoration.FontColorHex);\r\n var mobileStyles = '@media (max-width: 767px) {' + prefaceStyleMobile + titleStyleMobile + subtitleStyleMobile + '}';\r\n\r\n return m('style', desktopStyles + mobileStyles);\r\n };\r\n\r\n // Init\r\n mancheteCheck();\r\n },\r\n\r\n view: function (controller) {\r\n return [\r\n controller.desktopAndMobileStyles(),\r\n m('picture', {\r\n class: 'background-image-wrapper',\r\n style: 'background-color:' + settings.BackgroundColor\r\n }, [\r\n m('source', { srcset: settings.BackgroundImageMobileSource, media: '(max-width: 767px)' }),\r\n m('source', { srcset: settings.BackgroundImageSource, media: '(min-width: 1224px)' }),\r\n m('source', { srcset: settings.BackgroundImageTabletSource, media: '(min-width: 768px)' }),\r\n m('img', { class: 'background-image', src: settings.BackgroundImageSource, alt: '' })\r\n ]),\r\n function () {\r\n if (!Utils.isMobile() || !settings.Splash.ReverseTopToBottom) {\r\n return controller.splashDOM();\r\n }\r\n }(),\r\n m('.top-spot__content-wrapper', [\r\n function () {\r\n if (settings.IconSource || controller.iconTagLine()) {\r\n return [m('div', { class: 'top-spot__icon-box' }, [\r\n m('img.icon__image', { src: settings.IconSource }),\r\n m('span.icon-tag__line', controller.iconTagLine())\r\n ])];\r\n }\r\n }(),\r\n m('.top-spot__text-wrapper', [\r\n controller.preface() ? m('.preface-text__line', controller.preface()) : '',\r\n controller.title() ? m('.title-text__line', controller.title()) : '',\r\n controller.subtitle() ? m('.subtitle-text__line', controller.subtitle()) : '',\r\n ]),\r\n\r\n !controller.flipClockSettings.deactivated ?\r\n m('.top-spot__flipclock-wrapper', m(MithrilFlipClock, { settings: controller.flipClockSettings })) : null,\r\n\r\n function () {\r\n if (settings.CallToAction.Text) {\r\n return [m('a', {\r\n class: 'top-spot__button',\r\n href: settings.CallToAction.Url,\r\n target: settings.CallToAction.Target,\r\n title: settings.CallToAction.Title\r\n }, settings.CallToAction.Text)];\r\n }\r\n }()\r\n ]),\r\n function () {\r\n if (Utils.isMobile() && settings.Splash.ReverseTopToBottom) {\r\n return controller.splashDOM();\r\n }\r\n }()\r\n ];\r\n }\r\n\r\n };\r\n\r\n // Setup routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils',\r\n [\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils'\r\n ],\r\n function (Utils) {\r\n\r\n // Functions:\r\n var gotoKenoClosed = function (replace) {\r\n if (!window.sitecoreEnv && location.search.indexOf('avoid_redirect') === -1) {\r\n var url = '/keno/lukket';\r\n\r\n if (replace) {\r\n try {\r\n window.history.replaceState({}, 'Keno Lukket', url);\r\n } catch (error) {\r\n // Nothing to handle here, just proceed to location.href\r\n }\r\n }\r\n\r\n location.href = url;\r\n }\r\n };\r\n\r\n // Public functions:\r\n return {\r\n gotoKenoClosed: gotoKenoClosed,\r\n formatCurrency: Utils.formatCurrency,\r\n formatNumber: Utils.formatNumber,\r\n formatISO8601: Utils.formatISO8601,\r\n parseISO8601: Utils.parseISO8601,\r\n getQueryParam: Utils.getQueryParam,\r\n prepareParamString: Utils.prepareParamString,\r\n getLongDate: Utils.getLongDate,\r\n isMobile: Utils.isMobile,\r\n isTabletDevice: Utils.isTabletDevice,\r\n openCoupon: Utils.openCoupon\r\n };\r\n\r\n });\r\n\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Dictionary'\r\n ],\r\n function (Dictionary) {\r\n\r\n // Variables:\r\n var kenoDictionary = new Dictionary('/NumberGames/Keno');\r\n\r\n // Public functions:\r\n return kenoDictionary;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Helpers/KenoApi',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/ApiRequest',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils'\r\n ],\r\n function (m, ApiRequest, KenoUtils) {\r\n\r\n // Variables:\r\n var baseURL = '/dlo/scapi/danskespil/numbergames/keno';\r\n\r\n // Functions:\r\n var prepareParamString = KenoUtils.prepareParamString;\r\n\r\n var createCoupon = function (data) {\r\n var deferred = m.deferred();\r\n\r\n var req = ApiRequest({\r\n method: 'POST',\r\n url: baseURL + '/coupon',\r\n data: data\r\n });\r\n\r\n req.then(function (response) {\r\n response = response || {};\r\n\r\n if (response && !response.Message) {\r\n deferred.resolve(response);\r\n } else {\r\n deferred.reject(response);\r\n }\r\n }, function (response) {\r\n response = response || {};\r\n response.Message = response.Message || 'ERROR_NOT_GIVEN';\r\n deferred.reject(response);\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n var getCompletedDrawDates = function (options) {\r\n var params = prepareParamString(options);\r\n\r\n return ApiRequest({\r\n url: baseURL + '/completedDrawDates' + params,\r\n localCacheTTL: 60,\r\n unwrapSuccess: function (response) {\r\n return response && response.drawDates ? response.drawDates : [];\r\n }\r\n });\r\n };\r\n\r\n var getCompletedDraws = function (options) {\r\n var params = prepareParamString(options);\r\n\r\n return ApiRequest({\r\n url: baseURL + '/completedDrawDates' + params,\r\n localCacheTTL: 60,\r\n unwrapSuccess: function (response) {\r\n return response && response.draws ? response.draws : [];\r\n }\r\n });\r\n };\r\n\r\n var getWinningNumbers = function (options) {\r\n var params = prepareParamString(options);\r\n\r\n return ApiRequest({\r\n url: baseURL + '/winningNumbers' + params,\r\n localCacheTTL: 60,\r\n unwrapSuccess: function (response) {\r\n return response;\r\n }\r\n });\r\n };\r\n\r\n // SUPPE!\r\n var getKenoSystemTables = function () {\r\n return ApiRequest({\r\n url: '/Components/DanskeSpil/Domain/Keno/Scripts/kenoSystemTableJson.txt',\r\n localCacheTTL: 60,\r\n unwrapSuccess: function (response) {\r\n return response.systemTables;\r\n }\r\n });\r\n };\r\n\r\n var getKenoInfo = function () {\r\n var params = KenoUtils.prepareParamString({});\r\n\r\n return ApiRequest({\r\n url: baseURL + params\r\n });\r\n };\r\n\r\n var getRandomNumbers = function (options) {\r\n var params = prepareParamString(options);\r\n\r\n return ApiRequest({\r\n url: baseURL + '/random' + params,\r\n unwrapSuccess: function (response) {\r\n var rows = [];\r\n\r\n if (response && response.rows) {\r\n response.rows.map(function (d) {\r\n rows.push(d.numbers);\r\n });\r\n }\r\n\r\n return rows;\r\n }\r\n });\r\n };\r\n\r\n var getCoupon = function (couponId) {\r\n var params = prepareParamString({ couponId: couponId });\r\n\r\n return ApiRequest({\r\n url: baseURL + '/coupon' + params\r\n });\r\n };\r\n\r\n // Public functions:\r\n return {\r\n createCoupon: createCoupon,\r\n getCompletedDrawDates: getCompletedDrawDates,\r\n getCompletedDraws: getCompletedDraws,\r\n getKenoSystemTables: getKenoSystemTables,\r\n getKenoInfo: getKenoInfo,\r\n getRandomNumbers: getRandomNumbers,\r\n getWinningNumbers: getWinningNumbers,\r\n getCoupon: getCoupon\r\n };\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n [\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoApi',\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage',\r\n\r\n ],\r\n function (KenoApi, m, Storage) {\r\n\r\n // Variables:\r\n var data = m.prop({});\r\n var isFeedDown = m.prop(false);\r\n var noOpenDraw = m.prop(false);\r\n var ready = m.deferred();\r\n\r\n // Functions:\r\n var getStakeOptions = function () {\r\n return data().stakeOptions ? data().stakeOptions.map(function (v) { return v.Value; }) : [];\r\n };\r\n\r\n var getStakeDefault = function () {\r\n var defaults = data().stakeOptions ? data().stakeOptions.filter(function (v) { return v.IsDefault; }).map(function (v) { return v.Value; }) : [];\r\n return defaults[0] || null;\r\n };\r\n\r\n // Draw Repeat Options:\r\n\r\n var getDrawRepeatOptions = function () {\r\n var options = data().drawRepeatOptions && data().drawRepeatOptions.options ? data().drawRepeatOptions.options : [];\r\n\r\n // Filter: Draw repeat value should not be higher than known amount of upcomming draws\r\n options = options.filter(function (v) {\r\n return v <= data().draws.length;\r\n });\r\n\r\n // Sort\r\n options.sort(function (a, b) { return a > b ? 1 : -1; });\r\n\r\n return options;\r\n };\r\n\r\n var getDrawRepeatDefault = function () {\r\n return data().drawRepeatOptions && data().drawRepeatOptions.default ? data().drawRepeatOptions.default : 1;\r\n };\r\n\r\n var getChanceRatio = function (rowLength) {\r\n var prizes = null;\r\n\r\n for (var i = 0; i < data().prizes.length; i++) {\r\n if (data().prizes[i].rowLength == rowLength) {\r\n prizes = data().prizes[i];\r\n }\r\n }\r\n\r\n return prizes ? prizes.chanceRatio : null;\r\n };\r\n\r\n var getPrizeGroups = function (rowLength) {\r\n if (typeof data().prizes !== 'undefined') {\r\n\r\n // Find right price group\r\n var prizes = null;\r\n\r\n for (var i = 0; i < data().prizes.length; i++) {\r\n if (data().prizes[i].rowLength == rowLength) {\r\n prizes = data().prizes[i];\r\n }\r\n }\r\n\r\n // Build output structure\r\n if (prizes) {\r\n var prizeGroups = {};\r\n\r\n for (var j = 0; j < prizes.prizeGroups.length; j++) {\r\n var record = prizes.prizeGroups[j];\r\n\r\n prizeGroups[record.correctNumbers] = record.winning;\r\n }\r\n\r\n return prizeGroups;\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n // Open draw:\r\n var getOpenDraw = function () {\r\n return data().openDraw;\r\n };\r\n\r\n var feedValid = function (str) {\r\n try {\r\n var json = JSON.parse(str);\r\n\r\n if (json && typeof json.openDraw !== 'undefined') {\r\n return true;\r\n }\r\n } catch (e) { }\r\n\r\n return false;\r\n };\r\n\r\n var storeToCache = function (json) {\r\n // Store with TTL 2 min.\r\n Storage.set('KenoInfoFeed', json ? JSON.stringify(json) : null, 120);\r\n };\r\n\r\n // Initialize:\r\n var init = function () {\r\n\r\n // 1) LOOK IN DOM\r\n\r\n var $kenoFeedData = document.querySelector('#keno-info');\r\n if ($kenoFeedData) {\r\n var domData = $kenoFeedData.innerHTML;\r\n\r\n if (feedValid(domData)) {\r\n var domJson = JSON.parse(domData);\r\n data(domJson);\r\n\r\n noOpenDraw(!data().openDraw);\r\n\r\n // Store to cache\r\n storeToCache(domJson);\r\n ready.resolve();\r\n return;\r\n }\r\n }\r\n\r\n\r\n // 2) LOOK IN LOCALSTORAGE\r\n var cacheData = Storage.get('KenoInfoFeed');\r\n\r\n if (!cacheData || !feedValid(cacheData)) {\r\n // Clear cache\r\n storeToCache(null);\r\n } else {\r\n // Use cache\r\n data(JSON.parse(cacheData));\r\n\r\n noOpenDraw(!data().openDraw);\r\n\r\n ready.resolve();\r\n return;\r\n }\r\n\r\n // 3) LOAD INFO FROM FEED\r\n\r\n KenoApi.getKenoInfo().then(function (d) {\r\n data(d);\r\n\r\n noOpenDraw(!data().openDraw);\r\n\r\n // Store to cache\r\n storeToCache(d);\r\n\r\n ready.resolve();\r\n }, function () {\r\n isFeedDown(true);\r\n noOpenDraw(true);\r\n\r\n ready.resolve();\r\n\r\n console.error('### KENOINFO FEED DOWN ###');\r\n });\r\n };\r\n\r\n init();\r\n\r\n // Public functions:\r\n return {\r\n data: data,\r\n getOpenDraw: getOpenDraw,\r\n isFeedDown: isFeedDown,\r\n noOpenDraw: noOpenDraw,\r\n ready: ready.promise,\r\n getStakeOptions: getStakeOptions,\r\n getStakeDefault: getStakeDefault,\r\n getDrawRepeatOptions: getDrawRepeatOptions,\r\n getDrawRepeatDefault: getDrawRepeatDefault,\r\n getPrizeGroups: getPrizeGroups,\r\n getChanceRatio: getChanceRatio\r\n };\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Models/KenoGame',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoApi',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/DataLayer'\r\n ],\r\n function (m, Model, KenoApi, KenoInfo, KenoUtils, DataLayer) {\r\n\r\n // Model:\r\n var KenoGame = Model('KenoGame', function (content) {\r\n\r\n // Constants:\r\n this.classicMaxRows = m.prop(50);\r\n this.numbersPerRowMin = m.prop(2);\r\n this.numbersPerRowMax = m.prop(10);\r\n this.numbersIntervalMax = m.prop(70);\r\n this.stakeOptions = m.prop(KenoInfo.getStakeOptions());\r\n this.numberOfDrawsOptions = m.prop(KenoInfo.getDrawRepeatOptions());\r\n this.ready = m.prop(m.deferred());\r\n this.rebuyCouponId = m.prop(content.rebuyCouponId || null);\r\n this.verticalType = m.prop(content.verticalType);\r\n // drawDays is an array of booleans, where each index represents a day of the week, starting with Monday\r\n this.drawDays = m.prop([true, true, true, true, true, true, true]);\r\n\r\n // Data:\r\n this.status = m.prop(content.status || 'open');\r\n this.playType = m.prop(content.playType || null);\r\n this.stakePerRow = m.prop(content.stakePerRow || KenoInfo.getStakeDefault()); // Required by PurchaseBar\r\n this.numberOfDraws = m.prop(typeof content.numberOfDraws === 'undefined' ? KenoInfo.getDrawRepeatDefault() : content.numberOfDraws); // Required by PurchaseBar\r\n this.numberOfNumbersPerRow = m.prop(content.numberOfNumbersPerRow || 9);\r\n this.rows = m.prop(content.rows || []);\r\n this.rowsToGenerate = m.prop(content.rowsToGenerate || 0);\r\n this.systemLevel = m.prop(content.systemLevel || (this.playType() === 'System' ? 2 : null)); // Required by KenoSystem\r\n this.startUrl = m.prop(content.startUrl || window.location.href.split('?')[0]);\r\n this.purchaseTracked = m.prop(content.purchaseTracked || false);\r\n this.couponId = m.prop(content.couponId || null);\r\n this.isProductDetailsTracked = m.prop(content.isProductDetailsTracked || false);\r\n this.isAddToCartTracked = m.prop(content.isAddToCartTracked || false);\r\n this.isPurchaseCompleteTracked = m.prop(content.isPurchaseCompleteTracked || false);\r\n this.plusSubscriptionJackpot = m.prop(content.plusSubscriptionJackpot || null);\r\n this.firstDepositInfo = m.prop(content.firstDepositInfo || null);\r\n\r\n // Functions - For manipulating rows:\r\n this.rowCount = function () {\r\n var count = 0;\r\n var rows = this.rows();\r\n var amount = rows.length;\r\n\r\n for (var i = 0; i < amount; i++) {\r\n var row = rows[i];\r\n\r\n if (row.count > count) {\r\n count = row.count + 1;\r\n } else {\r\n count++;\r\n }\r\n }\r\n\r\n return count;\r\n }.bind(this);\r\n\r\n this.sortRow = function (numbers) {\r\n numbers.sort(function (a, b) {\r\n return a.number < b.number ? -1 : 1;\r\n });\r\n\r\n return numbers;\r\n };\r\n\r\n this.addNumber = function (row, number, autogenerated) {\r\n row = this.getRow(row);\r\n\r\n row.numbers.push({ number: number, autogenerated: autogenerated || false });\r\n row.numbers = this.sortRow(row.numbers);\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.removeNumber = function (row, number) {\r\n row = this.getRow(row);\r\n\r\n var index = -1;\r\n var numbers = row.numbers;\r\n\r\n for (var i = 0; i < numbers.length; i++) {\r\n if (numbers[i].number === number) {\r\n index = i;\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (index > -1) {\r\n row.numbers.splice(index, 1);\r\n }\r\n\r\n row.numbers = this.sortRow(row.numbers);\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.addRow = function (numbers) {\r\n numbers = numbers || [];\r\n\r\n var count = this.rowCount();\r\n\r\n this.rows().push({ count: count, numbers: numbers, state: 'clean' });\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.removeRow = function (row) {\r\n var rows = this.rows();\r\n\r\n rows.splice(row - 1, 1);\r\n\r\n this.rows(rows);\r\n\r\n if (rows.length === 0) {\r\n this.addRow();\r\n }\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.removeAllRows = function () {\r\n this.rows([]);\r\n\r\n // We need double rows, as we're practically resetting the rows to original state\r\n this.addRow();\r\n this.addRow();\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.resetRow = function (rowNumber) {\r\n var row = this.getRow(rowNumber);\r\n\r\n row.numbers = [];\r\n row.state = 'clean';\r\n\r\n this.setRow(rowNumber, row);\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.setRow = function (row, content) {\r\n var rows = this.rows();\r\n\r\n rows[row - 1] = content;\r\n\r\n this.rows(rows);\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.autogenerate = function (rowNumber, rowLength) { // Autogenerates a specific row\r\n var deferred = m.deferred();\r\n var row = this.getRow(rowNumber);\r\n var nextRow = this.getRow(rowNumber + 1);\r\n var numbers = [];\r\n var self = this;\r\n\r\n // Prepare list of existing user selected numbers\r\n for (var i = 0; i < row.numbers.length; i++) {\r\n var number = row.numbers[i];\r\n\r\n if (!number.autogenerated) {\r\n numbers.push(number.number);\r\n }\r\n }\r\n\r\n KenoApi.getRandomNumbers({ playType: this.playType(), rowsToGenerate: 1, rowLength: rowLength, requiredNumbers: numbers }).then(function (rows) {\r\n rows = rows[0];\r\n\r\n for (var i = 0; i < rowLength; i++) {\r\n var generated = rows[i];\r\n\r\n if (numbers.indexOf(generated) === -1) {\r\n self.addNumber(rowNumber, generated, true);\r\n }\r\n }\r\n\r\n if (rowLength > 1 && !nextRow) {\r\n self.addRow();\r\n }\r\n\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise;\r\n }.bind(this);\r\n\r\n this.gameAutogenerate = function () { // Autogenerate a whole set of rows\r\n var self = this;\r\n var deferred = m.deferred();\r\n\r\n if (['KenoSmall', 'KenoLarge', 'KenoMillion'].indexOf(this.playType()) == -1) {\r\n console.error('fastPlayAutogenerate only support KenoSmall, KenoLarge and KenoMillion');\r\n\r\n return;\r\n }\r\n\r\n // Generate new rows:\r\n KenoApi.getRandomNumbers({ playType: this.playType() }).then(function (rows) {\r\n self.rows = m.prop([]);\r\n\r\n for (var i = 0; i < rows.length; i++) {\r\n var row = rows[i];\r\n var numbers = row.map(function (number) { return { number: number, autogenerated: true }; });\r\n\r\n self.addRow(numbers);\r\n }\r\n\r\n deferred.resolve();\r\n }, function () {\r\n deferred.reject();\r\n });\r\n\r\n return deferred.promise;\r\n }.bind(this);\r\n\r\n // Functions for stake and number of draws:\r\n\r\n this.setNumberOfDraws = function (draws) {\r\n this.numberOfDraws(draws);\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.setStakePerRow = function (stake) {\r\n this.stakePerRow(stake);\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n // Functions for KenoSystem:\r\n this.getSystemString = function () {\r\n var level = this.systemLevel();\r\n var row = this.getRow(1);\r\n var numbers = row && row.numbers ? row.numbers.length : 0;\r\n\r\n if (numbers + 1 < level) {\r\n return 'invalid';\r\n }\r\n\r\n return 'K ' + level + '-' + numbers;\r\n }.bind(this);\r\n\r\n this.getSystemCombinationAmount = function () {\r\n var row = this.getRow(1);\r\n\r\n if (!this.systemLevel() || !row || row.numbers.length <= this.systemLevel()) {\r\n return 0;\r\n }\r\n\r\n var table = {\r\n 2: [3, 6, 10, 15, 21, 28, 36, 45],\r\n 3: [4, 10, 20, 35, 56, 84, 120],\r\n 4: [5, 15, 35, 70, 126, 210],\r\n 5: [6, 21, 56, 126, 252],\r\n 6: [7, 28, 84, 210],\r\n 7: [8, 36, 120],\r\n 8: [9, 45],\r\n 9: [10]\r\n };\r\n\r\n var combinations = table[this.systemLevel()];\r\n var index = row.numbers.length - this.systemLevel() - 1;\r\n\r\n return combinations[index];\r\n }.bind(this);\r\n\r\n // Functions for purchase:\r\n\r\n this.purchase = function (params) {\r\n params = params || {};\r\n\r\n var self = this;\r\n var deferred = m.deferred();\r\n\r\n if (this.status() != 'open') {\r\n deferred.reject();\r\n } else if (!params.drawId) {\r\n console.error('No drawId given.');\r\n\r\n deferred.reject({ errorMessage: 'NUMBERGAMES.NO_OPEN_DRAW' });\r\n } else {\r\n this.status('pending-confirmation');\r\n this.save();\r\n\r\n var rows = this.getRowsSummary();\r\n var rowNumbers = rows.map(function (row) { return { numbers: row }; });\r\n\r\n var options = {\r\n drawId: params.drawId,\r\n totalPrice: parseInt(self.totalPrice(), 10),\r\n multidraw: parseInt(self.numberOfDraws(), 10),\r\n pricePerRow: parseInt(self.stakePerRow(), 10),\r\n playType: this.playType() || null,\r\n rows: rowNumbers,\r\n salesChannel: (KenoUtils.isMobile() || KenoUtils.isTabletDevice()) ? 'mobile' : 'web'\r\n };\r\n\r\n // Prize notification - register only enabling\r\n if (params.notifyPrizeEmail) {\r\n options.notifyPrizeEmail = true;\r\n }\r\n if (params.notifyPrizeSms) {\r\n options.notifyPrizeSms = true;\r\n }\r\n\r\n // System\r\n if (this.playType() === 'KenoSystem') {\r\n options.system = this.getSystemString();\r\n }\r\n\r\n // Create request\r\n var request = KenoApi.createCoupon(options);\r\n\r\n request.then(function (data) {\r\n self.status('completed');\r\n self.couponId(data.couponId);\r\n\r\n self.save();\r\n\r\n console.debug('Keno Coupon SUCCESS response', data);\r\n\r\n deferred.resolve(data);\r\n }, function (data) {\r\n self.status('open');\r\n\r\n self.save();\r\n\r\n console.debug('Keno Coupon ERROR');\r\n\r\n deferred.reject(data);\r\n });\r\n\r\n }\r\n\r\n return deferred.promise;\r\n }.bind(this);\r\n\r\n this.sendToSubscription = function () {\r\n // Tracking for DataLayer\r\n this.trackingAddToCart('plus');\r\n\r\n window.location.href = '/plus-abonnement/se-kurv?plus&mcGameType=keno&mcGameId=' + this.id();\r\n }.bind(this);\r\n\r\n // Functions - For tracking (DataLayer eCommerce buzzword)\r\n\r\n this.createDataLayerProduct = function (subscription, event) {\r\n // Product array for datalayer\r\n var dataLayerProducts = [];\r\n\r\n // Main product\r\n var product = {};\r\n\r\n if (subscription) {\r\n // subscription product (PLUS abonnement)\r\n product.name = 'plus';\r\n product.price = this.stakePerRow().toString();\r\n product.brand = 'dlo_plu';\r\n product.category = DataLayer.categoryName(this.playType());\r\n product.variant = DataLayer.variantName('plus_keno', this.numberOfDraws(), this.playType());\r\n product.quantity = this.getRowAmount();\r\n for (var i = 0; i < 7; i++) { // 7 is for the number of days in a week.\r\n dataLayerProducts.push(product);\r\n }\r\n } else {\r\n product.name = 'keno';\r\n product.price = DataLayer.rowPrice(this.stakePerRow(), this.numberOfDraws(), this.playType());\r\n product.brand = 'dlo_ken';\r\n product.category = DataLayer.categoryName(this.playType());\r\n product.variant = DataLayer.variantName('keno', this.numberOfDraws(), this.playType());\r\n if (event != 'productDetails') {\r\n product.quantity = DataLayer.quantity('keno', this.getRowsSummary().length, this.playType(), this.getSystemCombinationAmount());\r\n }\r\n dataLayerProducts.push(product);\r\n }\r\n\r\n return dataLayerProducts;\r\n };\r\n\r\n this.trackingAddToCart = function () {\r\n // Check if the event has already been pushed\r\n if (this.isAddToCartTracked() == false) {\r\n this.isAddToCartTracked(true);\r\n this.save();\r\n\r\n // Push DataLayer addToCart Event\r\n DataLayer.addToCart(this.createDataLayerProduct());\r\n } else {\r\n console.warn('addToCart has been pushed already!');\r\n }\r\n }.bind(this);\r\n\r\n this.trackingProductDetails = function () {\r\n // Check if the event has already been pushed\r\n if (this.isProductDetailsTracked() == false) {\r\n this.isProductDetailsTracked(true);\r\n this.save();\r\n\r\n // Push DataLayer addToCart Event\r\n DataLayer.productDetail(this.createDataLayerProduct(false, 'productDetails'));\r\n } else {\r\n console.warn('productDetails has been pushed already!');\r\n }\r\n }.bind(this);\r\n\r\n this.trackingPurchaseComplete = function () {\r\n\r\n if (this.isPurchaseCompleteTracked() == false) {\r\n this.isPurchaseCompleteTracked(true);\r\n this.save();\r\n\r\n // Push DataLayer purchaseComplete Event\r\n DataLayer.purchaseCompleted({\r\n totalPrice: this.totalPrice().toString(),\r\n id: this.couponId()\r\n }, this.createDataLayerProduct());\r\n } else {\r\n console.warn('purchaseCompleted has been pushed already!');\r\n }\r\n }.bind(this);\r\n\r\n // Functions - For extracting data:\r\n\r\n this.getRow = function (row) {\r\n // Notice that row param starts with index 1\r\n return this.rows()[row - 1];\r\n }.bind(this);\r\n\r\n this.getRows = function (minimumRowLength) {\r\n if (typeof minimumRowLength === 'undefined') {\r\n minimumRowLength = 1;\r\n }\r\n\r\n var rows = this.rows();\r\n\r\n return rows.filter(function (row) {\r\n return (row.state !== 'remove' && row.numbers.length > minimumRowLength);\r\n });\r\n }.bind(this);\r\n\r\n this.hasNumber = function (row, number) {\r\n row = this.getRow(row);\r\n\r\n var numbers = row.numbers;\r\n\r\n for (var i = 0; i < numbers.length; i++) {\r\n if (numbers[i].number === number) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }.bind(this);\r\n\r\n this.calculateWinnings = function (row) {\r\n row = this.getRow(row);\r\n\r\n var prizeGroup = KenoInfo.getPrizeGroups(row.numbers.length);\r\n var values = prizeGroup ? Object.keys(prizeGroup).map(function (key) { return prizeGroup[key]; }) : [0];\r\n var multiplier = Math.max.apply(null, values);\r\n\r\n return multiplier * this.stakePerRow();\r\n }.bind(this);\r\n\r\n this.drawDateHtml = function (delimiter) {\r\n delimiter = delimiter || ' - ';\r\n\r\n if (!KenoInfo.data().openDraw) {\r\n return '';\r\n }\r\n\r\n var closingTime = KenoInfo.data().openDraw.closingTime;\r\n var draws = this.numberOfDraws();\r\n\r\n var date = new Date(closingTime);\r\n\r\n var result = KenoUtils.formatISO8601(date.toISOString(), { includeTime: false });\r\n\r\n if (draws > 1) {\r\n date.setDate(date.getDate() + (draws - 1));\r\n result = '' + result + delimiter + KenoUtils.formatISO8601(date.toISOString(), { includeTime: false }) + '';\r\n }\r\n\r\n return result;\r\n }.bind(this);\r\n\r\n this.drawDateHtmlShort = function () {\r\n var dates = this.drawDates();\r\n var firstDate = dates[0];\r\n var lastDate = dates[dates.length - 1];\r\n\r\n // if there's more than one date, output the range. otherwise output the first date.\r\n if (dates.length > 1) {\r\n return firstDate.draw.getDate() + '/' + (firstDate.draw.getMonth() + 1) + ' - ' + lastDate.draw.getDate() + '/' + (lastDate.draw.getMonth() + 1) + ' ' + lastDate.draw.getFullYear();\r\n } else {\r\n return firstDate.draw.getDate() + '/' + (firstDate.draw.getMonth() + 1) + ' ' + firstDate.draw.getFullYear();\r\n }\r\n }.bind(this);\r\n\r\n this.drawDates = function () {\r\n var drawDates = [];\r\n var openDraw = KenoInfo.data().openDraw;\r\n var draws = this.numberOfDraws();\r\n\r\n if (!openDraw || !openDraw.closingTime) {\r\n return drawDates;\r\n }\r\n\r\n var closingTime = openDraw.closingTime;\r\n\r\n while (draws--) {\r\n var futureDate = new Date(closingTime);\r\n futureDate.setDate(futureDate.getDate() + draws);\r\n drawDates.push({\r\n draw: futureDate,\r\n hasJoker: false\r\n });\r\n }\r\n\r\n drawDates.sort(function (a, b) {\r\n return a.draw.getTime() - b.draw.getTime();\r\n });\r\n\r\n return drawDates;\r\n }.bind(this);\r\n\r\n this.getRowsSummary = function () { // Required by PurchaseBar\r\n var summary = [];\r\n var rows = this.getRows();\r\n\r\n for (var i = 0; i < rows.length; i++) {\r\n var row = rows[i].numbers.map(function (numbers) { return numbers.number; });\r\n\r\n summary.push(row);\r\n }\r\n\r\n return summary;\r\n }.bind(this);\r\n\r\n this.getRowAmount = function () {\r\n var numberOfDraws = this.numberOfDraws();\r\n var playType = this.playType();\r\n\r\n if (playType === 'KenoSystem') {\r\n return this.getSystemCombinationAmount();\r\n }\r\n\r\n return playType === 'Lightning' && numberOfDraws > 0 ? this.rowsToGenerate() : this.getRows().length;\r\n }.bind(this);\r\n\r\n this.totalPrice = function () {\r\n var numberOfDraws = this.numberOfDraws();\r\n var playType = this.playType();\r\n var stakePerRow = this.stakePerRow();\r\n\r\n if (playType === 'KenoSystem') {\r\n return stakePerRow * this.getSystemCombinationAmount() * numberOfDraws;\r\n }\r\n\r\n var rowsCount = this.getRowAmount();\r\n var price = stakePerRow * rowsCount;\r\n\r\n if (numberOfDraws > 0) {\r\n price *= numberOfDraws;\r\n }\r\n\r\n return price;\r\n }.bind(this);\r\n\r\n this.trackPurchase = function () {\r\n var self = this;\r\n\r\n if (!self.purchaseTracked() && self.status() == 'completed') {\r\n window.DSAPI && DSAPI.ready(function () {\r\n self.purchaseTracked(true);\r\n });\r\n\r\n this.trackingPurchaseComplete();\r\n }\r\n }.bind(this);\r\n\r\n this.cancelUrl = function () {\r\n if (this.rebuyCouponId()) {\r\n // This is called when going from confirm page, back to completed games overview page.\r\n return this.startUrl();\r\n }\r\n\r\n // This is called when going from confirm page, back to game.\r\n return this.startUrl() + '?gameInstanceId=' + this.id();\r\n }.bind(this);\r\n\r\n this.copyFromOldCoupon = function () {\r\n var self = this;\r\n\r\n KenoApi.getCoupon(this.rebuyCouponId()).then(function (data) {\r\n self.numberOfDraws(!data.multiWagers ? 1 : data.multiWagers.length);\r\n self.playType((data.playType.substring(0, 4) === 'Keno' ? '' : 'Keno') + data.playType.charAt(0).toUpperCase() + data.playType.slice(1));\r\n self.systemLevel(data.systemLevel);\r\n\r\n // playType System fix:\r\n if (!self.playType() || self.playType() === 'KenoUnknown') {\r\n self.playType(self.systemLevel() ? 'KenoSystem' : 'KenoClassic');\r\n }\r\n\r\n data.games.forEach(function (game) {\r\n var rowNumbers = [];\r\n\r\n // Classic, Million, Small and Large:\r\n if (self.playType() === 'KenoClassic' || self.playType() === 'KenoMillion' || self.playType() === 'KenoSmall' || self.playType() === 'KenoLarge') {\r\n\r\n game.rows.forEach(function (row, index) {\r\n rowNumbers = { count: index, numbers: [], state: 'clean' };\r\n\r\n row.numbers.forEach(function (number) {\r\n rowNumbers.numbers.push({ autogenerated: false, number: number.number });\r\n });\r\n\r\n self.rows().push(rowNumbers);\r\n });\r\n\r\n self.stakePerRow(data.price / self.getRowsSummary().length);\r\n\r\n\r\n // System:\r\n } else if (self.playType() === 'KenoSystem') {\r\n rowNumbers = { count: 0, numbers: [], state: 'clean' };\r\n\r\n game.systemNumbers.numbers.forEach(function (number) {\r\n rowNumbers.numbers.push({ autogenerated: false, number: number.number });\r\n });\r\n\r\n self.rows().push(rowNumbers);\r\n\r\n self.stakePerRow(data.price / self.getSystemCombinationAmount());\r\n\r\n }\r\n\r\n });\r\n\r\n self.save();\r\n\r\n self.ready().resolve();\r\n }, function () {\r\n self.ready().reject('coupon-not-found');\r\n });\r\n }.bind(this);\r\n\r\n this.toJSON = function () {\r\n return {\r\n id: this.id(),\r\n state: this.state(),\r\n status: this.status(),\r\n playType: this.playType(),\r\n stakePerRow: this.stakePerRow(),\r\n numberOfDraws: this.numberOfDraws(),\r\n numberOfNumbersPerRow: this.numberOfNumbersPerRow(),\r\n rows: this.rows(),\r\n rowsToGenerate: this.rowsToGenerate(),\r\n systemLevel: this.systemLevel(),\r\n startUrl: this.startUrl(),\r\n purchaseTracked: this.purchaseTracked(),\r\n couponId: this.couponId(),\r\n isProductDetailsTracked: this.isProductDetailsTracked(),\r\n isAddToCartTracked: this.isAddToCartTracked(),\r\n isPurchaseCompleteTracked: this.isPurchaseCompleteTracked(),\r\n firstDepositInfo: this.firstDepositInfo(),\r\n plusSubscriptionJackpot: this.plusSubscriptionJackpot(),\r\n drawDays: this.drawDays(),\r\n };\r\n }.bind(this);\r\n\r\n // Init:\r\n this.init = function () {\r\n\r\n // Rebuy coupon:\r\n if (this.rebuyCouponId() && this.state() === 'new') {\r\n this.copyFromOldCoupon();\r\n\r\n // Regular coupon:\r\n } else {\r\n if (this.state() === 'new') {\r\n this.addRow();\r\n }\r\n\r\n this.ready().resolve();\r\n }\r\n\r\n }.bind(this);\r\n\r\n });\r\n\r\n KenoGame.setupGame = function (options) {\r\n var game = undefined;\r\n\r\n if (options.gameInstanceId) {\r\n game = KenoGame.get(options.gameInstanceId);\r\n\r\n if (!game || game.status() === 'completed' || (options.playType && game.playType() !== options.playType)) {\r\n game = undefined;\r\n }\r\n }\r\n\r\n if (!game) {\r\n game = KenoGame.construct(options, options.state || 'new');\r\n }\r\n\r\n return game;\r\n };\r\n\r\n\r\n // Public functions:\r\n return KenoGame;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/SliderSelector',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Hammer',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Framework/HammerTime',\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render'\r\n ],\r\n function (Hammer, ignoredHammerTime, m, Render) {\r\n\r\n // Template:\r\n var SliderSelector = function (controller, name, options, value) {\r\n\r\n // Variables:\r\n var currentValue = value();\r\n var currentOptions = options();\r\n var hasTouch = 'ontouchstart' in window;\r\n var render = Render();\r\n\r\n // Functions:\r\n var maximumLeft = function () {\r\n var numbersWidth = controller.property('sliderSelectorNumbersWidth' + name);\r\n var selectorWidth = controller.property('sliderSelectorSelectorWidth' + name);\r\n var minLeft = minimumLeft();\r\n\r\n return numbersWidth - selectorWidth - minLeft;\r\n };\r\n\r\n var minimumLeft = function () {\r\n return (controller.property('sliderSelectorNumberWidth' + name) / 2) - (controller.property('sliderSelectorSelectorWidth' + name) / 2);\r\n };\r\n\r\n var selectNumber = function (option) {\r\n return function () {\r\n currentOptions = options();\r\n currentValue = value();\r\n\r\n value(currentOptions[currentOptions.indexOf(option)]);\r\n };\r\n };\r\n\r\n var selectorStyle = function () {\r\n var index = options().indexOf(value());\r\n var maxLeft = maximumLeft();\r\n var minLeft = minimumLeft();\r\n var numbers = controller.property('sliderSelectorNumbers' + name);\r\n var offset = -(controller.property('sliderSelectorSelectorWidth' + name) / 2);\r\n\r\n if (numbers && numbers.length > 0) {\r\n for (var i = 0; i <= index; i++) {\r\n offset += i < index ? numbers[i].$element.clientWidth : numbers[i].$element.clientWidth / 2;\r\n }\r\n }\r\n\r\n if (offset < minLeft) {\r\n offset = minLeft;\r\n } else if (offset > maxLeft) {\r\n offset = maxLeft;\r\n }\r\n\r\n return 'transform: translateX(' + offset + 'px);';\r\n };\r\n\r\n // Render:\r\n render.ready.then(function (nodes) {\r\n var numbers = nodes['number'];\r\n var numbersAmount = numbers.length;\r\n var numbersWidth = 0;\r\n\r\n for (var i = 0; i < numbersAmount; i++) {\r\n numbersWidth += numbers[i].$element.clientWidth;\r\n }\r\n\r\n controller.property('sliderSelectorNumbers' + name, numbers);\r\n controller.property('sliderSelectorAverageNumberWidth' + name, numbersWidth / currentOptions.length);\r\n controller.property('sliderSelectorNumberWidth' + name, nodes['number'][0].$element.clientWidth);\r\n controller.property('sliderSelectorNumbersWidth' + name, numbersWidth);\r\n controller.property('sliderSelectorSelectorWidth' + name, nodes['selector'].$element.clientWidth);\r\n controller.property('sliderSelectorSliderBarWidth' + name, nodes['slider-bar'].$element.clientWidth);\r\n\r\n var selector = nodes['selector'].$element;\r\n var sliderBar = nodes['slider-bar'].$element;\r\n\r\n if (!nodes['selector'].rendered) {\r\n var hammer = new Hammer(nodes['selector'].$element);\r\n var didPan = false;\r\n\r\n hammer.on('panleft panright', function (event) {\r\n currentValue = value();\r\n didPan = true;\r\n\r\n var delta = event.deltaX;\r\n var index = currentOptions.indexOf(currentValue);\r\n var minLeft = minimumLeft();\r\n var maxLeft = maximumLeft();\r\n var offset = 0;\r\n\r\n for (var i = 0; i < index; i++) {\r\n offset += numbers[i].$element.clientWidth;\r\n }\r\n\r\n offset += controller.property('sliderSelectorSelectorWidth' + name) / 2;\r\n\r\n delta += offset;\r\n\r\n if (delta < minLeft) {\r\n delta = minLeft;\r\n } else if (delta > maxLeft) {\r\n delta = maxLeft;\r\n }\r\n\r\n selector.style.transition = 'none';\r\n selector.style.transform = 'translateX(' + delta + 'px) translateZ(0)';\r\n\r\n });\r\n\r\n hammer.on('panend', function (event) {\r\n selector.classList.remove('pressed');\r\n\r\n setTimeout(function () {\r\n didPan = false;\r\n }, 100);\r\n\r\n currentOptions = options();\r\n currentValue = value();\r\n\r\n var delta = event.deltaX;\r\n\r\n if (delta < 0) {\r\n delta -= controller.property('sliderSelectorSelectorWidth' + name) / 2;\r\n }\r\n\r\n var moved = Math.round(delta / controller.property('sliderSelectorAverageNumberWidth' + name));\r\n var index = options().indexOf(value()) + moved;\r\n\r\n if (index < 0) {\r\n index = 0;\r\n } else if (index > currentOptions.length - 1) {\r\n index = currentOptions.length - 1;\r\n }\r\n\r\n value(currentOptions[index]);\r\n\r\n if (currentValue === value()) {\r\n value(0);\r\n value(currentValue);\r\n }\r\n\r\n m.redraw();\r\n });\r\n\r\n selector.addEventListener(hasTouch ? 'touchstart' : 'mousedown', function () {\r\n didPan = true;\r\n\r\n selector.classList.add('pressed');\r\n });\r\n\r\n sliderBar.addEventListener('click', function (event) {\r\n\r\n selector.classList.remove('pressed');\r\n\r\n if (!didPan) {\r\n currentOptions = options();\r\n currentValue = value();\r\n\r\n var amount = numbers.length;\r\n var delta = event.offsetX;\r\n var index = 0;\r\n var offset = 0;\r\n\r\n for (var i = 0; i < amount; i++) {\r\n offset += numbers[i].$element.clientWidth;\r\n\r\n if (delta >= offset) {\r\n index++;\r\n }\r\n }\r\n\r\n value(currentOptions[index]);\r\n\r\n m.redraw();\r\n }\r\n\r\n didPan = false;\r\n });\r\n }\r\n });\r\n\r\n // Return:\r\n return m('div', { class: 'keno-slider-selector', config: render.depend('slider-selector') }, [\r\n m('div', { class: 'slider-container' }, [\r\n m('div', { class: 'slider-bar', config: render.depend('slider-bar') }, [\r\n m('div', { class: 'selector', config: render.depend('selector'), style: selectorStyle() })\r\n ]),\r\n m('div', { class: 'numbers-container', config: render.depend('numbers-container') },\r\n options().map(function (option) {\r\n return m('span', { class: 'number' + (currentValue === option ? ' selected' : ''), config: render.depend('number'), onclick: selectNumber(option) }, option);\r\n })\r\n )\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return SliderSelector;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/CollapsibleSection',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render'\r\n ],\r\n function (m, Render) {\r\n\r\n // Vars\r\n var persistent = {};\r\n\r\n // Template:\r\n var CollapsibleSection = function (id, options, content) {\r\n\r\n // Persistent variables\r\n persistent[id] = persistent[id] || {};\r\n var s = persistent[id];\r\n s.expanded = s.expanded || m.prop(false);\r\n s.wrapperHeight = s.wrapperHeight || m.prop();\r\n\r\n // Variables:\r\n var render = Render();\r\n var hideOnMobile = typeof options.hideOnMobile !== 'undefined' ? options.hideOnMobile : true;\r\n\r\n // Functions:\r\n var toggleExpand = function () {\r\n s.expanded(!s.expanded());\r\n };\r\n\r\n // Renders:\r\n render.ready.then(function (nodes) {\r\n var $collapsibleInnerWrapper = nodes['inner-collapsible-section'].$element;\r\n var height = $collapsibleInnerWrapper.offsetHeight;\r\n\r\n if (height != s.wrapperHeight()) {\r\n s.wrapperHeight(height);\r\n\r\n if (s.expanded()) {\r\n var $collapsibleWrapper = nodes['collapsible-section'].$element;\r\n\r\n $collapsibleWrapper.style.maxHeight = height + 'px';\r\n }\r\n }\r\n });\r\n\r\n\r\n // View:controller.systemTables()\r\n return [\r\n m('div', {\r\n class: 'keno-content-wrapper box-wide keno-collapsible-section ' + (s.expanded() ? ' active' : ''),\r\n style: (s.expanded() ? 'max-height: ' + s.wrapperHeight() + 'px' : ''),\r\n config: render.depend('collapsible-section')\r\n }, [\r\n m('div', { class: 'inner-collapsible-section', config: render.depend('inner-collapsible-section') }, [\r\n\r\n content,\r\n\r\n m('div', {\r\n class: 'expand-button-container' + (hideOnMobile ? ' mobile-hide' : ''),\r\n onclick: toggleExpand\r\n }, [\r\n m('div', { class: 'button' }, [\r\n m('span', { class: 'expand-text' }, options.expand),\r\n m('span', { class: 'collapse-text' }, options.hide),\r\n m('svg', { class: 'svg-icon-arrow-up rotate180' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoCommonIcons.svg#uparrow-small' })\r\n ])\r\n ])\r\n ])\r\n ]),\r\n hideOnMobile ? m('p', { class: 'mobile-message mobile-only' }, options.noMobileVersion) : '',\r\n ])\r\n ];\r\n\r\n };\r\n\r\n // Public functions:\r\n return CollapsibleSection;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/PurchaseBar',\r\n [\r\n 'Common/Framework/EventHandling/Scripts/OutsideClick',\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Resize',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Scroll',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils',\r\n ],\r\n function (OutsideClick, m, Render, Resize, Scroll, KenoDictionary, KenoUtils) {\r\n\r\n // View:\r\n var PurchaseBar = function (controller) {\r\n\r\n // Variables:\r\n var $bar = null;\r\n var $container = null;\r\n var $top = null;\r\n var $wrapper = window;\r\n var d = KenoDictionary.get;\r\n var game = controller.game();\r\n var numberOfDraws = game.numberOfDraws();\r\n var playType = game.playType().toLowerCase();\r\n var render = Render();\r\n\r\n // Functions:\r\n var getHeaderHeight = function () {\r\n var $header = document.querySelector('.top-navigation');\r\n\r\n return $header ? ((parseInt($header.style.transform.split(',')[5], 10) || 0) < 0 ? 0 : $header.offsetHeight) : 0;\r\n };\r\n\r\n var getDaysStyle = function () {\r\n var height = controller.property('purchaseBarDaysHeight');\r\n var dayListItemHeight = controller.property('dayListItemHeight');\r\n var maxHeight = controller.property('purchaseBarMaxHeight') - getHeaderHeight();\r\n\r\n if (maxHeight < dayListItemHeight * 2.5) {\r\n maxHeight = dayListItemHeight * 2.5;\r\n }\r\n\r\n return controller.property('purchaseBarDays') ? 'max-height: ' + (height < maxHeight ? height : maxHeight) + 'px;' : '';\r\n };\r\n\r\n var getStakeStyle = function () {\r\n var height = controller.property('purchaseBarStakeHeight');\r\n var stakeListItemHeight = controller.property('stakeListItemHeight');\r\n var maxHeight = controller.property('purchaseBarMaxHeight') - getHeaderHeight();\r\n\r\n if (maxHeight < stakeListItemHeight * 2.5) {\r\n maxHeight = stakeListItemHeight * 2.5;\r\n }\r\n\r\n return controller.property('purchaseBarStake') ? 'max-height: ' + (height < maxHeight ? height : maxHeight) + 'px;' : '';\r\n };\r\n\r\n var formatDraws = function (draws) {\r\n return d(draws < 2 ? 'PurchaseBar/NumberOfDrawsSingular' : 'PurchaseBar/NumberOfDrawsPluralis', { draws: draws });\r\n };\r\n\r\n var setDraws = function (value) {\r\n return function () {\r\n game.setNumberOfDraws(value);\r\n };\r\n };\r\n\r\n var setStake = function (value) {\r\n return function () {\r\n game.setStakePerRow(value);\r\n };\r\n };\r\n\r\n var sticky = function () {\r\n var barHeight = $bar ? $bar.offsetHeight : 0;\r\n var topTop = $top ? $top.offsetTop : 0;\r\n var containerHeight = $container ? $container.offsetHeight : 0;\r\n var containerTop = $container ? $container.offsetTop : 0;\r\n var parentWidth = $bar ? $bar.parentElement.clientWidth : 0;\r\n var scrollTop = $wrapper.pageYOffset;\r\n var windowHeight = window.innerHeight;\r\n\r\n // Viewport:\r\n var aboveViewport = scrollTop > (topTop === 0 ? containerTop : topTop) + containerHeight;\r\n var belowViewport = scrollTop + windowHeight < (topTop === 0 ? containerTop : topTop);\r\n var relativeViewport = !aboveViewport && scrollTop + windowHeight > containerTop + containerHeight;\r\n\r\n $bar && $bar.removeAttribute('style');\r\n $container && $container.removeAttribute('style');\r\n\r\n // Sticky:\r\n if (!aboveViewport && !belowViewport && !relativeViewport) {\r\n if ($bar) {\r\n $bar.style.bottom = '0';\r\n $bar.style.position = 'fixed';\r\n $bar.style.width = parentWidth + 'px';\r\n }\r\n if ($container) {\r\n $container.style.paddingBottom = barHeight + 'px';\r\n }\r\n }\r\n\r\n // Dropdown:\r\n var containerEnd = containerTop + containerHeight;\r\n var scrollBottom = scrollTop + windowHeight;\r\n\r\n controller.property('purchaseBarMaxHeight', (scrollBottom > containerEnd ? (windowHeight - barHeight) - (scrollBottom - containerEnd) : windowHeight - barHeight) - 20);\r\n };\r\n\r\n var toggleDays = function () {\r\n controller.property('purchaseBarDays', !controller.property('purchaseBarDays'));\r\n controller.property('purchaseBarStake', false);\r\n };\r\n\r\n var toggleStake = function () {\r\n controller.property('purchaseBarDays', false);\r\n controller.property('purchaseBarStake', !controller.property('purchaseBarStake'));\r\n };\r\n\r\n // Render:\r\n render.ready.then(function (nodes) {\r\n\r\n $bar = nodes['purchase-bar'].$element;\r\n $container = document.querySelector('.purchase-bar-container');\r\n $top = document.querySelector('.purchase-bar-top');\r\n\r\n if ($bar) {\r\n setTimeout(function () {\r\n sticky();\r\n }, 250);\r\n }\r\n\r\n if (!nodes['purchase-bar'].rendered && $container) {\r\n setTimeout(function () {\r\n sticky();\r\n }, 50);\r\n\r\n Scroll(function () {\r\n sticky();\r\n });\r\n\r\n Resize(function () {\r\n sticky();\r\n });\r\n\r\n OutsideClick(nodes['purchase-bar'].$element, nodes['purchase-bar'].context, function () {\r\n controller.property('purchaseBarDays', false);\r\n controller.property('purchaseBarStake', false);\r\n });\r\n }\r\n\r\n if (!nodes['stake-list'].rendered) {\r\n controller.property('purchaseBarStakeHeight', (nodes['stake-list'].$element).offsetHeight);\r\n controller.property('stakeListItemHeight', (nodes['stake-list-item'].$element).offsetHeight);\r\n }\r\n\r\n if (!nodes['days-list'].rendered) {\r\n controller.property('purchaseBarDaysHeight', (nodes['days-list'].$element).offsetHeight);\r\n controller.property('dayListItemHeight', (nodes['day-list-item'].$element).offsetHeight);\r\n }\r\n });\r\n\r\n // Return:\r\n return m('div', { class: 'purchase-bar-wrapper', config: render.depend('purchase-bar') }, [\r\n m('div', { class: 'purchase-bar' }, [\r\n m('div', { class: 'purchase-bar-content' }, [\r\n m('div', { class: 'stake-per-row dropdown-wrapper', config: render.depend('stake-per-row'), onclick: toggleStake }, [\r\n m('div', { class: 'arrow-up-icon' + (getStakeStyle() !== '' ? ' hide' : '') }, [\r\n m('svg', { class: 'svg-icon-arrow-up' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoCommonIcons.svg#uparrow-small' })\r\n ])\r\n ]),\r\n d('PurchaseBar/Stake', { stake: game.stakePerRow() }),\r\n m('span', d('PurchaseBar/PerRow')),\r\n m('div', { class: 'dropdown-list-wrapper', style: getStakeStyle() }, [\r\n m('ul', { class: 'select-stake dropdown', config: render.depend('stake-list') }, [\r\n m('li', { config: render.depend('stake-list-item') }, d('PurchaseBar/StakeDropdownHeader')),\r\n game.stakeOptions().map(function (stake) {\r\n return m('li', { onclick: setStake(stake) }, [\r\n d('PurchaseBar/Stake', { stake: stake }),\r\n m('span', d('PurchaseBar/PerRow'))\r\n ]);\r\n })\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'number-of-draws dropdown-wrapper', config: render.depend('draws-per-row'), onclick: toggleDays }, [\r\n m('div', { class: 'arrow-up-icon' + (getDaysStyle() !== '' ? ' hide' : '') }, [\r\n m('svg', { class: 'svg-icon-arrow-up' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoCommonIcons.svg#uparrow-small' })\r\n ])\r\n ]),\r\n playType === 'kenomillion' && numberOfDraws === 0 ? [\r\n m('span', d('PurchaseBar/PlayRowsAsSubscription'))\r\n ] : [\r\n m('span', d('PurchaseBar/PlayRowsFor')),\r\n formatDraws(numberOfDraws)\r\n ],\r\n m('div', { class: 'dropdown-list-wrapper', style: getDaysStyle() }, [\r\n m('ul', { class: 'select-days dropdown', config: render.depend('days-list') }, [\r\n m('li', { config: render.depend('day-list-item') }, d('PurchaseBar/DrawsDropdownHeader')),\r\n playType === 'kenomillion' ? m('li', { onclick: setDraws(0) }, d('PurchaseBar/PlayRowsFor') + d('PurchaseBar/PlayRowsEveryWeek')) : null,\r\n game.numberOfDrawsOptions().map(function (draws) {\r\n return m('li', { onclick: setDraws(draws) }, [\r\n m('span', d('PurchaseBar/PlayRowsFor')),\r\n formatDraws(draws)\r\n ]);\r\n })\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'purchase-bar-cta ' + (game.totalPrice() > 0 || numberOfDraws === 0 ? 'is-active' : 'is-inactive'), onclick: controller.purchase }, [\r\n m('a', { class: 'purchase' }, [\r\n m('div', { class: 'purchase-button-loader-box' }, [\r\n m('span', { class: 'loader-text' }, d('PurchaseBar/Processing')),\r\n m('span', { class: 'loader-animation-box' }, [\r\n m('span', { class: 'loader-dot' }),\r\n m('span', { class: 'loader-dot' }),\r\n m('span', { class: 'loader-dot' })\r\n ])\r\n ]),\r\n m('div', { class: 'total-price' }, d('PurchaseBar/SubmitButton' + (numberOfDraws === 0 ? 'Plus' : ''), { totalstake: KenoUtils.formatNumber(game.totalPrice()) }))\r\n ])\r\n ])\r\n ])\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return PurchaseBar;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/ConfirmBar',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Scroll',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils'\r\n ],\r\n function (m, Render, Scroll, KenoDictionary, KenoUtils) {\r\n\r\n // Template:\r\n var ConfirmBar = function (controller) {\r\n\r\n // Variables:\r\n var $bar = null;\r\n var $container = null;\r\n var $top = null;\r\n var d = KenoDictionary.get;\r\n var game = controller.game();\r\n var render = Render();\r\n\r\n // Functions:\r\n var sticky = function () {\r\n var barHeight = $bar.offsetHeight;\r\n var topTop = $top ? $top.offsetTop : 0;\r\n var containerHeight = $container ? $container.offsetHeight : 0;\r\n var containerTop = $container ? $container.offset().top : 0;\r\n var parentWidth = $bar ? $bar.parentElement.clientWidth : 0;\r\n var scrollTop = window.pageYOffset;\r\n var windowHeight = window.innerHeight;\r\n\r\n // Viewport:\r\n var aboveViewport = scrollTop > (topTop === 0 ? containerTop : topTop) + containerHeight;\r\n var belowViewport = scrollTop + windowHeight < (topTop === 0 ? containerTop : topTop);\r\n var relativeViewport = scrollTop + windowHeight > containerTop + containerHeight;\r\n\r\n $bar.removeAttribute('style');\r\n $container.removeAttribute('style');\r\n\r\n // Sticky:\r\n if (!aboveViewport && !belowViewport && !relativeViewport) {\r\n $bar.style.bottom = '0';\r\n $bar.style.position = 'fixed';\r\n $bar.style.width = parentWidth;\r\n $container.style.paddingBottom = barHeight + 'px';\r\n }\r\n\r\n // Dropdown:\r\n var containerEnd = containerTop + containerHeight;\r\n var scrollBottom = scrollTop + windowHeight;\r\n\r\n controller.property('confirmBarMaxHeight', ((scrollBottom > containerEnd ? (windowHeight - barHeight) - (scrollBottom - containerEnd) : windowHeight - barHeight) - 20));\r\n };\r\n\r\n // Render:\r\n render.ready.then(function (nodes) {\r\n $container = document.querySelector('.confirm-bar-container');\r\n $top = document.querySelector('.confirm-bar-top');\r\n\r\n if (!nodes['confirm-bar'].rendered && $container) {\r\n\r\n $bar = nodes['confirm-bar'].$element;\r\n\r\n sticky();\r\n\r\n Scroll(function () {\r\n sticky();\r\n });\r\n }\r\n });\r\n\r\n // View:\r\n return m('div', { class: 'confirm-bar-wrapper', config: render.depend('confirm-bar') }, [\r\n m('div', { class: 'confirm-bar' }, [\r\n m('div', { class: 'confirm-bar-content' }, [\r\n m('div', { class: 'confirm-bar-back', onclick: controller.back }, [\r\n m('a', { class: 'back' }, [\r\n m('div', { class: 'total-price' }, d('ConfirmBar/BackButton'))\r\n ])\r\n ]),\r\n controller.confirm ? m('div', { class: 'confirm-bar-cta' + (game.status() === 'pending-confirmation' ? ' processing' : ''), onclick: controller.confirm }, [\r\n m('a', { class: 'confirm' }, [\r\n m('div', { class: 'purchase-button-loader-box' }, [\r\n m('span', { class: 'loader-text' }, d('ConfirmBar/Processing')),\r\n m('span', { class: 'loader-animation-box' }, [\r\n m('span', { class: 'loader-dot' }),\r\n m('span', { class: 'loader-dot' }),\r\n m('span', { class: 'loader-dot' })\r\n ])\r\n ]),\r\n m('div', { class: 'total-price' }, d('ConfirmBar/SubmitButton', { totalPrice: KenoUtils.formatNumber(game.totalPrice()) }))\r\n ])\r\n ]) : null\r\n ])\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return ConfirmBar;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/RowAutogenerate',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n // Context:\r\n var RowAutogenerate = function (controller) {\r\n\r\n // Variables:\r\n var chosenNumbers = 0;\r\n var currentRow = controller.property('currentRow');\r\n var game = controller.game();\r\n var playType = game.playType();\r\n var numbers = playType === 'KenoSystem' ? [3, 4, 5, 6, 7, 8, 9, 10] : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\r\n var row = game.getRow(currentRow);\r\n var rowNumbers = row.numbers;\r\n var rowNumbersAmount = rowNumbers.length;\r\n\r\n for (var i = 0; i < rowNumbersAmount; i++) {\r\n var rowNumber = rowNumbers[i];\r\n\r\n if (!rowNumber.autogenerated) {\r\n chosenNumbers++;\r\n }\r\n }\r\n\r\n // Functions:\r\n var autogenerate = function (number) {\r\n return function () {\r\n if (!controller.property('autogeneratingNumbers')) {\r\n controller.property('autogeneratingNumbers', true);\r\n controller.property('toggledAutogenerate', false);\r\n\r\n var currentRowNumbers = row.numbers;\r\n var chosen = [];\r\n\r\n for (var i = 0; i < currentRowNumbers.length; i++) {\r\n var single = currentRowNumbers[i];\r\n\r\n if (!single.autogenerated) {\r\n chosen.push(single);\r\n }\r\n }\r\n\r\n row.numbers = chosen;\r\n\r\n game.setRow(currentRow, row);\r\n\r\n game.autogenerate(currentRow, number).then(function () {\r\n var numbers = game.getRow(currentRow).numbers;\r\n\r\n for (var i = 0; i < numbers.length; i++) {\r\n var number = numbers[i];\r\n\r\n if (number.autogenerated) {\r\n controller.property('numberSelected' + number.number, 'autogenerated');\r\n }\r\n }\r\n\r\n controller.property('autogeneratingNumbers', false);\r\n\r\n m.redraw();\r\n });\r\n }\r\n };\r\n };\r\n\r\n // View:\r\n return numbers.map(function (number) {\r\n return m('div', { class: 'item' + (chosenNumbers >= number ? ' inactive' : '') + (playType === 'KenoSystem' && number < 3 ? ' hidden' : '') + (playType === 'KenoClassic' && number < 2 ? ' hidden' : ''), onclick: chosenNumbers < number && number > 1 ? autogenerate(number) : null }, number);\r\n });\r\n\r\n };\r\n\r\n // Public functions:\r\n return RowAutogenerate;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/RowNumbersHeader',\r\n [\r\n 'Common/Framework/EventHandling/Scripts/OutsideClick',\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/RowAutogenerate'\r\n ],\r\n function (OutsideClick, m, KenoDictionary, RowAutogenerate) {\r\n\r\n // Template:\r\n var RowNumbersHeader = function (controller, rowNumber) {\r\n\r\n // Variables:\r\n var d = KenoDictionary.get;\r\n var game = controller.game();\r\n var nextRow = game.getRow(rowNumber + 2);\r\n var numbers = game.getRow(rowNumber + 1).numbers;\r\n var numbersAmount = numbers.length;\r\n var playType = game.playType();\r\n\r\n // Functions:\r\n var resetRow = function () {\r\n for (var i = 0; i < numbersAmount; i++) {\r\n controller.property('numberSelected' + numbers[i].number, 'reset');\r\n }\r\n\r\n game.resetRow(rowNumber + 1);\r\n\r\n if (nextRow && nextRow.numbers.length === 0) {\r\n game.removeRow(rowNumber + 2);\r\n }\r\n };\r\n\r\n var toggle = function () {\r\n controller.property('toggledAutogenerate', !controller.property('toggledAutogenerate'));\r\n };\r\n\r\n var toggleAutogenerate = function (rowNumber) {\r\n return function ($element, rendered, context) {\r\n if (!rendered) {\r\n context.suppe = Math.random();\r\n\r\n OutsideClick($element, context, function () {\r\n if (rowNumber + 1 === controller.property('currentRow')) {\r\n controller.property('toggledAutogenerate', false);\r\n }\r\n });\r\n }\r\n };\r\n };\r\n\r\n // View:\r\n return m('div', { class: 'number-picker-footer clearfix' }, [\r\n\r\n // Keno Classic:\r\n function () {\r\n if (playType === 'KenoClassic') {\r\n return m('span', { class: 'counter-box' }, [\r\n d('KenoClassic/NumbersHeaderChosen') + ' ',\r\n m('span', { class: 'total' }, numbersAmount)\r\n ]);\r\n }\r\n }(),\r\n\r\n // Keno System:\r\n function () {\r\n if (playType === 'KenoSystem') {\r\n return m('div', { class: 'counter-container' }, [\r\n m('span', { class: 'counter-box' }, [\r\n m('span', { class: 'mobile-hide' }, d('KenoSystem/NumbersHeaderCombinationDesktop')),\r\n m('span', { class: 'mobile-only' }, d('KenoSystem/NumbersHeaderCombinationMobile')),\r\n ' ',\r\n m('span', { class: 'total' }, game.getSystemCombinationAmount())\r\n ]),\r\n m('span', { class: 'counter-box' }, [\r\n m('span', { class: 'mobile-hide' }, d('KenoSystem/NumbersHeaderChosenDesktop')),\r\n m('span', { class: 'mobile-only' }, d('KenoSystem/NumbersHeaderChosenMobile')),\r\n ' ',\r\n m('span', { class: 'total' }, [\r\n numbersAmount + ' ',\r\n m('span', { class: 'mobile-hide' }, d('KenoSystem/NumbersHeaderNumber'))\r\n ])\r\n ])\r\n ]);\r\n }\r\n }(),\r\n\r\n m('div', { class: 'buttons-container', key: 'row-numbers-header-' + rowNumber }, [\r\n m('div', { class: 'autogenerate-box' + (controller.property('toggledAutogenerate') && controller.property('currentRow') === rowNumber + 1 ? ' active' : '') + (numbersAmount === 10 ? ' inactive' : ''), config: toggleAutogenerate(rowNumber) }, [\r\n m('span', { class: 'autogenerate-button button', onclick: toggle }, [\r\n m('span', { class: 'mobile-only' }, d('KenoClassic/NumbersHeaderAutoMobile')),\r\n m('span', { class: 'mobile-hide' }, d('KenoClassic/NumbersHeaderAutoDesktop')),\r\n m('svg', { class: 'icon-auto icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoClassicIcons.svg#icon-auto' })\r\n ])\r\n ]),\r\n m('div', { class: 'options clearfix' + (playType === 'KenoSystem' ? ' eight-cells' : ' ten-cells') },\r\n RowAutogenerate(controller))\r\n ]),\r\n m('span', { class: 'reset-row-button button' + (numbersAmount === 0 ? ' inactive' : ''), onclick: resetRow }, [\r\n m('span', { class: 'mobile-only' }, d('KenoClassic/NumbersHeaderClearMobile')),\r\n m('span', { class: 'mobile-hide' }, d('KenoClassic/NumbersHeaderClearDesktop')),\r\n m('svg', { class: 'icon-rubbish icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoClassicIcons.svg#icon-rubbish' })\r\n ])\r\n ])\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return RowNumbersHeader;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/RowNumber',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n // Template:\r\n var RowNumber = function (number, className, config) {\r\n\r\n // Variables:\r\n className = className || '';\r\n\r\n // Return:\r\n return m('div', { class: 'cell cell-number-' + number + className, config: config }, [\r\n m('span', { class: 'box' }, [\r\n m('span', { class: 'front-face' }, [\r\n m('span', { class: 'number' }, number)\r\n ]),\r\n m('span', { class: 'back-face' }, [\r\n m('span', { class: 'number' }, number)\r\n ])\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return RowNumber;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/RowNumbers',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/RowNumber'\r\n ],\r\n function (m, RowNumber) {\r\n\r\n // Context:\r\n var RowNumbers = function (controller, rowNumber) {\r\n\r\n // Variables:\r\n var dom = [];\r\n var game = controller.game();\r\n var number = 0;\r\n var totalNumbers = game.numbersIntervalMax();\r\n var currentRow = controller.property('currentRow');\r\n\r\n // Functions:\r\n var createNumberConfig = function (number) {\r\n if (rowNumber + 1 !== currentRow) {\r\n return;\r\n }\r\n\r\n return function ($element, rendered, context) {\r\n if (rendered && context.rowNumber === rowNumber) {\r\n return false;\r\n }\r\n\r\n context.rowNumber = rowNumber;\r\n\r\n var activeClassName = 'active';\r\n var touchClick = false;\r\n var touchEnd = false;\r\n var touchMove = false;\r\n var touchTimer = null;\r\n\r\n // Event functions\r\n\r\n var onClick = function () {\r\n if (!touchClick && !controller.property('autogeneratingNumbers')) {\r\n numberCounter(number);\r\n }\r\n };\r\n\r\n var onTouchStart = function () {\r\n if (!controller.property('autogeneratingNumbers')) {\r\n clearTimeout(touchTimer);\r\n\r\n touchClick = false;\r\n touchEnd = false;\r\n touchMove = false;\r\n\r\n touchTimer = setTimeout(function () {\r\n if (!touchEnd && !touchMove) {\r\n touchClick = true;\r\n\r\n $element.classList.add(activeClassName);\r\n }\r\n }, 250);\r\n }\r\n };\r\n\r\n var onTouchEnd = function () {\r\n if (!controller.property('autogeneratingNumbers')) {\r\n touchEnd = true;\r\n\r\n if (touchClick) {\r\n $element.classList.remove(activeClassName);\r\n\r\n numberCounter(number);\r\n\r\n m.redraw();\r\n }\r\n }\r\n };\r\n\r\n var onTouchMove = function onTouchMove() {\r\n touchMove = true;\r\n };\r\n\r\n var onAnimationEnd = function onAnimationEnd() {\r\n controller.property('numberSelected' + number, false);\r\n };\r\n\r\n // Event listeners\r\n\r\n $element.addEventListener('click', onClick);\r\n\r\n $element.addEventListener('touchstart', onTouchStart);\r\n\r\n $element.addEventListener('touchend', onTouchEnd);\r\n\r\n $element.addEventListener('touchmove', onTouchMove);\r\n\r\n $element.addEventListener('animationend', onAnimationEnd);\r\n };\r\n };\r\n\r\n var numberCounter = function (number) {\r\n var hasNumber = game.hasNumber(currentRow, number);\r\n var nextRow = game.getRow(currentRow + 1);\r\n var numbers = game.getRow(currentRow).numbers.length;\r\n\r\n if (numbers < game.numbersPerRowMax() && !hasNumber) {\r\n game.addNumber(currentRow, number);\r\n\r\n if (numbers > 0 && !nextRow) {\r\n game.addRow();\r\n }\r\n\r\n controller.property('currentNumbers', 'increase');\r\n } else if (hasNumber) {\r\n game.removeNumber(currentRow, number);\r\n\r\n if (numbers < game.numbersPerRowMin() + 1 && nextRow && nextRow.numbers.length === 0) {\r\n game.removeRow(currentRow + 1);\r\n }\r\n\r\n controller.property('currentNumbers', 'decrease');\r\n } else {\r\n controller.property('animate', 'shake');\r\n\r\n return;\r\n }\r\n\r\n controller.property('numberSelected' + number, true);\r\n };\r\n\r\n // View:\r\n while (number < totalNumbers) {\r\n number++;\r\n\r\n var className = '';\r\n var hasNumber = game.hasNumber(rowNumber + 1, number);\r\n\r\n if (hasNumber) {\r\n className = className + ' selected';\r\n }\r\n\r\n if (controller.property('numberSelected' + number) && rowNumber + 1 === currentRow) {\r\n className = className + ' flip-animation-in-progress ' + (hasNumber ? '' : 'de') + 'select-number-animation';\r\n }\r\n\r\n dom.push(RowNumber(number, className, createNumberConfig(number)));\r\n }\r\n\r\n return dom;\r\n };\r\n\r\n // Public functions:\r\n return RowNumbers;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/KenoClassic/Barometer',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils'\r\n ],\r\n function (m, KenoDictionary, KenoUtils) {\r\n\r\n // View:\r\n var Barometer = function (controller, settings) {\r\n\r\n // Variables:\r\n var currentRow = controller.property('currentRow');\r\n var d = KenoDictionary.get;\r\n var game = controller.game();\r\n var numbers = game.getRow(currentRow).numbers.length;\r\n\r\n // Functions:\r\n var getClassNames = function () {\r\n var classNames = 'keno-section bg-dodgerblue keno-barometer-section bg-royalblue';\r\n var currentNumbers = controller.property('currentNumbers');\r\n\r\n if (currentNumbers && currentNumbers !== '' && numbers > 1) {\r\n classNames += ' ' + currentNumbers + '-winnings';\r\n }\r\n\r\n if (controller.property('barometerSticky')) {\r\n classNames += ' sticky';\r\n }\r\n\r\n return classNames;\r\n };\r\n\r\n var getProgress = function () {\r\n var percentage = '0';\r\n\r\n if (numbers > 1) {\r\n percentage = numbers * 10;\r\n }\r\n\r\n return 'width: ' + percentage + '%;';\r\n };\r\n\r\n var getSectionConfig = function () {\r\n return function ($element, rendered) {\r\n if (!rendered) {\r\n $element.addEventListener('animationend', function () {\r\n controller.property('currentNumbers', '');\r\n m.redraw();\r\n });\r\n }\r\n };\r\n };\r\n\r\n var totalWinnings = function () {\r\n return KenoUtils.formatCurrency(game.calculateWinnings(currentRow));\r\n };\r\n\r\n // View:\r\n return m('div', { class: getClassNames(), config: getSectionConfig() }, [\r\n settings.heading ? m('span', { class: 'game-heading' }, settings.heading) : undefined,\r\n !settings.heading && settings.svgIconName ?\r\n m('div', { class: 'game-heading' }, [\r\n m('svg', { class: settings.svgIconName }, [\r\n m('use', { class: settings.svgIconName, href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/SitecoreIcons.svg#' + settings.svgIconName })\r\n ])\r\n ]) : null,\r\n\r\n m('div', { class: 'keno-barometer' }, [\r\n m('svg', { class: 'money-coin coin-one' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoClassicIcons.svg#icon-money' })\r\n ]),\r\n m('svg', { class: 'money-coin coin-two' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoClassicIcons.svg#icon-money' })\r\n ]),\r\n m('svg', { class: 'money-coin coin-three' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoClassicIcons.svg#icon-money' })\r\n ]),\r\n m('div', { class: 'left-bags-container' }, [\r\n m('svg', { class: 'small-bag bag-one', viewBox: '0 0 200 303' }, [\r\n m('g', { class: 'shadow' }, [\r\n m('path', { d: 'M100,281c55.2,0,100,4.9,100,11c0,6.1-44.8,11-100,11S0,298.1,0,292C0,285.9,44.8,281,100,281z' })\r\n ]),\r\n m('g', { class: 'bag' }, [\r\n m('path', { d: 'M155.4,1.7c-8.7-5.1-21.3,2.1-35.9,10.4c-6.4,3.6-16.1,9.2-19.5,9.3c-3.4-0.1-13-5.7-19.5-9.3 C65.9,3.8,53.3-3.4,44.6,1.7c-2.8,1.6-6.2,5.2-6.2,12.7c0,3.3,1.1,9,10.2,20.5c4.5,5.7,9,10.2,9.2,10.4l2,2h32.7h14.8h32.7l2-2 c0.2-0.2,4.7-4.7,9.2-10.4c9.2-11.5,10.2-17.2,10.2-20.5C161.5,6.9,158.2,3.4,155.4,1.7z M93,33.7H65.6c-1.6-1.7-3.9-4.3-6.2-7.2 c-7.2-8.9-7.4-12.2-7.4-12.2c0-0.3,0-0.5,0-0.7c1.1,0.2,3.2,0.7,6.9,2.3c4.5,2,9.8,5,14.8,7.9c7.1,4,13.6,7.7,19.2,9.6 C93,33.6,93,33.6,93,33.7z M140.6,26.4c-2.3,2.9-4.7,5.5-6.3,7.2h-27.6c0,0,0-0.1,0-0.1c5.6-1.9,12.2-5.6,19.4-9.7 C131.2,21,136.5,18,141,16c3.7-1.7,5.8-2.2,6.9-2.3c0,0.2,0,0.4,0,0.7C147.9,14.4,147.7,17.6,140.6,26.4z' }),\r\n m('path', { d: 'M100.2,55h-0.5H62.6c-3.8,0-6.8,3.1-6.8,6.8c0,3.8,3,6.8,6.8,6.8h37.2h0.5h37.2c3.8,0,6.8-3.1,6.8-6.8 c0-3.8-3-6.8-6.8-6.8H100.2z' }),\r\n m('path', { d: 'M99.6,226.4c0.3,0,0.6,0,0.9,0L99.6,226.4L99.6,226.4z' }),\r\n m('path', { d: 'M190.5,149.1c-5-12.4-11.9-24.8-20.6-37c-14.7-20.7-29.3-33.5-29.9-34l-1.9-1.7H61.9L60,78.1 c-0.6,0.5-15.2,13.3-29.9,34c-8.7,12.2-15.6,24.7-20.6,37C3.2,164.8,0,180.3,0,195.3c0,9,3.5,17,10.3,23.5 c10.5,10.1,29.1,16.7,55.1,19.6c11.4,1.3,21.6,1.5,28.1,1.5c3.3,0,9.8,0,13.1,0c6.5,0,16.7-0.3,28-1.5c26-2.9,44.6-9.5,55.1-19.6 c6.8-6.5,10.3-14.5,10.3-23.5C200,180.3,196.8,164.8,190.5,149.1z M180.3,209c-14.6,14-51.5,17.2-71.9,17.4v0h-0.5 c-0.3,0-0.6,0-0.9,0v0H93l0,0c-20.1,0-58.3-3-73.3-17.4c-4.1-3.9-6.1-8.4-6.1-13.7c0-30.1,14.9-57.5,27.4-75.1 C51.8,104.9,62.8,94,67.1,90h65.9c9.6,9,53.5,53.1,53.5,105.3C186.4,200.6,184.4,205.1,180.3,209z' }),\r\n m('path', { d: 'M94.4,178.3c0.3,0.5,0.2,1-0.2,1.5c-0.4,0.5-0.9,0.8-1.4,0.8h-9.2c-0.6,0-1.1-0.1-1.4-0.4 c-0.3-0.3-0.7-0.6-1-1.1l-9-15.6L69,178.8c-0.1,0.5-0.3,0.9-0.7,1.2c-0.4,0.3-0.8,0.5-1.3,0.5h-8.4c-0.5,0-0.8-0.2-1.1-0.5 c-0.3-0.3-0.4-0.7-0.3-1.2l8.8-41.3c0.1-0.5,0.3-0.9,0.7-1.2c0.4-0.3,0.8-0.5,1.3-0.5h8.4c0.5,0,0.8,0.2,1.1,0.5 c0.3,0.3,0.4,0.7,0.3,1.2L75,150.7l13.1-13.5c0.2-0.3,0.5-0.6,1-0.9c0.4-0.3,1-0.5,1.8-0.5h10.6c0.6,0,0.9,0.2,1.1,0.7 c0.2,0.5,0.1,0.9-0.3,1.3l-19.9,20.3L94.4,178.3z' }),\r\n m('path', { d: 'M127,135.8c2.5,0,4.8,0.3,6.9,1c2.1,0.7,3.9,1.6,5.4,2.9c1.4,1.3,2.5,2.9,3.1,4.8c0.6,1.9,0.7,4.1,0.2,6.6 c-0.7,3.2-1.9,5.7-3.6,7.6c-1.7,1.9-4,3.4-6.6,4.5l4.7,15.2c0,0.2,0,0.4,0,0.7c-0.1,0.4-0.3,0.7-0.6,1c-0.3,0.3-0.7,0.4-1.1,0.4h-8 c-0.9,0-1.4-0.2-1.7-0.6c-0.3-0.4-0.5-0.8-0.6-1.2l-4.1-13.7h-6.5l-2.9,13.7c-0.1,0.5-0.3,0.9-0.7,1.2c-0.4,0.3-0.8,0.5-1.3,0.5 h-8.4c-0.5,0-0.8-0.2-1.1-0.5c-0.3-0.3-0.4-0.7-0.3-1.2l8.8-41.3c0.1-0.5,0.3-0.9,0.7-1.2c0.4-0.3,0.8-0.5,1.3-0.5H127z M116.3,155.1h7.2c1.8,0,3.3-0.3,4.7-1c1.3-0.7,2.2-1.9,2.6-3.7c0.3-1.8,0-3-1-3.7c-1-0.7-2.4-1-4.2-1h-7.2L116.3,155.1z' })\r\n ])\r\n ]),\r\n m('svg', { class: 'small-bag bag-two', viewBox: '0 0 200 303' }, [\r\n m('g', { class: 'shadow' }, [\r\n m('path', { d: 'M100,281c55.2,0,100,4.9,100,11c0,6.1-44.8,11-100,11S0,298.1,0,292C0,285.9,44.8,281,100,281z' })\r\n ]),\r\n m('g', { class: 'bag' }, [\r\n m('path', { d: 'M155.4,1.7c-8.7-5.1-21.3,2.1-35.9,10.4c-6.4,3.6-16.1,9.2-19.5,9.3c-3.4-0.1-13-5.7-19.5-9.3 C65.9,3.8,53.3-3.4,44.6,1.7c-2.8,1.6-6.2,5.2-6.2,12.7c0,3.3,1.1,9,10.2,20.5c4.5,5.7,9,10.2,9.2,10.4l2,2h32.7h14.8h32.7l2-2 c0.2-0.2,4.7-4.7,9.2-10.4c9.2-11.5,10.2-17.2,10.2-20.5C161.5,6.9,158.2,3.4,155.4,1.7z M93,33.7H65.6c-1.6-1.7-3.9-4.3-6.2-7.2 c-7.2-8.9-7.4-12.2-7.4-12.2c0-0.3,0-0.5,0-0.7c1.1,0.2,3.2,0.7,6.9,2.3c4.5,2,9.8,5,14.8,7.9c7.1,4,13.6,7.7,19.2,9.6 C93,33.6,93,33.6,93,33.7z M140.6,26.4c-2.3,2.9-4.7,5.5-6.3,7.2h-27.6c0,0,0-0.1,0-0.1c5.6-1.9,12.2-5.6,19.4-9.7 C131.2,21,136.5,18,141,16c3.7-1.7,5.8-2.2,6.9-2.3c0,0.2,0,0.4,0,0.7C147.9,14.4,147.7,17.6,140.6,26.4z' }),\r\n m('path', { d: 'M100.2,55h-0.5H62.6c-3.8,0-6.8,3.1-6.8,6.8c0,3.8,3,6.8,6.8,6.8h37.2h0.5h37.2c3.8,0,6.8-3.1,6.8-6.8 c0-3.8-3-6.8-6.8-6.8H100.2z' }),\r\n m('path', { d: 'M99.6,226.4c0.3,0,0.6,0,0.9,0L99.6,226.4L99.6,226.4z' }),\r\n m('path', { d: 'M190.5,149.1c-5-12.4-11.9-24.8-20.6-37c-14.7-20.7-29.3-33.5-29.9-34l-1.9-1.7H61.9L60,78.1 c-0.6,0.5-15.2,13.3-29.9,34c-8.7,12.2-15.6,24.7-20.6,37C3.2,164.8,0,180.3,0,195.3c0,9,3.5,17,10.3,23.5 c10.5,10.1,29.1,16.7,55.1,19.6c11.4,1.3,21.6,1.5,28.1,1.5c3.3,0,9.8,0,13.1,0c6.5,0,16.7-0.3,28-1.5c26-2.9,44.6-9.5,55.1-19.6 c6.8-6.5,10.3-14.5,10.3-23.5C200,180.3,196.8,164.8,190.5,149.1z M180.3,209c-14.6,14-51.5,17.2-71.9,17.4v0h-0.5 c-0.3,0-0.6,0-0.9,0v0H93l0,0c-20.1,0-58.3-3-73.3-17.4c-4.1-3.9-6.1-8.4-6.1-13.7c0-30.1,14.9-57.5,27.4-75.1 C51.8,104.9,62.8,94,67.1,90h65.9c9.6,9,53.5,53.1,53.5,105.3C186.4,200.6,184.4,205.1,180.3,209z' }),\r\n m('path', { d: 'M94.4,178.3c0.3,0.5,0.2,1-0.2,1.5c-0.4,0.5-0.9,0.8-1.4,0.8h-9.2c-0.6,0-1.1-0.1-1.4-0.4 c-0.3-0.3-0.7-0.6-1-1.1l-9-15.6L69,178.8c-0.1,0.5-0.3,0.9-0.7,1.2c-0.4,0.3-0.8,0.5-1.3,0.5h-8.4c-0.5,0-0.8-0.2-1.1-0.5 c-0.3-0.3-0.4-0.7-0.3-1.2l8.8-41.3c0.1-0.5,0.3-0.9,0.7-1.2c0.4-0.3,0.8-0.5,1.3-0.5h8.4c0.5,0,0.8,0.2,1.1,0.5 c0.3,0.3,0.4,0.7,0.3,1.2L75,150.7l13.1-13.5c0.2-0.3,0.5-0.6,1-0.9c0.4-0.3,1-0.5,1.8-0.5h10.6c0.6,0,0.9,0.2,1.1,0.7 c0.2,0.5,0.1,0.9-0.3,1.3l-19.9,20.3L94.4,178.3z' }),\r\n m('path', { d: 'M127,135.8c2.5,0,4.8,0.3,6.9,1c2.1,0.7,3.9,1.6,5.4,2.9c1.4,1.3,2.5,2.9,3.1,4.8c0.6,1.9,0.7,4.1,0.2,6.6 c-0.7,3.2-1.9,5.7-3.6,7.6c-1.7,1.9-4,3.4-6.6,4.5l4.7,15.2c0,0.2,0,0.4,0,0.7c-0.1,0.4-0.3,0.7-0.6,1c-0.3,0.3-0.7,0.4-1.1,0.4h-8 c-0.9,0-1.4-0.2-1.7-0.6c-0.3-0.4-0.5-0.8-0.6-1.2l-4.1-13.7h-6.5l-2.9,13.7c-0.1,0.5-0.3,0.9-0.7,1.2c-0.4,0.3-0.8,0.5-1.3,0.5 h-8.4c-0.5,0-0.8-0.2-1.1-0.5c-0.3-0.3-0.4-0.7-0.3-1.2l8.8-41.3c0.1-0.5,0.3-0.9,0.7-1.2c0.4-0.3,0.8-0.5,1.3-0.5H127z M116.3,155.1h7.2c1.8,0,3.3-0.3,4.7-1c1.3-0.7,2.2-1.9,2.6-3.7c0.3-1.8,0-3-1-3.7c-1-0.7-2.4-1-4.2-1h-7.2L116.3,155.1z' })\r\n ])\r\n ]),\r\n m('svg', { class: 'small-bag bag-three', viewBox: '0 0 200 303' }, [\r\n m('g', { class: 'shadow' }, [\r\n m('path', { d: 'M100,281c55.2,0,100,4.9,100,11c0,6.1-44.8,11-100,11S0,298.1,0,292C0,285.9,44.8,281,100,281z' })\r\n ]),\r\n m('g', { class: 'bag' }, [\r\n m('path', { d: 'M155.4,1.7c-8.7-5.1-21.3,2.1-35.9,10.4c-6.4,3.6-16.1,9.2-19.5,9.3c-3.4-0.1-13-5.7-19.5-9.3 C65.9,3.8,53.3-3.4,44.6,1.7c-2.8,1.6-6.2,5.2-6.2,12.7c0,3.3,1.1,9,10.2,20.5c4.5,5.7,9,10.2,9.2,10.4l2,2h32.7h14.8h32.7l2-2 c0.2-0.2,4.7-4.7,9.2-10.4c9.2-11.5,10.2-17.2,10.2-20.5C161.5,6.9,158.2,3.4,155.4,1.7z M93,33.7H65.6c-1.6-1.7-3.9-4.3-6.2-7.2 c-7.2-8.9-7.4-12.2-7.4-12.2c0-0.3,0-0.5,0-0.7c1.1,0.2,3.2,0.7,6.9,2.3c4.5,2,9.8,5,14.8,7.9c7.1,4,13.6,7.7,19.2,9.6 C93,33.6,93,33.6,93,33.7z M140.6,26.4c-2.3,2.9-4.7,5.5-6.3,7.2h-27.6c0,0,0-0.1,0-0.1c5.6-1.9,12.2-5.6,19.4-9.7 C131.2,21,136.5,18,141,16c3.7-1.7,5.8-2.2,6.9-2.3c0,0.2,0,0.4,0,0.7C147.9,14.4,147.7,17.6,140.6,26.4z' }),\r\n m('path', { d: 'M100.2,55h-0.5H62.6c-3.8,0-6.8,3.1-6.8,6.8c0,3.8,3,6.8,6.8,6.8h37.2h0.5h37.2c3.8,0,6.8-3.1,6.8-6.8 c0-3.8-3-6.8-6.8-6.8H100.2z' }),\r\n m('path', { d: 'M99.6,226.4c0.3,0,0.6,0,0.9,0L99.6,226.4L99.6,226.4z' }),\r\n m('path', { d: 'M190.5,149.1c-5-12.4-11.9-24.8-20.6-37c-14.7-20.7-29.3-33.5-29.9-34l-1.9-1.7H61.9L60,78.1 c-0.6,0.5-15.2,13.3-29.9,34c-8.7,12.2-15.6,24.7-20.6,37C3.2,164.8,0,180.3,0,195.3c0,9,3.5,17,10.3,23.5 c10.5,10.1,29.1,16.7,55.1,19.6c11.4,1.3,21.6,1.5,28.1,1.5c3.3,0,9.8,0,13.1,0c6.5,0,16.7-0.3,28-1.5c26-2.9,44.6-9.5,55.1-19.6 c6.8-6.5,10.3-14.5,10.3-23.5C200,180.3,196.8,164.8,190.5,149.1z M180.3,209c-14.6,14-51.5,17.2-71.9,17.4v0h-0.5 c-0.3,0-0.6,0-0.9,0v0H93l0,0c-20.1,0-58.3-3-73.3-17.4c-4.1-3.9-6.1-8.4-6.1-13.7c0-30.1,14.9-57.5,27.4-75.1 C51.8,104.9,62.8,94,67.1,90h65.9c9.6,9,53.5,53.1,53.5,105.3C186.4,200.6,184.4,205.1,180.3,209z' }),\r\n m('path', { d: 'M94.4,178.3c0.3,0.5,0.2,1-0.2,1.5c-0.4,0.5-0.9,0.8-1.4,0.8h-9.2c-0.6,0-1.1-0.1-1.4-0.4 c-0.3-0.3-0.7-0.6-1-1.1l-9-15.6L69,178.8c-0.1,0.5-0.3,0.9-0.7,1.2c-0.4,0.3-0.8,0.5-1.3,0.5h-8.4c-0.5,0-0.8-0.2-1.1-0.5 c-0.3-0.3-0.4-0.7-0.3-1.2l8.8-41.3c0.1-0.5,0.3-0.9,0.7-1.2c0.4-0.3,0.8-0.5,1.3-0.5h8.4c0.5,0,0.8,0.2,1.1,0.5 c0.3,0.3,0.4,0.7,0.3,1.2L75,150.7l13.1-13.5c0.2-0.3,0.5-0.6,1-0.9c0.4-0.3,1-0.5,1.8-0.5h10.6c0.6,0,0.9,0.2,1.1,0.7 c0.2,0.5,0.1,0.9-0.3,1.3l-19.9,20.3L94.4,178.3z' }),\r\n m('path', { d: 'M127,135.8c2.5,0,4.8,0.3,6.9,1c2.1,0.7,3.9,1.6,5.4,2.9c1.4,1.3,2.5,2.9,3.1,4.8c0.6,1.9,0.7,4.1,0.2,6.6 c-0.7,3.2-1.9,5.7-3.6,7.6c-1.7,1.9-4,3.4-6.6,4.5l4.7,15.2c0,0.2,0,0.4,0,0.7c-0.1,0.4-0.3,0.7-0.6,1c-0.3,0.3-0.7,0.4-1.1,0.4h-8 c-0.9,0-1.4-0.2-1.7-0.6c-0.3-0.4-0.5-0.8-0.6-1.2l-4.1-13.7h-6.5l-2.9,13.7c-0.1,0.5-0.3,0.9-0.7,1.2c-0.4,0.3-0.8,0.5-1.3,0.5 h-8.4c-0.5,0-0.8-0.2-1.1-0.5c-0.3-0.3-0.4-0.7-0.3-1.2l8.8-41.3c0.1-0.5,0.3-0.9,0.7-1.2c0.4-0.3,0.8-0.5,1.3-0.5H127z M116.3,155.1h7.2c1.8,0,3.3-0.3,4.7-1c1.3-0.7,2.2-1.9,2.6-3.7c0.3-1.8,0-3-1-3.7c-1-0.7-2.4-1-4.2-1h-7.2L116.3,155.1z' })\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'inner' }, [\r\n m('div', { class: 'bar-container' }, [\r\n m('div', { class: 'bar-container white' }),\r\n m('div', { class: 'bar-container yellow', style: getProgress() })\r\n ]),\r\n m('div', { class: 'left-text' }, d('KenoClassic/BarometerBiggestChance')),\r\n m('div', { class: 'center-text' }, [\r\n d('KenoClassic/BarometerPotentialWinnings'),\r\n // m('span', d('KenoClassic/BarometerPotentialWinningsNotice')),\r\n m('span', { class: 'notice' }, ' *'),\r\n m('div', { class: 'total' }, totalWinnings())\r\n ]),\r\n m('div', { class: 'right-text' }, d('KenoClassic/BarometerBiggestWinnings'))\r\n ]),\r\n m('div', { class: 'right-bags-container' }, [\r\n m('svg', { class: 'big-bag', viewBox: '0 0 200 303' }, [\r\n m('g', { class: 'shadow' }, [\r\n m('path', { d: 'M100,281c55.2,0,100,4.9,100,11c0,6.1-44.8,11-100,11S0,298.1,0,292C0,285.9,44.8,281,100,281z' })\r\n ]),\r\n m('g', { class: 'bag' }, [\r\n m('path', { d: 'M155.4,1.7c-8.7-5.1-21.3,2.1-35.9,10.4c-6.4,3.6-16.1,9.2-19.5,9.3c-3.4-0.1-13-5.7-19.5-9.3 C65.9,3.8,53.3-3.4,44.6,1.7c-2.8,1.6-6.2,5.2-6.2,12.7c0,3.3,1.1,9,10.2,20.5c4.5,5.7,9,10.2,9.2,10.4l2,2h32.7h14.8h32.7l2-2 c0.2-0.2,4.7-4.7,9.2-10.4c9.2-11.5,10.2-17.2,10.2-20.5C161.5,6.9,158.2,3.4,155.4,1.7z M93,33.7H65.6c-1.6-1.7-3.9-4.3-6.2-7.2 c-7.2-8.9-7.4-12.2-7.4-12.2c0-0.3,0-0.5,0-0.7c1.1,0.2,3.2,0.7,6.9,2.3c4.5,2,9.8,5,14.8,7.9c7.1,4,13.6,7.7,19.2,9.6 C93,33.6,93,33.6,93,33.7z M140.6,26.4c-2.3,2.9-4.7,5.5-6.3,7.2h-27.6c0,0,0-0.1,0-0.1c5.6-1.9,12.2-5.6,19.4-9.7 C131.2,21,136.5,18,141,16c3.7-1.7,5.8-2.2,6.9-2.3c0,0.2,0,0.4,0,0.7C147.9,14.4,147.7,17.6,140.6,26.4z' }),\r\n m('path', { d: 'M100.2,55h-0.5H62.6c-3.8,0-6.8,3.1-6.8,6.8c0,3.8,3,6.8,6.8,6.8h37.2h0.5h37.2c3.8,0,6.8-3.1,6.8-6.8 c0-3.8-3-6.8-6.8-6.8H100.2z' }),\r\n m('path', { d: 'M99.6,226.4c0.3,0,0.6,0,0.9,0L99.6,226.4L99.6,226.4z' }),\r\n m('path', { d: 'M190.5,149.1c-5-12.4-11.9-24.8-20.6-37c-14.7-20.7-29.3-33.5-29.9-34l-1.9-1.7H61.9L60,78.1 c-0.6,0.5-15.2,13.3-29.9,34c-8.7,12.2-15.6,24.7-20.6,37C3.2,164.8,0,180.3,0,195.3c0,9,3.5,17,10.3,23.5 c10.5,10.1,29.1,16.7,55.1,19.6c11.4,1.3,21.6,1.5,28.1,1.5c3.3,0,9.8,0,13.1,0c6.5,0,16.7-0.3,28-1.5c26-2.9,44.6-9.5,55.1-19.6 c6.8-6.5,10.3-14.5,10.3-23.5C200,180.3,196.8,164.8,190.5,149.1z M180.3,209c-14.6,14-51.5,17.2-71.9,17.4v0h-0.5 c-0.3,0-0.6,0-0.9,0v0H93l0,0c-20.1,0-58.3-3-73.3-17.4c-4.1-3.9-6.1-8.4-6.1-13.7c0-30.1,14.9-57.5,27.4-75.1 C51.8,104.9,62.8,94,67.1,90h65.9c9.6,9,53.5,53.1,53.5,105.3C186.4,200.6,184.4,205.1,180.3,209z' }),\r\n m('path', { d: 'M94.4,178.3c0.3,0.5,0.2,1-0.2,1.5c-0.4,0.5-0.9,0.8-1.4,0.8h-9.2c-0.6,0-1.1-0.1-1.4-0.4 c-0.3-0.3-0.7-0.6-1-1.1l-9-15.6L69,178.8c-0.1,0.5-0.3,0.9-0.7,1.2c-0.4,0.3-0.8,0.5-1.3,0.5h-8.4c-0.5,0-0.8-0.2-1.1-0.5 c-0.3-0.3-0.4-0.7-0.3-1.2l8.8-41.3c0.1-0.5,0.3-0.9,0.7-1.2c0.4-0.3,0.8-0.5,1.3-0.5h8.4c0.5,0,0.8,0.2,1.1,0.5 c0.3,0.3,0.4,0.7,0.3,1.2L75,150.7l13.1-13.5c0.2-0.3,0.5-0.6,1-0.9c0.4-0.3,1-0.5,1.8-0.5h10.6c0.6,0,0.9,0.2,1.1,0.7 c0.2,0.5,0.1,0.9-0.3,1.3l-19.9,20.3L94.4,178.3z' }),\r\n m('path', { d: 'M127,135.8c2.5,0,4.8,0.3,6.9,1c2.1,0.7,3.9,1.6,5.4,2.9c1.4,1.3,2.5,2.9,3.1,4.8c0.6,1.9,0.7,4.1,0.2,6.6 c-0.7,3.2-1.9,5.7-3.6,7.6c-1.7,1.9-4,3.4-6.6,4.5l4.7,15.2c0,0.2,0,0.4,0,0.7c-0.1,0.4-0.3,0.7-0.6,1c-0.3,0.3-0.7,0.4-1.1,0.4h-8 c-0.9,0-1.4-0.2-1.7-0.6c-0.3-0.4-0.5-0.8-0.6-1.2l-4.1-13.7h-6.5l-2.9,13.7c-0.1,0.5-0.3,0.9-0.7,1.2c-0.4,0.3-0.8,0.5-1.3,0.5 h-8.4c-0.5,0-0.8-0.2-1.1-0.5c-0.3-0.3-0.4-0.7-0.3-1.2l8.8-41.3c0.1-0.5,0.3-0.9,0.7-1.2c0.4-0.3,0.8-0.5,1.3-0.5H127z M116.3,155.1h7.2c1.8,0,3.3-0.3,4.7-1c1.3-0.7,2.2-1.9,2.6-3.7c0.3-1.8,0-3-1-3.7c-1-0.7-2.4-1-4.2-1h-7.2L116.3,155.1z' })\r\n ])\r\n ])\r\n ])\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return Barometer;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/KenoClassic/DeleteOverlay',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n // Template:\r\n var DeleteOverlay = function (d) {\r\n\r\n // Return:\r\n return {\r\n class: m.prop('keno-classic-game-overlay'),\r\n\r\n render: function (confirm, dismiss) {\r\n return m('div', { class: this.class() }, [\r\n m('div', { class: 'pannel' }, [\r\n m('div', { class: 'icon-wrapper' }, [\r\n m('svg', { class: 'icon icon-rubbish' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoClassicIcons.svg#icon-rubbish' })\r\n ])\r\n ]),\r\n m('h2', { class: 'headline' }, d('KenoClassic/OverlayDeleteHeader')),\r\n m('p', { class: 'text' }, d('KenoClassic/OverlayDeleteBody')),\r\n m('div', { class: 'buttons' }, [\r\n m('button', { class: 'btn grey button-cancel', onclick: dismiss }, d('KenoClassic/OverlayDeleteCancel')),\r\n m('button', { class: 'btn dogderblue button-confirm', onclick: confirm }, d('KenoClassic/OverlayDeleteConfirm'))\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n };\r\n\r\n // Public functions:\r\n return DeleteOverlay;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/KenoClassic/Navigation',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n // Template:\r\n var Navigation = function (controller) {\r\n\r\n // Variables:\r\n var currentRow = controller.property('currentRow');\r\n var game = controller.game();\r\n var rows = game.rows();\r\n var hasLastRow = currentRow + 2 <= rows.length;\r\n var maxRows = game.classicMaxRows();\r\n var minimum = game.numbersPerRowMin();\r\n var nextRow = rows.length > currentRow ? game.getRow(currentRow + 1).numbers.length : 0;\r\n var numbers = game.getRow(currentRow).numbers.length;\r\n var hasMoreRows = currentRow < rows.length;\r\n var showCreate = numbers >= minimum && hasMoreRows && nextRow === 0 && rows.length < maxRows + 1;\r\n var showNext = (numbers >= minimum && hasMoreRows && nextRow > 0) || (hasLastRow);\r\n\r\n // Functions:\r\n var slide = function (direction) {\r\n return function () {\r\n if (direction === 'right' && hasMoreRows && currentRow < maxRows) {\r\n controller.property('currentRow', currentRow + 1);\r\n controller.property('animate', direction);\r\n } else if (direction === 'left' && currentRow > 1) {\r\n controller.property('currentRow', currentRow - 1);\r\n controller.property('animate', direction);\r\n }\r\n };\r\n };\r\n\r\n // View:\r\n return [\r\n m('div', { class: 'left-gradient', onclick: slide('left') }),\r\n m('div', { class: 'prev-row-button' + (currentRow > 1 ? ' active' : ''), onclick: slide('left') }, [\r\n m('svg', { class: 'icon icon-left-arrow' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoClassicIcons.svg#icon-left-arrow' })\r\n ])\r\n ]),\r\n m('div', { class: 'right-gradient' + (rows.length < maxRows ? ' active' : ''), onclick: slide('right') }),\r\n m('div', { class: 'create-new-row-button' + (showCreate ? ' active' : ''), onclick: slide('right') }, [\r\n m('svg', { class: 'icon icon-plus' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoClassicIcons.svg#icon-plus' })\r\n ])\r\n ]),\r\n m('div', { class: 'next-row-button' + (showNext ? ' active' : ''), onclick: slide('right') }, [\r\n m('svg', { class: 'icon icon-right-arrow' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoClassicIcons.svg#icon-right-arrow' })\r\n ])\r\n ])\r\n ];\r\n };\r\n\r\n // Public functions:\r\n return Navigation;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/KenoClassic/RowHeader',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary'\r\n ],\r\n function (m, KenoDictionary) {\r\n\r\n // Template:\r\n var RowHeader = function (controller, rowNumber) {\r\n\r\n // Variables:\r\n var currentRow = controller.property('currentRow');\r\n var d = KenoDictionary.get;\r\n var game = controller.game();\r\n var numbers = game.getRow(currentRow).numbers.length;\r\n var rows = game.rows();\r\n var rowsCount = rows.length;\r\n var notDeletable = rowsCount === 1 || (rowsCount === currentRow && numbers === 0);\r\n\r\n // Functions:\r\n var remove = function () {\r\n if (typeof controller.deleteOverlay !== 'undefined') {\r\n controller.deleteOverlay().show(function () {\r\n var currentRow = controller.property('currentRow');\r\n var deleteRow = controller.property('deleteRow');\r\n var game = controller.game();\r\n\r\n if (deleteRow && currentRow !== deleteRow) {\r\n game.removeRow(deleteRow);\r\n\r\n if (currentRow > deleteRow) {\r\n controller.property('currentRow', currentRow - 1);\r\n }\r\n } else {\r\n controller.property('animate', 'remove');\r\n\r\n game.getRow(currentRow).state = 'remove';\r\n }\r\n });\r\n }\r\n };\r\n\r\n var thisRow = function () {\r\n return rowNumber === rowsCount ? rowNumber + 2 : rowNumber + 1;\r\n };\r\n\r\n var totalRows = function () {\r\n return rowNumber + 1 === rowsCount ? rowsCount : rowsCount - 1;\r\n };\r\n\r\n // View:\r\n return m('div', { class: 'row-header' }, [\r\n m('span', { class: 'counter' }, [\r\n d('KenoClassic/RowHeaderRow') + ' ',\r\n m('span', { class: 'counter-current' }, thisRow()),\r\n ' ' + d('KenoClassic/RowHeaderOf') + ' ',\r\n m('span', { class: 'counter-total' }, totalRows())\r\n ]),\r\n m('div', { class: 'right-side' }, [\r\n m('span', { class: 'header-rules-text' }, d('KenoClassic/RowHeaderDescription')),\r\n m('span', { class: 'row-delete-button' + (notDeletable ? ' inactive' : ''), onclick: (notDeletable ? null : remove) }, [\r\n m('svg', { class: 'icon icon-x-big' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoClassicIcons.svg#icon-x-big' })\r\n ])\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n // Public functions:\r\n return RowHeader;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/KenoSystem/LevelWinnings',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary'\r\n ],\r\n function (m, KenoDictionary) {\r\n\r\n // Template:\r\n var LevelWinnings = function (controller) {\r\n\r\n // Variables:\r\n var d = KenoDictionary.get;\r\n var game = controller.game();\r\n var numbersMinimum = game.systemLevel();\r\n var numberCount = game.getRow(1).numbers.length;\r\n\r\n if (numberCount > 10) {\r\n numberCount = 10;\r\n }\r\n\r\n // Function\r\n var classNames = function () {\r\n var classNames = '';\r\n\r\n if (numbersMinimum === 10) {\r\n classNames = ' full-out-of-range';\r\n }\r\n\r\n return classNames;\r\n };\r\n\r\n // View:\r\n return m('div', { class: 'winnings-level-overview' }, [\r\n m('div', { class: 'out-of-range-numbers' + classNames() }, [\r\n function () {\r\n var out = [];\r\n\r\n for (var i = 1; i < numbersMinimum + 1; i++) {\r\n out.push(m('span', { class: 'number' + (numberCount == i ? ' selected' : '') }, i));\r\n }\r\n\r\n return out;\r\n }()\r\n ]),\r\n\r\n m('div', { class: 'in-range-numbers' }, [\r\n function () {\r\n var out = [];\r\n\r\n for (var i = numbersMinimum + 1; i <= 10; i++) {\r\n var inner = [];\r\n\r\n if (i === numbersMinimum + 1) {\r\n inner.push(m('span', { class: 'info-text' }, d('WinningsOverview/NotWinningNumbers')));\r\n }\r\n\r\n inner.push(i);\r\n\r\n out.push(m('span', { class: 'number' + (numberCount == i ? ' selected' : '') }, inner));\r\n }\r\n\r\n return out;\r\n }()\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return LevelWinnings;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/RowWinnings',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Hammer',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Framework/HammerTime',\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/KenoSystem/LevelWinnings'\r\n ],\r\n function (Hammer, ignoredHammerTime, m, Render, KenoDictionary, KenoInfo, KenoUtils, LevelWinnings) {\r\n\r\n // View:\r\n var RowWinnings = function (controller) {\r\n\r\n // Variables:\r\n var currentRow = controller.property('currentRow');\r\n var d = KenoDictionary.get;\r\n var game = controller.game();\r\n var numbers = game.getRow(currentRow).numbers.length;\r\n var numbersPerRowMin = game.numbersPerRowMin();\r\n var render = Render();\r\n var totalPrice = game.totalPrice();\r\n var validRows = game.getRowsSummary(true).length;\r\n var winnings = numbers < 2 ? {} : KenoInfo.getPrizeGroups(numbers);\r\n var winningNumbers = winnings ? Object.keys(winnings).reverse() : [];\r\n\r\n // remove 0 from the winningnumber array on system keno\r\n if (game.playType() === 'KenoSystem' && winningNumbers.indexOf('0') > -1) winningNumbers.splice(winningNumbers.indexOf('0'), 1);\r\n var winningNumbersAmount = winningNumbers.length;\r\n var winningFactors = [];\r\n\r\n if (game.playType() === 'KenoSystem' && controller.systemTables() && numbers > game.systemLevel()) {\r\n var systemTable = controller.systemTables()[game.systemLevel()];\r\n var rightMarks = systemTable.combinations[numbers].rightMarks;\r\n var keys = Object.keys(rightMarks);\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = rightMarks[keys[i]].key;\r\n\r\n if (key) {\r\n winningFactors.push(key);\r\n }\r\n }\r\n\r\n winningFactors.reverse();\r\n }\r\n\r\n if (!controller.property('rowWinningsNumbers')) {\r\n controller.property('rowWinningsNumbers', numbers);\r\n }\r\n\r\n if (controller.property('rowWinningsNumbers') !== numbers) {\r\n controller.property('rowWinningsNumbers', numbers);\r\n }\r\n\r\n if (typeof controller.property('rowWinningsSelected') === 'undefined' || winningNumbersAmount !== controller.property('rowWinningsNumbersAmount')) {\r\n controller.property('rowWinningsSelected', 0);\r\n }\r\n\r\n controller.property('rowWinningsNumbersAmount', winningNumbersAmount);\r\n\r\n var selectedIndex = parseInt(controller.property('rowWinningsSelected') || 0, 10);\r\n\r\n // Functions:\r\n var changeNumber = function (direction) {\r\n return function () {\r\n if (!controller.property('rowWinningsIsPanning')) {\r\n selectedIndex = controller.property('rowWinningsSelected');\r\n winningNumbersAmount = controller.property('rowWinningsNumbersAmount');\r\n\r\n if (direction === 'previous') {\r\n selectedIndex++;\r\n\r\n if (selectedIndex > winningNumbersAmount - 1) {\r\n selectedIndex = winningNumbersAmount - 1;\r\n }\r\n } else if (direction === 'next') {\r\n selectedIndex--;\r\n\r\n if (selectedIndex < 0) {\r\n selectedIndex = 0;\r\n }\r\n } else {\r\n selectedIndex = winningNumbers.indexOf(winningNumbers[direction]);\r\n }\r\n\r\n controller.property('rowWinningsSelected', selectedIndex);\r\n\r\n m.redraw();\r\n }\r\n };\r\n };\r\n\r\n var nextButtonClass = function () {\r\n var className = 'next-number-button';\r\n\r\n if (controller.property('rowWinningsSelected') > 0) {\r\n className = className + ' active';\r\n }\r\n\r\n return className;\r\n };\r\n\r\n var numbersStyle = function () {\r\n var style = 'transform: translateX(0) translateZ(0);';\r\n var width = controller.property('rowWinningsNumberWidth');\r\n\r\n if (width && width !== 0 && controller.property('rowWinningsNumbersAmount') >= numbersPerRowMin) {\r\n var translateX = width * controller.property('rowWinningsSelected');\r\n\r\n controller.property('rowWinningsTranslateX', translateX);\r\n\r\n style = 'transform: translateX(' + translateX + 'px) translateZ(0);';\r\n }\r\n\r\n return style;\r\n };\r\n\r\n var previousButtonClass = function () {\r\n var className = 'prev-number-button';\r\n\r\n if (controller.property('rowWinningsSelected') < controller.property('rowWinningsNumbersAmount') - 1) {\r\n className = className + ' active';\r\n }\r\n\r\n return className;\r\n };\r\n\r\n var winningsStyle = function (index) {\r\n return 'transform: scale(1' + (index === controller.property('rowWinningsSelected') ? '.25' : '') + ') translateZ(0);';\r\n };\r\n\r\n // Render:\r\n render.ready.then(function (nodes) {\r\n var $winningsInnerWrapper = nodes['winnings-inner-wrapper'].$element;\r\n var rowsNumbersBlue = nodes['rows-numbers-blue'];\r\n var selectedIndex = controller.property('rowWinningsSelected');\r\n var winningNumbersAmount = controller.property('rowWinningsNumbersAmount');\r\n var wrapper = nodes['rows-numbers-wrapper'];\r\n\r\n if (!rowsNumbersBlue.rendered) {\r\n controller.property('rowWinningsNumberWidth', parseInt(window.getComputedStyle(rowsNumbersBlue.$element).getPropertyValue('width'), 10));\r\n }\r\n\r\n $winningsInnerWrapper.style.transform = 'translateY(' + (winningNumbersAmount === 0 ? '0' : (winningNumbersAmount - selectedIndex - 1) * ($winningsInnerWrapper.clientHeight / winningNumbersAmount)) + 'px) translateZ(0)';\r\n\r\n if (!wrapper.rendered) {\r\n var $blueNumbers = nodes['blue-numbers'].$element;\r\n var $whiteNumbers = nodes['white-numbers'].$element;\r\n var hammer = new Hammer(wrapper.$element);\r\n var width = controller.property('rowWinningsNumberWidth');\r\n\r\n hammer.on('panleft panright', function (event) {\r\n controller.property('rowWinningsIsPanning', true);\r\n\r\n var selectedIndex = controller.property('rowWinningsSelected');\r\n var delta = event.deltaX + (selectedIndex * width);\r\n var winningNumbersAmount = controller.property('rowWinningsNumbersAmount');\r\n\r\n if (delta < 0) {\r\n delta = 0;\r\n } else if (delta > (winningNumbersAmount - 1) * width) {\r\n delta = (winningNumbersAmount - 1) * width;\r\n }\r\n\r\n $blueNumbers.style.transition = 'none';\r\n $blueNumbers.style.transform = 'translateX(' + delta + 'px) translateZ(0)';\r\n $whiteNumbers.style.transition = 'none';\r\n $whiteNumbers.style.transform = 'translateX(' + delta + 'px) translateZ(0)';\r\n });\r\n\r\n hammer.on('panend', function (event) {\r\n var selectedIndex = controller.property('rowWinningsSelected');\r\n var winningNumbersAmount = controller.property('rowWinningsNumbersAmount');\r\n\r\n selectedIndex += Math.round(event.deltaX / width);\r\n\r\n if (selectedIndex < 0) {\r\n selectedIndex = 0;\r\n } else if (selectedIndex > winningNumbersAmount - 1) {\r\n selectedIndex = winningNumbersAmount - 1;\r\n }\r\n\r\n $blueNumbers.removeAttribute('style');\r\n $whiteNumbers.removeAttribute('style');\r\n\r\n if (controller.property('rowWinningsSelected') !== selectedIndex) {\r\n controller.property('rowWinningsSelected', selectedIndex);\r\n } else {\r\n $blueNumbers.style.transform = 'translateX(' + controller.property('rowWinningsTranslateX') + 'px) translateZ(0)';\r\n $whiteNumbers.style.transform = 'translateX(' + controller.property('rowWinningsTranslateX') + 'px) translateZ(0)';\r\n }\r\n\r\n m.redraw();\r\n\r\n setTimeout(function () {\r\n controller.property('rowWinningsIsPanning', false);\r\n }, 200);\r\n });\r\n }\r\n });\r\n\r\n // Return:\r\n return m('div', { class: 'keno-section bg-superlightblue keno-winnings-section', config: render.depend() }, [\r\n m('h2', { class: 'winnings-headline' }, d('WinningsOverview/Headline')),\r\n\r\n game.playType() === 'KenoSystem' ? [\r\n m('h3', { class: 'winnings-subheadline' }, d('WinningsOverview/LevelWinningsHeadline')),\r\n LevelWinnings(controller),\r\n ] : null,\r\n\r\n m('h3', { class: 'winnings-subheadline' }, d('WinningsOverview/WinningsCorrect')),\r\n m('div', { class: 'rows-numbers-wrapper', config: render.depend('rows-numbers-wrapper') }, [\r\n m('div', { class: 'rows-numbers-blue', config: render.depend('rows-numbers-blue') }, [\r\n m('div', { class: 'rows-numbers-inner-container', config: render.depend('blue-numbers'), style: numbersStyle() }, [\r\n winningNumbers.map(function (number, index) {\r\n return m('span', { class: 'row-number-box', onmouseup: changeNumber(index) }, [\r\n m('span', { class: 'row-number-text' }, number)\r\n ]);\r\n })\r\n ])\r\n ]),\r\n m('div', { class: 'rows-numbers-background' }),\r\n m('div', { class: 'rows-numbers-white' }, [\r\n m('div', { class: 'rows-numbers-inner-container', config: render.depend('white-numbers'), style: numbersStyle() }, [\r\n winningNumbers.map(function (number) {\r\n return m('span', { class: 'row-number-box' }, [\r\n m('span', { class: 'row-number-text' }, number)\r\n ]);\r\n }),\r\n function () {\r\n if (numbers < 2) {\r\n return m('span', { class: 'row-number-box' }, [\r\n m('span', { class: 'row-number-text' }, '-')\r\n ]);\r\n }\r\n }()\r\n ])\r\n ]),\r\n m('div', { class: previousButtonClass(), onclick: changeNumber('previous') }, [\r\n m('svg', { class: 'next-number-button__icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoClassicIcons.svg#icon-left-arrow' })\r\n ])\r\n ]),\r\n m('div', { class: nextButtonClass(), onclick: changeNumber('next') }, [\r\n m('svg', { class: 'next-number-button__icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoClassicIcons.svg#icon-right-arrow' })\r\n ])\r\n ])\r\n ]),\r\n m('h3', { class: 'winnings-subheadline' }, d('WinningsOverview/WinningsPossibleWinnings')),\r\n m('div', { class: 'winnings-wrapper' }, [\r\n m('div', { class: 'winnings-inner-wrapper', config: render.depend('winnings-inner-wrapper') }, [\r\n game.playType() === 'KenoSystem' ? [\r\n winningFactors.map(function (number, index) {\r\n return m('div', { class: 'winning-amount', style: winningsStyle(index) }, KenoUtils.formatCurrency((totalPrice * number) / game.getSystemCombinationAmount()));\r\n })\r\n ] : [\r\n winningNumbers.map(function (number, index) {\r\n return m('div', { class: 'winning-amount', style: winningsStyle(index) }, KenoUtils.formatCurrency((totalPrice * winnings[number]) / validRows));\r\n })\r\n ],\r\n function () {\r\n if (numbers < 2) {\r\n return m('div', { class: 'winning-amount' }, '0 kr.');\r\n }\r\n }()\r\n ]),\r\n m('div', { class: 'winnings-top-gradient' }),\r\n m('div', { class: 'winnings-bottom-gradient' })\r\n ]),\r\n m('h3', { class: 'winnings-subheadline winnings-notice' }, [\r\n m('span', { class: 'notice' }, '* '),\r\n d('WinningsOverview/WinningsMax')\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return RowWinnings;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/Row',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/KenoClassic/RowHeader',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/RowNumbersHeader',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/RowNumbers'\r\n ],\r\n function (m, RowHeader, RowNumbersHeader, RowNumbers) {\r\n\r\n // Template:\r\n var Row = function (controller, row, rowIndex) {\r\n\r\n // Variables:\r\n var rowNumber = rowIndex + 1;\r\n var currentRowNumber = controller.property('currentRow');\r\n var rowsLength = controller.game().rows().length;\r\n\r\n // Functions:\r\n var rowClass = function () {\r\n // Class name base\r\n var className = 'row-container row-number-' + (rowNumber);\r\n\r\n // Add class regarding user interaction\r\n if (row.numbers.length > 0) {\r\n className += ' interacted-row';\r\n }\r\n\r\n // Add class name regarding row position\r\n if (rowNumber === currentRowNumber) {\r\n className += ' in-focus';\r\n } else if (rowNumber === currentRowNumber + 1) {\r\n className += ' next-row';\r\n } else if (rowNumber === currentRowNumber + 2) {\r\n className += ' next-next-row';\r\n } else if (rowNumber === currentRowNumber - 1) {\r\n className += ' prev-row';\r\n } else if (rowNumber === currentRowNumber - 2) {\r\n className += ' prev-prev-row';\r\n }\r\n\r\n // Add class name for new row\r\n if (rowsLength > 1 && rowNumber === rowsLength && currentRowNumber !== rowsLength) {\r\n className += ' new-row';\r\n }\r\n\r\n // Add class regarding animation\r\n if (controller.property('animate') === 'shake' && rowNumber === currentRowNumber) {\r\n className += ' shake-state';\r\n }\r\n\r\n return className;\r\n };\r\n\r\n var createRowConfig = function () {\r\n return function ($element) {\r\n // Event functions\r\n var onAnimationEnd = function () {\r\n var animate = controller.property('animate');\r\n\r\n if (/shake/.test(animate) && !/shake-end/.test(animate)) {\r\n controller.property('animate', controller.property('animate') + ' shake-end');\r\n\r\n m.redraw();\r\n }\r\n };\r\n\r\n // Event listener\r\n $element.addEventListener('animationend', onAnimationEnd);\r\n\r\n };\r\n };\r\n\r\n var slide = function () {\r\n return function () {\r\n if (currentRowNumber < rowNumber) {\r\n controller.property('animate', 'right');\r\n controller.property('currentRow', currentRowNumber + 1);\r\n } else if (currentRowNumber > rowNumber) {\r\n controller.property('animate', 'left');\r\n controller.property('currentRow', currentRowNumber - 1);\r\n }\r\n };\r\n };\r\n\r\n // Return:\r\n return m('div', { class: rowClass(), config: createRowConfig(), onclick: slide(), key: 'keno-row-' + row.count }, [\r\n RowHeader(controller, rowIndex),\r\n RowNumbersHeader(controller, rowIndex),\r\n m('div', { class: 'number-picker-container' }, [\r\n RowNumbers(controller, rowIndex)\r\n ])\r\n ]);\r\n };\r\n\r\n // Public functions:\r\n return Row;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/KenoClassic/RowsList',\r\n [\r\n 'Common/Framework/EventHandling/Scripts/OutsideClick',\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Scroll',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils'\r\n ],\r\n function (OutsideClick, m, Render, Scroll, KenoDictionary, KenoInfo, KenoUtils) {\r\n\r\n // Template:\r\n var RowsList = function (controller) {\r\n\r\n // Variables:\r\n var currentRow = controller.property('currentRow');\r\n var d = KenoDictionary.get;\r\n var game = controller.game();\r\n var hasTouch = 'ontouchstart' in window;\r\n var rows = game.getRows(0);\r\n var rowsAmount = rows.length;\r\n var render = Render();\r\n\r\n // Functions:\r\n var getElementHeight = function ($element) {\r\n return parseFloat(getComputedStyle($element, null).height.replace('px', ''));\r\n };\r\n\r\n var changeRow = function (rowNumber) {\r\n return function () {\r\n if (rowNumber !== currentRow) {\r\n controller.property('animate', rowNumber < currentRow ? 'left' : 'right');\r\n controller.property('currentRow', rowNumber);\r\n controller.property('toggledRowsList', false);\r\n }\r\n };\r\n };\r\n\r\n var deleteRow = function (rowNumber) {\r\n return function (event) {\r\n event.stopPropagation();\r\n\r\n controller.property('animate', 'remove');\r\n\r\n if (typeof controller.deleteOverlay !== 'undefined') {\r\n controller.property('deleteRow', rowNumber);\r\n\r\n controller.deleteOverlay().show(function () {\r\n var deleteRow = controller.property('deleteRow');\r\n var game = controller.game();\r\n\r\n if (deleteRow && currentRow !== deleteRow) {\r\n game.removeRow(deleteRow);\r\n\r\n if (currentRow > deleteRow) {\r\n controller.property('currentRow', currentRow - 1);\r\n }\r\n } else {\r\n controller.property('animate', 'remove');\r\n\r\n game.getRow(currentRow).state = 'remove';\r\n }\r\n });\r\n }\r\n };\r\n };\r\n\r\n var drawDates = function () {\r\n var date = KenoInfo.data().openDraw.closingTime;\r\n var draws = game.numberOfDraws();\r\n var result = '';\r\n\r\n if (!date || date === '') {\r\n return d('KenoClassic/RowsListInfo3');\r\n }\r\n\r\n date = new Date(date);\r\n\r\n if (draws > 1) {\r\n result = KenoUtils.formatISO8601(date.toISOString(), { includeTime: false, includeYear: false });\r\n\r\n date.setDate(date.getDate() + (draws - 1));\r\n\r\n result = result + ' ' + d('KenoClassic/RowsListInfo5') + ' ' + KenoUtils.formatISO8601(date.toISOString(), { includeYear: false });\r\n } else {\r\n result = KenoUtils.formatISO8601(date.toISOString(), { includeYear: false });\r\n }\r\n\r\n return result;\r\n };\r\n\r\n var itemsBoxStyle = function () {\r\n return 'max-height: ' + (controller.property('rowsListParentHeight') - controller.property('rowsListInformationHeight')) + 'px;';\r\n };\r\n\r\n var rowInit = function (row) {\r\n return function ($element, rendered) {\r\n if (!rendered) {\r\n var activeClassName = 'active';\r\n var $errorBox = document.querySelector('.error-message-box');\r\n\r\n $element.addEventListener(hasTouch ? 'touchstart' : 'mouseenter', function () {\r\n if (row.numbers.length < 2) {\r\n var $headline = $element.querySelector('.headline');\r\n var errorMessageBoxHeight = $errorBox.offsetHeight;\r\n var rowHeadlineHeight = $headline ? getElementHeight($headline) : 0;\r\n var rowTopPosition = $element.offsetTop;\r\n var rowsListTopPosition = controller.property('rowsListBoxTopPosition');\r\n\r\n $errorBox.classList.add(activeClassName);\r\n $errorBox.style.top = (rowsListTopPosition + rowTopPosition + (rowHeadlineHeight / 2) + (errorMessageBoxHeight / 2)) + 'px';\r\n\r\n if (hasTouch) {\r\n setTimeout(function () {\r\n $errorBox.classList.remove(activeClassName);\r\n }, 3000);\r\n }\r\n }\r\n });\r\n\r\n if (!hasTouch) {\r\n $element.addEventListener('mouseleave', function () {\r\n $errorBox.classList.remove(activeClassName);\r\n });\r\n }\r\n }\r\n };\r\n };\r\n\r\n var getRowsClass = function () {\r\n var className = 'rows-list-box';\r\n\r\n if (rowsAmount === 0 && controller.property('toggledRowsList')) {\r\n controller.property('toggledRowsList', false);\r\n\r\n return className;\r\n } else {\r\n return className + (controller.property('toggledRowsList') ? ' active' : '');\r\n }\r\n };\r\n\r\n var getText = function () {\r\n return rowsAmount === 1 ? d('KenoClassic/RowsListTitleSingular') : d('KenoClassic/RowsListTitlePluralis', { amount: rowsAmount });\r\n };\r\n\r\n var toggle = function () {\r\n controller.property('toggledRowsList', !controller.property('toggledRowsList'));\r\n };\r\n\r\n // Renders:\r\n render.ready.then(function (nodes) {\r\n var $parent = document.querySelector('.rows-container');\r\n var itemsBox = nodes['items-box'];\r\n var rowsList = nodes['rows-list'];\r\n var scrollDown = nodes['scroll-down'];\r\n var scrollUp = nodes['scroll-up'];\r\n\r\n controller.property('rowsListInformationHeight', nodes['information-box'].$element.offsetHeight + nodes['headline'].$element.offsetHeight);\r\n controller.property('rowsListParentHeight', $parent ? getElementHeight($parent) : 0);\r\n controller.property('rowsListBoxHeight', nodes['items-inner-box'].$element.offsetHeight);\r\n controller.property('rowsListBoxTopPosition', nodes['items-box'].$element.offsetTop);\r\n\r\n controller.property('rowsListShowArrowDown', controller.property('rowsListBoxHeight') - itemsBox.$element.scrollTop > nodes['items-box'].$element.offsetHeight);\r\n\r\n if (!itemsBox.rendered) {\r\n var scrollTimeout = null;\r\n\r\n Scroll(itemsBox.$element, function () {\r\n var boxHeight = controller.property('rowsListBoxHeight');\r\n var scrollTop = itemsBox.$element.scrollTop;\r\n\r\n clearTimeout(scrollTimeout);\r\n\r\n scrollTimeout = setTimeout(function () {\r\n controller.property('rowsListShowArrowDown', boxHeight - scrollTop > nodes['items-box'].$element.offsetHeight);\r\n controller.property('rowsListShowArrowUp', scrollTop > 30);\r\n\r\n m.redraw();\r\n }, 150);\r\n });\r\n }\r\n\r\n if (!scrollDown.rendered) {\r\n scrollDown.$element.addEventListener('click', function () {\r\n var height = controller.property('rowsListBoxHeight');\r\n var distance = (height / controller.game().getRows(0).length) * 2;\r\n\r\n itemsBox.$element.scrollTop += distance + itemsBox.$element.scrollTop > height ? itemsBox.$element.scrollTop : itemsBox.$element.scrollTop + distance;\r\n });\r\n }\r\n\r\n if (!scrollUp.rendered) {\r\n scrollUp.$element.addEventListener('click', function () {\r\n itemsBox.$element.scrollTop -= (controller.property('rowsListBoxHeight') / controller.game().getRows(0).length) * 2;\r\n });\r\n }\r\n\r\n // Outside click:\r\n if (!rowsList.rendered) {\r\n OutsideClick(rowsList.$element, rowsList.context, function () {\r\n controller.property('toggledRowsList', false);\r\n });\r\n }\r\n });\r\n\r\n // View:\r\n return m('div', { class: getRowsClass(), config: render.depend('rows-list') }, [\r\n m('div', { class: 'container' + (rowsAmount === 1 ? ' single-row' : ''), config: render.depend('container') }, [\r\n m('div', { class: 'informations-box', config: render.depend('information-box') }, [\r\n m('p', d('KenoClassic/RowsListInfo1', { stake: game.stakePerRow() })),\r\n m('p', d('KenoClassic/RowsListInfo2', { days: game.numberOfDraws() })),\r\n m('p', d('KenoClassic/' + (game.numberOfDraws() === 1 ? 'RowsListInfo3' : 'RowsListInfo6'), { date: drawDates() }))\r\n ]),\r\n m('div', { class: 'headline', config: render.depend('headline') }, getText()),\r\n m('div', { class: 'error-message-box', config: render.depend('error-message-box') }, [\r\n m('div', { class: 'error-headline' }, d('KenoClassic/RowsListErrorTitle')),\r\n m('div', { class: 'error-subheadline' }, d('KenoClassic/RowsListErrorText'))\r\n ]),\r\n m('div', { class: 'items-box', config: render.depend('items-box'), style: itemsBoxStyle() }, [\r\n m('div', { class: 'scroll-button scroll-up' + (controller.property('rowsListShowArrowUp') ? ' active' : ''), config: render.depend('scroll-up') }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '#icon-up-arrow' })\r\n ])\r\n ]),\r\n m('div', { class: 'items-inner-box', config: render.depend('items-inner-box') }, [\r\n rows.map(function (row, index) {\r\n return m('div', { class: 'item' + (row.numbers.length > 1 ? '' : ' invalid-row'), config: rowInit(row) }, [\r\n m('div', { onclick: changeRow(index + 1) }, [\r\n m('div', { class: 'headline' }, d('KenoClassic/RowsListRow') + ' ' + (index + 1)),\r\n m('div', { class: 'numbers' }, row.numbers.map(function (single) {\r\n return single.number;\r\n }).join(', '))\r\n ]),\r\n m('div', { class: 'delete-button', onclick: deleteRow(index + 1) }, [\r\n m('svg', { class: 'icon-x-big icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoClassicIcons.svg#icon-x-big' })\r\n ])\r\n ])\r\n ]);\r\n })\r\n ]),\r\n m('div', { class: 'scroll-button scroll-down' + (controller.property('rowsListShowArrowDown') ? ' active' : ''), config: render.depend('scroll-down') }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '#icon-down-arrow' })\r\n ])\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'button' + (rowsAmount > 0 ? ' active' : ''), onclick: toggle }, [\r\n m('svg', { class: 'icon-list' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoClassicIcons.svg#icon-list' })\r\n ]),\r\n m('svg', { class: 'icon-left-arrow' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoClassicIcons.svg#icon-left-arrow' })\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n // Public functions:\r\n return RowsList;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/KenoClassic/Rows',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/KenoClassic/Navigation',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/KenoClassic/RowsList',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/Row',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage'\r\n ],\r\n function (m, KenoUtils, Navigation, RowsList, Row, Storage) {\r\n\r\n // Template:\r\n var Rows = function (controller) {\r\n\r\n // Variables:\r\n var currentRow = controller.property('currentRow');\r\n var game = controller.game();\r\n var maxRows = game.classicMaxRows();\r\n var numbers = game.getRow(currentRow).numbers.length;\r\n\r\n // Functions:\r\n var rowsClass = function () {\r\n var animate = controller.property('animate');\r\n var className = 'rows-container';\r\n\r\n if (/left|right/.test(animate)) {\r\n className += ' slide-to-' + animate;\r\n\r\n if (animate === 'left' && currentRow === 1) {\r\n className += '-half';\r\n }\r\n } else if (currentRow > 1) {\r\n className += ' rows-static-position';\r\n }\r\n\r\n if (game.getRow(currentRow).state === 'remove') {\r\n className += ' delete-row';\r\n }\r\n\r\n if (!JSON.parse(Storage.get('Preferences-KenoClassicRows-HasAnimated')) && !KenoUtils.isMobile() && numbers >= 2 && numbers < 10 && currentRow === 1 && !controller.property('firstRowShouldAnimate') && !controller.property('firstRowDidAnimate')) {\r\n setTimeout(function () {\r\n controller.property('firstRowShouldAnimate', true);\r\n\r\n m.redraw();\r\n }, 1000);\r\n }\r\n\r\n if (controller.property('firstRowShouldAnimate')) {\r\n className += ' first-new-row-valid';\r\n\r\n if (!controller.property('firstRowIsAnimating')) {\r\n controller.property('firstRowIsAnimating', true);\r\n\r\n setTimeout(function () {\r\n controller.property('firstRowDidAnimate', true);\r\n controller.property('firstRowIsAnimating', false);\r\n controller.property('firstRowShouldAnimate', false);\r\n\r\n Storage.set('Preferences-KenoClassicRows-HasAnimated', JSON.stringify(true));\r\n\r\n m.redraw();\r\n }, 8000);\r\n }\r\n }\r\n\r\n if (numbers >= 2 && currentRow > 1 && currentRow === game.rows().length - 1) {\r\n className += ' new-row-valid';\r\n }\r\n\r\n return className;\r\n };\r\n\r\n var rowsConfig = function ($element, rendered) {\r\n if (!rendered) {\r\n $element.addEventListener('animationend', function () {\r\n var animate = controller.property('animate');\r\n var currentRow = controller.property('currentRow');\r\n var rows = game.rows();\r\n\r\n if (/remove/.test(animate)) {\r\n var clean = [];\r\n\r\n for (var i = 0; i < rows.length; i++) {\r\n if (rows[i].state !== 'remove') {\r\n clean.push(rows[i]);\r\n }\r\n }\r\n\r\n for (var j = 0; j < clean.length; j++) {\r\n clean[j].count = j;\r\n }\r\n\r\n game.rows(clean);\r\n game.save();\r\n\r\n if (currentRow > clean.length) {\r\n game.addRow();\r\n\r\n controller.property('animate', 'left');\r\n } else {\r\n controller.property('animate', '');\r\n }\r\n\r\n m.redraw();\r\n } else if (animate === 'left' && currentRow === game.rows().length) {\r\n controller.property('animate', '');\r\n }\r\n });\r\n }\r\n };\r\n\r\n // View:\r\n return m('div', { class: rowsClass(), config: rowsConfig }, [\r\n controller.game().rows().map(function (row, index) {\r\n if (index < maxRows) {\r\n return Row(controller, row, index);\r\n }\r\n }),\r\n m('div', { class: 'instructions-wrapper' }, [\r\n m('div', { class: 'instructions-text-box box-one' }, controller.d('KenoClassic/AddNewRowBoxFirst')),\r\n m('div', { class: 'instructions-text-box box-two' }, controller.d('KenoClassic/AddNewRowBoxSecond')),\r\n m('div', { class: 'instructions-text-box box-three' }, controller.d('KenoClassic/AddNewRowBoxThird'))\r\n ]),\r\n Navigation(controller), // eslint-disable-line compat/compat\r\n RowsList(controller)\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return Rows;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/KenoSystem/SystemTable',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/CollapsibleSection',\r\n ],\r\n function (m, KenoDictionary, CollapsibleSection) {\r\n\r\n // Template:\r\n var SystemTable = function (controller) {\r\n\r\n // Variables:\r\n var d = KenoDictionary.get;\r\n var systemTable = m.prop();\r\n\r\n if (controller.game().systemLevel() && controller.systemTables()) {\r\n systemTable(controller.systemTables()[controller.game().systemLevel()]);\r\n }\r\n\r\n if (!systemTable()) {\r\n return m('p', d('KenoSystem/SystemTable/NoSystemTableAvailableError'));\r\n }\r\n\r\n if (!controller.systemTables()) {\r\n return '';\r\n }\r\n\r\n var factorAmount = systemTable().winningFactors.length;\r\n\r\n // Return:\r\n return m('div', { class: 'keno-section bg-superlightblue' }, [\r\n CollapsibleSection('systemtable', { expand: d('KenoSystem/SystemTable/ExpandButton'), hide: d('KenoSystem/SystemTable/CompactButton'), noMobileVersion: d('KenoSystem/SystemTable/NoMobileVersion') }, [\r\n m('div', { class: 'editor-content' }, [\r\n m('h2', d('KenoSystem/SystemTable/Header', { level: controller.game().systemLevel() })),\r\n m('p', { class: 'mobile-hide' }, d('KenoSystem/SystemTable/Paragraph1')),\r\n m('p', { class: 'mobile-hide' }, d('KenoSystem/SystemTable/Paragraph2'))\r\n ]),\r\n\r\n m('table', { class: 'blue-table mobile-hide' }, [\r\n m('thead', { class: 'smaller-font-size' }, [\r\n m('tr', [\r\n m('th', d('KenoSystem/SystemTable/TableHeaderNumbersPlayed')),\r\n m('th', factorAmount < 5 ? d('KenoSystem/SystemTable/TableHeaderCombinations') : d('KenoSystem/SystemTable/TableHeaderCombinationsBreak')),\r\n m('th', d('KenoSystem/SystemTable/TableHeaderCorrectNumbers')),\r\n m('th', { colspan: factorAmount + 1 }, d('KenoSystem/SystemTable/TableHeaderPrizeGivingGames'))\r\n ])\r\n ]),\r\n\r\n m('tbody', [\r\n m('tr', [\r\n m('th', { class: 'empty' }),\r\n m('th', { class: 'empty' }),\r\n m('th', { class: 'empty' }),\r\n\r\n systemTable().winningFactors.map(function (factor) {\r\n return m('th', d('KenoSystem/SystemTable/TableHeaderPrizeFactor', { factor: factor }));\r\n }),\r\n\r\n m('th', d('KenoSystem/SystemTable/TableHeaderPrizeKey'))\r\n ]),\r\n\r\n Object.keys(systemTable().combinations).map(function (i, indexI) {\r\n var combination = systemTable().combinations[i];\r\n\r\n // Sort so we show highest rightMark first\r\n var rightMarksKeys = Object.keys(combination.rightMarks).sort(function (a, b) {\r\n return parseInt(a, 10) > parseInt(b, 10);\r\n }).reverse();\r\n\r\n return rightMarksKeys.map(function (j, indexJ) {\r\n var rightMark = combination.rightMarks['' + j];\r\n var trClass = (indexJ == rightMarksKeys.length - 1 && indexI != Object.keys(systemTable().combinations).length - 1) ? 'bottom-border' : '';\r\n\r\n return m('tr', { class: trClass }, [\r\n m('td', indexJ == 0 ? i : ''), // Antal tal\r\n m('td', indexJ == 0 ? combination.combination : ''), // Antal kombinationer\r\n m('td', j),\r\n\r\n rightMark.factors.map(function (factor) {\r\n return m('td', factor);\r\n }),\r\n\r\n m('td', rightMark.key)\r\n ]);\r\n });\r\n })\r\n ])\r\n ])\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return SystemTable;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Templates/NoOpenDraw',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Countdown',\r\n 'DanskeSpil/Framework/TimeUtils/Scripts/TimeUtils'\r\n ],\r\n function (m, KenoDictionary, KenoInfo, Countdown, TimeUtils) {\r\n\r\n // View:\r\n var NoOpenDraw = function () {\r\n\r\n // Variables:\r\n var d = KenoDictionary.get;\r\n var isFeedDown = KenoInfo.isFeedDown();\r\n\r\n // Countdown time\r\n var getCountdownOptions = function () {\r\n var countdownTime;\r\n var openDraw = KenoInfo.data().openDraw;\r\n if (!openDraw) {\r\n countdownTime = new Date();\r\n var currentTime = TimeUtils.getCurrentDateTime();\r\n if (currentTime.getHours() >= 22 || (currentTime.getHours() >= 21 && currentTime.getMinutes() >= 30)) {\r\n // next day\r\n countdownTime = new Date(currentTime.getTime() + (24 * 60 * 60 * 1000));\r\n }\r\n\r\n countdownTime.setHours(21);\r\n countdownTime.setMinutes(30);\r\n countdownTime.setSeconds(0);\r\n }\r\n\r\n return {\r\n countdownTime: countdownTime ? countdownTime.getTime() / 1000 : 0,\r\n dictionary: d,\r\n disabled: false,\r\n noOpenDraw: true\r\n };\r\n };\r\n\r\n\r\n // View:\r\n return m('div', { class: 'keno-no-open-draw bg-powderblue' }, [\r\n\r\n m('section', { class: 'keno-section' }, [\r\n m('div', { class: 'keno-content-wrapper' }, [\r\n m('div', { class: 'header-icon' }, [\r\n m('svg', { class: 'whitecheckmarkincircle' }, [\r\n m('use', { class: 'whitecheckmarkincircle', href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoCommonIcons.svg#time-in-circle' })\r\n ])\r\n ]),\r\n m('h1', { class: 'no-opendraw-headline' }, d('KenoClosed/NoOpenDrawHeader')),\r\n m('h2', { class: 'no-opendraw-subheadline' }, d('KenoClosed/NoOpenDrawText'))\r\n ])\r\n ]),\r\n\r\n m('section', { class: 'keno-section bg-white manchete top' }, [\r\n m('div', { class: 'keno-content-wrapper' }, [\r\n (isFeedDown ? [\r\n m('h2', { class: 'no-opendraw-subheadline content' }, d('KenoClosed/GameNotAvailableHeader')),\r\n m('h2', { class: 'no-opendraw-subheadline content' }, d('KenoClosed/GameNotAvailableText'))\r\n ] : [\r\n Countdown(getCountdownOptions())\r\n ])\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n // Public functions:\r\n return NoOpenDraw;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/Templates/DatePicker',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils'\r\n ],\r\n function (m, Render, Utils) {\r\n // Template:\r\n var DatePicker = function (controller, pushWeekToHash) {\r\n var render = Render();\r\n\r\n if (!controller.property('datePickerMonthOffset')) {\r\n controller.property('datePickerMonthOffset', 0);\r\n }\r\n\r\n var dateFormating = function (year, month, day) {\r\n if (month < 10) {\r\n month = '0' + month;\r\n }\r\n if (day < 10) {\r\n day = '0' + day;\r\n }\r\n return year + '-' + month + '-' + day;\r\n };\r\n if (!controller.property('datepickerOnce')) {\r\n controller.property('datepickerOnce', true);\r\n\r\n // sort completed draw dates and select the newsest draw\r\n controller.completedDrawsDates().sort(function compare(a, b) {\r\n var dateA = new Date(a).valueOf();\r\n var dateB = new Date(b).valueOf();\r\n\r\n return dateB - dateA;\r\n });\r\n controller.selectDate(controller.completedDrawsDates()[0]);\r\n }\r\n\r\n // Warning:\r\n // This component is shared for Vikinglotto, Lotto, Keno And All or nothing.\r\n\r\n // Variables:\r\n var headerNames = ['Uge', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør', 'Søn'];\r\n var datePickerDays = [];\r\n var formattedSelectedDate = Utils.formatISO8601(controller.selectedDrawDate() + ' 00:00:00', { includeTime: false });\r\n var selectedDateYear = parseInt(Utils.parseISO8601(controller.selectedDrawDate() + ' 00:00:00').year, 10);\r\n var selectedDateMonth = parseInt(Utils.parseISO8601(controller.selectedDrawDate() + ' 00:00:00').month, 10);\r\n var datePickerMonthOffset = (selectedDateMonth + controller.property('datePickerMonthOffset'));\r\n var datePickerMonth = new Date(selectedDateYear, datePickerMonthOffset).getMonth();\r\n var datePickerYear = new Date(selectedDateYear, (datePickerMonth === 0 ? (datePickerMonthOffset - 1) : datePickerMonthOffset)).getFullYear();\r\n var datePickerMonthName = Utils.parseISO8601(dateFormating(datePickerYear, (datePickerMonth === 0 ? 12 : datePickerMonth), '1') + ' 00:00:00').monthName;\r\n var numberOfDaysForCurrentMonth = new Date(selectedDateYear, datePickerMonthOffset, 0).getDate();\r\n var numberOfDaysForPreviousMonth = new Date(selectedDateYear, (datePickerMonthOffset - 1), 0).getDate();\r\n var firstDayIndex = new Date(selectedDateYear, (datePickerMonthOffset - 1)).getDay();\r\n var lastDayIndex = new Date(selectedDateYear, (datePickerMonthOffset - 1), numberOfDaysForCurrentMonth).getDay();\r\n var numberOfDaysForNextMonth = 7 - (lastDayIndex + 1);\r\n\r\n var startDayLimit = Utils.parseISO8601(controller.completedDrawsDates()[controller.completedDrawsDates().length - 1] + ' 00:00:00');\r\n var isFirstMonth = new Date(parseInt(startDayLimit.year, 10), parseInt(startDayLimit.month, 10)).getTime() >= new Date(datePickerYear, (datePickerMonth === 0 ? 12 : datePickerMonth)).getTime();\r\n var endDayLimit = Utils.parseISO8601(controller.completedDrawsDates()[0] + ' 00:00:00');\r\n var isLastMonth = new Date(parseInt(endDayLimit.year, 10), parseInt(endDayLimit.month, 10)).getTime() <= new Date(datePickerYear, (datePickerMonth === 0 ? 12 : datePickerMonth)).getTime();\r\n\r\n function daysFromPreviousMonth() {\r\n if (firstDayIndex === 0) {\r\n firstDayIndex = 7;\r\n }\r\n\r\n for (var i = 0; i < firstDayIndex - 1; i++) {\r\n var day = (numberOfDaysForPreviousMonth - firstDayIndex + 1) + i + 1;\r\n var className = 'previous-month' + (i === 0 ? ' first-day-of-the-month' : '') + (i === (firstDayIndex - 1) ? ' last-day-of-the-month' : '');\r\n var dayObj = {\r\n dayNumber: day,\r\n date: new Date(datePickerYear, (datePickerMonth - 1), day),\r\n dateFormattet: dateFormating(datePickerYear, (datePickerMonth - 1), day),\r\n cssClass: className\r\n };\r\n\r\n // January\r\n if (datePickerMonth === 1) {\r\n dayObj.date = new Date((datePickerYear - 1), 11, day); // 11 = deceber\r\n dayObj.dateFormattet = dateFormating(datePickerYear - 1, 12, day); // shown as 12\r\n }\r\n // December fix\r\n if (datePickerMonth === 0) {\r\n dayObj.date = new Date(datePickerYear, 10, day); // 10 = november\r\n dayObj.dateFormattet = dateFormating(datePickerYear, 11, day); // shown as 11\r\n }\r\n\r\n datePickerDays.push(dayObj);\r\n }\r\n\r\n\r\n }\r\n\r\n function daysFromCurrentMonth() {\r\n for (var i = 0; i < numberOfDaysForCurrentMonth; i++) {\r\n var day = i + 1;\r\n var className = 'current-month';\r\n var dayObj = {\r\n dayNumber: day,\r\n date: new Date(datePickerYear, (datePickerMonth === 0 ? 11 : datePickerMonth - 1), day),\r\n dateFormattet: dateFormating(datePickerYear, (datePickerMonth === 0 ? 12 : datePickerMonth), day),\r\n cssClass: className\r\n };\r\n\r\n datePickerDays.push(dayObj);\r\n }\r\n }\r\n\r\n function daysFromNextMonth() {\r\n for (var i = 0; i < numberOfDaysForNextMonth + 1; i++) {\r\n var day = i + 1;\r\n var className = 'next-month' + (day === 1 ? ' first-day-of-the-month' : '') + (i === (numberOfDaysForNextMonth) ? ' last-day-of-the-month' : '');\r\n var dayObj = {\r\n dayNumber: day,\r\n date: new Date(datePickerYear, (datePickerMonth), day),\r\n dateFormattet: dateFormating(datePickerYear, (datePickerMonth + 1), day),\r\n cssClass: className\r\n };\r\n\r\n if (datePickerMonth === 0) {\r\n dayObj.dateFormattet = dateFormating((datePickerYear + 1), 1, day);\r\n dayObj.date = new Date((datePickerYear + 1), 0, day);\r\n }\r\n\r\n datePickerDays.push(dayObj);\r\n }\r\n }\r\n\r\n function insertWeekNumbers() {\r\n var numberOfDays = datePickerDays.length;\r\n\r\n for (var splice = 0; splice < numberOfDays; splice += 8) {\r\n var weeknr = Utils.getWeekNumber(datePickerDays[splice + 4].date);\r\n var className = 'weeknr';\r\n var dayObj = {\r\n dayNumber: weeknr,\r\n date: '',\r\n dateFormattet: '',\r\n cssClass: className\r\n };\r\n\r\n datePickerDays.splice(splice, 0, dayObj);\r\n }\r\n }\r\n\r\n // Functions:\r\n var toggleDatepicker = function () {\r\n if (!controller.isDatepickerOpened()) {\r\n controller.property('datePickerMonthOffset', 0);\r\n }\r\n controller.isDatepickerOpened(!controller.isDatepickerOpened());\r\n };\r\n\r\n var selectDate = function (date, state) {\r\n return function () {\r\n if (!state) {\r\n controller.selectDate(date);\r\n controller.isDatepickerOpened(false);\r\n\r\n if (pushWeekToHash) {\r\n Utils.setWeekAndYearToHash(date);\r\n }\r\n }\r\n };\r\n };\r\n\r\n var changeMonth = function (direction) {\r\n return function () {\r\n if (direction === 'prev' && !isFirstMonth) {\r\n controller.property('datePickerMonthOffset', (controller.property('datePickerMonthOffset') - 1));\r\n }\r\n if (direction === 'next' && !isLastMonth) {\r\n controller.property('datePickerMonthOffset', (controller.property('datePickerMonthOffset') + 1));\r\n }\r\n };\r\n };\r\n\r\n // check to see if we have week and date in hash, to show this.\r\n var checkHashForDate = function () {\r\n if (pushWeekToHash && history.pushState) {\r\n var weekAndYear = Utils.getWeekAndYearFromHash();\r\n if (weekAndYear) {\r\n var matchingDate = Utils.getMatchingDateFromWeekAndYear(weekAndYear.week, weekAndYear.year, controller.completedDrawsDates());\r\n if (matchingDate) controller.selectDate(matchingDate);\r\n }\r\n }\r\n };\r\n\r\n daysFromPreviousMonth();\r\n daysFromCurrentMonth();\r\n daysFromNextMonth();\r\n insertWeekNumbers();\r\n\r\n render.ready.then(function (nodes) {\r\n if (!nodes['date-picker'].rendered) {\r\n checkHashForDate();\r\n }\r\n });\r\n\r\n // View:\r\n return m('div', {\r\n class: 'date-picker-wrapper' + (controller.isDatepickerOpened() ? ' opened' : ''),\r\n config: render.depend('date-picker')\r\n }, [\r\n m('div', { class: 'date-picker-placeholder-wrapper', onclick: toggleDatepicker }, [\r\n m('span', { class: 'date-title' }, formattedSelectedDate),\r\n m('svg', { class: 'icon-arrow' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-down-arrow' })\r\n ])\r\n ]),\r\n\r\n // datepicker section\r\n m('div', { class: 'date-picker-calendar-outer-wrapper' }, [\r\n m('div', { class: 'date-picker-header' }, [\r\n m('span', { class: 'navigate-arrow prev' + (isFirstMonth ? ' disabled' : ''), onclick: changeMonth('prev') }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-down-arrow' })\r\n ])\r\n ]),\r\n m('span', { class: 'date-title' }, datePickerMonthName + ' ' + datePickerYear),\r\n m('span', { class: 'navigate-arrow next' + (isLastMonth ? ' disabled' : ''), onclick: changeMonth('next') }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-down-arrow' })\r\n ])\r\n ])\r\n ]),\r\n\r\n m('div', { class: 'date-picker-calendar-wrapper' }, [\r\n // header cells\r\n headerNames.map(function (day) {\r\n if (day === 'Uge') {\r\n return m('span', { class: 'calendar-cell-wrapper header weeknr' }, day);\r\n }\r\n return m('span', { class: 'calendar-cell-wrapper header' }, day);\r\n }),\r\n\r\n // days cells\r\n datePickerDays.map(function (day) {\r\n var className = 'calendar-cell-wrapper ' + day.cssClass;\r\n var isInactive = false;\r\n if (controller.completedDrawsDates().indexOf(day.dateFormattet) === -1) {\r\n isInactive = true;\r\n className += ' inactive';\r\n }\r\n if (day.dateFormattet === controller.selectedDrawDate()) {\r\n className += ' selected';\r\n }\r\n return m('span', { class: className, onclick: selectDate(day.dateFormattet, isInactive), title: day.dateFormattet }, [\r\n m('span', { class: 'day-wrapper' }, day.dayNumber)\r\n ]);\r\n })\r\n ])\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return DatePicker;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Components/GameClients/KenoClassicClient',\r\n [\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Params',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Domain/NumberGames/Scripts/Components/StatisticsComponentForGameClient',\r\n 'DanskeSpil/Domain/Keno/Scripts/Models/KenoGame',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/KenoClassic/Barometer',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/KenoClassic/DeleteOverlay',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/KenoClassic/Rows',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/PurchaseBar',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/RowWinnings'\r\n ],\r\n function (Params, Overlay, StatisticsComponentForGameClient, KenoGame, KenoDictionary, KenoInfo, Barometer, DeleteOverlay, Rows, PurchaseBar, RowWinnings) {\r\n\r\n // Client:\r\n var GameClient = function (m, settings, property) {\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n this.d = KenoDictionary.get;\r\n this.gameInstanceId = m.prop(Params.extract('gameInstanceId'));\r\n this.game = m.prop(KenoGame.setupGame({ gameInstanceId: this.gameInstanceId(), playType: 'KenoClassic' }));\r\n this.deleteOverlay = m.prop(new Overlay(DeleteOverlay(this.d)));\r\n this.pageReload = m.prop(typeof this.gameInstanceId() !== 'undefined');\r\n this.property = property;\r\n this.property('currentRow', 1);\r\n\r\n // Functions:\r\n this.purchase = function () {\r\n var game = this.game();\r\n\r\n if (game.getRows().length > 0) {\r\n game.save();\r\n\r\n location.href = KenoInfo.data().confirmUrl + '?gameInstanceId=' + game.id();\r\n }\r\n }.bind(this);\r\n\r\n // Replace state:\r\n if (!this.gameInstanceId() != this.game().id()) {\r\n Params.set('gameInstanceId=' + this.game().id());\r\n }\r\n\r\n },\r\n\r\n view: function (controller) {\r\n return m('div', { class: 'keno-classic-game' }, [\r\n StatisticsComponentForGameClient(controller, 'Keno'),\r\n m('div', { class: 'keno-section keno-classic-game-section purchase-bar-container' }, [\r\n m('div', { class: 'keno-content-wrapper' }, [\r\n Barometer(controller, settings),\r\n Rows(controller),\r\n !settings.subscriptionsMode ? PurchaseBar(controller) : null\r\n ])\r\n ]),\r\n !settings.subscriptionsMode ? RowWinnings(controller) : null\r\n ]);\r\n }\r\n };\r\n\r\n // Return:\r\n return root;\r\n\r\n };\r\n\r\n // Public functions:\r\n return GameClient;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Components/KenoClassic',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils',\r\n 'DanskeSpil/Domain/Keno/Scripts/Components/GameClients/KenoClassicClient'\r\n ],\r\n function (Component, KenoDictionary, KenoInfo, KenoUtils, KenoClassicClient) {\r\n\r\n // Component:\r\n Component('keno-classic', [KenoDictionary, KenoInfo], function (m, route, settings, property) {\r\n\r\n // If no draw open, go to the closed page:\r\n if (KenoInfo.isFeedDown() || KenoInfo.noOpenDraw()) {\r\n KenoUtils.gotoKenoClosed();\r\n }\r\n\r\n // Components:\r\n var client = KenoClassicClient(m, settings, property);\r\n\r\n // Routes:\r\n route('/', client);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Components/KenoFastPlay',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n 'DanskeSpil/Domain/Keno/Scripts/Models/KenoGame',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils'\r\n ],\r\n function (Component, KenoDictionary, KenoInfo, KenoGame, KenoUtils) {\r\n\r\n // Component:\r\n Component('keno-fast-play', [KenoDictionary], function (m, route, settings) {\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n this.price = m.prop(0);\r\n\r\n var gameClosed = m.prop(KenoInfo.data().openDraw ? false : true);\r\n var game = KenoGame.new({ playType: settings.playType });\r\n\r\n if (settings.playType == 'KenoSmall') {\r\n this.price(game.stakePerRow() * 5 * game.numberOfDraws());\r\n }\r\n if (settings.playType == 'KenoLarge') {\r\n this.price(game.stakePerRow() * 10 * game.numberOfDraws());\r\n }\r\n\r\n\r\n this.confirm = function (event) {\r\n event.preventDefault();\r\n\r\n if (settings.playType == 'KenoSmall' || settings.playType == 'KenoLarge') {\r\n game.gameAutogenerate().then(function () {\r\n game.save();\r\n\r\n if (gameClosed()) {\r\n KenoUtils.gotoKenoClosed();\r\n } else {\r\n location.href = KenoInfo.data().confirmUrl + '?gameInstanceId=' + game.id();\r\n }\r\n });\r\n }\r\n\r\n }.bind(this);\r\n\r\n },\r\n\r\n view: function (controller) {\r\n\r\n var sectionStyle = function () {\r\n var style = '';\r\n if (settings.backgroundColor) {\r\n style += 'background-color: ' + settings.backgroundColor + ';';\r\n }\r\n if (settings.backgroundImageUrl) {\r\n style += 'background-image: url(' + settings.backgroundImageUrl + ');';\r\n }\r\n return style;\r\n };\r\n\r\n var getSetting = function (key) {\r\n return m.trust(settings[key] || '');\r\n };\r\n\r\n var ctaText = getSetting('ctaText').replace('{price}', controller.price());\r\n\r\n return m('section.keno-section ' + settings.playType, { style: sectionStyle() }, [\r\n m('.fast-play-game-spot.keno-content-wrapper', [\r\n m('h2.fastplay-subheadline', [\r\n getSetting('preHeader')\r\n ]),\r\n m('h2.fastplay-headline', [\r\n getSetting('header')\r\n ]),\r\n m('h3.fastplay-subheadline', getSetting('subHeader')),\r\n m('button.btn.cta.fixed-width-160', { onclick: controller.confirm }, ctaText)\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n // Setup routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Components/KenoMillion',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/ErrorOverlay',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils',\r\n 'DanskeSpil/Domain/Keno/Scripts/Models/KenoGame',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Countdown',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/PurchaseBar',\r\n 'DanskeSpil/Framework/TimeUtils/Scripts/TimeUtils'\r\n ],\r\n function (Component, ErrorOverlay, Overlay, KenoDictionary, KenoInfo, KenoUtils, KenoGame, Countdown, PurchaseBar, TimeUtils) {\r\n var d = KenoDictionary.get;\r\n\r\n // Component:\r\n Component('keno-million', [KenoDictionary, KenoInfo], function (m, route, settings, property) {\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n var self = this;\r\n this.closingDate = m.prop(KenoInfo.data().openDraw ? KenoInfo.data().openDraw.closingTime : '');\r\n this.errorOverlay = m.prop(new Overlay(ErrorOverlay('keno-million-game-overlay', { header: d('GenerateRowsErrorOverlay/Header'), body: d('GenerateRowsErrorOverlay/Body'), dismiss: d('GenerateRowsErrorOverlay/Dismiss') })));\r\n this.gameClosed = m.prop(KenoInfo.data().openDraw ? false : true);\r\n this.isFeedDown = KenoInfo.isFeedDown();\r\n this.game = m.prop(KenoGame.new({ playType: 'KenoMillion' }));\r\n this.expanded = m.prop(false);\r\n this.property = property;\r\n this.property('currentRow', 1);\r\n\r\n // Functions:\r\n this.colorStyle = function (color) {\r\n return color ? 'color: ' + color + ';' : '';\r\n };\r\n\r\n this.purchase = function () {\r\n var game = this.game();\r\n\r\n game.save();\r\n\r\n if (this.gameClosed()) {\r\n KenoUtils.gotoKenoClosed();\r\n } else {\r\n\r\n this.game().gameAutogenerate().then(function () {\r\n self.game().save();\r\n m.redraw();\r\n\r\n if (game.numberOfDraws() === 0) {\r\n game.sendToSubscription();\r\n } else {\r\n location.href = KenoInfo.data().confirmUrl + '?gameInstanceId=' + game.id();\r\n }\r\n\r\n }, function () {\r\n // Error during autogenerate\r\n m.redraw();\r\n self.errorOverlay().show();\r\n });\r\n\r\n }\r\n }.bind(this);\r\n\r\n this.expand = function () {\r\n this.expanded(true);\r\n }.bind(this);\r\n\r\n this.compact = function () {\r\n this.expanded(false);\r\n }.bind(this);\r\n\r\n this.regenerate = function () {\r\n\r\n this.game().gameAutogenerate().then(function () {\r\n self.game().save();\r\n m.redraw();\r\n }, function () {\r\n m.redraw();\r\n self.errorOverlay().show();\r\n });\r\n }.bind(this);\r\n\r\n this.getCountdownOptions = function () {\r\n var countdownTime;\r\n var openDraw = KenoInfo.data().openDraw;\r\n if (!openDraw) {\r\n countdownTime = new Date();\r\n var currentTime = TimeUtils.getCurrentDateTime();\r\n if (currentTime.getHours() >= 22 || (currentTime.getHours() >= 21 && currentTime.getMinutes() >= 30)) {\r\n // next day\r\n countdownTime = new Date(currentTime.getTime() + (24 * 60 * 60 * 1000));\r\n }\r\n\r\n countdownTime.setHours(21);\r\n countdownTime.setMinutes(30);\r\n countdownTime.setSeconds(0);\r\n }\r\n\r\n return {\r\n countdownTime: countdownTime ? countdownTime.getTime() / 1000 : 0,\r\n dictionary: d,\r\n disabled: false,\r\n noOpenDraw: true\r\n };\r\n }.bind(this);\r\n\r\n this.wrapperCssClasses = function () {\r\n return 'keno-million purchase-bar-container' +\r\n (settings.topManchete || settings.bottomManchete ? ' manchete' : '') +\r\n (settings.topManchete && !this.gameClosed() ? ' top' : '') +\r\n (settings.bottomManchete ? ' bot' : '') +\r\n (this.expanded() ? ' is-expanded' : '');\r\n }.bind(this);\r\n\r\n // Start by regenerating:\r\n this.regenerate();\r\n\r\n // Add event for regenerate numbers when going back from Safari bfcache (https://www.kimgunnarsson.se/mobile-safari-and-back-forward-cache-invalidation/)\r\n // window.addEventListener('pageshow', function (e) {\r\n // if (e.persisted) {\r\n // self.game().rows([]);\r\n // m.redraw();\r\n // self.regenerate();\r\n // }\r\n // });\r\n\r\n },\r\n\r\n view: function (controller) {\r\n\r\n if (controller.isFeedDown || controller.gameClosed()) {\r\n // Feed down or no open draw, content\r\n\r\n return m('div', { class: controller.wrapperCssClasses() },\r\n m('div', { class: 'game-not-available-wrapper' }, [\r\n // ICON\r\n m('svg', { class: 'whitecheckmarkincircle' }, [\r\n m('use', { class: 'whitecheckmarkincircle', href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoCommonIcons.svg#time-in-circle' })\r\n ]),\r\n controller.isFeedDown ? [\r\n m('h2', { class: 'keno-million-headline' }, d('KenoClosed/FrontpageKenoMillion/GameNotAvailableHeader')),\r\n m('h3', { class: 'subheadline' }, d('KenoClosed/FrontpageKenoMillion/GameNotAvailableText_1')),\r\n m('h3', { class: 'subheadline' }, d('KenoClosed/FrontpageKenoMillion/GameNotAvailableText_2'))\r\n ] : [\r\n m('h2', { class: 'keno-million-headline' }, d('KenoClosed/FrontpageKenoMillion/NoOpenDrawHeader')),\r\n m('h3', { class: 'subheadline' }, d('KenoClosed/FrontpageKenoMillion/NoOpenDrawText')),\r\n Countdown(controller.getCountdownOptions())\r\n ]\r\n ])\r\n );\r\n\r\n }\r\n\r\n // Regular lightning:\r\n var rowCount = controller.game().rowCount();\r\n\r\n return m('div', { class: controller.wrapperCssClasses() },\r\n\r\n m('section', { class: 'keno-section' }, [\r\n m('.keno-content-wrapper', [\r\n // Logo image:\r\n settings.logoImageUrl ? m('.logo', m('img', { src: settings.logoImageUrl })) : '',\r\n\r\n // Header:\r\n d('MillionKeno/Header') !== '?' ? m('h2', { class: 'keno-million-headline', style: controller.colorStyle(d('MillionKeno/HeaderColor')) }, settings.headerText) : undefined,\r\n\r\n // Buttons:\r\n m('.subheading', [\r\n m('span', { class: 'subheading-text yellow', style: controller.colorStyle(d('MillionKeno/SubHeaderColor')) }, d('MillionKeno/SubHeader')),\r\n m('span', { class: 'subheading-text', style: controller.colorStyle(d('MillionKeno/DescriptionColor')) }, d('MillionKeno/Description'))\r\n ]),\r\n\r\n // Draw info:\r\n rowCount > 0 ? [\r\n m('div', { class: 'draw-info' }, [\r\n m('span', { class: 'draw-info-text' }, d('MillionKeno/DrawInfoRowsAndStake', { rows: rowCount * controller.game().numberOfDraws(), stake: controller.game().stakePerRow(), totalstake: controller.game().totalPrice })),\r\n !controller.gameClosed() ? m('span.draw-info-text', m.trust(d(controller.game().numberOfDraws() < 2 ? 'MillionKeno/DrawInfoDrawDateSingular' : 'MillionKeno/DrawInfoDrawDatePluralis', { drawdate: controller.game().drawDateHtml() }))) : '',\r\n !controller.gameClosed() ? m('span.draw-info-text', d('MillionKeno/DrawInfoGameStop', { gamestopdate: KenoUtils.formatISO8601(controller.closingDate(), { includeDate: true, includeTime: false }), gamestoptime: KenoUtils.formatISO8601(controller.closingDate(), { includeDate: false, includeTime: true, includeTimePrefix: false, includeYear: false }) })) : '',\r\n ]),\r\n\r\n PurchaseBar(controller)\r\n ] : ''\r\n\r\n ])\r\n ])\r\n );\r\n }\r\n };\r\n\r\n // Setup routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Components/GameClients/KenoSystemClient',\r\n [\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Params',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Domain/NumberGames/Scripts/Components/StatisticsComponentForGameClient',\r\n 'DanskeSpil/Domain/Keno/Scripts/Models/KenoGame',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoApi',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/RowNumbers',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/RowWinnings',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/RowNumbersHeader',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/KenoClassic/DeleteOverlay',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/PurchaseBar',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/SliderSelector',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/KenoSystem/SystemTable'\r\n ],\r\n function (Params, Overlay, StatisticsComponentForGameClient, KenoGame, KenoDictionary, KenoInfo, KenoApi, RowNumbers, RowWinnings, RowNumbersHeader, DeleteOverlay, PurchaseBar, SliderSelector, SystemTable) {\r\n\r\n // Client:\r\n var GameClient = function (m, settings, property) {\r\n\r\n // Variables:\r\n var d = KenoDictionary.get;\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n this.gameInstanceId = m.prop(Params.extract('gameInstanceId'));\r\n this.game = m.prop(KenoGame.setupGame({\r\n gameInstanceId: this.gameInstanceId(),\r\n playType: 'KenoSystem',\r\n systemLevel: 2\r\n }));\r\n this.deleteOverlay = m.prop(new Overlay(DeleteOverlay(d)));\r\n this.levels = m.prop([2, 3, 4, 5, 6, 7, 8, 9]);\r\n this.systemTables = m.prop();\r\n this.property = property;\r\n this.property('currentRow', 1);\r\n\r\n // Functions:\r\n this.level = function (level) {\r\n if (typeof level !== 'undefined' && level) {\r\n var previousLevel = this.game().systemLevel();\r\n\r\n if (previousLevel !== level) {\r\n this.game().systemLevel(level);\r\n this.game().save();\r\n\r\n m.redraw();\r\n }\r\n }\r\n\r\n return this.game().systemLevel();\r\n }.bind(this);\r\n\r\n this.rowClass = function () {\r\n var className = 'row-container row-number-1 in-focus';\r\n\r\n if (this.property('animate') === 'shake') {\r\n className += ' shake-state';\r\n }\r\n\r\n return className;\r\n }.bind(this);\r\n\r\n this.rowConfig = function ($element) {\r\n var self = this;\r\n var listenerOptions = { once: true };\r\n\r\n // Event function\r\n var onAnimationEnd = function (event) {\r\n // Remove listener\r\n event.target.removeEventListener('animationend', onAnimationEnd, listenerOptions);\r\n\r\n self.property('animate', '');\r\n m.redraw();\r\n };\r\n\r\n // Add listener\r\n $element.addEventListener('animationend', onAnimationEnd, listenerOptions);\r\n }.bind(this);\r\n\r\n // Functions required by PurchaseBar:\r\n this.purchase = function () {\r\n var game = this.game();\r\n\r\n // Only submit if we have added something to buy, or we selected \"Play as subscription\" ie. no draws selected\r\n if ((game.totalPrice() > 0 || game.numberOfDraws() === 0) && game.getRows().length > 0) {\r\n game.save();\r\n location.href = KenoInfo.data().confirmUrl + '?gameInstanceId=' + game.id();\r\n }\r\n }.bind(this);\r\n\r\n // Replace state:\r\n if (!this.gameInstanceId() != this.game().id()) {\r\n Params.set('gameInstanceId=' + this.game().id());\r\n }\r\n\r\n // Load system tables\r\n KenoApi.getKenoSystemTables().then(function (data) {\r\n this.systemTables(data);\r\n\r\n m.redraw();\r\n }.bind(this));\r\n\r\n },\r\n\r\n view: function (controller) {\r\n\r\n // Memoization:\r\n var game = controller.game();\r\n var systemLevel = game.systemLevel() + 1;\r\n\r\n // Return:\r\n return m('div', { class: 'keno-system-game' }, [\r\n m('div', { class: 'keno-level-slider-section' }, [\r\n StatisticsComponentForGameClient(controller, 'Keno'),\r\n settings.heading ? m('span', { class: 'game-heading' }, settings.heading) : null,\r\n !settings.heading && settings.svgIconName ? m('div', { class: 'game-heading' }, [\r\n m('svg', { class: settings.svgIconName }, [\r\n m('use', { class: settings.svgIconName, href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/SitecoreIcons.svg#' + settings.svgIconName })\r\n ])\r\n ]) : null,\r\n m('div', { class: 'headline' }, d('KenoSystem/LevelSelectorHeadline')),\r\n SliderSelector(controller, 'KenoSystem', controller.levels, controller.level)\r\n ]),\r\n m('div', { class: 'keno-section keno-system-game-section purchase-bar-container' }, [\r\n m('div', { class: 'keno-content-wrapper' }, [\r\n\r\n // Rows container:\r\n m('div', { class: 'rows-container' }, [\r\n\r\n // Row container:\r\n m('div', { class: controller.rowClass(), config: controller.rowConfig, onclick: m.redraw }, [\r\n\r\n // Header:\r\n m('div', { class: 'header-rules-text' }, systemLevel === 10 ? d('KenoSystem/RowHeaderDescriptionFull') : d('KenoSystem/RowHeaderDescription', { number: systemLevel })),\r\n\r\n // Numbers header:\r\n RowNumbersHeader(controller, 0),\r\n\r\n // Table container:\r\n m('div', { class: 'number-picker-container' }, RowNumbers(controller, 0))\r\n\r\n ])\r\n ]),\r\n\r\n // Purchase bar:\r\n !settings.subscriptionsMode ? PurchaseBar(controller) : null\r\n\r\n ])\r\n ]),\r\n !settings.subscriptionsMode ? RowWinnings(controller) : null,\r\n !settings.subscriptionsMode ? SystemTable(controller) : null\r\n ]);\r\n }\r\n };\r\n\r\n // Return:\r\n return root;\r\n\r\n };\r\n\r\n // Public functions:\r\n return GameClient;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Components/KenoSystem',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils',\r\n 'DanskeSpil/Domain/Keno/Scripts/Components/GameClients/KenoSystemClient'\r\n ],\r\n function (Component, KenoDictionary, KenoInfo, KenoUtils, KenoSystemClient) {\r\n\r\n // Component:\r\n Component('keno-system', [KenoDictionary, KenoInfo], function (m, route, settings, property) {\r\n\r\n // If no draw open, go to the closed page:\r\n if (!KenoInfo.data().openDraw) {\r\n KenoUtils.gotoKenoClosed();\r\n }\r\n\r\n // Components:\r\n var client = KenoSystemClient(m, settings, property);\r\n\r\n // Routes:\r\n route('/', client);\r\n\r\n });\r\n\r\n });","defineDs('DanskeSpil/Domain/Keno/Scripts/Components/KenoConfirmStep',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/AccountIntegration',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Confirm',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/ErrorOverlay',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils',\r\n 'DanskeSpil/Domain/Keno/Scripts/Models/KenoGame',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/ConfirmBar',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/ReceiveWinnerMessage',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/DataLayer',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n ],\r\n function (Component, AccountIntegration, Confirm, ErrorOverlay, Overlay, KenoDictionary, KenoInfo, KenoUtils, KenoGame, ConfirmBar, ReceiveWinnerMessage, DataLayer, Ensighten) {\r\n\r\n // Component:\r\n Component('keno-confirm', [AccountIntegration, KenoDictionary, KenoInfo], function (m, route, settings) {\r\n\r\n // Variables:\r\n var id = KenoUtils.getQueryParam('gameInstanceId');\r\n var rebuyCouponId = KenoUtils.getQueryParam('rebuyCouponId');\r\n var game;\r\n\r\n // Missing id:\r\n if (!id && !rebuyCouponId) {\r\n return;\r\n }\r\n\r\n if (rebuyCouponId && settings.returnToCompletedGamesOverviewLink) {\r\n var page = KenoUtils.getQueryParam('page') || 1;\r\n var period = KenoUtils.getQueryParam('period') || 365;\r\n var offset = KenoUtils.getQueryParam('offset') || 1;\r\n var type = KenoUtils.getQueryParam('type') || 'afsluttede';\r\n var channel = KenoUtils.getQueryParam('channel') || 'alle-kanaler';\r\n game = KenoGame.new({\r\n rebuyCouponId: rebuyCouponId,\r\n startUrl: settings.returnToCompletedGamesOverviewLink + '#/' + page + '/' + period + '/' + offset + '/' + type + '/' + channel\r\n });\r\n } else {\r\n game = KenoGame.get(id);\r\n }\r\n\r\n // Missing game:\r\n if (!game) {\r\n console.error('KenoConfirm: Game not found, id: ' + id);\r\n\r\n return;\r\n }\r\n\r\n // If no draw open, go to KenoClosed page\r\n if (!KenoInfo.data().openDraw) {\r\n KenoUtils.gotoKenoClosed(true);\r\n }\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n var self = this;\r\n\r\n this.askForDeposit = m.prop(false);\r\n this.game = m.prop(game);\r\n this.properties = m.prop({});\r\n this.openDraw = m.prop(KenoInfo.data().openDraw || null);\r\n this.d = KenoDictionary.get;\r\n this.loading = m.prop(false);\r\n this.notifyPrizeEmail = m.prop();\r\n this.notifyPrizeSms = m.prop();\r\n this.rebuyCouponNotFound = m.prop(false);\r\n this.showPrizeNotificationSection = m.prop(true);\r\n\r\n this.$rowsWrapperElement = m.prop(null);\r\n\r\n // Functions:\r\n this.confirmErrorOverlay = function (errorTexts) {\r\n return new Overlay(ErrorOverlay('keno-classic-game-overlay', errorTexts));\r\n }.bind(this);\r\n\r\n this.drawDate = function () {\r\n return m.trust(this.game().drawDateHtml(this.d('ConfirmStep/DrawDateTo')));\r\n }.bind(this);\r\n\r\n this.back = function () {\r\n location.href = this.game().cancelUrl();\r\n }.bind(this);\r\n\r\n this.confirm = function () {\r\n var self = this;\r\n\r\n if (!this.loading()) {\r\n this.loading(true);\r\n\r\n this.game().purchase({\r\n drawId: self.openDraw().id,\r\n notifyPrizeEmail: self.notifyPrizeEmail(),\r\n notifyPrizeSms: self.notifyPrizeSms()\r\n }).then(function () {\r\n self.loading(false);\r\n\r\n m.redraw();\r\n\r\n var receiptUrl = KenoInfo.data().receiptUrl + '?gameInstanceId=' + self.game().id();\r\n\r\n try {\r\n window.history.replaceState({}, self.d('ConfirmStep/ReceiptTitle'), receiptUrl);\r\n } catch (error) {\r\n // Nothing to handle here, just proceed to location.href\r\n }\r\n\r\n location.href = receiptUrl;\r\n }, function (data) {\r\n self.loading(false);\r\n\r\n m.redraw();\r\n\r\n Confirm.handlePurchaseError(self.game, (data && data.errorMessage) || null, self.showError);\r\n });\r\n }\r\n\r\n m.redraw(); // for applying \"pending\" state in view\r\n\r\n return false;\r\n }.bind(this);\r\n\r\n // Deposit flow:\r\n this.openDeposit = function () {\r\n AccountIntegration.openDeposit(this.game().totalPrice(), function () {\r\n location.href = this.game().cancelUrl();\r\n });\r\n }.bind(this);\r\n\r\n this.createRowNumberString = function (val) {\r\n return Array.prototype.slice.call(val).join(', ');\r\n };\r\n\r\n this.property = function (name, value) {\r\n var properties = this.properties();\r\n\r\n if (typeof value === 'undefined') {\r\n return properties[name];\r\n } else {\r\n properties[name] = value;\r\n\r\n this.properties(properties);\r\n }\r\n }.bind(this);\r\n\r\n this.showError = function (errorType) {\r\n var error = Confirm.getPurchaseError(errorType);\r\n var texts = {\r\n header: this.d('PurchaseErrors/' + error + 'Header'),\r\n body: this.d('PurchaseErrors/' + error + 'Body'),\r\n dismiss: this.d('PurchaseErrors/' + error + 'Dismiss')\r\n };\r\n\r\n this.confirmErrorOverlay(texts).show();\r\n }.bind(this);\r\n\r\n this.showExtraRows = function () {\r\n return function () {\r\n var $element = this.$rowsWrapperElement();\r\n var numberOfRows = $element.childNodes.length;\r\n var rowHeight = $element.firstChild.clientHeight;\r\n var rowsContainerHeight = numberOfRows * rowHeight;\r\n\r\n $element.style.maxHeight = rowsContainerHeight + 'px';\r\n $element.classList.add('expanded');\r\n }.bind(this);\r\n }.bind(this);\r\n\r\n // Game status class\r\n this.gameStatusClass = function () {\r\n return 'status-' + this.game().status();\r\n }.bind(this);\r\n\r\n if (this.game()) {\r\n m.startComputation();\r\n\r\n this.game().ready().promise.then(function () {\r\n Confirm.checkAuthAndBalance(self.game).then(function () {\r\n AccountIntegration.getUserData().then(function (customerInfo) {\r\n\r\n self.notifyPrizeEmail(customerInfo.notifyPrizeEMail || false);\r\n self.notifyPrizeSms(customerInfo.notifyPrizeSms || false);\r\n\r\n // Show if notification section if not already notified on either email or sms\r\n self.showPrizeNotificationSection(!self.notifyPrizeEmail() && !self.notifyPrizeSms());\r\n\r\n m.endComputation();\r\n });\r\n }, function (error) {\r\n if (error === 'ASK_FOR_DEPOSIT') {\r\n self.askForDeposit(true);\r\n\r\n // Add ensighten virtualPage event\r\n if (self.game) {\r\n var playType = DataLayer.categoryName(self.game().playType());\r\n Ensighten.pushVirtualPage('tank_op', playType + '/tank_op', 'notEnoughCreditPage');\r\n }\r\n\r\n m.endComputation();\r\n }\r\n });\r\n }, function () {\r\n self.rebuyCouponNotFound(true);\r\n\r\n m.endComputation();\r\n });\r\n }\r\n\r\n // Push addToCart event to dataLayer:\r\n this.game().ready().promise.then(function () {\r\n game.trackingAddToCart();\r\n });\r\n\r\n this.toggleCollapsible = function (ev) {\r\n ev.currentTarget.parentElement.classList.toggle('confirm-page__collapsible--show');\r\n };\r\n },\r\n\r\n view: function (controller) {\r\n\r\n // Rebuy coupon not found:\r\n if (controller.rebuyCouponNotFound()) {\r\n controller.confirm = null;\r\n return m('div', { class: 'keno-confirm ' + controller.gameStatusClass() }, [\r\n m('div', { class: 'keno-section confirm-bar-container' }, [\r\n m('div', { class: 'keno-content-wrapper keno-row-display' }, [\r\n m('div', { class: 'keno-confirm-page-header' }, [\r\n m('h3', { class: 'row-title' }, controller.d('ConfirmStep/RebuyCouponNotFoundTitle')),\r\n m('p', { class: 'alt-text' }, controller.d('ConfirmStep/RebuyCouponNotFoundDescription'))\r\n ]),\r\n ConfirmBar(controller)\r\n ])\r\n ])\r\n ]);\r\n }\r\n\r\n // Deposit flow:\r\n if (controller.askForDeposit()) {\r\n return m('div', { class: 'keno-confirm ' + controller.gameStatusClass() }, [\r\n m('div', { class: 'keno-section confirm-bar-container' }, [\r\n m('div', { class: 'keno-content-wrapper keno-row-display' }, [\r\n m('div', { class: 'keno-confirm-page-header' }, [\r\n m('h3', { class: 'row-title' }, controller.d('ConfirmStep/DepositHeader')),\r\n m('p', { class: 'alt-text' }, controller.d('ConfirmStep/DepositText')),\r\n m('a', { class: 'btn cta cta-deposit', onclick: controller.openDeposit }, controller.d('ConfirmStep/DepositButton'))\r\n ])\r\n ])\r\n ])\r\n ]);\r\n }\r\n\r\n // If no game object:\r\n if (!controller.game()) {\r\n return m('div', { class: 'keno-confirm' }, [\r\n m('div', { class: 'keno-section confirm-bar-container' + (settings.topManchete || settings.bottomManchete ? ' manchete' : '') + (settings.topManchete ? ' top' : '') + (settings.bottomManchete ? ' bot' : '') }, [\r\n m('div', { class: 'keno-content-wrapper keno-row-display' }, [\r\n m('p', { class: 'alt-text' }, controller.d('ConfirmStep/GameInstanceNotFound'))\r\n ])\r\n ])\r\n ]);\r\n }\r\n\r\n // View\r\n\r\n\r\n var rows = game.getRowsSummary();\r\n var gameDrawDates = game.drawDates();\r\n\r\n // Return:\r\n return m('.confirm-page__content', {\r\n class: controller.gameStatusClass(),\r\n 'data-uitest-id': 'Confirm__content'\r\n }, [\r\n // title.\r\n m('.confirm-page__title', m.trust(controller.d('ConfirmPage/Title', {\r\n playType: controller.d('PlayTypes/' + game.playType(), game.playType() === 'KenoSystem' ? { level: game.systemLevel() } : {})\r\n }))),\r\n\r\n // draw dates.\r\n gameDrawDates.length > 0 ? m('.confirm-page__collapsible.confirm-page__collapsible--can-open', {\r\n 'data-uitest-id': 'Confirm__collapsible--draw-dates'\r\n }, [\r\n m('.confirm-page__collapsible-top', {\r\n onclick: controller.toggleCollapsible,\r\n 'data-uitest-id': 'Confirm__collapsible--draw-dates-toggle'\r\n }, [\r\n m('.confirm-page__collapsible-top-row', [\r\n m('.confirm-page__collapsible-top-row-icon',\r\n m('svg.confirm-page__collapsible-icon-draw', m('use', {\r\n href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesCommonIcons.svg#keno-draw'\r\n }))\r\n ),\r\n m('.confirm-page__collapsible-top-row-highlight-text', controller.d('ConfirmPage/TableDraw')),\r\n m('.confirm-page__collapsible-top-row-text', {\r\n 'data-uitest-id': 'Confirm__collapsible--draw-dates-date'\r\n }, game.drawDateHtmlShort()),\r\n ])\r\n ]),\r\n m('.confirm-page__collapsible-bottom', [\r\n m('.confirm-page__table', [\r\n gameDrawDates.map(function (date, i) {\r\n return m('.confirm-page__table-row', [\r\n m('.confirm-page__table-cell.confirm-page__table-cell--index', (i + 1) + '.'),\r\n m('.confirm-page__table-cell', {\r\n 'data-uitest-id': 'Confirm__collapsible--draw-dates-date'\r\n }, KenoUtils.getLongDate(date.draw))\r\n ]);\r\n })\r\n ])\r\n ])\r\n ]) : null,\r\n\r\n // price per row.\r\n game.stakePerRow()\r\n ? m('.confirm-page__collapsible', {\r\n 'data-uitest-id': 'Confirm__collapsible--price-per-row'\r\n },\r\n m('.confirm-page__collapsible-top',\r\n m('.confirm-page__collapsible-top-row', [\r\n m('.confirm-page__collapsible-top-row-icon',\r\n m('svg.confirm-page__collapsible-icon-stake-per-row', m('use', {\r\n href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesCommonIcons.svg#keno-stake-per-row'\r\n }))\r\n ),\r\n m('.confirm-page__collapsible-top-row-highlight-text', controller.d('ConfirmPage/StakePerRow')),\r\n m('.confirm-page__collapsible-top-row-text', {\r\n 'data-uitest-id': 'Confirm__collapsible--price-per-row-price'\r\n }, KenoUtils.formatCurrency(game.stakePerRow())),\r\n ])\r\n )\r\n ) : null,\r\n\r\n // rows.\r\n rows.length > 0 ? m('.confirm-page__collapsible.confirm-page__collapsible--can-open', {\r\n 'data-uitest-id': 'Confirm__collapsible--rows'\r\n }, [\r\n m('.confirm-page__collapsible-top', {\r\n onclick: controller.toggleCollapsible,\r\n 'data-uitest-id': 'Confirm__collapsible--rows-toggle'\r\n }, [\r\n m('.confirm-page__collapsible-top-row', [\r\n m('.confirm-page__collapsible-top-row-icon',\r\n m('svg.confirm-page__collapsible-icon-rows', m('use', {\r\n href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesCommonIcons.svg#keno-rows'\r\n }))\r\n ),\r\n m('.confirm-page__collapsible-top-row-highlight-text', controller.d('ConfirmPage/TableRows')),\r\n m('.confirm-page__collapsible-top-row-text', {\r\n 'data-uitest-id': 'Confirm__collapsible--rows-rows'\r\n }, game.getRowAmount()),\r\n ])\r\n ]),\r\n m('.confirm-page__collapsible-bottom', [\r\n game.playType() === 'System'\r\n ? [\r\n m('.confirm-page__table-header', m.trust(controller.d('ConfirmPage/TableChosenSystemNumbers')) + ':'),\r\n m('.confirm-page__table', [\r\n m('.confirm-page__table-row',\r\n m('.confirm-page__table-cell.confirm-page__table-cell--center', { 'data-uitest-id': 'Confirm__collapsible--rows-row' },\r\n game.rows()[0].numbers.map(function (val) {\r\n return val.number;\r\n }).join(', ')\r\n )\r\n )\r\n ])\r\n ]\r\n : m('.confirm-page__table', [\r\n rows.map(function (val, i) {\r\n return m('.confirm-page__table-row', [\r\n m('.confirm-page__table-cell.confirm-page__table-cell--index', (i + 1) + '.'),\r\n m('.confirm-page__table-cell', {\r\n 'data-uitest-id': 'Confirm__collapsible--rows-row'\r\n }, val.join(', ')),\r\n\r\n game.playType() === 'Classic' ?\r\n m('.confirm-page__table-cell-icon-delete',\r\n {\r\n onclick: controller.deleteRow.bind(controller, i + 1),\r\n 'data-uitest-id': 'Confirm__collapsible--rows-classic-row-delete'\r\n },\r\n m('svg', m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-x' }))\r\n ) : null,\r\n ]);\r\n })\r\n ]),\r\n ])\r\n ]) : null,\r\n\r\n // days.\r\n game.numberOfDraws()\r\n ? m('.confirm-page__collapsible', {\r\n 'data-uitest-id': 'Confirm__collapsible--days'\r\n },\r\n m('.confirm-page__collapsible-top',\r\n m('.confirm-page__collapsible-top-row', [\r\n m('.confirm-page__collapsible-top-row-icon', m('svg.confirm-page__collapsible-icon-calendar', m('use', {\r\n href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesCommonIcons.svg#keno-calendar'\r\n }))),\r\n m('.confirm-page__collapsible-top-row-highlight-text', controller.d('ConfirmPage/TableDays')),\r\n m('.confirm-page__collapsible-top-row-text', {\r\n 'data-uitest-id': 'Confirm__collapsible--days-days'\r\n }, game.numberOfDraws()),\r\n ])\r\n )\r\n ) : null,\r\n\r\n // total.\r\n game.totalPrice() ? m('.confirm-page__total', {\r\n 'data-uitest-id': 'Confirm__collapsible--total'\r\n }, [\r\n m('.confirm-page__total-label', controller.d('ConfirmPage/TableTotal')),\r\n m('.confirm-page__total-amount', {\r\n 'data-uitest-id': 'Confirm__collapsible--total-amount'\r\n }, KenoUtils.formatCurrency(game.totalPrice())),\r\n ]) : null,\r\n\r\n // terms and conditions.\r\n m('.confirm-page__terms', {\r\n 'data-uitest-id': 'Confirm__terms'\r\n }, [\r\n controller.d('ConfirmPage/GameVendor')\r\n ? controller.d('ConfirmPage/GameVendor')\r\n : null,\r\n\r\n controller.d('ConfirmPage/GameVendor') && controller.d('ConfirmPage/TermsLink') && controller.d('ConfirmPage/ViewTerms')\r\n ? m('span', ' - ') : '',\r\n\r\n controller.d('ConfirmPage/TermsLink') && controller.d('ConfirmPage/ViewTerms')\r\n ? m('a', {\r\n href: controller.d('ConfirmPage/TermsLink')\r\n }, controller.d('ConfirmPage/ViewTerms'))\r\n : null\r\n ]),\r\n\r\n // show price notification.\r\n controller.showPrizeNotificationSection() ? ReceiveWinnerMessage(controller, 'keno', '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/KenoCommonIcons.svg#' + settings.iconUrl) : '',\r\n\r\n // confirm bar.\r\n ConfirmBar(controller),\r\n ]);\r\n }\r\n };\r\n\r\n\r\n // Setup routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Components/KenoReceiptStep',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Countdown',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/CouponOverlay',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n 'DanskeSpil/Domain/Keno/Scripts/Models/KenoGame',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/AccountIntegration'\r\n ],\r\n function (Component, Countdown, CouponOverlay, Overlay, KenoDictionary, KenoUtils, KenoInfo, KenoGame, AccountIntegration) {\r\n\r\n // Component:\r\n Component('keno-receipt', [AccountIntegration, KenoDictionary, KenoInfo], function (m, route, settings) {\r\n\r\n // Variables:\r\n var d = KenoDictionary.get;\r\n var id = KenoUtils.getQueryParam('gameInstanceId');\r\n\r\n // Missing id:\r\n if (!id) {\r\n return;\r\n }\r\n\r\n var game = KenoGame.get(id);\r\n\r\n // Missing game:\r\n if (!game) {\r\n console.error('KenoReceiptStep: Game not found, id: ' + id);\r\n\r\n return;\r\n }\r\n\r\n // If no draw open, go to KenoClosed page\r\n if (!KenoInfo.data().openDraw) {\r\n KenoUtils.gotoKenoClosed();\r\n }\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables\r\n this.game = m.prop(game);\r\n this.options = m.prop(settings || []);\r\n this.couponOverlay = m.prop(new Overlay(CouponOverlay('keno-coupon-overlay', this.game().couponId(), { printButton: d('KenoReceiptStep/CouponOverlay/printButton'), closeButton: d('KenoReceiptStep/CouponOverlay/closeButton') })));\r\n\r\n // Functions\r\n this.back = function () {\r\n window.history.go(-1);\r\n };\r\n\r\n this.gotoCoupon = function () {\r\n this.couponOverlay().show();\r\n return false;\r\n }.bind(this);\r\n\r\n var playType = d('PlayTypes/' + this.game().playType(), this.game().playType() == 'KenoSystem' ? { level: this.game().systemLevel() } : {});\r\n var totalPrice = this.game().totalPrice();\r\n var rows = this.game().getRows().length;\r\n var draws = this.game().numberOfDraws();\r\n var firstName;\r\n var lastName;\r\n var userName;\r\n\r\n AccountIntegration.getUserData().then(function (userData) {\r\n firstName = userData.firstName;\r\n lastName = userData.lastName;\r\n userName = userData.userName;\r\n });\r\n\r\n this.heading = d('KenoReceiptStep/Heading', {\r\n rows: this.game().playType() == 'KenoSystem' ? this.game().getSystemCombinationAmount() : rows,\r\n playType: playType,\r\n totalPrice: totalPrice,\r\n draws: draws,\r\n firstName: firstName,\r\n lastName: lastName,\r\n userName: userName\r\n });\r\n\r\n var draw = KenoInfo.data().openDraw;\r\n var drawDate = draw ? KenoUtils.parseISO8601(draw.closingTime).dateObject : null;\r\n this.countdownOptions = {\r\n countdownTime: drawDate ? drawDate.getTime() / 1000 : 0,\r\n dictionary: d,\r\n disabled: settings.isCountdownDisabled,\r\n noOpenDraw: false\r\n };\r\n\r\n if (this.game().status() == 'completed') {\r\n\r\n // Update balance in UI\r\n AccountIntegration.triggerBalanceUpdate();\r\n\r\n // Ecommerce tracking\r\n this.game().trackPurchase();\r\n }\r\n\r\n // If user logs out - redirect to Keno frontpage\r\n window.DSAPI && DSAPI.ready(function () {\r\n DSAPI.Account.subscribeUserLoggedOut({\r\n callback: function () {\r\n location.href = (KenoInfo.data().confirmUrl || '').split('/').slice(0, -1).join('/');\r\n }\r\n });\r\n });\r\n },\r\n\r\n view: function (controller) {\r\n\r\n return m('.keno-receipt', [\r\n m('.countdown-wrapper', [\r\n m('.keno-section.bg-white', [\r\n m('.keno-content-wrapper', [\r\n m('.receipt-confirmation', [\r\n settings.SelectedIconString != '' ?\r\n m('svg', { class: (settings.SelectedIconString != '' ? settings.SelectedIconString : 'checkmark-in-circle') }, [\r\n m('use', { class: (settings.SelectedIconString != '' ? settings.SelectedIconString : 'checkmark-in-circle'), href: '/Components/DanskeSpil/Domain/Keno/Graphics/SpriteSheets/SitecoreIcons.svg#' + (settings.SelectedIconString != '' ? settings.SelectedIconString : '') })\r\n ])\r\n : '',\r\n m('p.p.word-width-limit', controller.heading),\r\n m('p.p.word-width-limit', [\r\n m('a.a', { onclick: controller.gotoCoupon }, d('KenoReceiptStep/GotoCoupon'))\r\n ]),\r\n ]),\r\n m('hr', { class: 'hr mediumblue' }),\r\n Countdown(controller.countdownOptions)\r\n ])\r\n ])\r\n ])\r\n ]);\r\n\r\n }\r\n };\r\n\r\n // Setup Routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Components/KenoWinningNumbers',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/NumberGames/Scripts/Templates/DatePicker',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoApi',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/RowNumber',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/SliderSelector',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/DOMUtils'\r\n ],\r\n function (Component, DatePicker, KenoApi, KenoInfo, KenoDictionary, KenoUtils, RowNumber, SliderSelector, DOMUtils) {\r\n\r\n // Component:\r\n Component('keno-winning-numbers', [KenoDictionary, KenoInfo], function (m, route, settings, property) {\r\n\r\n // Variables:\r\n var hasTouch = 'ontouchstart' in window;\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n\r\n var activeClassName = 'active';\r\n\r\n // Utilities:\r\n\r\n var onNumberDown = function (event) {\r\n // Add active class\r\n event.target.classList.add(activeClassName);\r\n };\r\n\r\n var onNumberUp = function (event) {\r\n var number = parseInt(event.target.dataset.number, 10);\r\n\r\n // Remove active class\r\n event.target.classList.remove(activeClassName);\r\n\r\n // Alias controller property\r\n var selectedNumbers = self.selectedNumbers();\r\n\r\n if (selectedNumbers.indexOf(number) === -1) {\r\n // Add to selected numbers array\r\n selectedNumbers.push(number);\r\n } else {\r\n // Remove from selected numbers array\r\n selectedNumbers.splice(selectedNumbers.indexOf(number), 1);\r\n }\r\n\r\n // Update selected numbers\r\n self.selectedNumbers(selectedNumbers);\r\n\r\n // Redraw view\r\n m.redraw();\r\n };\r\n\r\n // Variables:\r\n var self = this;\r\n\r\n this.d = KenoDictionary.get;\r\n\r\n this.dropdownActive = m.prop(false);\r\n this.loading = m.prop(true);\r\n this.numbers = m.prop([2, 3, 4, 5, 6, 7, 8, 9, 10]);\r\n this.numbersValue = m.prop(9);\r\n this.property = property;\r\n this.stakes = m.prop([5, 10, 20, 50, 100]);\r\n this.stakesValue = m.prop(5);\r\n this.winningNumbers = m.prop([]);\r\n this.winnerCategories = m.prop([]);\r\n this.selectedNumbers = m.prop([]);\r\n\r\n this.property = property;\r\n this.setings = settings;\r\n this.completedDrawsDates = m.prop([]);\r\n this.completedDrawsDatesWithDrawNr = m.prop([]);\r\n this.selectedDrawDate = m.prop();\r\n this.selectedDrawNr = m.prop();\r\n this.isDatepickerOpened = m.prop(false);\r\n\r\n // Functions:\r\n this.getWinningNumbers = function () {\r\n var self = this;\r\n\r\n this.loading(true);\r\n\r\n KenoApi.getWinningNumbers({ drawId: self.selectedDrawNr() }).then(function (data) {\r\n self.winningNumbers(data.winningNumbers || []);\r\n self.winnerCategories(data.winnerCategories || []);\r\n self.selectedNumbers([]);\r\n self.loading(false);\r\n m.redraw();\r\n });\r\n }.bind(this);\r\n\r\n this.selectDate = function (date) {\r\n this.selectedDrawDate(date);\r\n this.selectedDrawNr(this.completedDrawsDatesWithDrawNr().filter(function (obj) {\r\n return obj.date === date;\r\n })[0].value);\r\n\r\n this.getWinningNumbers();\r\n }.bind(this);\r\n\r\n this.createNumberConfig = function (number) {\r\n var addedListeners = false;\r\n\r\n return function ($numberElement) {\r\n $numberElement.dataset.number = number;\r\n\r\n if (addedListeners) {\r\n return;\r\n }\r\n\r\n addedListeners = true;\r\n\r\n DOMUtils.addEventListeners($numberElement, hasTouch ? 'touchstart' : 'mousedown', onNumberDown);\r\n\r\n DOMUtils.addEventListeners($numberElement, hasTouch ? 'touchend' : 'mouseup', onNumberUp);\r\n };\r\n };\r\n\r\n this.isWinningNumbersReady = function () {\r\n // Returns true if selected draw is loaded and have winningNumbers\r\n return !this.loading() && this.selectedDrawDate() && this.winningNumbers() && this.winningNumbers().length > 0;\r\n }.bind(this);\r\n\r\n\r\n // Context:\r\n KenoApi.getCompletedDraws().then(function (draws) {\r\n var completedDraws = [];\r\n var completedDrawsWithDrawNr = [];\r\n for (var i = 0; i < draws.length; i++) {\r\n completedDraws.push(draws[i].date.substring(0, 10));\r\n completedDrawsWithDrawNr.push({ date: draws[i].date.substring(0, 10), value: draws[i].drawNo });\r\n }\r\n\r\n this.completedDrawsDates(completedDraws);\r\n this.selectedDrawDate(completedDraws[0]);\r\n this.completedDrawsDatesWithDrawNr(completedDrawsWithDrawNr);\r\n this.loading(false);\r\n this.getWinningNumbers();\r\n }.bind(this));\r\n\r\n },\r\n\r\n view: function (controller) {\r\n\r\n var correctNumbers = controller.winningNumbers().filter(function (number) {\r\n return controller.selectedNumbers().indexOf(number) > -1;\r\n });\r\n\r\n // For extracing how many winners\r\n var winnerGroup = (controller.winnerCategories().filter(function (item) {\r\n return item.numbersPlayed == controller.numbersValue();\r\n }))[0] || { winners: [] };\r\n\r\n // For extracing how much won\r\n var prizeGroup = KenoInfo.getPrizeGroups(controller.numbersValue());\r\n\r\n return [\r\n m('section', { class: 'keno-section bg-white' + (settings.topManchete ? ' manchete top' : '') }, [\r\n m('div', { class: 'box-wide keno-content-wrapper bring-to-front' }, [\r\n m('div', { class: 'select-date-section' }, [\r\n\r\n // Dropdown:\r\n m('h2', { class: 'hd bold royalblue' }, controller.d('Winnings/ChooseDate')),\r\n (controller.selectedDrawDate() && (controller.completedDrawsDates().length > 0)) ? DatePicker(controller) : null\r\n\r\n ]),\r\n m('div', { class: 'ticket-config blue-select-bar' }, [\r\n m('div', { class: 'box-half' }, [\r\n m('h3', { class: 'hd bold royalblue' }, controller.d('Winnings/ChoosePlayedNumbers')),\r\n SliderSelector(controller, 'PlayedNumbers', controller.numbers, controller.numbersValue)\r\n ]),\r\n m('div', { class: 'box-half' }, [\r\n m('h3', { class: 'hd bold royalblue' }, controller.d('Winnings/ChooseStakePerRow')),\r\n SliderSelector(controller, 'StakePerRow', controller.stakes, controller.stakesValue)\r\n ])\r\n ]),\r\n m('div', { class: 'numbers-box' }, [\r\n m('h3', { class: 'hd bold royalblue' }, controller.d('Winnings/' + (controller.loading() ? 'Loading' : controller.isWinningNumbersReady() ? 'ChooseWinningNumbers' : 'WinningNumbersNotReady'))),\r\n\r\n !controller.loading() ? m('div', { class: 'number-picker-container' }, [\r\n controller.winningNumbers().map(function (number) {\r\n return RowNumber(number, controller.selectedNumbers().indexOf(number) > -1 ? ' selected' : '', controller.createNumberConfig(number));\r\n })\r\n ]) : ''\r\n\r\n ])\r\n ]),\r\n ]),\r\n\r\n // Show only table if ready\r\n controller.isWinningNumbersReady() ?\r\n\r\n m('section', { class: 'keno-section bg-superlightblue' }, [\r\n m('div', { class: 'box-wide keno-content-wrapper' }, [\r\n\r\n m('table', { class: 'blue-table' }, [\r\n\r\n m('thead', { class: 'smaller-font-size' }, [\r\n m('tr', [\r\n m('th', { colspan: '3' }, controller.d('Winnings/PrizeTableHeader', { numbers: controller.numbersValue(), date: controller.selectedDrawDate() }))\r\n ])\r\n ]),\r\n\r\n m('tbody', [\r\n\r\n m('tr', [\r\n m('th', controller.d('Winnings/PrizeTableHeaderCorrectNumbers')),\r\n m('th', controller.d('Winnings/PrizeTableHeaderWinners')),\r\n m('th', controller.d('Winnings/PrizeTableHeaderPrize', { stake: controller.stakesValue() }))\r\n ]),\r\n\r\n winnerGroup.winners.map(function (prize) {\r\n return m('tr' + (prize.correctNumbers == correctNumbers.length ? '.selected' : ''), [\r\n m('td', controller.d('Winnings/PrizeTableCellCorrectNumbers', { correctNumbers: prize.correctNumbers })),\r\n m('td', prize.winnerCount),\r\n m('td', KenoUtils.formatCurrency(controller.stakesValue() * prizeGroup[prize.correctNumbers]))\r\n ]);\r\n })\r\n\r\n\r\n ])\r\n ]),\r\n\r\n ])\r\n ])\r\n : ''\r\n ];\r\n\r\n }\r\n };\r\n\r\n // Setup routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Components/KenoFaqSelector',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/SelectDropdown',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n ],\r\n function (Component, SelectDropdown, Ensighten) {\r\n\r\n // Component:\r\n Component('keno-faq-selector', [], function (m, route, settings) {\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Utilities:\r\n var filterNodeList = function (nodeList, attributeKey, attributeValue) {\r\n var nodeArray = Array.from(nodeList);\r\n return nodeArray.filter(function (node) {\r\n return node.getAttribute(attributeKey) === attributeValue;\r\n });\r\n };\r\n\r\n // Variables:\r\n var $panels = document.querySelectorAll('.panel, .panel > div') || [];\r\n\r\n this.options = m.prop(settings || []);\r\n this.selectedOption = m.prop(this.options()[0] || '');\r\n\r\n // Functions:\r\n this.selectQuestion = function (item) {\r\n this.selectedOption(item);\r\n\r\n // Get content by `data-panelname`\r\n var $selectedContent = filterNodeList($panels, 'data-panelname', item.value)[0];\r\n\r\n // Return if no content match is found\r\n if (!$selectedContent) {\r\n return;\r\n }\r\n\r\n // Determine if content is panel\r\n var contentIsPanel = $selectedContent.classList.contains('panel');\r\n\r\n // Get content panel\r\n var $selectedPanel = contentIsPanel ? $selectedContent : $selectedContent.parentNode;\r\n\r\n // Display selected panel\r\n $panels.forEach(function (element) {\r\n element.classList.remove('is-displayed');\r\n });\r\n $selectedPanel.classList.add('is-displayed');\r\n\r\n // Scroll to non-panel content\r\n if (!contentIsPanel) {\r\n var currentPos = window.pageYOffset;\r\n var scrollOffset = $selectedContent.getBoundingClientRect().top;\r\n var bufferTolerance = 100;\r\n var newPosition = scrollOffset + currentPos - bufferTolerance;\r\n\r\n window.scroll({ top: newPosition, behavior: 'smooth' });\r\n }\r\n\r\n // Track panel change\r\n Ensighten.pushVirtualPage(item.name, item.name.replace(/ /g, '-').toLowerCase());\r\n\r\n }.bind(this);\r\n\r\n // Setup:\r\n if (this.selectedOption()) {\r\n this.selectQuestion(this.selectedOption());\r\n }\r\n\r\n },\r\n\r\n view: function (controller) {\r\n return SelectDropdown(controller, controller.options, controller.selectedOption, controller.selectQuestion);\r\n }\r\n\r\n };\r\n\r\n // Setup routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Components/KenoFaqPrizes',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/SelectDropdown',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoUtils',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/CollapsibleSection'\r\n ],\r\n function (Component, SelectDropdown, KenoInfo, KenoDictionary, KenoUtils, CollapsibleSection) {\r\n\r\n // Component:\r\n Component('keno-faq-prizes', [KenoDictionary, KenoInfo], function (m, route, settings) {\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n this.d = KenoDictionary.get;\r\n this.loading = m.prop(true);\r\n this.numbers = m.prop([2, 3, 4, 5, 6, 7, 8, 9, 10]);\r\n this.numbersValue = m.prop(2);\r\n this.stakes = m.prop(KenoInfo.getStakeOptions().map(function (item) { return { name: '' + item + ' kr', value: item }; }));\r\n this.stakesValue = m.prop(this.stakes()[0]);\r\n\r\n },\r\n\r\n view: function (controller) {\r\n return [\r\n\r\n m('.keno-section.bg-superlightblue', [\r\n\r\n // Info and dropdown:\r\n m('h2.hd', settings.headline || ''),\r\n m('p', settings.infoText || ''),\r\n m('.stake-selector', SelectDropdown(controller, controller.stakes, controller.stakesValue, controller.stakesValue)),\r\n ]),\r\n\r\n m('.keno-section.bg-superlightblue', [\r\n\r\n // Tables\r\n [10, 9, 8, 7, 6, 5, 4, 3, 2].map(function (no) {\r\n var prizeGroup = KenoInfo.getPrizeGroups(no);\r\n var keys = Object.keys(prizeGroup).reverse();\r\n var prizeGroupMarkup = [];\r\n\r\n for (var i = 0; i < keys.length ; i++) {\r\n var key = keys[i];\r\n var amount = prizeGroup[key];\r\n\r\n prizeGroupMarkup.push(m('tr', [\r\n m('td', key),\r\n m('td', KenoUtils.formatCurrency(amount * controller.stakesValue().value)),\r\n\r\n i == 0 ? m('td', { rowspan: keys.length }, controller.d('FaqPrizes/TableChanceRatio', { ratio: KenoInfo.getChanceRatio(no) })) : null,\r\n ]));\r\n }\r\n\r\n return CollapsibleSection('table-' + no, {\r\n expand: controller.d('FaqPrizes/ExpandButton'),\r\n hide: controller.d('FaqPrizes/CompactButton'),\r\n hideOnMobile: false\r\n }, [\r\n m('table', { class: 'blue-table' }, [\r\n m('thead', { class: 'smaller-font-size' }, [\r\n m('tr', [\r\n m('th', { colspan: 3 }, controller.d('FaqPrizes/TableHeader', { numbers: no }))\r\n ])\r\n ]),\r\n m('tbody', [\r\n m('tr', [\r\n m('th', controller.d('FaqPrizes/TableHeaderCorrectNumbers')),\r\n m('th', controller.d('FaqPrizes/TableHeaderPrizeAmount')),\r\n m('th', controller.d('FaqPrizes/TableHeaderWinningProbability')),\r\n ]),\r\n prizeGroupMarkup\r\n ])\r\n ])\r\n ]);\r\n })\r\n\r\n ])\r\n\r\n ];\r\n\r\n }\r\n };\r\n\r\n // Setup routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/Components/KenoGameClosed',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoDictionary',\r\n 'DanskeSpil/Domain/Keno/Scripts/Helpers/KenoInfo',\r\n 'DanskeSpil/Domain/Keno/Scripts/Templates/NoOpenDraw'\r\n ],\r\n function (Component, KenoDictionary, KenoInfo, NoOpenDraw) {\r\n\r\n // Component:\r\n Component('keno-game-closed', [KenoDictionary, KenoInfo], function (ignoredM, route) {\r\n\r\n // Feed check:\r\n if (!KenoInfo.isFeedDown() && !KenoInfo.noOpenDraw()) {\r\n location.href = '/keno';\r\n return;\r\n }\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n },\r\n\r\n view: function (controller) {\r\n return NoOpenDraw(controller);\r\n }\r\n\r\n };\r\n\r\n // Setup routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n\r\n","defineDs('DanskeSpil/Domain/Keno/Scripts/NonMithril/KenoTop', function () {\r\n\r\n // Variables:\r\n var $video = document.querySelector('.keno-top-spot .keno-video');\r\n\r\n var setVideoState = function () {\r\n $video.classList.remove('is-loading');\r\n $video.classList.add('can-playthrough');\r\n };\r\n\r\n // Context:\r\n if ($video) {\r\n $video.addEventListener('canplaythrough', function () {\r\n setVideoState();\r\n }, false);\r\n\r\n // If the video is in the cache of the browser,\r\n // the 'canplaythrough' event might have been triggered\r\n // before we registered the event handler.\r\n if ($video.readyState > 3) {\r\n setVideoState();\r\n }\r\n }\r\n\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialFooter',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n ],\r\n function (m) {\r\n return function ({ title, text, footerElements, style, activate = true }) {\r\n return m('.tutorial-footer', {\r\n class: activate ? '' : 'tutorial-footer--disable'\r\n },\r\n m('.tutorial-footer-inner', [\r\n m('.tutorial-footer__text-wrapper', [\r\n m('.tutorial-footer__title', { style }, title),\r\n m('.tutorial-footer__text', m.trust(text))\r\n ]),\r\n m('.tutorial-footer__footerElement', footerElements ? footerElements.map(function (footerElement) {\r\n return m('.tutorial-footer__footerElement-wrapper', [\r\n m('.tutorial-footer__footerElement-image-wrapper',\r\n m('img.tutorial-footer__footerElement-image', {\r\n src: footerElement.image\r\n })\r\n ),\r\n m('a.tutorial-footer__footerElement-text-wrapper', {\r\n href: footerElement.helpLink.Url\r\n }, [\r\n m('.tutorial-footer__footerElement-title', footerElement.title),\r\n m('.tutorial-footer__footerElement-text', footerElement.helpLink.Text)\r\n ]),\r\n ]);\r\n }) : null)\r\n ])\r\n );\r\n };\r\n });\r\n","defineDs('DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialNavigation',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n ],\r\n function (m) {\r\n return function (settings) {\r\n var currentUrl = m.route.param('tutorial');\r\n return settings.mostVisitedList.length > 0 ? m('.tutorial-navbar', [\r\n m('.tutorial-navbar-label', settings.mostVisitedLabel),\r\n m('.tutorial-navbar-cave',\r\n m('.tutorial-navbar-cave-inner')\r\n ),\r\n m('.tutorial-navbar-container', {\r\n onscroll: function (event) {\r\n var container = event.target;\r\n var cave = document.querySelector('.tutorial-navbar-cave');\r\n if (container.scrollLeft) cave.classList.add('tutorial-navbar-cave--open');\r\n else cave.classList.remove('tutorial-navbar-cave--open');\r\n }\r\n }, [\r\n m('.tutorial-navbar-navs', settings.mostVisitedList.map(function (tutorial) {\r\n return m('a.tutorial-navbar-nav', {\r\n class: currentUrl === tutorial.safeTitle ? 'tutorial-navbar-nav--hide' : '',\r\n href: tutorial.urlPrefix + '/' + tutorial.safeTitle,\r\n config: m.route\r\n }, tutorial.title);\r\n }))\r\n ])\r\n ]) : null;\r\n };\r\n });\r\n","defineDs('DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialHero',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n ],\r\n function (m) {\r\n return function ({ title, style, isButtonVisible = true, activate = true, onclick = () => {} }) {\r\n return m('.tutorial__hero', {\r\n class: activate ? '' : 'tutorial__hero--disable'\r\n }, [\r\n isButtonVisible ? m('a.tutorial__hero-arrow', {\r\n href: '/',\r\n config: m.route,\r\n onclick\r\n }) : null,\r\n m('.tutorial__hero-title', { style }, m.trust(title)),\r\n ]);\r\n };\r\n });\r\n","defineDs('DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialSearchBar',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n ],\r\n function (m) {\r\n return function (controller) {\r\n\r\n var updateSearchQuery = function (value) {\r\n controller.searchQuery(value);\r\n controller.filteredTutorials(controller.allTutorials.filter(matchTutorialTitleWithSearchQuery));\r\n }.bind(this);\r\n\r\n var collapseCategories = function () {\r\n document.querySelectorAll('.tutorial__category--show').forEach(function (category) {\r\n category.classList.remove('tutorial__category--show');\r\n });\r\n }.bind(this);\r\n\r\n var matchTutorialTitleWithSearchQuery = function (tutorial) {\r\n if (!controller.searchQuery()) return false;\r\n\r\n var textToSearch = tutorial.title + tutorial.subtitle;\r\n if (tutorial.urlPrefix === '/simple' && tutorial.richText) {\r\n var firstOpeningParagraphTagIndex = tutorial.richText.indexOf('

');\r\n var lastClosingParagraphTagIndex = tutorial.richText.lastIndexOf('

');\r\n var searchableRichText = tutorial.richText.slice(firstOpeningParagraphTagIndex, lastClosingParagraphTagIndex);\r\n searchableRichText = searchableRichText.replace(/(<([^>]+)>)/gi, '');\r\n textToSearch += searchableRichText;\r\n } else if (tutorial.elements) {\r\n textToSearch += tutorial.elements.map(function (element) {\r\n return element.title + element.text.replace(/(<([^>]+)>)/gi, '');\r\n }).join('');\r\n } else if (tutorial.urlPrefix === '/avalon' && tutorial.content) {\r\n var content = tutorial.content.outerHTML;\r\n var firstOpeningDivTagIndex = content.indexOf('');\r\n var searchableText = content.slice(firstOpeningDivTagIndex, lastClosingDivTagIndex);\r\n searchableText = searchableText.replace(/(<([^>]+)>)/gi, '');\r\n textToSearch += searchableText;\r\n }\r\n\r\n return controller.searchQuery().trim().split(' ').every(function (word) {\r\n return new RegExp('(?=.*' + word + ')', 'gmi').test(textToSearch);\r\n });\r\n }.bind(this);\r\n\r\n return m('.tutorial__searchbar', [\r\n m('svg.tutorial__searchbar-loop', {\r\n height: '20', width: '20', xmlns: 'http://www.w3.org/2000/svg'\r\n }, [\r\n m('g', [\r\n m('circle', {\r\n cx: '12', cy: '9', r: '7'\r\n }),\r\n m('path', {\r\n d: 'm7 14.5 -6 6'\r\n }),\r\n ])\r\n ]),\r\n m('input.tutorial__searchbar-input', {\r\n oninput: function (event) {\r\n if (event.target.value.length > -1) {\r\n updateSearchQuery(event.target.value);\r\n collapseCategories();\r\n }\r\n },\r\n value: controller.searchQuery(),\r\n placeholder: controller.searchBarPlaceholder\r\n }),\r\n m('.tutorial__searchbar-clear', {\r\n onclick: () => {\r\n controller.searchQuery('');\r\n }\r\n })\r\n ]);\r\n };\r\n });\r\n","defineDs('DanskeSpil/Domain/Tutorial/Scripts/Pages/TutorialFrontpage',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialFooter',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialNavigation',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialSearchBar',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialHero'\r\n ], function (m, TutorialFooter, Navigation, Searchbar, Hero) {\r\n\r\n return {\r\n controller: function (args) {\r\n window.scrollTo(0, 0);\r\n\r\n this.categories = args.settings.categories;\r\n this.headerImage = args.settings.headerImage;\r\n this.searchQuery = args.searchQuery;\r\n this.tutorials = args.tutorials;\r\n this.titleCssStyle = args.titleCssStyle;\r\n this.filteredTutorials = args.filteredTutorials;\r\n this.relatedHelpText = args.settings.relatedHelpText;\r\n this.frontpageHeroTitle = args.settings.frontpageHeroTitle;\r\n this.categories.forEach(function (category) {\r\n category.jointList = category.slideTutorials.concat(category.avalonTutorials).concat(category.richTextTutorials).concat(category.tipsSystemTutorial);\r\n category.jointList.forEach(function (tutorial) {\r\n tutorial['category'] = category.category;\r\n });\r\n });\r\n this.nullResultHelpText = args.settings.nullResultHelpText;\r\n this.searchResultNull = args.settings.searchResultNull;\r\n this.searchBarPlaceholder = args.settings.searchBarPlaceholder;\r\n this.mostVisitedLabel = args.settings.mostVisitedLabel;\r\n this.mostVisitedList = args.settings.mostVisitedList;\r\n this.latestSearches = args.settings.latestSearches;\r\n this.footerSettings = args.footerSettings;\r\n this.jointList = args.jointList;\r\n this.allTutorials = args.allTutorials;\r\n\r\n // Toggles the html class that shows tutorial categories\r\n this.categoryClickHandler = function (event) {\r\n event.currentTarget.classList.toggle('tutorial__category--show');\r\n };\r\n\r\n // Shows tutorial columns depending on if they're filtered or not\r\n this.showTutorialCategories = function (tutorials, isFiltered) {\r\n return tutorials.map(function (tutorial) {\r\n return m('a.tutorial__category-tutorials-wrapper', {\r\n onclick: function (event) {\r\n this.saveToLocalStorage(event.currentTarget.id, tutorial.image?.Source ?? '');\r\n }.bind(this),\r\n class: isFiltered ? 'tutorial__category-tutorials-wrapper--filtered' : '',\r\n href: tutorial.urlPrefix + '/' + tutorial.safeTitle,\r\n config: m.route,\r\n id: tutorial.title\r\n }, [\r\n m('.tutorial__category-tutorials-image-wrapper', [\r\n m('img.tutorial__category-tutorials-image', {\r\n src: (isFiltered ? (tutorial.imageFiltered?.Source ?? '') : (tutorial.image?.Source ?? ''))\r\n })\r\n ]),\r\n m('.tutorial__category-tutorials-text-wrapper', [\r\n m('.tutorial__category-tutorials-title', { style: this.titleCssStyle }, isFiltered\r\n ? m.trust(tutorial.title.replace(new RegExp(this.searchQuery(), 'ig'), function (match) {\r\n return '' + match + '';\r\n }.bind(this)))\r\n : m.trust(tutorial.title)),\r\n m('.tutorial__category-tutorials-text', tutorial.subtitle)\r\n ]),\r\n m('.tutorial__category-tutorials-arrow')\r\n ]);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n // Gets saved tutorials the user has clicked on in an array\r\n this.getFromLocalStorage = function () {\r\n return JSON.parse(localStorage.getItem('tutorial-latest-searched')) || [];\r\n };\r\n\r\n // Saves the 5 newest tutorials the user clicks on in an array in local storage and checks if it's already saved\r\n this.saveToLocalStorage = function (title, image) {\r\n var currentLocalStorage = this.getFromLocalStorage();\r\n currentLocalStorage = currentLocalStorage.reduce(function (acc, storage) {\r\n if (storage.title !== title) acc.push(storage);\r\n return acc;\r\n }, []);\r\n var storage = { title: title, image: image };\r\n currentLocalStorage.push(storage);\r\n currentLocalStorage.slice(-5);\r\n localStorage.setItem('tutorial-latest-searched', JSON.stringify(currentLocalStorage));\r\n }.bind(this);\r\n\r\n // Gets tutorials in same category\r\n this.matchRelatedTutorialsWithFilteredTutorials = function () {\r\n var filtratedTutorialsCategories = [];\r\n this.filteredTutorials().forEach(function (tutorial) {\r\n filtratedTutorialsCategories.push(tutorial.category);\r\n });\r\n var x = this.categories.filter(function (category) {\r\n return filtratedTutorialsCategories.includes(category.category);\r\n });\r\n var y = x.map(function (category) {\r\n return this.showTutorialCategories(category.jointList.filter(function (tutorial) {\r\n return this.filteredTutorials().every(function (filteredTutorial) {\r\n return filteredTutorial.title !== tutorial.title;\r\n });\r\n }.bind(this)));\r\n }.bind(this));\r\n return y;\r\n }.bind(this);\r\n\r\n this.getCategoryDOM = function (category) {\r\n return m('.tutorial__category', {\r\n onclick: this.categoryClickHandler\r\n }, [\r\n m('.tutorial__category-wrapper', [\r\n m('.tutorial__category-text-wrapper', [\r\n m('.tutorial__category-title', { style: this.titleCssStyle }, category.title),\r\n m('.tutorial__category-label', category.subtitle),\r\n ]),\r\n m('.tutorial__category-cross')\r\n ]),\r\n m('.tutorial__category-tutorials', this.showTutorialCategories(category.jointList))\r\n ]);\r\n }.bind(this);\r\n\r\n this.getTutorialDOM = function (tutorial) {\r\n return m('a.tutorial__category', {\r\n href: tutorial.urlPrefix + '/' + tutorial.safeTitle,\r\n config: m.route,\r\n }, [\r\n m('.tutorial__category-wrapper.tutorial__category-wrapper--tutorial', [\r\n m('.tutorial__category-text-wrapper', [\r\n m('.tutorial__category-title', { style: this.titleCssStyle }, m.trust(tutorial.title)),\r\n m('.tutorial__category-label', tutorial.subtitle),\r\n ]),\r\n m('.tutorial__category-tutorials-arrow')\r\n ])\r\n ]);\r\n }.bind(this);\r\n },\r\n\r\n view: function (controller) {\r\n return m('.tutorial-frontpage', {\r\n config: controller.onStepRendered\r\n }, [\r\n Navigation(controller), // eslint-disable-line compat/compat\r\n m('.tutorial-frontpage__hero', [\r\n Hero({ title: controller.frontpageHeroTitle, style: controller.titleCssStyle, isButtonVisible: !!controller.searchQuery(), onclick: () => controller.searchQuery('') }),\r\n Searchbar(controller)\r\n ]),\r\n m('.tutorial__frontpage-wrapper',\r\n m('.tutorial__content-box.tutorial__frontpage-inner-wrapper.tutorial__frontpage-animation', {\r\n class: controller.searchQuery() ? 'tutorial__frontpage-inner-wrapper--hide' : ''\r\n },\r\n [\r\n m('.tutorial__categories', controller.jointList.map(function (entry) {\r\n return !entry.hasOwnProperty('urlPrefix') ? controller.getCategoryDOM(entry) : controller.getTutorialDOM(entry);\r\n })),\r\n controller.mostVisitedList.length > 0\r\n ? m('.tutorial__most-visited',\r\n m('.tutorial__most-visited-title', { style: controller.titleCssStyle }, controller.mostVisitedLabel),\r\n controller.mostVisitedList.map(function (tutorial) {\r\n return m('a.tutorial__most-visited-wrapper', {\r\n href: tutorial.urlPrefix + '/' + tutorial.safeTitle,\r\n config: m.route\r\n },\r\n m('.tutorial__most-visited-element-wrapper', [\r\n m('.tutorial__most-visited-element-image-wrapper',\r\n m('img.tutorial__most-visited-element-image', {\r\n src: tutorial.image?.Source ?? ''\r\n })\r\n ),\r\n m('.tutorial__most-visited-element-text-wrapper', [\r\n m('.tutorial__most-visited-element-title', { style: controller.titleCssStyle }, m.trust(tutorial.title)),\r\n m('.tutorial__most-visited-element-text', tutorial.subtitle),\r\n ]),\r\n m('.tutorial__most-visited-element-arrow')\r\n ])\r\n );\r\n }))\r\n : null\r\n ]),\r\n controller.filteredTutorials().length > 0\r\n ? m('.tutorial__search-result.tutorial__frontpage-animation', {\r\n class: controller.searchQuery() ? 'tutorial__search-result--show' : '',\r\n },\r\n [\r\n m('.tutorial__search-result-wrapper', [\r\n controller.showTutorialCategories(controller.filteredTutorials(), true),\r\n ]),\r\n m('.tutorial__content-box.tutorial__search-result-related-wrapper', [\r\n m('.tutorial__search-result-related-inner-wrapper', [\r\n m('.tutorial__search-result-related-help-text', controller.relatedHelpText),\r\n m('.tutorial__search-result-related-help-categories', controller.matchRelatedTutorialsWithFilteredTutorials())\r\n ]),\r\n ]),\r\n ])\r\n : m('.tutorial__search-result-null-wrapper.tutorial__frontpage-animation', {\r\n class: controller.searchQuery() ? 'tutorial__search-result-null-wrapper--show' : ''\r\n },\r\n m('.tutorial__search-result-null-inner-wrapper', [\r\n m('.tutorial__search-result-null-title', { style: controller.titleCssStyle }, controller.searchResultNull),\r\n m('.tutorial__search-result-null-search-query', '\\'' + controller.searchQuery() + '\\''),\r\n m('.tutorial__search-result-null-text', m.trust(controller.nullResultHelpText)),\r\n controller.getFromLocalStorage().length > 0 ?\r\n m('.tutorial__search-last-visited-wrapper', [\r\n m('.tutorial__search-last-visited-title', { style: controller.titleCssStyle }, controller.latestSearches),\r\n m('.tutorial__search-last-visited-element-wrapper', controller.getFromLocalStorage().map(function (storage) {\r\n return m('a.tutorial__search-last-visited-element-innerwrapper', {\r\n href: storage.urlPrefix + storage.title,\r\n config: m.route\r\n }, [\r\n m('img.tutorial__search-last-visited-element-image', {\r\n src: storage.image\r\n }),\r\n m('.tutorial__search-last-visited-element-title', { style: controller.titleCssStyle }, storage.title)\r\n ]);\r\n }).slice(-5)\r\n )\r\n ]) : null\r\n ]))),\r\n controller.footerSettings ? TutorialFooter({ style: controller.titleCssStyle, ...controller.footerSettings }) : null\r\n ]);\r\n }\r\n };\r\n });\r\n","defineDs('DanskeSpil/Domain/Tutorial/Scripts/Pages/TutorialAvalonPage',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialFooter',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialNavigation',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialHero'\r\n ], function (m, TutorialFooter, Navigation, Hero) {\r\n\r\n return {\r\n controller: function (args) {\r\n window.scrollTo(0, 0);\r\n\r\n this.safeTitle = decodeURI(m.route.param('tutorial'));\r\n this.mostVisitedLabel = args.mostVisitedLabel;\r\n this.mostVisitedList = args.mostVisitedList;\r\n this.footerSettings = args.footerSettings;\r\n this.titleCssStyle = args.titleCssStyle;\r\n this.getTextWithHighligt = args.getTextWithHighligt;\r\n this.tutorial = args.allTutorials.filter(function (tutorial) {\r\n return tutorial.safeTitle === this.safeTitle;\r\n }.bind(this))[0];\r\n this.avalonContent = null;\r\n\r\n this.onRender = function () {\r\n var contentWithoutComments = this.tutorial.content?.outerHTML?.replace(//g, '') ?? '';\r\n this.avalonContent = m.trust(this.getTextWithHighligt(contentWithoutComments));\r\n\r\n setTimeout(function () {\r\n m.redraw();\r\n }, 0);\r\n }.bind(this);\r\n },\r\n\r\n view: function (controller) {\r\n return m('.tutorial__avalon', [\r\n Navigation(controller), // eslint-disable-line compat/compat\r\n Hero({ title: controller.tutorial.title, style: controller.titleCssStyle, activate: controller.tutorial.activateHeader }),\r\n m('.tutorial__content-box.tutorial__avalon-content', {\r\n class: [\r\n controller.tutorial.useFullWidth ? 'tutorial__content-box--full-width' : '',\r\n controller.tutorial.useFullWidth && !controller.tutorial.activateHeader ? 'tutorial__content-box--no-radius' : ''\r\n ].join(' '),\r\n config: controller.onRender\r\n }, controller.avalonContent),\r\n controller.footerSettings ? TutorialFooter({ style: controller.titleCssStyle, activate: controller.tutorial.activateFooter, ...controller.footerSettings }) : null\r\n ]);\r\n }\r\n };\r\n });\r\n","defineDs('DanskeSpil/Domain/Tutorial/Scripts/Pages/TutorialSlidepage',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'Common/Framework/ScriptLibraries/Scripts/TinySlider',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialFooter',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialNavigation',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialHero'\r\n ], function (m, Render, TinySlider, TutorialFooter, Navigation, Hero) {\r\n var render = Render();\r\n\r\n return {\r\n controller: function (args) {\r\n window.scrollTo(0, 0);\r\n\r\n this.safeTutorialName = decodeURI(m.route.param('tutorial'));\r\n this.tutorial = args.allTutorials.filter(function (entry) {\r\n return entry.safeTitle === this.safeTutorialName;\r\n }.bind(this))[0];\r\n\r\n this.titleCssStyle = args.titleCssStyle;\r\n this.mostVisitedList = args.mostVisitedList;\r\n this.mostVisitedLabel = args.mostVisitedLabel;\r\n this.heroTitle = args.settings.heroTitle;\r\n this.heroText = args.settings.heroText;\r\n this.elementsCount = this.tutorial.elements.length;\r\n this.slidepageRelatedHelpTitle = args.settings.slidepageRelatedHelpTitle;\r\n this.relatedHelpTutorials = this.tutorial.relatedHelpTutorials;\r\n this.heroImage = this.tutorial.heroImage;\r\n this.actionButton = this.tutorial.actionButton;\r\n this.footerSettings = args.footerSettings;\r\n this.searchQuery = args.searchQuery;\r\n this.titleCssStyle = args.titleCssStyle;\r\n this.activeSlide = 0;\r\n this.showPrevArrow = m.prop(false);\r\n this.showNextArrow = m.prop(true);\r\n this.isSliderActive = false;\r\n this.desktopSlider = null;\r\n this.vimeoReady = false;\r\n this.vimeoPlayers = [];\r\n this.getTextWithHighligt = args.getTextWithHighligt;\r\n\r\n this.addPlayers = function () {\r\n document.querySelectorAll('.slidepage__slider--desktop iframe').forEach(function (iframe, i) {\r\n var player = new window.Vimeo.Player(iframe);\r\n if (i !== 0) {\r\n player.isPlaying = false;\r\n player.pause();\r\n }\r\n this.vimeoPlayers.push(player);\r\n }.bind(this));\r\n };\r\n\r\n this.onStepRendered = function (ignoredElement, isInitialized) {\r\n if (!isInitialized) {\r\n this.isSliderActive = true;\r\n this.desktopSlider = TinySlider({\r\n container: '.slidepage__slider--desktop',\r\n center: true,\r\n controlsContainer: '.slidepage__controls',\r\n prevButton: '.slidepage__arrow--prev',\r\n nextButton: '.slidepage__arrow--next',\r\n loop: false,\r\n nav: false,\r\n responsive: {\r\n 768: {\r\n gutter: 100,\r\n fixedWidth: 730,\r\n },\r\n 1024: {\r\n gutter: 350,\r\n fixedWidth: 730,\r\n },\r\n 1440: {\r\n gutter: 220,\r\n fixedWidth: 900,\r\n }\r\n }\r\n });\r\n\r\n this.desktopSlider.events.on('indexChanged', function (event) {\r\n document.querySelector('.slidepage__current-slide').innerHTML = event.displayIndex > 9 ? event.displayIndex : '0' + event.displayIndex;\r\n var items = document.querySelectorAll('.slidepage__slider--desktop .slidepage__steps');\r\n var itemNumber = event.displayIndex - 1; // index er 1-baseret - itemNumber 0.\r\n\r\n items.forEach(function (item, index) {\r\n item.classList[index === itemNumber ? 'remove' : 'add']('slidepage__steps--fade');\r\n });\r\n\r\n this.vimeoPlayers.forEach(function (player, index) {\r\n if (index === itemNumber) {\r\n if (!player.isPlaying) {\r\n var interval = setInterval(function () {\r\n player.play().then(function () {\r\n player.isPlaying = true;\r\n });\r\n if (player.isPlaying) {\r\n clearInterval(interval);\r\n }\r\n }, 500);\r\n }\r\n } else {\r\n player.pause().then(function () {\r\n player.isPlaying = false;\r\n player.setCurrentTime(0);\r\n });\r\n }\r\n });\r\n\r\n if (itemNumber === 0) {\r\n // First slide\r\n this.showPrevArrow(false);\r\n this.showNextArrow(true);\r\n } else if (itemNumber === items.length - 1) {\r\n // Last slide\r\n this.showPrevArrow(true);\r\n this.showNextArrow(false);\r\n } else {\r\n // All other slides\r\n this.showPrevArrow(true);\r\n this.showNextArrow(true);\r\n }\r\n m.redraw(true);\r\n }.bind(this));\r\n\r\n m.redraw(true);\r\n\r\n var mobileSliders = document.querySelectorAll('.slidepage__slider--mobile');\r\n mobileSliders.forEach(function (slider) {\r\n var tns = TinySlider({\r\n container: slider.querySelector('.slidepage__steps'),\r\n navContainer: slider.querySelector('.slidepage__radio-buttons'),\r\n controls: false,\r\n loop: false,\r\n fixedWidth: 240,\r\n edgePadding: 40,\r\n mouseDrag: true,\r\n });\r\n\r\n tns.events.on('indexChanged', function (event) {\r\n var steps = slider.querySelectorAll('.slidepage__step');\r\n if (event.displayIndex === 1) {\r\n steps[0].classList.add('slidepage__step--selected');\r\n steps[1].classList.remove('slidepage__step--selected');\r\n } else {\r\n steps[1].classList.add('slidepage__step--selected');\r\n steps[0].classList.remove('slidepage__step--selected');\r\n }\r\n });\r\n });\r\n }\r\n }.bind(this);\r\n\r\n render.ready.then(function () {\r\n if (!this.vimeoReady) {\r\n include('https://player.vimeo.com/api/player.js', function () {\r\n this.vimeoReady = true;\r\n this.addPlayers();\r\n }.bind(this));\r\n }\r\n }.bind(this));\r\n },\r\n\r\n view: function (controller) {\r\n return m('.slidepage', { config: render.depend('container') }, [\r\n Navigation(controller), // eslint-disable-line compat/compat\r\n Hero({ title: controller.tutorial.title, style: controller.titleCssStyle }),\r\n m('.tutorial__content-box.slidepage__content.slidepage__content--mobile',\r\n controller.tutorial.elements.map(function (element, i) {\r\n return m('.slidepage__slider.slidepage__slider--mobile',\r\n {\r\n config: render.depend('mobileContainer')\r\n },\r\n m('.slidepage__steps',\r\n m('.slidepage__step.slidepage__step-description.slidepage__step--selected',\r\n m('.slidepage__step-text-wrapper', [\r\n m('.slidepage__step-header', { style: controller.titleCssStyle }, element.title),\r\n m('.slidepage__step-text', m.trust(controller.getTextWithHighligt(element.text))),\r\n m('.slidepage__step-number', ('0' + (i + 1)).slice(-2)),\r\n i === 0 ? m('.slidepage__step-help-wrapper', [\r\n m('.slidepage__step-help-circle'),\r\n m('.slidepage__step-help-text', element.footerHelpText)\r\n ]) : null,\r\n ])\r\n ),\r\n element.mobileVideo ? m('iframe.slidepage__step.slidepage__step-illustration', {\r\n src: element.mobileVideo,\r\n allowFullScreen: true\r\n }) : null\r\n ),\r\n m('.slidepage__radio-buttons', [\r\n m('.slidepage__radio'),\r\n m('.slidepage__radio')\r\n ])\r\n );\r\n }),\r\n controller.actionButton.Url && controller.actionButton.Title\r\n ? m('a.slidepage__action-button-wrapper', {\r\n href: controller.actionButton.Url\r\n }, m('.slidepage__action-button', controller.actionButton.Title))\r\n : null\r\n ),\r\n m('.tutorial__content-box.slidepage__content.slidepage__content--desktop',\r\n m('.slidepage__slider.slidepage__slider--desktop', {\r\n config: controller.onStepRendered,\r\n class: !controller.isSliderActive ? 'slidepage__slider--loading' : '',\r\n }, controller.tutorial.elements.map(function (element, i) {\r\n return m('.slidepage__steps',\r\n {\r\n class: i !== 0 ? 'slidepage__steps--fade' : ''\r\n },\r\n m('.slidepage__step.slidepage__step-description',\r\n m('.slidepage__step-text-wrapper', [\r\n m('.slidepage__step-header', { style: controller.titleCssStyle }, element.title),\r\n m('.slidepage__step-text', m.trust(controller.getTextWithHighligt(element.text))),\r\n m('.slidepage__step-number', ('0' + (i + 1)).slice(-2))\r\n ])\r\n ),\r\n element.desktopVideo ? m('iframe.slidepage__step.slidepage__step-illustration', {\r\n src: element.desktopVideo\r\n }) : null\r\n );\r\n })),\r\n m('.slidepage__controls', [\r\n m('.slidepage__arrow.slidepage__arrow--prev', {\r\n class: !controller.showPrevArrow() ? 'slidepage__arrow--hide' : ''\r\n }),\r\n m('.slidepage__slide-counter',\r\n m('.slidepage__current-slide', '01'),\r\n m('.slidepage__separator', '/'),\r\n m('.slidepage__number-of-slides', controller.elementsCount < 10 ? '0' + controller.elementsCount : controller.elementsCount.toString())\r\n ),\r\n m('.slidepage__arrow.slidepage__arrow--next', {\r\n class: !controller.showNextArrow() ? 'slidepage__arrow--hide' : ''\r\n })\r\n ]),\r\n controller.actionButton.Url && controller.actionButton.Title\r\n ?\r\n m('a.slidepage__action-button-wrapper', {\r\n href: controller.actionButton.Url\r\n }, m('.slidepage__action-button', controller.actionButton.Title))\r\n : null\r\n ),\r\n controller.relatedHelpTutorials.length > 0 ?\r\n m('.slidepage__related-help',\r\n m('.slidepage__related-help-title', { style: controller.titleCssStyle }, controller.slidepageRelatedHelpTitle),\r\n m('.slidepage__related-help-wrapper',\r\n controller.relatedHelpTutorials.map(function (tutorial) {\r\n return m('a.slidepage__related-help-wrapper-block', {\r\n href: `/${tutorial.urlPrefix}/${tutorial.safeTitle}`,\r\n config: m.route\r\n }, [\r\n m('.slidepage__related-help-image-wrapper',\r\n m('img.slidepage__related-help-image', {\r\n src: tutorial.image\r\n })\r\n ),\r\n m('.slidepage__related-help-text-wrapper', [\r\n m('.slidepage__related-help-element-title', { style: controller.titleCssStyle }, tutorial.title),\r\n m('.slidepage__related-help-element-text', tutorial.text)\r\n ]),\r\n m('.slidepage__related-help-arrow')\r\n ]);\r\n })\r\n )\r\n ) : null,\r\n controller.footerSettings ? TutorialFooter({ style: controller.titleCssStyle, ...controller.footerSettings }) : null\r\n ]);\r\n }\r\n };\r\n });\r\n","defineDs('DanskeSpil/Domain/Tutorial/Scripts/Pages/TutorialTipsSystemPage',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialFooter',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialNavigation',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialHero'\r\n ], function (m, Overlay, ModalDialog, TutorialFooter, Navigation, Hero) {\r\n\r\n return {\r\n controller: function (args) {\r\n // Variables\r\n this.consts = {\r\n R: 'r',\r\n U: 'u',\r\n DESCRIPTION: 'description',\r\n GUARANTEE: 'guarantee',\r\n KEY: 'systemKey'\r\n };\r\n Object.freeze(this.consts);\r\n\r\n this.titleCssStyle = args.titleCssStyle;\r\n this.safeTitle = decodeURI(m.route.param('tutorial'));\r\n this.mostVisitedLabel = args.mostVisitedLabel;\r\n this.mostVisitedList = args.mostVisitedList;\r\n this.footerSettings = args.footerSettings;\r\n this.tutorial = args.tipsSystemTutorial[0];\r\n this.systems = {\r\n r: {},\r\n u: {}\r\n };\r\n this.selectedSystem = this.consts.R;\r\n this.selectedCombination = null;\r\n this.dropdownOpen = false;\r\n this.selectedTable = this.consts.DESCRIPTION;\r\n\r\n window.scrollTo(0, 0);\r\n\r\n this.tutorial.rSystemFolder.tipsSystems.forEach(function (system) {\r\n this.systems.r[system.name] = system;\r\n }.bind(this));\r\n this.tutorial.uSystemFolder.tipsSystems.forEach(function (system) {\r\n this.systems.u[system.name] = system;\r\n }.bind(this));\r\n\r\n this.showOverlay = function () {\r\n new Overlay(new ModalDialog([\r\n m('.tutorial-overlay', [\r\n m('.tutorial-overlay__title', { style: this.titleCssStyle }, this.tutorial.popupHeader),\r\n m('.tutorial-overlay__text', m.trust(this.tutorial.popupText)),\r\n m('img.tutorial-overlay__image', {\r\n src: this.tutorial.popupImage.Source,\r\n alt: this.tutorial.popupImage.AlternameText\r\n })\r\n ])\r\n ], {\r\n buttons: []\r\n })).show();\r\n }.bind(this);\r\n\r\n },\r\n\r\n view: function (controller) {\r\n return m('.tutorial-tips', [\r\n Navigation(controller), // eslint-disable-line compat/compat\r\n Hero({ title: controller.tutorial.title, style: controller.titleCssStyle }),\r\n m('.tutorial__content-box.tutorial-tips__content', [\r\n m('.tutorial-tips__content-inner', [\r\n m('.tutorial-tips__header', { style: controller.titleCssStyle }, controller.tutorial.firstHeader),\r\n m('.tutorial-tips__button-wrapper', [\r\n m('.tutorial-tips__button', {\r\n class: controller.selectedSystem === controller.consts.R ? 'tutorial-tips__button--selected' : '',\r\n onclick: function () {\r\n controller.selectedSystem = controller.consts.R;\r\n controller.selectedCombination = null;\r\n }\r\n }, controller.tutorial.rSystemButtonText),\r\n m('.tutorial-tips__button', {\r\n class: controller.selectedSystem === controller.consts.U ? 'tutorial-tips__button--selected' : '',\r\n onclick: function () {\r\n controller.selectedSystem = controller.consts.U;\r\n controller.selectedCombination = null;\r\n }\r\n }, controller.tutorial.uSystemButtonText)\r\n ]),\r\n m('.tutorial-tips__read-more', m.trust(controller.tutorial.subButtonsText)),\r\n m('.tutorial-tips__header', { style: controller.titleCssStyle }, [\r\n controller.tutorial.secondHeader,\r\n m('span.tutorial-tips__popup-trigger', {\r\n onclick: controller.showOverlay\r\n }, '?')\r\n ]),\r\n m('.tutorial-tips__dropdown', {\r\n class: [\r\n controller.dropdownOpen ? 'tutorial-tips__dropdown--open' : '',\r\n controller.selectedCombination ? 'tutorial-tips__dropdown--selected' : ''\r\n ].join(' ').trim(),\r\n onclick: function () {\r\n controller.dropdownOpen = !controller.dropdownOpen;\r\n }\r\n }, [\r\n m('.tutorial-tips__label', controller.selectedCombination || 'KOMBINATION'),\r\n m('.tutorial-tips__dropdown-content', Object.keys(controller.systems[controller.selectedSystem]).map(function (combinationKey) {\r\n return m('.tutorial-tips__combination-key', {\r\n id: combinationKey,\r\n class: combinationKey === controller.selectedCombination ? 'tutorial-tips__combination-key--selected' : '',\r\n onclick: function (event) {\r\n if (controller.selectedCombination === event.currentTarget.id) {\r\n controller.selectedCombination = null;\r\n } else {\r\n controller.selectedCombination = event.currentTarget.id;\r\n }\r\n window.scrollTo(0, 0);\r\n }\r\n }, combinationKey);\r\n }))\r\n ])\r\n ]),\r\n\r\n controller.selectedCombination ? m('.tutorial-tips__table-wrapper', [\r\n m('.tutorial-tips__table-selectors', [\r\n m('.tutorial-tips__table-selector', {\r\n class: controller.selectedTable === controller.consts.DESCRIPTION ? 'tutorial-tips__table-selector--active' : '',\r\n onclick: function () {\r\n controller.selectedTable = controller.consts.DESCRIPTION;\r\n }\r\n }, 'BESKRIVELSE'),\r\n m('.tutorial-tips__table-selector', {\r\n class: controller.selectedTable === controller.consts.GUARANTEE ? 'tutorial-tips__table-selector--active' : '',\r\n onclick: function () {\r\n controller.selectedTable = controller.consts.GUARANTEE;\r\n }\r\n }, 'GARANTI'),\r\n m('.tutorial-tips__table-selector', {\r\n class: controller.selectedTable === controller.consts.KEY ? 'tutorial-tips__table-selector--active' : '',\r\n onclick: function () {\r\n controller.selectedTable = controller.consts.KEY;\r\n }\r\n }, 'NØGLE')\r\n ]),\r\n m('.tutorial-tips__table', {\r\n class: 'tutorial-tips__table--' + controller.selectedTable\r\n }, [\r\n controller.selectedTable === controller.consts.DESCRIPTION ? m('.tutorial-tips__table-title', controller.selectedCombination) : null,\r\n m.trust(controller.systems[controller.selectedSystem][controller.selectedCombination][controller.selectedTable])\r\n ])\r\n ]) : null,\r\n ]),\r\n controller.footerSettings ? TutorialFooter({ style: controller.titleCssStyle, ...controller.footerSettings }) : null\r\n ]);\r\n }\r\n };\r\n });\r\n","defineDs('DanskeSpil/Domain/Tutorial/Scripts/Pages/TutorialSimplePage',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialFooter',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialNavigation',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Components/TutorialHero'\r\n ], function (m, TutorialFooter, Navigation, Hero) {\r\n\r\n return {\r\n controller: function (args) {\r\n window.scrollTo(0, 0);\r\n\r\n this.safeTutorialName = decodeURI(m.route.param('tutorial'));\r\n this.mostVisitedLabel = args.mostVisitedLabel;\r\n this.mostVisitedList = args.mostVisitedList;\r\n this.footerSettings = args.footerSettings;\r\n this.titleCssStyle = args.titleCssStyle;\r\n this.getTextWithHighligt = args.getTextWithHighligt;\r\n this.tutorial = args.allTutorials.filter(function (entry) {\r\n return entry.safeTitle === this.safeTutorialName;\r\n }.bind(this))[0];\r\n },\r\n\r\n view: function (controller) {\r\n return m('.tutorial__simple', [\r\n Navigation(controller), // eslint-disable-line compat/compat\r\n Hero({ title: controller.tutorial.title, style: controller.titleCssStyle, activate: controller.tutorial.activateHeader }),\r\n m('.tutorial__content-box.tutorial__simple-content', {\r\n class: [\r\n controller.tutorial.useFullWidth ? 'tutorial__content-box--full-width' : '',\r\n controller.tutorial.useFullWidth && !controller.tutorial.activateHeader ? 'tutorial__content-box--no-radius' : ''\r\n ].join(' ')\r\n },\r\n m.trust(controller.getTextWithHighligt(controller.tutorial.richText))),\r\n controller.footerSettings ? TutorialFooter({ style: controller.titleCssStyle, activate: controller.tutorial.activateFooter, ...controller.footerSettings }) : null\r\n ]);\r\n }\r\n };\r\n });\r\n","defineDs('DanskeSpil/Domain/Tutorial/Scripts/Tutorial.js',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Pages/TutorialFrontpage',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Pages/TutorialSlidepage',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Pages/TutorialSimplePage',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Pages/TutorialAvalonPage',\r\n 'DanskeSpil/Domain/Tutorial/Scripts/Pages/TutorialTipsSystemPage',\r\n ], function (Component, TutorialFrontpage, TutorialSlidepage, TutorialSimplePage, TutorialAvalonPage, TutorialTipsSystemPage) {\r\n\r\n Component('tutorial', function (m, ignoredRoute, settings, ignoredProperty, element) {\r\n\r\n var controller = function () {\r\n this.settings = settings;\r\n this.footerSettings = settings.footer;\r\n this.mostVisitedLabel = settings.mostVisitedLabel;\r\n this.searchQuery = m.prop('');\r\n this.filteredTutorials = m.prop([]);\r\n this.mostVisitedList = settings.mostVisitedList;\r\n this.titleCssStyle = settings.titleCssStyle;\r\n\r\n this.categories = settings.categories;\r\n this.slideTutorials = settings.slideTutorials;\r\n this.avalonTutorials = settings.avalonTutorials;\r\n this.tipsSystemTutorial = settings.tipsSystemTutorial;\r\n this.richTextTutorials = settings.richTextTutorials;\r\n\r\n this.jointList = this.categories.concat(this.slideTutorials).concat(this.richTextTutorials).concat(this.avalonTutorials).concat(this.tipsSystemTutorial).sort(function (a, b) {\r\n return a.order - b.order;\r\n });\r\n this.allTutorials = this.categories.reduce(function (accumulator, category) {\r\n accumulator = accumulator.concat(category.slideTutorials).concat(category.richTextTutorials).concat(category.avalonTutorials).concat(category.tipsSystemTutorial);\r\n return accumulator;\r\n }, []).concat(this.slideTutorials).concat(this.avalonTutorials).concat(this.tipsSystemTutorial).concat(this.richTextTutorials);\r\n\r\n // Populate avalon-tutorials with content from DOM\r\n this.allTutorials.forEach(function (tutorial) {\r\n if (tutorial.urlPrefix !== '/avalon') return;\r\n\r\n var content = document.getElementById(tutorial.id);\r\n\r\n if (content) {\r\n tutorial.content = content.cloneNode(true);\r\n content.id = content.id + '-added-to-js';\r\n tutorial.content.classList.remove('u-hidden');\r\n }\r\n });\r\n\r\n this.getTextWithHighligt = function (text) {\r\n var finalText = text;\r\n if (!this.searchQuery()) return finalText;\r\n\r\n var openingTags = Array.from(text.matchAll(new RegExp('|', 'gi'))).map(function (match) {\r\n return match.index;\r\n });\r\n\r\n if (openingTags.length === 0) openingTags.push(-1);\r\n if (closingTags.length === 0) closingTags.push(-1);\r\n\r\n var searchRegexPrep = this.searchQuery().split(' ').join('|');\r\n var searchRegex = new RegExp(searchRegexPrep, 'gmi');\r\n\r\n var match;\r\n var indexOffset = 0;\r\n while ((match = searchRegex.exec(text)) !== null) {\r\n\r\n var closestPreviousOpeningTag = openingTags.reduce(function (prev, current, index) {\r\n var closest = Math.abs(current - match.index) < Math.abs(prev.val - match.index) && current <= match.index ? current : prev.val;\r\n var isNew = closest !== prev.val;\r\n return { val: closest, index: isNew ? index : prev.index };\r\n }, { val: -1, index: -1 });\r\n\r\n if ((match.index < closestPreviousOpeningTag.val || match.index > closingTags[closestPreviousOpeningTag.index]) || closestPreviousOpeningTag.val === -1) {\r\n finalText = finalText.slice(0, match.index + indexOffset) + '' + match[0] + '' + finalText.slice(match.index + match[0].length + indexOffset);\r\n indexOffset += ''.length;\r\n }\r\n }\r\n\r\n return finalText;\r\n }.bind(this);\r\n };\r\n\r\n var rootctrl = new controller();\r\n\r\n m.route.mode = 'hash';\r\n m.route(element, '/', {\r\n '/': m.component(TutorialFrontpage, rootctrl),\r\n '/slide/:tutorial': m.component(TutorialSlidepage, rootctrl),\r\n '/richtext/:tutorial': m.component(TutorialSimplePage, rootctrl),\r\n '/avalon/:tutorial': m.component(TutorialAvalonPage, rootctrl),\r\n '/tipssystem/:ignore': m.component(TutorialTipsSystemPage, rootctrl),\r\n });\r\n });\r\n });\r\n"]}