
<html lang="es">
<head>
    <meta charset="UTF-8"></meta>
    <meta content="width=device-width, initial-scale=1.0" name="viewport"></meta>
    <title>KFC Code Generator</title>
</head>
<body>
    <h1>KFC Code Generator</h1>

    <!-- Formulario para la contraseña -->
    <div id="passwordPrompt" style="display: none;">
        <label for="passwordInput">Introduce la contraseña: </label>
        <input id="passwordInput" type="password" />
        <button onclick="verificarContrasena()">Entrar</button>
        <p id="error" style="color: red; display: none;">Contraseña incorrecta. Inténtalo de nuevo.</p>
    </div>

    <!-- Formulario principal que se muestra solo si la contraseña es correcta -->
    <div id="mainContent" style="display: none;">
        <label for="topInput">Posición Top (%): </label>
        <input id="topInput" type="number" />
        <br /><br />

        <label for="leftInput">Posición Left (%): </label>
        <input id="leftInput" type="number" />
        <br /><br />

        <button onclick="abrirNuevaPestana()">M4k3 1T R41N</button>
    </div>

    <script>
        const HASH_CONTRASENA = "2c26b46b68ffc68ff99b453c1d30413413422f72d2d6d942fa4f9f4f1bdb4b50"; // Hash de "pene" en SHA-256

        // Función para calcular el hash SHA-256
        async function calcularHash(texto) {
            const encoder = new TextEncoder();
            const data = encoder.encode(texto);
            const hashBuffer = await crypto.subtle.digest('SHA-256', data);
            const hashArray = Array.from(new Uint8Array(hashBuffer));
            const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
            return hashHex;
        }

        // Función para verificar la contraseña
        async function verificarContrasena() {
            const inputPassword = document.getElementById('passwordInput').value;
            const hashPassword = await calcularHash(inputPassword);
            
            if (hashPassword === HASH_CONTRASENA) {
                // Si la contraseña es correcta, almacenar la validación en LocalStorage
                localStorage.setItem('accesoPermitido', 'true');
                mostrarContenidoPrincipal();
            } else {
                // Mostrar mensaje de error si la contraseña es incorrecta
                document.getElementById('error').style.display = 'block';
            }
        }

        // Función para mostrar el contenido principal
        function mostrarContenidoPrincipal() {
            document.getElementById('passwordPrompt').style.display = 'none';
            document.getElementById('mainContent').style.display = 'block';
            cargarConfiguracion(); // Cargar la configuración de posiciones si ya existe
        }

        // Función para cargar los valores desde LocalStorage
        function cargarConfiguracion() {
            const posicionTopGuardada = localStorage.getItem('posicionTop');
            const posicionLeftGuardada = localStorage.getItem('posicionLeft');

            if (posicionTopGuardada) {
                document.getElementById('topInput').value = posicionTopGuardada;
            } else {
                document.getElementById('topInput').value = 46; // Valor predeterminado
            }

            if (posicionLeftGuardada) {
                document.getElementById('leftInput').value = posicionLeftGuardada;
            } else {
                document.getElementById('leftInput').value = 38; // Valor predeterminado
            }
        }

        // Llamar a la función cargarConfiguracion al cargar la página
        window.onload = function() {
            const accesoPermitido = localStorage.getItem('accesoPermitido');

            if (accesoPermitido === 'true') {
                // Si el usuario ya ha ingresado la contraseña correctamente
                mostrarContenidoPrincipal();
            } else {
                // Mostrar la solicitud de contraseña si aún no ha sido validada
                document.getElementById('passwordPrompt').style.display = 'block';
            }
        }

        function abrirNuevaPestana() {
            // Obtener los valores de top y left de los inputs
            const topValue = document.getElementById('topInput').value;
            const leftValue = document.getElementById('leftInput').value;

            // Guardar los valores en LocalStorage
            localStorage.setItem('posicionTop', topValue);
            localStorage.setItem('posicionLeft', leftValue);

            // Crear el contenido HTML que se mostrará en la nueva pestaña
            var contenidoHTML = `
                <!DOCTYPE html>
                <html lang="es">
                <head>
                    <meta charset="UTF-8">
                    <meta name="viewport" content="width=device-width, initial-scale=1.0">
                    <title>Página con imagen de fondo</title>
                    <style>
                        * {
                            margin: 0;
                            padding: 0;
                            box-sizing: border-box;
                        }

                        body, html {
                            height: 100%;
                            width: 100%;
                            overflow: hidden;
                            position: relative;
                        }

                        body {
                            background-image: url('https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqi3crydpVU-2YkRWfiSBx8m165KGI9m9GauKI5e4cuoipD2AqpZ4HlLoczTS2QyCSDUVA561KCVAFt0e-3Mv3dm5-h7j47XaQXyFVBRkELDqm1_gCJuNXdxjA3t2ksb90GY2dVT1rzdSCUtK58-2Xj_xF1XNbVNBcnnGpaf0Oo4e2OGcZCxiVMfh14Vw/s1873/kfc.png');
                            background-size: contain;
                            background-position: center;
                            background-repeat: no-repeat;
                            background-color: black;
                            font-family: Arial, sans-serif;
                        }

                        .random-number {
                            position: absolute;
                            font-size: 3vw;
                            color: black;
                            font-weight: bold;
                            padding: 5px;

                            top: ${topValue}%;
                            left: ${leftValue}%;
                            transform: translate(-50%, -50%);
                        }
                    </style>
                </head>
                <body>

                    <div class="random-number" id="randomNumber"></div>

                    <script>
                        function generarNumeroAleatorio() {
                            const min = 10000;
                            const max = 99999;
                            return Math.floor(Math.random() * (max - min + 1)) + min;
                        }

                        // Generar e insertar el número aleatorio
                        document.getElementById('randomNumber').textContent = generarNumeroAleatorio();
                    <\/script>

                </body>
                </html>
            `;

            // Abrir una nueva ventana/pestaña
            var nuevaVentana = window.open("", "_blank");

            // Escribir el contenido HTML en la nueva ventana
            nuevaVentana.document.write(contenidoHTML);
        }
    </script>
</body>
</html>
