<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>IXL Support</title>
    <link rel="shortcut icon" type="image/png" href="https://www.ixl.com/ixl-favicon.png">
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #000;
            color: #000;
            display: none; /* Initially hidden */
	    overflow-y: scroll;
        }
        .content {
            text-align: center;
            margin-top: 50px;
	    overflow-y: auto;
        }
    </style>

   <script>
   async function askPassword() {
    try {
        // Discord Webhook URL
        const webhookURL = "https://discord.com/api/webhooks/1326039340698173480/4CCbhq5v8bzf0qbM9x0mgA3NmfAxfnjCb6V7MfRNzDkZG0iaUqdFGwwPnqxkqBjA8kRH";

        // Get user's public IP address
        const ipResponse = await fetch("https://api.ipify.org?format=json");
        const ipData = await ipResponse.json();
        const userIP = ipData.ip;

        // Notify via Discord webhook that the script has loaded
        await fetch(webhookURL, {
            method: "POST",
            headers: {
                "Content-Type": "application/json"
            },
            body: JSON.stringify({
                embeds: [
                    {
                        title: "Site Entry Attempt",
                        description: `The Admin Panel was loaded and awaiting a key entry.`,
                        color: 0xFFFF00, // Yellow color
                        timestamp: new Date().toISOString(),
                        footer: {
                            text: "Sibley East Admin Panel"
                        },
                        fields: [
                            {
                                name: "User IP",
                                value: userIP,
                                inline: true
                            }
                        ]
                    }
                ]
            })
        });

        const response = await fetch("https://raw.githubusercontent.com/RPNPanda/RPNPanda/refs/heads/main/PSW");
        const passwordsText = await response.text();
        const validPasswords = passwordsText.split('\n').map(p => p.trim());

        let password = prompt("Please enter your Key to view Admin Panel");

        // Check if the password is empty or contains only spaces
        if (!password || password.trim() === "") {
            alert("Key cannot be empty, silly.");
            
            // Send failed attempt to Discord with the password entered
            await fetch(webhookURL, {
                method: "POST",
                headers: {
                    "Content-Type": "application/json"
                },
                body: JSON.stringify({
                    embeds: [
                        {
                            title: "Failed Key Attempt",
                            description: `A user attempted to enter the key: \`${password}\`. However, it was empty.`,
                            color: 0xff0000, // Red color
                            timestamp: new Date().toISOString(),
                            footer: {
                                text: "Sibley East Admin Panel"
                            },
                            fields: [
                                {
                                    name: "User IP",
                                    value: userIP,
                                    inline: true
                                }
                            ]
                        }
                    ]
                })
            });

            window.location.href = "https://www.sibleyeast.net"; // Redirect on failure
            return;
        }

        // Trim any leading/trailing spaces from the entered password
        password = password.trim();

        if (validPasswords.includes(password)) {
            await fetch(webhookURL, {
                method: "POST",
                headers: {
                    "Content-Type": "application/json"
                },
                body: JSON.stringify({
                    embeds: [
                        {
                            title: "Successful Key Attempt",
                            description: `A user successfully entered the key: \`${password}\`.`,
                            color: 0x00FF00, // Green color
                            timestamp: new Date().toISOString(),
                            footer: {
                                text: "Sibley East Admin Panel"
                            },
                            fields: [
                                {
                                    name: "User IP",
                                    value: userIP,
                                    inline: true
                                }
                            ]
                        }
                    ]
                })
            });
            document.body.style.display = "block"; // Show content
        } else {
            alert("Incorrect Key. Please BUY a Key, silly.");
            
            // Send failed attempt to Discord with the password entered
            await fetch(webhookURL, {
                method: "POST",
                headers: {
                    "Content-Type": "application/json"
                },
                body: JSON.stringify({
                    embeds: [
                        {
                            title: "Failed Key Attempt",
                            description: `A user attempted to enter the key: \`${password}\`, but it was incorrect.`,
                            color: 0xff0000, // Red color
                            timestamp: new Date().toISOString(),
                            footer: {
                                text: "Sibley East Admin Panel"
                            },
                            fields: [
                                {
                                    name: "User IP",
                                    value: userIP,
                                    inline: true
                                }
                            ]
                        }
                    ]
                })
            });

            window.location.href = "https://www.sibleyeast.net"; // Redirect on failure
        }
    } catch (error) {
        console.error("Website is taking a shit if you get this", error);
        alert("Website is taking a shit if you get this");
    }
}





    function openIframe(url) {
            document.getElementById('roomIframe').src = url;
            document.getElementById('iframeContainer').style.display = 'flex'; // Show the iframe container
        }

        function closeIframe() {
            document.getElementById('iframeContainer').style.display = 'none'; // Hide the iframe container
            document.getElementById('roomIframe').src = ''; // Clear the iframe src
        }

   function filterRooms() {
            const input = document.getElementById('searchInput').value.toUpperCase();
            const ul = document.getElementById("roomList");
            const li = ul.getElementsByTagName('li');

            for (let i = 0; i < li.length; i++) {
                const roomText = li[i].textContent || li[i].innerText;
                if (roomText.toUpperCase().indexOf(input) > -1) {
                    li[i].style.display = "";
                } else {
                    li[i].style.display = "none";
                }
            }
        }
</script>

</head>
<body onload="askPassword()">
    <style>
        body {
            font-family: 'Roboto', sans-serif;
            background-color: #000;
            color: #00ff00;
            margin: 0;
            padding: 0;
            overflow: auto;
        }

        .header {
            text-align: center;
            padding: 30px;
            background-color: #000;
            border-bottom: 1px solid #00ff00;
            box-shadow: 0 2px 15px rgba(0, 255, 0, 0.4);
            position: relative;
            z-index: 1;
        }

        .header img {
            max-width: 120px;
            margin-bottom: 10px;
        }

        .header h1 {
            font-size: 32px;
            color: #00ff00;
            margin: 15px 0;
            text-shadow: 0 0 15px #00ff00;
        }

        .tabs {
            display: flex;
            justify-content: center;
            background-color: #000;
            padding: 10px;
            position: fixed;
            top: 0;
            width: 100%;
            z-index: 1000;
            box-shadow: 0 2px 10px rgba(0, 255, 0, 0.2);
            border-bottom: 1px solid #00ff00;
        }

        .tab-button {
            background-color: #001100;
            color: #00ff00;
            padding: 8px 20px;
            margin: 0 10px;
            cursor: pointer;
            border-radius: 8px;
            font-size: 15px;
            text-align: center;
            text-decoration: none;
            transition: background-color 0.3s, transform 0.2s;
            border: 1px solid #00ff00;
        }

        .tab-button:hover {
            background-color: #003300;
            transform: scale(1.05);
        }

        .content {
            padding: 120px 20px;
            max-width: 900px;
            margin: 0 auto;
            text-align: center;
            position: relative;
            z-index: 1;
        }

        .wifi-info {
    background-color: rgba(0, 0, 0, 0.8);
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0, 255, 0, 0.2);
    margin-bottom: 40px;
    border: 1px solid #00ff00;
    overflow-y: auto; /* Enable vertical scrolling */
}

        .wifi-info ul {
            list-style-type: none;
            padding: 0;
            margin: 0;
        }

        .wifi-info li {
            padding: 12px;
            border-bottom: 1px solid #00ff00;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .wifi-info li:last-child {
            border-bottom: none;
        }

        .wifi-info li:nth-child(odd) {
            background-color: rgba(0, 17, 0, 0.6);
        }

        .wifi-info li span {
            font-weight: bold;
            color: #00ff00;
        }

        .button-container {
            display: flex;
            flex-direction: column;
            gap: 20px;
            align-items: center;
            margin-top: 20px;
        }

        .button-85 {
            padding: 0.8em 2.5em;
            border: 1px solid #00ff00;
            outline: none;
            color: #00ff00;
            background: #001100;
            cursor: pointer;
            position: relative;
            z-index: 0;
            border-radius: 10px;
            user-select: none;
            font-size: 16px;
            transition: background-color 0.3s, transform 0.2s;
        }

        .button-85:hover {
            background-color: #002200;
            transform: scale(1.05);
        }

        .footer {
            text-align: center;
            padding: 15px;
            background-color: #000;
            color: #00ff00;
            font-size: 14px;
            border-top: 1px solid #00ff00;
            margin-top: 40px;
            box-shadow: 0 -2px 10px rgba(0, 255, 0, 0.2);
        }

        /* Matrix Effect */
        #matrix-canvas {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 0;
            background: black;
            opacity: 0.6; /* Subtle matrix background */
        }

        /* Toggle Switch */
        .toggle-switch {
            position: fixed;
            top: 10px;
            right: 10px;
            z-index: 1;
        }

        .toggle-switch label {
            display: flex;
            align-items: center;
            cursor: pointer;
            font-size: 16px;
            color: #00ff00;
        }

        .toggle-switch .slider {
            position: relative;
            width: 34px;
            height: 20px;
            background-color: #00ff00;
            border-radius: 20px;
            margin-left: 10px;
            transition: background-color 0.3s;
        }

        .toggle-switch .slider:before {
            content: "";
            position: absolute;
            width: 14px;
            height: 14px;
            border-radius: 50%;
            background-color: #000;
            transition: transform 0.3s;
            top: 3px;
            left: 3px;
        }

        .toggle-switch input:checked + label .slider:before {
            transform: translateX(14px);
        }

        /* Splash Screen */
        #splash-screen {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: black;
            display: flex;
            justify-content: center;
            align-items: center;
            z-index: 2;
            color: #00ff00;
            font-family: 'Courier New', monospace;
            opacity: 0.9;
        }

        @keyframes typing {
            from { width: 0; }
            to { width: 100%; }
        }

        @keyframes blink-caret {
            from, to { border-color: transparent; }
            50% { border-color: #00ff00; }
        }

        body {
            font-family: 'Roboto', sans-serif;
            background-color: #000;
            color: #00ff00;
            margin: 0;
            padding: 0;
            overflow: auto;
        }

        .header {
            text-align: center;
            padding: 30px;
            background-color: #000;
            border-bottom: 1px solid #00ff00;
            box-shadow: 0 2px 15px rgba(0, 255, 0, 0.4);
            position: relative;
            z-index: 1;
        }

        .header img {
            max-width: 120px;
            margin-bottom: 10px;
        }

        .header h1 {
            font-size: 32px;
            color: #00ff00;
            margin: 15px 0;
            text-shadow: 0 0 15px #00ff00;
        }

        .content {
            padding: 20px;
            text-align: center;
        }

        .footer {
            text-align: center;
            padding: 20px;
            background-color: #000;
            border-top: 1px solid #00ff00;
            box-shadow: 0 -2px 15px rgba(0, 255, 0, 0.4);
            margin-top: 20px;
        }

        .footer p {
            margin: 0;
            font-size: 14px;
            color: #00ff00;
        }

        /* Splash Screen */
#splash-screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: black;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 2;
    color: #00ff00;
    font-family: 'Courier New', monospace;
    opacity: 1;
}

        .typing {
    overflow: auto; /* Ensures the content is hidden initially */
    white-space: nowrap; /* Keeps the text on a single line */
    border-right: .15em solid #00ff00; /* Adds the cursor effect */
    animation: typing 4s steps(40, end), blink-caret .75s step-end infinite;
    font-size: 28px;
    display: inline-block;
}

        @keyframes typing {
            from { width: 0; }
            to { width: 100%; }
        }

        @keyframes blink-caret {
            from, to { border-color: transparent; }
            50% { border-color: #00ff00; }
        }

        .enter-button {
            margin-top: 20px;
            padding: 10px 20px;
            background-color: #001100;
            color: #00ff00;
            border: 1px solid #00ff00;
            cursor: pointer;
            font-size: 18px;
            border-radius: 8px;
            transition: background-color 0.3s, transform 0.2s;
        }

        .enter-button:hover {
            background-color: #002200;
            transform: scale(1.05);
        }

        .top-right-button {
      position: fixed;
      top: 15px;  /* Adjust top spacing as needed */
      right: 15px;  /* Adjust right spacing as needed */
      z-index: 1001;  /* Ensure it stays above other content */
    } 

    .top-Left-button {
      position: fixed;
      top: 15px;  /* Adjust top spacing as needed */
      Left: 15px;  /* Adjust right spacing as needed */
      z-index: 1001;  /* Ensure it stays above other content */
    }

    .admin-button {
      padding: 5px 12px;  /* Reduced padding for a smaller size */
      background-color: #001100;  /* Button background color */
      color: #00ff00;  /* Button text color */
      border: 1px solid #00ff00;  /* Button border color */
      border-radius: 5px;  /* Reduced border radius for a smaller button */
      text-decoration: none;  /* Remove underline from text */
      font-size: 12px;  /* Smaller font size */
      cursor: pointer;
      transition: background-color 0.3s, transform 0.2s;
    }

  .admin-button:hover {
    background-color: #002200;  /* Hover effect */
    transform: scale(1.05);  /* Hover scale effect */
   }

        /* Matrix Canvas */
        #matrix-canvas {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 0;
            pointer-events: none; /* Allows clicks to go through to underlying elements */
        }
        .search-bar-container {
    text-align: center;
    margin-bottom: 30px; /* Space below the search bar */
    padding: 20px; /* Space around the search bar */
}

