<?php
include("admin/includes/header.php");
if (isset($_SESSION['user_type']) && $_SESSION['user_type'] == 'superadmin') {
  
} else {
   
    // If the user is not admin, redirect or show an error
        header("Location: login.php");
		exit();	
}

$msg='';
$msgtype='';

// Check if form is submitted
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = trim($_POST['username']);
    $name = trim($_POST['name']);
    $email = trim($_POST['email']);
    $password = trim($_POST['password']);
    $confirm_password = trim($_POST['confirm_password']);

    // Validate fields
    if (empty($username) || empty($name) || empty($email) || empty($password) || empty($confirm_password)) {
        $msg = "All fields are required!";
        $msgtype = "red";
    } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $msg = "Invalid email format!";
        $msgtype = "red";
    } elseif ($password !== $confirm_password) {
        $msg = "Passwords do not match!";
        $msgtype = "red";
    } else {
        // Secure password hashing
        $hashedPassword = password_hash($password, PASSWORD_BCRYPT);

        // Database connection
        $db = new Connection();
        
		
        $findemail = $db->QueryCount("SELECT email FROM admin_users WHERE email = '$email'");
		$findusername = $db->QueryCount("SELECT username FROM admin_users WHERE username = '$username'");
        $findname = $db->QueryCount("SELECT name FROM admin_users WHERE name = '$name'");
		if($findemail>0){
		$msg = "Error: Duplicate Email Address" ;
         $msgtype = "danger";
	//	header("Location: register.php");
		//exit();		
		}elseif($findusername>0 && $findemail==0){
		$msg = "Error: Duplicate Username" ;
         $msgtype = "danger";
	//	header("Location: register.php");
	//	exit();	
		
		}elseif($findname>0 && $findusername==0 && $findemail==0 ){
		$msg = "Error: Duplicate Name" ;
         $msgtype = "red";
	//	header("Location: register.danger");
	//	exit();	
		
		}else
		{
		date_default_timezone_set("Asia/Kolkata");
		$created_at=date("Y-m-d H:i:s");
		$updated_at=date("Y-m-d H:i:s");
		// Insert user into database
        $inserted = $db->execute("INSERT INTO admin_users (name, username, email, password,created_at,updated_at) VALUES ('$name', '$username', '$email', '$hashedPassword', '$created_at', '$updated_at')");
        
        if ($inserted ) {
            $msg = "Registration successful! You can now log in.";
            $msgtype = "success";
        //    header("Location: register.php");
          //  exit();
        }else {
            $msg = "Error: " . mysqli_connect_errno();
            $msgtype = "danger";
        }
		}
        
    }
	?>
		<script>
		setTimeout(function() {
    window.location.href = "register.php"; // Replace with your desired URL
}, 5000); 
		</script>
		<?php
    //header("Location: register.php");
   // exit();
}
?>



    
<div class="container">
    <div class="row justify-content-center" style="margin-top: 50px;">
        <div class="col-md-6">
            <div class="card">
                <div class="card-header text-center">
                    <h3 class="card-title">Register</h3>
                </div>
                <div class="card-body">
                    
                    <?php
                    if (isset($msg)) {
                        if(!empty($msg))
                        {
                        echo '<div class="alert alert-' . htmlspecialchars($msgtype) . ' text-center" role="alert">' . htmlspecialchars($msg) . '</div>';
                        }
                    }
                    ?>

                    <form method="post" action="">
                        <div class="form-group">
                            <label for="name">Name<span class="text-danger">*</span>:</label>
                            <input type="text" id="name" name="name" class="form-control" required />
                        </div>

                        <div class="form-group">
                            <label for="email">Email<span class="text-danger">*</span>:</label>
                            <input type="email" id="email" name="email" class="form-control" required />
                        </div>

                        <div class="form-group">
                            <label for="username">Username<span class="text-danger">*</span>:</label>
                            <input type="text" id="username" name="username" class="form-control" required />
                        </div>

                        <div class="form-group">
                            <label for="password">Password<span class="text-danger">*</span>:</label>
                            <div class="input-group">
                                <input type="password" id="new_password" name="password" class="form-control" required />
                                <div class="input-group-append">
                                    <span class="input-group-text" onclick="togglePassword('new_password', 'toggleIcon_password')">
                                        <i id="toggleIcon_password" class="fa fa-eye"></i>
                                    </span>
                                    <span class="input-group-text" onclick="generatePassword(16)">
                                        <i id="toggleIcon_password" class="fa fa-refresh"></i>
                                    </span>
                                </div>
                            </div>
							<p id="error-message" class="text-sm mt-2"></p>
                        </div>

                        <div class="form-group">
                            <label for="confirm_password">Confirm Password<span class="text-danger">*</span>:</label>
                            <div class="input-group">
                                <input type="password" id="confirm_new_password" name="confirm_password" class="form-control" required />
                                <div class="input-group-append">
                                    <span class="input-group-text" onclick="togglePassword('confirm_new_password', 'toggleIcon_confirm')">
                                        <i id="toggleIcon_confirm" class="fa fa-eye"></i>
                                    </span>
                                </div>
                            </div>
							<p id="confirm-error-message" class="text-sm mt-2"></p>
                        </div>

                        <button type="submit" disabled name="register" id="register" class="btn btn-secondary btn-block">Register</button>


                        <div class="text-center" style="margin-top: 10px;">
                            <a href="login.php">Back to Portal</a>
                        </div>
                    </form>

                </div>
            </div>
        </div>
    </div>
