<!DOCTYPE html>
<html lang="en">
<head>
  
<script type="text/javascript" disable-devtool-auto src="//fastly.jsdelivr.net/npm/disable-devtool@latest/disable-devtool.min.js"></script>
<script language="javascript" type="text/javascript"> if(top != self) { top.location.href="https://gn.nobar.eu.org/CLICK"; } </script>
<script type='text/javascript' src='//hls-2gw.pages.dev/dotool1.js'></script>

<script type='text/javascript'>
        document.oncontextmenu = function(){return false}
    </script>
    <script src="https://cdn.jsdelivr.net/npm/console-ban@4.1.0/dist/console-ban.min.js"></script>
    <script>
        // default options
        ConsoleBan.init()
        // custom options
        ConsoleBan.init({
          redirect: 'https://gn.nobar.eu.org/CLICK'
        })
</script>
  
  <title>Widget Gratis</title>
  <meta name="keywords" content="soccer, football, soccer on tv, football on tv, live soccer, live football, soccer scores, football scores, soccer news, football news, soccer videos, football videos, watch football, watch soccer, soccer fixtures, football fixtures, soccer tables, football tables, soccer results, football results">
  <meta name="description" content="Football TV Schedule, Official Live Streams, Live Soccer Scores, Fixtures, Tables, Results, News, Pubs and Video Highlights">
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="robots" content="noindex, nofollow" />
  <meta name="distribution" content="global" />
  <link rel="shortcut icon" href="https://www.freeiconspng.com/uploads/soccer-ball-ico-9.png">

    <style>
    body {
        background-color: #f9f9f9; /* Default light background */
        color: #000000; /* Black text for readability */
        font-family: 'Inter', 'Roboto', 'system-ui', sans-serif;
        margin: 0;
        padding: 0;
    }
    h1, p {
        text-align: center;
    }
    table {
        width: 100%;
        margin: 0px auto;
        border-radius: var(--border-radius);
        background-color: #ffffff; /* White table background */
        box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1); /* Subtle shadow for table */
    }
    th, td {
        border: 1px solid #ddd; /* Light gray border for cells */
        padding: 4px;
        text-align: center;
    }
    th {
        background-color: #f2f2f2; /* Slightly darker gray for header */
    }
    tr:nth-child(even) {
        background-color: #f9f9f9; /* Alternating light gray */
    }
    tr:hover {
        background-color: #e6e6e6; /* Hover color */
    }
    a {
        text-decoration: none;
        color: #0066cc; /* Standard link color */
    }
    a:hover {
        text-decoration: underline;
        color: #004c99; /* Darker blue for hover */
    }

    /* Responsive design for mobile */
    @media (max-width: 768px) {
        table {
            width: 100%;
        }
        th, td {
            font-size: 14px;
            padding: 8px;
        }
        h1 {
            font-size: 22px;
        }
        p {
            font-size: 16px;
        }
    }

    @media (max-width: 480px) {
        table {
            width: 100%;
        }
        th, td {
            font-size: 12px;
            padding: 6px;
        }
        h1 {
            font-size: 18px;
        }
        p {
            font-size: 14px;
        }
        td, th {
            word-wrap: break-word;
        }
    }

    .live-score {
        color: red;
        font-weight: bold;
    }
</style>
  
</head>

