<?php
session_start();
// Verificar se o usuário está autenticado e é um administrador
if (!isset($_SESSION['id']) || !$_SESSION['admin']) {
    header("Location: login.php");
    exit();
}

include "includes/header.php";
?>

<style>
    .custom-button {
        padding: 10px 20px;
    }
    #url-form {
        display: none;
    }
    .custom-input {
        color: blue;
    }
    .preview-image {
        width: 100%;
        height: auto;
        border-radius: 20px;
        display: block;
        margin: 0 auto;
    }
    .container-fluid {
        text-align: center;
    }
</style>

<div class="container-fluid">
    <h1 class="h3 mb-1 text-gray-800">Trocar Fundo</h1>
    <div class="card border-left-primary shadow h-100 card shadow mb-4">
        <div class="card-header py-3">
            <h6 class="m-0 font-weight-bold text-primary"><i class="fa fa-cogs"></i> Escolha um método para atualizar o fundo</h6>
        </div>
        <div class="card-body">
            <?php
            $jsonFile = './img/fundo/image_filenames.json';
            $jsonData = file_get_contents($jsonFile);
            $imageData = json_decode($jsonData, true);
            $filename = $imageData[0]['ImageName'];
            $uploadMethod = $imageData[0]['Upload_type'];

            if ($uploadMethod == "by_file") {
                $imageFile = substr($filename, 1); // Remove o primeiro caractere ("/")
                $method = "Método de upload";
            } elseif ($uploadMethod == "by_url") {
                $imageFile = $filename;
                $method = "Método URL";
            } else {
                $imageFile = "https://via.placeholder.com/250";
                $method = "Método não especificado";
            }

            echo '<h3>Atualmente em uso: ' . $method . '</h3>';
            echo '<input type="radio" name="upload-type" id="upload-radio" checked> Definir usando um arquivo &nbsp&nbsp';
            echo '<input type="radio" name="upload-type" id="url-radio"> Definir usando uma URL';
            echo '<br>';
            echo '<img class="preview-image" src="' . $imageFile . '" alt="Imagem do Fundo">';
            echo '<br><br>';

            if (isset($_POST['upload'])) {
                // Lógica para upload do arquivo
                if (isset($_FILES['image'])) {
                    $file = $_FILES['image'];
                    $fileType = $file['type'];
                    $fileTemp = $file['tmp_name'];

                    $allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
                    if (in_array($fileType, $allowedTypes)) {
                        $uploadPath = './img_custom/Img/';
                        $fileName = uniqid() . '.' . pathinfo($file['name'], PATHINFO_EXTENSION);
                        $destination = $uploadPath . $fileName;

                        if (move_uploaded_file($fileTemp, $destination)) {
                            $jsonFilePath = './img/fundo/image_filenames.json';
                            $jsonData = json_encode([["ImageName" => "../img_custom/Img/" . $fileName, 'Upload_type' => 'by_file']]);
                            file_put_contents($jsonFilePath, $jsonData);
                            echo "<script>window.location.href='Image.php';</script>"; // Redireciona para a mesma página para carregar a imagem atualizada
                        } else {
                            echo 'Erro ao mover o arquivo.';
                        }
                    } else {
                        echo 'Tipo de arquivo inválido. Somente JPEG, PNG e GIF são permitidos.';
                    }
                }
            }

            if (isset($_POST['url-submit'])) {
                // Lógica para definir o fundo por URL
                $imageUrl = $_POST['image-url'];

                if (filter_var($imageUrl, FILTER_VALIDATE_URL)) {
                    $jsonFilePath = './img/fundo/image_filenames.json';
                    $newImageData = [
                        'ImageName' => $imageUrl,
                        'Upload_type' => 'by_url'
                    ];

                    $jsonData = file_get_contents($jsonFilePath);
                    $imageData = json_decode($jsonData, true);
                    $imageData[0] = $newImageData;

                    $jsonData = json_encode($imageData);
                    if (file_put_contents($jsonFilePath, $jsonData)) {
                        echo "<script>window.location.href='Image.php';</script>"; // Redireciona para a mesma página para carregar a imagem atualizada
                    } else {
                        echo 'Erro ao salvar a URL no arquivo JSON.';
                    }
                } else {
                    echo 'URL inválida.';
                }
            }
            ?>

            <form method="post" enctype="multipart/form-data" id="upload-form">
                <label for="image">Escolha uma imagem para carregar:</label>
                <input class="custom-button" type="file" name="image" id="image" accept="image/jpeg, image/png, image/gif">
                <button class="custom-button btn btn-success btn-icon-split" type="submit" name="upload">Atualizar</button>
            </form>

            <form method="post" id="url-form">
                <label for="image-url">Escolha a URL da imagem:</label>
                <input class="custom-button" type="text" name="image-url" id="image-url" placeholder="https://example.com/image.jpg">
                <button class="custom-button btn btn-success btn-icon-split" type="submit" name="url-submit">Enviar URL</button>
            </form>

            <script>
                const uploadRadio = document.getElementById('upload-radio');
                const urlRadio = document.getElementById('url-radio');
                const uploadForm = document.getElementById('upload-form');
                const urlForm = document.getElementById('url-form');

                uploadRadio.addEventListener('change', () => {
                    uploadForm.style.display = 'block';
                    urlForm.style.display = 'none';
                });

                urlRadio.addEventListener('change', () => {
                    uploadForm.style.display = 'none';
                    urlForm.style.display = 'block';
                });
            </script>

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

<?php
include "includes/footer.php";
?>
</body>
</html>
