<?php

session_start();
//checks if users are premitted to be here
if (isset($_SESSION["security_Level"]) && $_SESSION["security_Level"] < 2) {
    require_once "../Config/session_check.php";
} else {
    header("location: ../index.php");
}


$_SESSION["last_Active"] = time();

$jobRole = $terminateD = $username = $password = "";
$jobRole_err = $terminateD_err = $username_err = $password_err = $password_err2 = "";
$StaffIDs = '';

require_once "../Config/config.php";
//validation


$SQL = mysqli_query($link, "SELECT STAFF_ID FROM staff WHERE STAFF_ID NOT in (SELECT STAFF_ID FROM users)");


while ($row = mysqli_fetch_array($SQL)) {
    if ($row[0] != "WEBORDER") {
        $StaffIDs = $StaffIDs . "<option value='" . $row[0] . "'>" . $row[0] . "</option>";
    }
}

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    if (empty(($_POST["username"]))) {
        $username_err = "Select a Username for the account.";
    } else {
        $username = trim($_POST['username']);
    }
    if (empty(($_POST["JobRole"]))) {
        $jobRole_err = "Select a Job role for the account.";
    } else {
        $jobRole = trim($_POST["JobRole"]);
    }
    if (empty($_POST["terminate"])) {
        $terminateD_err = "Select a Termination date for the account.";
    } else {
        $terminateD = trim($_POST["terminate"]);
    }


    if (empty(trim($_POST["pwd"]))) {
        $password_err = "Enter a password.";
    } else {
        $password_test = trim($_POST["pwd"]);
        if (strlen($_POST["pwd"]) < 9) {
            $password_err = "Password must contain at least 9 characters.";
        } elseif (!preg_match("#[0-9]+#", $password_test)) {
            $password_err = "Password must contain at least 1 number.";
        } elseif (!preg_match("#[a-z]+#", $password_test)) {
            $password_err = "Password must contain at least 1 lowercase letter.";
        } elseif (!preg_match("#[A-Z]+#", $password_test)) {
            $password_err = "Password must contain at least 1 uppercase letter.";
        } else {
            $password = trim($_POST["pwd"]);
        }
    }
    if (trim($_POST["pwd"]) != trim($_POST["pwdr"])) {
        $password_err2 = "passwords must match.";
    }

    if (empty($username_err) && empty($password_err) && empty($password_err2)) {
        if (empty($jobRole_err) && empty($terminateD_err)) {


            $sql = "INSERT INTO users (Staff_ID,PASSWORD,Terminate_On,Job_Role,Security_Level,Locked)VALUES (?,?,?,?,?,?)";
            if ($stmt = mysqli_prepare($link, $sql)) {
                // Bind variables to the prepared statement as parameters
                mysqli_stmt_bind_param($stmt, "ssssii", $param_username, $param_password, $param_terminateD, $param_jobRole, $param_Security_Level, $status);

                $status = 0;

                $param_username = $username;

                $param_password = password_hash($password, PASSWORD_DEFAULT);

                $time = strtotime($terminateD);

                $newformat = date('Y-m-d', $time);

                $param_terminateD = $newformat;

                $param_jobRole = $jobRole;
                $nwarray = array('Administrator', 'Manager', 'Supervisor', 'Team Member');
                $param_Security_Level = "";
                for ($i = 0; $i < 4; $i++) {
                    if ($jobRole == $nwarray[$i]) {
                        $param_Security_Level = $i;
                    }
                }


                if ($param_Security_Level != "") {
                    if (mysqli_stmt_execute($stmt)) {
                        // Redirect to login page
                        header("location: ../");
                    } else {
                        echo "Unable to execute statement";
                    }
                } else {
                    echo "Something went wrong. Please try again later.";
                }
            }

        }
    }
}


?>
<!DOCTYPE html>
<html lang="en">
<head>
    <?php include "../Templates/Header.php"; ?>
    <title>Dashboard</title>
</head>
<body>