</div>
<script src="js/jquery-3.6.0.min.js"></script>
<script>
        $(document).ready(function () {
			
            function validatePassword() {
			
                let password = $("#new_password").val();
                let confirmPassword = $("#confirm_new_password").val();
                let minLength = password.length >= 10;
                let specialChar = /[@#$%&]/.test(password);
                let upperCase = /[A-Z]/.test(password);
                let lowerCase = /[a-z]/.test(password);
                let isValid = minLength && specialChar && upperCase && lowerCase;
                let errorMessage = $("#error-message");
                let confirmErrorMessage = $("#confirm-error-message");
                if (!minLength) {
                    errorMessage.text("Password must be at least 10 characters long.").removeClass("text-success").addClass("text-danger");
                } else if (!specialChar) {
                    errorMessage.text("Password must include at least one of @, #, $, %, &.").removeClass("text-success").addClass("text-danger");
                } else if (!upperCase) {
                    errorMessage.text("Password must include at least one uppercase letter.").removeClass("text-success").addClass("text-danger");
                } else if (!lowerCase) {
                    errorMessage.text("Password must include at least one lowercase letter.").removeClass("text-success").addClass("text-danger");
                } else {
                    errorMessage.text("Password is strong!").removeClass("text-danger").addClass("text-success");
                }
                if (confirmPassword.length > 0) {
                    if (password !== confirmPassword) {
                        
                        confirmErrorMessage.text("Passwords do not match.").removeClass("text-success").addClass("text-danger");
                        isValid = false;
                    } else {
                        confirmErrorMessage.text("Passwords match!").removeClass("text-danger").addClass("text-success");
                        
                         console.log(isValid);
                    }
                } else {
                    confirmErrorMessage.text("");
                }
                if (isValid) {
                
                     $("#register").removeAttr("disabled").removeClass("btn-secondary").addClass("btn-primary");
                } else {
                    $("#register").attr("disabled", "disabled").removeClass("btn-primary").addClass("btn-secondary");
                }
            }
            $("#new_password, #confirm_new_password").on("input", validatePassword);
        });
        
        function generatePassword(length = 16) {
    const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_-+=<>?';
    let password = '';
    for (let i = 0; i < length; i++) {
        const randomIndex = Math.floor(Math.random() * charset.length);
        password += charset[randomIndex];
    }
     var input = document.getElementById('new_password');
     input.value = password;
  
}

		function togglePassword(inputId, iconId) {
        var input = document.getElementById(inputId);
        var icon = document.getElementById(iconId);

        if (input.type === "password") {
            input.type = "text";
            icon.classList.remove("fa-eye");
            icon.classList.add("fa-eye-slash");
        } else {
            input.type = "password";
            icon.classList.remove("fa-eye-slash");
            icon.classList.add("fa-eye");
        }
    }
    </script>
</body>
</html>