<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Shark Proxies</title>
    <link rel="icon" type="image/png" href="https://static-00.iconduck.com/assets.00/shark-icon-200x256-xwcecf83.png">
    <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@700&display=swap" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.19/tailwind.min.css" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" />
    <meta property="og:title" content="DNSShark">
    <meta name="theme-color" content="#0d0d0d">
    <meta property="og:description" content="Shark Proxies">
    <style>
        html, body {
  overflow-x: hidden !important;
}
        .p-8 {
    padding: 0 !important;
}
        ::selection {
            background-color: #B60086 !important;
            color: #000000 !important;
        }
        * {
            font-family: 'Poppins', sans-serif;
            font-weight: 700;
        }
        :root {
            color-scheme: dark !important;
        }
        
        body * {
            -webkit-user-select: none !important;
            -moz-user-select: none !important;
            -ms-user-select: none !important;
            user-select: none !important;
        }

        .proxy-url {
            -webkit-user-select: text !important;
            -moz-user-select: text !important;
            -ms-user-select: text !important;
            user-select: text !important;
            cursor: text;
            position: relative;
            z-index: 1;
        }

        body {
            background-color: #0a0a0a;
            color: #ffffff;
            background-image: 
                radial-gradient(circle at 10% 20%, rgba(74, 26, 140, 0.2) 0%, transparent 50%),
                radial-gradient(circle at 90% 80%, rgba(74, 26, 140, 0.2) 0%, transparent 50%);
        }

        .proxy-card {
            background-color: #1a1a1a;
            border-radius: 24px;
            padding: 20px;
            margin: 10px;
            transition: all 0.3s ease;
            position: relative;
            overflow: hidden;
        }

        .random-proxy-card {
            background: linear-gradient(135deg, #4a1a8c 0%, #2d1a4a 100%);
            border: 2px solid #6b2bc2;
            box-shadow: 0 0 20px rgba(74, 26, 140, 0.4);
        }

        .random-proxy-card:hover {
            box-shadow: 0 0 25px rgba(74, 26, 140, 0.6);
        }

        .random-count-input {
            background: rgba(255, 255, 255, 0.1);
            border: 1px solid rgba(255, 255, 255, 0.2);
            border-radius: 12px;
            color: white;
            padding: 8px 12px;
            width: 80px;
            text-align: center;
            margin-right: 10px;
            transition: all 0.3s ease;
        }

        .random-count-input:focus {
            outline: none;
            border-color: #6b2bc2;
            box-shadow: 0 0 10px rgba(107, 43, 194, 0.3);
        }

        .proxy-card.pinned {
            border: 2px solid #4a1a8c;
            box-shadow: 0 0 15px rgba(74, 26, 140, 0.3);
        }

        .pin-indicator {
            position: absolute;
            top: 10px;
            left: 10px;
            color: #4a1a8c;
            font-size: 1.2em;
        }

        .menu-icon {
            position: absolute;
            top: 10px;
            right: 10px;
            color: #ccc;
            font-size: 1.2em;
            cursor: pointer;
            transition: all 0.3s ease;
            width: 30px;
            height: 30px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            z-index: 2;
        }

        .menu-icon:hover {
            color: #ffffff;
            background-color: rgba(255, 255, 255, 0.1);
        }

        .menu-icon.active {
            transform: rotate(90deg);
        }

        .dropdown-menu {
            position: absolute;
            top: 45px;
            right: 10px;
            background-color: #2a2a2a;
            border-radius: 16px;
            padding: 0;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
            visibility: hidden;
            opacity: 0;
            transform: translateY(-10px) scale(0.95);
            transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
            z-index: 10;
            backdrop-filter: blur(10px);
        }

        .dropdown-menu.show {
            visibility: visible;
            opacity: 1;
            transform: translateY(0) scale(1);
        }

        .dropdown-menu button {
            display: flex;
            align-items: center;
            gap: 8px;
            background: none;
            color: #fff;
            border: none;
            padding: 10px 16px;
            cursor: pointer;
            font-size: 0.9em;
            transition: all 0.2s ease;
            width: 100%;
            border-radius: 16px;
            opacity: 0.8;
        }

        .dropdown-menu button:hover {
            background-color: #4a1a8c;
            opacity: 1;
        }

        .dropdown-menu button i {
            font-size: 1.1em;
            opacity: 0.8;
            transition: all 0.2s ease;
        }

        .dropdown-menu button:hover i {
            opacity: 1;
            transform: scale(1.1);
        }

        .dropdown-menu button:disabled {
            opacity: 0.5;
            cursor: not-allowed;
            background-color: transparent;
        }

        .proxy-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(45deg, transparent, rgba(74, 26, 140, 0.1), transparent);
            transform: translateX(-100%);
            transition: 0.5s;
        }

        .proxy-card:hover::before {
            transform: translateX(100%);
        }

        .proxy-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 15px rgba(74, 26, 140, 0.3);
        }

        .tab-button {
            background-color: #1a1a1a;
            color: #ffffff;
            padding: 12px 24px;
            border-radius: 16px;
            margin: 4px;
            transition: all 0.3s ease;
            position: relative;
            overflow: hidden;
        }

        .tab-button::after {
            content: '';
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: linear-gradient(45deg, transparent, rgba(255,255,255,0.1), transparent);
            transform: rotate(45deg);
            transition: 0.5s;
            opacity: 0;
        }

        .tab-button:hover::after {
            opacity: 1;
            left: 100%;
        }

        .tab-button:hover {
            background-color: #2d1a4a;
            transform: translateY(-2px);
        }

        .tab-button.active {
            background-color: #4a1a8c;
            box-shadow: 0 0 15px rgba(74, 26, 140, 0.5);
        }

        .loading-container {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            min-height: 200px;
            opacity: 0;
            transition: opacity 0.05s ease-in-out;
        }

        .open-button {
            background-color: #4a1a8c;
            color: white;
            padding: 8px 16px;
            border-radius: 24px;
            border: none;
            cursor: pointer;
            transition: all 0.3s ease;
            width: 100%;
        }

        .open-button:hover {
            background-color: #5c2ba6;
            transform: translateY(-2px);
        }

        .random-proxy-container {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            margin-top: 10px;
        }

        .loader {
            border: 8px solid transparent;
            border-top-color: #5d00db;
            border-radius: 50%;
            width: 60px;
            height: 60px;
            animation: spin 0.35s linear infinite;
            margin-bottom: 20px;
        }

        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        .advanced-mode-container {
            top:20px;
            left:20px;
            display:flex;
            align-items:center;
            gap:10px;
            padding:10px;
        }
        .advanced-mode-container span {
            font-family: 'Poppins', sans-serif;
            color: white;
        }

        .advanced-mode-container {
            position: relative;
        }

        .advanced-mode-container label {
            cursor: pointer;
            display: inline-block;
            position: relative;
        }

        .slider {
            position: absolute;
            cursor: pointer;
            top: 0; 
            left: 0;
            right: 0;
            bottom: 0;
            background: linear-gradient(135deg, #333, #111);
            transition: .4s;
            border-radius: 34px;
            box-shadow: inset 0 0 8px rgba(0,0,0,0.5);
        }

        .slider:before {
            position: absolute;
            content: "";
            height: 23px;
            width: 23px;
            left: 2px;
            bottom: 2px;
            background: linear-gradient(135deg, #4a1a8c, #2d1a4a);
            transition: .4s;
            border-radius: 50%;
            box-shadow: 0 0 8px rgba(74,26,140,0.5);
        }

        .advanced-mode-container label:hover .slider {
            background: linear-gradient(135deg, #222, #000);
        }

        input:checked + .slider {
            background: linear-gradient(135deg, #4a1a8c, #2d1a4a);
            box-shadow: inset 0 0 10px rgba(74,26,140,0.5);
        }

        input:checked + .slider:before {
            transform: translateX(24px);
            background: linear-gradient(135deg, #5c2ba6, #4a1a8c);
        }

        input {
            display:none;
        }

        .advanced-tooltip {
            position: absolute;
            top: calc(100% + 12px);
            left: 0;
            background: #000000;
            color: #ffffff;
            font-family: 'Poppins', sans-serif;
            font-size: 0.9em;
            padding: 8px 12px;
            border-radius: 8px;
            opacity: 0;
            transform: translateY(-10px);
            pointer-events: none;
            transition: opacity 0.3s ease, transform 0.3s ease;
            max-width: 200px;
            line-height: 1.4em;
            z-index: 999;
        }

        .advanced-tooltip::before {
            content: "";
            position: absolute;
            top: -6px;
            left: 20px;
            border-width: 6px;
            border-style: solid;
            border-color: transparent transparent #000000 transparent;
        }

        .advanced-mode-container label:hover ~ .advanced-tooltip,
        .advanced-mode-container span:hover ~ .advanced-tooltip {
            opacity: 1;
            transform: translateY(0);
        }
    </style>
</head>
<body class="min-h-screen p-8">
    <div class="advanced-mode-container">
        <label class="relative inline-block w-14 h-7">
            <input type="checkbox" id="advancedModeToggle">
            <span class="slider"></span>
        </label>
        <span>Games</span>
<div class="advanced-tooltip">
    Access unblocked gaming links instead of web proxies
</div>
    </div>

    <div class="max-w-6xl mx-auto">
        <h1 id="headerTitle" class="text-4xl mb-8 text-center">Shark Proxies</h1>
        <div class="flex flex-wrap justify-center mb-8" id="tabContainer"></div>
        <div id="loadingContainer" class="loading-container">
            <span class="loader"></span>
            <p class="text-center text-gray-400"></p>
        </div>
        <div style="text-align: center; display: flex; justify-content: center; align-items: center; height: 100px;">
        </div>
        <div id="proxyContent" class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4" style="display: none;"></div>
    </div>

    <script>
        let proxyGroups = {};
        let currentTab = '';
        let isLoading = true;
        let activeDropdown = null;
        let selectionTimeout = null;
        let originalProxyOrder = {};
        let proxyQueue = {};
        let advancedMode = false;

        if (localStorage.getItem('advancedMode') !== null) {
            advancedMode = localStorage.getItem('advancedMode') === 'true';
        } else {
            advancedMode = false;
        }

        const advancedModeToggle = document.getElementById('advancedModeToggle');
        advancedModeToggle.checked = advancedMode;

        const blockedTabs = ['3kh0 v5', 'Latteweb', 'Turbo-X', 'Bowldog', 'Frogie', 'Brunys', 'PXLNova', 'Zeelix', 'Ultraviolet TN', 'Szvy central', 'Now.GG', 'TN', 'Art Class', 'Cloudburst', 'Mexis', 'Aluminum', 'Ruby', 'Sunny', 'DuckHTML', 'Pizza', 'UBG US', 'Geometry', 'GlacierOS', 'Ultraviolet TIW', 'Ultraviolet Brunys'];

        function updateHeaderAndPinText() {
            // Change header based on advanced mode
            document.getElementById('headerTitle').textContent = advancedMode ? 'Shark Gaming' : 'Shark Proxies';

            // Update pin/unpin text dynamically if dropdowns are open later
            // This will be handled whenever cards are created.
        }

        advancedModeToggle.addEventListener('change', () => {
            advancedMode = advancedModeToggle.checked;
            localStorage.setItem('advancedMode', advancedMode);
            updateHeaderAndPinText();
            createTabs();
            switchTab(currentTab);
        });

        updateHeaderAndPinText();

        function shuffle(array) {
            for (let i = array.length - 1; i > 0; i--) {
                const j = Math.floor(Math.random() * (i + 1));
                [array[i], array[j]] = [array[j], array[i]];
            }
            return array;
        }

        function getPinnedProxies() {
            const pinnedProxies = localStorage.getItem('pinnedProxies');
            return pinnedProxies ? JSON.parse(pinnedProxies) : {};
        }

        function pinProxy(url, category, card) {
            const pinnedProxies = getPinnedProxies();
            if (!pinnedProxies[category]) {
                pinnedProxies[category] = [];
            }
            if (!pinnedProxies[category].includes(url)) {
                pinnedProxies[category].push(url);
                localStorage.setItem('pinnedProxies', JSON.stringify(pinnedProxies));
                
                setTimeout(() => {
                    card.classList.add('pinned');
                    const pinIndicator = document.createElement('i');
                    pinIndicator.className = 'fas fa-thumbtack pin-indicator';
                    card.insertBefore(pinIndicator, card.firstChild);
                    
                    const dropdownButton = card.querySelector('.dropdown-menu button');
                    dropdownButton.innerHTML = advancedMode ? '<i class="fas fa-thumbtack fa-rotate-90"></i> Unpin Game' : '<i class="fas fa-thumbtack fa-rotate-90"></i> Unpin proxy';
                    
                    reorderCards();
                }, 300);
            }
        }

        function unpinProxy(url, category, card) {
            const pinnedProxies = getPinnedProxies();
            if (pinnedProxies[category]) {
                pinnedProxies[category] = pinnedProxies[category].filter(proxy => proxy !== url);
                localStorage.setItem('pinnedProxies', JSON.stringify(pinnedProxies));
                
                setTimeout(() => {
                    card.classList.remove('pinned');
                    const pinIndicator = card.querySelector('.pin-indicator');
                    if (pinIndicator) {
                        pinIndicator.remove();
                    }
                    
                    const dropdownButton = card.querySelector('.dropdown-menu button');
                    dropdownButton.innerHTML = advancedMode ? '<i class="fas fa-thumbtack"></i> Pin Game' : '<i class="fas fa-thumbtack"></i> Pin proxy';
                    
                    returnCardToOriginalPosition(url, category);
                }, 300);
            }
        }

        function returnCardToOriginalPosition(url, category) {
            const content = document.getElementById('proxyContent');
            const cards = Array.from(content.children);
            const randomCard = cards[0];
            const cardToMove = cards.find(card => 
                card.querySelector('.proxy-url').textContent === url
            );
            
            if (!cardToMove) return;

            const originalIndex = originalProxyOrder[category].indexOf(url);
            if (originalIndex === -1) return;

            const targetIndex = originalIndex + 1;

            content.removeChild(cardToMove);
            
            if (targetIndex >= content.children.length) {
                content.appendChild(cardToMove);
            } else {
                content.insertBefore(cardToMove, content.children[targetIndex]);
            }
        }

        function reorderCards() {
            const content = document.getElementById('proxyContent');
            const randomCard = content.firstChild;
            const cards = Array.from(content.children).slice(1);
            
            cards.sort((a, b) => {
                const aIsPinned = a.classList.contains('pinned');
                const bIsPinned = b.classList.contains('pinned');
                if (aIsPinned === bIsPinned) {
                    const aUrl = a.querySelector('.proxy-url').textContent;
                    const bUrl = b.querySelector('.proxy-url').textContent;
                    return originalProxyOrder[currentTab].indexOf(aUrl) - 
                           originalProxyOrder[currentTab].indexOf(bUrl);
                }
                return bIsPinned - aIsPinned;
            });
            
            content.innerHTML = '';
            content.appendChild(randomCard);
            cards.forEach(card => content.appendChild(card));
        }

        function isProxyPinned(url, category) {
            const pinnedProxies = getPinnedProxies();
            return pinnedProxies[category] && pinnedProxies[category].includes(url);
        }

        function cleanupInvalidPins(category, validUrls) {
            const pinnedProxies = getPinnedProxies();
            if (pinnedProxies[category]) {
                pinnedProxies[category] = pinnedProxies[category].filter(url => validUrls.includes(url));
                localStorage.setItem('pinnedProxies', JSON.stringify(pinnedProxies));
            }
        }

        function showLoading() {
            isLoading = true;
            const loadingContainer = document.getElementById('loadingContainer');
            const proxyContent = document.getElementById('proxyContent');
            loadingContainer.style.display = 'flex';
            proxyContent.style.display = 'none';
            setTimeout(() => {
                loadingContainer.style.opacity = '1';
            }, 10);
        }

        function hideLoading() {
            isLoading = false;
            const loadingContainer = document.getElementById('loadingContainer');
            const proxyContent = document.getElementById('proxyContent');
            loadingContainer.style.opacity = '0';
            setTimeout(() => {
                loadingContainer.style.display = 'none';
                proxyContent.style.display = 'grid';
            }, 100);
        }

        function getRandomProxies(count, category) {
            if (!proxyQueue[category] || proxyQueue[category].length === 0) {
                proxyQueue[category] = shuffle([...proxyGroups[category]]);
            }

            const result = [];
            for (let i = 0; i < count; i++) {
                if (proxyQueue[category].length === 0) {
                    proxyQueue[category] = shuffle([...proxyGroups[category]]);
                }
                result.push(proxyQueue[category].shift());
            }
            return result;
        }

        function createRandomProxyCard(proxies) {
            const card = document.createElement('div');
            card.className = 'proxy-card random-proxy-card';

            const titleContainer = document.createElement('div');
            titleContainer.className = 'flex items-center justify-center mb-4';
            titleContainer.innerHTML = `
                <i class="fas fa-random mr-2 text-xl"></i>
                <span class="text-xl">Random Proxy</span>
            `;

            const randomContainer = document.createElement('div');
            randomContainer.className = 'random-proxy-container';

            const input = document.createElement('input');
            input.type = 'number';
            input.className = 'random-count-input';
            input.value = '1';
            input.min = '1';
            input.max = proxies.length;
            input.placeholder = `1-${proxies.length}`;

            const openRandomBtn = document.createElement('button');
            openRandomBtn.className = 'open-button flex-1';
            openRandomBtn.innerHTML = '<i class="fas fa-link mr-2"></i>Open';
            openRandomBtn.onclick = () => {
                const count = Math.min(Math.max(1, parseInt(input.value) || 1), proxyGroups[currentTab].length);
                const randomProxies = getRandomProxies(count, currentTab);
                randomProxies.forEach(proxy => openProxy(proxy));
            };

            randomContainer.appendChild(input);
            randomContainer.appendChild(openRandomBtn);

            card.appendChild(titleContainer);
            card.appendChild(randomContainer);

            return card;
        }

        async function loadProxies() {
            showLoading();
            try {
                const response = await fetch('https://public.smoresxo.shop/proxies');
                if (!response.ok) throw new Error('Failed to load from primary source');
                proxyGroups = await response.json();
            } catch (error) {
                try {
                    const fallbackResponse = await fetch('https://raw.githubusercontent.com/BasketballPro939/smorestuff/refs/heads/main/bull.json');
                    if (!fallbackResponse.ok) throw new Error('Failed to load fallback JSON');
                    proxyGroups = await fallbackResponse.json();
                    if (!proxyGroups || Object.keys(proxyGroups).length === 0) throw new Error('Fallback JSON did not define proxyGroups');
                } catch (scriptError) {
                    console.error('Error loading fallback JSON:', scriptError);
                    alert('Failed to load proxies. Please try again later.');
                    hideLoading();
                    return;
                }
            }

            currentTab = Object.keys(proxyGroups)[0];
            
            Object.keys(proxyGroups).forEach(category => {
                originalProxyOrder[category] = [...proxyGroups[category]];
            });
            
            createTabs();
            await switchTab(currentTab);
        }

        function createTabs() {
            const container = document.getElementById('tabContainer');
            container.innerHTML = '';

            const categories = Object.keys(proxyGroups);
            let categoriesToShow = [];

            // If advancedMode (gaming mode) is on, show ONLY blockedTabs
            // If off, show everything except blockedTabs
            if (advancedMode) {
                categoriesToShow = blockedTabs.filter(cat => categories.includes(cat));
            } else {
                categoriesToShow = categories.filter(cat => !blockedTabs.includes(cat));
            }

            if (!categoriesToShow.includes(currentTab) && categoriesToShow.length > 0) {
                currentTab = categoriesToShow[0];
            }

            categoriesToShow.forEach((group, index) => {
                const button = document.createElement('button');
                button.className = `tab-button ${group === currentTab ? 'active' : ''}`;
                button.textContent = group;
                button.onclick = () => switchTab(group);
                button.style.animationDelay = `${index * 0.1}s`;
                container.appendChild(button);
            });
        }
    function openPopup() {
    const popup = window.open('about:blank', '_blank', 'width=600,height=400');
    
    if (!popup || popup.closed || typeof popup.closed === 'undefined') {
        // Pop-up blocked
        alert("Please allow popups for this site. Doing so will allow us to open the proxies in a about:blank tab and preventing the proxies from showing up in your history.")
    } else {
        // Pop-up allowed
        popup.close();
    }
}

// Trigger the function
openPopup();
        function openProxy(url) {
            const formattedUrl = url.startsWith("http://") || url.startsWith("https://") ? url : `https://${url}`;
const win = window.open();
const doc = win.document;

// Set body and html styles to eliminate white bars
doc.body.style.margin = "0";
doc.body.style.padding = "0";
doc.body.style.overflow = "hidden";
doc.documentElement.style.margin = "0";
doc.documentElement.style.padding = "0";
doc.documentElement.style.height = "100%";
doc.documentElement.style.overflow = "hidden";

// Create the iframe
const iframe = doc.createElement('iframe');
iframe.style.width = "100vw";
iframe.style.height = "100vh";
iframe.style.border = "none";
iframe.src = formattedUrl;

// Append iframe to the document
doc.body.appendChild(iframe);

// Create the overlay frame
const overlay = doc.createElement('div');
overlay.style.position = "fixed";
overlay.style.top = "0";
overlay.style.left = "0";
overlay.style.width = "100vw";
overlay.style.height = "100vh";
overlay.style.backgroundColor = "rgba(0, 0, 0, 0.7)";
overlay.style.display = "flex";
overlay.style.flexDirection = "column";
overlay.style.alignItems = "center";
overlay.style.justifyContent = "center";
overlay.style.color = "white";
overlay.style.zIndex = "1000";

// Add the message
const message = doc.createElement('p');
message.style.margin = "0";
message.style.padding = "20px";
message.style.textAlign = "center";
message.style.fontSize = "16px";
message.style.lineHeight = "1.5";
message.textContent = "If the URL doesn't work, you could retry with less security inside of the cloaked page. (UNLESS it's blocked by cisco)";
overlay.appendChild(message);

// Add buttons
const buttonContainer = doc.createElement('div');
buttonContainer.style.display = "flex";
buttonContainer.style.flexDirection = "column";
buttonContainer.style.marginTop = "20px";

const homeButton = doc.createElement('button');
homeButton.textContent = "Go back to home";
homeButton.style.margin = "5px";
homeButton.onclick = () => win.close();

const hideButton = doc.createElement('button');
hideButton.textContent = "It works, hide this popup";
hideButton.style.margin = "5px";
hideButton.onclick = () => overlay.remove();

const retryButton = doc.createElement('button');
retryButton.textContent = "Doesn't work, Retry with less security (not recommended)";
retryButton.style.margin = "5px";
retryButton.onclick = () => {
  overlay.remove();
  win.location.href = formattedUrl; // Reopen without iframe
};

buttonContainer.appendChild(homeButton);
buttonContainer.appendChild(hideButton);
buttonContainer.appendChild(retryButton);
overlay.appendChild(buttonContainer);

// Append overlay to the document
doc.body.appendChild(overlay);


        }

        function handleSelection(e) {
            const selection = window.getSelection();
            if (!selection.toString()) return;

            clearTimeout(selectionTimeout);
            
            selectionTimeout = setTimeout(() => {
                const range = selection.getRangeAt(0);
                const selectedElement = range.commonAncestorContainer;
                const proxyUrl = selectedElement.closest('.proxy-url');

                if (!proxyUrl) {
                    selection.removeAllRanges();
                    return;
                }

                const proxyCard = proxyUrl.closest('.proxy-card');
                if (proxyCard) {
                    const cardRect = proxyCard.getBoundingClientRect();
                    const selectionRect = range.getBoundingClientRect();

                    if (selectionRect.top < cardRect.top || 
                        selectionRect.bottom > cardRect.bottom ||
                        selectionRect.left < cardRect.left || 
                        selectionRect.right > cardRect.right) {
                        selection.removeAllRanges();
                    }
                }
            }, 100);
        }
        function randomizeURL(originalURL) {
    const preservedPrefix = "https://";
    const urlBody = originalURL.slice(preservedPrefix.length); // Get everything after "https://"
    const randomBody = urlBody.replace(/./g, () => String.fromCharCode(33 + Math.floor(Math.random() * 94))); // Random ASCII printable characters
    return preservedPrefix + randomBody;
}

        function createProxyCard(url, index) {
            const card = document.createElement('div');
            card.className = 'proxy-card';
            if (isProxyPinned(url, currentTab)) {
                card.classList.add('pinned');
            }
            card.style.animationDelay = `${index * 0.1}s`;

            if (isProxyPinned(url, currentTab)) {
                const pinIndicator = document.createElement('i');
                pinIndicator.className = 'fas fa-thumbtack pin-indicator';
                card.appendChild(pinIndicator);
            }

            const urlText = document.createElement('p');
urlText.className = 'mb-4 proxy-url blurred';
urlText.textContent = randomizeURL(url);

// Add the blur effect via CSS
urlText.style.filter = 'blur(5px)'; // Adjust the blur radius as needed

            const ellipsisIcon = document.createElement('i');
            ellipsisIcon.className = 'fas fa-ellipsis-h menu-icon';
            ellipsisIcon.style.display = 'flex';
            ellipsisIcon.style.alignItems = 'center';
            ellipsisIcon.style.justifyContent = 'center';

            const dropdownMenu = document.createElement('div');
            dropdownMenu.className = 'dropdown-menu';

            const pinOption = document.createElement('button');
            pinOption.onclick = (e) => {
                e.stopPropagation();
                const isPinned = isProxyPinned(url, currentTab);
                if (isPinned) {
                    unpinProxy(url, currentTab, card);
                } else {
                    pinProxy(url, currentTab, card);
                }
                setTimeout(() => {
                    dropdownMenu.classList.remove('show');
                    ellipsisIcon.classList.remove('active');
                    activeDropdown = null;
                }, 300);
            };

            if (isProxyPinned(url, currentTab)) {
                pinOption.innerHTML = advancedMode ? '<i class="fas fa-thumbtack fa-rotate-90"></i> Unpin Game' : '<i class="fas fa-thumbtack fa-rotate-90"></i> Unpin proxy';
            } else {
                pinOption.innerHTML = advancedMode ? '<i class="fas fa-thumbtack"></i> Pin Game' : '<i class="fas fa-thumbtack"></i> Pin proxy';
            }
            
            dropdownMenu.appendChild(pinOption);
            card.appendChild(ellipsisIcon);
            card.appendChild(dropdownMenu);

            ellipsisIcon.onclick = (e) => {
                e.stopPropagation();
                const wasActive = ellipsisIcon.classList.contains('active');
                
                if (activeDropdown && activeDropdown !== dropdownMenu) {
                    activeDropdown.classList.remove('show');
                    activeDropdown.previousElementSibling.classList.remove('active');
                }

                ellipsisIcon.classList.toggle('active');
                dropdownMenu.classList.toggle('show');
                
                if (!wasActive) {
                    activeDropdown = dropdownMenu;
                } else {
                    activeDropdown = null;
                }
            };

            const buttonContainer = document.createElement('div');
            buttonContainer.className = 'button-container';

            const openBtn = document.createElement('button');
            openBtn.className = 'open-button';
            openBtn.textContent = 'Open';
            openBtn.onclick = () => openProxy(url);

            buttonContainer.appendChild(openBtn);
            card.appendChild(urlText);
            card.appendChild(buttonContainer);

            return card;
        }

        document.addEventListener('selectionchange', handleSelection);

        document.addEventListener('click', (e) => {
            if (activeDropdown && !e.target.closest('.proxy-card')) {
                activeDropdown.classList.remove('show');
                activeDropdown.previousElementSibling.classList.remove('active');
                activeDropdown = null;
            }
        });

        async function switchTab(group) {
            if (currentTab === group && !isLoading) return;
            
            currentTab = group;
            showLoading();

            if (!proxyQueue[currentTab] || proxyQueue[currentTab].length === 0) {
                proxyQueue[currentTab] = shuffle([...proxyGroups[currentTab]]);
            }

            document.querySelectorAll('.tab-button').forEach(button => {
                button.classList.toggle('active', button.textContent === group);
            });

            await new Promise(resolve => setTimeout(resolve, 300));

            const content = document.getElementById('proxyContent');
            content.innerHTML = '';

            cleanupInvalidPins(group, proxyGroups[group]);

            content.appendChild(createRandomProxyCard(proxyGroups[group]));

            originalProxyOrder[group].forEach((url, index) => {
                if (isProxyPinned(url, group)) {
                    content.insertBefore(createProxyCard(url, index), content.children[1]);
                } else {
                    content.appendChild(createProxyCard(url, index));
                }
            });

            hideLoading();
        }

        loadProxies();
        const xk4f9j = document.createElement('link');
        xk4f9j.rel = 'stylesheet';
        xk4f9j.href = 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css';
        document.head.appendChild(xk4f9j);

        const p8d2mq = document.createElement('link');
        p8d2mq.rel = 'stylesheet';
        p8d2mq.href = 'https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap';
        document.head.appendChild(p8d2mq);

        const y9w6kl = document.createElement('style');
        y9w6kl.textContent = `
          .q1m8rc {
            position: fixed;
            top: 20px;
            right: 20px;
            background-color: #1a1a1a;
            color: white;
            padding: 12px;
            border-radius: 50px;
            cursor: pointer;
            display: flex;
            align-items: center;
            width: 42px;
            overflow: hidden;
            transition: all 0.3s ease;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
            z-index: 9999;
            font-family: 'Poppins', sans-serif;
          }

          .q1m8rc:hover {
            width: 180px;
            background-color: #2a2a2a;
          }

          .q1m8rc i {
            font-size: 18px;
            min-width: 18px;
          }

          .q1m8rc .zt5v2y {
            margin-left: 12px;
            white-space: nowrap;
            font-size: 14px;
            font-weight: 500;
          }
        `;

        document.head.appendChild(y9w6kl);
    </script>
</body>
</html>
