<style>.main-content.ggb {display: grid;grid-template-columns: 1fr;grid-template-rows: 1fr 340px;gap: 0px 0px;grid-template-areas:"video-container""ggb-details";}@media screen and (orientation: portrait) and (max-width: 640px) {.main-content.ggb {grid-template-rows: 300px 1fr;}}</style><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta name="description" content="Live TV Streaming">
        <title>Live TV Streaming</title>
        <meta property="og:title" content="Live TV Streaming">
        <meta property="og:description" content="Live TV Streaming">
        <meta name="twitter:title" content="Live TV Streaming">
        <meta name="twitter:description" content="Live TV Streaming">
        <meta property="og:image" content="https://fansshare.com/images/fansshare-logo-larger.png">
        <meta name="twitter:image" content="https://fansshare.com/images/fansshare-logo-larger.png">
        <meta name="keywords" content="live tv, streaming, free tv, international channels, , online tv, watch tv online">
    <meta property="og:type" content="website">
    <meta property="og:url" content="https://fansshare.com/">
    <meta name="twitter:card" content="summary_large_image">
    <link rel="canonical" href="https://fansshare.com/">

    <link rel="icon" type="image/png" href="/images/favicon.png?v=3">

    <!-- Resource Preloading for Performance -->
    <link rel="preload" href="/dist/css/tailwind.css" as="style">
    <link rel="preload" href="/dist/css/fonts.css" as="style">
    <link rel="preload" href="/dist/css/video-js.css?v8.23.3" as="style">

    <!-- Preload critical JavaScript -->
    <link rel="preload" href="/dist/js/video.min.js?v8.23.3" as="script">

    <!-- Preload LCP image for fastest loading -->
    <link rel="preload" href="/images/fansshare-logo-small.png?v=3" as="image">

    <!-- DNS prefetch for external resources -->
    <link rel="dns-prefetch" href="//i.imgur.com">
    <link rel="dns-prefetch" href="//upload.wikimedia.org">
    <link rel="dns-prefetch" href="//cdn.jsdelivr.net">

    <!-- Prefetch common image formats -->
    <link rel="preconnect" href="https://i.imgur.com" crossorigin>
    <link rel="preconnect" href="https://upload.wikimedia.org" crossorigin>

    <link rel="stylesheet" href="/dist/css/tailwind.css">
    <link rel="stylesheet" href="/dist/css/fonts.css">
    <link rel="stylesheet" href="/dist/css/video-js.css?v8.23.3">
    <style>
        body {
            margin: 0;
            overflow: hidden;
            background-color: #000;
            font-family: "Titillium Web", sans-serif;
            height: 100dvh;
            max-height: 100dvh;
            width: 100dvw;
            max-width: 100dvw;
            overflow: hidden;
        }

        canvas {
            display: block;
        }

        *::-webkit-scrollbar {
            height: .5rem;
            width: .5rem
        }

        *::-webkit-scrollbar-thumb {
            background-color: rgba(255, 255, 255, 0.6);
            border-radius: 9999px
        }

        *::-webkit-scrollbar-track {
            background: transparent
        }

        .country-flag {
            font-family: "Apple Color Emoji", "Noto Color Emoji", Twemoji Country Flags, "Noto Color Emoji Fallback", sans-serif;
            color: #000;
            width: 1rem;
        }

        .sidebar {
            transform: translateX(-100%);
            transition: transform 0.3s ease-in-out;
            position: fixed;
            top: 4rem;
            /* To position below the nav bar */
            left: 0;
            z-index: 30;
            height: calc(100dvh - 4rem);
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        }

        .globe-grid {
            display: grid;
            grid-template-columns: 1fr 340px;
            grid-template-rows: 1fr;
            gap: 0px 0px;
            grid-template-areas:
                ". .";
        }


        .sidebar.show {
            transform: translateX(0);
        }


        .main-content {
            transition: all 0.3s ease-in-out;
        }

        #videoContainer {
            grid-area: video-container;
        }

        #ggb-details {
            grid-area: ggb-details;
        }

        .country-item {
            padding: 0.5rem 0.75rem;
            border-radius: 0.25rem;
            display: flex;
            align-items: center;
            cursor: pointer;
            transition: background-color 0.2s;
            margin-bottom: 0.25rem;
        }

        .country-item:hover {
            background-color: rgba(55, 65, 81, 0.7);
        }

        .country-item.selected {
            background-color: rgba(255, 255, 255, 0.9);
            color: #000;
        }

        .country-item.hidden {
            display: none !important;
        }

        .country-flag {
            margin-right: 0.75rem;
            font-size: 1.25rem;
            display: inline-block;
            min-width: 1.5rem;
        }

        .country-menu.active {
            transform: translateX(-100%);
        }

        /* SEO Overlay Styles */
        .seo-overlay {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(0, 0, 0, 0.95);
            backdrop-filter: blur(10px);
            z-index: 1000;
            overflow-y: auto;
            transition: all 0.3s ease-in-out;
        }

        .seo-overlay.hidden {
            opacity: 0;
            visibility: hidden;
            transform: translateY(-20px);
        }

        .seo-content {
            max-width: 800px;
            margin: 2rem auto;
            padding: 2rem;
            background: white;
            border-radius: 12px;
            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
            position: relative;
        }

        .seo-content h1 {
            color: #1f2937;
            font-size: 2.5rem;
            font-weight: bold;
            margin-bottom: 1rem;
            line-height: 1.2;
        }

        .seo-content .intro {
            color: #4b5563;
            font-size: 1.125rem;
            line-height: 1.7;
            margin-bottom: 2rem;
        }

        .seo-content .section {
            margin-bottom: 2rem;
        }

        .seo-content .section h2 {
            color: #1f2937;
            font-size: 1.5rem;
            font-weight: 600;
            margin-bottom: 0.75rem;
        }

        .seo-content .section p {
            color: #6b7280;
            line-height: 1.6;
            margin-bottom: 1rem;
        }

        .seo-toggle-btn {
            /* position: fixed; */
            /* bottom: 2rem; */
            /* right: 2rem; */
            background: #3b82f6;
            color: white;
            border: none;
            border-radius: 50%;
            width: 60px;
            height: 60px;
            font-size: 1.5rem;
            cursor: pointer;
            box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
            transition: all 0.3s ease;
            z-index: 1001;
        }

        .seo-toggle-btn:hover {
            background: #2563eb;
            transform: scale(1.1);
        }

        .seo-close-btn {
            position: absolute;
            top: 1rem;
            right: 1rem;
            background: #ef4444;
            color: white;
            border: none;
            border-radius: 50%;
            width: 40px;
            height: 40px;
            font-size: 1.25rem;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .seo-close-btn:hover {
            background: #dc2626;
            transform: scale(1.1);
        }

        .seo-close-btn-alt {
            position: absolute;
            bottom: 1rem;
            right: 1rem;
            background: #6b7280;
            color: white;
            border: none;
            border-radius: 8px;
            padding: 0.75rem 1rem;
            font-size: 0.875rem;
            cursor: pointer;
            transition: all 0.3s ease;
            display: flex;
            align-items: center;
            gap: 0.5rem;
            font-weight: 500;
        }

        .seo-close-btn-alt:hover {
            background: #4b5563;
            transform: translateY(-2px);
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
        }

        /* Static SEO content for bots */
        .seo-static {
            display: none;
            max-width: 800px;
            margin: 2rem auto;
            padding: 2rem;
            background: white;
            color: #1f2937;
        }

        .seo-static h1 {
            font-size: 2.5rem;
            font-weight: bold;
            margin-bottom: 1rem;
            color: #1f2937;
        }

        .seo-static .intro {
            font-size: 1.125rem;
            line-height: 1.7;
            margin-bottom: 2rem;
            color: #4b5563;
        }

        .seo-static .section {
            margin-bottom: 2rem;
        }

        .seo-static .section h2 {
            font-size: 1.5rem;
            font-weight: 600;
            margin-bottom: 0.75rem;
            color: #1f2937;
        }

        .seo-static .section p {
            line-height: 1.6;
            margin-bottom: 1rem;
            color: #6b7280;
        }

        /* Show static content for bots */
        body.bot-detected .seo-static {
            display: block;
        }

        body.bot-detected .seo-toggle-btn {
            display: none;
        }

        @media (max-width: 768px) {
            .seo-content {
                margin: 1rem;
                padding: 1.5rem;
            }

            .seo-content h1 {
                font-size: 2rem;
            }

            .seo-toggle-btn {
                bottom: 1rem;
                right: 1rem;
                width: 50px;
                height: 50px;
                font-size: 1.25rem;
            }
        }

        .schedule {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 9999;
        }

        .schedule-grid {
            display: flex;
            flex-direction: column;
            flex-wrap: nowrap;
            flex: 1;
            width: 100%;
        }

        .schedule-list {
            display: flex;
            flex-wrap: nowrap;
            overflow-x: auto;
        }

        .schedule-list>div {
            flex-shrink: 0;
        }

        .schedule-list>div:first-child {
            width: 150px;
            /* Channel logo column */
        }

        .schedule-time-header {
            grid-column: 2 / span 48;
            width: 100%;
        }

        .actions-group>button {
            transition: transform linear 0.3s;
            transform: translateX(100%);
        }

        .actions-group.show>button,
        .actions-group:hover>button {
            transform: translateX(0);
        }

        #right-sidebar-toggle {
            display: none;
        }

        @media screen and (max-width: 1024px) {
            .main-content {
                background-color: #000;
            }

            .globe-grid {
                grid-template-columns: 1fr;
                grid-template-areas: ".";
            }

            .right-sidebar {
                position: absolute;
                top: 0;
                right: 0;
                bottom: 0;
                max-width: 320px;
                width: 100%;
                z-index: -1 !important;
                transition: transform 0.3s ease-in-out;
            }

            .right-sidebar.show {
                z-index: 9999 !important;
            }

            .right-sidebar.inactive {
                transform: translateX(calc(100% + 1px));
            }

            #right-sidebar-toggle {
                display: block;
            }
        }

        #search-form-left {
            display: none;
        }

        @media screen and (max-width: 640px) {
            #search-form {
                display: none;
            }

            #search-form-left {
                display: flex;
            }

            #left-sidebar {
                width: 100%;
            }

            .right-sidebar {
                width: 100%;
                max-width: 100%;
            }
        }

        .loading {
            backdrop-filter: blur(10px);
            background-color: rgba(0, 0, 0, 0.5);
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            z-index: 9999;
            align-items: center;
            justify-content: center;
            color: #fff;
        }
    </style>
    <!-- Google tag (gtag.js) -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=G-TGZPJHPWL2"></script>
    <script>
        window.dataLayer = window.dataLayer || [];
        function gtag() { dataLayer.push(arguments); }
        gtag('js', new Date());

        gtag('config', 'G-TGZPJHPWL2');
    </script>
