var BalanceUpdater = { PlayerId: 0, _intervalId: null, _isRunning: false, _updateInterval: null, start: function () { CurrencyManager.init(this.PlayerId); if (this._isRunning) return; this._intervalId = setInterval(this.getBalanceAmount.bind(this), this._updateInterval); this._isRunning = true; }, tryUpdateStatus: function () { var t = this; if (this._isRunning) { return; } if (t._intervalId) { clearTimeout(t._intervalId); } $.ajax({ url: '/Common/GetLoginStatus', type: 'post', dataType: 'json', showLoader: false, success: function (data) { if ((typeof window.regClicked === 'undefined' || !window.regClicked) && data && data.Reload == "Reload") { if (document.location.href.toLowerCase().indexOf("registration/register") > -1) { return; } document.location.reload(); } else { t._intervalId = setTimeout(t.tryUpdateStatus.bind(t), 60000); } } }); }, checkLoginStatus: function (data) { const cachedStatus = sessionStorage.getItem('_stChecked'); if (!cachedStatus || cachedStatus != 'true') { getTelemetryData(data, 'v').then((result) => { checkStatus(result.data); }).catch((err) => { checkStatus(err); }); } function checkStatus(param) { $.ajax({ url: '/common/checkloginstatus', type: 'post', data: { param: param }, dataType: 'json', success: function (data) { sessionStorage.setItem('_stChecked', true); } }); } }, stop: function () { clearInterval(this._intervalId); this._isRunning = false; }, getBalanceAmount: function () { var self = this; if (this.PlayerId > 0) { $.ajax({ url: '/Wallet/GetBalanceStatus', type: 'post', dataType: 'json', showLoader: false, dataFilter: function (data, type) { if (type === 'json') { return data.replace(/:\s*([-+]?\d+\.\d+)([,\s}])/g, ': "$1"$2'); } return data; }, success: function (data, text, request) { self.onBalanceStatus(data); responsibleGamingChecks(data); if (data.CheckActivity && typeof checkActivity == 'function') { checkActivity(); } } }); } }, onBalanceStatus: function (data) { CurrencyManager.init(this.PlayerId); if (data.Success) { if (window.playerBalance) { window.playerBalance.innerText = CurrencyManager.format(data.Data.AvailableBalance, data.Data.CurrencyId); } if (window.playerBalance1) { window.playerBalance1.innerText = CurrencyManager.format(data.Data.AvailableBalance, data.Data.CurrencyId); } if (window.playerBonusBalance) { if (data.Data.BonusBalance != 0) { window.playerBonusBalance.innerHTML = CurrencyManager.format(data.Data.BonusBalance, data.Data.CurrencyId); window.bonusBalanceCont.classList.remove('hidden'); } else { window.bonusBalanceCont.classList.add('hidden'); } handleBalancesVisibility(); } } else if (data.Reload) { document.location.reload(); } } } function responsibleGamingChecks(data) { var showRealityCheckPopup = data.ShowRealityCheckPopup; if (showRealityCheckPopup == 'yes' && (typeof _allowRealityCheck == 'undefined' || _allowRealityCheck == true)) { getRealityCheckPopupInfo(); } }