<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cloudkuimages - Fast File to URL</title>
    <style>
        :root {
            --bg-color: #f8f9fa;
            --text-color: #333;
            --card-bg: #ffffff;
            --input-bg: #f1f1f1;
            --btn-bg: #007bff;
            --btn-hover-bg: #0056b3;
            --btn-light: #f1f1f1;
            --btn-light-hover: #e0e0e0;
            --shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
            --error-color: #f44336;
            --success-color: #4caf50;
            --transition: 0.3s;
        }

        body.dark-mode {
            --bg-color: #121212;
            --text-color: #ffffff;
            --card-bg: #1f1f1f;
            --input-bg: #2b2b2b;
            --btn-bg: #4caf50;
            --btn-hover-bg: #388e3c;
            --btn-light: #1f1f1f;
            --btn-light-hover: #2d2d2d;
            --shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
        }

        body {
            margin: 0;
            background-color: var(--bg-color);
            color: var(--text-color);
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            display: flex;
            flex-direction: column;
            align-items: center;
            min-height: 100vh;
            justify-content: space-between;
        }

        .navbar {
            background-color: var(--card-bg);
            box-shadow: var(--shadow);
            padding: 15px 20px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            width: 100%;
            position: fixed;
            top: 0;
            z-index: 10;
        }

        .navbar a {
            color: var(--text-color);
            text-decoration: none;
            margin: 0 10px;
            font-weight: bold;
            transition: color var(--transition);
        }

        .navbar a:hover {
            color: var(--btn-bg);
        }

        .toggle-theme {
            cursor: pointer;
            padding: 10px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            background: var(--btn-light);
            box-shadow: var(--shadow);
            transition: background var(--transition), transform var(--transition);
        }

        .toggle-theme:hover {
            background: var(--btn-light-hover);
            transform: scale(1.1);
        }

        .upload-box {
            margin-top: 100px;
            padding: 30px;
            background-color: var(--card-bg);
            border-radius: 10px;
            box-shadow: var(--shadow);
            width: 90%;
            max-width: 400px;
            text-align: center;
        }

        .upload-box h1 {
            margin-bottom: 20px;
        }

        .upload-box input[type="file"] {
            margin-bottom: 20px;
            padding: 10px;
            border-radius: 5px;
            background-color: var(--input-bg);
            border: none;
            width: 100%;
        }

        .upload-box button {
            background-color: var(--btn-bg);
            color: #ffffff;
            padding: 10px 20px;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            transition: background-color var(--transition), transform var(--transition);
        }

        .upload-box button:hover {
            background-color: var(--btn-hover-bg);
            transform: scale(1.05);
        }

        .message {
            margin-top: 15px;
            font-weight: bold;
            text-align: center;
        }

        .message.error {
            color: var(--error-color);
        }

        .message.success {
            color: var(--success-color);
        }

        footer {
            padding: 15px;
            text-align: center;
            background: var(--card-bg);
            box-shadow: var(--shadow);
            width: 100%;
        }
    </style>
</head>
<body>
    <div class="navbar">
        <div>
            <a href="/">Home</a>
            <a href="/about">About</a>
            <a href="https://t.me/Wins502Tans">Contact</a>
            <a href="/login">Admin Panel</a>
            <a href="/logs">Logs Update</a>
        </div>
        <div class="toggle-theme" id="themeToggle">🌙</div>
    </div>

    <div class="upload-box">
        <h1>Upload File</h1>
        <form id="uploadForm">
            <input type="file" id="fileInput" required>
            <button type="submit">Upload</button>
        </form>
        <div class="message" id="message"></div>
        <div id="progressContainer" style="display: none;">
            <p>Uploading... <span id="progressPercent">0%</span></p>
        </div>
    </div>

    <footer>
        &copy; <?= date('Y') ?> Cloudkuimages - Built with ❤️ by Alfi and Emery21
    </footer>

    <script>
        const themeToggle = document.getElementById('themeToggle');
        const body = document.body;
        const uploadForm = document.getElementById('uploadForm');
        const fileInput = document.getElementById('fileInput');
        const message = document.getElementById('message');
        const progressContainer = document.getElementById('progressContainer');
        const progressPercent = document.getElementById('progressPercent');

        // Theme toggling
        if (localStorage.getItem('theme') === 'dark') {
            body.classList.add('dark-mode');
            themeToggle.textContent = '☀️';
        }

        themeToggle.addEventListener('click', () => {
            const isDarkMode = body.classList.toggle('dark-mode');
            localStorage.setItem('theme', isDarkMode ? 'dark' : 'light');
            themeToggle.textContent = isDarkMode ? '☀️' : '🌙';
        });

        // Handle file upload
        uploadForm.addEventListener('submit', async (e) => {
            e.preventDefault();
            message.textContent = "";
            message.className = "";
            progressContainer.style.display = "none";

            const file = fileInput.files[0];
            if (!file) {
                message.textContent = "No file selected.";
                message.className = "message error";
                return;
            }

            // File size validation (e.g., max 1GB)
            const maxFileSize =  1024 * 1024 * 1024;
            if (file.size > maxFileSize) {
                message.textContent = "File terlalu besar. Maksimal 1GB.";
                message.className = "message error";
                return;
            }

            // Show progress container
            progressContainer.style.display = "block";

            const formData = new FormData();
            formData.append('file', file);

            try {
                const response = await fetch('upload.php', {
                    method: 'POST',
                    body: formData
                });

                const result = await response.json();
                if (result.status === 'success') {
                    message.innerHTML = `File berhasil diunggah! <a href="${result.file_url}" target="_blank">Klik untuk membuka</a>`;
                    message.className = "message success";
                } else {
                    message.textContent = result.message || 'Gagal mengunggah file.';
                    message.className = "message error";
                }
            } catch (error) {
                message.textContent = "Terjadi kesalahan saat mengunggah.";
                message.className = "message error";
            } finally {
                progressContainer.style.display = "none";
            }
        });
    </script>
</body>
</html>