</head><body class="h-screen grid grid-cols-1 grid-rows-[auto_1fr] overflow-hidden">
    <!-- Navigation Header -->
    <nav class="bg-gray-800 text-white p-4 flex justify-between items-center border-gray-700 border-b-2">
        <div class="flex items-center">
            <button id="menu-toggle"
                class="mr-4 hover:bg-gray-700 p-1 rounded transition-colors">
                <svg class="w-6 h-6"
                    fill="none"
                    stroke="currentColor"
                    viewBox="0 0 24 24">
                    <path strokeLinecap="round"
                        strokeLinejoin="round"
                        strokeWidth="2"
                        d="M4 6h16M4 12h16M4 18h16" />
                </svg>
            </button>
            <a href="/">
                <img src="/images/fansshare-logo-small.png?v=3"
                    alt="FansShare"
                    class="h-9"
                    width="120"
                    height="36"
                    fetchpriority="high">
            </a>
        </div>

        <div class="flex items-center">
            <form id="search-form" action="" method="GET" class="relative flex items-center bg-gray-700 rounded-lg px-3 py-2 mb-0">
                <input type="text"
                    name="search"
                    placeholder="Search Everything"
                    class="bg-transparent text-white placeholder-gray-400 focus:outline-none w-64">
                <button type="submit" class="ml-2 transition-transform duration-200 hover:scale-110 active:scale-95">
                    <svg class="w-5 h-5 text-gray-400 transition-colors duration-200 hover:text-white"
                        fill="none"
                        stroke="currentColor"
                        viewBox="0 0 24 24">
                        <path strokeLinecap="round"
                            strokeLinejoin="round"
                            strokeWidth="2"
                            d="M13 10V3L4 14h7v7l9-11h-7z" />
                    </svg>
                </button>
            </form>
            <button type="button" onclick="toggleRightSidebar()" id="right-sidebar-toggle" class="ml-2 p-2 bg-gray-700 rounded-lg transition-transform duration-200 hover:scale-110 active:scale-95" style="height: 40px">
                <svg class="w-5 h-5 text-gray-400 transition-colors duration-200 hover:text-white"
                    fill="none"
                    stroke="currentColor"
                    viewBox="0 0 24 24">
                    <path strokeLinecap="round"
                        strokeLinejoin="round"
                        strokeWidth="2"
                        d="M4 6h16M4 12h16m-7 6h7" />
                </svg>
            </button>
        </div>
    </nav>

    <div id="content-wrapper" class="flex flex-1 overflow-hidden relative">
        <!-- Left Floating Sidebar -->
                <div id="left-sidebar" class="absolute top-0 bottom-0 left-0 w-64 bg-gray-900 text-white transform transition-transform duration-300 ease-in-out z-50 shadow-lg overflow-y-auto -translate-x-full">
            <div class="p-4 pb-0" style="padding-bottom: 0px !important;">
                <form id="search-form-left" action="" method="GET" class="relative flex items-center bg-gray-700 rounded-lg px-3 py-2">
                    <input type="text"
                        name="search"
                        placeholder="Search Everything"
                        class="bg-transparent text-white placeholder-gray-400 focus:outline-none w-full">
                    <button type="submit" class="ml-2 transition-transform duration-200 hover:scale-110 active:scale-95">
                        <svg class="w-5 h-5 text-gray-400 transition-colors duration-200 hover:text-white"
                            fill="none"
                            stroke="currentColor"
                            viewBox="0 0 24 24">
                            <path strokeLinecap="round"
                                strokeLinejoin="round"
                                strokeWidth="2"
                                d="M13 10V3L4 14h7v7l9-11h-7z" />
                        </svg>
                    </button>
                </form>
            </div>
            <div class="p-4">
                <!-- Navigation Items -->
                <nav class="space-y-1">
                    <a href="/about" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors">
                        <svg class="w-5 h-5 mr-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                        </svg>
                        About
                    </a>

                    <a href="/random" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors">
                        <svg class="w-5 h-5 mr-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 4V2a1 1 0 011-1h8a1 1 0 011 1v2m-9 3v10a2 2 0 002 2h6a2 2 0 002-2V7H7z"></path>
                        </svg>
                        Random Channel
                    </a>

                    <div class="pt-4">
                        <h3 class="px-3 text-xs font-semibold text-gray-400 uppercase tracking-wider mb-2">Explore</h3>

                        <a href="/category/animation" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polygon points='5,3 19,12 5,21'></polygon><path d='M12 2l3 7h7l-5.5 4 2 7L12 16l-6.5 4 2-7L2 9h7z'></path></svg></div><span class="text-sm">Animation</span></a><a href="/category/auto" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14 16H9m10 0h3v-3.15a1 1 0 0 0-.84-.99L16 11l-2.7-3.6a1 1 0 0 0-.8-.4H8.5a1 1 0 0 0-.8.4L5 11l-5.16 1.86A1 1 0 0 0 2 14.15V17h3m2 0a2 2 0 1 0 4 0m8 0a2 2 0 1 0 4 0'></path><circle cx='7' cy='17' r='2'></circle><circle cx='17' cy='17' r='2'></circle></svg></div><span class="text-sm">Auto</span></a><a href="/category/business" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='3' width='20' height='14' rx='2' ry='2'></rect><line x1='8' y1='21' x2='16' y2='21'></line><line x1='12' y1='17' x2='12' y2='21'></line></svg></div><span class="text-sm">Business</span></a><a href="/category/classic" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 21h18'></path><path d='M5 21V7l8-4v18'></path><path d='M19 21V11l-6-4'></path></svg></div><span class="text-sm">Classic</span></a><a href="/category/comedy" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'></circle><path d='M8 14s1.5 2 4 2 4-2 4-2'></path><line x1='9' y1='9' x2='9.01' y2='9'></line><line x1='15' y1='9' x2='15.01' y2='9'></line></svg></div><span class="text-sm">Comedy</span></a><a href="/category/cooking" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 13.87A4 4 0 0 1 7.41 6a5.11 5.11 0 0 1 1.05-1.54 5 5 0 0 1 7.08 0A5.11 5.11 0 0 1 16.59 6 4 4 0 0 1 18 13.87V21a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2Z'></path><line x1='6' y1='9' x2='18' y2='9'></line></svg></div><span class="text-sm">Cooking</span></a><a href="/category/culture" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M2 3h20v18H2z'></path><path d='M8 21v-5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v5'></path><path d='M2 11h20'></path><path d='M7 7h.01'></path><path d='M17 7h.01'></path></svg></div><span class="text-sm">Culture</span></a><a href="/category/documentary" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='2' width='20' height='20' rx='2.18' ry='2.18'></rect><line x1='7' y1='2' x2='7' y2='22'></line><line x1='17' y1='2' x2='17' y2='22'></line><line x1='2' y1='12' x2='22' y2='12'></line><line x1='2' y1='7' x2='7' y2='7'></line><line x1='2' y1='17' x2='7' y2='17'></line><line x1='17' y1='17' x2='22' y2='17'></line><line x1='17' y1='7' x2='22' y2='7'></line></svg></div><span class="text-sm">Documentary</span></a><a href="/category/education" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 10v6M2 10l10-5 10 5-10 5z'></path><path d='M6 12v5c3 3 9 3 12 0v-5'></path></svg></div><span class="text-sm">Education</span></a><a href="/category/entertainment" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polygon points='12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26'></polygon></svg></div><span class="text-sm">Entertainment</span></a><a href="/category/family" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 21h18'></path><path d='M5 21V7l8-4v18'></path><path d='M19 21V11l-6-4'></path></svg></div><span class="text-sm">Family</span></a><a href="/category/general" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='7' height='7'></rect><rect x='14' y='3' width='7' height='7'></rect><rect x='14' y='14' width='7' height='7'></rect><rect x='3' y='14' width='7' height='7'></rect></svg></div><span class="text-sm">General</span></a><a href="/category/kids" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 7.5a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9Z'></path><path d='M12 1v4'></path><path d='M12 19v4'></path><path d='M3 12h4'></path><path d='M17 12h4'></path><path d='M5.5 5.5l2.83 2.83'></path><path d='M15.66 15.66l2.83 2.83'></path><path d='M5.5 18.5l2.83-2.83'></path><path d='M15.66 8.34l2.83-2.83'></path></svg></div><span class="text-sm">Kids</span></a><a href="/category/legislative" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 3v18h18'></path><path d='M18.7 8a1 1 0 0 0-1.4 0l-6.3 6.3-2.3-2.3a1 1 0 0 0-1.4 0l-2.3 2.3 1.4 1.4L8.3 14l6.3-6.3a1 1 0 0 0 0-1.4Z'></path></svg></div><span class="text-sm">Legislative</span></a><a href="/category/lifestyle" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'></path></svg></div><span class="text-sm">Lifestyle</span></a><a href="/category/movies" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='3' width='20' height='14' rx='2' ry='2'></rect><line x1='8' y1='21' x2='16' y2='21'></line><line x1='12' y1='17' x2='12' y2='21'></line></svg></div><span class="text-sm">Movies</span></a><a href="/category/music" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 18V5l12-2v13'></path><circle cx='6' cy='18' r='3'></circle><circle cx='18' cy='16' r='3'></circle></svg></div><span class="text-sm">Music</span></a><a href="/category/news" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-2 2Zm0 0a2 2 0 0 1-2-2v-9c0-1.1.9-2 2-2h2'></path><path d='M18 14h-8'></path><path d='M15 18h-5'></path><path d='M10 6h8v4h-8V6Z'></path></svg></div><span class="text-sm">News</span></a><a href="/category/outdoor" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m4 14 4-4 4 4'></path><path d='m16 10 4-4 4 4'></path><path d='m14 20-4-4 6-6 4 4Z'></path><path d='M20 14v7H3v-7'></path></svg></div><span class="text-sm">Outdoor</span></a><a href="/category/relax" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z'></path><path d='M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12'></path></svg></div><span class="text-sm">Relax</span></a><a href="/category/religious" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 2v20'></path><path d='M2 12h20'></path></svg></div><span class="text-sm">Religious</span></a><a href="/category/science" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='2'></circle><path d='M12 1v6m6 6h6m-6 6v6m-6-6H1'></path><path d='M5.64 7.64 9.5 11.5m5 1 3.86 3.86m0-10.72L14.5 9.5m-5-1L5.64 16.36'></path></svg></div><span class="text-sm">Science</span></a><a href="/category/series" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='12' rx='1'></rect><rect x='7' y='20' width='10' height='1'></rect></svg></div><span class="text-sm">Series</span></a><a href="/category/shop" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z'></path><line x1='3' y1='6' x2='21' y2='6'></line><path d='M16 10a4 4 0 0 1-8 0'></path></svg></div><span class="text-sm">Shop</span></a><a href="/category/sports" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'></circle><path d='M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20'></path><path d='M2 12h20'></path></svg></div><span class="text-sm">Sports</span></a><a href="/category/travel" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z'></path></svg></div><span class="text-sm">Travel</span></a><a href="/category/weather" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors"><div class="w-5 h-5 mr-3 flex items-center justify-center"><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z'></path></svg></div><span class="text-sm">Weather</span></a>                    </div>

                    <div class="pt-4">
                        <h3 class="px-3 text-xs font-semibold text-gray-400 uppercase tracking-wider mb-2">Help & Support</h3>

                        <a href="/faq" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors">
                            <svg class="w-5 h-5 mr-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                            </svg>
                            <span class="text-sm">FAQs</span>
                        </a>

                        <a href="/privacy-policy" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors">
                            <svg class="w-5 h-5 mr-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"></path>
                            </svg>
                            <span class="text-sm">Privacy Policy</span>
                        </a>

                        <a href="/feedback" class="flex items-center px-3 py-2 rounded-md hover:bg-gray-800 transition-colors">
                            <svg class="w-5 h-5 mr-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"></path>
                            </svg>
                            <span class="text-sm">Feedback</span>
                        </a>
                    </div>
                </nav>
            </div>
        </div>

                    <!-- Main Content -->
            <div class="globe-grid w-full tv-screen">
                <div class="main-content relative overflow-hidden z-10 ggb">
                    <div id="globeViz" style="max-height: 100%; max-width: 100%;"></div>
                                            <div id="loading"
                            class="loading flex text-white">
                            Loading world map...
                        </div>
                        <div id="videoContainer"
                            class="bg-black absolute inset-0 z-10 hidden top-0 left-0 right-0 bottom-0">
                            <video id="videoPlayer"
                                class="video-js vjs-default-skin vjs-big-play-centered"
                                controls
                                preload="auto"
                                width="100%"
                                height="100%">
                                <p class="vjs-no-js">
                                    To view this video please enable JavaScript, and consider upgrading to a web browser that
                                    <a href="https://videojs.com/html5-video-support/"
                                        target="_blank">supports HTML5 video</a>
                                </p>
                            </video>
                            <div id="stream-loading"
                                class="absolute inset-0 bg-black bg-opacity-75 flex items-center justify-center text-white z-40 hidden">
                                <div class="text-center">
                                    <div class="animate-spin rounded-full h-12 w-12 border-b-2 border-white mx-auto mb-4"></div>
                                    <p class="text-lg">Loading stream...</p>
                                    <p class="text-sm text-gray-300 mt-2">Please wait while we connect to the channel</p>
                                </div>
                            </div>
                        </div>
                    
                    <div id="ggb-details" class="bg-gray-800 flex-1 relative z-20 overflow-hidden">
                        <div class="p-4 overflow-y-auto absolute top-0 left-0 w-full h-full">
                            <div id="ggb-details-content">
                                                                <h1 class="text-white text-2xl font-bold">Live TV Streaming</h1>
                                <div class="intro text-gray-300 text-sm">Live TV Streaming</div>

                                
                                                            </div>
                        </div>
                    </div>

                                    </div>

                <!-- Right Sidebar -->
                <div class="right-sidebar text-white h-full flex flex-col relative shadow-[-10px_0_10px_-5px_rgba(0,0,0,0.3)]">
                    <div class="bg-gray-800 p-4 border-gray-700 border-b-2 relative z-20">
                        <div id="country-selector"
                            class="flex justify-between items-center">
                                                            <h2 class="text-xl font-bold">Select a Channel</h2>
                                                        <div id="current-time" class="text-sm text-gray-300"></div>
                        </div>
                        <div class="mt-2">
                                                            <input type="text" id="search-input" placeholder="Search countries channels..." class="w-full px-3 py-2 bg-gray-700 text-white border border-gray-600 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
                                                    </div>
                        <div id="country-header" class="flex justify-between items-center hidden">
                            <h2 class="text-xl font-bold"></h2>
                            <div class="text-sm text-gray-300"></div>
                        </div>
                    </div>
                    <div class="bg-gray-800 flex-1 relative z-20">
                        <div class="p-2 overflow-y-auto absolute top-0 left-0 w-full h-full">
                            <div id="countries-list" class="space-y-1"><a class="country-item" href="/afghanistan" onclick="trackCountrySelection('AF', 'Afghanistan')"><img src="/dist/flags/4x3/af.svg?v2" alt="Afghanistan" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Afghanistan</span></a><a class="country-item" href="/albania" onclick="trackCountrySelection('AL', 'Albania')"><img src="/dist/flags/4x3/al.svg?v2" alt="Albania" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Albania</span></a><a class="country-item" href="/algeria" onclick="trackCountrySelection('DZ', 'Algeria')"><img src="/dist/flags/4x3/dz.svg?v2" alt="Algeria" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Algeria</span></a><a class="country-item" href="/andorra" onclick="trackCountrySelection('AD', 'Andorra')"><img src="/dist/flags/4x3/ad.svg?v2" alt="Andorra" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Andorra</span></a><a class="country-item" href="/angola" onclick="trackCountrySelection('AO', 'Angola')"><img src="/dist/flags/4x3/ao.svg?v2" alt="Angola" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Angola</span></a><a class="country-item" href="/argentina" onclick="trackCountrySelection('AR', 'Argentina')"><img src="/dist/flags/4x3/ar.svg?v2" alt="Argentina" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Argentina</span></a><a class="country-item" href="/armenia" onclick="trackCountrySelection('AM', 'Armenia')"><img src="/dist/flags/4x3/am.svg?v2" alt="Armenia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Armenia</span></a><a class="country-item" href="/aruba" onclick="trackCountrySelection('AW', 'Aruba')"><img src="/dist/flags/4x3/aw.svg?v2" alt="Aruba" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Aruba</span></a><a class="country-item" href="/australia" onclick="trackCountrySelection('AU', 'Australia')"><img src="/dist/flags/4x3/au.svg?v2" alt="Australia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Australia</span></a><a class="country-item" href="/austria" onclick="trackCountrySelection('AT', 'Austria')"><img src="/dist/flags/4x3/at.svg?v2" alt="Austria" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Austria</span></a><a class="country-item" href="/azerbaijan" onclick="trackCountrySelection('AZ', 'Azerbaijan')"><img src="/dist/flags/4x3/az.svg?v2" alt="Azerbaijan" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Azerbaijan</span></a><a class="country-item" href="/bahamas" onclick="trackCountrySelection('BS', 'Bahamas')"><img src="/dist/flags/4x3/bs.svg?v2" alt="Bahamas" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Bahamas</span></a><a class="country-item" href="/bahrain" onclick="trackCountrySelection('BH', 'Bahrain')"><img src="/dist/flags/4x3/bh.svg?v2" alt="Bahrain" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Bahrain</span></a><a class="country-item" href="/bangladesh" onclick="trackCountrySelection('BD', 'Bangladesh')"><img src="/dist/flags/4x3/bd.svg?v2" alt="Bangladesh" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Bangladesh</span></a><a class="country-item" href="/barbados" onclick="trackCountrySelection('BB', 'Barbados')"><img src="/dist/flags/4x3/bb.svg?v2" alt="Barbados" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Barbados</span></a><a class="country-item" href="/belarus" onclick="trackCountrySelection('BY', 'Belarus')"><img src="/dist/flags/4x3/by.svg?v2" alt="Belarus" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Belarus</span></a><a class="country-item" href="/belgium" onclick="trackCountrySelection('BE', 'Belgium')"><img src="/dist/flags/4x3/be.svg?v2" alt="Belgium" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Belgium</span></a><a class="country-item" href="/benin" onclick="trackCountrySelection('BJ', 'Benin')"><img src="/dist/flags/4x3/bj.svg?v2" alt="Benin" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Benin</span></a><a class="country-item" href="/bermuda" onclick="trackCountrySelection('BM', 'Bermuda')"><img src="/dist/flags/4x3/bm.svg?v2" alt="Bermuda" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Bermuda</span></a><a class="country-item" href="/bolivia" onclick="trackCountrySelection('BO', 'Bolivia')"><img src="/dist/flags/4x3/bo.svg?v2" alt="Bolivia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Bolivia</span></a><a class="country-item" href="/bonaire" onclick="trackCountrySelection('BQ', 'Bonaire')"><img src="/dist/flags/4x3/bq.svg?v2" alt="Bonaire" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Bonaire</span></a><a class="country-item" href="/bosnia-and-herzegovina" onclick="trackCountrySelection('BA', 'Bosnia and Herzegovina')"><img src="/dist/flags/4x3/ba.svg?v2" alt="Bosnia and Herzegovina" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Bosnia and Herzegovina</span></a><a class="country-item" href="/brazil" onclick="trackCountrySelection('BR', 'Brazil')"><img src="/dist/flags/4x3/br.svg?v2" alt="Brazil" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Brazil</span></a><a class="country-item" href="/british-virgin-islands" onclick="trackCountrySelection('VG', 'British Virgin Islands')"><img src="/dist/flags/4x3/vg.svg?v2" alt="British Virgin Islands" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>British Virgin Islands</span></a><a class="country-item" href="/bulgaria" onclick="trackCountrySelection('BG', 'Bulgaria')"><img src="/dist/flags/4x3/bg.svg?v2" alt="Bulgaria" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Bulgaria</span></a><a class="country-item" href="/cambodia" onclick="trackCountrySelection('KH', 'Cambodia')"><img src="/dist/flags/4x3/kh.svg?v2" alt="Cambodia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Cambodia</span></a><a class="country-item" href="/cameroon" onclick="trackCountrySelection('CM', 'Cameroon')"><img src="/dist/flags/4x3/cm.svg?v2" alt="Cameroon" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Cameroon</span></a><a class="country-item" href="/canada" onclick="trackCountrySelection('CA', 'Canada')"><img src="/dist/flags/4x3/ca.svg?v2" alt="Canada" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Canada</span></a><a class="country-item" href="/cape-verde" onclick="trackCountrySelection('CV', 'Cape Verde')"><img src="/dist/flags/4x3/cv.svg?v2" alt="Cape Verde" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Cape Verde</span></a><a class="country-item" href="/chad" onclick="trackCountrySelection('TD', 'Chad')"><img src="/dist/flags/4x3/td.svg?v2" alt="Chad" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Chad</span></a><a class="country-item" href="/chile" onclick="trackCountrySelection('CL', 'Chile')"><img src="/dist/flags/4x3/cl.svg?v2" alt="Chile" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Chile</span></a><a class="country-item" href="/china" onclick="trackCountrySelection('CN', 'China')"><img src="/dist/flags/4x3/cn.svg?v2" alt="China" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>China</span></a><a class="country-item" href="/colombia" onclick="trackCountrySelection('CO', 'Colombia')"><img src="/dist/flags/4x3/co.svg?v2" alt="Colombia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Colombia</span></a><a class="country-item" href="/costa-rica" onclick="trackCountrySelection('CR', 'Costa Rica')"><img src="/dist/flags/4x3/cr.svg?v2" alt="Costa Rica" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Costa Rica</span></a><a class="country-item" href="/croatia" onclick="trackCountrySelection('HR', 'Croatia')"><img src="/dist/flags/4x3/hr.svg?v2" alt="Croatia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Croatia</span></a><a class="country-item" href="/cuba" onclick="trackCountrySelection('CU', 'Cuba')"><img src="/dist/flags/4x3/cu.svg?v2" alt="Cuba" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Cuba</span></a><a class="country-item" href="/curacao" onclick="trackCountrySelection('CW', 'Curacao')"><img src="/dist/flags/4x3/cw.svg?v2" alt="Curacao" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Curacao</span></a><a class="country-item" href="/cyprus" onclick="trackCountrySelection('CY', 'Cyprus')"><img src="/dist/flags/4x3/cy.svg?v2" alt="Cyprus" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Cyprus</span></a><a class="country-item" href="/czech-republic" onclick="trackCountrySelection('CZ', 'Czech Republic')"><img src="/dist/flags/4x3/cz.svg?v2" alt="Czech Republic" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Czech Republic</span></a><a class="country-item" href="/democratic-republic-of-the-congo" onclick="trackCountrySelection('CD', 'Democratic Republic of the Congo')"><img src="/dist/flags/4x3/cd.svg?v2" alt="Democratic Republic of the Congo" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Democratic Republic of the Congo</span></a><a class="country-item" href="/denmark" onclick="trackCountrySelection('DK', 'Denmark')"><img src="/dist/flags/4x3/dk.svg?v2" alt="Denmark" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Denmark</span></a><a class="country-item" href="/dominican-republic" onclick="trackCountrySelection('DO', 'Dominican Republic')"><img src="/dist/flags/4x3/do.svg?v2" alt="Dominican Republic" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Dominican Republic</span></a><a class="country-item" href="/ecuador" onclick="trackCountrySelection('EC', 'Ecuador')"><img src="/dist/flags/4x3/ec.svg?v2" alt="Ecuador" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Ecuador</span></a><a class="country-item" href="/egypt" onclick="trackCountrySelection('EG', 'Egypt')"><img src="/dist/flags/4x3/eg.svg?v2" alt="Egypt" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Egypt</span></a><a class="country-item" href="/el-salvador" onclick="trackCountrySelection('SV', 'El Salvador')"><img src="/dist/flags/4x3/sv.svg?v2" alt="El Salvador" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>El Salvador</span></a><a class="country-item" href="/equatorial-guinea" onclick="trackCountrySelection('GQ', 'Equatorial Guinea')"><img src="/dist/flags/4x3/gq.svg?v2" alt="Equatorial Guinea" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Equatorial Guinea</span></a><a class="country-item" href="/estonia" onclick="trackCountrySelection('EE', 'Estonia')"><img src="/dist/flags/4x3/ee.svg?v2" alt="Estonia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Estonia</span></a><a class="country-item" href="/ethiopia" onclick="trackCountrySelection('ET', 'Ethiopia')"><img src="/dist/flags/4x3/et.svg?v2" alt="Ethiopia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Ethiopia</span></a><a class="country-item" href="/faroe-islands" onclick="trackCountrySelection('FO', 'Faroe Islands')"><img src="/dist/flags/4x3/fo.svg?v2" alt="Faroe Islands" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Faroe Islands</span></a><a class="country-item" href="/finland" onclick="trackCountrySelection('FI', 'Finland')"><img src="/dist/flags/4x3/fi.svg?v2" alt="Finland" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Finland</span></a><a class="country-item" href="/france" onclick="trackCountrySelection('FR', 'France')"><img src="/dist/flags/4x3/fr.svg?v2" alt="France" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>France</span></a><a class="country-item" href="/french-polynesia" onclick="trackCountrySelection('PF', 'French Polynesia')"><img src="/dist/flags/4x3/pf.svg?v2" alt="French Polynesia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>French Polynesia</span></a><a class="country-item" href="/gambia" onclick="trackCountrySelection('GM', 'Gambia')"><img src="/dist/flags/4x3/gm.svg?v2" alt="Gambia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Gambia</span></a><a class="country-item" href="/georgia" onclick="trackCountrySelection('GE', 'Georgia')"><img src="/dist/flags/4x3/ge.svg?v2" alt="Georgia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Georgia</span></a><a class="country-item" href="/germany" onclick="trackCountrySelection('DE', 'Germany')"><img src="/dist/flags/4x3/de.svg?v2" alt="Germany" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Germany</span></a><a class="country-item" href="/ghana" onclick="trackCountrySelection('GH', 'Ghana')"><img src="/dist/flags/4x3/gh.svg?v2" alt="Ghana" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Ghana</span></a><a class="country-item" href="/greece" onclick="trackCountrySelection('GR', 'Greece')"><img src="/dist/flags/4x3/gr.svg?v2" alt="Greece" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Greece</span></a><a class="country-item" href="/guadeloupe" onclick="trackCountrySelection('GP', 'Guadeloupe')"><img src="/dist/flags/4x3/gp.svg?v2" alt="Guadeloupe" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Guadeloupe</span></a><a class="country-item" href="/guam" onclick="trackCountrySelection('GU', 'Guam')"><img src="/dist/flags/4x3/gu.svg?v2" alt="Guam" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Guam</span></a><a class="country-item" href="/guatemala" onclick="trackCountrySelection('GT', 'Guatemala')"><img src="/dist/flags/4x3/gt.svg?v2" alt="Guatemala" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Guatemala</span></a><a class="country-item" href="/guinea" onclick="trackCountrySelection('GN', 'Guinea')"><img src="/dist/flags/4x3/gn.svg?v2" alt="Guinea" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Guinea</span></a><a class="country-item" href="/guyana" onclick="trackCountrySelection('GY', 'Guyana')"><img src="/dist/flags/4x3/gy.svg?v2" alt="Guyana" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Guyana</span></a><a class="country-item" href="/haiti" onclick="trackCountrySelection('HT', 'Haiti')"><img src="/dist/flags/4x3/ht.svg?v2" alt="Haiti" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Haiti</span></a><a class="country-item" href="/honduras" onclick="trackCountrySelection('HN', 'Honduras')"><img src="/dist/flags/4x3/hn.svg?v2" alt="Honduras" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Honduras</span></a><a class="country-item" href="/hong-kong" onclick="trackCountrySelection('HK', 'Hong Kong')"><img src="/dist/flags/4x3/hk.svg?v2" alt="Hong Kong" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Hong Kong</span></a><a class="country-item" href="/hungary" onclick="trackCountrySelection('HU', 'Hungary')"><img src="/dist/flags/4x3/hu.svg?v2" alt="Hungary" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Hungary</span></a><a class="country-item" href="/iceland" onclick="trackCountrySelection('IS', 'Iceland')"><img src="/dist/flags/4x3/is.svg?v2" alt="Iceland" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Iceland</span></a><a class="country-item" href="/india" onclick="trackCountrySelection('IN', 'India')"><img src="/dist/flags/4x3/in.svg?v2" alt="India" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>India</span></a><a class="country-item" href="/indonesia" onclick="trackCountrySelection('ID', 'Indonesia')"><img src="/dist/flags/4x3/id.svg?v2" alt="Indonesia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Indonesia</span></a><a class="country-item" href="/iran" onclick="trackCountrySelection('IR', 'Iran')"><img src="/dist/flags/4x3/ir.svg?v2" alt="Iran" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Iran</span></a><a class="country-item" href="/iraq" onclick="trackCountrySelection('IQ', 'Iraq')"><img src="/dist/flags/4x3/iq.svg?v2" alt="Iraq" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Iraq</span></a><a class="country-item" href="/ireland" onclick="trackCountrySelection('IE', 'Ireland')"><img src="/dist/flags/4x3/ie.svg?v2" alt="Ireland" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Ireland</span></a><a class="country-item" href="/israel" onclick="trackCountrySelection('IL', 'Israel')"><img src="/dist/flags/4x3/il.svg?v2" alt="Israel" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Israel</span></a><a class="country-item" href="/italy" onclick="trackCountrySelection('IT', 'Italy')"><img src="/dist/flags/4x3/it.svg?v2" alt="Italy" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Italy</span></a><a class="country-item" href="/ivory-coast" onclick="trackCountrySelection('CI', 'Ivory Coast')"><img src="/dist/flags/4x3/ci.svg?v2" alt="Ivory Coast" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Ivory Coast</span></a><a class="country-item" href="/jamaica" onclick="trackCountrySelection('JM', 'Jamaica')"><img src="/dist/flags/4x3/jm.svg?v2" alt="Jamaica" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Jamaica</span></a><a class="country-item" href="/japan" onclick="trackCountrySelection('JP', 'Japan')"><img src="/dist/flags/4x3/jp.svg?v2" alt="Japan" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Japan</span></a><a class="country-item" href="/jordan" onclick="trackCountrySelection('JO', 'Jordan')"><img src="/dist/flags/4x3/jo.svg?v2" alt="Jordan" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Jordan</span></a><a class="country-item" href="/kazakhstan" onclick="trackCountrySelection('KZ', 'Kazakhstan')"><img src="/dist/flags/4x3/kz.svg?v2" alt="Kazakhstan" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Kazakhstan</span></a><a class="country-item" href="/kenya" onclick="trackCountrySelection('KE', 'Kenya')"><img src="/dist/flags/4x3/ke.svg?v2" alt="Kenya" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Kenya</span></a><a class="country-item" href="/kuwait" onclick="trackCountrySelection('KW', 'Kuwait')"><img src="/dist/flags/4x3/kw.svg?v2" alt="Kuwait" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Kuwait</span></a><a class="country-item" href="/kyrgyzstan" onclick="trackCountrySelection('KG', 'Kyrgyzstan')"><img src="/dist/flags/4x3/kg.svg?v2" alt="Kyrgyzstan" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Kyrgyzstan</span></a><a class="country-item" href="/laos" onclick="trackCountrySelection('LA', 'Laos')"><img src="/dist/flags/4x3/la.svg?v2" alt="Laos" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Laos</span></a><a class="country-item" href="/latvia" onclick="trackCountrySelection('LV', 'Latvia')"><img src="/dist/flags/4x3/lv.svg?v2" alt="Latvia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Latvia</span></a><a class="country-item" href="/lebanon" onclick="trackCountrySelection('LB', 'Lebanon')"><img src="/dist/flags/4x3/lb.svg?v2" alt="Lebanon" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Lebanon</span></a><a class="country-item" href="/liberia" onclick="trackCountrySelection('LR', 'Liberia')"><img src="/dist/flags/4x3/lr.svg?v2" alt="Liberia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Liberia</span></a><a class="country-item" href="/libya" onclick="trackCountrySelection('LY', 'Libya')"><img src="/dist/flags/4x3/ly.svg?v2" alt="Libya" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Libya</span></a><a class="country-item" href="/lithuania" onclick="trackCountrySelection('LT', 'Lithuania')"><img src="/dist/flags/4x3/lt.svg?v2" alt="Lithuania" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Lithuania</span></a><a class="country-item" href="/luxembourg" onclick="trackCountrySelection('LU', 'Luxembourg')"><img src="/dist/flags/4x3/lu.svg?v2" alt="Luxembourg" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Luxembourg</span></a><a class="country-item" href="/macao" onclick="trackCountrySelection('MO', 'Macao')"><img src="/dist/flags/4x3/mo.svg?v2" alt="Macao" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Macao</span></a><a class="country-item" href="/malaysia" onclick="trackCountrySelection('MY', 'Malaysia')"><img src="/dist/flags/4x3/my.svg?v2" alt="Malaysia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Malaysia</span></a><a class="country-item" href="/maldives" onclick="trackCountrySelection('MV', 'Maldives')"><img src="/dist/flags/4x3/mv.svg?v2" alt="Maldives" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Maldives</span></a><a class="country-item" href="/malta" onclick="trackCountrySelection('MT', 'Malta')"><img src="/dist/flags/4x3/mt.svg?v2" alt="Malta" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Malta</span></a><a class="country-item" href="/martinique" onclick="trackCountrySelection('MQ', 'Martinique')"><img src="/dist/flags/4x3/mq.svg?v2" alt="Martinique" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Martinique</span></a><a class="country-item" href="/mauritius" onclick="trackCountrySelection('MU', 'Mauritius')"><img src="/dist/flags/4x3/mu.svg?v2" alt="Mauritius" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Mauritius</span></a><a class="country-item" href="/mexico" onclick="trackCountrySelection('MX', 'Mexico')"><img src="/dist/flags/4x3/mx.svg?v2" alt="Mexico" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Mexico</span></a><a class="country-item" href="/moldova" onclick="trackCountrySelection('MD', 'Moldova')"><img src="/dist/flags/4x3/md.svg?v2" alt="Moldova" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Moldova</span></a><a class="country-item" href="/monaco" onclick="trackCountrySelection('MC', 'Monaco')"><img src="/dist/flags/4x3/mc.svg?v2" alt="Monaco" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Monaco</span></a><a class="country-item" href="/mongolia" onclick="trackCountrySelection('MN', 'Mongolia')"><img src="/dist/flags/4x3/mn.svg?v2" alt="Mongolia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Mongolia</span></a><a class="country-item" href="/montenegro" onclick="trackCountrySelection('ME', 'Montenegro')"><img src="/dist/flags/4x3/me.svg?v2" alt="Montenegro" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Montenegro</span></a><a class="country-item" href="/morocco" onclick="trackCountrySelection('MA', 'Morocco')"><img src="/dist/flags/4x3/ma.svg?v2" alt="Morocco" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Morocco</span></a><a class="country-item" href="/mozambique" onclick="trackCountrySelection('MZ', 'Mozambique')"><img src="/dist/flags/4x3/mz.svg?v2" alt="Mozambique" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Mozambique</span></a><a class="country-item" href="/myanmar" onclick="trackCountrySelection('MM', 'Myanmar')"><img src="/dist/flags/4x3/mm.svg?v2" alt="Myanmar" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Myanmar</span></a><a class="country-item" href="/namibia" onclick="trackCountrySelection('NA', 'Namibia')"><img src="/dist/flags/4x3/na.svg?v2" alt="Namibia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Namibia</span></a><a class="country-item" href="/nepal" onclick="trackCountrySelection('NP', 'Nepal')"><img src="/dist/flags/4x3/np.svg?v2" alt="Nepal" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Nepal</span></a><a class="country-item" href="/netherlands" onclick="trackCountrySelection('NL', 'Netherlands')"><img src="/dist/flags/4x3/nl.svg?v2" alt="Netherlands" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Netherlands</span></a><a class="country-item" href="/new-zealand" onclick="trackCountrySelection('NZ', 'New Zealand')"><img src="/dist/flags/4x3/nz.svg?v2" alt="New Zealand" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>New Zealand</span></a><a class="country-item" href="/nicaragua" onclick="trackCountrySelection('NI', 'Nicaragua')"><img src="/dist/flags/4x3/ni.svg?v2" alt="Nicaragua" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Nicaragua</span></a><a class="country-item" href="/niger" onclick="trackCountrySelection('NE', 'Niger')"><img src="/dist/flags/4x3/ne.svg?v2" alt="Niger" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Niger</span></a><a class="country-item" href="/nigeria" onclick="trackCountrySelection('NG', 'Nigeria')"><img src="/dist/flags/4x3/ng.svg?v2" alt="Nigeria" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Nigeria</span></a><a class="country-item" href="/north-macedonia" onclick="trackCountrySelection('MK', 'North Macedonia')"><img src="/dist/flags/4x3/mk.svg?v2" alt="North Macedonia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>North Macedonia</span></a><a class="country-item" href="/norway" onclick="trackCountrySelection('NO', 'Norway')"><img src="/dist/flags/4x3/no.svg?v2" alt="Norway" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Norway</span></a><a class="country-item" href="/oman" onclick="trackCountrySelection('OM', 'Oman')"><img src="/dist/flags/4x3/om.svg?v2" alt="Oman" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Oman</span></a><a class="country-item" href="/pakistan" onclick="trackCountrySelection('PK', 'Pakistan')"><img src="/dist/flags/4x3/pk.svg?v2" alt="Pakistan" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Pakistan</span></a><a class="country-item" href="/palestine" onclick="trackCountrySelection('PS', 'Palestine')"><img src="/dist/flags/4x3/ps.svg?v2" alt="Palestine" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Palestine</span></a><a class="country-item" href="/panama" onclick="trackCountrySelection('PA', 'Panama')"><img src="/dist/flags/4x3/pa.svg?v2" alt="Panama" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Panama</span></a><a class="country-item" href="/papua-new-guinea" onclick="trackCountrySelection('PG', 'Papua New Guinea')"><img src="/dist/flags/4x3/pg.svg?v2" alt="Papua New Guinea" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Papua New Guinea</span></a><a class="country-item" href="/paraguay" onclick="trackCountrySelection('PY', 'Paraguay')"><img src="/dist/flags/4x3/py.svg?v2" alt="Paraguay" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Paraguay</span></a><a class="country-item" href="/peru" onclick="trackCountrySelection('PE', 'Peru')"><img src="/dist/flags/4x3/pe.svg?v2" alt="Peru" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Peru</span></a><a class="country-item" href="/philippines" onclick="trackCountrySelection('PH', 'Philippines')"><img src="/dist/flags/4x3/ph.svg?v2" alt="Philippines" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Philippines</span></a><a class="country-item" href="/poland" onclick="trackCountrySelection('PL', 'Poland')"><img src="/dist/flags/4x3/pl.svg?v2" alt="Poland" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Poland</span></a><a class="country-item" href="/portugal" onclick="trackCountrySelection('PT', 'Portugal')"><img src="/dist/flags/4x3/pt.svg?v2" alt="Portugal" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Portugal</span></a><a class="country-item" href="/puerto-rico" onclick="trackCountrySelection('PR', 'Puerto Rico')"><img src="/dist/flags/4x3/pr.svg?v2" alt="Puerto Rico" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Puerto Rico</span></a><a class="country-item" href="/qatar" onclick="trackCountrySelection('QA', 'Qatar')"><img src="/dist/flags/4x3/qa.svg?v2" alt="Qatar" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Qatar</span></a><a class="country-item" href="/republic-of-the-congo" onclick="trackCountrySelection('CG', 'Republic of the Congo')"><img src="/dist/flags/4x3/cg.svg?v2" alt="Republic of the Congo" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Republic of the Congo</span></a><a class="country-item" href="/romania" onclick="trackCountrySelection('RO', 'Romania')"><img src="/dist/flags/4x3/ro.svg?v2" alt="Romania" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Romania</span></a><a class="country-item" href="/russia" onclick="trackCountrySelection('RU', 'Russia')"><img src="/dist/flags/4x3/ru.svg?v2" alt="Russia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Russia</span></a><a class="country-item" href="/rwanda" onclick="trackCountrySelection('RW', 'Rwanda')"><img src="/dist/flags/4x3/rw.svg?v2" alt="Rwanda" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Rwanda</span></a><a class="country-item" href="/saint-lucia" onclick="trackCountrySelection('LC', 'Saint Lucia')"><img src="/dist/flags/4x3/lc.svg?v2" alt="Saint Lucia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Saint Lucia</span></a><a class="country-item" href="/san-marino" onclick="trackCountrySelection('SM', 'San Marino')"><img src="/dist/flags/4x3/sm.svg?v2" alt="San Marino" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>San Marino</span></a><a class="country-item" href="/saudi-arabia" onclick="trackCountrySelection('SA', 'Saudi Arabia')"><img src="/dist/flags/4x3/sa.svg?v2" alt="Saudi Arabia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Saudi Arabia</span></a><a class="country-item" href="/senegal" onclick="trackCountrySelection('SN', 'Senegal')"><img src="/dist/flags/4x3/sn.svg?v2" alt="Senegal" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Senegal</span></a><a class="country-item" href="/serbia" onclick="trackCountrySelection('RS', 'Serbia')"><img src="/dist/flags/4x3/rs.svg?v2" alt="Serbia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Serbia</span></a><a class="country-item" href="/singapore" onclick="trackCountrySelection('SG', 'Singapore')"><img src="/dist/flags/4x3/sg.svg?v2" alt="Singapore" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Singapore</span></a><a class="country-item" href="/sint-maarten" onclick="trackCountrySelection('SX', 'Sint Maarten')"><img src="/dist/flags/4x3/sx.svg?v2" alt="Sint Maarten" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Sint Maarten</span></a><a class="country-item" href="/slovakia" onclick="trackCountrySelection('SK', 'Slovakia')"><img src="/dist/flags/4x3/sk.svg?v2" alt="Slovakia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Slovakia</span></a><a class="country-item" href="/slovenia" onclick="trackCountrySelection('SI', 'Slovenia')"><img src="/dist/flags/4x3/si.svg?v2" alt="Slovenia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Slovenia</span></a><a class="country-item" href="/somalia" onclick="trackCountrySelection('SO', 'Somalia')"><img src="/dist/flags/4x3/so.svg?v2" alt="Somalia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Somalia</span></a><a class="country-item" href="/south-africa" onclick="trackCountrySelection('ZA', 'South Africa')"><img src="/dist/flags/4x3/za.svg?v2" alt="South Africa" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>South Africa</span></a><a class="country-item" href="/south-korea" onclick="trackCountrySelection('KR', 'South Korea')"><img src="/dist/flags/4x3/kr.svg?v2" alt="South Korea" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>South Korea</span></a><a class="country-item" href="/spain" onclick="trackCountrySelection('ES', 'Spain')"><img src="/dist/flags/4x3/es.svg?v2" alt="Spain" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Spain</span></a><a class="country-item" href="/sri-lanka" onclick="trackCountrySelection('LK', 'Sri Lanka')"><img src="/dist/flags/4x3/lk.svg?v2" alt="Sri Lanka" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Sri Lanka</span></a><a class="country-item" href="/sudan" onclick="trackCountrySelection('SD', 'Sudan')"><img src="/dist/flags/4x3/sd.svg?v2" alt="Sudan" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Sudan</span></a><a class="country-item" href="/suriname" onclick="trackCountrySelection('SR', 'Suriname')"><img src="/dist/flags/4x3/sr.svg?v2" alt="Suriname" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Suriname</span></a><a class="country-item" href="/sweden" onclick="trackCountrySelection('SE', 'Sweden')"><img src="/dist/flags/4x3/se.svg?v2" alt="Sweden" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Sweden</span></a><a class="country-item" href="/switzerland" onclick="trackCountrySelection('CH', 'Switzerland')"><img src="/dist/flags/4x3/ch.svg?v2" alt="Switzerland" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Switzerland</span></a><a class="country-item" href="/syria" onclick="trackCountrySelection('SY', 'Syria')"><img src="/dist/flags/4x3/sy.svg?v2" alt="Syria" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Syria</span></a><a class="country-item" href="/taiwan" onclick="trackCountrySelection('TW', 'Taiwan')"><img src="/dist/flags/4x3/tw.svg?v2" alt="Taiwan" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Taiwan</span></a><a class="country-item" href="/tajikistan" onclick="trackCountrySelection('TJ', 'Tajikistan')"><img src="/dist/flags/4x3/tj.svg?v2" alt="Tajikistan" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Tajikistan</span></a><a class="country-item" href="/tanzania" onclick="trackCountrySelection('TZ', 'Tanzania')"><img src="/dist/flags/4x3/tz.svg?v2" alt="Tanzania" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Tanzania</span></a><a class="country-item" href="/thailand" onclick="trackCountrySelection('TH', 'Thailand')"><img src="/dist/flags/4x3/th.svg?v2" alt="Thailand" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Thailand</span></a><a class="country-item" href="/togo" onclick="trackCountrySelection('TG', 'Togo')"><img src="/dist/flags/4x3/tg.svg?v2" alt="Togo" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Togo</span></a><a class="country-item" href="/trinidad-and-tobago" onclick="trackCountrySelection('TT', 'Trinidad and Tobago')"><img src="/dist/flags/4x3/tt.svg?v2" alt="Trinidad and Tobago" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Trinidad and Tobago</span></a><a class="country-item" href="/tunisia" onclick="trackCountrySelection('TN', 'Tunisia')"><img src="/dist/flags/4x3/tn.svg?v2" alt="Tunisia" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Tunisia</span></a><a class="country-item" href="/turkey" onclick="trackCountrySelection('TR', 'Turkey')"><img src="/dist/flags/4x3/tr.svg?v2" alt="Turkey" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Turkey</span></a><a class="country-item" href="/turkmenistan" onclick="trackCountrySelection('TM', 'Turkmenistan')"><img src="/dist/flags/4x3/tm.svg?v2" alt="Turkmenistan" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Turkmenistan</span></a><a class="country-item" href="/uganda" onclick="trackCountrySelection('UG', 'Uganda')"><img src="/dist/flags/4x3/ug.svg?v2" alt="Uganda" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Uganda</span></a><a class="country-item" href="/ukraine" onclick="trackCountrySelection('UA', 'Ukraine')"><img src="/dist/flags/4x3/ua.svg?v2" alt="Ukraine" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Ukraine</span></a><a class="country-item" href="/united-arab-emirates" onclick="trackCountrySelection('AE', 'United Arab Emirates')"><img src="/dist/flags/4x3/ae.svg?v2" alt="United Arab Emirates" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>United Arab Emirates</span></a><a class="country-item" href="/united-kingdom" onclick="trackCountrySelection('UK', 'United Kingdom')"><img src="/dist/flags/4x3/uk.svg?v2" alt="United Kingdom" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>United Kingdom</span></a><a class="country-item" href="/united-states" onclick="trackCountrySelection('US', 'United States')"><img src="/dist/flags/4x3/us.svg?v2" alt="United States" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>United States</span></a><a class="country-item" href="/uruguay" onclick="trackCountrySelection('UY', 'Uruguay')"><img src="/dist/flags/4x3/uy.svg?v2" alt="Uruguay" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Uruguay</span></a><a class="country-item" href="/uzbekistan" onclick="trackCountrySelection('UZ', 'Uzbekistan')"><img src="/dist/flags/4x3/uz.svg?v2" alt="Uzbekistan" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Uzbekistan</span></a><a class="country-item" href="/venezuela" onclick="trackCountrySelection('VE', 'Venezuela')"><img src="/dist/flags/4x3/ve.svg?v2" alt="Venezuela" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Venezuela</span></a><a class="country-item" href="/vietnam" onclick="trackCountrySelection('VN', 'Vietnam')"><img src="/dist/flags/4x3/vn.svg?v2" alt="Vietnam" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Vietnam</span></a><a class="country-item" href="/western-sahara" onclick="trackCountrySelection('EH', 'Western Sahara')"><img src="/dist/flags/4x3/eh.svg?v2" alt="Western Sahara" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Western Sahara</span></a><a class="country-item" href="/yemen" onclick="trackCountrySelection('YE', 'Yemen')"><img src="/dist/flags/4x3/ye.svg?v2" alt="Yemen" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Yemen</span></a><a class="country-item" href="/zimbabwe" onclick="trackCountrySelection('ZW', 'Zimbabwe')"><img src="/dist/flags/4x3/zw.svg?v2" alt="Zimbabwe" class="country-flag w-4 h-3 object-contain" onerror="this.style.display='none'" loading="lazy"><span>Zimbabwe</span></a></div><div id="channels-list" class="hidden space-y-1"></div>                        </div>
                    </div>

                    <div class="actions-group absolute top-0 left-0 mt-2 transform transition-transform duration-300 ease-in-out z-10 country-menu  flex flex-col">
                        <button id="back-button"
                            class="bg-white text-gray-800 p-2 rounded-s-md block">
                            <svg xmlns="http://www.w3.org/2000/svg"
                                height="24"
                                viewBox="0 0 24 24"
                                width="24">
                                <path d="M0 0h24v24H0V0z"
                                    fill="none"></path>
                                <path d="M19 11H7.83l4.88-4.88c.39-.39.39-1.03 0-1.42-.39-.39-1.02-.39-1.41 0l-6.59 6.59c-.39.39-.39 1.02 0 1.41l6.59 6.59c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L7.83 13H19c.55 0 1-.45 1-1s-.45-1-1-1z"></path>
                            </svg>
                        </button>

                        <button id="schedule-button"
                            class="bg-blue-500 text-white p-2 rounded-s-md mt-2 block">
                            <svg xmlns="http://www.w3.org/2000/svg"
                                height="24"
                                viewBox="0 0 24 24"
                                width="24">
                                <path d="M0 0h24v24H0V0z"
                                    fill="none" />
                                <path d="M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2zm-7 5h5v5h-5z"
                                    fill="white" />
                            </svg>
                        </button>

                        <button id="seo-toggle-btn"
                            class="bg-green-500 text-white p-2 rounded-s-md mt-2 block">
                            <svg xmlns="http://www.w3.org/2000/svg"
                                height="24"
                                viewBox="0 0 24 24"
                                width="24">
                                <path d="M0 0h24v24H0V0z"
                                    fill="none" />
                                <path d="M21 3H3c-1.11 0-2 .89-2 2v12c0 1.1.89 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.11-.9-2-2-2zm0 14H3V5h18v12zm-5-6l-7 4V7l7 4z"
                                    fill="white" />
                            </svg>
                        </button>

                        <button id="gallery-toggle-btn-new"
                            class="bg-slate-800 text-white p-2 rounded-s-md mt-2 block hidden">
                            <svg xmlns="http://www.w3.org/2000/svg"
                                height="24"
                                viewBox="0 0 24 24"
                                width="24">
                                <path d="M0 0h24v24H0V0z"
                                    fill="none" />
                                <path d="M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zM11.5 12.5l2.5 3.01L16.5 11l3.5 4.5H8l3.5-4.5zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z"
                                    fill="white" />
                            </svg>
                        </button>
                    </div>
                </div>
            </div>
            </div>

            <!-- SEO Overlay for Users -->
        <div id="seo-overlay"
            class="seo-overlay hidden">
            <div class="seo-content">
                <button id="seo-close-btn"
                    class="seo-close-btn"
                    title="Close">×</button>
                <button id="seo-close-btn-alt"
                    class="seo-close-btn-alt"
                    title="Close">
                    <svg xmlns="http://www.w3.org/2000/svg"
                        class="h-5 w-5"
                        fill="none"
                        viewBox="0 0 24 24"
                        stroke="currentColor">
                        <path stroke-linecap="round"
                            stroke-linejoin="round"
                            stroke-width="2"
                            d="M6 18L18 6M6 6l12 12" />
                    </svg>
                    Close
                </button>
                                <h1>Live TV Streaming</h1>
                <div class="intro">Live TV Streaming</div>

                            </div>
        </div>
    </body><!-- Critical video player script loaded synchronously -->
