It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: http://keroroslayer.com

  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4.    <meta charset="utf-8">
  5.    <meta name="viewport" content="width=device-width, initial-scale=1">
  6.    <title>Hasil Data Keluaran Angka Live Draw Terlengkap Tercepat</title>
  7.    <link rel="icon" type="image/png" href="https://jamepix.com/public/liveawl/totohoki.png"/>
  8.    <meta name="title" content="Hasil Data Keluaran Angka Live Draw Terlengkap Tercepat" />
  9.    <meta name="description" content="Temukan hasil live draw togel hari ini dengan data akurat dan terupdate setiap hari! Result togel Hongkong, Sydney, Kalifornia, Singapore, China, Macau, Cambodia, Taiwan, Morocco, Japan, Texas, dan Jakarta. Data togel lengkap dan terpercaya di sini!" />
  10.    <!-- Open Graph / Facebook -->
  11.    <meta property="og:type" content="website" />
  12.    <meta property="og:url" content="https://livedrawmisteri.com/" />
  13.    <meta property="og:title" content="Hasil Data Keluaran Angka Live Draw Terlengkap Tercepat" />
  14.    <meta property="og:description" content="Temukan hasil live draw togel hari ini dengan data akurat dan terupdate setiap hari! Result togel Hongkong, Sydney, Kalifornia, Singapore, China, Macau, Cambodia, Taiwan, Morocco, Japan, Texas, dan Jakarta. Data togel lengkap dan terpercaya di sini!" />
  15.    <meta property="og:image" content="https://jamepix.com/public/liveawl/liveawl-banner-ff9cd542bd8dcccebc4dd265e9e03f23.gif" />
  16.    <!-- Twitter -->
  17.    <meta property="twitter:card" content="summary_large_image" />
  18.    <meta property="twitter:url" content="https://livedrawmisteri.com/" />
  19.    <meta property="twitter:title" content="Hasil Data Keluaran Angka Live Draw Terlengkap Tercepat" />
  20.    <meta property="twitter:description" content="Temukan hasil live draw togel hari ini dengan data akurat dan terupdate setiap hari! Result togel Hongkong, Sydney, Kalifornia, Singapore, China, Macau, Cambodia, Taiwan, Morocco, Japan, Texas, dan Jakarta. Data togel lengkap dan terpercaya di sini!" />
  21.    <meta property="twitter:image" content="https://jamepix.com/public/liveawl/liveawl-banner-ff9cd542bd8dcccebc4dd265e9e03f23.gif" />
  22.    <meta name="google-site-verification" content="4vnIAGKWo9OGpHk4sUAwtF1FDgxYaWMvGefZAMJcds4" />
  23.    <meta name="google-site-verification" content="uUS-1lw9SiGYUSFUh6r-TVsiWGw7eoRM8v8-N39fJAg" />
  24.    <link rel="canonical" href="https://livedrawmisteri.com/" />
  25.    <link rel="amphtml" href="https://pub-1bd38bc4acb8dc51bba088eea4f0c1a1.r2page.dev/livedraw/" />
  26.    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
  27.    <style type="text/css">
  28.        body {
  29.            background: rgb(17 24 39 / 1);
  30.            color: #fff;
  31.            padding: 1rem .5rem;
  32.        }
  33.        .sr-only {
  34.            display: none;
  35.        }
  36.        .outerbox {
  37.            border-radius: 5px 5px 5px 5px;
  38.            border: #ffd700 1px solid;
  39.            -moz-border-radius: 5px;
  40.            -webkit-border-radius: 5px 5px 5px 5px;
  41.            border-radius: 5px 5px 5px 5px;
  42.            background: #000000;
  43.            width: 100%;
  44.        }
  45.        .headbox {
  46.            padding: .25rem;
  47.            display: block;
  48.            margin: 0 auto;
  49.            max-width: 360px;
  50.        }
  51.        .headbox img {
  52.            width: 100%;
  53.            height: auto;
  54.            min-height: 30px;
  55.            display: block;
  56.        }
  57.        .captionbox {
  58.            margin-top: .25rem;
  59.            margin-bottom: .25rem;
  60.            display: grid;
  61.            grid-template-columns: 80% 20%;
  62.            column-gap: 4px;
  63.            text-transform: uppercase;
  64.        }
  65.        .runningtextbox {
  66.            background-color: #ffd700;
  67.            padding: 5px 4px;
  68.            color: #333;
  69.            width: calc(100% - 2px);
  70.        }
  71.        .running-container {
  72.            background-color: #000;
  73.            color: #fff;
  74.            overflow: hidden;
  75.            white-space: nowrap;
  76.        }
  77.        .running-text {
  78.            -moz-transform: translateX(100%);
  79.            -webkit-transform: translateX(100%);
  80.            transform: translateX(100%);
  81.            -moz-animation: text-animation 15s linear infinite;
  82.            -webkit-animation: text-animation 15s linear infinite;
  83.            animation: text-animation 15s linear infinite;
  84.        }
  85.        .liveshowbox {
  86.            background-color: #ffd700;
  87.            padding: 5px 4px;
  88.            color: #333;
  89.            display: inline-block;
  90.        }
  91.        .liveshow-container {
  92.            background-color: #000;
  93.            color: #ffff00;
  94.            text-align: center;
  95.        }
  96.        .liveshow-text {
  97.            animation: blink-animation 1s steps(5, start) infinite;
  98.            -webkit-animation: blink-animation 1s steps(5, start) infinite;
  99.        }
  100.        .blinker {
  101.            animation: blink-animation 1s steps(5, start) infinite;
  102.            -webkit-animation: blink-animation 1s steps(5, start) infinite;
  103.        }
  104.        @keyframes blink-animation {
  105.            to {
  106.              visibility: hidden;
  107.            }
  108.        }
  109.        
  110.        @-webkit-keyframes blink-animation {
  111.            to {
  112.              visibility: hidden;
  113.            }
  114.        }
  115.  
  116.        @-moz-keyframes text-animation {
  117.            from { -moz-transform: translateX(100%); }
  118.            to { -moz-transform: translateX(-100%); }
  119.        }
  120.        
  121.        @-webkit-keyframes text-animation {
  122.            from { -webkit-transform: translateX(100%); }
  123.            to { -webkit-transform: translateX(-100%); }
  124.        }
  125.        
  126.        @keyframes text-animation {
  127.            from {
  128.                -moz-transform: translateX(100%);
  129.                -webkit-transform: translateX(100%);
  130.                transform: translateX(100%);
  131.            }
  132.            to {
  133.                -moz-transform: translateX(-100%);
  134.                -webkit-transform: translateX(-100%);
  135.                transform: translateX(-100%);
  136.            }
  137.        }
  138.    </style>
  139. </head>
  140. <body>
  141.    <div class="container outerbox">
  142.        <div class="d-block col-lg-6 mx-auto">
  143.            <div class="captionbox fs-6 mt-2">
  144.                <div class="runningtextbox">
  145.                    <div class="running-container">
  146.                        <div class="running-text">
  147.                            <span style="color: #ffff00">[LIVE DRAW]</span>
  148.                            <span id="datetimenow">Jumat, 24 Januari 2025</span>
  149.                        </div>
  150.                    </div>
  151.                </div>
  152.                <div class="liveshowbox">
  153.                    <div class="liveshow-container">
  154.                        <span class="liveshow-text">LIVE</span>
  155.                    </div>
  156.                </div>
  157.            </div>
  158.            <div class="col-12 col-md-10 mx-auto">
  159.                <a href="https://vviplive2025.org/" target="_blank"><img src="https://jamepix.com/public/liveawl/liveawl-banner-ff9cd542bd8dcccebc4dd265e9e03f23.gif" alt="Data HK" class="col-12"></a>
  160.            </div>
  161.        </div>
  162.        <div class="d-block col-lg-8 mx-auto">
  163.            <img src="https://jamepix.com/public/liveawl/liveawl-banner-9f29ffbfc4d725e52b62365d5035157d.png" alt="JT Group" class="col-12">
  164.        </div>
  165.        <div class="d-block col-lg-6 mx-auto">
  166.            <div class="text-center text-warning mt-2 border border-warning">
  167.                <span class="blinker">TANPA REFRESH, AUTO UPDATE !!</span>
  168.            </div>
  169.        </div>
  170.        <div id="itemcontent" class="d-flex flex-wrap justify-content-center px-1 py-2 mb-1">
  171.            <div class="col-12 d-flex py-3 justify-content-center">
  172.                <div class="spinner-border text-warning" role="status" style="width:48px;height:48px">
  173.                  <span class="sr-only">Loading...</span>
  174.                </div>
  175.            </div>
  176.        </div>
  177.        <div class="d-block col-12 my-5 text-center">
  178.            <h4>The Best Live Draw Result</h4>
  179.            <p>Menampilkan live draw atau hasil undian secara langsung dan transparan untuk semua pecinta togel. Data hasil keluaran angka akan ditampilkan secara real-time tanpa adanya manipulasi. Dengan memilih Bandar Togel Terpercaya yang tepat, banyak pasaran yang menawarkan variasi taruhan seperti 4D, 3D, dan 2D sehingga para sultan togel dapat memahami untuk membaca data statistik secara efektif.</p>
  180.            <p>Data Keluaran Sydney Lotto memiliki peluang kemenangan yang besar dan sistemnya sangat fair. Togel Singapore (SGP) juga dapat menjadi favorit karena hampir setiap hari memiliki jadwal pengeluaran angka serta selalu diawasi secara resmi oleh Singapore Pools. Yang Paling Terkenal ialah Data Toto Macau merupakan pasaran terpopuler dengan jadwal pengeluaran angka yang fleksibel dan juga memiliki peluang kemenangan yang jauh lebih tinggi.</p>
  181.            <p>Selain pasaran Asia seperti Data Hongkong, Data Singapore, Data Sydney, Data China, Data Jepang, Data Jakarta dan Data Macau. Terdapat juga psaran Global yang terkenal, seperti data texas, data morroco, data alhambra, data istanbul, data kharkiv, data virginia, data oregon, data new york, data new jeysey, data georgia, data mediterania, data germany pluss, dan pasaran lainnya yang dapat meberikan peluang kemenangan yang besar.</p>
  182.            <p>live draw
  183. live draw hk
  184. live draw sdy
  185. live draw sgp
  186. live draw taiwan
  187. live draw china
  188. live draw cambodia
  189. live draw sdy lotto
  190. live draw macau
  191. live draw japan
  192. live draw hk lotto
  193. live draw hk pools
  194. live draw hk malam ini
  195. live draw sgp tercepat
  196. live draw toto macau
  197. live draw sdy pools
  198. draw live hk
  199. draw live sdy
  200. draw live sgp
  201. draw live cambodia
  202. draw live indiana evening
  203. draw live taiwan
  204. draw live sydney
  205. draw live china
  206. draw live hk lotto
  207. draw live sdy lotto
  208. draw live macau
  209. draw live sgp hari ini
  210. draw live sdy 6d pools
  211. draw live hawai
  212. draw live jepang
  213. live draw hk hari ini
  214. live draw hongkong pools
  215. live draw hongkong
  216. live draw sydney pools
  217. live draw singapore
  218. live draw sidney
  219. live draw hongkong lotto
  220. draw live
  221. keno live draw
  222. </p>
  223. <p0>data keluaran
  224. data keluaran hk
  225. data keluaran macau
  226. data keluaran sdy
  227. data keluaran hk 2025
  228. data keluaran cambodia
  229. data keluaran taiwan
  230. data keluaran sgp
  231. data keluaran toto macau
  232. data keluaran china
  233. data keluaran cambodia 2025
  234. data keluaran macau 2025
  235. data keluaran hk lotto
  236. data keluaran hk lotto 2025
  237. data keluaran sdy lotto
  238. data keluaran hk 2023
  239. keluaran data hk
  240. keluaran data sidney
  241. keluaran data macau
  242. keluaran data hongkong
  243. keluaran data sgp
  244. keluaran data hk 2025
  245. keluaran data sdy
  246. keluaran data kamboja
  247. keluaran data hk 6d
  248. keluaran data taiwan
  249. keluaran data hongkong malam ini
  250. keluaran data sgp 2025
  251. keluaran data hk lotto
  252. keluaran data sidney hari ini
  253. keluaran data sdy 2025
  254. data keluaran sdy 2025
  255. data keluaran togel
  256. data keluaran kamboja
  257. data keluaran hk 6d
  258. </p>
  259.  
  260. <p class="my-4">Copyright &copy;2010-2025 JATENG TOTO GROUP</p>
  261.        </div>
  262.    </div>
  263.    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
  264.    <script type="text/javascript">
  265.        const getCurrentTime = async () => {
  266.            var timeCount = 0;
  267.            var dayNames = ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu'];
  268.            var monthNames = ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'];
  269.            var today = new Date();
  270.            var dd = String(today.getDate()).padStart(2, '0');
  271.            var mm = String(today.getMonth() + 1).padStart(2, '0');
  272.            var ff = monthNames[today.getMonth()];
  273.            var yyyy = today.getFullYear();
  274.            var dayName = dayNames[today.getDay()];
  275.            var hh = String(today.getHours()).padStart(2, '0');
  276.            var ii = String(today.getMinutes()).padStart(2, '0');
  277.            var ss = String(today.getSeconds()).padStart(2, '0');
  278.        
  279.            today = dayName + ', ' + dd + ' ' + ff + ' ' + yyyy + ' | ' + hh + ':' + ii + ':' + ss;
  280.            const span = document.getElementById('datetimenow');
  281.            span.textContent = today;
  282.        
  283.            setTimeout(getCurrentTime, 1000);
  284.        }
  285.        
  286.        getCurrentTime();
  287.    </script>
  288.    <script type="text/javascript">
  289.        const interval = 1000;
  290.        var isUpdateResult = false;
  291.        
  292.        function checkResetTimeResult(openTime) {
  293.            let now = new Date();
  294.            let currentHour = now.getHours();
  295.            let currentMinute = now.getMinutes();
  296.        
  297.            let currentTime = currentHour + currentMinute / 60;
  298.        
  299.            let [openHour, openMinute] = openTime.split(":").map(Number);
  300.            let openTimeDecimal = openHour + openMinute / 60;
  301.        
  302.            let elevenFifteen = 11.25;
  303.            let twentyThreeThirty = 23.5;
  304.        
  305.            if (currentTime >= 23 || currentTime < 0) {
  306.                return openTimeDecimal > currentTime || openTimeDecimal < elevenFifteen;
  307.            }
  308.            
  309.            if (currentTime >= 0 && currentTime < elevenFifteen) {
  310.                return openTimeDecimal > currentTime && openTimeDecimal < elevenFifteen;
  311.            }
  312.        
  313.            if (currentTime >= elevenFifteen && currentTime <= 23) {
  314.                return openTimeDecimal > currentTime && openTimeDecimal < twentyThreeThirty;
  315.            }
  316.        
  317.            return false;
  318.        }
  319.        
  320.        function isOpenTimeResult(openTime) {
  321.            const currentTime = new Date();
  322.            const hours = currentTime.getHours();
  323.            const minutes = currentTime.getMinutes();
  324.        
  325.            function timeInMinutes(hours, minutes) {
  326.                return hours * 60 + minutes;
  327.            }
  328.        
  329.            const currentMinutes = timeInMinutes(hours, minutes);
  330.            const limitTime = timeInMinutes(11, 15);
  331.            const [openHours, openMinutes] = openTime.split(':').map(Number);
  332.            const openMinutesTotal = timeInMinutes(openHours, openMinutes);
  333.        
  334.            if (currentMinutes >= timeInMinutes(23, 0) && currentMinutes <= timeInMinutes(23, 59)) {
  335.                return openMinutesTotal < currentMinutes || openMinutesTotal <= limitTime;
  336.            }
  337.        
  338.            if (currentMinutes >= timeInMinutes(0, 0) && currentMinutes <= limitTime) {
  339.                return openMinutesTotal < currentMinutes && openMinutesTotal <= limitTime;
  340.            }
  341.        
  342.            if (currentMinutes > limitTime && currentMinutes < timeInMinutes(23, 0)) {
  343.                return openMinutesTotal < currentMinutes && openMinutesTotal <= timeInMinutes(23, 0);
  344.            }
  345.        
  346.            return false;
  347.        }
  348.        
  349.        function getFetchRequest(url) {
  350.            return new Promise((resolve, reject) => {
  351.                let xhr = new XMLHttpRequest();
  352.                xhr.open('GET', url, true);
  353.        
  354.                xhr.onreadystatechange = function() {
  355.                    if (xhr.readyState === 4) {
  356.                        if (xhr.status === 200) {
  357.                            resolve(xhr.responseText);
  358.                        } else {
  359.                            reject(`Error: ${xhr.status}`);
  360.                        }
  361.                    }
  362.                };
  363.        
  364.                xhr.onerror = function() {
  365.                    reject('Network error');
  366.                };
  367.        
  368.                xhr.send();
  369.            });
  370.        }
  371.        
  372.        async function fetchAdsBanner() {
  373.            var itemresults = [];
  374.            try {
  375.                let jsonResponse = JSON.parse(await getFetchRequest('https://angka2088.com/ajaxadsbanner.json'));
  376.                const itemmaps = jsonResponse.items;
  377.                itemmaps.forEach((itemtemp, index) => {
  378.                    itemresults.push(itemtemp);
  379.                });
  380.            } catch (error) {
  381.                console.error('There has been a problem with your request:', error);
  382.            }
  383.            return itemresults;
  384.        }
  385.        
  386.        async function fetchAdsInfobox() {
  387.            var itemresults = [];
  388.            try {
  389.                let jsonResponse = JSON.parse(await getFetchRequest('https://angka2088.com/ajaxadscolbox.json'));
  390.                const itemmaps = jsonResponse.items;
  391.                itemmaps.forEach((itemtemp, index) => {
  392.                    itemresults.push(itemtemp);
  393.                });
  394.            } catch (error) {
  395.                console.error('There has been a problem with your request:', error);
  396.            }
  397.            return itemresults;
  398.        }
  399.        
  400.        
  401.        function createInfoStat(result) {
  402.            htmlResult = '';
  403.            let resultValue = result.result_value;
  404.            const opendate = result.result_date;
  405.            const opentime = result.result_time;
  406.            const openvalue =result.result_value.toLowerCase();
  407.            
  408.            var resultstatus = 'opened';
  409.            var timenow = new Date();
  410.            var hournow = String(timenow.getHours()).padStart(2, "0");
  411.            var minutenow = String(timenow.getMinutes()).padStart(2, "0");
  412.            var currentTime = `${hournow}:${minutenow}`;
  413.            var timeresult = new Date(`${opendate} ${opentime}:00`);
  414.            var hourresult = String(timeresult.getHours()).padStart(2, "0");
  415.            var minuteresult = String(timeresult.getMinutes()).padStart(2, "0");
  416.            var pointTime = `${hourresult}:${minuteresult}`;
  417.            var yearnow = timenow.getFullYear();
  418.            var monthnow = String(timenow.getMonth() + 1).padStart(2, '0');
  419.            var daynow = String(timenow.getDate()).padStart(2, '0');
  420.            var todaynow = `${yearnow}-${monthnow}-${daynow}`;
  421.            
  422.            if (checkResetTimeResult(pointTime)) {
  423.                resultstatus='closed';
  424.            } else if (isOpenTimeResult(pointTime) && todaynow!==opendate) {
  425.                resultstatus='closed';
  426.            }
  427.            
  428.            if (resultstatus=='opened') {
  429.                if (resultValue.includes(",")) {
  430.                    let resSplitPrizes = resultValue.split(",");
  431.                    if (resSplitPrizes.length === 3) {
  432.                        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>`;
  433.                    } else {
  434.                        htmlResult += `<div class="col-8 text-center bg-warning bg-gradient py-1 px-2 text-danger">${result.result_name} - ${result.result_time}</div>`;
  435.                    }
  436.                } else {
  437.                    htmlResult += `<div class="col-8 text-center bg-warning bg-gradient py-1 px-2 text-danger">${result.result_name} - ${result.result_time}</div>`;
  438.                }
  439.                
  440.                if (result.result_value=='closed') {
  441.                    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>`;
  442.                } else if (openvalue==='off') {
  443.                    htmlResult += `<div class="col-4 text-center bg-dark bg-gradient py-1 px-2">${result.result_value}</div>`;
  444.                } else {
  445.                    var valPrize = result.result_value;
  446.                    if (valPrize.includes(",")) {
  447.                        let splitPrizes = valPrize.split(",");
  448.                        if (splitPrizes.length === 3) {
  449.                            splitPrizes.forEach((grandPrize, numberPrize) => {
  450.                                htmlResult += '<div class="col-4 m-0 p-0 border border-1 border-success">';
  451.                                htmlResult += `<div class="col-12 text-center bg-secondary bg-gradient py-1 px-2 text-dark">PRIZE ${numberPrize + 1}</div>`;
  452.                                htmlResult += `<div class="col-12 text-center bg-dark bg-gradient py-1 px-2">${grandPrize}</div>`;
  453.                                htmlResult += '</div>';
  454.                            });
  455.                        } else {
  456.                            htmlResult += `<div class="col-4 text-center bg-dark bg-gradient py-1 px-2">${result.result_value}</div>`;
  457.                        }
  458.                    } else {
  459.                        htmlResult += `<div class="col-4 text-center bg-dark bg-gradient py-1 px-2">${result.result_value}</div>`;
  460.                    }
  461.                }
  462.            } else {
  463.                htmlResult += `<div class="col-8 text-center bg-warning bg-gradient py-1 px-2 text-danger">${result.result_name} - ${result.result_time}</div>`;
  464.                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>`;
  465.            }
  466.            return htmlResult;
  467.        }
  468.        
  469.        function splitArray(array) {
  470.            var itemcaches = [];
  471.            const length = array.length;
  472.            const fortyPercent = Math.ceil(length * 0.4);
  473.            const startThirdColumn = fortyPercent * 2;
  474.            const column1 = array.slice(0, fortyPercent);
  475.            const column2 = array.slice(fortyPercent, startThirdColumn);
  476.            const column3 = array.slice(startThirdColumn);
  477.        
  478.            itemcaches.push(column1);
  479.            itemcaches.push(column2);
  480.            itemcaches.push(column3);
  481.            
  482.            return itemcaches;
  483.        }
  484.  
  485.        function fetchResult() {
  486.            const apiUrl = 'https://angka2088.com/ajaxlive.json';
  487.            var req = new XMLHttpRequest();
  488.            req.overrideMimeType("application/json");
  489.            req.open('GET', apiUrl, true);
  490.            req.onload  = async() => {
  491.                var maxcols = 3;
  492.                var jsonResponse = JSON.parse(req.responseText);
  493.                const resultdata = jsonResponse.items;
  494.                var itemresults = [];
  495.                var itemcaches = [];
  496.                var adsresults = [];
  497.                var adscaches = [];
  498.                var numColumn = 0;
  499.                var numAdColumn = 0;
  500.                var htmlResult = '';
  501.                var numIndex = 1;
  502.                
  503.                itemresults = splitArray(resultdata);
  504.                
  505.                if (isUpdateResult==false) {
  506.                    const resultAds = await fetchAdsBanner();
  507.                    const resultAdsbox = await fetchAdsInfobox();
  508.                    
  509.                    resultAds.forEach((itemads, index) => {
  510.                        const col = resultAds.length / (maxcols-1);
  511.                        if (Math.floor(index % col) === 0) {
  512.                            numAdColumn++;
  513.                            adscaches = [];
  514.                            adsresults.push(adscaches);
  515.                        }
  516.                        adscaches.push(itemads);
  517.                    });
  518.                    
  519.                    itemresults.forEach(async(itemresult, index, arr) => {
  520.                        var numBanner = 0;
  521.                        var numAdsbox = 0;
  522.                        var column = index;
  523.                        var adsbanners = [];
  524.                        
  525.                        if (index < (maxcols-1)) {
  526.                            adsbanners = adsresults[index];
  527.                        }
  528.                        
  529.                        htmlResult += '<div class="col-12 col-lg-4 px-1 px-lg-3">';
  530.                        itemresult.forEach((result, index, arr) => {
  531.                            htmlResult += `<div id="drawstat${column}-${index}" class="row text-uppercase fw-bold border border-1 border-success">`;
  532.                            htmlResult += createInfoStat(result);
  533.                            htmlResult += '</div>';
  534.                            
  535.                            if (column == (maxcols-1)) {
  536.                                const rowadsbox = itemresult.length / resultAdsbox.length;
  537.                                if (Math.floor(index % rowadsbox) === Math.floor(rowadsbox - 1)) {
  538.                                    const adsboxbanner = resultAdsbox[numAdsbox];
  539.                                    htmlResult += '<div class="row border border-1 border-success py-3">';
  540.                                        htmlResult += `<img src="${adsboxbanner.ads_image}" alt="${adsboxbanner.ads_name}" class="col-12 m-0 p-0">`;
  541.                                        htmlResult += '<div class="d-flex flex-nowrap justify-content-between mt-2">';
  542.                                            htmlResult += `<a class="btn btn-warning" href="${adsboxbanner.ads_login}" target="_blank" rel="noopener noreferer" role="button">Login - Daftar</a>`;
  543.                                            htmlResult += `<a class="btn btn-warning" href="${adsboxbanner.ads_chat}" target="_blank" rel="noopener noreferer" role="button">Live Chat</a>`;
  544.                                        htmlResult += '</div>';
  545.                                        htmlResult += '<div class="captionbox fs-6 mt-2 pe-3">';
  546.                                            htmlResult += '<div class="text-center border border-warning py-1 lh-1 text-uppercase fw-bold">';
  547.                                                htmlResult += '<small class="d-block text-warning blinker">Situs Bandar Togel</small>';
  548.                                                htmlResult += '<small class="d-block text-white blinker">Terpercaya</small>';
  549.                                            htmlResult += '</div>';
  550.                                            htmlResult += '<div class="text-center border border-2 border-warning py-2 lh-1 text-uppercase fw-bold">';
  551.                                                htmlResult += '<span class="blinker">No.1</span>';
  552.                                            htmlResult += '</div>';
  553.                                        htmlResult += '</div>';
  554.                                    htmlResult += '</div>';
  555.                                    numAdsbox++;
  556.                                }
  557.                            }
  558.                            
  559.                            if (adsbanners.length > 0) {
  560.                                const row = itemresult.length / adsbanners.length;
  561.                                if (Math.floor(index % row) === Math.floor(row - 1)) {
  562.                                    const banner = adsbanners[numBanner];
  563.                                    htmlResult += '<div class="row border border-1 border-success">';
  564.                                    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>`;
  565.                                    htmlResult += '</div>';
  566.                                    numBanner++;
  567.                                }
  568.                            }
  569.                            numIndex++;
  570.                        });
  571.                        
  572.                        htmlResult += '</div>';
  573.                    });
  574.                    
  575.                    document.getElementById('itemcontent').innerHTML = htmlResult;
  576.                    isUpdateResult = true;
  577.                } else {
  578.                    itemresults.forEach((itemresult, index, arr) => {
  579.                        var column = index;
  580.                        itemresult.forEach((result, index, arr) => {
  581.                            var htmlUpdate = document.getElementById(`drawstat${column}-${index}`);
  582.                            if (typeof htmlUpdate != 'undefined') {
  583.                                htmlResult = createInfoStat(result);
  584.                                htmlUpdate.innerHTML = htmlResult;
  585.                            }
  586.                        });
  587.                    });
  588.                }
  589.            };
  590.            req.send(null);
  591.            
  592.            setTimeout(fetchResult, interval);
  593.        }
  594.        
  595.        fetchResult();
  596.    </script>
  597. </body>
  598. </html>
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda