include_once ROOT_DIR . '/core/class/FormHelper.php';
include_once ROOT_DIR . '/core/class/DataValidator.php';
$errors = array();
$messages = array();
$data = array();
$userCategories = array('admin' => 'RMH Administrator', 'rmhstaff' => 'RMH Staff Approver', 'socialworker' => 'Social Worker');
$userType = 'socialworker';
//default user type
if (isset($_POST['form_token'])) {
    $userType = sanitize($_POST['userGroup']);
    try {
        //form validation rules. should have all the fields included
        $addUserValidationRules = array('userGroup' => array('notempty'), 'title' => array('alpha', 'allow' => array('.')), 'fname' => array('alpha'), 'lname' => array('alpha'), 'phone' => array('number', 'allow' => array('-', '(', ')', '.')), 'username' => array('alphanumeric'), 'email' => array('email'), 'hospital' => array('notempty'), 'notify' => array('notempty'), 'submit' => array('ignore'));
        $validator = new DataValidator($_POST, $addUserValidationRules);
        $data = $validator->getData();
        if ($validator->isValid()) {
            //the validation was successful, perform required operation here below.
            $userType = $data['userGroup'];
            $title = $data['title'];
            $username = $data['username'];
            if (retrieve_UserByAuth($username)) {
                //if user already exists, add error message to validation field
                $validator->setError('username', 'Username already exists');
                throw new DuplicateUserException('Username already exists');
            }
            $fname = $data['fname'];
            $lname = $data['lname'];
            $phone = $data['phone'];
            $email = $data['email'];
            //data for social worker, extra info that rmh staff don't have
            if (isset($userType) && $userType == 'socialworker') {