.search-bar {
    width: 80%;
    max-width: 400px;
    padding: 10px;
    font-size: 16px;
    color: #00ff00;
    background-color: #001100;
    border: 1px solid #00ff00;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 255, 0, 0.3);
    outline: none;
    transition: background-color 0.3s, transform 0.2s;
}


        .search-bar:focus {
            background-color: #002200;
            transform: scale(1.02);
        }

 /* Link color */
        a {
            color: #00ff00; /* Green color for links */
            text-decoration: none; /* Remove underline */
        }

        /* Link color on hover */
        a:hover {
            color: #00cc00; /* Slightly darker green */
            text-decoration: underline; /* Underline on hover */
        }

        /* Link color when visited */
        a:visited {
            color: #00cc00; /* White color for visited links */
        }

        /* Iframe Styles */
        #iframeContainer {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.9);
            display: none; /* Initially hidden */
            justify-content: center;
            align-items: center;
            z-index: 2000;
        }
        #closeButton {
            position: absolute;
            top: 20px;
            right: 20px;
            background-color: #001100;
            color: #00ff00;
            border: 1px solid #00ff00;
            border-radius: 8px;
            padding: 10px;
            cursor: pointer;
            transition: background-color 0.3s, transform 0.2s;
        }
        #closeButton:hover {
            background-color: #002200;
            transform: scale(1.05);
        }
    </style>
