function nick_changer_change_username($userinfo, $username)
{
    global $vbulletin;
    if (!nick_changer_can_change_username($userinfo)) {
        return false;
    }
    if ($userinfo['username'] != $username) {
        $old_username = $userinfo['username'];
        $dataman =& datamanager_init('User', $vbulletin, ERRTYPE_ARRAY);
        $dataman->set_existing($userinfo);
        // If this is the first post, we close the thread as "Moderated"
        $dataman->set('nick_changer_last_change', TIMENOW);
        $dataman->set('username', $username);
        $dataman->set('nick_changer_last_username', $old_username);
        $dataman->pre_save();
        if (!empty($dataman->errors)) {
            return $dataman->errors;
        } else {
            $dataman->save();
            $vbulletin->db->query_write("INSERT INTO `" . TABLE_PREFIX . "nick_changer_usernames` (userid, username, dateline) \n  \t  VALUES (\n  \t  " . $userinfo['userid'] . ",\n  \t  '" . $vbulletin->db->escape_string($old_username) . "',\n  \t  " . TIMENOW . "\n  \t  );\n  \t  ");
            nick_changer_create_usernote($old_username);
        }
    } else {
        return false;
    }
    return true;
}
            $days = construct_phrase($vbphrase['nick_changer_no_permission_days'], $days);
        } else {
            $days = "";
        }
        eval('$HTML = "' . fetch_template('nick_changer_no_permission') . '";');
    }
    eval('print_output("' . fetch_template($shelltemplatename) . '");');
}
if ($_REQUEST['do'] == 'dochance_username') {
    $vbulletin->input->clean_array_gpc('p', array('username' => TYPE_STR, "username_confirmation" => TYPE_UINT));
    if (!$vbulletin->GPC['username_confirmation']) {
        $vbulletin->url = "nick_changer.php";
        eval(standard_error(fetch_error('nick_changer_not_confirmed', $vbphrase['nick_changer_username_confirmation'])));
        exit(0);
    }
    if (nick_changer_can_change_username($vbulletin->userinfo) || empty($vbulletin->GPC['username'])) {
        $errors = nick_changer_change_username($vbulletin->userinfo, $vbulletin->GPC['username']);
        if ($errors !== true) {
            if (is_array($errors)) {
                $errorlist = '<ul>';
                foreach ($errors as $index => $error) {
                    $errorlist .= "<li>{$error}</li>";
                }
                $errorlist .= "</ul>";
                eval(standard_error(fetch_error('nick_changer_errors', $vbulletin->GPC['username'], $errorlist)));
            } else {
                if ($errors === false) {
                    eval(standard_error(fetch_error('nick_changer_not_changed', $vbulletin->GPC['username'])));
                }
            }
        } else {