<div id="page-container">

    <div id="content-wrap">
        <?php include "../Templates/navBar.php"; ?>
        <div class="container-fluid">
            <div class="row">
                <?php include "../Templates/SideBar.php"; ?>
                <main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">

                    <script>
                        $(document).ready(function () {
                            var hasUppercase = /[A-Z]/;
                            var hasLowercase = /[a-z]/;
                            var hasNumber = /[0-9]/;
                            $("#pwd").keyup(function () {
                                var txt = $(this).val();
                                if (hasUppercase.test(txt)) {
                                    document.getElementById("capital").innerHTML = '<b class="noSpace is_valid">/</b> contains 1 uppercase letter'
                                } else {
                                    document.getElementById("capital").innerHTML = '<b class="noSpace is_invalid">X</b> contains 1 uppercase letter'
                                }
                                if (hasLowercase.test(txt)) {
                                    document.getElementById("lower").innerHTML = '<b class="noSpace is_valid">/</b> contains 1 lowercase letter'
                                } else {
                                    document.getElementById("lower").innerHTML = '<b class="noSpace is_invalid">X</b> contains 1 lowercase letter'
                                }
                                if (hasNumber.test(txt)) {
                                    document.getElementById("number").innerHTML = '<b class="noSpace is_valid">/</b> contains 1 number letter'
                                } else {
                                    document.getElementById("number").innerHTML = '<b class="noSpace is_invalid">X</b> contains 1 number letter'
                                }
                                if (txt.length > 8) {
                                    document.getElementById("lenght").innerHTML = '<b class="noSpace is_valid">/</b> Longer than 9 characters'
                                } else {
                                    document.getElementById("lenght").innerHTML = '<b class="noSpace is_invalid">X</b> Longer than 9 characters'
                                }
                            });
                            $("#pwdr").focusout(function () {
                                if ($("#pwd").val() != $("#pwdr").val()) {
                                    document.getElementById("pwd2p").innerHTML = "<p style='color: #ff0000;'>Passwords do not match</p>";
                                } else {
                                    document.getElementById("pwd2p").innertext = "";
                                }
                            });

                        });

                    </script>
                    <div class="container-fluid">

                        <h2>Creating account</h2>
                        <h2>Enter Details:</h2>
                        <span></span>
                        <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
                            <div class="form-group">
                                <label for="username">Username</label>
                                <select class="form-control" id="username" name="username">
                                    <option value="" disabled selected>Select:</option>
                                    <?php
                                    echo $StaffIDs;

                                    ?>
                                </select>
                                <span><?php echo "<p class='error'>" . $username_err . "</p>"; ?></span>
                            </div>
                            <div class="form-row">
                                <div class="col">
                                    <label for="JobRole">Job Role</label>
                                    <select class="form-control" id="JobRole" name="JobRole">
                                        <option value="" disabled selected>Select:</option>
                                        <option value="Administrator">Administrator</option>
                                        <option value="Manager">Manager</option>
                                        <option value="Supervisor">Supervisor</option>
                                        <option value="Team Member">Team Member</option>
                                    </select>
                                    <span><?php echo "<p class='error'>" . $jobRole_err . "</p>"; ?></span>
                                </div>
                                <div class="col">
                                    <label for="Terminate">Terminate Account Date</label>
                                    <input class="form-control" type="date" id="Terminate" name="terminate" value="">
                                    <span><?php echo "<p class='error'>" . $terminateD_err . "</p>"; ?></span>
                                </div>
                            </div>


                            <div class="form-group">
                                <label for="pwd">Password:</label>
                                <input type="password"
                                       class="form-control <?php echo (!empty($password_err)) ? 'is-invalid' : ''; ?>"
                                       name="pwd" id="pwd" placeholder="Password">
                                <span>
                                <p id="lenght" class="noSpace"><b class="noSpace is_invalid">X</b> Longer than 9 characters</p>
                                <p id="number" class="noSpace"><b class="noSpace is_invalid">X</b> contains 1 number</p>
                                <p id="capital" class="noSpace"><b class="noSpace is_invalid">X</b> contains 1 uppercase letter</p>
                                <p id="lower" class="noSpace"><b class="noSpace is_invalid">X</b> contains 1 lowercase letter</p>

                            </span>
                                <span><?php echo "<p class='error'>" . $password_err . "</p>"; ?></span>
                            </div>
                            <div class="form-group">
                                <label for="pwdr">Re-enter Password:</label>
                                <input type="password"
                                       class="form-control <?php echo (!empty($password_err2)) ? 'is-invalid' : ''; ?>"
                                       name="pwdr" id="pwdr" placeholder="Re-enter Password">
                                <span id="pwd2p"></span>
                                <span><?php echo "<p class='error'>" . $password_err2 . "</p>"; ?></span>
                            </div>

                            <div class="form-group">
                                <input type="submit" class="btn btn-danger btn-block" value="Create">
                            </div>

                        </form>

                    </div>


                </main>
            </div>
        </div>


    </div>
    <?php include "../Templates/Footer.php"; ?>

</div>

</body>
</html>
