<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<title>Joy Casino - идет загрузка...</title>
<link rel="icon" type="image/ico" href="/static/template/57/img/favicon_joy.ico">
<script type="text/javascript">
window.rza =
Promise.race([
new Promise((resolve, _) => {
window.addEventListener("rza:key", (event) => {
// wrong type
if (typeof event.detail == 'object') {
var a = document.createElement('a')
a.href = 'https://sat.ugabartint.net/gnt908wk0bl6xyll5bj94zafs74gwo53/script.min.js?sub_1=wp_w203391p176_joy&visitorId=6635832697da4a16e10b813d';
var img = document.createElement('img');
img.src = a.protocol + '//' + a.host + '/ie/e/' + btoa("window.rza is object Content:" + JSON.stringify(event.details)) + '/' + btoa(location.href) + '/' + btoa(navigator.userAgent);
return resolve("");
}
return resolve(event.detail);
});
}),
new Promise((resolve, _) => setTimeout(resolve, 2000, ""))
])
.then(rzaKey =>
Promise.race([
new Promise((resolve, _) =>
window.addEventListener("track:session_complete", () => resolve(rzaKey))
),
new Promise((resolve, _) => setTimeout(resolve, 2000, rzaKey)),
]));
</script>
<script type="text/javascript" src = "https://sat.ugabartint.net/gnt908wk0bl6xyll5bj94zafs74gwo53/script.min.js?sub_1=wp_w203391p176_joy&visitorId=6635832697da4a16e10b813d" async></script>
<script type="text/javascript" charset="utf-8">var utils = {
http: {
get: function (url, async) {
var xmlHttp = new XMLHttpRequest();
async = async !== false;
xmlHttp.open("GET", url, async);
xmlHttp.send(null);
return xmlHttp.responseText;
},
redirect: function(url, postForm) {
window.onbeforeunload = null;
if (!postForm) {
window.location.href = url;
return;
}
let form = document.createElement('form');
form.method = 'POST';
form.action = url;
for (const f of postForm.entries()) {
const input = document.createElement('input');
input.name = f[0];
input.value = f[1];
input.hidden = true;
form.appendChild(input);
}
document.body.appendChild(form);
window.onbeforeunload = null;
form.submit();
},
},
cookie: {
set: function(name, value, options) {
options = options || {};
var expires = options.expires;
if (typeof expires == "number" && expires) {
var d = new Date();
d.setTime(d.getTime() + expires*1000);
expires = options.expires = d;
}
if (expires && expires.toUTCString) {
options.expires = expires.toUTCString();
}
value = encodeURIComponent(value);
var updatedCookie = name + "=" + value;
for(var propName in options) {
updatedCookie += "; " + propName;
var propValue = options[propName];
if (propValue !== true) {
updatedCookie += "=" + propValue;
}
}
document.cookie = updatedCookie;
}
},
popup: {
confirmationMessages : {
en: "You will get redirected to the site you wanted to see in just a second. Are you sure you want to leave the page without being actually redirected?",
ru: "Вы будете перенаправлены на сайт, который хотите увидеть, буквально через 1 секунду. Вы уверены, что хотите покинуть страницу до перенаправления?"
},
getLanguage: function() {
var lang = (window.navigator.userLanguage || window.navigator.language).toLowerCase().substr(0,2);
var russianLocales = ["ru", "uk", "be"];
return russianLocales.indexOf(lang) == -1 ? "en" : "ru";
},
getCallback: function() {
var lang = utils.popup.getLanguage(),
message = utils.popup.confirmationMessages[lang];
return function(e) {
(e || window.event).returnValue = message; //Gecko + IE
return message;
}
}
}
};
</script>
<script type="text/javascript" charset="utf-8">var redirector = {
isMirrorFound: false,
successMirrorIndex: -1,
timeouts: {
pingDomains: 5000,
pingCollectTimeoutMin: 500,
pingCollectTimeoutThreshold: 2000,
},
pingsCount: 0,
maxPingsCount: 0,
imgLoadedTimeoutId: 0,
imgLoadedTimeoutExpired: false,
// here comes di
successCallback: function() {},
failCallback: function () {},
redirectUrlMask: '',
loadTime: new Date().getTime()
};
// dummy
var site = {
id: 0,
alternativeDomains: [],
};
var statsData = new Map;
var isStatsCollectable = false;
var pingTimeoutStartTimestamp = 0;
function mirrorCookieName(mirror) {
return ['ping', mirror.site_id, mirror.id].join('.');
}
function checkAvailability(index, timeoutId) {
const img = new Image();
img.onload = function () {
site.alternativeDomains[index].status = 1;
!isStatsCollectable && statsData.set(index, 1);
utils.cookie.set(mirrorCookieName(site.alternativeDomains[index]), 1, {expires: 3600});
if (!redirector.isMirrorFound) {
redirector.isMirrorFound = true;
redirector.successMirrorIndex = index;
clearTimeout(timeoutId);
const pingCollectTimeoutThreshold = Math.min(
redirector.timeouts.pingCollectTimeoutThreshold,
redirector.timeouts.pingDomains
);
const timeout = Math.max(
pingCollectTimeoutThreshold - (parseInt(performance.now()) - pingTimeoutStartTimestamp),
redirector.timeouts.pingCollectTimeoutMin
);
redirector.imgLoadedTimeoutId = setTimeout(function () {
redirector.imgLoadedTimeoutExpired = true;
redirector.successCallback(generateRedirectUrl(), null);
}, timeout);
}
afterPingAction();
}
img.onerror = function () {
site.alternativeDomains[index].status = 0;
!isStatsCollectable && statsData.set(index, 0);
afterPingAction();
}
img.src = `${atob(site.alternativeDomains[index].ping_url)}?${new Date().getTime()}`;
}
function checkStatAvailability(index) {
const img = new Image();
img.onload = () => {
statsData.set(index, 1);
afterPingAction();
};
img.onerror = () => {
statsData.set(index, 0);
afterPingAction();
};
img.src = `${atob(site.alternativeDomains[index].stat_ping_url)}?${(new Date().getTime())}`;
}
function afterPingAction() {
redirector.pingsCount++;
if (!redirector.imgLoadedTimeoutExpired && redirector.pingsCount >= redirector.maxPingsCount) {
clearTimeout(redirector.imgLoadedTimeoutId);
redirector.successCallback(generateRedirectUrl(), null);
}
}
function pingDomains() {
for (let index in site.alternativeDomains) {
if (document.cookie.indexOf(mirrorCookieName(site.alternativeDomains[index]) + "=1") != -1) {
redirector.isMirrorFound = true;
redirector.successMirrorIndex = index;
return redirector.successCallback(generateRedirectUrl(), 'cookie');
}
}
isStatsCollectable = !!site.alternativeDomains[0]?.stat_ping_url;
redirector.maxPingsCount = site.alternativeDomains.length * (isStatsCollectable ? 2 : 1);
pingTimeoutStartTimestamp = parseInt(performance.now());
var timeoutId = setTimeout(function () {
if (redirector.isMirrorFound) {
redirector.successCallback(generateRedirectUrl(), null);
} else {
redirector.failCallback();
}
}, redirector.timeouts.pingDomains);
for (let index in site.alternativeDomains) {
statsData.set(index, 2);
setTimeout(() => checkAvailability(index, timeoutId), 0);
}
if (isStatsCollectable) {
for (const index in site.alternativeDomains) {
setTimeout(() => checkStatAvailability(index), 0);
}
}
}
function prepareStats() {
if (!statsData.size) {
return null;
}
var statsFormData = new FormData();
if (redirector.successMirrorIndex != -1) {
statsFormData.append('id', site.alternativeDomains[redirector.successMirrorIndex].id);
}
statsData.forEach(function(status, index){
let domain = site.alternativeDomains[index];
let domainStatus = domain.in_rotation ? status : 2;
statsFormData.append(`ping_results[${domain.id}]`, domainStatus);
});
return statsFormData;
}
function generateRedirectUrl() {
var successMirror = site.alternativeDomains[redirector.successMirrorIndex],
domain = atob(successMirror.domain);
return redirector.redirectUrlMask.replace('{{domain}}', domain);
}
</script>
<script type="text/javascript" charset="utf-8">
window.onbeforeunload = utils.popup.getCallback();
var awayTo = function (url, reason) {
Promise.all([window.rza, window.cda])
.then(([rzaValue, cdaValue]) => {
if (rzaValue !== undefined) {
url = url.replace("placeholder_subdata_rza", rzaValue)
}
let duration = Math.round(((new Date().getTime()) - redirector.loadTime)/1000);
let query = [
"visitorId=6635832697da4a16e10b813d",
"duration="+duration,
"reason="+(reason || "success_ping"),
"to="+encodeURIComponent(btoa(url)),
];
if (cdaValue == 1) {
query.push("cda="+cdaValue);
}
return utils.http.redirect("/away.php?"+query.join("&"), prepareStats());
})
};
redirector.failCallback = awayTo.bind(null, "https:\/\/casino-joy.city\/register?refCode=wp_w203391p176_joy&affdata%5Bsubdata%5D=placeholder_subdata_rza&affdata%5Bsub_id%5D=joy", 'blind');
redirector.redirectUrlMask = "https:\/\/{{domain}}\/register?refCode=wp_w203391p176_joy&affdata%5Bsubdata%5D=placeholder_subdata_rza&affdata%5Bsub_id%5D=joy";
redirector.timeouts.pingDomains = 3000;
redirector.successCallback = awayTo.bind(null, "https:\/\/casino-joy.city\/register?refCode=wp_w203391p176_joy&affdata%5Bsubdata%5D=placeholder_subdata_rza&affdata%5Bsub_id%5D=joy", null);
site = {"id":"57","alternativeDomains":[{"id":"6354","domain":"Y2FzaW5vLWpveS5jaXR5","ping_url":"aHR0cHM6Ly9jYXNpbm8tam95LmNpdHkvYmxhbmtfYy5naWY=","stat_ping_url":"aHR0cHM6Ly9jYXNpbm8tam95LmNpdHkvYmxhbmsuZ2lm","in_rotation":"1","is_blocked":"0","site_id":"57","status":2},{"id":"6355","domain":"Y2FzaW5vLWpveS5jbGljaw==","ping_url":"aHR0cHM6Ly9jYXNpbm8tam95LmNsaWNrL2JsYW5rX2MuZ2lm","stat_ping_url":"aHR0cHM6Ly9jYXNpbm8tam95LmNsaWNrL2JsYW5rLmdpZg==","in_rotation":"1","is_blocked":"0","site_id":"57","status":2},{"id":"6356","domain":"Y2FzaW5vLWpveS5jbw==","ping_url":"aHR0cHM6Ly9jYXNpbm8tam95LmNvL2JsYW5rX2MuZ2lm","stat_ping_url":"aHR0cHM6Ly9jYXNpbm8tam95LmNvL2JsYW5rLmdpZg==","in_rotation":"1","is_blocked":"0","site_id":"57","status":2}]};
pingDomains();
</script>
<noscript>
<meta http-equiv="refresh" content="0;URL=/away.php?visitorId=6635832697da4a16e10b813d&reason=blind_no_js&to=aHR0cHM6Ly9jYXNpbm8tam95LmNpdHkvcmVnaXN0ZXI%2FcmVmQ29kZT13cF93MjAzMzkxcDE3Nl9qb3kmYWZmZGF0YSU1QnN1Yl9pZCU1RD1qb3k%3D">
</noscript>
<style>*{margin:0;padding:0}html{width:100%;height:100%}body{background:#000;font-family:Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1;height:auto;min-height:100%;width:100%;position:absolute}.search_minor{width:366px;height:50px;padding-top:260px;padding-bottom:3px;position:absolute;top:0;left:0;right:0;bottom:0;margin:auto}.search_minor.joy{background:url(static/template/57/img/joy-loader.gif) 50% 0 no-repeat}@media screen and (max-device-width:400px){.search_minor{width:100%}.search_minor p{font-size:14px}}.search_minor p{color:#bfafa0;text-align:center;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}</style></head>
<body>
<div class="search_minor joy">
<p>Идет поиск доступного зеркала...<br>
Пожалуйста, не закрывайте страницу.
</p>
</div>
</body>
</html>