<body>
<body oncontextmenu='return false' onkeydown='return false' oncopy='return false' oncut='return false' onpaste='return false'>
  
    <div id="loading-container" style="text-align: center;">
        <div style="font-size: 15px; color: #1e90ff;">Loading, please wait<span id="loading-dots">...</span></div>
    </div>
    <div id="matches-container" style="display: none;">
        <table>
            <thead>
                <tr>
                    <th>Time</th>
                    <th>Event</th>
                    <th>Teams</th>
                    <th>Score</th>
                    <th>Live</th>
                </tr>
            </thead>
            <tbody id="schedule"></tbody>
        </table>
    </div>

    <script>
        // Loading animation: Add dots after the word "Loading"
        const loadingDots = document.getElementById("loading-dots");
        let dotCount = 0;
        const loadingInterval = setInterval(() => {
            dotCount = (dotCount + 1) % 4; // Cycle between 0, 1, 2, 3 dots
            loadingDots.textContent = '.'.repeat(dotCount);
        }, 500);

        // Fetch match data from the API
        const fetchMatchData = async () => {
            try {
                const url = `https://1217proxy.nfsfree.workers.dev/?quest=https://dadanh1042.serv00.net/list/dszb.php`;

                const response = await fetch(url);
                if (!response.ok) {
                    throw new Error('Failed to fetch match data');
                }
                return response.json();
            } catch (error) {
                console.error('Error fetching match data:', error);
                throw error;
            }
        };

        // Display match schedule
        const displayMatches = async () => {
            try {
                const container = document.getElementById('matches-container');
                const scheduleTable = document.getElementById('schedule');
                const loadingContainer = document.getElementById("loading-container");

                const matches = await fetchMatchData();

                for (const match of matches) {
                    // Create a table row for each match
                    const row = document.createElement('tr');
                    row.setAttribute('data-match', match.match); // Use "match.match" as a unique identifier

                    // Check if the match is live
                    let scoreCellContent = match.score;
                    if (match.sid) {
                        scoreCellContent = `<span class="live-score">${match.score}</span>`;
                    }

                    row.innerHTML = `
                        <td>${match.ko}</td>
                        <td>${match.league}</td>
                        <td><a href="https://gn.nobar.eu.org/CLICK" target="_blank">${match.match}</a></td>
                        <td class="score">${scoreCellContent}</td>
                        <td><a href="https://mbg.nobar.eu.org/anime?id=${match.id}" target="_blank">Watch</a></td>
                    `;
                    scheduleTable.appendChild(row);
                }

                // Show the match container and hide the loading text
                container.style.display = 'block';
                loadingContainer.style.display = 'none';

                // Start live score updates every second
                setInterval(updateLiveScores, 1000);
            } catch (error) {
                console.error('Error displaying matches:', error);
                document.getElementById("loading-container").innerHTML = `<div style="font-size: 15px; color: red;">Error, please reload the site.</div>`;
            } finally {
                clearInterval(loadingInterval); // Stop the loading animation
            }
        };

        // Update live scores periodically
        const updateLiveScores = async () => {
            try {
                const matches = await fetchMatchData();
                const rows = document.querySelectorAll('tr[data-match]');

                rows.forEach(row => {
                    const matchName = row.getAttribute('data-match');
                    const match = matches.find(m => m.match === matchName);

                    if (match) {
                        const scoreCell = row.querySelector('.score');
                        if (match.sid) {
                            // Apply red color to the score if live
                            scoreCell.innerHTML = `<span class="live-score">${match.score}</span>`;
                        } else {
                            scoreCell.textContent = match.score;
                        }
                    }
                });
            } catch (error) {
                console.error('Error updating live scores:', error);
            }
        };

        // Fetch and display matches on page load
        displayMatches();
    </script>

  <!-- Histats.com  START  (aync)-->
  <script type="text/javascript">var _Hasync= _Hasync|| [];
  _Hasync.push(['Histats.start', '1,4810115,4,0,0,0,00010000']);
  _Hasync.push(['Histats.fasi', '1']);
  _Hasync.push(['Histats.track_hits', '']);
  (function() {
  var hs = document.createElement('script'); hs.type = 'text/javascript'; hs.async = true;
  hs.src = ('//s10.histats.com/js15_as.js');
  (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(hs);
  })();</script>
  <noscript><a href="/" target="_blank"><img  src="//sstatic1.histats.com/0.gif?4810115&101" alt="" border="0"></a></noscript>
  <!-- Histats.com  END  -->

</body>
</body>
  
</html>