<input type="hidden" name="redirect" value="' . htmlspecialchars($_CLASS['core_user']->url) . '" />
			<input class="button" type="submit" name="login" value="' . $_CLASS['core_user']->lang['LOGIN'] . '" /><br/>
		</td>
	</tr>
	<tr>
		<td colspan="2">
			<input name="autologin" type="checkbox"><span class="gensmall">Remmeber me</span>
		</td>
	</tr>
	</table>
</form>';
}
$who_where['guest'] = $who_where['user'] = $who_where['staff'] = false;
$online['guest'] = $online['user'] = $online['hidden'] = $online['total'] = 0;
$prev_ip = $prev_id = array();
$session_users = session_users();
foreach ($session_users as $row) {
    if ($row['user_id'] != ANONYMOUS && !in_array($row['user_id'], $prev_ip)) {
        if (!$_CLASS['core_user']->is_admin && (!$row['user_allow_viewonline'] || $row['session_hidden'])) {
            $online['hidden']++;
            continue;
        } else {
            $online['user']++;
        }
        if ($row['user_colour']) {
            $row['username'] = '******' . $row['user_colour'] . '">' . $row['username'] . '</b>';
        }
        $prev_id[] = $row['user_id'];
    } elseif ($row['user_id'] == ANONYMOUS && !in_array($row['session_ip'], $prev_ip)) {
        $online['guest']++;
    } else {
function page_header()
{
    global $config, $SID, $_CLASS, $_CORE_CONFIG;
    define('HEADER_INC', TRUE);
    // Generate logged in/logged out status
    if ($_CLASS['core_user']->is_user) {
        $u_login_logout = generate_link('Control_Panel&amp;mode=logout');
        $l_login_logout = sprintf($_CLASS['core_user']->lang['LOGOUT_USER'], $_CLASS['core_user']->data['username']);
    } elseif (!$_CLASS['core_user']->is_bot) {
        $u_login_logout = generate_link('Control_Panel&amp;mode=login');
        $l_login_logout = $_CLASS['core_user']->lang['LOGIN'];
    }
    // Last visit date/time
    $s_last_visit = $_CLASS['core_user']->is_user ? $_CLASS['core_user']->format_date($_CLASS['core_user']->data['session_last_visit']) : '';
    // Get users online list ... if required
    $l_online_users = $online_userlist = $l_online_record = $l_online_time = '';
    if ($config['load_online'] && $config['load_online_time']) {
        $userlist_ary = $userlist_visible = array();
        $logged_visible_online = $logged_hidden_online = $guests_online = $prev_user_id = 0;
        $prev_session_ip = $reading_sql = '';
        //////////////////
        /// Need to fix this\
        /// Think about removing session_users();
        /////////////////
        if (!empty($_REQUEST['f'])) {
            $f = request_var('f', 0);
            $reading_sql = "AND s.session_url LIKE '%f={$f}%'";
        }
        $session_users = session_users();
        foreach ($session_users as $row) {
            // User is logged in and therefor not a guest
            if ($row['user_id'] != ANONYMOUS) {
                // Skip multiple sessions for one user
                if ($row['user_id'] != $prev_user_id) {
                    if ($row['user_colour']) {
                        $row['username'] = '******' . $row['user_colour'] . '">' . $row['username'] . '</b>';
                    }
                    if ($row['user_allow_viewonline'] && !$row['session_hidden']) {
                        $user_online_link = $row['username'];
                        $logged_visible_online++;
                    } else {
                        $user_online_link = '<i>' . $row['username'] . '</i>';
                        $logged_hidden_online++;
                    }
                    // Fix this
                    if ($row['user_allow_viewonline'] || $_CLASS['auth']->acl_get('u_viewonline')) {
                        $user_online_link = $row['user_type'] & USER_BOT ? "<a href=\"" . generate_link('Members_List&amp;&amp;mode=viewprofile&amp;u=' . $row['user_id']) . '">' . $user_online_link . '</a>' : $user_online_link;
                        $online_userlist .= $online_userlist != '' ? ', ' . $user_online_link : $user_online_link;
                    }
                }
                $prev_user_id = $row['user_id'];
            } else {
                // Skip multiple sessions for one user
                if ($row['session_ip'] != $prev_session_ip) {
                    $guests_online++;
                }
            }
            $prev_session_ip = $row['session_ip'];
        }
        unset($session_users);
        if (!$online_userlist) {
            $online_userlist = $_CLASS['core_user']->lang['NONE'];
        }
        if (empty($_REQUEST['f'])) {
            $online_userlist = $_CLASS['core_user']->lang['REGISTERED_USERS'] . ' ' . $online_userlist;
        } else {
            $l_online = $guests_online == 1 ? $_CLASS['core_user']->lang['BROWSING_FORUM_GUEST'] : $_CLASS['core_user']->lang['BROWSING_FORUM_GUESTS'];
            $online_userlist = sprintf($l_online, $online_userlist, $guests_online);
        }
        $total_online_users = $logged_visible_online + $logged_hidden_online + $guests_online;
        if ($total_online_users > $config['record_online_users']) {
            set_config('record_online_users', $total_online_users, TRUE);
            set_config('record_online_date', time(), TRUE);
        }
        // Build online listing
        $vars_online = array('ONLINE' => array('total_online_users', 'l_t_user_s'), 'REG' => array('logged_visible_online', 'l_r_user_s'), 'HIDDEN' => array('logged_hidden_online', 'l_h_user_s'), 'GUEST' => array('guests_online', 'l_g_user_s'));
        foreach ($vars_online as $l_prefix => $var_ary) {
            switch (${$var_ary[0]}) {
                case 0:
                    ${$var_ary[1]} = $_CLASS['core_user']->lang[$l_prefix . '_USERS_ZERO_TOTAL'];
                    break;
                case 1:
                    ${$var_ary[1]} = $_CLASS['core_user']->lang[$l_prefix . '_USER_TOTAL'];
                    break;
                default:
                    ${$var_ary[1]} = $_CLASS['core_user']->lang[$l_prefix . '_USERS_TOTAL'];
                    break;
            }
        }
        unset($vars_online);
        $l_online_users = sprintf($l_t_user_s, $total_online_users);
        $l_online_users .= sprintf($l_r_user_s, $logged_visible_online);
        $l_online_users .= sprintf($l_h_user_s, $logged_hidden_online);
        $l_online_users .= sprintf($l_g_user_s, $guests_online);
        $l_online_record = sprintf($_CLASS['core_user']->lang['RECORD_ONLINE_USERS'], $config['record_online_users'], $_CLASS['core_user']->format_date($config['record_online_date']));
        $l_online_time = $config['load_online_time'] == 1 ? 'VIEW_ONLINE_TIME' : 'VIEW_ONLINE_TIMES';
        $l_online_time = sprintf($_CLASS['core_user']->lang[$l_online_time], $config['load_online_time']);
    }
    $l_privmsgs_text = $l_privmsgs_text_unread = '';
    // Obtain number of new private messages if user is logged in
    if ($_CLASS['core_user']->is_user) {
        if ($_CLASS['core_user']->data['user_new_privmsg']) {
            $l_message_new = $_CLASS['core_user']->data['user_new_privmsg'] == 1 ? $_CLASS['core_user']->lang['NEW_PM'] : $_CLASS['core_user']->lang['NEW_PMS'];
            $l_privmsgs_text = sprintf($l_message_new, $_CLASS['core_user']->data['user_new_privmsg']);
        } else {
            $l_privmsgs_text = $_CLASS['core_user']->lang['NO_NEW_PM'];
        }
        $l_privmsgs_text_unread = '';
        if ($_CLASS['core_user']->data['user_unread_privmsg'] && $_CLASS['core_user']->data['user_unread_privmsg'] != $_CLASS['core_user']->data['user_new_privmsg']) {
            $l_message_unread = $_CLASS['core_user']->data['user_unread_privmsg'] == 1 ? $_CLASS['core_user']->lang['UNREAD_PM'] : $_CLASS['core_user']->lang['UNREAD_PMS'];
            $l_privmsgs_text_unread = sprintf($l_message_unread, $_CLASS['core_user']->data['user_unread_privmsg']);
        }
    }
    // Which timezone?
    $tz = $_CLASS['core_user']->is_user ? strval(doubleval($_CLASS['core_user']->data['user_timezone'])) : strval(doubleval($_CORE_CONFIG['global']['default_timezone']));
    // The following assigns all _common_ variables that may be used at any point
    // in a template.
    $_CLASS['core_template']->assign_array(array('LAST_VISIT_DATE' => sprintf($_CLASS['core_user']->lang['YOU_LAST_VISIT'], $s_last_visit), 'CURRENT_TIME' => sprintf($_CLASS['core_user']->lang['CURRENT_TIME'], $_CLASS['core_user']->format_date(time(), false, true)), 'TOTAL_USERS_ONLINE' => $l_online_users, 'LOGGED_IN_USER_LIST' => $online_userlist, 'RECORD_USERS' => $l_online_record, 'PRIVATE_MESSAGE_INFO' => $l_privmsgs_text, 'PRIVATE_MESSAGE_INFO_UNREAD' => $l_privmsgs_text_unread, 'L_LOGIN_LOGOUT' => $l_login_logout, 'L_REGISTER' => $_CLASS['core_user']->lang['REGISTER'], 'L_INDEX' => $_CLASS['core_user']->lang['FORUM_INDEX'], 'L_ONLINE_EXPLAIN' => $l_online_time, 'U_PRIVATEMSGS' => generate_link('Control_Panel&amp;i=pm&amp;mode=' . ($_CLASS['core_user']->data['user_new_privmsg'] || $l_privmsgs_text_unread ? 'unread' : 'view_messages')), 'U_RETURN_INBOX' => generate_link("Control_Panel&amp;i=pm&amp;folder=inbox"), 'U_MEMBERLIST' => generate_link('Members_List'), 'U_VIEWONLINE' => generate_link('View_Online'), 'U_MEMBERSLIST' => generate_link('Members_List'), 'U_LOGIN_LOGOUT' => $u_login_logout, 'U_INDEX' => generate_link('Forums'), 'U_SEARCH' => generate_link('Forums&amp;file=search'), 'U_REGISTER' => generate_link('Control_Panel&amp;mode=register'), 'U_PROFILE' => generate_link('Control_Panel'), 'U_MODCP' => generate_link('Forums&amp;file=mcp'), 'U_FAQ' => generate_link('Forums&amp;file=faq'), 'U_SEARCH_SELF' => generate_link('Forums&amp;file=search&amp;search_id=egosearch'), 'U_SEARCH_NEW' => generate_link('Forums&amp;file=search&amp;search_id=newposts'), 'U_SEARCH_UNANSWERED' => generate_link('Forums&amp;file=search&amp;search_id=unanswered'), 'U_SEARCH_ACTIVE_TOPICS' => generate_link('Forums&amp;file=search&amp;search_id=active_topics'), 'U_DELETE_COOKIES' => generate_link('Control_Panel&amp;mode=delete_cookies'), 'S_USER_LOGGED_IN' => $_CLASS['core_user']->data['user_id'] != ANONYMOUS ? true : false, 'S_REGISTERED_USER' => $_CLASS['core_user']->is_user, 'S_USER_PM_POPUP' => $_CLASS['core_user']->optionget('popuppm'), 'S_USER_LANG' => $_CLASS['core_user']->data['user_lang'], 'S_USER_BROWSER' => $_CLASS['core_user']->data['session_browser'] ? $_CLASS['core_user']->data['session_browser'] : $_CLASS['core_user']->lang['UNKNOWN_BROWSER'], 'S_CONTENT_DIRECTION' => $_CLASS['core_user']->lang['DIRECTION'], 'S_CONTENT_ENCODING' => 'UTF-8', 'S_CONTENT_DIR_LEFT' => $_CLASS['core_user']->lang['LEFT'], 'S_CONTENT_DIR_RIGHT' => $_CLASS['core_user']->lang['RIGHT'], 'S_TIMEZONE' => $_CLASS['core_user']->data['user_dst'] || !$_CLASS['core_user']->is_user && $_CORE_CONFIG['global']['default_dst'] ? sprintf($_CLASS['core_user']->lang['ALL_TIMES'], $_CLASS['core_user']->lang['tz'][$tz / 3600], $_CLASS['core_user']->lang['tz']['dst']) : sprintf($_CLASS['core_user']->lang['ALL_TIMES'], $_CLASS['core_user']->lang['tz'][$tz / 3600], ''), 'S_DISPLAY_ONLINE_LIST' => $config['load_online'] ? 1 : 0, 'S_DISPLAY_SEARCH' => $config['load_search'] ? 1 : 0, 'S_DISPLAY_PM' => $config['allow_privmsg'] ? 1 : 0, 'S_DISPLAY_MEMBERLIST' => $_CLASS['auth']->acl_get('u_viewprofile'), 'T_SMILIES_PATH' => "{$config['smilies_path']}/", 'T_AVATAR_PATH' => "{$config['avatar_path']}/", 'T_AVATAR_GALLERY_PATH' => "{$config['avatar_gallery_path']}/", 'T_ICONS_PATH' => "{$config['icons_path']}/", 'T_RANKS_PATH' => "{$config['ranks_path']}/", 'T_UPLOAD_PATH' => "{$config['upload_path']}/", 'T_IMAGE_PATH' => "themes/viperal/template/modules/Forums/images/", 'U_ACP' => $_CLASS['core_user']->is_admin && $_CLASS['auth']->acl_get('a_') ? generate_link('Forums', array('admin' => true)) : '', 'L_ACP' => $_CLASS['core_user']->lang['ACP']));
}