var errorPopupInterval; let toTopBtnCont = ''; let webHdr = ''; let initialScrollY = 0; let oldScrollY = window.scrollY; let copyBtnClicked = false; let bottomActiveNavItem = ''; let loaderBtnInnerHtml = ''; var _stParam = btoa(window.location.hostname); function addCategoryIdToObj(obj, catId) { obj.CategoryId.push(catId); } function removeCategoryIdFromObj(obj, catId) { for (var i = 0; i < obj.CategoryId.length; i++) { if (obj.CategoryId[i] == catId) { obj.CategoryId.splice(i, 1); i--; } } } function addThemeToObj(obj, themeId) { obj.ThemeId.push(themeId); } function removeThemeFromObj(obj, themeId) { for (var i = 0; i < obj.ThemeId.length; i++) { if (obj.ThemeId[i] == themeId) { obj.ThemeId.splice(i, 1); i--; } } } function addTournamnetToObj(obj, tournamentId) { obj.TournamentId.push(tournamentId); } function removeTournamnetFromObj(obj, tournamentId) { for (var i = 0; i < obj.TournamentId.length; i++) { if (obj.TournamentId[i] == tournamentId) { obj.TournamentId.splice(i, 1); i--; } } } function changePageUrlWithoutRefreshing(url, stateId, replaceState) { let searchParams = new URLSearchParams(url); let spHashData = searchParams.get('data'); url = url.toLowerCase(); if (spHashData != null && (url.includes('/sport') || url.includes('/esport'))) { url = url.replace(spHashData.toLowerCase(), spHashData); } if (typeof WBPLastUrl != 'undefined') { WBPLastUrl = url; } changeLanguageBarUrl(url); var origin = window.location.origin; url = origin + url; if (replaceState) { history.replaceState({ id: stateId }, null, url); } else { history.pushState({ id: stateId }, null, url); } } function changeLanguageBarUrl(url) { let currentLang = document.documentElement.lang; let urlSplitted = url.split('/' + currentLang + '/'); let urlWithoutLang = urlSplitted.length > 1 ? urlSplitted[1] : urlSplitted[0]; if (urlWithoutLang.startsWith('/')) { urlWithoutLang = urlWithoutLang.substring(1); } let languageBarItems = document.querySelectorAll('.js_language_bar_link'); if (languageBarItems.length > 0) { for (let item of languageBarItems) { let ln = item.dataset.lang; if (ln && ln != '') { if (item.href != undefined) { item.href = '/' + ln + '/' + urlWithoutLang; } else if (item.value != undefined) { item.value = '/' + ln + '/' + urlWithoutLang; } } } } } function CapitalizeText(txt) { return txt.charAt(0).toUpperCase() + txt.slice(1).toLowerCase(); } function dlAnimate(html) { return $(html).css('opacity', '0').animate({ opacity: "1" }, 300); } function setStrFormatWithSpChar(s, char) { let betforeDot = ''; let afterDot = ''; if (s.includes('.')) { let splitedSt = s.split('.'); betforeDot = splitedSt[0]; afterDot = splitedSt[1]; } else { betforeDot = s; } var str = reverseString(betforeDot); var returnStr = ''; for (var i = 0; i < str.length; i++) { returnStr += str[i]; if ((i + 1) % 3 == 0) { if (i + 1 != str.length) { returnStr += char; } } } if (afterDot != '') { return reverseString(returnStr) + '.' + afterDot; } return reverseString(returnStr); } function reverseString(s) { return s.split("").reverse().join(""); } function setDataSrc(fItem) { let img = fItem.getElementsByTagName('img'); if (img.length > 0) { let src = img[0].src; img[0].src = img[0].dataset.src; img[0].dataset.src = src; } } function setActiveClassToPrMenuItems(classname) { const ln = document.documentElement.getAttribute('lang'); const links = document.getElementsByClassName(classname); const linksLength = links.length; const locationHrefSplitedByHost = document.location.href.split(document.location.host); const locationHref = locationHrefSplitedByHost.length > 1 ? locationHrefSplitedByHost[1].replace('/' + ln + '/', '/') : locationHrefSplitedByHost[0].replace('/' + ln + '/', '/'); const lcnHrefSpBySlashLength = locationHref.split('/').length; let hrefSplited = ''; let href = ''; let correctActiveItem = ''; let correctActiveItemLength = 0; let affectedItemsCount = 0; for (let i = 0; i < linksLength; i++) { links[i].classList.remove('tl_main_nav_item-active'); if (links[i].href) { hrefSplited = links[i].href.split(document.location.host); if (hrefSplited.length > 1) { href = hrefSplited[1].replace('/' + ln + '/', '/') let firstPartWithoutWWW = hrefSplited[0].replace('www.', ''); if (firstPartWithoutWWW.length > 8) { if (!firstPartWithoutWWW.includes('playin') && !firstPartWithoutWWW.includes('sport')) href = links[i].href; } } else { href = hrefSplited[0].replace('/' + ln + '/', '/'); } switch (lcnHrefSpBySlashLength) { case 1: case 2: if (locationHref.toLowerCase() == href.toLowerCase()) { if (correctActiveItemLength < href.length) { if (correctActiveItemLength != 0) { removeActiveClassFromItem(correctActiveItem); } correctActiveItemLength = href.length; correctActiveItem = links[i]; } addActiveClassToItem(correctActiveItem); affectedItemsCount++; } break; default: if (locationHref.toLowerCase().startsWith(href.toLowerCase())) { if (!locationHref.toLowerCase().includes('#') || (locationHref.toLowerCase().includes('#') && locationHref.toLowerCase() == href.toLowerCase())) { if (correctActiveItemLength < href.length) { if (correctActiveItemLength != 0) { removeActiveClassFromItem(correctActiveItem); } correctActiveItemLength = href.length; correctActiveItem = links[i]; } addActiveClassToItem(correctActiveItem); affectedItemsCount++; } } break; } } } return affectedItemsCount; } function addActiveClassToItem(item) { item.classList.add('tl_main_nav_item-active'); let parentNode = item.parentNode.parentNode; if (parentNode && parentNode.classList.contains('js_header_dropdown')) { parentNode.firstElementChild.classList.add('tl_main_nav_item-active') } if (item.dataset.moreItem == 'true') { addClassIfElemExists('js_nav_more_toggle_btn', 'tl_main_nav_item-active'); } } function removeActiveClassFromItem(item) { item.classList.remove('tl_main_nav_item-active'); let parentNode = item.parentNode.parentNode; if (parentNode && parentNode.classList.contains('js_header_dropdown')) { parentNode.firstElementChild.classList.remove('tl_main_nav_item-active') } if (item.dataset.moreItem == 'true') { removeClassIfElemExists('js_nav_more_toggle_btn', 'tl_main_nav_item-active'); } } function removeLangParamFromUrl(url) { let urlSplited = url.split('/') let returnVal = url; if (urlSplited.length > 1 && urlSplited[1].length == 2) { returnVal = ''; for (let i = 2; i < urlSplited.length; i++) { returnVal += "/" + urlSplited[i]; } } return returnVal; } function changeMetaTags(metaInfo, textToReplace) { let pageTitle = ''; let metaTitleText = ''; let metaDescText = ''; let metaKeywordsText = ''; if (typeof getCustomMetaTexts == 'function') { let metaTexts = getCustomMetaTexts(); if (metaTexts.pageTitle && metaTexts.pageTitle != '') { pageTitle = metaTexts.pageTitle; } if (metaTexts.metaTitle && metaTexts.metaTitle != '') { metaTitleText = metaTexts.metaTitle; } if (metaTexts.metaDesc && metaTexts.metaDesc != '') { metaDescText = metaTexts.metaDesc; } if (metaTexts.metaKeywords && metaTexts.metaKeywords != '') { metaKeywordsText = metaTexts.metaKeywords; } } else if (typeof metaInfo === 'object') { if (metaInfo.title != undefined) { pageTitle = metaTitleText = metaInfo.title; } if (metaInfo.desc != undefined) { metaDescText = metaInfo.desc; } if (textToReplace != undefined) { pageTitle = metaTitleText = pageTitle.replace('{0}', textToReplace); metaDescText = metaDescText.replace('{0}', textToReplace); } } else { pageTitle = metaTitleText = metaDescText = metaKeywordsText = metaInfo; } if (pageTitle != '') { document.title = pageTitle; } if (metaTitleText != '') { let metaTitle = document.querySelector('meta[name="title"]'); if (metaTitle != null) { metaTitle.setAttribute("content", metaTitleText); } else { let meta = document.createElement('meta'); meta.setAttribute('name', 'title'); meta.setAttribute('content', metaTitleText); document.getElementsByTagName('head')[0].appendChild(meta); } } if (metaDescText != '') { let metaDesc = document.querySelector('meta[name="description"]'); if (metaDesc != null) { metaDesc.setAttribute("content", metaDescText); } else { let meta = document.createElement('meta'); meta.setAttribute('name', 'description'); meta.setAttribute('content', metaDescText); document.getElementsByTagName('head')[0].appendChild(meta); } } if (metaKeywordsText != '') { let metaKeywords = document.querySelector('meta[name="keywords"]'); if (metaKeywords != null) { metaKeywords.setAttribute("content", metaKeywordsText); } else { let meta = document.createElement('meta'); meta.setAttribute('name', 'keywords'); meta.setAttribute('content', metaKeywordsText); document.getElementsByTagName('head')[0].appendChild(meta); } } } function changeOgXMetaTitleDesc(metaInfo, textToReplace) { let metaDesc = metaInfo.desc; let metaTitle = metaInfo.title; if (textToReplace != undefined) { metaDesc = metaDesc.replace('{0}', textToReplace); metaTitle = metaTitle.replace('{0}', textToReplace); } if (metaDesc != '') { let metaOgDesc = document.querySelector('meta[property="og:description"]'); if (metaOgDesc != null) { metaOgDesc.setAttribute("content", metaDesc); } else { let meta = document.createElement('meta'); meta.setAttribute('property', 'og:description'); meta.setAttribute('content', metaDesc); document.getElementsByTagName('head')[0].appendChild(meta); } let metaXDesc = document.querySelector('meta[name="twitter:description"]'); if (metaXDesc != null) { metaXDesc.setAttribute("content", metaDesc); } else { let meta = document.createElement('meta'); meta.setAttribute('name', 'twitter:description'); meta.setAttribute('content', metaDesc); document.getElementsByTagName('head')[0].appendChild(meta); } } if (metaTitle != '') { let metaOgTitle = document.querySelector('meta[property="og:title"]'); if (metaOgTitle != null) { metaOgTitle.setAttribute("content", metaTitle); } else { let meta = document.createElement('meta'); meta.setAttribute('property', 'og:title'); meta.setAttribute('content', metaTitle); document.getElementsByTagName('head')[0].appendChild(meta); } let metaXTitle = document.querySelector('meta[name="twitter:title"]'); if (metaXTitle != null) { metaXTitle.setAttribute("content", metaTitle); } else { let meta = document.createElement('meta'); meta.setAttribute('name', 'twitter:title'); meta.setAttribute('content', metaTitle); document.getElementsByTagName('head')[0].appendChild(meta); } } } function showInfoPopup(title, bodyMsg, btnName) { let btn = btnName != 'undefined' && btnName != '' ? btnName : 'Close'; let html = `

${title}

` + `

${bodyMsg}

`; $('body').append(dlAnimate(html)); document.body.classList.add('ofh') } function closeInfoPopup() { if (document.getElementById('js_info_popup_cont') != null) { document.getElementById('js_info_popup_cont').remove(); } document.body.classList.remove('ofh') } function createToast(type, text, duration = 6000) { // Creating toast message container as dom element var toastElem = document.createElement("div"); // Adding toast class to it toastElem.classList.add('toast'); toastElem.id = 'js_toast_' + type; // If there is a type, add that type name as class to toast message container if (type) { toastElem.classList.add(type); } var iconType = ""; if (type == "system") { iconType = ''; } else if (type == "success") { iconType = ''; } else if (type == "warning") { iconType = ''; } else if (type == "error") { iconType = ''; } toastElem.innerHTML = iconType; // create title dom element var titleElem = document.createElement("p"); // add t-title class to doom element titleElem.classList.add('t-title'); titleElem.classList.add('social__pointer-auto'); // depent on the type add icon, you can add more icons if you want // appent icon to title element with title text titleElem.innerHTML += text; toastElem.appendChild(titleElem); // create text element with t-text class and appent text to it //var textElement = document.createElement("p"); //textElement.classList.add('t-text'); //textElement.innerHTML = text; //toastElem.appendChild(textElement); // create close element with t-close class for closing the toast message var closeElem = document.createElement("button"); closeElem.classList.add('t-close'); var iconX = document.createElement("i"); iconX.classList.add("cw_icon_close_v2"); iconX.classList.add("social__pointer-none"); closeElem.appendChild(iconX); /*closeElem.classList.add('t-close');*/ toastElem.appendChild(closeElem); // get toast-container element var toastContainer = document.getElementById("js-toast-cont"); if (toastContainer == null) { toastContainer = document.createElement("div"); toastContainer.classList.add("toast-container"); toastContainer.id = "js-toast-cont"; document.body.appendChild(toastContainer); } //appent toast message to it toastContainer.appendChild(toastElem); // wait just a bit to add active class to the message to trigger animation setTimeout(function () { toastElem.classList.add('active'); }, 1); // check duration if (duration > 0) { // it it's bigger then 0 add it setTimeout(function () { toastElem.classList.remove('active'); setTimeout(function () { toastElem.remove(); }, 350); }, duration); } else if (duration == null) { // it ther isn't any add default one (3000ms) setTimeout(function () { toastElem.classList.remove('active'); setTimeout(function () { toastElem.remove(); }, 350); }, 3000); } //if duration is 0, toast message will not be closed } function playAndMuteBannerVideo(sliderWrapperElem, disableAutoplay) { let videoElems = $(sliderWrapperElem).find('video'); let slider = ''; if (typeof $(sliderWrapperElem).parents('.swiper-initialized')[0].swiper != 'undefined') { slider = $(sliderWrapperElem).parents('.swiper-initialized')[0].swiper; } if (videoElems) { if (slider != '' && !disableAutoplay) { slider.autoplay.start(); } for (let i = 0; i < videoElems.length; i++) { if (videoElems[i]) { videoElems[i].muted = true; $(videoElems[i]).siblings('.js_voice_icon').addClass('muted'); } } } } let videoBannersObserver = new IntersectionObserver(function (entries) { entries.forEach((entry) => { if (entry.target.tagName == 'VIDEO') { if (entry.isIntersecting) { entry.target.play(); } else { entry.target.pause(); } } else { let videos = entry.target.querySelectorAll('video'); if (videos.length > 0) { if (entry.isIntersecting) { videos.forEach(video => { video.play() }); } else { videos.forEach(video => { video.pause() }); } } } }); }, { threshold: [0.4] }); function addToVideoBannersObserver(contId, addContainer) { let elem = document.getElementById(contId); if (addContainer) { videoBannersObserver.observe(elem); } else { let videos = elem.querySelectorAll('video'); videos.forEach(video => { videoBannersObserver.observe(video) }); } } function showSoundIconIfVideoHasAudio(elem) { setTimeout(() => { let hasAudioTrack = false; if (elem.audioTracks && elem.audioTracks.length > 0) { for (let i = 0; i < elem.audioTracks.length; i++) { if (elem.audioTracks[i].enabled) { hasAudioTrack = true; break; } } } else if (elem.webkitAudioDecodedByteCount > 0 || elem.mozHasAudio) { hasAudioTrack = true; } if (hasAudioTrack && elem.nextElementSibling) { elem.nextElementSibling.classList.remove('hidden'); } }, 300); } function customPauseResumeTimer(callback, delay) { let timerId; let start; let remaining = delay; this.pause = function () { window.clearTimeout(timerId); timerId = null; remaining -= Date.now() - start; }; this.resume = function () { if (timerId) { return; } start = Date.now(); timerId = window.setTimeout(callback, remaining); }; this.cancel = function () { window.clearTimeout(timerId); }; this.resume(); }; function initPresslHoldEvent(item, holdStart, holdEnd, click) { let timerID; let counter = 0; let allowDispatchStart = true; let pressHoldEventStart = new CustomEvent("pressHoldStart"); let pressHoldEventEnd = new CustomEvent("pressHoldEnd"); let customClick = new CustomEvent("customClick"); let typeOfClick = typeof click; let pressHoldDuration = 10; let touchStartClientX = ''; item.addEventListener("mousedown", pressingDown, false); item.addEventListener("mouseup", notPressingDown, false); item.addEventListener("mouseleave", notPressingDown, false); item.addEventListener("touchstart", pressingDown, false); item.addEventListener("touchend", notPressingDown, false); if (typeof holdStart == 'function') { item.addEventListener("pressHoldStart", holdStart, false); } if (typeof holdEnd == 'function') { item.addEventListener("pressHoldEnd", holdEnd, false); } if (typeOfClick == 'function') { item.addEventListener("customClick", click, false); } function pressingDown(e) { if (typeOfClick == 'function') { if (e.type == 'touchstart') { touchStartClientX = e.touches[0].clientX; } else { touchStartClientX = e.clientX; } } if (e.type == 'mousedown' || (e.type == 'touchstart' && e.touches.length == 1)) { requestAnimationFrame(timer); e.preventDefault(); } } function notPressingDown(e) { allowDispatchStart = true; cancelAnimationFrame(timerID); if (counter < pressHoldDuration) { if (typeOfClick == 'function') { if (e.type == 'touchend') { customClick.clientX = e.changedTouches[0].clientX; } else { customClick.clientX = e.clientX; } customClick.passedTarget = e.target; if (Math.abs(touchStartClientX - customClick.clientX) < 5) { item.dispatchEvent(customClick); } } } else { item.dispatchEvent(pressHoldEventEnd); } counter = 0; } function timer() { timerID = requestAnimationFrame(timer); counter++; if (counter >= pressHoldDuration && allowDispatchStart) { allowDispatchStart = false; item.dispatchEvent(pressHoldEventStart); } } } async function writeToClipboard(txt) { try { if (typeof CwPwapp != 'undefined' && CwPwapp) { if (navigator.clipboard) { await navigator.clipboard.writeText(txt); } let w = window.parent || window; await w.postMessage({ type: 'cw_copy', data: { text: txt } }, '*'); } else { await navigator.clipboard.writeText(txt); } } catch (err) { console.error('Failed to copy: ', err); } } function openYoutubeVideo(link) { if (document.getElementById('js_ytb_video_cont') == null) { $('body').append(''); } $('#js_ytb_video_cont').html('
').show(); } function handleDocumentScroll() { if (toTopBtnCont != null && toTopBtnCont != '') { if (window.scrollY > 300) { if (oldScrollY > window.scrollY) { toTopBtnCont.classList.remove('hidden'); } else { toTopBtnCont.classList.add('hidden'); } } else { toTopBtnCont.classList.add('hidden'); } oldScrollY = window.scrollY; } if (webHdr != null && webHdr != '') { if (window.scrollY > 54) { webHdr.classList.add('fixed_head'); } else { webHdr.classList.remove('fixed_head'); } } if (document.querySelector('.js_jacpkpots_cont[data-view-type="web"]') && document.querySelectorAll('.js_jacpkpots').length > 0) { setJackpotHoverPosition(); } if (document.documentElement.dataset.type == 'Mobile' && document.documentElement.dataset.stickyHeader == 'True') { handleMobileHeaderNavBarAppearance(); } } function handleMobileHeaderNavBarAppearance() { if (document.readyState == 'complete') { let scY = window.scrollY; if (initialScrollY >= scY) { document.documentElement.classList.remove('hide_header_navbar'); } else if (initialScrollY > 5) { document.documentElement.classList.add('hide_header_navbar'); } initialScrollY = scY; } } function getUrlPathQueryHash() { let url = document.location.href.split(document.location.host); if (url.length > 0) { return url[1]; } return document.location.pathname; } function setDatePickerValues() { const period = Number(document.getElementById('js_filter_period').value); const from = document.getElementById('js_filter_from'); const to = document.getElementById('js_filter_to'); from.setAttribute('readonly', true); to.setAttribute('readonly', true); switch (period) { case 1: from.value = formatDate(addDays(new Date(), -1)); to.value = formatDate(addDays(new Date(), 0)); break; case 2: from.value = formatDate(addDays(new Date(), -7)); to.value = formatDate(addDays(new Date(), 0)); break; case 3: from.value = formatDate(addDays(new Date(), -14)); to.value = formatDate(addDays(new Date(), 0)); break; case 4: from.value = formatDate(addDays(new Date(), -30)); to.value = formatDate(addDays(new Date(), 0)); break; case 5: from.removeAttribute('readonly'); to.removeAttribute('readonly'); break; } } function addDays(date, days) { date.setDate(date.getDate() + days); return date; } function formatDate(date) { let d = new Date(date), month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear(); if (month.length < 2) month = '0' + month; if (day.length < 2) day = '0' + day; return [year, month, day].join('-'); } function checkFromToDates(elem) { const from = document.getElementById('js_filter_from'); const to = document.getElementById('js_filter_to'); var datePartsStart = (from.value).split('-'); var datePartsEnd = (to.value).split('-'); // Reorder the date parts to MM/DD/YYYY var formattedDateStart = datePartsStart[1] + '/' + datePartsStart[2] + '/' + datePartsStart[0]; var formattedDateEnd = datePartsEnd[1] + '/' + datePartsEnd[2] + '/' + datePartsEnd[0]; var Date_Dtart = new Date(formattedDateStart); var Date_End = new Date(formattedDateEnd); var timeDifference = Date_End - Date_Dtart; // Convert time difference from milliseconds to days var daysDifference = timeDifference / (1000 * 3600 * 24); if (from.value == '' || to.value == '' || new Date(from.value) > new Date(to.value)) { switch (elem.name) { case 'From': from.value = to.value break; case 'To': to.value = from.value break; } createToast('error', 'From date cannot be greater than the To date', 4000); return false; } else if (daysDifference > 90) { createToast('error', $("#js_ThreeMonthMessage").val(), 4000); return false; } return true; } function loaderInsideShowHide(buttonId, show) { let btn = document.getElementById(buttonId); if (btn) { let lInside = btn.querySelector('#js_loader_inside'); let lReplace = btn.querySelector('#js_loading_replace'); if (lInside && lReplace) { lInside.style.display = show ? 'block' : 'none'; lReplace.style.display = show ? 'none' : 'block'; } } } function getCss(name) { if (document.querySelector('link[href="' + name + '"]') != null) { return Promise.resolve(); } return new Promise((resolve, reject) => { const link = document.createElement('link'); link.rel = 'stylesheet'; link.href = name; link.onload = () => resolve(); link.onerror = () => resolve(); document.head.appendChild(link); }); } function startEgtJackBorderAnim(cdnUrl, speed) { let jackpotsCont = document.getElementsByClassName('js_jacpkpots'); for (let i = 0; i < 4; i++) { jackpotsCont[i].style.backgroundImage = 'url(' + cdnUrl + 'Img/icons/redesign/jackpot_backgr.png)'; } function jackpotAnim(elnum) { let jackpotAnimPos = 0; let jackpotAnimInt = setInterval(function () { jackpotsCont[elnum].style.backgroundPosition = '0px -' + jackpotAnimPos + 'px'; jackpotAnimPos = jackpotAnimPos + 92.6; if (jackpotAnimPos > 2500) { clearInterval(jackpotAnimInt); } }, speed); } for (var i = 0; i < 4; i++) { (function (i) { setTimeout(function () { jackpotAnim(i) }, i * 400); })(i); } } function CheckClientCashback() { return $.ajax({ url: "/Account/CheckCashback", type: "GET", datatype: "json", success: function (result) { if (result && result != '') { $('body').append(result).addClass('ofh'); } } }); } function showHideLoader(show) { if (show) { if (typeof showSpinner === 'function') { showSpinner(); } } else { if (typeof hideSpinner === 'function') { hideSpinner(); } } } function toggleLeftSidebar() { if (document.body.classList.contains('cw_mob_root-sidebar_opened')) { closeLeftSideBar(); } else { openLeftSideBar(); } } function openLeftSideBar() { if (document.body.classList.contains('cw_mob_root-right_sidebar_opened')) { closeRightSidebar(); } handleBottomActiveNavItemStateChange(true, 'js_nav_left_toggle_btn'); document.body.classList.add('cw_mob_root-sidebar_opened'); document.body.style.overflow = 'hidden'; $('#js_to_top_cont').css('z-index', '0'); } function closeLeftSideBar() { handleBottomActiveNavItemStateChange(false, 'js_nav_left_toggle_btn'); document.body.classList.remove('cw_mob_root-sidebar_opened'); document.body.removeAttribute('style'); $('#js_to_top_cont').removeAttr('style'); } function toggleRightSidebar(openBalance) { if (document.body.classList.contains('cw_mob_root-right_sidebar_opened')) { closeRightSidebar(); } else { openRightSidebar(openBalance); } } function openRightSidebar(openBalance) { if (document.getElementById('js_login_sidebar_cont') == null) { handleRightSideBarVisibility(openBalance); } else { $.ajax({ url: "/Login/LoginPartial", type: "POST", success: function (result) { $('#js_login_sidebar_cont').html(result); }, error: function (xhr, status, error) { if (xhr.getResponseHeader('cf-mitigated') === 'challenge') { location.href = '/login/login'; } } }).then(() => { handleRightSideBarVisibility(openBalance); }); } } function handleRightSideBarVisibility(openBalance) { if (document.body.classList.contains('cw_mob_root-sidebar_opened')) { closeLeftSideBar(); } handleBottomActiveNavItemStateChange(true, 'js_nav_right_toggle_btn'); document.body.classList.add('cw_mob_root-right_sidebar_opened'); document.body.style.overflow = 'hidden'; $('#js_to_top_cont').css('z-index', '0'); openBalance && $('.js_balance_content .js_balances').click(); } function closeRightSidebar() { handleBottomActiveNavItemStateChange(false, 'js_nav_right_toggle_btn'); document.body.classList.remove('cw_mob_root-right_sidebar_opened'); document.body.removeAttribute('style'); $('#js_to_top_cont').removeAttr('style'); //$(".balance__slider").hasClass("opened") && $('.js_balance_content .js_balances').click(); } function handleBottomActiveNavItemStateChange(open, toggleBtnId) { let togglebtn = document.getElementById(toggleBtnId); let lgBtn = document.getElementById('js_mob_sign_in'); if (open) { let bmNavItem = document.querySelectorAll('.js_bm_nav_items'); if (togglebtn) { if (togglebtn.classList.contains('tl_main_nav_item-active')) { togglebtn.dataset.keepActiveClass = 'true'; } else { for (var i = 0; i < bmNavItem.length; i++) { if (bmNavItem[i].classList.contains('tl_main_nav_item-active')) { bottomActiveNavItem = bmNavItem[i]; } } togglebtn.classList.add('tl_main_nav_item-active'); togglebtn.dataset.keepActiveClass = 'false'; } } if (lgBtn) { document.body.classList.add('login_sidebar'); } if (typeof bottomActiveNavItem == 'object') { bottomActiveNavItem.classList.remove('tl_main_nav_item-active'); if (bottomActiveNavItem.dataset.moreItem == 'true') { removeClassIfElemExists('js_nav_more_toggle_btn', 'tl_main_nav_item-active'); } } } else { if (typeof bottomActiveNavItem == 'object') { bottomActiveNavItem.classList.add('tl_main_nav_item-active'); if (bottomActiveNavItem.dataset.moreItem == 'true') { addClassIfElemExists('js_nav_more_toggle_btn', 'tl_main_nav_item-active'); } if (bottomActiveNavItem.id == 'js_nav_right_toggle_btn' || bottomActiveNavItem.id == 'js_nav_left_toggle_btn') { bottomActiveNavItem = ''; } } if (togglebtn && togglebtn.dataset.keepActiveClass != 'true') { togglebtn.classList.remove('tl_main_nav_item-active'); } if (lgBtn) { document.body.classList.remove('login_sidebar'); } } } function hideBottomNavBar() { document.body.classList.add('without_navbar'); document.getElementById('js_bn_nav_bar').classList.add('cw_mob_mav_fixed_bot_hide'); } function showBottomNavBar() { document.body.classList.remove('without_navbar'); document.getElementById('js_bn_nav_bar').classList.remove('cw_mob_mav_fixed_bot_hide'); } function handleSpAppEventDispatch(data, setActiveClass) { if (data) { switch (data.type) { case 3: if (data.message && data.message.path) { switch (data.message.path.toLowerCase()) { case '/bet-history': case '/chat': hideBottomNavBar(); break; case '/live': showBottomNavBar(); if (setActiveClass) { setSpActiveClassToNavBar('live'); } break; case '/pre-match': showBottomNavBar(); if (setActiveClass) { setSpActiveClassToNavBar('prematch'); } break; case '/event-details': showBottomNavBar(); if (setActiveClass) { if (data.message.qs) { setSpActiveClassToNavBar(data.message.qs.isLive == '0' ? 'prematch' : 'live'); } } break; case '/': showBottomNavBar(); if (setActiveClass) { setSpActiveClassToNavBar('sport'); } break; default: showBottomNavBar(); break; } } break; default: showBottomNavBar(); break; } } } function setSpActiveClassToNavBar(page) { let navBarItems = document.querySelectorAll('.js_bm_nav_items'); let navBarItemsLength = navBarItems.length; let urlFound = false; let fundUrlCount = 0; for (let i = 0; i < navBarItemsLength; i++) { if (navBarItems[i].href) { urlFound = page == 'sport' ? navBarItems[i].href.toLowerCase().endsWith('/sport') || navBarItems[i].href.toLowerCase().endsWith('/sport/reactindex') : navBarItems[i].href.toLowerCase().endsWith('/sport/live') || navBarItems[i].href.toLowerCase().endsWith('#live/page') || navBarItems[i].href.toLowerCase().endsWith('#live'); urlFound = page == 'prematch' ? navBarItems[i].href.toLowerCase().endsWith('/sport/prematch') || navBarItems[i].href.toLowerCase().endsWith('/sport/pre-match') || navBarItems[i].href.toLowerCase().endsWith('#pre-match') : urlFound } navBarItems[i].classList.remove('tl_main_nav_item-active'); if (urlFound && fundUrlCount == 0) { fundUrlCount++; navBarItems[i].classList.add('tl_main_nav_item-active'); } } } function addClassIfElemExists(elemId, className) { let elem = document.getElementById(elemId); if (elem) { elem.classList.add(className); } } function removeClassIfElemExists(elemId, className) { let elem = document.getElementById(elemId); if (elem) { elem.classList.remove(className); } } function setActiveClassToLeftOrRightNavButton(href, isLeftBtnDefaultActive) { if (href.includes('/account') || href.includes('/bonus') || href.includes('/referafriend') || href.includes('/responsiblegaming') || href.includes('/agent')) { addClassIfElemExists('js_nav_right_toggle_btn', 'tl_main_nav_item-active'); } else if (isLeftBtnDefaultActive) { addClassIfElemExists('js_nav_left_toggle_btn', 'tl_main_nav_item-active'); } } function setCookie(cname, cvalue, exdays, domain) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toGMTString(); if (typeof domain != 'undefined' && domain != '') { document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/;domain=" + domain; } else { document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } } function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } function skeletOn(type, count, contId) { let html = ''; switch (type) { case 'jackpot': html = `
`; for (let i = 0; i < count; i++) { html += `
` + `
`; } html += `
`; break; } $(contId).html(html); } function skeletOff(type) { switch (type) { case 'topwins': $('#js_top_winers_skelet').remove(); break; } } function getCurrentPage() { _stParam = btoa(window.location.hostname); return _stParam; } function handleBalancesVisibility() { if (window.js_mw_sport_balances != undefined) { let isVisCashbackBalance = window.CashbackBalancePanel && !window.CashbackBalancePanel.classList.contains('dis_none'); let isVisSpTournamentBalance = window.TournamentBalancePanel && !window.TournamentBalancePanel.classList.contains('dis_none'); let isVisSpBonusBalance = window.SportBonusPanel && !window.SportBonusPanel.classList.contains('dis_none'); if (!isVisCashbackBalance || isVisSpTournamentBalance || isVisSpBonusBalance) { window.js_mw_sport_balances.style.display = "block"; } else { window.js_mw_sport_balances.style.display = "none"; } } else if (window.js_balance_content != undefined && !window.js_balance_content.classList.contains('js_balance_content')) { let isVisBonusBalance = window.bonusBalanceCont && !window.bonusBalanceCont.classList.contains('hidden'); let isVisCashbackBalance = window.CashbackBalancePanel && !window.CashbackBalancePanel.classList.contains('dis_none'); let isVisSpTournamentBalance = window.TournamentBalancePanel && !window.TournamentBalancePanel.classList.contains('dis_none'); let isVisSpBonusBalance = window.SportBonusPanel && !window.SportBonusPanel.classList.contains('dis_none'); if (isVisBonusBalance || isVisCashbackBalance || isVisSpTournamentBalance || isVisSpBonusBalance) { window.js_balance_content.classList.add('js_balance_content'); window.js_balances_ddwn.classList.add('js_balances'); window.js_balances_ddwn_arrow.classList.remove('hidden'); } else { window.js_balance_content.classList.remove('js_balance_content'); window.js_balances_ddwn.classList.remove('js_balances'); window.js_balances_ddwn_arrow.classList.add('hidden'); } } } function showHideButtonLoader(btnId, show) { let btn = document.getElementById(btnId); let fontSize = 36; if (btn) { if (show) { btn.style.pointerEvents = 'none'; fontSize = btn.dataset.loaderFontSize != undefined ? btn.dataset.loaderFontSize : 36; btn.style.minWidth = btn.getBoundingClientRect().width + 'px'; loaderBtnInnerHtml = btn.innerHTML; btn.innerHTML = `` + `` + ``; } else { btn.style.minWidth = ''; btn.style.pointerEvents = ''; if (loaderBtnInnerHtml != '') { btn.innerHTML = loaderBtnInnerHtml; } } } } function setJackpotHoverPosition() { let scrolledval = $(window).scrollTop(); let needScrollVal = $('.top_jackpots__block').offset().top - ($(window).height() / 2); if (scrolledval > needScrollVal) { $('.top_jackpots__hover_block').css({ 'bottom': 'auto', 'top': '100%' }) } else { $('.top_jackpots__hover_block').css({ 'bottom': '100%', 'top': 'auto' }) } } function showHideMoreMenu(show) { if (show) { $('#js_nav_more_toggle_btn').addClass('opened_menu') $('#js_more_content').addClass('opened_circle'); } else { $('#js_nav_more_toggle_btn').removeClass('opened_menu') $('#js_more_content').removeClass('opened_circle'); } } function hasLoginButton(html) { let btns = $(html).find('.loginDialog'); if (btns.length > 0) { return true; } btns = $(html).find('#js_mob_sign_in'); if (btns.length > 0) { return true; } return false; } function parentsNative(el, selector) { const parents = []; while ((el = el.parentNode) && el !== document) { if (!selector || el.matches(selector)) parents.push(el); } return parents; } function isElemOrChildrenSameAsTarget(elemSelector, target) { if (target.matches(elemSelector)) { return true; } let returnVal = false; let parents = parentsNative(target, elemSelector); if (parents.length > 0) { parents.forEach((p) => { if (p.matches(elemSelector)) { returnVal = true; } }); } return returnVal; } let allowCashierPopup = true; function openCashierPopup(pmType, amount = '') { if (document.body.classList.contains('cw_mob_root-right_sidebar_opened')) { closeRightSidebar(); } if (allowCashierPopup) { allowCashierPopup = false; if (pmType != 1 && pmType != 2) { return; } showHideLoader(true); $('body').addClass('ofh'); $.ajax({ url: "/Account/GetPaymentByCashier", type: "POST", datatype: "json", data: { paymentType: pmType, currentPath: document.location.pathname, amount: amount }, success: function (result) { $('body').append(result); showHideLoader(false); allowCashierPopup = true; }, }); } } function closeCashierPopup() { let cash_popup = $('body').find('.js_cashier_wrapper'); if (cash_popup) { if (typeof click != 'undefined') { click = 0; } if (cash_popup.attr("depositLeave") != undefined && window.dataLayer) { window.dataLayer.push({ 'event': 'deposit_page_leave', 'event_category': 'deposit' }); } $(cash_popup).remove(); $('body').removeClass('ofh'); showHideLoader(false); let url = window.location.href.toLowerCase(); if (url.includes('?deposit=1')) { url = url.replace('?deposit=1', ''); history.replaceState({ id: '' }, '', url); if (typeof changeLanguageBarUrl == 'function') { let currentLang = document.documentElement.lang; let isLnInUrl = url.split('/' + currentLang + '/').length > 1; changeLanguageBarUrl(isLnInUrl ? '/' + currentLang + '/' : '/'); } }; } } let allowBnReqPopup = true; function openBonusRequestPopup(fromWeb, fromTab) { if (document.body.classList.contains('cw_mob_root-right_sidebar_opened')) { closeRightSidebar(); } if (allowBnReqPopup && allowCashierPopup) { allowBnReqPopup = false; showHideLoader(true); if (!$('body').hasClass('ofh')) { $('body').addClass('ofh'); } $.ajax({ url: "/Bonus/GetBonusRequest", type: "POST", datatype: "json", success: function (result) { if (result == 0) { if (fromWeb) { if (fromTab) { loadTab('deposit_tab', "/Account/Deposit", function () { activateTab('deposit_tab'); }); } else { showAccountPopup('/Account/Deposit', 'deposit_tab', { width: 1600, height: 681, }); } allowBnReqPopup = true; } else { $.ajax({ url: "/Account/IsPaymentsByCashier", type: "POST", datatype: "json", success: function (result) { if (result == "True") { openCashierPopup(1); } else { document.location.href = "/account/deposit"; } allowBnReqPopup = true; }, }); } } else { $('body').append(result); allowBnReqPopup = true; } showHideLoader(false); } }); } } function openDepositFromBnReqPopup(bonusId, rewardType) { showHideLoader(true); $.ajax({ url: "/Account/Deposit", type: "POST", datatype: "json", data: { bonusId: bonusId, depWithoutReward: rewardType }, success: function (result) { $('body').append(result).addClass('ofh'); showHideLoader(false); } }); } function openLogoutConfPopup() { showHideLoader(true); $.ajax({ url: "/Account/ConfirmLogout", success: function (result) { $('body').append(result).addClass('ofh'); showHideLoader(false); } }); } function openRegCloseConfPopup() { showHideLoader(true); window.allowOpenRegCloseConfirmPopup = false; $.ajax({ url: "/Registration/ConfirmRegClose", success: function (result) { $('body').append(result); showHideLoader(false); } }); } function closeAllNativeSelects() { const selects = document.querySelectorAll('select'); selects.forEach(select => { select.blur(); }); } if (!String.prototype.format) { String.prototype.format = function () { var args = arguments; return this.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); }; } function updateMetaTags(newMeta) { if (newMeta.title) { document.title = newMeta.title; let titleTag = document.querySelector("title"); if (!titleTag) { titleTag = document.createElement("title"); document.head.appendChild(titleTag); } titleTag.textContent = newMeta.title; } if (newMeta.canonical) { let canonicalTag = document.head.querySelector('link[rel="canonical"]'); if (!canonicalTag) { canonicalTag = document.createElement('link'); canonicalTag.setAttribute('rel', 'canonical'); document.head.appendChild(canonicalTag); } canonicalTag.setAttribute('href', newMeta.canonical); } function setMetaTag(name, content, attrName = "name") { let meta = document.querySelector(`meta[${attrName}="${name}"]`); if (!meta) { meta = document.createElement("meta"); meta.setAttribute(attrName, name); document.head.appendChild(meta); } meta.setAttribute("content", content); } if (newMeta.description) setMetaTag("description", newMeta.description); if (newMeta.keywords) setMetaTag("keywords", newMeta.keywords); if (newMeta.metaTitle) setMetaTag("title", newMeta.metaTitle); if (newMeta.ogTitle) setMetaTag("og:title", newMeta.ogTitle, "property"); if (newMeta.ogDescription) setMetaTag("og:description", newMeta.ogDescription, "property"); if (newMeta.ogUrl) setMetaTag("og:url", newMeta.ogUrl, "property"); if (newMeta.twitterTitle) setMetaTag("twitter:title", newMeta.twitterTitle); if (newMeta.twitterDescription) setMetaTag("twitter:description", newMeta.twitterDescription); } const _loadedScripts = new Set(); function loadScriptOnce(src, callback) { if (_loadedScripts.has(src)) { if (callback) { callback(); } return; } _loadedScripts.add(src); const script = document.createElement("script"); script.src = src; script.async = true; if (callback) { script.onload = callback; } script.onerror = function () { console.warn('Failed to load script ' + src); }; document.head.appendChild(script); } const _loadedStyles = new Set(); function loadCssOnce(href) { if (_loadedStyles.has(href)) { return; } _loadedStyles.add(href); const link = document.createElement("link"); link.rel = "stylesheet"; link.href = href; document.head.appendChild(link); } function waitForJs(callback, objName) { let attempts = 0; const interval = setInterval(() => { if (typeof window[objName] != 'undefined') { clearInterval(interval); callback(); } else if (attempts >= 10) { clearInterval(interval); } attempts++; }, 300); }; document.addEventListener('click', function (e) { //check is the right element clicked if (!e.target.matches('.t-close')) return; else { //get toast element var toastElement = e.target.parentElement; // remove active class from it to trigger css animation with duration of 300ms toastElement.classList.remove('active'); //wait for 350ms and then remove element setTimeout(function () { toastElement.remove(); }, 350); } }); $(document).on('click', '#js_close_err_popup', function () { clearInterval(errorPopupInterval); $('#js_error_popup').remove(); }); $(document).on('click', '.js_banner_video_link', function (e) { if ($(e.target).hasClass('js_voice_icon') || $(e.target).parents().hasClass('js_voice_icon')) { let muteElem = $(e.target).hasClass('js_voice_icon') ? e.target : $(e.target).parents('.js_voice_icon')[0]; let videoElem = $(muteElem).siblings('video')[0]; let slider = ''; if ($(this).parents('.swiper-initialized').length > 0 && typeof $(this).parents('.swiper-initialized')[0].swiper != 'undefined') { slider = $(this).parents('.swiper-initialized')[0].swiper; } if (videoElem) { if (videoElem.muted) { videoElem.muted = false; $(muteElem).removeClass('muted') if (slider != '') { slider.autoplay.stop(); } } else { $(muteElem).addClass('muted') videoElem.muted = true; if (slider != '') { slider.autoplay.start(); } } } } else if ($(this).attr('data-href')) { let targetType = $(this).attr('data-target'); if (targetType == '_self') { location.href = $(this).attr('data-href'); } else { window.open($(this).attr('data-href'), '_blank').focus(); } } }); $(document).on("click", ".js_close_ytb_popup", function () { $('#js_ytb_video_cont').html('').hide(); }); window.addEventListener('DOMContentLoaded', (event) => { toTopBtnCont = document.getElementById('js_to_top_cont'); webHdr = document.getElementById('header_fix'); document.removeEventListener('scroll', handleDocumentScroll, false); document.addEventListener('scroll', handleDocumentScroll, false); if (document.getElementById('js_to_top')) { document.getElementById('js_to_top').addEventListener('click', function () { window.scrollTo({ top: 0, behavior: 'smooth' }); }); } handleDocumentScroll(); }); $(document).on('click', '.js_copy_button', function () { let copyValElem = $(this).siblings('.js_copy_val')[0]; if (copyValElem == undefined) { copyValElem = $(this).closest('div').find('.js_copy_val')[0] } let text = ''; if (copyValElem.tagName == 'INPUT') { text = copyValElem.value; } else { text = copyValElem.innerText; } let msgTxt = this.dataset.valMsg != undefined ? this.dataset.valMsg : 'Copied'; if (!copyBtnClicked) { copyBtnClicked = true; writeToClipboard(text); let done = `
${msgTxt}
`; $(this).parent().append(done); setTimeout(function () { $('.js_copy_msg_info').fadeOut(300, function () { $('.js_copy_msg_info').remove(); }); }, 1000); setTimeout(function () { copyBtnClicked = false; }, 1500); } }); $(document).on('click', '.js_sidebar_ddwn_btn', function () { $(this).parents('.js_sidebar_ddwn').toggleClass('opened'); }); $(document).on('click', '.js_cashier_popup', function (e) { let paymentType = $(this).attr('data-paymentType'); openCashierPopup(paymentType); }); $(document).on('click', '.js_cashier_close', function (e) { closeCashierPopup(); }); $(document).on('click', '#js_deposit_rm', function (e) { openBonusRequestPopup(); }); $(document).on('click', '.js_bn_request_popup', function (e) { openBonusRequestPopup(); }); $(document).on('click', '.js_newsletter_checkbox', function (e) { this.value = this.checked; }); $(document).on('click', '.js_jackpot_link', function (e) { e.preventDefault(); e.stopPropagation(); let redirectUrl = $(this).parents('.js_jacpkpots_cont').attr('data-url'); if (redirectUrl && redirectUrl != '') { if (typeof WidgetBasedPageHelper == 'object' && typeof WidgetBasedPageHelper.init === 'function') { getPageContent(redirectUrl, false); if (window.js_topJackpot_cover) { $('body').removeClass('ofh'); $('#js_topJackpot_cover').remove(); $('.top_jackpots__hover_block').css('bottom', '-500px'); } } else { if (document.location.href.toLowerCase().includes('/lobby/')) { $('#js_to_top_cont').removeAttr('style'); let group = 'all'; let prv = 'all'; let groupPrv = redirectUrl.toLowerCase().split('main'); let urlSplitted = document.location.href.toLowerCase().split('main'); if (!document.location.href.toLowerCase().includes(groupPrv[0].toLowerCase())) { document.location.href = redirectUrl; return; } if (groupPrv.length > 1) { let groupPrvSplited = groupPrv[1].split('/'); if (groupPrvSplited.length == 3) { group = groupPrvSplited[1]; prv = groupPrvSplited[2]; } else if (groupPrvSplited.length == 2) { group = groupPrvSplited[1]; } } let allowClick = true; if (urlSplitted.length > 1 && groupPrv.length > 1 && urlSplitted[1] == groupPrv[1]) { allowClick = false; } let slotGroup = $('[data-url="' + group + '"]'); let egtcat = $('[data-url="' + prv + '"]'); if (slotGroup.length > 0 && egtcat.length > 0) { if (allowClick) { $('.js_lobby_groups').removeClass('active'); $('.js_lobby_cats').removeClass('active'); slotGroup[0].classList.add('active'); egtcat[0].classList.add('active'); gamesData.Page = 0; imgSortIndex = 0; gamesData.CategoryId = [egtcat[0].dataset.id]; gamesData.GroupId = slotGroup[0].dataset.id; gamesData.GroupTypeId = slotGroup[0].dataset.typeId; gamesData.TakeCount = slotGroup[0].dataset.takeCount; GetGames('js_games_lobby'); setPageUrl(); } let slidePos = Number(slotGroup[0].dataset.pos); Lobbies.slider.slideTo(slidePos > 0 ? slidePos - 1 : 0, 0); } else { slotGroup = $('.js_lobby_groups'); } if (window.js_topJackpot_cover) { $('body').removeClass('ofh'); $('#js_topJackpot_cover').remove(); $('.top_jackpots__hover_block').css('bottom', '-500px'); } $('html, body').animate({ scrollTop: $(slotGroup[0]).offset().top - 500 }, 200); } else { document.location.href = redirectUrl; } } } else { if (window.js_topJackpot_cover) { $('body').removeClass('ofh'); $('#js_topJackpot_cover').remove(); $('.top_jackpots__hover_block').css('bottom', '-500px'); } } }); $(document).on('click', '.js_acc_btns', function () { let elem = this; let panel = elem.nextElementSibling; elem.classList.toggle("active"); elem.parentNode.classList.toggle("active"); if (panel.style.maxHeight) { panel.style.maxHeight = null; } else { panel.style.maxHeight = panel.scrollHeight + "px"; } }); $(document).on('click', '.js_pass_eye_btn', function () { let btnFor = this.dataset.btnFor; if ($(this).hasClass('opened_pass')) { $(this).removeClass('opened_pass'); $('#' + btnFor).attr('type', 'text'); } else { $('#' + btnFor).attr('type', 'password'); $(this).addClass('opened_pass'); } if (btnFor == "Country") { let profFlag = document.getElementById('js_dy_prof_flag'); if (profFlag != null) { if ($('#' + btnFor).attr('type') == 'password') { profFlag.classList.add('hidden'); $(profFlag).parents('.dyn_form_group').removeClass('dyn_form_group_flag'); } else { profFlag.classList.remove('hidden'); $(profFlag).parents('.dyn_form_group').addClass('dyn_form_group_flag'); } } } }); $(document).on('click', '.js_logout_confirm', function (e) { openLogoutConfPopup(); if (document.body.classList.contains('cw_mob_root-right_sidebar_opened')) { $(this).parent().removeClass('opened'); closeRightSidebar(); } }); $(document).on('click', '.js_close_logout_confirm_popup', function (e) { e.preventDefault(); e.stopPropagation(); let logout_popup = $('body').find('.js_logout_conf_popup_cont'); if (logout_popup) { $(logout_popup).remove(); $('body').removeClass('ofh'); } }); $(document).on('click', '.js_backto_reg_popup', function (e) { e.preventDefault(); e.stopPropagation(); let reg_warn_popup = $('body').find('.js_regClose_conf_popup_cont'); if (reg_warn_popup) { $(reg_warn_popup).remove(); } window.allowOpenRegCloseConfirmPopup = true; }); $(document).on('click', '.js_close_reg_popup_confirm', function (e) { e.preventDefault(); e.stopPropagation(); if ($('#registerForm .js_tl_head_close').hasClass('login')) { $('#registerForm .js_tl_head_close').removeClass('login'); setTimeout(function () { LoginTrigger(); }, 500); } let reg_warn_popup = $('body').find('.js_regClose_conf_popup_cont'); if (reg_warn_popup) { $(reg_warn_popup).remove(); } window.allowOpenRegCloseConfirmPopup = false; $('.js_tl_head_close').closest(".ui-dialog-content").dialog("close"); click = 0; showpopup = true; if (typeof escapeHandler == 'function') { window.removeEventListener('keydown'); } }); $(document).on('click', '.js_close_restricted_message', function () { var url = window.location.href.toLocaleLowerCase(); if (url.includes('/loginrestricted')) { url = url.replace('/loginrestricted', '/'); window.location.href = url; } else if (url.includes('/regrestricted')) { url = url.replace('/regrestricted', '/'); window.location.href = url; }; $('#js_restricted_message_cont').remove(); }); window.addEventListener('message', (event) => { if (event.data && typeof event.data.type == 'string') { let eventType = event.data.type.toLowerCase(); if (eventType.startsWith('cw')) { switch (eventType) { case 'cw_open_declarations': if (hasLoginButton(document)) { LoginTrigger(); } else { let lang = document.documentElement.lang; let type = document.documentElement.dataset.type; if (type && type.toLowerCase() == 'mobile') { let url = document.location.href.toLowerCase(); if (url.includes('/account/declarations')) { let cashierCloseBtn = document.querySelector('.js_cashier_close'); if (cashierCloseBtn != null) { closeRightSidebar(); closeCashierPopup(); } } else { window.location.href = '/' + lang + '/Account/Declarations'; } } else { let declarationsPopupBtn = document.querySelector('#declarations_tab'); let url = '/' + lang + '/Account/Declarations'; if (declarationsPopupBtn != null) { loadTab('declarations_tab', url, function () { activateTab('declarations_tab'); }); } else { showAccountPopup(url, 'declarations_tab'); } } } break; case 'cw_close_cashier': closeCashierPopup(); break; case 'cw_update_profile': if (!hasLoginButton(document)) { let type = document.documentElement.dataset.type; if (type && type.toLowerCase() == 'mobile') { let url = document.location.href.toLowerCase(); if (url.includes('/account/profile')) { closeRightSidebar(); let cashierCloseBtn = document.querySelector('.js_cashier_close'); if (cashierCloseBtn != null) { closeCashierPopup(); } } else { ProfileTrigger(); } } else { let profilePopupBtn = document.querySelector('#profile_tab'); if (profilePopupBtn != null) { loadTab('profile_tab', profilePopupBtn.dataset.href, function () { activateTab('profile_tab'); }); } else { ProfileTrigger(); } } } break; default: console.warn(`Wrong command: The "${event.data.type}" does not supported.`) break; } } } }); const TopProgressBar = (function () { let bar = null; let progress = 0; let frame = null; let isRunning = false; let activeToken = null; const sessions = new Map(); let config = { trickleSpeed: 0.006, targetOpacity: 0.3, }; function createBar() { if (bar) return; bar = document.createElement('div'); bar.classList.add('cw_progress_bar') Object.assign(bar.style, { position: 'fixed', top: '0', left: '0', height: '3px', width: '100%', transform: 'scaleX(0)', transformOrigin: 'left', backgroundColor: 'var(--btn-primary, var(--cwButtonBg))', zIndex: '9999', opacity: '1', transition: 'transform 0.2s ease-out, opacity 0.3s ease', pointerEvents: 'none', willChange: 'transform, opacity', }); document.body.appendChild(bar); } function loop() { if (!isRunning) return; const delta = Math.random() * config.trickleSpeed; if (progress < 0.9) { progress = Math.min(progress + delta, 0.9); update(); frame = requestAnimationFrame(loop); } } function update() { if (bar) { bar.style.transform = `scaleX(${progress})`; } } function start(options = {}) { config = { ...config, ...options, }; createBar(); progress = 0; isRunning = true; update(); frame = requestAnimationFrame(loop); const token = Symbol('progress'); activeToken = token; let targetEl = null; if (options.target) { targetEl = typeof options.target === 'string' ? document.querySelector(options.target) : options.target; if (targetEl) { targetEl.style.transition = 'opacity 0.1s ease'; targetEl.style.opacity = config.targetOpacity; targetEl.style.pointerEvents = 'none'; } } sessions.set(token, { targetEl }); return token; } function done(token) { if (!sessions.has(token)) return; const { targetEl } = sessions.get(token); sessions.delete(token); if (token !== activeToken) { if (targetEl) { targetEl.style.opacity = '1'; targetEl.style.pointerEvents = ''; } return; } isRunning = false; cancelAnimationFrame(frame); progress = 1; update(); if (targetEl) { targetEl.style.opacity = '1'; targetEl.style.pointerEvents = ''; } setTimeout(() => { if (bar) bar.style.opacity = '0'; setTimeout(() => { if (bar && bar.parentNode) { bar.parentNode.removeChild(bar); bar = null; } progress = 0; activeToken = null; }, 300); }, 200); } return { start, done }; })(); async function getTelemetryData(params, version) { if (typeof (Worker) === "undefined") { window._w_telemetry_promise = null; return Promise.reject(new Error("Web Worker API is not supported")); } if (!window._w_worker) { window._w_worker = new Worker('/Scripts/Util/core-telemetry.js?v=1.0.8'); } return new Promise((resolve, reject) => { const handleResponse = (e) => { window._w_worker.removeEventListener('message', handleResponse); if (e.data.success) { resolve(e.data); } else { reject(new Error(e.data.error)); } }; window._w_worker.addEventListener('message', handleResponse); window._w_worker.onerror = (err) => { window._w_worker.removeEventListener('message', handleResponse); reject(err); }; if (version === 'v') { window._w_worker.postMessage({ m: 'v', p: params }); } else { window._w_worker.postMessage({ m: 'v1' }); } }); } function appendParamInForm(elemName, val, formId) { let lg_param = document.getElementById('js_lg_' + elemName); if (lg_param != null) { lg_param.value = val; } else { let lgForm = document.getElementById(formId); const lg_paramInput = document.createElement('input'); lg_paramInput.type = 'hidden'; lg_paramInput.name = elemName; lg_paramInput.id = 'js_lg_' + elemName; lg_paramInput.value = val; lgForm.appendChild(lg_paramInput); } } function setLgParam(val, formId) { if (val.first) { appendParamInForm('loginParam', val.first, formId); } if (val.second) { appendParamInForm('loginParam1', val.second, formId); } appendParamInForm('loginParam2', Date.now(), formId); } window.addEventListener('storage', function (event) { if (event.key === 'currency_changed' && event.newValue) { localStorage.removeItem('currency_changed'); window.location.reload(); } });