<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Darts Events</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #121212;
            color: #FFFFFF;
            margin: 20px;
        }

        table {
            width: 100%;
            border-collapse: collapse;
            margin-top: 20px;
            background-color: #1E1E1E;
        }

        th,
        td {
            border: 1px solid #333;
            padding: 10px;
            text-align: left;
        }

        th {
            background-color: #333;
            color: #4FC3F7;
        }

        th:nth-child(2) {
            color: #FF5252;
        }

        tr:nth-child(even) {
            background-color: #2A2A2A;
        }

        tr:hover {
            background-color: #444;
        }

        h1 {
            color: #4FC3F7;
        }

        #loading {
            text-align: center;
            font-size: 1.2em;
        }

        #error {
            color: #FF5252;
            text-align: center;
        }

        .acestream-link {
            color: #4ff78d;
            text-decoration: none;
            margin-right: 10px;
        }

        .acestream-link:hover {
            text-decoration: underline;
        }

        .acestream-links {
            display: inline-block;
            margin-left: 10px;
        }
    </style>
</head>

<body>
    <h1>Darts Events on Sky Sports</h1>
    <p><a href="http://127.0.0.1:43110/1Gg6PxRS3HD9WdfNMRAccCHmH7LGP6MTd6/"
            style="color: #4ff78d; text-decoration: none;" target="_blank">
            Tupla Elcano.top
        </a></p>
    <p id="loading">Loading events...</p>
    <p id="error" style="display: none;">Failed to load events. Please try again later.</p>
    <table style="display: none;" id="events-table">
        <thead>
            <tr>
                <th>Date</th>
                <th>Event</th>
                <th>Details</th>
            </tr>
        </thead>
        <tbody id="events-body">
        </tbody>
    </table>

    <script>
        const url = "https://api.codetabs.com/v1/proxy/?quest=https://www.skysports.com/watch/darts-on-sky";
        
        // Objeto con múltiples enlaces por canal
        const aceStreamLinks = {
            "Sky Sports Main Event": [
                {
                    name: "Acestream 1",
                    url: "acestream://3c3e74d4dc0bc6843be57a9576ee8e3c43139729"
                },
                {
                    name: "Acestream 2",
                    url: "acestream://02fe00498cb61830099f058255d43330ff079459"
                },
                {
                    name: "Acestream 3",
                    url: "acestream://14845adcad97ce78b637591a2184c2f8c5f6398c"
                },
                {
                    name: "Acestream 4",
                    url: "acestream://eab7aeef0218ce8b0752e596e4792b69eda4df5e"
                }
                // Puedes agregar más enlaces aquí
            ]
        };

        const loadingElement = document.getElementById("loading");
        const errorElement = document.getElementById("error");
        const tableElement = document.getElementById("events-table");
        const eventsBody = document.getElementById("events-body");

        function createAceStreamLinks(text) {
            for (const [channel, links] of Object.entries(aceStreamLinks)) {
                if (text.includes(channel)) {
                    const linksHtml = links.map(link => 
                        `<a href="${link.url}" class="acestream-link" target="_blank">[${link.name}]</a>`
                    ).join('');
                    return `${text}<span class="acestream-links">${linksHtml}</span>`;
                }
            }
            return text;
        }

        fetch(url)
            .then(response => {
                if (!response.ok) {
                    throw new Error(`HTTP error! Status: ${response.status}`);
                }
                return response.text();
            })
            .then(html => {
                const parser = new DOMParser();
                const doc = parser.parseFromString(html, "text/html");

                const events = [];
                doc.querySelectorAll("h3.text-h4.-rs-style20.box").forEach(dateElement => {
                    const date = dateElement.textContent.trim();
                    const eventGroup = dateElement.nextElementSibling;
                    if (eventGroup && eventGroup.querySelector("strong")) {
                        const eventTitle = eventGroup.querySelector("strong").textContent.trim();
                        const eventDetails = eventGroup.querySelector("p.event-detail").textContent.trim();
                        events.push({ date, event: eventTitle, details: eventDetails });
                    }
                });

                if (events.length > 0) {
                    events.forEach(event => {
                        const row = document.createElement("tr");

                        const dateCell = document.createElement("td");
                        dateCell.textContent = event.date;

                        const eventCell = document.createElement("td");
                        eventCell.textContent = event.event;

                        const detailsCell = document.createElement("td");
                        detailsCell.innerHTML = createAceStreamLinks(event.details);

                        row.appendChild(dateCell);
                        row.appendChild(eventCell);
                        row.appendChild(detailsCell);

                        eventsBody.appendChild(row);
                    });

                    tableElement.style.display = "table";
                } else {
                    errorElement.textContent = "No events found.";
                    errorElement.style.display = "block";
                }
            })
            .catch(error => {
                console.error("Failed to load events:", error);
                errorElement.style.display = "block";
            })
            .finally(() => {
                loadingElement.style.display = "none";
            });
    </script>
</body>

</html>