const pasarans=[{name:"SINGAPORE",offline:"17:30",online:"17:45",img:"/pic/daisototo-singapore.webp"},{name:"SYDNEY",offline:"13:25",online:"14:00",img:"/pic/daisototo-sydney.webp"},{name:"HONGKONG",offline:"22:45",online:"23:00",img:"/pic/daisototo-hongkong.webp"},{name:"KINGKONG POOLS 1",offline:"16:59",online:"17:00",img:"/pic/daisototo-kingkong.webp"},{name:"KINGKONG POOLS 2",offline:"22:59",online:"23:00",img:"/pic/daisototo-kingkong.webp"},{name:"TOTO MACAU 01",offline:"00:01",online:"00:15",img:"/pic/daisototo-totomacau1.webp"},{name:"TOTO MACAU 02",offline:"13:00",online:"13:15",img:"/pic/daisototo-totomacau2.webp"},{name:"TOTO MACAU 03",offline:"16:00",online:"16:15",img:"/pic/daisototo-totomacau3.webp"},{name:"TOTO MACAU 04",offline:"19:00",online:"19:15",img:"/pic/daisototo-totomacau4.webp"},{name:"TOTO MACAU 05",offline:"22:00",online:"22:15",img:"/pic/daisototo-totomacau5.webp"},{name:"TOTO MACAU 06",offline:"23:00",online:"23:15",img:"/pic/daisototo-totomacau6.webp"},{name:"TOTO MACAU 5D",offline:"23:00",online:"23:15",img:"/pic/daisototo-totomacau5d.webp"},{name:"CAMBODIA",offline:"11:35",online:"11:50",img:"/pic/daisototo-cambodia.webp"},{name:"CHINA",offline:"15:15",online:"15:30",img:"/pic/daisototo-china.webp"},{name:"TOKYO04",offline:"04:15",online:"04:30",img:"/pic/daisototo-tokyo04.webp"},{name:"TOKYO11",offline:"11:25",online:"11:40",img:"/pic/daisototo-tokyo11.webp"},{name:"TOKYO21",offline:"21:40",online:"21:55",img:"/pic/daisototo-tokyo21.webp"},{name:"TOKYO23",offline:"23:40",online:"23:55",img:"/pic/daisototo-tokyo23.webp"},{name:"PCSO",offline:"19:50",online:"20:10",img:"/pic/daisototo-pcso.webp"},{name:"HELSINKI02",offline:"02:30",online:"02:45",img:"/pic/daisototo-helsinki02.webp"},{name:"HELSINKI18",offline:"18:30",online:"18:45",img:"/pic/daisototo-helsinki18.webp"},{name:"MELBOURNE13",offline:"12:45",online:"13:00",img:"/pic/daisototo-melbourne13.webp"},{name:"MELBOURNE19",offline:"19:20",online:"19:35",img:"/pic/daisototo-melbourne19.webp"},{name:"ULSAN",offline:"00:15",online:"00:45",img:"/pic/daisototo-ulsan.webp"},{name:"BUSAN",offline:"01:15",online:"01:30",img:"/pic/daisototo-busan.webp"},{name:"JAMAICA",offline:"03:20",online:"03:35",img:"/pic/daisototo-jamaica.webp"},{name:"CHICAGO",offline:"05:30",online:"05:45",img:"/pic/daisototo-chicago.webp"},{name:"TAIWAN",offline:"20:30",online:"20:45",img:"/pic/daisototo-taiwan.webp"},{name:"MACAU",offline:"09:45",online:"10:15",img:"/pic/daisototo-macau.webp"},{name:"MOSCOW",offline:"10:45",online:"11:00",img:"/pic/daisototo-moscow.webp"},{name:"BEIJING",offline:"14:20",online:"14:35",img:"/pic/daisototo-beijing.webp"},{name:"PENANG",offline:"15:00",online:"15:30",img:"/pic/daisototo-penang.webp"},{name:"NEWYORK",offline:"16:30",online:"16:45",img:"/pic/daisototo-newyork.webp"},{name:"MEXICO",offline:"20:30",online:"21:00",img:"/pic/daisototo-mexico.webp"}];function displayDateTime(){const options={weekday:"long",year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZone:"Asia/Jakarta",hour12:false};const date=(new Date).toLocaleString("id-ID",options);document.getElementById("datetime").textContent=date}setInterval(displayDateTime,1e3);displayDateTime();function generatePrediksi(seed){function random(min,max){return Math.floor(Math.random()*(max-min+1))+min}function generateUniqueNumbers(length,min,max){const numbers=new Set;while(numbers.size<length){numbers.add(random(min,max))}return Array.from(numbers)}function generateUniqueCombinations(length,digitCount,min,max){const combinations=new Set;while(combinations.size<length){let combination="";for(let i=0;i<digitCount;i++){combination+=random(min,max)}combinations.add(combination)}return Array.from(combinations)}const bbfs=generateUniqueNumbers(7,0,9);const colok=generateUniqueNumbers(3,0,9);const top2d=[];const pairsSet=new Set;while(pairsSet.size<10){const a=random(0,9);const b=random(0,9);pairsSet.add(`${a}${b}`)}pairsSet.forEach(pair=>top2d.push(pair));const top3d=generateUniqueCombinations(10,3,0,9);const top4d=generateUniqueCombinations(10,4,0,9);const shio=["Tikus","Kerbau","Macan","Kelinci","Naga","Ular","Kuda","Kambing","Monyet","Ayam","Anjing","Babi"];const shioResult=shio[random(0,11)];return{bbfs:bbfs.join(" "),colok:colok.join(" "),top2d:top2d.join(", "),top3d:top3d.join(", "),top4d:top4d.join(", "),shio:shioResult}}function getOrGeneratePrediksi(marketName){const today=(new Date).toISOString().split("T")[0];const seed=parseInt(today.replace(/-/g,"")+marketName,10);const storedData=localStorage.getItem(`${marketName}-${today}`);if(storedData){return JSON.parse(storedData)}else{const prediksi=generatePrediksi(seed);localStorage.setItem(`${marketName}-${today}`,JSON.stringify(prediksi));return prediksi}}document.addEventListener("DOMContentLoaded",()=>{const container=document.querySelector(".container");const today=(new Date).toISOString().split("T")[0];console.log("Container ditemukan:",container);pasarans.forEach((pasaran,index)=>{console.log("Menambahkan pasaran:",pasaran.name);const prediksi=getOrGeneratePrediksi(pasaran.name);console.log("Prediksi:",prediksi);const div=document.createElement("div");div.className="pasaran";div.innerHTML=`
            <img src="${pasaran.img}" alt="${pasaran.name}">
            <h3>${pasaran.name}</h3>
            <p>Jam Tutup: ${pasaran.offline}</p>
            <p>Jam Result: ${pasaran.online}</p>

            <button class="lihat-prediksi-btn">
                <span>LIHAT PREDIKSI</span>
                <span class="arrow">&#8594;</span>
            </button>

            <div class="prediksi" style="display: none;">
                <div class="prediksi-item">
                    <h3>BBFS</h3>
                    <div class="prediksi-highlight">
                        <span class="prediksi-number">${prediksi.bbfs}</span>
                        <button class="copy-btn" data-clipboard-text="${prediksi.bbfs}">Copy</button>
                    </div>
                </div>
                <div class="prediksi-item">
                    <h3>COLOK ANGKA</h3>
                    <div class="prediksi-highlight">
                        <span class="prediksi-number">${prediksi.colok}</span>
                        <button class="copy-btn" data-clipboard-text="${prediksi.colok}">Copy</button>
                    </div>
                </div>
                <div class="prediksi-item">
                    <h3>TOP 2D</h3>
                    <div class="prediksi-highlight">
                        <span class="prediksi-number">${prediksi.top2d}</span>
                        <button class="copy-btn" data-clipboard-text="${prediksi.top2d}">Copy</button>
                    </div>
                </div>
                <div class="prediksi-item">
                    <h3>TOP 3D</h3>
                    <div class="prediksi-highlight">
                        <span class="prediksi-number">${prediksi.top3d}</span>
                        <button class="copy-btn" data-clipboard-text="${prediksi.top3d}">Copy</button>
                    </div>
                </div>
                <div class="prediksi-item">
                    <h3>TOP 4D</h3>
                    <div class="prediksi-highlight">
                        <span class="prediksi-number">${prediksi.top4d}</span>
                        <button class="copy-btn" data-clipboard-text="${prediksi.top4d}">Copy</button>
                    </div>
                </div>
                <div class="prediksi-item">
                    <h3>SHIO</h3>
                    <div class="prediksi-highlight">
                        <span class="prediksi-number">${prediksi.shio}</span>
                        <button class="copy-btn" data-clipboard-text="${prediksi.shio}">Copy</button>
                    </div>
                </div>
            </div>
        `;container.appendChild(div);const button=div.querySelector(".lihat-prediksi-btn");const prediksiDiv=div.querySelector(".prediksi");button.addEventListener("click",()=>{if(prediksiDiv.style.display==="none"){prediksiDiv.style.display="block";button.querySelector("span").textContent="SEMBUNYIKAN PREDIKSI"}else{prediksiDiv.style.display="none";button.querySelector("span").textContent="LIHAT PREDIKSI"}});const copyButtons=div.querySelectorAll(".copy-btn");copyButtons.forEach(copyButton=>{copyButton.addEventListener("click",e=>{const text=e.target.getAttribute("data-clipboard-text");navigator.clipboard.writeText(text).then(()=>{alert("Nomor prediksi disalin: "+text)})})})});document.getElementById("search").addEventListener("input",e=>{const searchTerm=e.target.value.toLowerCase();const pasaranItems=document.querySelectorAll(".pasaran");pasaranItems.forEach(item=>{const name=item.querySelector("h3").textContent.toLowerCase();if(name.includes(searchTerm)){item.style.display="block"}else{item.style.display="none"}})})});