<script src="/dist/js/video.min.js?v8.23.3"></script>

<!-- Non-critical globe visualization scripts loaded asynchronously -->
<script src="/dist/js/three.min.js?r128"></script>
<script src="/dist/js/OrbitControls.min.js?0.128.0"></script>
<script src="/dist/js/globe.gl.js?2.41.6" async></script>

<script>
    // Globe loading check - wait for all globe dependencies
    function waitForGlobeDependencies(callback) {
        const checkDependencies = () => {
            if (typeof THREE !== 'undefined' &&
                typeof Globe !== 'undefined' &&
                window.THREE && window.THREE.OrbitControls) {
                callback();
            } else {
                setTimeout(checkDependencies, 100);
            }
        };
        checkDependencies();
    }

        const STREAM = '';
    const COUNTRY_NAME = '';
    const COUNTRY = 'all';
    const CHANNEL = '';
    const ISO_A2 = '';
    const CHANNEL_COUNTS = {"US":1206,"ES":252,"IT":229,"IN":216,"TR":204,"MX":175,"DO":173,"DE":162,"UK":137,"RU":125,"CA":123,"NL":122,"FR":115,"BR":94,"IR":88,"GR":77,"GT":77,"PE":74,"AR":73,"CL":71,"ID":71,"HN":70,"CO":68,"EC":66,"RO":65,"AE":65,"CR":60,"NG":58,"TH":56,"IQ":54,"SA":54,"PY":54,"HU":54,"VE":50,"KR":48,"PL":44,"ZA":42,"KE":38,"VN":36,"PT":35,"EG":34,"PR":33,"UA":32,"GH":31,"CH":31,"AU":30,"RS":27,"LB":27,"PK":26,"UG":26,"SV":26,"BE":25,"SN":25,"AT":24,"BO":24,"CN":24,"PA":24,"FI":23,"AF":22,"UZ":22,"MK":20,"JO":20,"KZ":20,"QA":19,"SK":19,"CZ":18,"CY":18,"MN":17,"BG":17,"EE":17,"CI":16,"IL":16,"GE":15,"HR":15,"PS":15,"KH":14,"CD":13,"MA":13,"AZ":13,"HT":12,"NI":12,"MY":12,"MD":12,"JP":11,"PH":11,"AL":11,"LA":11,"TW":11,"MV":11,"NZ":10,"SE":10,"TG":10,"BD":10,"MM":10,"BA":10,"LU":10,"BY":9,"TJ":9,"AW":9,"TN":9,"SG":9,"CM":9,"IE":9,"LT":8,"AM":8,"SI":8,"LV":7,"JM":7,"BJ":7,"LK":7,"MO":7,"SO":6,"NO":6,"KW":6,"DZ":6,"RW":6,"YE":5,"KG":5,"TM":5,"GP":5,"IS":5,"DK":5,"BH":5,"OM":5,"LY":5,"BQ":4,"ET":4,"GN":4,"HK":4,"CG":4,"CW":4,"CV":3,"SY":3,"NE":3,"MQ":3,"GY":3,"MU":3,"NP":3,"BS":3,"AO":3,"UY":2,"TT":2,"VG":2,"SM":2,"MC":2,"ME":2,"FO":2,"SR":2,"GM":1,"SD":1,"GQ":1,"BM":1,"TD":1,"GU":1,"NA":1,"LR":1,"MZ":1,"PG":1,"CU":1,"TZ":1,"ZW":1,"LC":1,"MT":1,"EH":1,"SX":1,"AD":1,"BB":1,"PF":1,"ad":1,"GB":137};
    const COUNTRY_MAP = {
    "AF": "Afghanistan",
    "AL": "Albania",
    "DZ": "Algeria",
    "AD": "Andorra",
    "AO": "Angola",
    "AR": "Argentina",
    "AM": "Armenia",
    "AW": "Aruba",
    "AU": "Australia",
    "AT": "Austria",
    "AZ": "Azerbaijan",
    "BS": "Bahamas",
    "BH": "Bahrain",
    "BD": "Bangladesh",
    "BB": "Barbados",
    "BY": "Belarus",
    "BE": "Belgium",
    "BJ": "Benin",
    "BM": "Bermuda",
    "BO": "Bolivia",
    "BQ": "Bonaire",
    "BA": "Bosnia and Herzegovina",
    "BR": "Brazil",
    "VG": "British Virgin Islands",
    "BG": "Bulgaria",
    "KH": "Cambodia",
    "CM": "Cameroon",
    "CA": "Canada",
    "CV": "Cape Verde",
    "TD": "Chad",
    "CL": "Chile",
    "CN": "China",
    "CO": "Colombia",
    "CR": "Costa Rica",
    "HR": "Croatia",
    "CU": "Cuba",
    "CW": "Curacao",
    "CY": "Cyprus",
    "CZ": "Czech Republic",
    "CD": "Democratic Republic of the Congo",
    "DK": "Denmark",
    "DO": "Dominican Republic",
    "EC": "Ecuador",
    "EG": "Egypt",
    "SV": "El Salvador",
    "GQ": "Equatorial Guinea",
    "EE": "Estonia",
    "ET": "Ethiopia",
    "FO": "Faroe Islands",
    "FI": "Finland",
    "FR": "France",
    "PF": "French Polynesia",
    "GM": "Gambia",
    "GE": "Georgia",
    "DE": "Germany",
    "GH": "Ghana",
    "GR": "Greece",
    "GP": "Guadeloupe",
    "GU": "Guam",
    "GT": "Guatemala",
    "GN": "Guinea",
    "GY": "Guyana",
    "HT": "Haiti",
    "HN": "Honduras",
    "HK": "Hong Kong",
    "HU": "Hungary",
    "IS": "Iceland",
    "IN": "India",
    "ID": "Indonesia",
    "IR": "Iran",
    "IQ": "Iraq",
    "IE": "Ireland",
    "IL": "Israel",
    "IT": "Italy",
    "CI": "Ivory Coast",
    "JM": "Jamaica",
    "JP": "Japan",
    "JO": "Jordan",
    "KZ": "Kazakhstan",
    "KE": "Kenya",
    "KW": "Kuwait",
    "KG": "Kyrgyzstan",
    "LA": "Laos",
    "LV": "Latvia",
    "LB": "Lebanon",
    "LR": "Liberia",
    "LY": "Libya",
    "LT": "Lithuania",
    "LU": "Luxembourg",
    "MO": "Macao",
    "MY": "Malaysia",
    "MV": "Maldives",
    "MT": "Malta",
    "MQ": "Martinique",
    "MU": "Mauritius",
    "MX": "Mexico",
    "MD": "Moldova",
    "MC": "Monaco",
    "MN": "Mongolia",
    "ME": "Montenegro",
    "MA": "Morocco",
    "MZ": "Mozambique",
    "MM": "Myanmar",
    "NA": "Namibia",
    "NP": "Nepal",
    "NL": "Netherlands",
    "NZ": "New Zealand",
    "NI": "Nicaragua",
    "NE": "Niger",
    "NG": "Nigeria",
    "MK": "North Macedonia",
    "NO": "Norway",
    "OM": "Oman",
    "PK": "Pakistan",
    "PS": "Palestine",
    "PA": "Panama",
    "PG": "Papua New Guinea",
    "PY": "Paraguay",
    "PE": "Peru",
    "PH": "Philippines",
    "PL": "Poland",
    "PT": "Portugal",
    "PR": "Puerto Rico",
    "QA": "Qatar",
    "CG": "Republic of the Congo",
    "RO": "Romania",
    "RU": "Russia",
    "RW": "Rwanda",
    "LC": "Saint Lucia",
    "SM": "San Marino",
    "SA": "Saudi Arabia",
    "SN": "Senegal",
    "RS": "Serbia",
    "SG": "Singapore",
    "SX": "Sint Maarten",
    "SK": "Slovakia",
    "SI": "Slovenia",
    "SO": "Somalia",
    "ZA": "South Africa",
    "KR": "South Korea",
    "ES": "Spain",
    "LK": "Sri Lanka",
    "SD": "Sudan",
    "SR": "Suriname",
    "SE": "Sweden",
    "CH": "Switzerland",
    "SY": "Syria",
    "TW": "Taiwan",
    "TJ": "Tajikistan",
    "TZ": "Tanzania",
    "TH": "Thailand",
    "TG": "Togo",
    "TT": "Trinidad and Tobago",
    "TN": "Tunisia",
    "TR": "Turkey",
    "TM": "Turkmenistan",
    "UG": "Uganda",
    "UA": "Ukraine",
    "AE": "United Arab Emirates",
    "UK": "United Kingdom",
    "US": "United States",
    "UY": "Uruguay",
    "UZ": "Uzbekistan",
    "VE": "Venezuela",
    "VN": "Vietnam",
    "EH": "Western Sahara",
    "YE": "Yemen",
    "ZW": "Zimbabwe"
};

    const CURRENT_TIMEZONE = Intl.DateTimeFormat().resolvedOptions().timeZone;
    const TIMEZONE = '' || CURRENT_TIMEZONE;

    // Use DOMContentLoaded instead of window.onload for faster initialization
    document.addEventListener('DOMContentLoaded', () => {
        updateTime();
        setInterval(updateTime, 1000);
        initializeApp();
    });

    // Left Sidebar Toggle Functionality
    document.addEventListener('DOMContentLoaded', function () {
        const menuToggle = document.getElementById('menu-toggle');
        const leftSidebar = document.getElementById('left-sidebar');

        if (menuToggle && leftSidebar) {
            // Toggle sidebar function
            function toggleSidebar() {
                const isOpen = leftSidebar.classList.contains('translate-x-0');

                if (isOpen) {
                    // Close sidebar
                    leftSidebar.classList.remove('translate-x-0');
                    leftSidebar.classList.add('-translate-x-full');
                } else {
                    // Open sidebar
                    leftSidebar.classList.remove('-translate-x-full');
                    leftSidebar.classList.add('translate-x-0');

                    // Right sidebar
                    const rightSidebar = document.querySelector('.right-sidebar');
                    if (rightSidebar && !rightSidebar.classList.contains('inactive')) {
                        rightSidebar.classList.add('inactive');
                    }
                }
            }

            // Menu toggle button click
            menuToggle.addEventListener('click', toggleSidebar);

            // Close sidebar on escape key
            document.addEventListener('keydown', function (e) {
                if (e.key === 'Escape' && leftSidebar.classList.contains('translate-x-0')) {
                    toggleSidebar();
                }
            });

            // Close sidebar when clicking outside on desktop
            document.addEventListener('click', function (e) {
                if (window.innerWidth >= 768 &&
                    leftSidebar.classList.contains('translate-x-0') &&
                    !leftSidebar.contains(e.target) &&
                    !menuToggle.contains(e.target)) {
                    toggleSidebar();
                }
            });
        }

        const rightSidebar = document.querySelector('.right-sidebar');
        if (rightSidebar) {
            // Window size lower than 1024px
            setTimeout(() => {
                if (window.innerWidth < 1024) {
                    rightSidebar.classList.add('inactive');
                }
                setTimeout(() => {
                    rightSidebar.classList.add('show');
                }, 1000);
            }, 500);
        }
    });

    window.addEventListener('resize', () => {
        const rightSidebar = document.querySelector('.right-sidebar');
        if (rightSidebar) {
            if (window.innerWidth < 1024) {
                rightSidebar.classList.add('inactive');
            } else {
                rightSidebar.classList.remove('inactive');
            }
        }
    });

    let selectedChannel = null;
    let world = null;

    // Globe orientation storage functions
    function saveGlobeOrientation() {
        if (!world) return;

        try {
            const camera = world.camera();
            const controls = world.controls();

            if (!camera || !controls) {
                console.warn('Camera or controls not available for saving orientation');
                return;
            }

            const orientation = {
                cameraPosition: {
                    x: camera.position.x,
                    y: camera.position.y,
                    z: camera.position.z
                },
                target: {
                    x: controls.target.x,
                    y: controls.target.y,
                    z: controls.target.z
                },
                timestamp: Date.now()
            };

            localStorage.setItem('globe_orientation', JSON.stringify(orientation));
            console.log('Globe orientation saved:', orientation);
        } catch (error) {
            console.warn('Failed to save globe orientation:', error);
        }
    }

    function loadGlobeOrientation() {
        try {
            const stored = localStorage.getItem('globe_orientation');
            if (stored) {
                const orientation = JSON.parse(stored);

                // Check if the stored orientation is not too old (7 days)
                const maxAge = 7 * 24 * 60 * 60 * 1000; // 7 days in milliseconds
                if (Date.now() - orientation.timestamp < maxAge) {
                    return orientation;
                }
            }
        } catch (error) {
            console.warn('Failed to load globe orientation:', error);
        }
        return null;
    }

    function restoreGlobeOrientation() {
        console.log('start restoreGlobeOrientation');
        if (!world) return;

        console.log('restoreGlobeOrientation 2');

        const orientation = loadGlobeOrientation();
        if (orientation) {
            try {
                console.log('restoreGlobeOrientation 3', world);

                // Get the Three.js camera and controls directly
                const camera = world.camera();
                const controls = world.controls();

                if (camera && controls) {
                    // Animate camera to restored position smoothly
                    animateCameraToPosition(camera, controls, orientation);

                    console.log('Globe orientation restoration initiated');
                } else {
                    console.warn('Camera or controls not available for orientation restoration');
                }
            } catch (error) {
                console.warn('Failed to restore globe orientation:', error);
            }
        }
    }

    function animateCameraToPosition(camera, controls, orientation) {
        const duration = 1000; // 1 second
        const startTime = Date.now();

        // Store initial positions
        const startCameraPos = {
            x: camera.position.x,
            y: camera.position.y,
            z: camera.position.z
        };

        const startTarget = {
            x: controls.target.x,
            y: controls.target.y,
            z: controls.target.z
        };

        // Target positions
        const endCameraPos = orientation.cameraPosition;
        const endTarget = orientation.target;

        function animate() {
            const elapsed = Date.now() - startTime;
            const progress = Math.min(elapsed / duration, 1);

            // Easing function (ease out)
            const easeOut = 1 - Math.pow(1 - progress, 3);

            // Interpolate camera position
            camera.position.x = startCameraPos.x + (endCameraPos.x - startCameraPos.x) * easeOut;
            camera.position.y = startCameraPos.y + (endCameraPos.y - startCameraPos.y) * easeOut;
            camera.position.z = startCameraPos.z + (endCameraPos.z - startCameraPos.z) * easeOut;

            // Interpolate target position
            controls.target.x = startTarget.x + (endTarget.x - startTarget.x) * easeOut;
            controls.target.y = startTarget.y + (endTarget.y - startTarget.y) * easeOut;
            controls.target.z = startTarget.z + (endTarget.z - startTarget.z) * easeOut;

            // Update controls
            controls.update();

            if (progress < 1) {
                requestAnimationFrame(animate);
            } else {
                console.log('Globe orientation restored successfully');
            }
        }

        animate();
    }

    function setupGlobeOrientationTracking() {
        if (!world) return;

        const controls = world.controls();
        if (controls) {
            // Save orientation when user interacts with the globe
            let saveTimeout;

            const scheduleSave = () => {
                clearTimeout(saveTimeout);
                saveTimeout = setTimeout(saveGlobeOrientation, 1000); // Save after 1 second of inactivity
            };

            // Listen to control events
            controls.addEventListener('change', scheduleSave);
            controls.addEventListener('end', saveGlobeOrientation); // Save immediately when interaction ends

            // Periodic save every 2 minutes during active use
            setInterval(() => {
                saveGlobeOrientation();
            }, 2 * 60 * 1000); // 2 minutes

            restoreGlobeOrientation();
        }
    }

    // Utility Functions
    function getFlagEmoji(countryCode) {
        if (countryCode === 'UK') {
            countryCode = 'GB';
        }
        const codePoints = countryCode
            .toUpperCase()
            .split('')
            .map(char => 127397 + char.charCodeAt(0));
        return String.fromCodePoint(...codePoints);
    }

    function updateTime() {
        const now = new Date();
        const timeString = now.toLocaleTimeString('en-US', {
            hour: 'numeric',
            minute: '2-digit',
            hour12: true,
            timeZone: TIMEZONE
        });
        document.getElementById('current-time').textContent = timeString;
    }

    function getColorFromString(str) {
        let hash = 0;
        for (let i = 0; i < str.length; i++) {
            hash = str.charCodeAt(i) + ((hash << 5) - hash);
        }
        const h = hash % 360;
        return `hsl(${h}, 70%, 60%)`;
    }

    function createUrlSlug(name) {
        return name.toLowerCase().replace(/ /g, '-');
    }

    function hideLoadingIndicator() {
        const loadingIndicator = document.getElementById('stream-loading');
        loadingIndicator.classList.add('hidden');
    }

    function showLoadingIndicator() {
        const loadingIndicator = document.getElementById('stream-loading');
        loadingIndicator.classList.remove('hidden');
    }

    function clearStreamTimeout() {
        if (window.streamTimeout) {
            clearTimeout(window.streamTimeout);
        }
    }

    // Navigation Functions
    function navigateToCountry(countrySlug) {
        window.location.href = '/' + countrySlug;
    }

    function navigateToChannel(countrySlug, channelTitle) {
        window.location.href = '/' + countrySlug + '/' + channelTitle;
    }

    function navigateToHome() {
        window.location.href = '/';
    }

    // UI State Management Functions
    function showCountryHeader(countryName, countryCode) {
        const countryHeader = document.getElementById('country-header');
        countryHeader.querySelector('h2').textContent = countryName;

        const localTime = new Date().toLocaleTimeString('en-US', {
            hour: 'numeric',
            minute: '2-digit',
            hour12: true,
            timeZone: TIMEZONE
        });
        countryHeader.querySelector('div').textContent = `${localTime}`;
        countryHeader.classList.remove('hidden');
    }

    function hideCountryHeader() {
        const countryHeader = document.getElementById('country-header');
        countryHeader.classList.add('hidden');
    }

    function showBackButton() {
        const backButton = document.getElementById('back-button');
        backButton.style.transform = 'translateX(-100%)';
    }

    function hideBackButton() {
        const backButton = document.getElementById('back-button');
        backButton.style.transform = 'translateX(0)';
    }

    function showCountrySelector() {
        const countrySelector = document.getElementById('country-selector');
        countrySelector.classList.remove('hidden');
    }

    function hideCountrySelector() {
        const countrySelector = document.getElementById('country-selector');
        countrySelector.classList.add('hidden');
    }

    function showCountriesList() {
        const countriesList = document.getElementById('countries-list');
        countriesList.classList.remove('hidden');
    }

    function hideCountriesList() {
        const countriesList = document.getElementById('countries-list');
        countriesList.classList.add('hidden');
    }

    function showChannelsList() {
        const channelsList = document.getElementById('channels-list');
        channelsList.classList.remove('hidden');
    }

    function hideChannelsList() {
        const channelsList = document.getElementById('channels-list');
        channelsList.classList.add('hidden');
    }

    function showVideoContainer() {
        const videoContainer = document.getElementById('videoContainer');
        if (videoContainer) {
            videoContainer.classList.remove('hidden');
        }
    }

    function hideVideoContainer() {
        const videoContainer = document.getElementById('videoContainer');
        if (videoContainer) {
            videoContainer.classList.add('hidden');
        }
    }

    function clearSelectedChannel() {
        if (selectedChannel) {
            selectedChannel.classList.remove('selected');
            selectedChannel = null;
        } else {
            // Search for the selected channel in the channels list
            const channelItems = document.querySelectorAll('.country-item');
            channelItems.forEach(item => {
                item.classList.remove('selected');
            });
        }
    }

    // Analytics Tracking Functions
    function trackChannelSelection(channel, countryName) {
        gtag('event', 'select_content', {
            content_type: 'channel',
            content_id: channel.title,
            event_category: 'channel_selection',
            event_label: `${countryName} - ${channel.title}`,
            custom_parameters: {
                country: countryName,
                channel_name: channel.title
            }
        });
    }

    function trackVideoError(channel, error) {
        gtag('event', 'exception', {
            description: error.message || 'Unknown video error',
            fatal: false,
            event_category: 'video_error',
            event_label: `${channel.title} - ${error.code || 'UNKNOWN_ERROR'}`,
            custom_parameters: {
                channel_name: channel.title,
                error_code: error.code || 'UNKNOWN',
                error_message: error.message || 'Unknown error'
            }
        });
    }

    function trackCountrySelection(countryCode, countryName) {
        gtag('event', 'select_content', {
            content_type: 'country',
            content_id: countryCode,
            event_category: 'country_selection',
            event_label: `${countryName} (${countryCode})`,
            custom_parameters: {
                country_code: countryCode,
                country_name: countryName
            }
        });
    }

    function trackSearch(searchTerm, resultsCount) {
        gtag('event', 'search', {
            search_term: searchTerm,
            event_category: 'channel_search',
            event_label: `"${searchTerm}" - ${resultsCount} results`,
            custom_parameters: {
                search_query: searchTerm,
                results_count: resultsCount
            }
        });
    }

    function trackUIInteraction(action, element, details = {}) {
        gtag('event', action, {
            event_category: 'ui_interaction',
            event_label: element,
            custom_parameters: {
                element_type: element,
                ...details
            }
        });
    }

    function trackVideoStop(reason, channelTitle = '') {
        gtag('event', 'video_stop', {
            event_category: 'video',
            event_label: `${reason} - ${channelTitle}`,
            custom_parameters: {
                stop_reason: reason,
                channel_name: channelTitle
            }
        });
    }

    // Video Player Functions
    function initializeVideoPlayer(channel) {
        let player;
        if (window.VIDEOJS) {
            player = window.VIDEOJS;
            player.error(null);
            player.src({ type: 'application/x-mpegURL', src: channel.url });
        } else {
            player = videojs('videoPlayer', {
                autoplay: true,
                controls: true,
                sources: [{
                    src: channel.url,
                    type: 'application/x-mpegURL'
                }],
                width: document.querySelector('#videoContainer').clientWidth,
                height: document.querySelector('#videoContainer').clientHeight
            });
            window.VIDEOJS = player;

            window.addEventListener('resize', () => {
                player.width(document.querySelector('#videoContainer').clientWidth);
                player.height(document.querySelector('#videoContainer').clientHeight);
            });

            // // Player on play
            // player.on('play', () => {
            //     setTimeout(() => {
            //         const actionsGroup = document.querySelector('.actions-group');
            //         actionsGroup.classList.remove('show');
            //     }, 1000);
            // });
        }
        return player;
    }

    function setupVideoPlayerEvents(player, channel) {
        player.on('error', function () {
            const error = player.error();
            console.error('Video.js error:', error);
            trackVideoError(channel, error);
            hideLoadingIndicator();
            showVideoError(channel, error);
        });

        player.on('loadstart', function () {
            clearStreamTimeout();
            window.streamTimeout = setTimeout(() => {
                if (player.readyState() === 0) {
                    const timeoutError = {
                        code: 'TIMEOUT',
                        message: 'Stream failed to load within 30 seconds'
                    };
                    trackVideoError(channel, timeoutError);
                    hideLoadingIndicator();
                    showVideoError(channel, timeoutError);
                }
            }, 30000);
        });

        player.on('loadeddata', function () {
            hideLoadingIndicator();
            clearStreamTimeout();
        });

        player.on('canplay', function () {
            hideLoadingIndicator();
        });

        player.on('playing', function () {
            console.log('Video started playing');
            hideLoadingIndicator();

            console.log(channel);
            
            // Track video play event with gtag
            gtag('event', 'play', {
                event_category: 'video',
                event_label: channel.title,
                custom_parameters: {
                    country: channel.country,
                    channel_name: channel.title
                }
            });
        });
    }

    function playChannel(channel, countryName) {
        const videoContainer = document.getElementById('videoContainer');
        if (!videoContainer) {
            return;
        }
        
        document.getElementById('loading').classList.add('hidden');

        showVideoContainer();

        // Remove any existing error messages or no-stream messages
        const existingError = videoContainer.querySelector('.error-message');
        if (existingError) {
            existingError.remove();
        }

        const existingMessage = videoContainer.querySelector('.no-stream-message');
        if (existingMessage) {
            existingMessage.remove();
        }

        // Check if this is a YouTube embed
        if (channel.url && channel.url.includes('youtube') && channel.url.includes('embed')) {
            console.log('YouTube embed detected');
            // Hide the video player and show iframe for YouTube
            const videoPlayer = document.getElementById('videoPlayer');
            if (videoPlayer) {
                videoPlayer.style.display = 'none';
            }

            // Remove any existing iframe
            const existingIframe = videoContainer.querySelector('iframe');
            if (existingIframe) {
                existingIframe.remove();
            }

            // Create fullscreen iframe for YouTube
            const iframe = document.createElement('iframe');
            iframe.src = channel.url + (channel.url.includes('?') ? '&' : '?') + 'autoplay=1';
            iframe.className = 'absolute inset-0 w-full h-full';
            iframe.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share';
            iframe.allowFullscreen = true;
            iframe.frameBorder = '0';
            iframe.title = channel.title || 'Video Player';
            iframe.loading = 'lazy';
            iframe.sandbox = 'allow-same-origin allow-scripts allow-forms allow-presentation';
            
            videoContainer.appendChild(iframe);

            // Track YouTube play event
            gtag('event', 'play', {
                event_category: 'video',
                event_label: channel.title,
                custom_parameters: {
                    country: channel.country,
                    channel_name: channel.title,
                    stream_type: 'youtube_embed'
                }
            });
        } else {
            // Remove any existing iframe
            const existingIframe = videoContainer.querySelector('iframe');
            if (existingIframe) {
                existingIframe.remove();
            }

            // Show the video player for regular streams
            const videoPlayer = document.getElementById('videoPlayer');
            if (videoPlayer) {
                videoPlayer.style.display = 'block';
            }

            const player = initializeVideoPlayer(channel);
            setupVideoPlayerEvents(player, channel);

            player.play().catch(e => {
                console.error('Error playing video:', e);
                
                if (e.message.indexOf("interact with the document first") !== -1) {
                    return;
                }

                const playbackError = {
                    code: 'PLAYBACK_ERROR',
                    message: e.message || 'Failed to start playback'
                };
                trackVideoError(channel, playbackError);
                hideLoadingIndicator();
                showVideoError(channel, playbackError);
            });
        }
    }

    function showVideoError(channel, error) {
        const videoContainer = document.getElementById('videoContainer');

        const existingError = videoContainer.querySelector('.error-message');
        if (existingError) {
            existingError.remove();
        }

        const errorDiv = document.createElement('div');
        errorDiv.className = 'error-message absolute inset-0 bg-black bg-opacity-80 flex flex-col items-center justify-center text-white z-50';

        errorDiv.innerHTML = `
            <div class="text-center p-8 max-w-md">
                <svg class="w-16 h-16 mx-auto mb-4 text-red-500" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"></path>
                </svg>
                <h3 class="text-xl font-bold mb-2">Stream Error</h3>
                <p class="text-gray-300 mb-2">Unable to load "${channel.title}"</p>
                <p class="text-sm text-gray-400 mb-6">${error.message || 'The stream may be offline or unavailable'}</p>
                <div class="space-y-2">
                    <button id="retry-stream" class="bg-blue-600 hover:bg-blue-700 text-white px-6 py-2 rounded-md transition-colors">
                        Retry Stream
                    </button>
                    <button id="close-error" class="bg-gray-600 hover:bg-gray-700 text-white px-6 py-2 rounded-md transition-colors ml-2">
                        Close
                    </button>
                </div>
            </div>
        `;

        videoContainer.appendChild(errorDiv);

        errorDiv.querySelector('#retry-stream').addEventListener('click', () => {
            errorDiv.remove();
            setTimeout(() => playChannel(channel), 1000);
        });

        errorDiv.querySelector('#close-error').addEventListener('click', () => {
            trackVideoStop('error_close', channel.title);
            hideVideoContainer();
            errorDiv.remove();
            clearSelectedChannel();
            // navigateToCountry(COUNTRY);
        });
    }

    function showNoStreamMessage() {
        showVideoContainer();

        const videoContainer = document.getElementById('videoContainer');

        // Hide the video player if it exists
        const videoPlayer = document.getElementById('videoPlayer');
        if (videoPlayer) {
            videoPlayer.style.display = 'none';
        }

        // Stop and clear any existing video player
        if (window.VIDEOJS) {
            window.VIDEOJS.pause();
            window.VIDEOJS.error(null);
        }

        // Remove any existing error messages
        const existingError = videoContainer.querySelector('.error-message');
        if (existingError) {
            existingError.remove();
        }

        const existingMessage = videoContainer.querySelector('.no-stream-message');
        if (existingMessage) {
            existingMessage.remove();
        }

        const messageDiv = document.createElement('div');
        messageDiv.className = 'no-stream-message absolute inset-0 flex items-center justify-center z-50';

        messageDiv.innerHTML = `
            <div class="w-full h-full flex items-center justify-center">
                <img src="/images/temp-message.png?v2" alt="No live streams are running right now" class="max-w-full max-h-full object-contain" />
            </div>
        `;

        videoContainer.appendChild(messageDiv);

        // Hide loading indicator if it's showing
        hideLoadingIndicator();
    }

    function closeVideo() {
        // Track video close
        const currentChannelTitle = selectedChannel ? 
            selectedChannel.textContent.replace(/^./, '').trim() : // Remove flag emoji
            CHANNEL || 'Unknown';
        trackVideoStop('user_close', currentChannelTitle);

        hideVideoContainer();
        hideLoadingIndicator();
        clearStreamTimeout();
        clearSelectedChannel();

        if (window.VIDEOJS) {
            window.VIDEOJS.pause();
            window.VIDEOJS.error(null);
        }

        // navigateToCountry(COUNTRY);
    }

    // Channel Management Functions
    function createChannelElement(channel, countryCode, countryName, selectedChannelId) {
        const div = document.createElement('div');
        div.className = 'country-item';

        const flagSpan = document.createElement('span');
        flagSpan.className = 'country-flag';
        flagSpan.textContent = getFlagEmoji(countryCode);

        const nameSpan = document.createElement('span');
        nameSpan.textContent = channel.title;

        div.appendChild(flagSpan);
        div.appendChild(nameSpan);

        if (selectedChannelId && selectedChannelId == channel.id) {
            div.classList.add('selected');
            selectedChannel = div;
            playChannel(channel, countryName);
            // Scroll to the selected channel item
            setTimeout(() => {
                div.scrollIntoView({
                    behavior: 'instant',
                    block: 'center'
                });
            }, 100);
        }

        div.onclick = () => {
            clearSelectedChannel();
            selectedChannel = div;
            selectedChannel.classList.add('selected');
            trackChannelSelection(channel, countryName);
            playChannel(channel, countryName);
            navigateToChannel(COUNTRY, channel.title);
        };

        return div;
    }

    function populateChannelsList(countryCode, countryName, channels) {
        const channelsList = document.getElementById('channels-list');
        channelsList.innerHTML = '';

        const urlParams = new URLSearchParams(window.location.search);
        const selectedChannelId = urlParams.get('channel');

        const countryChannels = channels.filter(channel =>
            channel.country.toUpperCase() === countryCode.toUpperCase()
        );

        countryChannels.forEach(channel => {
            const channelElement = createChannelElement(channel, countryCode, countryName, selectedChannelId);
            channelsList.appendChild(channelElement);
        });
    }

    function showCountryChannels(countryCode, countryName) {
        showBackButton();
        showCountryHeader(countryName, countryCode);
        hideCountriesList();
        showChannelsList();
        hideCountrySelector();

        const { channels } = FEEDS;
        populateChannelsList(countryCode, countryName, channels);
    }

    function showCountriesView() {
        // Check #schedule is showing
        const schedule = document.querySelector('#schedule');
        if (schedule && !schedule.classList.contains('hidden')) {
            toggleSchedule();
        } else {
            navigateToHome();
        }

        // hideBackButton();
        // hideCountryHeader();
        // showCountrySelector();
        // showCountriesList();
        // hideChannelsList();
        // navigateToHome();
    }

    // Globe Functions
    function stopAutoRotateTemporarily() {
        // Implementation for stopping auto-rotate if needed
    }

    function setupGlobeEvents(world) {
        world.onPolygonHover(hoverD => {
            stopAutoRotateTemporarily();
            world
                .polygonAltitude(d => d === hoverD ? 0.06 : 0.03)
                .polygonCapColor(d => d === hoverD ? 'steelblue' : getColorFromString(d.properties.ADMIN));
        });

        world.onPolygonClick(d => {
            stopAutoRotateTemporarily();
            // Save current orientation when user clicks on a country
            saveGlobeOrientation();

            const countryCode = d.properties.ISO_A2;
            const countryName = COUNTRY_MAP[countryCode] || countryName;
            trackCountrySelection(countryCode, countryName);
            // showCountryChannels(countryCode, countryName);
            // navigateToCountry(createUrlSlug(countryName));

            // Show loading indicator over globe
            const loadingIndicator = document.getElementById('loading');
            if (loadingIndicator) {
                loadingIndicator.classList.remove('hidden');
            }

            // Navigate to country page
            navigateToCountry(createUrlSlug(countryName));
        });
    }

    function createGlobe(countries) {
        const filteredCountries = countries.features.filter(d =>
            d.properties.ISO_A2 !== 'AQ'
        );

        world = new Globe(document.getElementById('globeViz'))
            .lineHoverPrecision(0)
            .polygonsData(filteredCountries)
            .polygonAltitude(0.01)
            .polygonCapColor(feat => getColorFromString(feat.properties.ADMIN))
            .polygonSideColor(() => 'rgba(0, 100, 0, 0.15)')
            .polygonStrokeColor(() => '#111')
            .polygonLabel((data) => {
                const d = data.properties;
                let iso_a2 = d.ISO_A2;

                if (isFinite(iso_a2)) {
                    iso_a2 = d.FIPS_10_;
                }
                const channelCount = CHANNEL_COUNTS[iso_a2] || 0;
                return `
                    <b>${d.ADMIN} (${iso_a2}):</b> <br />
                    Channels: <i>${channelCount}</i>
                `;
            })
            .polygonsTransitionDuration(300)
            .width(document.querySelector('.main-content').clientWidth)
            .height(document.querySelector('.main-content').clientHeight)
            .onGlobeReady(() => {
                // Set up orientation tracking and restore saved orientation
                setupGlobeOrientationTracking();
            });

        setupGlobeEvents(world);

        window.addEventListener('resize', () => {
            world
                .width(document.querySelector('.main-content').clientWidth)
                .height(document.querySelector('.main-content').clientHeight);
        });

        document.getElementById('loading').classList.add('hidden');
    }

    // Event Listeners Setup
    function setupEventListeners() {
        document.getElementById('back-button').addEventListener('click', showCountriesView);

        // Save globe orientation when user navigates away or closes tab
        window.addEventListener('beforeunload', saveGlobeOrientation);
        window.addEventListener('pagehide', saveGlobeOrientation);

        // SEO Overlay functionality
        const seoToggleBtn = document.getElementById('seo-toggle-btn');
        const seoOverlay = document.getElementById('seo-overlay');
        const seoCloseBtn = document.getElementById('seo-close-btn');
        const seoCloseBtnAlt = document.getElementById('seo-close-btn-alt');

        function closeSeoOverlay() {
            seoOverlay.classList.add('hidden');
            document.body.style.overflow = '';
        }

        if (seoToggleBtn && seoOverlay && seoCloseBtn) {
            seoToggleBtn.addEventListener('click', function () {
                seoOverlay.classList.remove('hidden');
                document.body.style.overflow = 'hidden';
            });

            seoCloseBtn.addEventListener('click', closeSeoOverlay);

            if (seoCloseBtnAlt) {
                seoCloseBtnAlt.addEventListener('click', closeSeoOverlay);
            }

            // Close overlay when clicking outside content
            seoOverlay.addEventListener('click', function (e) {
                if (e.target === seoOverlay) {
                    closeSeoOverlay();
                }
            });

            // Close overlay with Escape key
            document.addEventListener('keydown', function (e) {
                if (e.key === 'Escape' && !seoOverlay.classList.contains('hidden')) {
                    closeSeoOverlay();
                }
            });
        }
    }

    // Auto-play Functions
    function autoPlaySelectedChannel() {
        if (COUNTRY && CHANNEL) {
            if (STREAM && STREAM.trim() !== '') {
                console.log('autoPlaySelectedChannel', STREAM, CHANNEL, COUNTRY_NAME);
                playChannel({
                    url: STREAM,
                    title: CHANNEL,
                    country: COUNTRY_NAME
                }, COUNTRY_NAME);

                // Scroll to the selected channel after a short delay
                setTimeout(() => {
                    const selectedChannelElement = document.querySelector('.country-item.selected');
                    if (selectedChannelElement) {
                        selectedChannelElement.scrollIntoView({
                            behavior: 'instant',
                            block: 'center'
                        });
                    }
                }, 500);
            } else if (COUNTRY !== 'all' && COUNTRY !== 'random' && COUNTRY !== 'category') {
                // Show no stream message when STREAM is empty
                showNoStreamMessage();
            }
        }
    }

    // Main Initialization
    function initializeApp() {
        if (COUNTRY === 'all' || COUNTRY === 'random' || COUNTRY === 'category') {
            // Wait for globe dependencies before loading
            waitForGlobeDependencies(() => {
                fetch('/storage/mockup.geojson')
                    .then(response => response.json())
                    .then(data => {
                        createGlobe(data);
                    });
            });
        }
        setupEventListeners();
        autoPlaySelectedChannel();
        setupSearchFunctionality();
        handleScheduleClick();

        // setTimeout(() => {
        //     const actionsGroup = document.querySelector('.actions-group');
        //     if (actionsGroup) {
        //         actionsGroup.classList.remove('show');
        //     }
        // }, 10000);

        // LCP monitoring from web.dev article
        setupLCPMonitoring();
    }

    // LCP Monitoring Function
    function setupLCPMonitoring() {
        if ('PerformanceObserver' in window) {
            new PerformanceObserver((list) => {
                const latestEntry = list.getEntries().at(-1);

                if (latestEntry?.element?.getAttribute('loading') == 'lazy') {
                    console.warn('🚨 Performance Warning: LCP element was lazy loaded', latestEntry);
                    console.log('LCP Element:', latestEntry.element);
                    console.log('Consider removing lazy loading from above-the-fold elements');
                }
            }).observe({ type: 'largest-contentful-paint', buffered: true });
        }
    }

    // Search Functions
    function setupSearchFunctionality() {
        const searchInput = document.getElementById('search-input');
        if (!searchInput) return;

        searchInput.addEventListener('input', function (e) {
            const searchTerm = e.target.value.toLowerCase().trim();

            if (searchTerm === '') {
                // Show all channels when search is empty
                showAllChannels();
                return;
            }

            const channelItems = document.querySelectorAll('.country-item');
            let resultsCount = 0;
            
            channelItems.forEach(item => {
                const title = item.textContent.toLowerCase();
                const matchesTitle = title.includes(searchTerm);

                if (matchesTitle) {
                    item.classList.remove('hidden');
                    resultsCount++;
                } else {
                    item.classList.add('hidden');
                }
            });

            // Track search with results count
            if (searchTerm.length >= 2) { // Only track searches with 2+ characters
                trackSearch(searchTerm, resultsCount);
            }
        });

        // Clear search on escape key
        searchInput.addEventListener('keydown', function (e) {
            if (e.key === 'Escape') {
                e.target.value = '';
                showAllChannels();
            }
        });
    }

    function showAllChannels() {
        const channelsList = document.getElementById('channels-list');
        const channelItems = channelsList.querySelectorAll('.country-item');
        channelItems.forEach(item => {
            item.classList.remove('hidden');
        });
    }

    function toggleSchedule() {
        const schedule = document.getElementById('schedule');
        const isHidden = schedule.classList.contains('hidden');
        schedule.classList.toggle('hidden');

        // Track schedule toggle
        trackUIInteraction('toggle', 'schedule', {
            action: isHidden ? 'open' : 'close'
        });

        if (!schedule.classList.contains('hidden')) {
            scrollToCurrentTime();
        }
    }

    function handleScheduleClick() {
        const scheduleButton = document.getElementById('schedule-button');
        scheduleButton.addEventListener('click', toggleSchedule);
    }

    // Function to scroll to current time
    function scrollToCurrentTime() {
        // Get current time in the specified timezone
        const now = new Date();
        const timestamp = now.getTime() / 1000;
        const tick = (timestamp - (timestamp % 1800)) - 1800;
        const time_header = document.querySelector('.time-header[data-time="' + tick + '"]');
        if (time_header) {
            console.log('scrollToCurrentTime', time_header, tick);
            time_header.scrollIntoView({
                behavior: 'instant',
                block: 'nearest',
                inline: 'start'
            });
        }
    }

    function toggleRightSidebar() {
        const rightSidebar = document.querySelector('.right-sidebar');
        if (rightSidebar) {
            // if (!rightSidebar.classList.contains('show')) {
            //     rightSidebar.classList.add('show');
            // }
            console.log('toggleRightSidebar', rightSidebar.classList);

            rightSidebar.classList.toggle('inactive');

            // Left sidebar
            const leftSidebar = document.querySelector('#left-sidebar');
            if (leftSidebar && leftSidebar.classList.contains('translate-x-0')) {
                leftSidebar.classList.remove('translate-x-0');
                leftSidebar.classList.add('-translate-x-full');
            }
        }
    }

</script>
</html>
