JAKARTASLOT88 menggunakan cookies penting agar situs dapat berjalan
dengan baik. Dengan persetujuan Anda, kami juga dapat menggunakan
cookies analitik untuk memahami penggunaan situs, meningkatkan
performa, serta memberikan pengalaman yang lebih nyaman. Silakan membaca
Kebijakan Privasi JAKARTASLOT88
untuk informasi lebih lanjut.
/* =========================================================
DEPO BANK TO QRIS - CLEAN UNIVERSAL EXTERNAL JS v6
Cara pasang:
data-min-value="200" berarti batas QRIS Rp200.000 ke bawah,
dan Bank Transfer mulai Rp201.000 ke atas.
========================================================= */
(function () {
'use strict';
var GLOBAL_KEY = '__DEPO_OVER_EMBED_CLEAN_V6_BANK_ONLY__';
var DEFAULT_MIN_VALUE = 200;
var MAX_AMOUNT = 100000000;
/* Matikan observer versi lama jika sebelumnya sudah pernah dimuat. */
try {
if (window.__DEPO_OVER_EMBED__ && typeof window.__DEPO_OVER_EMBED__.disconnect === 'function') {
window.__DEPO_OVER_EMBED__.disconnect();
}
if (window.__DEPO_OVER_EMBED_STRICT_V2__ && typeof window.__DEPO_OVER_EMBED_STRICT_V2__.disconnect === 'function') {
window.__DEPO_OVER_EMBED_STRICT_V2__.disconnect();
}
if (window.__DEPO_OVER_EMBED_STRICT_V3__ && typeof window.__DEPO_OVER_EMBED_STRICT_V3__.disconnect === 'function') {
window.__DEPO_OVER_EMBED_STRICT_V3__.disconnect();
}
if (window.__DEPO_OVER_EMBED_BLACKGOLD_V4__ && typeof window.__DEPO_OVER_EMBED_BLACKGOLD_V4__.disconnect === 'function') {
window.__DEPO_OVER_EMBED_BLACKGOLD_V4__.disconnect();
}
if (window.__DEPO_OVER_EMBED_BLACKGOLD_V5_BANK_ONLY__ && typeof window.__DEPO_OVER_EMBED_BLACKGOLD_V5_BANK_ONLY__.disconnect === 'function') {
window.__DEPO_OVER_EMBED_BLACKGOLD_V5_BANK_ONLY__.disconnect();
}
if (window.__DEPO_OVER_EMBED_BLACKGOLD_V51_BANK_ONLY__ && typeof window.__DEPO_OVER_EMBED_BLACKGOLD_V51_BANK_ONLY__.disconnect === 'function') {
window.__DEPO_OVER_EMBED_BLACKGOLD_V51_BANK_ONLY__.disconnect();
}
} catch (e) {}
if (window[GLOBAL_KEY] && typeof window[GLOBAL_KEY].refresh === 'function') {
window[GLOBAL_KEY].refresh();
return;
}
var embedScript = document.currentScript || findEmbedScript();
var configuredMin = parseMoney(embedScript ? embedScript.getAttribute('data-min-value') : DEFAULT_MIN_VALUE);
var minValue = configuredMin > 0 ? configuredMin : DEFAULT_MIN_VALUE;
var minimumAmount = minValue * 1000;
var SELECTOR = {
forms: '#deposit_form, form[data-deposit-form]',
amountActual: '#Amount, input[name="Amount"], input[name="amount"], input[data-deposit-amount], [data-deposit-amount]',
amountDisplay: '.deposit_amount_display, [data-deposit-amount-display]',
rangeLabel: '#deposit_amount_range_label, [data-deposit-range-label]',
bankInfo: '#deposit_form #bank_info, [data-bank-info]',
bankSelect: '#deposit_to_bank_select, [data-deposit-to-bank-select]',
destinationLabel: '.to-account-label-container label, [data-to-account-label]',
paymentPopup: '#available_payment_accounts_popup, [data-available-payment-accounts-popup]',
action: 'button, input[type="submit"], input[type="button"], input[type="image"], a, [role="button"], .btn'
};
var boundForms = [];
var observer = null;
var scheduled = false;
var lastBlockAt = 0;
var lastUserSubmitAttemptAt = 0;
function markUserSubmitAttempt() {
lastUserSubmitAttemptAt = Date.now();
}
function isRecentUserSubmitAttempt() {
return Date.now() - lastUserSubmitAttemptAt <= 8000;
}
function findEmbedScript() {
var scripts = document.getElementsByTagName('script');
for (var i = scripts.length - 1; i >= 0; i -= 1) {
var script = scripts[i];
var src = String(script.getAttribute('src') || '');
if (script.getAttribute('data-depo-over-embed') !== null) return script;
if (script.getAttribute('data-min-value') !== null) return script;
if (/DepositScript(?:\.min)?\.js(?:$|[?#])/i.test(src)) return script;
}
return null;
}
function toArray(list) {
return Array.prototype.slice.call(list || []);
}
function all(selector, root) {
try {
return toArray((root || document).querySelectorAll(selector));
} catch (e) {
return [];
}
}
function matches(element, selector) {
if (!element || element.nodeType !== 1) return false;
var proto = Element.prototype;
var fn = proto.matches || proto.msMatchesSelector || proto.webkitMatchesSelector;
if (!fn) return false;
try {
return fn.call(element, selector);
} catch (e) {
return false;
}
}
function closest(element, selector) {
var node = element;
while (node && node.nodeType === 1) {
if (matches(node, selector)) return node;
node = node.parentElement;
}
return null;
}
function uniquePush(list, item) {
if (item && list.indexOf(item) === -1) list.push(item);
}
function safeDecode(value) {
try {
return decodeURIComponent(value);
} catch (e) {
return value;
}
}
function normalizeText(value) {
return String(value == null ? '' : value)
.replace(/\s+/g, ' ')
.trim()
.toUpperCase();
}
function classifyPaymentText(text) {
var t = normalizeText(text);
if (!t) return null;
if (/(QRIS\s*AUTO|AUTO\s*QRIS|QRIS)/.test(t)) return 'QR';
if (/(VIRTUAL\s*ACC|VIRTUAL\s*ACCOUNT|V\s*A\b|\bVA\b)/.test(t)) return 'VA';
if (/(PULSA|TELKOMSEL|XL|INDOSAT|IM3|AXIS|TRI)/.test(t)) return 'PULSA';
if (/(E[\s-]*MONEY|EWALLET|E[\s-]*WALLET|DANA|OVO|GOPAY|SHOPEEPAY|LINKAJA)/.test(t)) return 'EMONEY';
/*
Penting: BANK dicek terakhir agar kata "Bank Tujuan" di form tidak salah dianggap
sebagai tab metode pembayaran aktif.
*/
if (/\bBANK\b/.test(t) && !/(TUJUAN|ASAL|ACCOUNT|REKENING|TRANSFER\s*BANK\s*:\s*RP)/.test(t)) return 'BANK';
return null;
}
function isActivePaymentNode(element) {
if (!element || element.nodeType !== 1) return false;
var activeText = normalizeText(
(element.getAttribute('class') || '') + ' ' +
(element.getAttribute('aria-selected') || '') + ' ' +
(element.getAttribute('aria-current') || '') + ' ' +
(element.getAttribute('data-active') || '') + ' ' +
(element.getAttribute('data-selected') || '')
);
if (/\b(ACTIVE|SELECTED|CURRENT|ON|TRUE)\b/.test(activeText)) return true;
var parent = element.parentElement;
if (parent) {
var parentText = normalizeText(
(parent.getAttribute('class') || '') + ' ' +
(parent.getAttribute('aria-selected') || '') + ' ' +
(parent.getAttribute('aria-current') || '') + ' ' +
(parent.getAttribute('data-active') || '') + ' ' +
(parent.getAttribute('data-selected') || '')
);
if (/\b(ACTIVE|SELECTED|CURRENT|ON|TRUE)\b/.test(parentText)) return true;
}
/*
Fallback visual untuk template yang tidak memberi class active:
tombol aktif biasanya berwarna emas, tombol nonaktif abu-abu.
*/
try {
var style = window.getComputedStyle(element);
var bg = normalizeText((style.background || '') + ' ' + (style.backgroundColor || '') + ' ' + (style.backgroundImage || ''));
if (
bg.indexOf('214, 178, 74') !== -1 ||
bg.indexOf('246, 223, 143') !== -1 ||
bg.indexOf('255, 215') !== -1 ||
bg.indexOf('#D6B24A') !== -1 ||
bg.indexOf('#F6DF8F') !== -1 ||
bg.indexOf('GOLD') !== -1
) return true;
} catch (e) {}
return false;
}
function isInsideAccountSidebar(element) {
var node = element;
var depth = 0;
while (node && node.nodeType === 1 && depth < 5) {
var cls = normalizeText(node.getAttribute('class') || '');
var id = normalizeText(node.getAttribute('id') || '');
var text = normalizeText(node.textContent || '');
if (/(SIDEBAR|SIDE[-_ ]?MENU|LEFT[-_ ]?MENU|MEMBER[-_ ]?MENU|ACCOUNT[-_ ]?MENU|PUSAT[-_ ]?AKUN)/.test(cls + ' ' + id)) return true;
if (
text.indexOf('PUSAT AKUN') !== -1 ||
text.indexOf('KLAIM BONUS') !== -1 ||
text.indexOf('HADIAH LOYALITAS') !== -1 ||
text.indexOf('LAPORAN TARUHAN') !== -1 ||
text.indexOf('UNDUH APLIKASI') !== -1
) return true;
node = node.parentElement;
depth += 1;
}
return false;
}
function getActivePaymentTypeFromDom() {
var selectors = [
'[aria-selected="true"]',
'[aria-current="true"]',
'[data-active="true"]',
'[data-selected="true"]',
'.active',
'.selected',
'.current',
'.is-active',
'.payment-method.active',
'.payment-method.selected',
'.deposit-method.active',
'.deposit-method.selected',
'a',
'button',
'[role="tab"]',
'li',
'div'
].join(',');
var nodes = all(selectors, document);
var scored = [];
nodes.forEach(function (node) {
if (!isVisible(node)) return;
if (isInsideAccountSidebar(node)) return;
var text = normalizeText(
(node.textContent || '') + ' ' +
(node.getAttribute('title') || '') + ' ' +
(node.getAttribute('aria-label') || '') + ' ' +
(node.getAttribute('href') || '') + ' ' +
(node.getAttribute('data-target') || '') + ' ' +
(node.getAttribute('data-url') || '')
);
var type = classifyPaymentText(text);
if (!type) return;
var score = 0;
if (isActivePaymentNode(node)) score += 100;
if (/\b(A|BUTTON)\b/i.test(node.tagName || '')) score += 8;
if (closest(node, '.deposit-container')) score += 5;
if (text.indexOf('METODE PEMBAYARAN') !== -1) score -= 30;
if (text.indexOf('RIWAYAT TRANSAKSI') !== -1) score -= 30;
/*
Hindari form label seperti "Bank Tujuan" ikut terbaca sebagai metode.
*/
if (/(BANK TUJUAN|BANK ASAL|JUMLAH YANG DITRANSFER|BUKTI TRANSFER)/.test(text)) score -= 80;
if (score > 0) scored.push({ type: type, score: score });
});
scored.sort(function (a, b) { return b.score - a.score; });
return scored.length ? scored[0].type : null;
}
function getRouteType() {
var route = safeDecode(String(window.location.pathname || '') + String(window.location.search || '') + String(window.location.hash || ''));
route = route.toUpperCase();
if (route.indexOf('DEPOSIT') === -1 && !document.querySelector('.deposit-container') && !document.querySelector(SELECTOR.forms)) return null;
/*
Jangan fallback ke BANK hanya karena ada dropdown #deposit_to_bank_select.
Di template ini Virtual Acc dan Pulsa juga memakai field "Bank Tujuan",
jadi logic 201.000 harus dikunci hanya saat metode aktif benar-benar BANK.
*/
if (/(^|[\/?#=&_-])BANK($|[\/?#=&_-])/.test(route)) return 'BANK';
if (/(QRIS|\/QR|=QR)/.test(route)) return 'QR';
if (/(VIRTUAL|VIRTUALACC|VIRTUAL_ACCOUNT|\bVA\b|PULSA|E[\s-]*MONEY|EWALLET|E[\s-]*WALLET)/.test(route)) return null;
var domType = getActivePaymentTypeFromDom();
if (domType === 'BANK') return 'BANK';
if (domType === 'QR') return 'QR';
return null;
}
function setHtml(element, html) {
if (element && element.innerHTML !== html) element.innerHTML = html;
}
function setText(element, text) {
if (element && element.textContent !== text) element.textContent = text;
}
function getElementValue(element) {
if (!element) return '';
if ('value' in element) return element.value;
return element.textContent || element.innerText || '';
}
function parseMoney(value) {
var raw = String(value == null ? '' : value).trim();
if (!raw) return 0;
var s = raw.replace(/[^0-9,.-]/g, '');
if (!s || s === '-' || s === ',' || s === '.') return 0;
var lastDot = s.lastIndexOf('.');
var lastComma = s.lastIndexOf(',');
if (lastDot !== -1 && lastComma !== -1) {
if (lastDot > lastComma) {
/* Format 100,000.00 */
s = s.replace(/,/g, '');
} else {
/* Format 100.000,00 */
s = s.replace(/\./g, '').replace(/,/g, '.');
}
} else if (lastDot !== -1) {
var dotParts = s.split('.');
var dotDecimals = s.length - lastDot - 1;
if (dotParts.length > 2 || dotDecimals === 3) {
s = s.replace(/\./g, '');
}
} else if (lastComma !== -1) {
var commaParts = s.split(',');
var commaDecimals = s.length - lastComma - 1;
if (commaParts.length > 2 || commaDecimals === 3) {
s = s.replace(/,/g, '');
} else if (commaDecimals === 2) {
s = s.replace(/,/g, '.');
}
}
var n = Number(s);
if (!isFinite(n)) return 0;
return Math.round(n);
}
function isVisible(element) {
if (!element) return false;
return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
}
function getDepositContainer(form) {
return (form && closest(form, '.deposit-container')) ||
document.querySelector('.deposit-container') ||
form ||
document.body ||
document.documentElement;
}
function getDepositForms() {
var forms = [];
all(SELECTOR.forms).forEach(function (form) {
uniquePush(forms, form);
});
all(SELECTOR.amountActual + ',' + SELECTOR.amountDisplay).forEach(function (input) {
var form = closest(input, 'form');
if (form) uniquePush(forms, form);
});
return forms;
}
function getBestDepositForm(source) {
var form = source ? closest(source, 'form') : null;
if (form) return form;
var fixedForm = document.getElementById('deposit_form');
if (fixedForm) return fixedForm;
var forms = getDepositForms();
return forms.length ? forms[0] : null;
}
function collectAmountCandidates(scope) {
var roots = [];
var candidates = [];
if (scope) roots.push(scope);
roots.push(document);
function addCandidate(element, actualAmount, source, priority) {
if (!actualAmount || actualAmount <= 0) return;
if (actualAmount > MAX_AMOUNT * 10) return;
candidates.push({
element: element,
actualAmount: actualAmount,
source: source,
priority: priority,
visible: isVisible(element),
rawValue: getElementValue(element)
});
}
roots.forEach(function (root) {
all(SELECTOR.amountDisplay, root).forEach(function (element) {
var value = parseMoney(getElementValue(element));
if (!value) return;
/* .deposit_amount_display pada template ini memakai satuan ribuan: 10 = Rp10.000. */
var actual = value <= MAX_AMOUNT / 1000 ? value * 1000 : value;
addCandidate(element, actual, 'display-thousand', element === document.activeElement ? 40 : 30);
});
all(SELECTOR.amountActual, root).forEach(function (element) {
var value = parseMoney(getElementValue(element));
if (!value) return;
/*
#Amount normalnya berisi Rupiah asli, contoh 10000 / 100000 / 201000.
Tetapi beberapa template menyimpan angka display langsung, contoh 10 / 200 / 201.
Perbaikan penting: angka 10000 tidak boleh dianggap 10.000 ribu.
Jadi nilai 999 ke bawah saja yang dianggap satuan ribuan.
*/
if (value > 0 && value <= 999) {
addCandidate(element, value * 1000, 'actual-thousand-unit', element === document.activeElement ? 35 : 28);
} else {
addCandidate(element, value, 'actual-rupiah', element === document.activeElement ? 35 : 25);
}
});
});
if (!candidates.length) {
var fallbackRoot = scope || document;
all('input, textarea', fallbackRoot).forEach(function (element) {
var hint = String((element.id || '') + ' ' + (element.name || '') + ' ' + (element.className || '') + ' ' + (element.getAttribute('placeholder') || '')).toLowerCase();
if (hint.indexOf('amount') === -1 && hint.indexOf('nominal') === -1 && hint.indexOf('deposit') === -1) return;
var value = parseMoney(getElementValue(element));
if (!value) return;
if (value > 0 && value <= 999) addCandidate(element, value * 1000, 'fallback-thousand-unit', 12);
else addCandidate(element, value, 'fallback-rupiah', 10);
});
}
candidates.sort(function (a, b) {
if (b.visible !== a.visible) return b.visible ? 1 : -1;
if (b.priority !== a.priority) return b.priority - a.priority;
return b.actualAmount - a.actualAmount;
});
return candidates;
}
function getDepositAmountInfo(form) {
var candidates = collectAmountCandidates(form || getBestDepositForm());
var best = candidates.length ? candidates[0] : null;
return {
actualAmount: best ? best.actualAmount : 0,
displayAmount: best ? Math.floor(best.actualAmount / 1000) : 0,
source: best ? best.source : 'none',
rawValue: best ? best.rawValue : '',
candidates: candidates
};
}
function mustBlockAmount(info) {
if (!info || !info.actualAmount) return false;
/*
Sesuai permintaan terbaru:
Bank hanya boleh jika DI ATAS 200, yaitu 201 ke atas.
Jadi Rp200.000 ke bawah wajib QRIS.
*/
return info.actualAmount > 0 && info.actualAmount <= minimumAmount;
}
function getBankAllowedAmount() {
return minimumAmount + 1000;
}
function getErrorMessage() {
return 'Deposit Bank hanya untuk nominal Rp' + formatIDR(getBankAllowedAmount()) + ' ke atas. Nominal Rp' + formatIDR(minimumAmount) + ' ke bawah wajib menggunakan QRIS.';
}
function formatIDR(value) {
return Number(value || 0).toLocaleString('id-ID');
}
function showInlineError(form, message) {
var container = getDepositContainer(form);
var wrapper = container.querySelector('[data-depo-over-error="true"]');
if (!wrapper) {
wrapper = document.createElement('div');
wrapper.className = 'form-group error-msg';
wrapper.setAttribute('data-depo-over-error', 'true');
wrapper.innerHTML = '';
container.insertBefore(wrapper, container.firstChild);
}
setText(wrapper.querySelector('.alert-danger'), message);
}
function removeInlineError(form) {
var container = getDepositContainer(form);
var wrapper = container.querySelector('[data-depo-over-error="true"]');
if (wrapper && wrapper.parentNode) wrapper.parentNode.removeChild(wrapper);
}
function ensureModalStyle() {
if (document.getElementById('depoOverCleanStyleV6BankOnly')) return;
var oldStyle = document.getElementById('depoOverBlackGoldStyleV5BankOnly');
if (oldStyle && oldStyle.parentNode) oldStyle.parentNode.removeChild(oldStyle);
var style = document.createElement('style');
style.id = 'depoOverCleanStyleV6BankOnly';
style.type = 'text/css';
style.textContent = '' +
'#depoOverErrorModal.depo-over-clean-modal{font-family:Inter,Arial,Helvetica,sans-serif;color:#f8fafc;}' +
'#depoOverErrorModal .depo-over-dialog{width:calc(100% - 32px);max-width:440px;margin:8vh auto;}' +
'#depoOverErrorModal .depo-over-card{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:#101010;box-shadow:0 24px 70px rgba(0,0,0,.55);}' +
'#depoOverErrorModal .depo-over-close{position:absolute;right:14px;top:12px;z-index:5;display:grid;place-items:center;width:32px;height:32px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.06);color:#f8fafc;font-size:20px;font-weight:700;line-height:1;opacity:1;text-shadow:none;cursor:pointer;transition:background 160ms ease,border-color 160ms ease,transform 160ms ease;}' +
'#depoOverErrorModal .depo-over-close:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);transform:scale(1.04);}' +
'#depoOverErrorModal .depo-over-body{position:relative;padding:24px;text-align:left;}' +
'#depoOverErrorModal .depo-over-top{display:flex;align-items:center;gap:12px;padding-right:36px;margin-bottom:14px;}' +
'#depoOverErrorModal .depo-over-icon{flex:0 0 auto;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#f6d76f;color:#111;font-size:24px;font-weight:900;line-height:1;}' +
'#depoOverErrorModal .depo-over-heading{min-width:0;}' +
'#depoOverErrorModal .depo-over-label{display:block;margin:0 0 4px;color:#f6d76f;font-size:11px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;}' +
'#depoOverErrorModal .depo-over-title{margin:0;color:#fff;font-size:20px;font-weight:800;line-height:1.25;letter-spacing:-.2px;}' +
'#depoOverErrorModal .depo-over-subtitle{margin:0 0 16px;color:rgba(255,255,255,.72);font-size:14px;font-weight:500;line-height:1.5;}' +
'#depoOverErrorModal .depo-over-amount-box{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:14px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(255,255,255,.05);}' +
'#depoOverErrorModal .depo-over-amount-label{display:block;margin:0;color:rgba(255,255,255,.58);font-size:12px;font-weight:700;text-transform:none;letter-spacing:0;}' +
'#depoOverErrorModal .depo-over-amount{display:block;color:#f6d76f;font-size:20px;font-weight:850;line-height:1;white-space:nowrap;}' +
'#depoOverErrorModal .depo-over-rules{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 14px;}' +
'#depoOverErrorModal .depo-over-rule{padding:12px;border:1px solid rgba(255,255,255,.10);border-radius:12px;background:rgba(255,255,255,.035);}' +
'#depoOverErrorModal .depo-over-rule strong{display:block;margin:0 0 5px;color:rgba(255,255,255,.70);font-size:11px;font-weight:800;letter-spacing:.2px;text-transform:uppercase;}' +
'#depoOverErrorModal .depo-over-rule span{display:block;color:#fff;font-size:13px;font-weight:750;line-height:1.35;}' +
'#depoOverErrorModal .depo-over-note{margin:0 0 18px;color:rgba(255,255,255,.62);font-size:13px;font-weight:500;line-height:1.5;}' +
'#depoOverErrorModal .depo-over-redirect{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-height:44px;padding:12px 16px;border:0;border-radius:12px;color:#111!important;background:#f6d76f;box-shadow:none;font-size:13px;font-weight:850;letter-spacing:.2px;line-height:1.2;text-decoration:none!important;text-transform:none;}' +
'#depoOverErrorModal .depo-over-redirect:hover{filter:brightness(1.04);text-decoration:none!important;}' +
'#depoOverErrorModal .depo-over-redirect span{position:relative;z-index:2;}' +
'#depoOverErrorModal .depo-over-small{display:block;margin-top:10px;color:rgba(255,255,255,.46);font-size:11px;font-weight:500;text-align:center;}' +
'@media(max-width:480px){#depoOverErrorModal .depo-over-dialog{width:calc(100% - 20px);margin:5vh auto;}#depoOverErrorModal .depo-over-body{padding:22px 16px 18px;}#depoOverErrorModal .depo-over-title{font-size:18px;}#depoOverErrorModal .depo-over-subtitle{font-size:13px;}#depoOverErrorModal .depo-over-rules{grid-template-columns:1fr;}#depoOverErrorModal .depo-over-amount-box{align-items:flex-start;flex-direction:column;gap:7px;}#depoOverErrorModal .depo-over-amount{font-size:22px;}#depoOverErrorModal .depo-over-close{right:10px;top:10px;width:30px;height:30px;}}';
(document.head || document.documentElement).appendChild(style);
}
function ensureModal() {
ensureModalStyle();
var modal = document.querySelector('[data-depo-over-modal="true"]');
if (modal && modal.querySelector('.depo-over-card')) return modal;
if (modal && modal.parentNode) modal.parentNode.removeChild(modal);
modal = document.createElement('div');
modal.id = 'depoOverErrorModal';
modal.className = 'modal fade depo-over-clean-modal';
modal.tabIndex = -1;
modal.setAttribute('role', 'dialog');
modal.setAttribute('aria-hidden', 'true');
modal.setAttribute('data-depo-over-modal', 'true');
modal.innerHTML = '' +
'
' +
'
' +
'' +
'
' +
'
' +
'!' +
'
' +
'Bank Transfer' +
'' +
'
' +
'
' +
'' +
'
' +
'Nominal deposit' +
'' +
'
' +
'
' +
'
' +
'Bank' +
'' +
'
' +
'
' +
'QRIS' +
'' +
'
' +
'
' +
'' +
'Lanjutkan via QRIS' +
'Nominal akan dibawa otomatis ke halaman QRIS.' +
'
' +
'
' +
'
';
document.body.appendChild(modal);
var closeButton = modal.querySelector('.depo-over-close');
if (closeButton) {
closeButton.addEventListener('click', function () {
hideModal(modal);
});
}
modal.addEventListener('click', function (event) {
if (event.target === modal) hideModal(modal);
});
return modal;
}
function showModal(modal) {
if (window.bootstrap && window.bootstrap.Modal) {
window.bootstrap.Modal.getOrCreateInstance(modal).show();
return;
}
if (window.jQuery && window.jQuery.fn && window.jQuery.fn.modal) {
window.jQuery(modal).modal('show');
return;
}
modal.style.display = 'block';
modal.style.position = 'fixed';
modal.style.left = '0';
modal.style.right = '0';
modal.style.top = '0';
modal.style.bottom = '0';
modal.style.zIndex = '2147483647';
modal.style.overflowY = 'auto';
modal.style.background = 'rgba(0,0,0,.65)';
modal.className += modal.className.indexOf('show') === -1 ? ' show' : '';
modal.setAttribute('aria-hidden', 'false');
if (document.body) document.body.className += document.body.className.indexOf('modal-open') === -1 ? ' modal-open' : '';
}
function hideModal(modal) {
if (window.bootstrap && window.bootstrap.Modal) {
var instance = window.bootstrap.Modal.getInstance(modal);
if (instance) {
instance.hide();
return;
}
}
if (window.jQuery && window.jQuery.fn && window.jQuery.fn.modal) {
window.jQuery(modal).modal('hide');
return;
}
modal.style.display = 'none';
modal.className = modal.className.replace(/\bshow\b/g, '').replace(/\s+/g, ' ');
modal.setAttribute('aria-hidden', 'true');
if (document.body) document.body.className = document.body.className.replace(/\bmodal-open\b/g, '').replace(/\s+/g, ' ');
}
function buildQrUrl(actualAmount) {
var path = window.location.pathname || '';
var search = window.location.search || '';
var hash = window.location.hash || '';
if (/BANK/i.test(path)) {
path = path.replace(/BANK/i, 'QR');
} else if (/BANK/i.test(hash)) {
hash = hash.replace(/BANK/i, 'QR');
} else if (/BANK/i.test(search)) {
search = search.replace(/BANK/i, 'QR');
}
var amountForQris = Math.floor(actualAmount / 1000);
try {
var url = new URL(window.location.href);
url.pathname = path;
url.search = search;
url.hash = hash;
url.searchParams.set('amt', String(amountForQris));
return url.pathname + url.search + url.hash;
} catch (e) {
var glue = search ? '&' : '?';
return path + search + glue + 'amt=' + encodeURIComponent(String(amountForQris)) + hash;
}
}
function showMinimumModal(info) {
var modal = ensureModal();
var actualAmount = info && info.actualAmount ? info.actualAmount : 0;
var bankAllowedAmount = getBankAllowedAmount();
setText(
modal.querySelector('[data-depo-over-modal-title]'),
'Deposit Bank Belum Bisa Diproses'
);
setText(
modal.querySelector('[data-depo-over-modal-description]'),
'Nominal ini berada di batas QRIS. Silakan lanjutkan deposit menggunakan QRIS.'
);
setText(
modal.querySelector('[data-depo-over-modal-amount]'),
'Rp' + formatIDR(actualAmount)
);
setText(
modal.querySelector('[data-depo-over-modal-bank-rule]'),
'Rp' + formatIDR(bankAllowedAmount) + ' ke atas'
);
setText(
modal.querySelector('[data-depo-over-modal-qris-rule]'),
'Rp' + formatIDR(minimumAmount) + ' ke bawah'
);
setText(
modal.querySelector('[data-depo-over-modal-note]'),
'Bank Transfer hanya untuk Rp' + formatIDR(bankAllowedAmount) + ' ke atas. Nominal Rp' + formatIDR(minimumAmount) + ' ke bawah wajib menggunakan QRIS.'
);
var redirect = modal.querySelector('[data-depo-over-modal-redirect]');
if (redirect) redirect.href = buildQrUrl(actualAmount);
showModal(modal);
}
function closeForeignConfirmModals() {
/* Jika modal konfirmasi bawaan situs sempat terbuka, tutup agar user tidak bisa lanjut confirm. */
all('.modal.show, .modal.in').forEach(function (modal) {
if (modal.getAttribute('data-depo-over-modal') === 'true') return;
var text = String(modal.textContent || '').toLowerCase();
if (text.indexOf('confirm') === -1 && text.indexOf('konfirmasi') === -1 && text.indexOf('deposit') === -1) return;
try {
if (window.jQuery && window.jQuery.fn && window.jQuery.fn.modal) window.jQuery(modal).modal('hide');
else modal.style.display = 'none';
} catch (e) {
modal.style.display = 'none';
}
});
}
function blockBank(event, form, info) {
lastBlockAt = Date.now();
if (event) {
event.preventDefault();
event.stopPropagation();
if (typeof event.stopImmediatePropagation === 'function') event.stopImmediatePropagation();
event.returnValue = false;
}
showInlineError(form, getErrorMessage());
try {
window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
} catch (e) {
window.scrollTo(0, 0);
}
showMinimumModal(info);
window.setTimeout(closeForeignConfirmModals, 0);
window.setTimeout(closeForeignConfirmModals, 80);
return false;
}
function validateBank(event, source) {
if (getRouteType() !== 'BANK') return true;
var form = getBestDepositForm(source || (event ? event.target : null));
var info = getDepositAmountInfo(form);
if (mustBlockAmount(info)) {
return blockBank(event, form, info);
}
if (form) removeInlineError(form);
return true;
}
function bindForm(form) {
if (!form || boundForms.indexOf(form) !== -1) return;
boundForms.push(form);
form.addEventListener('submit', function (event) {
markUserSubmitAttempt();
validateBank(event, form);
}, true);
}
function isDepositArea(element) {
if (!element) return false;
if (closest(element, '#deposit_form')) return true;
if (closest(element, '.deposit-container')) return true;
var form = closest(element, 'form');
if (form) {
if (form.id === 'deposit_form') return true;
if (form.querySelector(SELECTOR.amountActual) || form.querySelector(SELECTOR.amountDisplay)) return true;
}
var modal = closest(element, '.modal');
if (modal) {
var modalText = String(modal.textContent || '').toLowerCase();
if (modalText.indexOf('deposit') !== -1 || modalText.indexOf('konfirmasi') !== -1 || modalText.indexOf('confirm') !== -1) return true;
}
return false;
}
function isSubmitLikeAction(element) {
if (!element) return false;
var tag = String(element.tagName || '').toLowerCase();
var type = String(element.getAttribute('type') || '').toLowerCase();
if (tag === 'button' && (!type || type === 'submit' || type === 'button')) return true;
if (tag === 'input' && (type === 'submit' || type === 'button' || type === 'image')) return true;
var text = String(
(element.value || '') + ' ' +
(element.textContent || '') + ' ' +
(element.id || '') + ' ' +
(element.name || '') + ' ' +
(element.className || '') + ' ' +
(element.getAttribute('aria-label') || '') + ' ' +
(element.getAttribute('data-target') || '') + ' ' +
(element.getAttribute('data-bs-target') || '')
).toLowerCase();
return /deposit|depo|submit|kirim|lanjut|proses|konfirmasi|confirm|ok|ya|bayar|transfer|simpan/.test(text);
}
function handleActionClick(event) {
if (getRouteType() !== 'BANK') return;
var target = event.target && event.target.nodeType === 1 ? event.target : null;
if (!target) return;
/* Jangan blokir tombol/tampilan di modal QRIS milik script ini. */
if (closest(target, '[data-depo-over-modal="true"]')) return;
var popup = closest(target, SELECTOR.paymentPopup);
if (popup) {
scheduleInit();
window.setTimeout(scheduleInit, 100);
return;
}
var action = closest(target, SELECTOR.action);
if (!action) return;
if (!isDepositArea(action) && !isSubmitLikeAction(action)) return;
if (!isSubmitLikeAction(action)) return;
markUserSubmitAttempt();
validateBank(event, action);
}
function handleEnterKey(event) {
var key = event.key || event.keyCode;
if (key !== 'Enter' && key !== 13) return;
if (getRouteType() !== 'BANK') return;
var target = event.target && event.target.nodeType === 1 ? event.target : null;
if (!target) return;
if (closest(target, SELECTOR.amountActual) || closest(target, SELECTOR.amountDisplay) || closest(target, '#deposit_form') || closest(target, '.deposit-container')) {
markUserSubmitAttempt();
validateBank(event, target);
}
}
function patchNativeSubmitMethods() {
if (!window.HTMLFormElement || !HTMLFormElement.prototype) return;
var proto = HTMLFormElement.prototype;
if (!proto.__depoOverSubmitPatchedBlackGoldV5BankOnly && typeof proto.submit === 'function') {
var nativeSubmit = proto.submit;
proto.submit = function () {
if (getRouteType() === 'BANK') {
var forms = getDepositForms();
if (forms.indexOf(this) !== -1 || this.id === 'deposit_form' || this.querySelector(SELECTOR.amountActual) || this.querySelector(SELECTOR.amountDisplay)) {
markUserSubmitAttempt();
if (!validateBank(null, this)) return;
}
}
return nativeSubmit.apply(this, arguments);
};
proto.__depoOverSubmitPatchedBlackGoldV5BankOnly = true;
}
if (!proto.__depoOverRequestSubmitPatchedBlackGoldV5BankOnly && typeof proto.requestSubmit === 'function') {
var nativeRequestSubmit = proto.requestSubmit;
proto.requestSubmit = function () {
if (getRouteType() === 'BANK') {
var forms = getDepositForms();
if (forms.indexOf(this) !== -1 || this.id === 'deposit_form' || this.querySelector(SELECTOR.amountActual) || this.querySelector(SELECTOR.amountDisplay)) {
markUserSubmitAttempt();
if (!validateBank(null, this)) return;
}
}
return nativeRequestSubmit.apply(this, arguments);
};
proto.__depoOverRequestSubmitPatchedBlackGoldV5BankOnly = true;
}
}
function looksLikeDepositRequest(input, body) {
var text = '';
try {
if (typeof input === 'string') text += input + ' ';
else if (input && input.url) text += input.url + ' ';
} catch (e) {}
try {
if (typeof body === 'string') text += body + ' ';
else if (body && typeof URLSearchParams !== 'undefined' && body instanceof URLSearchParams) text += body.toString() + ' ';
else if (body && typeof FormData !== 'undefined' && body instanceof FormData) {
body.forEach(function (value, key) {
text += key + '=' + value + ' ';
});
}
} catch (e) {}
text = text.toLowerCase();
return /deposit|depo|bank|transfer|amount|nominal/.test(text);
}
function shouldBlockNetwork(input, body) {
if (getRouteType() !== 'BANK') return false;
/*
Anti auto-popup:
network guard hanya aktif setelah user menekan KIRIM / KONFIRMASI / ENTER.
AJAX yang jalan otomatis saat halaman deposit dibuka tidak boleh memunculkan popup.
*/
if (!isRecentUserSubmitAttempt()) return false;
if (!looksLikeDepositRequest(input, body)) return false;
var form = getBestDepositForm();
var info = getDepositAmountInfo(form);
return mustBlockAmount(info) ? { form: form, info: info } : false;
}
function patchNetworkGuard() {
/* Pengaman terakhir jika situs mengirim deposit via AJAX setelah klik konfirmasi. */
if (window.fetch && !window.fetch.__depoOverPatchedBlackGoldV5BankOnly) {
var nativeFetch = window.fetch;
var patchedFetch = function (input, init) {
var guard = shouldBlockNetwork(input, init && init.body);
if (guard) {
blockBank(null, guard.form, guard.info);
return Promise.reject(new Error('Deposit Bank diblokir: nominal wajib di atas Rp' + formatIDR(minimumAmount)));
}
return nativeFetch.apply(this, arguments);
};
patchedFetch.__depoOverPatchedBlackGoldV5BankOnly = true;
window.fetch = patchedFetch;
}
if (window.XMLHttpRequest && XMLHttpRequest.prototype && !XMLHttpRequest.prototype.__depoOverPatchedBlackGoldV5BankOnly) {
var nativeOpen = XMLHttpRequest.prototype.open;
var nativeSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.open = function (method, url) {
this.__depoOverUrl = url;
return nativeOpen.apply(this, arguments);
};
XMLHttpRequest.prototype.send = function (body) {
var guard = shouldBlockNetwork(this.__depoOverUrl || '', body);
if (guard) {
blockBank(null, guard.form, guard.info);
try { this.abort(); } catch (e) {}
return;
}
return nativeSend.apply(this, arguments);
};
XMLHttpRequest.prototype.__depoOverPatchedBlackGoldV5BankOnly = true;
}
}
function rememberOriginalHtml(element) {
if (!element) return;
if (element.getAttribute('data-depo-over-original-html') === null) {
element.setAttribute('data-depo-over-original-html', element.innerHTML || '');
}
}
function restoreOriginalHtml(element) {
if (!element) return;
var original = element.getAttribute('data-depo-over-original-html');
if (original !== null) setHtml(element, original);
}
function restoreBankInfoVisibility() {
/*
Nomor rekening / nomor tujuan tetap ditampilkan.
Script ini hanya memblokir submit bank <= Rp200.000, bukan menyembunyikan tujuan transfer.
*/
all(SELECTOR.bankInfo).forEach(function (element) {
if (element.style && element.style.display === 'none') element.style.display = '';
});
}
function restoreNonBankPage() {
all(SELECTOR.rangeLabel).forEach(function (element) {
restoreOriginalHtml(element);
});
all(SELECTOR.destinationLabel).forEach(function (label) {
restoreOriginalHtml(label);
});
restoreBankInfoVisibility();
getDepositForms().forEach(function (form) {
removeInlineError(form);
});
}
function applyBankPage() {
var bankAllowedAmount = getBankAllowedAmount();
var rangeHtml = '' +
'Bank Transfer: Rp' + formatIDR(bankAllowedAmount) + ' ke atas' +
' | Max: Rp' + formatIDR(MAX_AMOUNT) + ' ' +
'QRIS: Rp' + formatIDR(minimumAmount) + ' ke bawah wajib menggunakan metode QRIS';
all(SELECTOR.rangeLabel).forEach(function (element) {
rememberOriginalHtml(element);
setHtml(element, rangeHtml);
});
/*
Jangan sembunyikan #bank_info dan jangan bersihkan text option.
Dengan ini nomor bank / nomor tujuan tetap muncul sesuai template asli situs.
*/
restoreBankInfoVisibility();
all(SELECTOR.destinationLabel).forEach(function (label) {
rememberOriginalHtml(label);
setHtml(label, ' Bank Tujuan *');
});
getDepositForms().forEach(bindForm);
}
function getUrlAmount() {
try {
var url = new URL(window.location.href);
var directAmount = url.searchParams.get('amt');
if (directAmount !== null) return directAmount;
var hashQueryIndex = url.hash.indexOf('?');
if (hashQueryIndex === -1) return null;
return new URLSearchParams(url.hash.slice(hashQueryIndex + 1)).get('amt');
} catch (e) {
var match = String(window.location.href).match(/[?&]amt=([^]+)/i);
return match ? decodeURIComponent(match[1]) : null;
}
}
function removeUrlAmount() {
try {
var url = new URL(window.location.href);
url.searchParams.delete('amt');
var hashQueryIndex = url.hash.indexOf('?');
if (hashQueryIndex !== -1) {
var hashPath = url.hash.slice(0, hashQueryIndex);
var hashParams = new URLSearchParams(url.hash.slice(hashQueryIndex + 1));
hashParams.delete('amt');
url.hash = hashParams.toString() ? hashPath + '?' + hashParams.toString() : hashPath;
}
window.history.replaceState({}, document.title, url.pathname + url.search + url.hash);
} catch (e) {}
}
function dispatchAmountEvents(element) {
['input', 'keyup', 'change'].forEach(function (eventName) {
try {
element.dispatchEvent(new Event(eventName, { bubbles: true }));
} catch (e) {
var eventObject = document.createEvent('Event');
eventObject.initEvent(eventName, true, true);
element.dispatchEvent(eventObject);
}
});
}
function applyQrPage() {
var rawAmount = getUrlAmount();
if (rawAmount === null || rawAmount === '') return;
var amount = parseMoney(rawAmount);
if (!amount) return;
var amountInputs = all(SELECTOR.amountActual);
var amountDisplays = all(SELECTOR.amountDisplay);
if (!amountInputs.length && !amountDisplays.length) return;
amountInputs.forEach(function (input) {
if ('value' in input) input.value = amount * 1000;
else input.textContent = String(amount * 1000);
dispatchAmountEvents(input);
});
amountDisplays.forEach(function (display) {
if ('value' in display) display.value = String(amount);
else display.textContent = String(amount);
dispatchAmountEvents(display);
});
removeUrlAmount();
}
function initDepoOver() {
var routeType = getRouteType();
if (routeType === 'BANK') applyBankPage();
else {
restoreNonBankPage();
if (routeType === 'QR') applyQrPage();
}
}
function scheduleInit() {
if (scheduled) return;
scheduled = true;
var run = function () {
scheduled = false;
initDepoOver();
};
if (typeof window.requestAnimationFrame === 'function') window.requestAnimationFrame(run);
else window.setTimeout(run, 0);
}
function installRouteHooks() {
window.addEventListener('popstate', scheduleInit, true);
window.addEventListener('hashchange', scheduleInit, true);
['pushState', 'replaceState'].forEach(function (methodName) {
if (!window.history || typeof window.history[methodName] !== 'function') return;
var original = window.history[methodName];
if (original.__depoOverStrictWrapped) return;
var wrapped = function () {
var result = original.apply(this, arguments);
scheduleInit();
return result;
};
wrapped.__depoOverStrictWrapped = true;
window.history[methodName] = wrapped;
});
}
function start() {
if (!observer && window.MutationObserver && document.documentElement) {
observer = new MutationObserver(function (mutations) {
for (var i = 0; i < mutations.length; i += 1) {
if (mutations[i].addedNodes.length || mutations[i].removedNodes.length) {
scheduleInit();
break;
}
}
});
observer.observe(document.documentElement, {
childList: true,
subtree: true
});
}
scheduleInit();
}
installRouteHooks();
patchNativeSubmitMethods();
patchNetworkGuard();
document.addEventListener('click', handleActionClick, true);
document.addEventListener('keydown', handleEnterKey, true);
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', start, { once: true });
} else {
start();
}
window.addEventListener('load', scheduleInit, true);
window[GLOBAL_KEY] = {
version: 'clean-v6-bank-only-no-autopopup',
minValue: minValue,
minimumAmount: minimumAmount,
refresh: scheduleInit,
status: function () {
var form = getBestDepositForm();
var info = getDepositAmountInfo(form);
return {
version: 'clean-v6-bank-only-no-autopopup',
routeType: getRouteType(),
href: window.location.href,
minValue: minValue,
minimumAmount: minimumAmount,
amountInfo: info,
blocked: mustBlockAmount(info),
formsFound: getDepositForms().length,
lastBlockAt: lastBlockAt,
lastUserSubmitAttemptAt: lastUserSubmitAttemptAt
};
},
disconnect: function () {
if (observer) observer.disconnect();
observer = null;
}
};
window.DEPO_OVER_STATUS = window[GLOBAL_KEY].status;
})();
/* =========================================================
COOKIE CONSENT - UNIVERSAL
Tidak memakai nama brand hardcode.
Default privacy URL: /dekstop/privacy-policy
Opsional:
- data-privacy-url="/privacy-policy"
- data-cookie-banner="false" untuk mematikan banner cookie
========================================================= */
(function () {
'use strict';
var COOKIE_NAME = 'deposit_script_cookie_consent';
var COOKIE_DURATION_DAYS = 180;
var DEFAULT_PRIVACY_URL = '/dekstop/privacy-policy';
function findEmbedScript() {
var scripts = document.getElementsByTagName('script');
for (var i = scripts.length - 1; i >= 0; i -= 1) {
var script = scripts[i];
var src = String(script.getAttribute('src') || '');
if (script.getAttribute('data-depo-over-embed') !== null) return script;
if (script.getAttribute('data-min-value') !== null) return script;
if (/DepositScript(?:\.min)?\.js(?:$|[?#])/i.test(src)) return script;
}
return null;
}
var embedScript = document.currentScript || findEmbedScript();
var cookieBannerSetting = embedScript ? String(embedScript.getAttribute('data-cookie-banner') || '').toLowerCase() : '';
var privacyUrl = embedScript && embedScript.getAttribute('data-privacy-url')
? embedScript.getAttribute('data-privacy-url')
: DEFAULT_PRIVACY_URL;
if (cookieBannerSetting === 'false' || cookieBannerSetting === '0' || cookieBannerSetting === 'off') return;
function onReady(callback) {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', callback, { once: true });
} else {
callback();
}
}
function ensureCookieStyle() {
if (document.getElementById('deposit-script-cookie-style')) return;
var style = document.createElement('style');
style.id = 'deposit-script-cookie-style';
style.type = 'text/css';
style.textContent = '' +
'#deposit-script-cookie-banner{display:none;position:fixed;right:20px;bottom:20px;left:20px;z-index:999999;width:calc(100% - 40px);max-width:680px;margin:0 auto;padding:20px 16px 16px;font-family:Arial,Helvetica,sans-serif;background:#111;color:#fff;border:1px solid #292929;border-radius:7px;box-shadow:0 5px 22px rgba(0,0,0,.55);}' +
'#deposit-script-cookie-banner.deposit-script-cookie-show{display:block;}' +
'#deposit-script-cookie-banner h2{margin:0 0 10px;padding:0;color:#fff;font-size:14px;font-weight:700;line-height:1.4;}' +
'#deposit-script-cookie-banner p{margin:0;padding:0;color:#fff;font-size:10px;font-weight:400;line-height:1.65;}' +
'#deposit-script-cookie-banner a{color:#fff;text-decoration:underline;}' +
'.deposit-script-cookie-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}' +
'.deposit-script-cookie-button{min-height:28px;padding:7px 13px;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:600;line-height:1;border-radius:4px;cursor:pointer;transition:opacity .2s ease,transform .2s ease;}' +
'.deposit-script-cookie-button:hover{opacity:.88;transform:translateY(-1px);}' +
'.deposit-script-cookie-button:focus{outline:2px solid rgba(255,255,255,.6);outline-offset:2px;}' +
'#deposit-script-cookie-reject{background:#333;color:#fff;border:1px solid #444;}' +
'#deposit-script-cookie-settings{background:#111;color:#fff;border:1px solid #777;}' +
'#deposit-script-cookie-accept{background:#fff;color:#111;border:1px solid #fff;}' +
'@media(max-width:600px){#deposit-script-cookie-banner{right:10px;bottom:10px;left:10px;width:calc(100% - 20px);padding:18px 15px 15px;}#deposit-script-cookie-banner h2{font-size:14px;}#deposit-script-cookie-banner p{font-size:10px;}.deposit-script-cookie-buttons{gap:7px;}}';
(document.head || document.documentElement).appendChild(style);
}
function escapeHtml(value) {
return String(value == null ? '' : value)
.replace(/&/g, '&')
.replace(//g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
}
function ensureCookieBanner() {
var existing = document.getElementById('deposit-script-cookie-banner');
if (existing) return existing;
var wrapper = document.createElement('div');
wrapper.id = 'deposit-script-cookie-banner';
wrapper.setAttribute('role', 'dialog');
wrapper.setAttribute('aria-labelledby', 'deposit-script-cookie-title');
wrapper.setAttribute('aria-describedby', 'deposit-script-cookie-description');
wrapper.innerHTML = '' +
'
Pengaturan Cookies
' +
'
' +
'Situs ini menggunakan cookies penting agar layanan dapat berjalan dengan baik. ' +
'Dengan persetujuan Anda, cookies analitik juga dapat digunakan untuk memahami penggunaan situs, meningkatkan performa, serta memberikan pengalaman yang lebih nyaman. ' +
'Silakan membaca Kebijakan Privasi untuk informasi lebih lanjut.' +
'
' +
'
' +
'' +
'' +
'' +
'
';
document.body.appendChild(wrapper);
return wrapper;
}
function setCookie(name, value, days) {
var maxAge = days * 24 * 60 * 60;
var secure = window.location.protocol === 'https:' ? '; Secure' : '';
document.cookie =
encodeURIComponent(name) +
'=' +
encodeURIComponent(value) +
'; Path=/' +
'; Max-Age=' +
maxAge +
'; SameSite=Lax' +
secure;
}
function getCookie(name) {
var cookieName = encodeURIComponent(name) + '=';
var cookieList = document.cookie.split(';');
for (var i = 0; i < cookieList.length; i += 1) {
var currentCookie = cookieList[i].trim();
if (currentCookie.indexOf(cookieName) === 0) {
return decodeURIComponent(currentCookie.substring(cookieName.length));
}
}
return null;
}
function initCookieBanner() {
if (!document.body) return;
ensureCookieStyle();
var banner = ensureCookieBanner();
var rejectButton = document.getElementById('deposit-script-cookie-reject');
var settingsButton = document.getElementById('deposit-script-cookie-settings');
var acceptButton = document.getElementById('deposit-script-cookie-accept');
function showBanner() {
banner.classList.add('deposit-script-cookie-show');
}
function hideBanner() {
banner.classList.remove('deposit-script-cookie-show');
}
function saveConsent(value) {
setCookie(COOKIE_NAME, value, COOKIE_DURATION_DAYS);
hideBanner();
}
if (rejectButton) {
rejectButton.addEventListener('click', function () {
saveConsent('rejected');
});
}
if (acceptButton) {
acceptButton.addEventListener('click', function () {
saveConsent('accepted');
});
}
if (settingsButton) {
settingsButton.addEventListener('click', function () {
window.location.href = privacyUrl;
});
}
if (!getCookie(COOKIE_NAME)) {
showBanner();
}
}
onReady(initCookieBanner);
})();
JAKARTASLOT88 Aplikasi Mobile
Jangan tampilkan lagi hari ini
Dengan klik tombol DAFTAR, saya menyatakan bahwa saya berumur diatas 18 tahun. Saya telah membaca dan menyetujui Syarat dan Ketentuan dari JAKARTASLOT88.