<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Bloxstrap</title>
    <link rel="icon" href="./register/files/Bloxstrap.png" type="image/png">
    <link rel="stylesheet" href="./register/files/register.css">
    <style>
        .tos {
            display: block;
            margin-top: 20px;
        }
        input[type="submit"] {
            margin-top: 10px;
        }
    </style>
</head>
<body>
<div class="box">
    <form action="./api/authapi.php" method="POST" autocomplete="off">
        <h2>Bloxstrap | V2.8.6</h2>
        <div class="inputBox">
            <input type="text" name="username" required="required">
            <span>Username</span>
            <i></i>
        </div>
        <div class="inputBox">
            <input type="password" name="password" id="password" required="required">
            <span>Password</span>
            <i></i>
        </div>
        <div class="progress-container">
            <div class="progress-segment" id="segment-1"></div>
            <div class="progress-segment" id="segment-2"></div>
            <div class="progress-segment" id="segment-3"></div>
            <div class="progress-segment" id="segment-4"></div>
            <div class="progress-segment" id="segment-5"></div>
        </div>
        <div id="dynamic-requirement">Password must include at least one uppercase letter.</div>
        <div class="links"></div>
        <label for="tos-checkbox" class="tos">
            <input type="checkbox" id="tos-checkbox" required="required">
            I Accept the <a href="./tos" target="_blank" onclick="window.open(this.href, '_blank'); return false;">Terms of Service</a>
        </label>
        <input type="submit" value="Sign In">
    </form>
</div>
<script>
    const passwordInput = document.getElementById('password');
    const dynamicRequirement = document.getElementById('dynamic-requirement');
    const segments = [
        document.getElementById('segment-1'),
        document.getElementById('segment-2'),
        document.getElementById('segment-3'),
        document.getElementById('segment-4'),
        document.getElementById('segment-5'),
    ];

    const requirements = [
        { regex: /[A-Z]/, message: "Password must include at least one uppercase letter." },
        { regex: /[a-z]/, message: "Password must include at least one lowercase letter." },
        { regex: /\d/, message: "Password must include at least one number." },
        { regex: /[!@#$%^&*(),.?":{}|<>+\-]/, message: "Password must include at least one special character." },
        { regex: /.{8,}/, message: "Password must be at least 8 characters long." },
    ];

    passwordInput.addEventListener('input', () => {
        const password = passwordInput.value;
        let fulfilled = 0;

        requirements.forEach((req, index) => {
            if (req.regex.test(password)) {
                segments[index].classList.add('active');
                fulfilled++;
            } else {
                segments[index].classList.remove('active');
            }
        });

        if (fulfilled < requirements.length) {
            dynamicRequirement.textContent = requirements[fulfilled].message;
            dynamicRequirement.classList.remove('valid');
        } else {
            dynamicRequirement.textContent = "Password is ready!";
            dynamicRequirement.classList.add('valid');
        }
    });
</script>
</body>
</html>