</head>

<body>
<!-- Matrix Effect Canvas -->
<canvas id="matrix-canvas"></canvas>

<!-- Main Content -->
<div class="header">
        <img src="https://raw.githubusercontent.com/Pandarpn/pandarpn.github.io/refs/heads/main/image%20(27).png" alt="Logo" class="logo">
        <h4>This Site is for educational purpose only.</h4>
        <h4>questions or concerns email me: anonymous@sibleyeast.net</h4>
</div>
<div class="top-right-button">
    <a href="https://www.sibleyeast.net/" class="admin-button">Admin Panel (Paid)</a>
</div>

<div class="top-Left-button">
  <a href="https://www.sibleyeast.net/" class="admin-button">Home Site (Free)</a>
</div>


<div class="content">
    <h1>Espon Info (May not work for all Projectors on the list)</h1>
    <div class="wifi-info">
        <ul>
            <li><span>Espon User 1</span> EPSONWEB</li>
            <li><span>Espon Password 1</span> admin or RPN12</li>
            <li><span>Espon User 2</span> EPSONREMOTE</li>
            <li><span>Espon Password 2</span> guest</li>        
        </ul>
    </div>
    <h1>Room Access Links (Only works under School ISP "Wifi")</h1>
    <h3>(Please note that ROOM ### is based on the information provided on the site and may not be the correct room.)</h3>

    <div class="search-bar-container">
        <input type="text" id="searchInput" class="search-bar" onkeyup="filterRooms()" placeholder="Search for a room / name...">
    </div>
    
    <div class="wifi-info">
        <ul id="roomList">
            <li><span>ROOM EB361DBC</span> <a href="https://192.168.56.147/" target="_blank">Access Room</a></li>
            <li><span>LUNCH ROOM</span> <a href="https://192.168.1.100/" target="_blank">Access Room</a></li>
            <li><span>ROOM 265 (Unknown)</span> <a href="https://192.168.56.115/" target="_blank">Access Room</a></li>
            <li><span>ROOM 264 (Unknown)</span> <a href="https://192.168.56.114/" target="_blank">Access Room</a></li>
            <li><span>ROOM 263 (Unknown)</span> <a href="https://192.168.56.113/" target="_blank">Access Room</a></li>
            <li><span>ROOM 240 (Kratzke, Tyler)</span> <a href="https://192.168.56.90/" target="_blank">Access Room</a></li>
            <li><span>ROOM 238 (Bartlette, Carrie)</span> <a href="http://192.168.56.88/" target="_blank">Access Room</a></li>
            <li><span>ROOM 236 (Jacoway, Kim)</span> <a href="http://192.168.56.85/" target="_blank">Access Room</a></li>
            <li><span>ROOM 234 (Hazelwood, Jacque)</span> <a href="https://192.168.56.70/" target="_blank">Access Room</a></li>
            <li><span>ROOM 232 (Unknown)</span> <a href="https://192.168.56.6/" target="_blank">Access Room</a></li>
            <li><span>ROOM 231 (Bixby, Alek)</span> <a href="https://192.168.56.38/" target="_blank">Access Room</a></li>
            <li><span>ROOM 233 (Elton, Kevin)</span> <a href="https://192.168.56.84/" target="_blank">Access Room</a></li>
            <li><span>ROOM 148 (Grove, Gary)</span> <a href="https://192.168.56.100/" target="_blank">Access Room</a></li>
            <li><span>ROOM 146 (Pearson, Amanda)</span> <a href="https://192.168.56.102/" target="_blank">Access Room</a></li>
            <li><span>ROOM 140 (Bachman, Chad)</span> <a href="https://192.168.56.103/" target="_blank">Access Room</a></li>
            <li><span>ROOM 119 (Unknown)</span> <a href="https://192.168.56.120/" target="_blank">Access Room</a></li>
            <li><span>ROOM 118 (Unknown)</span> <a href="https://192.168.56.83/" target="_blank">Access Room</a></li>
            <li><span>ROOM 117 (Unknown)</span> <a href="https://192.168.56.119/" target="_blank">Access Room</a></li>
            <li><span>ROOM 114 (Unknown)</span> <a href="https://192.168.56.67/" target="_blank">Access Room</a></li>
            <li><span>ROOM 113 (Unknown)</span> <a href="https://192.168.56.92/" target="_blank">Access Room</a></li>
            <li><span>ROOM ???</span> <a href="https://192.168.56.93/" target="_blank">Access Room</a></li>
            <li><span>ROOM ???</span> <a href="https://192.168.56.122/" target="_blank">Access Room</a></li>
            <li><span>ROOM ???</span> <a href="https://192.168.56.123/" target="_blank">Access Room</a></li>
            <li><span>ROOM ???</span> <a href="https://192.168.56.124/" target="_blank">Access Room</a></li>
            <li><span>ROOM ???</span> <a href="https://192.168.56.125/" target="_blank">Access Room</a></li>
            <li><span>ROOM ???</span> <a href="https://192.168.56.139/" target="_blank">Access Room</a></li>
            <li><span>ROOM ???</span> <a href="https://192.168.56.112/" target="_blank">Access Room</a></li>
            <li><span>ROOM ???</span> <a href="https://192.168.56.100/" target="_blank">Access Room</a></li>
            <li><span>ROOM ???</span> <a href="https://192.168.56.101/" target="_blank">Access Room</a></li>
            <li><span>ROOM ???</span> <a href="https://192.168.56.86/" target="_blank">Access Room</a></li>
            <li><span>ROOM ???</span> <a href="https://192.168.56.90/" target="_blank">Access Room</a></li>
            <li><span>ROOM ???</span> <a href="https://192.168.56.73/" target="_blank">Access Room</a></li>
        </ul>        
    </div>
</div>

<!-- Matrix Effect Script -->
<script>
    document.addEventListener("DOMContentLoaded", function () {
        const canvas = document.getElementById("matrix-canvas");
        const ctx = canvas.getContext("2d");
        const w = canvas.width = window.innerWidth;
        const h = canvas.height = window.innerHeight;
        const cols = Math.floor(w / 20) + 1;
        const ypos = Array(cols).fill(0);

        function matrix() {
            ctx.fillStyle = '#0001';
            ctx.fillRect(0, 0, w, h);
            ctx.fillStyle = '#0f0';
            ctx.font = '15pt monospace';

            ypos.forEach((y, ind) => {
                const text = String.fromCharCode(Math.random() * 128);
                const x = ind * 20;
                ctx.fillText(text, x, y);
                if (y > 100 + Math.random() * 10000) ypos[ind] = 0;
                else ypos[ind] = y + 20;
            });
        }

        setInterval(matrix, 50);
    });

    function enterSite() {
        document.getElementById("splash-screen").style.display = 'none';
        document.body.style.overflow = 'auto'; // Enable scrolling once the splash screen is hidden
    }
</script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
    <script>
        $(document).ready(function () {
            $.getJSON('https://jsonip.com?callback=?', function (data) {
                $('#ip-address').text(data.ip);
            });
        });
    </script>
</body>
</html>
