<?php
	$UserName = $Password = $RePassword = $Email = $First_Name = $Last_Name = $Phone = "";
	$UserNameErr = $PasswordErr = $RePasswordErr = $EmailErr = $First_NameErr = $Last_NameErr = $PhoneErr = "";
	$error = 0;
	$GLOBALS["status"] = "Test";
	
	if (!empty($_POST["signup"])) {
		if (empty($_POST["username"])) {
			$UserNameErr = "UserName is required";
			$error++;
		}
		else {
			$UserName = test_input($_POST["username"]);
			$UserName = filter_var($UserName, FILTER_SANITIZE_STRING);
			if (!preg_match("/^[a-zA-Z0-9]*$/", $UserName)) {
				$UserNameErr= "UserName can only have letters and numbers";
				$error++;
			}
		}
		
		if (empty($_POST["password"])) {
			$PasswordErr = "Password is required";
			$error++;
		}
		else {
			$Password = test_input($_POST["password"]);
			$Password = filter_var($Password, FILTER_SANITIZE_STRING);
			if (!preg_match("/^[a-zA-Z0-9]*$/", $Password)) {
				$PasswordErr = "Password can only have letters and numbers";
				$error++;
			}
		}
		
		if (empty($_POST["repassword"])) {
			$RePasswordErr = "You must re-enter your password";
			$error++;
		}
		else {
			$RePassword = test_input($_POST["repassword"]);
			$RePassword = filter_var($RePassword, FILTER_SANITIZE_STRING);
			if (!preg_match("/^[a-zA-Z0-9]*$/", $RePassword)) {
				$RePasswordErr = "Password can only have letter and numbers";
				$error++;
			}
		}
		
		if ($Password !== $RePassword) {
			$PasswordErr = "Passwords do not match";
			$error++;
		}
		
		if (empty($_POST["first_name"])) {
			$First_NameErr = "First name is required";
			$error++;
		}
		else {
			$First_Name = test_input($_POST["first_name"]);
			$First_Name = filter_var($First_Name, FILTER_SANITIZE_STRING);
			if (!preg_match("/^[a-zA-Z]*$/", $First_Name)) {
				$First_NameErr = "First name can only contain letters";
				$error++;
			}
		}
		
		if (empty($_POST["last_name"])) {
			$Last_NameErr = "Last name is required";
			$error++;
		}
		else {
			$Last_Name = test_input($_POST["last_name"]);
			$Last_Name = filter_var($Last_Name, FILTER_SANITIZE_STRING);
			if (!preg_match("/^[a-zA-Z]*$/", $Last_Name)) {
				$Last_NameErr = "Last name can only contain letters";
				$error++;
			}
		}
		
		if (empty($_POST["email"])) {
			$EmailErr = "Email is required";
			$error++;
		}
		else {
			$Email = test_input($_POST["email"]);
			$Email = filter_var($Email, FILTER_SANITIZE_EMAIL);
			if(!filter_var($Email, FILTER_VALIDATE_EMAIL)) {
				$EmailErr = "Invalid email format";
				$error++;
			}
		}
		
		if (empty($_POST["phone"])) {
			$PhoneErr = "Phone number is required";
			$error++;
		}
		else {
			$Phone = test_input($_POST["phone"]);
			$Phone = filter_var($Phone, FILTER_SANITIZE_NUMBER_INT);
			if (!preg_match("/^[0-9]*$/", $Phone)) {
				$PhoneErr = "Phone number can only contain numbers";
				$error++;
			}
		}
		
		if (strlen($Phone) != 11) {
			$PhoneErr = "Phone number must contain at 11 digits";
			$error++;
		}
		
		if ($error == 0) {
			SignUp($UserName, $Password, $First_Name, $Last_Name, $Email, $Phone);
		}
	}
	
	function test_input($data)
	{
		$data = trim($data);
		$data = stripslashes($data);
		$data = htmlspecialchars($data);
		return $data;
	}
	
	function SignUp($UserName, $Password, $First_Name, $Last_Name, $Email, $Phone)
	{
		$ServerName = "localhost";
		$ServerUserName = "root";
		$ServerPassword = "root";
		$dbName = "brentswelding";
		
		//Create Connection
		$conDataBase = new mysqli($ServerName, $ServerUserName, $ServerPassword);
		if ($conDataBase->connect_error) {
			die ("Connection Failed");
		}
		
		$tmp = mysqli_escape_string($conDataBase, $UserName);
		
		$sql = "select * from brentswelding.users where username='".$tmp."';";
		$result = mysqli_query($conDataBase, $sql);
		$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
		$count = mysqli_num_rows($result);
		
		if ($count !== 1) {
			$sql = "INSERT INTO brentswelding.users (username,password,firstname,lastname,email,phone) VALUES('".$UserName."','".$Password."','".$First_Name."','".$Last_Name."','".$Email."','".$Phone."')";
			if ($conDataBase->query($sql) === TRUE) {
				$status = "Done";
				echo ("<script>alert('done');</script>");
				//echo ("Done");
			}
		}
		else {
			$GLOBALS["status"] = "UserName Already in use";
			return;
		}
		$conDataBase->close();
		
		//Finish Function Here
	}
?>