<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>JATENGTOTO | MAGETOTO | NAFASTOGEL | BENSINTOTO | BEBEKJP : Situs Bandar togel terpecaya Memberikan hasil Result togel keluaran togel Hari ini</title>
<link rel="icon" type="image/png" href="https://jamepix.com/public/liveawl/totohoki.png"/>
<meta name="title" content="JATENGTOTO | MAGETOTO | NAFASTOGEL | BENSINTOTO | BEBEKJP : Situs Bandar togel terpecaya Memberikan hasil Result togel keluaran togel Hari ini" />
<meta name="description" content="Memberikan data result Togel akurat Live draw togel hari ini Result togel hongkong, result togel sydney, result togel kalifornia, result togel singapore, result togel china, result togel macau, result togel cambodia, result togel taiwan, result togel morocco, result togel japan, result togel texas, result togel jakarta DATA TOGEL HASIL RESULT AKURAT TER-UPDATE SETIAP HARINYA!" />
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website" />
<meta property="og:url" content="https://keroroslayer.com/" />
<meta property="og:title" content="JATENGTOTO | MAGETOTO | NAFASTOGEL | BENSINTOTO | BEBEKJP : Situs Bandar togel terpecaya Memberikan hasil Result togel keluaran togel Hari ini" />
<meta property="og:description" content="Memberikan data result Togel akurat Live draw togel hari ini Result togel hongkong, result togel sydney, result togel kalifornia, result togel singapore, result togel china, result togel macau, result togel cambodia, result togel taiwan, result togel morocco, result togel japan, result togel texas, result togel jakarta DATA TOGEL HASIL RESULT AKURAT TER-UPDATE SETIAP HARINYA!" />
<meta property="og:image" content="https://jamepix.com/public/liveawl/liveawl-banner-ff9cd542bd8dcccebc4dd265e9e03f23.gif" />
<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:url" content="https://keroroslayer.com/" />
<meta property="twitter:title" content="JATENGTOTO | MAGETOTO | NAFASTOGEL | BENSINTOTO | BEBEKJP : Situs Bandar togel terpecaya Memberikan hasil Result togel keluaran togel Hari ini" />
<meta property="twitter:description" content="Memberikan data result Togel akurat Live draw togel hari ini Result togel hongkong, result togel sydney, result togel kalifornia, result togel singapore, result togel china, result togel macau, result togel cambodia, result togel taiwan, result togel morocco, result togel japan, result togel texas, result togel jakarta DATA TOGEL HASIL RESULT AKURAT TER-UPDATE SETIAP HARINYA!" />
<meta property="twitter:image" content="https://jamepix.com/public/liveawl/liveawl-banner-ff9cd542bd8dcccebc4dd265e9e03f23.gif" />
<meta name="google-site-verification" content="4vnIAGKWo9OGpHk4sUAwtF1FDgxYaWMvGefZAMJcds4" />
<link rel="canonical" href="https://keroroslayer.com/">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<style type="text/css">
body {
background: rgb(17 24 39 / 1);
color: #fff;
padding: 1rem .5rem;
}
.sr-only {
display: none;
}
.outerbox {
border-radius: 5px 5px 5px 5px;
border: #ffd700 1px solid;
-moz-border-radius: 5px;
-webkit-border-radius: 5px 5px 5px 5px;
border-radius: 5px 5px 5px 5px;
background: #000000;
width: 100%;
}
.headbox {
padding: .25rem;
display: block;
margin: 0 auto;
max-width: 360px;
}
.headbox img {
width: 100%;
height: auto;
min-height: 30px;
display: block;
}
.captionbox {
margin-top: .25rem;
margin-bottom: .25rem;
display: grid;
grid-template-columns: 80% 20%;
column-gap: 4px;
text-transform: uppercase;
}
.runningtextbox {
background-color: #ffd700;
padding: 5px 4px;
color: #333;
width: calc(100% - 2px);
}
.running-container {
background-color: #000;
color: #fff;
overflow: hidden;
white-space: nowrap;
}
.running-text {
-moz-transform: translateX(100%);
-webkit-transform: translateX(100%);
transform: translateX(100%);
-moz-animation: text-animation 15s linear infinite;
-webkit-animation: text-animation 15s linear infinite;
animation: text-animation 15s linear infinite;
}
.liveshowbox {
background-color: #ffd700;
padding: 5px 4px;
color: #333;
display: inline-block;
}
.liveshow-container {
background-color: #000;
color: #ffff00;
text-align: center;
}
.liveshow-text {
animation: blink-animation 1s steps(5, start) infinite;
-webkit-animation: blink-animation 1s steps(5, start) infinite;
}
.blinker {
animation: blink-animation 1s steps(5, start) infinite;
-webkit-animation: blink-animation 1s steps(5, start) infinite;
}
@keyframes blink-animation {
to {
visibility: hidden;
}
}
@-webkit-keyframes blink-animation {
to {
visibility: hidden;
}
}
@-moz-keyframes text-animation {
from { -moz-transform: translateX(100%); }
to { -moz-transform: translateX(-100%); }
}
@-webkit-keyframes text-animation {
from { -webkit-transform: translateX(100%); }
to { -webkit-transform: translateX(-100%); }
}
@keyframes text-animation {
from {
-moz-transform: translateX(100%);
-webkit-transform: translateX(100%);
transform: translateX(100%);
}
to {
-moz-transform: translateX(-100%);
-webkit-transform: translateX(-100%);
transform: translateX(-100%);
}
}
</style>
</head>
<body>
<div class="container outerbox">
<div class="d-block col-lg-6 mx-auto">
<div class="captionbox fs-6 mt-2">
<div class="runningtextbox">
<div class="running-container">
<div class="running-text">
<span style="color: #ffff00">[LIVE DRAW]</span>
<span id="datetimenow">Jumat, 27 Desember 2024</span>
</div>
</div>
</div>
<div class="liveshowbox">
<div class="liveshow-container">
<span class="liveshow-text">LIVE</span>
</div>
</div>
</div>
<div class="col-12 col-md-10 mx-auto">
<a href="https://vviplive2024.org/" target="_blank"><img src="https://jamepix.com/public/liveawl/liveawl-banner-ff9cd542bd8dcccebc4dd265e9e03f23.gif" alt="Data HK" class="col-12"></a>
</div>
</div>
<div class="d-block col-lg-8 mx-auto">
<img src="https://jamepix.com/public/liveawl/liveawl-banner-9f29ffbfc4d725e52b62365d5035157d.png" alt="JT Group" class="col-12">
</div>
<div class="d-block col-lg-6 mx-auto">
<div class="text-center text-warning mt-2 border border-warning">
<span class="blinker">TANPA REFRESH, AUTO UPDATE !!</span>
</div>
</div>
<div id="itemcontent" class="d-flex flex-wrap justify-content-center px-1 py-2 mb-1">
<div class="col-12 d-flex py-3 justify-content-center">
<div class="spinner-border text-warning" role="status" style="width:48px;height:48px">
<span class="sr-only">Loading...</span>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
<script type="text/javascript">
const getCurrentTime = async () => {
var timeCount = 0;
var dayNames = ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu'];
var monthNames = ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'];
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0');
var ff = monthNames[today.getMonth()];
var yyyy = today.getFullYear();
var dayName = dayNames[today.getDay()];
var hh = String(today.getHours()).padStart(2, '0');
var ii = String(today.getMinutes()).padStart(2, '0');
var ss = String(today.getSeconds()).padStart(2, '0');
today = dayName + ', ' + dd + ' ' + ff + ' ' + yyyy + ' | ' + hh + ':' + ii + ':' + ss;
const span = document.getElementById('datetimenow');
span.textContent = today;
setTimeout(getCurrentTime, 1000);
}
getCurrentTime();
</script>
<script type="text/javascript">
const interval = 1000;
var isUpdateResult = false;
function checkResetTimeResult(openTime) {
let now = new Date();
let currentHour = now.getHours();
let currentMinute = now.getMinutes();
let currentTime = currentHour + currentMinute / 60;
let [openHour, openMinute] = openTime.split(":").map(Number);
let openTimeDecimal = openHour + openMinute / 60;
let elevenFifteen = 11.25;
let twentyThreeThirty = 23.5;
if (currentTime >= 23 || currentTime < 0) {
return openTimeDecimal > currentTime || openTimeDecimal < elevenFifteen;
}
if (currentTime >= 0 && currentTime < elevenFifteen) {
return openTimeDecimal > currentTime && openTimeDecimal < elevenFifteen;
}
if (currentTime >= elevenFifteen && currentTime <= 23) {
return openTimeDecimal > currentTime && openTimeDecimal < twentyThreeThirty;
}
return false;
}
function isOpenTimeResult(openTime) {
const currentTime = new Date();
const hours = currentTime.getHours();
const minutes = currentTime.getMinutes();
function timeInMinutes(hours, minutes) {
return hours * 60 + minutes;
}
const currentMinutes = timeInMinutes(hours, minutes);
const limitTime = timeInMinutes(11, 15);
const [openHours, openMinutes] = openTime.split(':').map(Number);
const openMinutesTotal = timeInMinutes(openHours, openMinutes);
if (currentMinutes >= timeInMinutes(23, 0) && currentMinutes <= timeInMinutes(23, 59)) {
return openMinutesTotal < currentMinutes || openMinutesTotal <= limitTime;
}
if (currentMinutes >= timeInMinutes(0, 0) && currentMinutes <= limitTime) {
return openMinutesTotal < currentMinutes && openMinutesTotal <= limitTime;
}
if (currentMinutes > limitTime && currentMinutes < timeInMinutes(23, 0)) {
return openMinutesTotal < currentMinutes && openMinutesTotal <= timeInMinutes(23, 0);
}
return false;
}
function getFetchRequest(url) {
return new Promise((resolve, reject) => {
let xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
resolve(xhr.responseText);
} else {
reject(`Error: ${xhr.status}`);
}
}
};
xhr.onerror = function() {
reject('Network error');
};
xhr.send();
});
}
async function fetchAdsBanner() {
var itemresults = [];
try {
let jsonResponse = JSON.parse(await getFetchRequest('https://angka2088.com/ajaxadsbanner.json'));
const itemmaps = jsonResponse.items;
itemmaps.forEach((itemtemp, index) => {
itemresults.push(itemtemp);
});
} catch (error) {
console.error('There has been a problem with your request:', error);
}
return itemresults;
}
async function fetchAdsInfobox() {
var itemresults = [];
try {
let jsonResponse = JSON.parse(await getFetchRequest('https://angka2088.com/ajaxadscolbox.json'));
const itemmaps = jsonResponse.items;
itemmaps.forEach((itemtemp, index) => {
itemresults.push(itemtemp);
});
} catch (error) {
console.error('There has been a problem with your request:', error);
}
return itemresults;
}
function createInfoStat(result) {
htmlResult = '';
let resultValue = result.result_value;
const opendate = result.result_date;
const opentime = result.result_time;
const openvalue =result.result_value.toLowerCase();
var resultstatus = 'opened';
var timenow = new Date();
var hournow = String(timenow.getHours()).padStart(2, "0");
var minutenow = String(timenow.getMinutes()).padStart(2, "0");
var currentTime = `${hournow}:${minutenow}`;
var timeresult = new Date(`${opendate} ${opentime}:00`);
var hourresult = String(timeresult.getHours()).padStart(2, "0");
var minuteresult = String(timeresult.getMinutes()).padStart(2, "0");
var pointTime = `${hourresult}:${minuteresult}`;
var yearnow = timenow.getFullYear();
var monthnow = String(timenow.getMonth() + 1).padStart(2, '0');
var daynow = String(timenow.getDate()).padStart(2, '0');
var todaynow = `${yearnow}-${monthnow}-${daynow}`;
if (checkResetTimeResult(pointTime)) {
resultstatus='closed';
} else if (isOpenTimeResult(pointTime) && todaynow!==opendate) {
resultstatus='closed';
}
if (resultstatus=='opened') {
if (resultValue.includes(",")) {
let resSplitPrizes = resultValue.split(",");
if (resSplitPrizes.length === 3) {
htmlResult += `<div class="col-12 text-center bg-warning bg-gradient py-1 px-2 text-danger border-bottom border-1 border-success">${result.result_name} - ${result.result_time}</div>`;
} else {
htmlResult += `<div class="col-8 text-center bg-warning bg-gradient py-1 px-2 text-danger">${result.result_name} - ${result.result_time}</div>`;
}
} else {
htmlResult += `<div class="col-8 text-center bg-warning bg-gradient py-1 px-2 text-danger">${result.result_name} - ${result.result_time}</div>`;
}
if (result.result_value=='closed') {
htmlResult += `<div class="col-4 text-center bg-dark bg-gradient py-1 px-2"><div class="text-center text-warning"><div class="spinner-border spinner-border-sm" role="status"><span class="sr-only">Loading...</span></div></div></div>`;
} else if (openvalue==='off') {
htmlResult += `<div class="col-4 text-center bg-dark bg-gradient py-1 px-2">${result.result_value}</div>`;
} else {
var valPrize = result.result_value;
if (valPrize.includes(",")) {
let splitPrizes = valPrize.split(",");
if (splitPrizes.length === 3) {
splitPrizes.forEach((grandPrize, numberPrize) => {
htmlResult += '<div class="col-4 m-0 p-0 border border-1 border-success">';
htmlResult += `<div class="col-12 text-center bg-secondary bg-gradient py-1 px-2 text-dark">PRIZE ${numberPrize + 1}</div>`;
htmlResult += `<div class="col-12 text-center bg-dark bg-gradient py-1 px-2">${grandPrize}</div>`;
htmlResult += '</div>';
});
} else {
htmlResult += `<div class="col-4 text-center bg-dark bg-gradient py-1 px-2">${result.result_value}</div>`;
}
} else {
htmlResult += `<div class="col-4 text-center bg-dark bg-gradient py-1 px-2">${result.result_value}</div>`;
}
}
} else {
htmlResult += `<div class="col-8 text-center bg-warning bg-gradient py-1 px-2 text-danger">${result.result_name} - ${result.result_time}</div>`;
htmlResult += `<div class="col-4 text-center bg-dark bg-gradient py-1 px-2"><div class="text-center text-warning"><div class="spinner-border spinner-border-sm" role="status"><span class="sr-only">Loading...</span></div></div></div>`;
}
return htmlResult;
}
function splitArray(array) {
var itemcaches = [];
const length = array.length;
const fortyPercent = Math.ceil(length * 0.4);
const startThirdColumn = fortyPercent * 2;
const column1 = array.slice(0, fortyPercent);
const column2 = array.slice(fortyPercent, startThirdColumn);
const column3 = array.slice(startThirdColumn);
itemcaches.push(column1);
itemcaches.push(column2);
itemcaches.push(column3);
return itemcaches;
}
function fetchResult() {
const apiUrl = 'https://angka2088.com/ajaxlive.json';
var req = new XMLHttpRequest();
req.overrideMimeType("application/json");
req.open('GET', apiUrl, true);
req.onload = async() => {
var maxcols = 3;
var jsonResponse = JSON.parse(req.responseText);
const resultdata = jsonResponse.items;
var itemresults = [];
var itemcaches = [];
var adsresults = [];
var adscaches = [];
var numColumn = 0;
var numAdColumn = 0;
var htmlResult = '';
var numIndex = 1;
itemresults = splitArray(resultdata);
if (isUpdateResult==false) {
const resultAds = await fetchAdsBanner();
const resultAdsbox = await fetchAdsInfobox();
resultAds.forEach((itemads, index) => {
const col = resultAds.length / (maxcols-1);
if (Math.floor(index % col) === 0) {
numAdColumn++;
adscaches = [];
adsresults.push(adscaches);
}
adscaches.push(itemads);
});
itemresults.forEach(async(itemresult, index, arr) => {
var numBanner = 0;
var numAdsbox = 0;
var column = index;
var adsbanners = [];
if (index < (maxcols-1)) {
adsbanners = adsresults[index];
}
htmlResult += '<div class="col-12 col-lg-4 px-1 px-lg-3">';
itemresult.forEach((result, index, arr) => {
htmlResult += `<div id="drawstat${column}-${index}" class="row text-uppercase fw-bold border border-1 border-success">`;
htmlResult += createInfoStat(result);
htmlResult += '</div>';
if (column == (maxcols-1)) {
const rowadsbox = itemresult.length / resultAdsbox.length;
if (Math.floor(index % rowadsbox) === Math.floor(rowadsbox - 1)) {
const adsboxbanner = resultAdsbox[numAdsbox];
htmlResult += '<div class="row border border-1 border-success py-3">';
htmlResult += `<img src="${adsboxbanner.ads_image}" alt="${adsboxbanner.ads_name}" class="col-12 m-0 p-0">`;
htmlResult += '<div class="d-flex flex-nowrap justify-content-between mt-2">';
htmlResult += `<a class="btn btn-warning" href="${adsboxbanner.ads_login}" target="_blank" rel="noopener noreferer" role="button">Login - Daftar</a>`;
htmlResult += `<a class="btn btn-warning" href="${adsboxbanner.ads_chat}" target="_blank" rel="noopener noreferer" role="button">Live Chat</a>`;
htmlResult += '</div>';
htmlResult += '<div class="captionbox fs-6 mt-2 pe-3">';
htmlResult += '<div class="text-center border border-warning py-1 lh-1 text-uppercase fw-bold">';
htmlResult += '<small class="d-block text-warning blinker">Situs Bandar Togel</small>';
htmlResult += '<small class="d-block text-white blinker">Terpercaya</small>';
htmlResult += '</div>';
htmlResult += '<div class="text-center border border-2 border-warning py-2 lh-1 text-uppercase fw-bold">';
htmlResult += '<span class="blinker">No.1</span>';
htmlResult += '</div>';
htmlResult += '</div>';
htmlResult += '</div>';
numAdsbox++;
}
}
if (adsbanners.length > 0) {
const row = itemresult.length / adsbanners.length;
if (Math.floor(index % row) === Math.floor(row - 1)) {
const banner = adsbanners[numBanner];
htmlResult += '<div class="row border border-1 border-success">';
htmlResult += `<a href="${banner.ads_linkurl}" target="_blank" rel="noopener noreferer" class="m-0 p-0"><img src="${banner.ads_image}" alt="${banner.ads_name}" class="col-12 m-0 p-0"></a>`;
htmlResult += '</div>';
numBanner++;
}
}
numIndex++;
});
htmlResult += '</div>';
});
document.getElementById('itemcontent').innerHTML = htmlResult;
isUpdateResult = true;
} else {
itemresults.forEach((itemresult, index, arr) => {
var column = index;
itemresult.forEach((result, index, arr) => {
var htmlUpdate = document.getElementById(`drawstat${column}-${index}`);
if (typeof htmlUpdate != 'undefined') {
htmlResult = createInfoStat(result);
htmlUpdate.innerHTML = htmlResult;
}
});
});
}
};
req.send(null);
setTimeout(fetchResult, interval);
}
fetchResult();
</script>
</body>
</html>