<?php

/********************************************************************************************************************************
*
*  Status update (/inc/plugins/statusupfates.php)
*  Author: Krzysztof "Supryk" Supryczyński
*  Copyright: © 2013 - 2016 @ Krzysztof "Supryk" Supryczyński @ All rights reserved
*  
*  Website: 
*  Description: User status update like IP.Board.
*
********************************************************************************************************************************/
/********************************************************************************************************************************
*
* This file is part of "Status update" plugin for MyBB.
* Copyright © 2013 - 2016 @ Krzysztof "Supryk" Supryczyński @ All rights reserved
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
*
********************************************************************************************************************************/

if(!defined("IN_MYBB"))
{
	die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}

$plugins->add_hook("admin_config_settings_manage", "statusupdate_admin_lang_load");
$plugins->add_hook("admin_config_settings_change", "statusupdate_admin_lang_load");
$plugins->add_hook("admin_config_settings_start", "statusupdate_admin_lang_load");
$plugins->add_hook("admin_style_templates_set", "statusupdate_admin_lang_load");
$plugins->add_hook("admin_user_groups_edit_graph_tabs", "statusupdate_groups_graph_tabs");
$plugins->add_hook("admin_user_groups_edit_graph", "statusupdate_groups_graph");
$plugins->add_hook("admin_user_groups_edit_commit", "statusupdate_groups_commit");
$plugins->add_hook("usercp_menu_built", "statusupdate_usercp_menu_built");
$plugins->add_hook("usercp_start", "statusupdate_usercp");
$plugins->add_hook("index_start", "statusupdate_index");
$plugins->add_hook("fetch_wol_activity_end", "statusupdate_fetch_wol_activity_end");
$plugins->add_hook("build_friendly_wol_location_end", "statusupdate_build_friendly_wol_location_end");
$plugins->add_hook("global_start", "statusupdate_templatelist");

function statusupdate_info()
{
    global $lang;
    $lang->load("config_statusupdate");
	
	return array(
		"name"				=> $lang->statusupdate,
		"description"		=> $lang->statusupdate_desc,
		"website"			=> "",
		"author"			=> "Krzysztof \"Supryk\" Supryczyński",
		"authorsite"		=> "",
		"version"			=> "1.1",
		"compatibility"		=> "1801,1812,1803,1804,1805,1806,1807,1808",
		"codename"			=> "status_update",
	);
}

function statusupdate_is_installed()
{
	global $db;

	return $db->num_rows($db->simple_select("settinggroups", "*", "name=\"statusupdate\""));
}

function statusupdate_install()
{
	global $db, $lang, $mybb, $cache, $session;
	$lang->load("config_statusupdate");
	
	if(!file_exists(MYBB_ROOT."statusupdate.php")) 
	{
		flash_message($lang->statusupdate_upload_all_files, 'error');
		admin_redirect("index.php?module=config-plugins");
	}
	
	if(!$db->table_exists("statusupdate"))
	{
		$db->write_query("CREATE TABLE ".TABLE_PREFIX."statusupdate (
			`sid` INT NOT NULL auto_increment,
			`uid` TEXT NOT NULL,
			`text` TEXT NOT NULL,
			`dateline` TEXT NOT NULL,
			`lastedituid` TEXT NOT NULL,		
			`lasteditdate` TEXT NOT NULL,
			`totalcomments` INT(10) NOT NULL DEFAULT '0',
			`ipaddress` VARBINARY(16) NOT NULL DEFAULT '',
			PRIMARY KEY  (`sid`)
			) ENGINE=MyISAM ".$db->build_create_table_collation().";
		");
	}
	
	if(!$db->table_exists("statusupdatecomments"))
	{
		$db->write_query("CREATE TABLE ".TABLE_PREFIX."statusupdatecomments (
			`cid` INT NOT NULL auto_increment,
			`sid` TEXT NOT NULL,
			`uid` TEXT NOT NULL,
			`text` TEXT NOT NULL,
			`dateline` TEXT NOT NULL,
			`ipaddress` VARBINARY(16) NOT NULL DEFAULT '',
			PRIMARY KEY  (`cid`)
			) ENGINE=MyISAM ".$db->build_create_table_collation().";
		");
	}

	if(!$db->field_exists("canviewstatusupdate", "usergroups"))
	{
		$db->add_column("usergroups", "canviewstatusupdate", "TINYINT(1) NOT NULL DEFAULT '1'");
	}
	
	if(!$db->field_exists("canaddstatusupdate", "usergroups"))
	{
		$db->add_column("usergroups", "canaddstatusupdate", "TINYINT(1) NOT NULL DEFAULT '1'");
	}
	
	if(!$db->field_exists("caneditownstatusupdate", "usergroups"))
	{
		$db->add_column("usergroups", "caneditownstatusupdate", "TINYINT(1) NOT NULL DEFAULT '1'");
	}
	
	if(!$db->field_exists("candeleteownstatusupdate", "usergroups"))
	{
		$db->add_column("usergroups", "candeleteownstatusupdate", "TINYINT(1) NOT NULL DEFAULT '1'");
	}
	
	if(!$db->field_exists("maxstatusupdateperday", "usergroups"))
	{
		$db->add_column("usergroups", "maxstatusupdateperday", "INT(4) NOT NULL DEFAULT '0'");
	}
	
	if(!$db->field_exists("canviewstatusupdatecomments", "usergroups"))
	{
		$db->add_column("usergroups", "canviewstatusupdatecomments", "TINYINT(1) NOT NULL DEFAULT '1'");
	}
	
	if(!$db->field_exists("canaddstatusupdatecomments", "usergroups"))
	{
		$db->add_column("usergroups", "canaddstatusupdatecomments", "TINYINT(1) NOT NULL DEFAULT '1'");
	}

	if(!$db->field_exists("caneditownstatusupdatecomments", "usergroups"))
	{
		$db->add_column("usergroups", "caneditownstatusupdatecomments", "TINYINT(1) NOT NULL DEFAULT '1'");
	}
	
	if(!$db->field_exists("candeleteownstatusupdatecomments", "usergroups"))
	{
		$db->add_column("usergroups", "candeleteownstatusupdatecomments", "TINYINT(1) NOT NULL DEFAULT '1'");
	}
	
	$usergroups = array(
		"canviewstatusupdate" => $db->escape_string("1"),
		"canaddstatusupdate" => $db->escape_string("1"),
		"caneditownstatusupdate" => $db->escape_string("1"),
		"candeleteownstatusupdate" => $db->escape_string("1"),
		"canviewstatusupdatecomments" => $db->escape_string("1"),
		"canaddstatusupdatecomments" => $db->escape_string("1"),
		"caneditownstatusupdatecomments" => $db->escape_string("1"),
		"candeleteownstatusupdatecomments" => $db->escape_string("1"),
	);
	$db->update_query("usergroups", $usergroups, "gid='3' OR gid='4' OR gid='6'");
	
	$usergroups = array(
		"canviewstatusupdate" => $db->escape_string("1"),
		"canaddstatusupdate" => $db->escape_string("0"),
		"caneditownstatusupdate" => $db->escape_string("0"),
		"candeleteownstatusupdate" => $db->escape_string("0"),
		"canviewstatusupdatecomments" => $db->escape_string("1"),
		"canaddstatusupdatecomments" => $db->escape_string("0"),
		"caneditownstatusupdatecomments" => $db->escape_string("0"),
		"candeleteownstatusupdatecomments" => $db->escape_string("0"),
	);
	$db->update_query("usergroups", $usergroups, "gid='1' OR gid='5' OR gid='7'");
	
	$cache->update_usergroups();
	
	$max_disporder = $db->fetch_field($db->simple_select("settinggroups", "MAX(disporder) AS max_disporder"), "max_disporder");
	
	$settinggroup = array(
	//	"gid"				=> "NULL",
		"name" 				=> "statusupdate", 
		"title"					=> $db->escape_string($lang->setting_group_statusupdate),
		"description" 		=> $db->escape_string($lang->setting_group_statusupdate_desc),
		"disporder" 		=> $max_disporder + 1,
		"isdefault" 		=> "0",
	);
	$gid = $db->insert_query("settinggroups", $settinggroup);
	
	$settings = array();
	
	$settings[] = array(
	//	"sid"					=> "NULL",
		"name"				=> "statusupdate_index_limit",
		"title"					=> $db->escape_string($lang->setting_statusupdate_index_limit),
		"description"		=> $db->escape_string($lang->setting_statusupdate_index_limit_desc),
		"optionscode"	=> "numeric",
		"value"				=> "5",
		"disporder"		=> "1",
		"gid"					=> $gid,
		"isdefault"			=> "0",
	);
	
	$settings[] = array(
	//	"sid"					=> "NULL",
		"name"				=> "statusupdate_usercp_limit",
		"title"					=> $db->escape_string($lang->setting_statusupdate_usercp_limit),
		"description"		=> $db->escape_string($lang->setting_statusupdate_usercp_limit_desc),
		"optionscode"	=> "numeric",
		"value"				=> "5",
		"disporder"		=> "2",
		"gid"					=> $gid,
		"isdefault"			=> "0",
	);
	
	$settings[] = array(
	//	"sid"					=> "NULL",
		"name"				=> "statusupdate_subpage_limit",
		"title"					=> $db->escape_string($lang->setting_statusupdate_subpag_limit),
		"description"		=> $db->escape_string($lang->setting_statusupdate_subpag_limit_desc),
		"optionscode"	=> "numeric",
		"value"				=> "10",
		"disporder"		=> "3",
		"gid"					=> $gid,
		"isdefault"			=> "0",
	);
	
	$settings[] = array(
	//	"sid"					=> "NULL",
		"name"				=> "statusupdate_max_status_symbols",
		"title"					=> $db->escape_string($lang->setting_statusupdate_max_status_symbols),
		"description"		=> $db->escape_string($lang->setting_statusupdate_max_status_symbols_desc),
		"optionscode"	=> "numeric",
		"value"				=> "50",
		"disporder"		=> "4",
		"gid"					=> $gid,
		"isdefault"			=> "0",
	);
	
	$settings[] = array(
	//	"sid"					=> "NULL",
		"name"				=> "statusupdate_max_comment_symbols",
		"title"					=> $db->escape_string($lang->setting_statusupdate_max_comment_symbols),
		"description"		=> $db->escape_string($lang->setting_statusupdate_max_comment_symbols_desc),
		"optionscode"	=> "numeric",
		"value"				=> "50",
		"disporder"		=> "5",
		"gid"					=> $gid,
		"isdefault"			=> "0",
	);
	
	$db->insert_query_multiple("settings", $settings);
	
	rebuild_settings();
	
	$templates = array();
	
	$templates[] = array(
	//	"tid" 			=> "NULL",
		"title" 		=> "statusupdate_script",
		"template" 		=> $db->escape_string('<script type="text/javascript">
$(document).ready(function() {
    var secondButton, button, buttonShow, buttonHide;
    buttonHide = "{$lang->statusupdate_hidecomments}";
    buttonShow = "{$lang->statusupdate_showcomments}";
    button = $(".showcomment");
    secondButton = $(".addcomment");
    button.html(buttonShow);
    button.click(function(e) {
        e.preventDefault();
        if (!$(this).nextAll(".showcomment_row").is(":animated")) {
            $(this).nextAll(".showcomment_row").slideToggle("slow", function() {
                if($(this).is(":visible")) {
                    $(this).prevAll(".showcomment:first").html(buttonHide);
                } else {
                    $(this).prevAll(".showcomment:first").html(buttonShow);
                }
            });
        }
    });
    secondButton.click(function(e) {
        e.preventDefault();
        if (!$(this).nextAll(".addcomment_row").is(":animated")) {
            $(this).nextAll(".addcomment_row").slideToggle("slow");
        }
    });
});
</script>'),
		"sid" 			=> "-1",
	);
		
	$templates[] = array(
	//	"tid" 			=> "NULL",
		"title" 		=> "statusupdate_index",
		"template" 		=> $db->escape_string('<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
	<tr>
		<td class="thead" colspan="2">
			<strong>{$lang->statusupdate_statusupdate}{$set}</strong>
		</td>
	</tr>
	{$tpl[\'row\']}
</table>
<br />'),
		"sid" 			=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 			=> "NULL",
		"title" 		=> "statusupdate_index_row",
		"template" 		=> $db->escape_string('<tr>
	<td class="{$altbg}">
		<table width="100%" border="0" cellpadding="0" cellspacing="0">
			<tr>
				<td style="width: 10%; vertical-align: top; text-align: center;">
					<img src="{$statususeravatar[\'image\']}" alt="" style="float: left;margin-right: 3px;" width="32" height="32"/>
				</td>
				<td style="width: 90%; vertical-align: top;">
					{$tpl[\'statusprofilelink\']}
					<span style="float: right; padding: 0 2px 0 0; vertical-align: top;">
					{$statusupdate_delete}{$statusupdate_edit}{$statusupdate_link}{$tpl[\'statusdate\']}
					</span>
				</td>
			</tr>
			<tr>
				<td style="width: 10%;">&nbsp;</td>
				<td style="width: 90%; padding: 2px;">
					{$tpl[\'statustext\']}
				</td>
			</tr>
			<tr>
				<td colspan="2" style="" class="smalltext">
					{$showcomments}{$commentcount}{$sep}{$addcomments}
					{$statusupdatecomment}
					{$statusupdatecommentform}
				</td>
			</tr>
		</table>
	</td>
</tr>'),
		"sid" 			=> "-1",
	);

	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate_index_row_show_all",
		"template" 		=> $db->escape_string('<tr><td class="tcat" align="center" colspan="2"><strong><a href="{$mybb->settings[\'bburl\']}/statusupdate.php">{$lang->statusupdate_show_all}</a></strong></td></tr>'),
		"sid" 				=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate_index_row_none",
		"template" 		=> $db->escape_string('<tr><td class="trow2" align="center" colspan="2">{$lang->statusupdate_none}</td></tr>'),
		"sid" 				=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 			=> "NULL",
		"title" 		=> "statusupdate_index_row_show_comment",
		"template" 		=> $db->escape_string('<div class="showcomment_row" style="display:none">
		{$tpl[\'rowcomments\']}
</div>'),
		"sid" 			=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate_index_row_show_comment_row",
		"template" 		=> $db->escape_string('<div class="statusupdate_comment">
	<div class="statusupdate_comment_avatar">
		<img src="{$commentuseravatar[\'image\']}" alt="" style="float: left;margin-right: 3px;"  width="28" height="28"/>
	</div>
	<div class="statusupdate_comment_head" style="vertical-align: top;">
		{$tpl[\'commentprofilelink\']}
		<span style="float: right;">
			{$tpl[\'commentdate\']}
		</span>
	</div>
</div>
<div class="statusupdate_comment_text">
	<div class="statusupdate_comment_null">&nbsp;</div>
	<div class="statusupdate_comment_text_row">
		{$tpl[\'commenttext\']}
	</div>
</div>'),
		"sid" 				=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate_index_row_add_comment_form",
		"template" 		=> $db->escape_string('<div class="addcomment_row" style="display:none">
        <form action="statusupdate.php" method="post" name="input">
           <input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
           <input type="hidden" name="uid" value="{$mybb->user[\'uid\']}" />
		   <input type="hidden" name="sid" value="{$tpl[\'statussid\']}" />
		   <input type="hidden" name="totalcomments" value="{$tpl[\'statustotalcomments\']}" />
           <textarea name="commenttext" cols="29" rows="1" class="usercp_notepad" style="font-size:11px;float: right;"></textarea>
          <input type="submit" class="button" style="font-size:11px;float: right;" name="submit" value="{$lang->statusupdate_addcomment}" />
          <input type="hidden" name="action" value="do_add_comment_statusupdate" />
           <input type="hidden" name="confirm" value="1" />
        </form>
</div>'),
		"sid" 				=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate_usercp_menu",
		"template" 		=> $db->escape_string('<tr><td class="trow1 smalltext"><a href="usercp.php?action=statusupdate" class="usercp_nav_item usercp_nav_statusupdate">{$lang->statusupdate_statusupdate}</a></td></tr>'),
		"sid" 				=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate_usercp",
		"template" 		=> $db->escape_string('<html>
<head>
<title>{$mybb->settings[\'bbname\']} - {$lang->statusupdate_statusupdate}</title>
{$headerinclude}
{$statusupdate_script}
</head>
<body>
{$header}
<table width="100%" border="0" align="center">
<tr>
{$usercpnav}
<td valign="top">
{$statusupdate}
{$multipage}
{$brm}
{$statusupdate_usercp_action}
</td>
</tr>
</table>
{$footer}
</body>
</html>'),
		"sid" 				=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate_usercp_action_add",
		"template" 		=> $db->escape_string('<form action="usercp.php" method="post" name="input">
<input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
<input type="hidden" name="uid" value="{$mybb->user[\'uid\']}" />
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
	<tr>
		<td class="thead" colspan="3"><strong>{$lang->statusupdate_add}</strong></td>
	</tr>
	<tr>
		<td class="trow2" align="center" colspan="1" width="50%"><textarea name="statustext" cols="1" rows="3" class="usercp_notepad"></textarea></td>
      <td class="trow2" align="left" colspan="1" width="50%" valign="top">{$lang->statusupdate_rules}<br />{$lang->statusupdate_rules_1}<br />{$lang->statusupdate_rules_2}<br />{$lang->statusupdate_rules_3}</td>
	</tr>
</table>
<br />
<div align="center"><input type="submit" class="button" name="submit" value="{$lang->statusupdate_add_submit}" /></div>
<input type="hidden" name="action" value="do_add_statusupdate" />
<input type="hidden" name="confirm" value="1" />
</form>'),
		"sid" 				=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate_usercp_action_edit",
		"template" 		=> $db->escape_string('<form action="usercp.php" method="post" name="input">
<input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
<input type="hidden" name="uid" value="{$mybb->user[\'uid\']}" />
<input type="hidden" name="sid" value="{$tpl[\'sid\']}" />
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
	<tr>
		<td class="thead" colspan="3"><strong>{$lang->statusupdate_edit}</strong></td>
	</tr>
	<tr>
		<td class="trow2" align="center" colspan="1" width="50%"><textarea name="statustext" cols="1" rows="3" class="usercp_notepad">{$tpl[\'text\']}</textarea></td>
      <td class="trow2" align="left" colspan="1" width="50%" valign="top">{$lang->statusupdate_rules}<br />{$lang->statusupdate_rules_1}<br />{$lang->statusupdate_rules_2}<br />{$lang->statusupdate_rules_3}</td>
	</tr>
</table>
<br />
<div align="center"><input type="submit" class="button" name="submit" value="{$lang->statusupdate_edit_submit}" /></div>
<input type="hidden" name="action" value="do_edit_statusupdate" />
<input type="hidden" name="confirm" value="1" />
</form>'),
		"sid" 				=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate_usercp_action_delete",
		"template" 		=> $db->escape_string('<form action="usercp.php" method="post" name="input">
<input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
<input type="hidden" name="uid" value="{$mybb->user[\'uid\']}" />
<input type="hidden" name="sid" value="{$tpl[\'sid\']}" />
<input type="hidden" name="page" value="{$tpl[\'page\']}" />
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
	<tr>
		<td class="thead" colspan="3"><strong>{$lang->statusupdate_delete}</strong></td>
	</tr>
	<tr>
		<td class="trow2" align="left" colspan="1" width="50%">{$tpl[\'text\']}</td>
      <td class="trow2" align="left" colspan="1" width="50%" valign="top">{$lang->statusupdate_rules}<br />{$lang->statusupdate_rules_1}<br />{$lang->statusupdate_rules_2}<br />{$lang->statusupdate_rules_3}</td>
	</tr>
</table>
<br />
<div align="center"><input type="submit" class="button" name="submit" value="{$lang->statusupdate_delete_submit}" /></div>
<input type="hidden" name="action" value="do_delete_statusupdate" />
<input type="hidden" name="confirm" value="1" />
</form>'),
		"sid" 				=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate_usercp_edit",
"template" 		=> $db->escape_string('<a href="{$edit_url}" title="{$lang->statusupdate_edit}">{$lang->statusupdate_action_edit} </a>'),
		"sid" 				=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate_usercp_delete",
		"template" 		=> $db->escape_string('<a href="{$delete_url}" title="{$lang->statusupdate_delete}">{$lang->statusupdate_action_delete} </a>'),
		"sid" 				=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate_usercp_link",
		"template" 		=> $db->escape_string('<a href="{$mybb->settings[\'bburl\']}/statusupdate.php?sid={$tpl[\'statussid\']}" title="">#{$tpl[\'statussid\']} </a>'),
		"sid" 				=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate_usercp_action_add_denied",
		"template" 		=> $db->escape_string('<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
	<tr>
		<td class="thead" colspan="3"><strong>{$lang->statusupdate_add}</strong></td>
	</tr>
	<tr>
		<td class="trow2" align="center" colspan="1">{$lang->statusupdate_add_denied}</td>
	</tr>
</table>
<br />'),
		"sid" 				=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate_usercp_action_edit_denied",
		"template" 		=> $db->escape_string('<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
	<tr>
		<td class="thead" colspan="3"><strong>{$lang->statusupdate_edit}</strong></td>
	</tr>
	<tr>
		<td class="trow2" align="center" colspan="1">{$lang->statusupdate_edit_denied}</td>
	</tr>
</table>
<br />'),
		"sid" 				=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate_usercp_action_delete_denied",
		"template" 		=> $db->escape_string('<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
	<tr>
		<td class="thead" colspan="3"><strong>{$lang->statusupdate_delete}</strong></td>
	</tr>
	<tr>
		<td class="trow2" align="center" colspan="1">{$lang->statusupdate_delete_denied}</td>
	</tr>
</table>
<br />'),
		"sid" 				=> "-1",
	);
	
	$templates[] = array(
	//	"tid" 					=> "",
		"title" 				=> "statusupdate",
		"template" 		=> $db->escape_string('<html>
<head>
<title>{$mybb->settings[\'bbname\']} - {$lang->statusupdate_statusupdate}</title>
{$headerinclude}
{$statusupdate_script}
</head>
<body>
{$header}
{$statusupdate_statusupdate}
{$multipage}
<br />
{$footer}
</body>
</html>'),
		"sid" 				=> "-1",
	);
	
	$db->insert_query_multiple("templates", $templates);
	
	$style = ".usercp_nav_statusupdate {
	background-position: 0 -340px;
}

.showcomment {
	cursor: pointer;
}

.addcomment {
	cursor: pointer;
}

.showcomment_row li {
	list-style-type: none;
}

.showcomment_row {
    display: table;
	margin-left: 13%;
}

.statusupdate_comment_text_row {
    padding: 2px;
}
	
.statusupdate_comment {
    display: table-row;    
    width: 100%;
}


.statusupdate_comment_avatar {
    display: table-cell;
    width: 10%;
    vertical-align: middle;    
}

.statusupdate_comment_head {
    display: table-cell;
    width: 90%;
    vertical-align: middle;    
}

.statusupdate_comment_head > span {
	float: right !important;
	padding: 0 3px 0 0;
}

.statusupdate_comment_text {
    display: table-row;
    width: 100%;
}

.statusupdate_comment_null  {
    display: table-cell;
    vertical-align: middle;    
}";
	
	$stylesheet = array(
	//	"sid"         		=> "",
		"name"         		=> "statusupdate.css",
		"cachefile"		=> "statusupdate.css",
		"tid"         			=> "1",
		"attachedto"   	=> "",
		"stylesheet"   	=> $db->escape_string($style),
		'lastmodified' 	=> TIME_NOW
	);

	$db->insert_query("themestylesheets", $stylesheet);
	
	require_once MYBB_ADMIN_DIR."inc/functions_themes.php";

	cache_stylesheet(1, "statusupdate.css", $style);
	update_theme_stylesheet_list(1, false, true);
}

function statusupdate_uninstall()
{
    global $db, $lang, $mybb, $cache;
    $lang->load("config_statusupdate");
	

		if($db->table_exists("statusupdate"))
		{
			$db->drop_table("statusupdate");
		}
		
		if($db->table_exists("statusupdatecomments"))
		{
			$db->drop_table("statusupdatecomments");
		}

		if($db->field_exists("canviewstatusupdate", "usergroups"))
		{
			$db->drop_column("usergroups", "canviewstatusupdate");
		}
		
		if($db->field_exists("canaddstatusupdate", "usergroups"))
		{
			$db->drop_column("usergroups", "canaddstatusupdate");
		}
		
		if($db->field_exists("caneditownstatusupdate", "usergroups"))
		{
			$db->drop_column("usergroups", "caneditownstatusupdate");
		}
		
		if($db->field_exists("candeleteownstatusupdate", "usergroups"))
		{
			$db->drop_column("usergroups", "candeleteownstatusupdate");
		}
		
		if($db->field_exists("maxstatusupdateperday", "usergroups"))
		{
			$db->drop_column("usergroups", "maxstatusupdateperday");
		}
		
		if($db->field_exists("canviewstatusupdatecomments", "usergroups"))
		{
			$db->drop_column("usergroups", "canviewstatusupdatecomments");
		}
		
		if($db->field_exists("canaddstatusupdatecomments", "usergroups"))
		{
			$db->drop_column("usergroups", "canaddstatusupdatecomments");
		}

		if($db->field_exists("caneditownstatusupdatecomments", "usergroups"))
		{
			$db->drop_column("usergroups", "caneditownstatusupdatecomments");
		}
		
		if($db->field_exists("candeleteownstatusupdatecomments", "usergroups"))
		{
			$db->drop_column("usergroups", "candeleteownstatusupdatecomments");
		}
		
		if($db->field_exists("canmoderatestatusupdate", "usergroups"))
		{
			$db->drop_column("usergroups", "canmoderatestatusupdate");
		}
		
		$cache->update_usergroups();

	
	$db->delete_query("settinggroups", "name = \"statusupdate\"");
	$db->delete_query("settings", "name LIKE \"statusupdate%\"");
	rebuild_settings();
	$db->delete_query("templates", "title LIKE \"statusupdate%\"");	
	$db->delete_query("themestylesheets", "name= \"statusupdate.css\"");
		
	require_once MYBB_ADMIN_DIR."inc/functions_themes.php";
    
    $query = $db->simple_select("themes", "tid");
    while($theme = $db->fetch_array($query))
    {
        @unlink(MYBB_ROOT."cache/themes/theme{$theme['tid']}/statusupdate.css");
        @unlink(MYBB_ROOT."cache/themes/theme{$theme['tid']}/statusupdate.min.css");
        update_theme_stylesheet_list($theme['tid'], false, true); 
    }
}

function statusupdate_activate()
{		
	statusupdate_deactivate();
	
	find_replace_templatesets('index', '#'.preg_quote('{$headerinclude}').'#', '{$headerinclude}'."\n".'{$statusupdate_script}');
	find_replace_templatesets('usercp_nav_misc', '#'.preg_quote('<tbody style="{$collapsed[\'usercpmisc_e\']}" id="usercpmisc_e">').'#', '<tbody style="{$collapsed[\'usercpmisc_e\']}" id="usercpmisc_e">'."\n\t".'{statusupdate}');
}

function statusupdate_deactivate()
{
	include MYBB_ROOT."/inc/adminfunctions_templates.php";
	
	find_replace_templatesets('index', '#' . preg_quote("\n".'{$statusupdate_script}') . '#', '', 0);
	find_replace_templatesets('usercp_nav_misc', '#' . preg_quote("\n\t".'{statusupdate}') . '#', '', 0);
}

function statusupdate_admin_lang_load()
{
    global $lang;
    $lang->load("config_statusupdate");
} 

function statusupdate_groups_graph_tabs($tabs)
{
	global $lang;
	$lang->load("config_statusupdate");
	
	$tabs['statusupdate'] = $lang->statusupdate_statusupdate;
	return $tabs;
}

function statusupdate_groups_graph()
{
	global $lang, $form, $mybb;
	$lang->load("config_statusupdate");
	
	echo "<div id=\"tab_statusupdate\">";	
	$form_container = new FormContainer($lang->statusupdate_statusupdate);
	
	$statuses_options = array(
		$form->generate_check_box("canviewstatusupdate", 1, $lang->statusupdate_can_view_statusupdate, array("checked" => $mybb->input['canviewstatusupdate'])),
		$form->generate_check_box("canaddstatusupdate", 1, $lang->statusupdate_can_add_statusupdate, array("checked" => $mybb->input['canaddstatusupdate'])),
		$form->generate_check_box("caneditownstatusupdate", 1, $lang->statusupdate_can_edit_statusupdate, array("checked" => $mybb->input['caneditownstatusupdate'])),
		$form->generate_check_box("candeleteownstatusupdate", 1, $lang->statusupdate_can_delete_statusupdate, array("checked" => $mybb->input['candeleteownstatusupdate'])),
		"{$lang->statusupdate_max_statusupdate_per_day}<br /><small class=\"input\">{$lang->statusupdate_max_statusupdate_per_day_desc}</small><br />".$form->generate_numeric_field("maxstatusupdateperday", $mybb->input['maxstatusupdateperday'], array("id" => "maxstatusupdateperday", "class" => "field50", "min" => "0")),
	);
	$form_container->output_row($lang->statusupdate_statusupdate_permissions, "", "<div class=\"group_settings_bit\">".implode("</div><div class=\"group_settings_bit\">", $statuses_options)."</div>");
	
	$comments_options = array(
		$form->generate_check_box("canviewstatusupdatecomments", 1, $lang->statusupdate_can_view_statusupdate_comments, array("checked" => $mybb->input['canviewstatusupdatecomments'])),
		$form->generate_check_box("canaddstatusupdatecomments", 1, $lang->statusupdate_can_add_statusupdate_comments, array("checked" => $mybb->input['canaddstatusupdatecomments'])),
		$form->generate_check_box("caneditownstatusupdatecomments", 1, $lang->statusupdate_can_edit_statusupdate_comments, array("checked" => $mybb->input['caneditownstatusupdatecomments'])),
		$form->generate_check_box("candeleteownstatusupdatecomments", 1, $lang->statusupdate_can_delete_statusupdate_comments, array("checked" => $mybb->input['candeleteownstatusupdatecomments'])),
	);
	$form_container->output_row($lang->statusupdate_comments_permissions, "", "<div class=\"group_settings_bit\">".implode("</div><div class=\"group_settings_bit\">", $comments_options)."</div>");

	$form_container->end();
	echo "</div>";
}

function statusupdate_groups_commit()
{
	global $updated_group, $mybb;
	
	$updated_group['canviewstatusupdate'] = $mybb->get_input("canviewstatusupdate", 1);
	$updated_group['canaddstatusupdate'] = $mybb->get_input("canaddstatusupdate", 1);
	$updated_group['caneditownstatusupdate'] = $mybb->get_input("caneditownstatusupdate", 1);
	$updated_group['candeleteownstatusupdate'] = $mybb->get_input("candeleteownstatusupdate", 1);
	$updated_group['maxstatusupdateperday'] = $mybb->get_input("maxstatusupdateperday", 1);
	
	$updated_group['canviewstatusupdatecomments'] = $mybb->get_input("canviewstatusupdatecomments", 1);
	$updated_group['canaddstatusupdatecomments'] = $mybb->get_input("canaddstatusupdatecomments", 1);
	$updated_group['caneditownstatusupdatecomments'] = $mybb->get_input("caneditownstatusupdatecomments", 1);
	$updated_group['candeleteownstatusupdatecomments'] = $mybb->get_input("candeleteownstatusupdatecomments", 1);
}

function statusupdate_usercp_menu_built()
{
	global $lang, $mybb, $templates, $usercpnav, $statusupdate;
	$lang->load("statusupdate");
	
	if($mybb->usergroup['canviewstatusupdate'] != '1')
	{
		$statusupdate = "";
	}
	else
	{
		eval("\$statusupdate = \"".$templates->get("statusupdate_usercp_menu")."\";");
	}

	$usercpnav = str_replace("{statusupdate}", $statusupdate, $usercpnav);
}

function statusupdate_index()
{
	global $db, $lang, $mybb, $templates, $theme, $statusupdate, $statusupdate_script;
	$lang->load("statusupdate");
	
	if($mybb->usergroup['canviewstatusupdate'] != "1")
	{
		return;
	}
	
	require_once MYBB_ROOT."inc/class_parser.php";
	$parser = new postParser;
	
	$altbg = alt_trow();
	$tpl['row'] = "";
	
	if($mybb->settings['statusupdate_index_limit'] <= "0")
	{
		$mybb->settings['statusupdate_index_limit'] = "5";
	}
	
	$sids = "";
	$comma = '';
	
	$query = $db->query("
		SELECT *
		FROM ".TABLE_PREFIX."statusupdate s
		ORDER BY lasteditdate DESC
		LIMIT 0, ".$mybb->settings['statusupdate_index_limit']."");
	while($getsids = $db->fetch_array($query))
	{
		if(empty($sid))
		{
			$sid = $getsids['sid'];
		}

		$sids .= "$comma'{$getsids['sid']}'";
		$comma = ",";
	}
		
	if($sids)
	{
		$sids = "sc.sid IN($sids)";
	}
	
	$query = $db->query("
		SELECT 
		s.sid as statussid, s.uid as statusuid, s.text as statustext, s.dateline as statusdateline, s.lastedituid as statuslastedituid, s.lasteditdate as statuslasteditdate, s.totalcomments as statustotalcomments, s.ipaddress as statusipaddress,
		su.uid as statusuid, su.username as statususername, su.usergroup as statususergroup, su.displaygroup as statusdisplaygroup, su.avatar as statusavatar, su.avatardimensions as statusavatardimensions
		FROM ".TABLE_PREFIX."statusupdate s
		LEFT JOIN ".TABLE_PREFIX."users su ON (s.uid=su.uid)
		ORDER BY s.lasteditdate DESC
		LIMIT 0, ".$mybb->settings['statusupdate_index_limit']."");
	while($rowstatus = $db->fetch_array($query))
	{
		$tpl['statussid'] = $rowstatus['statussid'];
		$tpl['statususername'] = format_name($rowstatus['statususername'], $rowstatus['statususergroup'], $rowstatus['statusdisplaygroup']);
		$tpl['statusprofilelink'] = build_profile_link($tpl['statususername'], $rowstatus['statusuid']);
		$tpl['statusdate'] = my_date("relative", $rowstatus['statuslasteditdate']);
		
		$statususeravatar = format_avatar(htmlspecialchars_uni($rowstatus['statusavatar']));
		
		$parser_options = array(
			"allow_html" => 0,
			"allow_mycode" => 1,
			"allow_smilies" => 1,
			"allow_imgcode" => 0, 
			"allow_videocode" => 0, 
			"filter_badwords" => 1,
		);
		$tpl['statustext'] = $parser->parse_message($rowstatus['statustext'], $parser_options); 
		
		$tpl['statustotalcomments'] = my_number_format($rowstatus['statustotalcomments']);
			
		$showcomments = "";
		$commentcount = "";
		
		if($rowstatus['statustotalcomments'] > 0 && $mybb->usergroup['canviewstatusupdatecomments'] == '1')
		{
			$showcomments = "<span id=\"showcomment_".$tpl['statussid']."\" class=\"showcomment\">".$lang->statusupdate_showcomments."</span>";
			$commentcount = " <span id=\"commentcount_".$tpl['statussid']."\">(".$tpl['statustotalcomments'].")</span>";
			$tpl['rowcomments'] = "";
			
			static $comments;
			static $comments_check = false;
			
			if(!$comments_check)
			{	
				$querycomment = $db->query("
					SELECT 
					sc.cid as commentcid, sc.sid as commentsid, sc.uid as commentuid, sc.text as commenttext, sc.dateline as commentdateline, sc.ipaddress as commentipaddress,
					cu.uid as commentuid, cu.username as commentusername, cu.usergroup as commentusergroup, cu.displaygroup as commentdisplaygroup, cu.avatar as commentavatar, cu.avatardimensions as commentavatardimensions
					FROM ".TABLE_PREFIX."statusupdatecomments sc 
					LEFT JOIN ".TABLE_PREFIX."users cu ON (sc.uid=cu.uid)
					WHERE 1=1 AND {$sids}
					ORDER BY sc.dateline DESC");
				while($rowomment = $db->fetch_array($querycomment))
				{
					$comments[$rowomment['commentsid']][] = $rowomment;
				}
				
				$comments_check = true;
			} 

			if(isset($comments[$tpl['statussid']]))
			{	
				foreach($comments[$tpl['statussid']] as $comment)
				{
					$tpl['commentusername'] = format_name($comment['commentusername'], $comment['commentusergroup'], $comment['commentdisplaygroup']);
					$tpl['commentprofilelink'] = build_profile_link($tpl['commentusername'], $comment['commentuid']);
					$tpl['commentdate'] = my_date('relative', $comment['commentdateline']);
						
					$commentuseravatar = format_avatar(htmlspecialchars_uni($comment['commentavatar']), $comment['commentavatardimensions']);

					$parser_options = array(
						"allow_html" => 0,
						"allow_mycode" => 1,
						"allow_smilies" => 1,
						"allow_imgcode" => 0, 
						"allow_videocode" => 0, 
						"filter_badwords" => 1,
					);
					
					$tpl['commenttext'] = $parser->parse_message($comment['commenttext'], $parser_options); 
					eval("\$tpl['rowcomments'] .= \"" . $templates->get("statusupdate_index_row_show_comment_row") . "\";");
				}
				
				eval("\$statusupdatecomment = \"".$templates->get("statusupdate_index_row_show_comment")."\";");
			}
		}
			
		$addcomments = "";
		
		if($mybb->usergroup['canaddstatusupdatecomments'] == '1')
		{
			$addcomments = "<span id=\"addcomments_".$tpl['statussid']."\" class=\"addcomment\">".$lang->statusupdate_addcomment."</span>";
			eval('$statusupdatecommentform = "'.$templates->get("statusupdate_index_row_add_comment_form").'";');
		}
			
		$br = "";
		
		if($showcomments || $addcomments)
		{
			$br = "<br />";
		}
			
		$sep = "";
			
		if($showcomments && $addcomments)
		{
			$sep = "<span> | </span>";
		}
			
		eval("\$tpl['row'] .= \"" . $templates->get("statusupdate_index_row") . "\";");
		$altbg = alt_trow();
	}
	
	eval("\$tpl['row'] .= \"" . $templates->get("statusupdate_index_row_show_all") . "\";");
	
	if(!$tpl['row'])
	{
		eval("\$tpl['row'] = \"" . $templates->get("statusupdate_index_row_none") . "\";");
	}
	
	if($mybb->usergroup['canaddstatusupdate'] == '1') 
	{
		$set = "<span> <a href=\"".$mybb->settings['bburl']."/usercp.php?action=statusupdate\">".$lang->statusupdate_set."</a></span>";
	}
	
	eval('$statusupdate_script = "'.$templates->get("statusupdate_script").'";');
	eval("\$statusupdate = \"".$templates->get("statusupdate_index")."\";");
}
	
function statusupdate_usercp()
{
	global $db, $lang, $mybb, $theme, $templates, $header, $footer, $headerinclude, $usercpnav, $session;
	$lang->load("statusupdate");
	
	if($mybb->input['action'] == "statusupdate")
	{
		if($mybb->usergroup['canviewstatusupdate'] != '1')
		{
			error_no_permission();
		}
		
		require_once MYBB_ROOT."inc/class_parser.php";
		$parser = new postParser;
		
		if($mybb->settings['statusupdate_usercp_limit'] <= "0")
		{
			$mybb->settings['statusupdate_usercp_limit'] = "5";
		}
		
		$sids = "";
		$comma = '';
			
		$query = $db->query("
			SELECT *
			FROM ".TABLE_PREFIX."statusupdate
			WHERE 1=1 AND uid = '".$mybb->user['uid']."'");		
		while($getsids = $db->fetch_array($query))
		{
			if(empty($sid))
			{
				$sid = $getsids['sid'];
			}

			$sids .= "$comma'{$getsids['sid']}'";
			$comma = ",";
		}
		
		if($sids)
		{
			$sids = "sc.sid IN($sids)";
		}
		
		$statuscount = $db->num_rows($query);
		$perpage = $mybb->settings['statusupdate_usercp_limit'];
		$page = $mybb->get_input('page', 1);
		if($page > 0)
		{
			$start = ($page-1) * $perpage;
			$pages = $statuscount / $perpage;
			$pages = ceil($pages);
			
			if($page > $pages || $page <= 0)
			{
				$start = 0;
				$page = 1;
			}
		}
		else
		{
			$start = 0;
			$page = 1;
		}
		$end = $start + $perpage;
		$lower = $start+1;
		$upper = $end;
		
		if($upper > $statuscount)
		{
			$upper = $statuscount;
		}
		
		$multipage = multipage($statuscount, $perpage, $page, "usercp.php?action=statusupdate");
		
		$bgcolor = alt_trow();
		$tpl['row'] = "";
		
		$query = $db->query("
			SELECT 
			s.sid as statussid, s.uid as statusuid, s.text as statustext, s.dateline as statusdateline, s.lastedituid as statuslastedituid, s.lasteditdate as statuslasteditdate, s.totalcomments as statustotalcomments, s.ipaddress as statusipaddress,
			su.uid as statusuid, su.username as statususername, su.usergroup as statususergroup, su.displaygroup as statusdisplaygroup, su.avatar as statusavatar, su.avatardimensions as statusavatardimensions
			FROM ".TABLE_PREFIX."statusupdate s
			LEFT JOIN ".TABLE_PREFIX."users su ON (s.uid=su.uid)
			WHERE 1=1 AND s.uid='".$mybb->user['uid']."'
			ORDER BY s.lasteditdate DESC
			LIMIT $start, $perpage");

		if($db->num_rows($query))
		{
			while($rowstatus = $db->fetch_array($query))
			{
				if(!isset($statusesarray[$rowstatus['statussid']]))
				{
					$statusesarray[$rowstatus['statussid']] = $rowstatus;
				}
				
				$tpl['statussid'] = $rowstatus['statussid'];
				$tpl['statususername'] = format_name($rowstatus['statususername'], $rowstatus['statususergroup'], $rowstatus['statusdisplaygroup']);
				$tpl['statusprofilelink'] = build_profile_link($tpl['statususername'], $rowstatus['statusuid']);
				$tpl['statusdate'] = my_date("relative", $rowstatus['statuslasteditdate']);
				
				$statususeravatar = format_avatar(htmlspecialchars_uni($rowstatus['statusavatar']));
				
				$parser_options = array(
					"allow_html" => 0,
					"allow_mycode" => 1,
					"allow_smilies" => 1,
					"allow_imgcode" => 0, 
					"allow_videocode" => 0, 
					"filter_badwords" => 1,
				);
				$tpl['statustext'] = $parser->parse_message($rowstatus['statustext'], $parser_options); 
				
				$tpl['statustotalcomments'] = my_number_format($rowstatus['statustotalcomments']);
				
				$showcomments = "";
				$commentcount = "";
				
				if($rowstatus['statustotalcomments'] > 0 && $mybb->usergroup['canviewstatusupdatecomments'] == '1')
				{
					$showcomments = "<span id=\"showcomment_".$tpl['statussid']."\" class=\"showcomment\">".$lang->statusupdate_showcomments."</span>";
					$commentcount = " <span id=\"commentcount_".$tpl['statussid']."\">(".$tpl['statustotalcomments'].")</span>";
					$tpl['rowcomments'] = "";
					
					static $comments;
					static $comments_check = false;
					
					if(!$comments_check)
					{	
						$querycomment = $db->query("
							SELECT 
							sc.cid as commentcid, sc.sid as commentsid, sc.uid as commentuid, sc.text as commenttext, sc.dateline as commentdateline, sc.ipaddress as commentipaddress,
							cu.uid as commentuid, cu.username as commentusername, cu.usergroup as commentusergroup, cu.displaygroup as commentdisplaygroup, cu.avatar as commentavatar, cu.avatardimensions as commentavatardimensions
							FROM ".TABLE_PREFIX."statusupdatecomments sc 
							LEFT JOIN ".TABLE_PREFIX."users cu ON (sc.uid=cu.uid)
							WHERE 1=1 AND {$sids}
							ORDER BY sc.dateline DESC");
						while($rowcomment = $db->fetch_array($querycomment))
						{
							$comments[$rowcomment['commentsid']][] = $rowcomment;
						}
						
						$comments_check = true;
					} 

					if(isset($comments[$rowstatus['statussid']]))
					{	
						foreach($comments[$rowstatus['statussid']] as $comment)
						{
							$tpl['commentusername'] = format_name($comment['commentusername'], $comment['commentusergroup'], $comment['commentdisplaygroup']);
							$tpl['commentprofilelink'] = build_profile_link($tpl['commentusername'], $comment['commentuid']);
							$tpl['commentdate'] = my_date('relative', $comment['commentdateline']);
								
							$commentuseravatar = format_avatar(htmlspecialchars_uni($comment['commentavatar']), $comment['commentavatardimensions']);

							$parser_options = array(
								"allow_html" => 0,
								"allow_mycode" => 1,
								"allow_smilies" => 1,
								"allow_imgcode" => 0, 
								"allow_videocode" => 0, 
								"filter_badwords" => 1,
							);
							
							$tpl['commenttext'] = $parser->parse_message($comment['commenttext'], $parser_options); 
							eval("\$tpl['rowcomments'] .= \"" . $templates->get("statusupdate_index_row_show_comment_row") . "\";");
						}
						
						eval("\$statusupdatecomment = \"".$templates->get("statusupdate_index_row_show_comment")."\";");
					}
				}
				
				$addcomments = "";
		
				if($mybb->usergroup['canaddstatusupdatecomments'] == '1')
				{
					$addcomments = "<span id=\"addcomments_".$tpl['statussid']."\" class=\"addcomment\">".$lang->statusupdate_addcomment."</span>";
					eval('$statusupdatecommentform = "'.$templates->get("statusupdate_index_row_add_comment_form").'";');
				}
					
				$br = "";
				
				if($showcomments || $addcomments)
				{
					$br = "<br />";
				}
					
				$sep = "";
					
				if($showcomments && $addcomments)
				{
					$sep = "<span> | </span>";
				}
				
				$statusupdate_edit = "";
				$statusupdate_delete = "";
				
				if($mybb->usergroup['caneditownstatusupdate'] == '1')
				{
					$edit_url = "usercp.php?action=statusupdate&edit=".$rowstatus['statussid']."&goedit=1";
					
					eval('$statusupdate_edit = "'.$templates->get("statusupdate_usercp_edit").'";');
				}
				
				if($mybb->usergroup['candeleteownstatusupdate'] == '1')
				{
					$delete_url = "usercp.php?action=statusupdate&delete=".$rowstatus['statussid']."&godelete=1";
										
					eval('$statusupdate_delete = "'.$templates->get("statusupdate_usercp_delete").'";');
				}
				
				eval('$statusupdate_link = "'.$templates->get("statusupdate_usercp_link").'";');

				eval("\$tpl['row'] .= \"" . $templates->get("statusupdate_index_row") . "\";");
				$bgcolor = alt_trow();
			}
		}
		else
		{
			eval("\$tpl['row'] = \"" . $templates->get("statusupdate_index_row_none") . "\";");
		}
	
		eval("\$statusupdate = \"".$templates->get("statusupdate_index")."\";");
		
		if(!empty($multipage))
		{
			$brm = "<br />";
		}
		
		$lang->statusupdate_rules_2 = $lang->sprintf($lang->statusupdate_rules_2, $mybb->settings['statusupdate_max_status_symbols']);
			
		if($mybb->get_input('edit', 1) != "" && $mybb->get_input('edit', 1) != "0")
		{
			if($mybb->get_input('goedit', 1) != "" && $mybb->get_input('goedit', 1) != "0")
			{					
				$queryeditpage = $db->query("SELECT s.sid, s.position, s.uid
					FROM (SELECT t.uid, t.lasteditdate, t.sid, @rownum := @rownum + 1 AS position
									FROM ".TABLE_PREFIX."statusupdate t
									JOIN (SELECT @rownum := 0) r
									WHERE t.uid = '".$mybb->user['uid']."'
									ORDER BY t.lasteditdate DESC) s
					WHERE s.uid = '".$mybb->user['uid']."' AND s.sid = '".$mybb->get_input('edit', 1)."'");
				$stat = $db->fetch_array($queryeditpage);
				$contedistat = $stat['position'];
				$pageedi = $contedistat / $perpage;
				$pageedi = ceil($pageedi);
				
				if($pageedi != "" && $pageedi !="0" && $pageedi !="1")
				{
					$pageurl = "&page=".$pageedi;
				}

				$edit_url = "usercp.php?action=statusupdate&edit=".$mybb->get_input('edit', 1).$pageurl;
					
				redirect($edit_url, $lang->statusupdate_redirect_edit);
			}
					
			if($mybb->usergroup['caneditownstatusupdate'] == '1')
			{
				if(isset($statusesarray[$mybb->get_input('edit', 1)]))
				{
						$tpl['text'] = $statusesarray[$mybb->get_input('edit', 1)]['statustext'];
						$tpl['sid'] = $statusesarray[$mybb->get_input('edit', 1)]['statussid'];
						eval('$statusupdate_usercp_action = "'.$templates->get("statusupdate_usercp_action_edit").'";');
				}
				else
				{
					error($lang->statusupdate_ivalid_status_id);
				}
			}
			else
			{
				eval('$statusupdate_usercp_action = "'.$templates->get("statusupdate_usercp_action_edit_denied").'";');
			}
		}
		elseif($mybb->get_input('delete', 1) != "" && $mybb->get_input('delete', 1) != "0")
		{
			if($mybb->get_input('godelete', 1) != "" && $mybb->get_input('godelete', 1) != "0")
			{
				$querydeletepage = $db->query("SELECT s.sid, s.position, s.uid
					FROM (SELECT t.uid, t.lasteditdate, t.sid, @rownum := @rownum + 1 AS position
									FROM ".TABLE_PREFIX."statusupdate t
									JOIN (SELECT @rownum := 0) r
									WHERE t.uid = '".$mybb->user['uid']."'
									ORDER BY t.lasteditdate DESC) s
					WHERE s.uid = '".$mybb->user['uid']."' AND s.sid = '".$mybb->get_input('delete', 1)."'");
				$stat = $db->fetch_array($querydeletepage);
				
				$contdelstat = $stat['position'];
				$pagedel = $stat['position'] / $perpage;
				$pagedel = ceil($pagedel);
				
				if($pagedel != "" && $pagedel !="0" && $pagedel !="1")
				{
					$pageurl = "&page=".$pagedel;
				}

				$delete_url = "usercp.php?action=statusupdate&delete=".$mybb->get_input('delete', 1).$pageurl;
					
				redirect($delete_url, $lang->statusupdate_redirect_delete);
			}
					
			if($mybb->usergroup['candeleteownstatusupdate'] == '1')
			{
				if(isset($statusesarray[$mybb->get_input('delete', 1)]))
				{
					$parser_options = array(
						"allow_html" => 0,
						"allow_mycode" => 1,
						"allow_smilies" => 1,
						"allow_imgcode" => 0, 
						"allow_videocode" => 0, 
						"filter_badwords" => 1,
					);
									
					$tpl['text'] = $parser->parse_message($statusesarray[$mybb->get_input('delete', 1)]['statustext'], $parser_options); 
					$tpl['sid'] = $statusesarray[$mybb->get_input('delete', 1)]['statussid'];
						
					eval('$statusupdate_usercp_action = "'.$templates->get("statusupdate_usercp_action_delete").'";');
				}
				else
				{
					error($lang->statusupdate_ivalid_status_id);
				}
			}	
			else
			{
				eval('$statusupdate_usercp_action = "'.$templates->get("statusupdate_usercp_action_delete_denied").'";');
			}
		}
		else
		{
			if($mybb->usergroup['canaddstatusupdate'] == '1')
			{
				eval('$statusupdate_usercp_action = "'.$templates->get("statusupdate_usercp_action_add").'";');
			}
			else
			{
				eval('$statusupdate_usercp_action = "'.$templates->get("statusupdate_usercp_action_add_denied").'";');
			}
		}
		
		add_breadcrumb($lang->statusupdate_statusupdate);
		eval('$statusupdate_script = "'.$templates->get("statusupdate_script").'";');
		eval('$statusupdate = "'.$templates->get("statusupdate_usercp").'";');
		output_page($statusupdate);
	}
	elseif($mybb->input['action'] == "do_add_statusupdate"  && $mybb->request_method == "post")
	{
		if(!verify_post_check($mybb->get_input('my_post_key'), true))
		{
			error($lang->statusupdate_ivalid_post_key);
		}

		if($mybb->get_input('statustext') == '')
		{
			error($lang->statusupdate_status_empty);
		}
		
		if(strlen($mybb->get_input('statustext')) > $mybb->settings['statusupdate_max_status_symbols'])
		{
			error($lang->sprintf($lang->statusupdate_status_too_long, $mybb->settings['statusupdate_max_status_symbols']));
		}
		
		if($mybb->get_input('uid', 1) != $mybb->user['uid'])
		{
			error_no_permission();
		}
		
		if($mybb->usergroup['canaddstatusupdate'] != '1')
		{
			error($lang->statusupdate_no_permissions_to_add);
		}
		
		if($mybb->usergroup['maxstatusupdateperday'] != "0")
		{
			$timesearch = TIME_NOW - (60 * 60 * 24);
			$query = $db->simple_select("statusupdate", "*", "uid='".$mybb->user['uid']."' AND dateline>'$timesearch'");
			$numtoday = $db->num_rows($query);
			
			if($numtoday >= $mybb->usergroup['maxstatusupdateperday'])
			{
				error($lang->sprintf($lang->statusupdate_status_limit, $mybb->usergroup['maxstatusupdateperday']));
			}
		}
		
		$status = array(
		//	"sid"			=> "",
			"uid"				=> $mybb->get_input('uid', 1),
			"text"				=> $db->escape_string($mybb->get_input('statustext')),
			"dateline"	=> TIME_NOW,
			"lastedituid"	=> $mybb->get_input('uid', 1),
			"lasteditdate"	=> TIME_NOW,
			"ipaddress" => $session->packedip,
			"totalcomments" =>  $db->escape_string("0"),
		);
		$db->insert_query("statusupdate", $status);
		
		redirect("usercp.php?action=statusupdate", $lang->statusupdate_added);
	}
	elseif($mybb->input['action'] == "do_edit_statusupdate"  && $mybb->request_method == "post")
	{
		if(!verify_post_check($mybb->get_input('my_post_key'), true))
		{
			error($lang->statusupdate_ivalid_post_key);
		}
		
		if($mybb->get_input('statustext') == '')
		{
			error($lang->statusupdate_status_empty);
		}
		
		if(strlen($mybb->get_input('statustext')) > $mybb->settings['statusupdate_max_status_symbols'])
		{
			error($lang->sprintf($lang->statusupdate_status_too_long, $mybb->settings['statusupdate_max_status_symbols']));
		}
		
		if($mybb->get_input('sid', 1) == "0")
		{
			error($lang->statusupdate_ivalid_status_id);
		}
		
		if($mybb->get_input('uid') != $mybb->user['uid'])
		{
			error_no_permission();
		}
		
		if($mybb->usergroup['caneditownstatusupdate'] != '1')
		{
			error($lang->statusupdate_no_permissions_to_edit);
		}
		
		$status = array(
			"text"				=> $db->escape_string($mybb->get_input('statustext')),
			"lastedituid"	=> $mybb->get_input('uid', 1),
			"lasteditdate"	=> TIME_NOW,
		);
		$db->update_query("statusupdate", $status, "sid='".$mybb->get_input('sid', 1)."'");
		
		redirect("usercp.php?action=statusupdate", $lang->statusupdate_edited);
	}
	elseif($mybb->input['action'] == "do_delete_statusupdate"  && $mybb->request_method == "post")
	{
		if(!verify_post_check($mybb->get_input('my_post_key'), true))
		{
			error($lang->statusupdate_ivalid_post_key);
		}
		
		if($mybb->get_input('sid', 1) == "0")
		{
			error($lang->statusupdate_ivalid_status_id);
		}

		if(!$db->num_rows($db->simple_select("statusupdate", "*", "sid = \"{$mybb->get_input('sid', 1)}\" AND uid = \"{$mybb->user['uid']}\"")))
		{
			error($lang->statusupdate_ivalid_status_id);
		}
		
		if($mybb->get_input('uid') != $mybb->user['uid'])
		{
			error_no_permission();
		}
		
		if($mybb->usergroup['candeleteownstatusupdate'] != '1')
		{
			error($lang->statusupdate_no_permissions_to_delete);
		}
		
		if($mybb->settings['statusupdate_usercp_limit'] <= "0")
		{
			$mybb->settings['statusupdate_usercp_limit'] = "5";
		}
		
		$querydeletepage = $db->query("SELECT s.sid, s.position, s.uid
					FROM (SELECT t.uid, t.lasteditdate, t.sid, @rownum := @rownum + 1 AS position
									FROM ".TABLE_PREFIX."statusupdate t
									JOIN (SELECT @rownum := 0) r
									WHERE t.uid = '".$mybb->user['uid']."'
									ORDER BY t.lasteditdate DESC) s
					WHERE s.uid = '".$mybb->user['uid']."' AND s.sid = '".$mybb->get_input('sid', 1)."'");
		$stat = $db->fetch_array($querydeletepage);
		$contdelstat = $stat['position'];
		$pagedel = $contdelstat / $mybb->settings['statusupdate_usercp_limit'];
		$pagedel = ceil($pagedel);
				
		if($pagedel != "" && $pagedel !="0" && $pagedel !="1")
		{
			$pageurl = "&page=".$pagedel;
		}
		
		$db->delete_query("statusupdate", "sid=".$mybb->get_input('sid', 1));
		$db->delete_query("statusupdatecomments", "sid=".$mybb->get_input('sid', 1));

		$delete_url = "usercp.php?action=statusupdate".$pageurl;

		redirect($delete_url, $lang->statusupdate_deleted);
	}
}

function statusupdate_fetch_wol_activity_end($user_activity)
{
    global $lang;
	$lang->load("statusupdate");
	
    if(strpos($user_activity['location'], "usercp.php?action=statusupdate"))
    {
		$user_activity['activity'] = $lang->statusupdate_menage;
    }
    return $user_activity;
}

function statusupdate_build_friendly_wol_location_end(&$plugin_array)
{
    global $lang;
	$lang->load("statusupdate");

    if($plugin_array['user_activity']['activity'] == $lang->statusupdate_menage)
    {
        
		$plugin_array['location_name'] = "<a href=\"usercp.php?action=statusupdate\">".$lang->statusupdate_menage."</a>";

    }
    return $plugin_array;
}

function statusupdate_templatelist()
{	
	global $templatelist;

	if(in_array(THIS_SCRIPT, explode("," ,"index.php")))
	{		
		if(isset($templatelist))
		{
			$templatelist .= ", ";
		}
		
		$templatelist .= "statusupdate_script, ";
		$templatelist .= "statusupdate_index, statusupdate_index_row, statusupdate_index_row_show_all, statusupdate_index_row_none, statusupdate_index_row_add_comment_form, statusupdate_index_row_show_comment, statusupdate_index_row_show_comment_row";
	}
	
	if(in_array(THIS_SCRIPT, explode("," ,"usercp.php")))
	{	
		if(isset($templatelist))
		{
			$templatelist .= ", ";
		}
		
		$templatelist .= "statusupdate_script, ";
		$templatelist .= "statusupdate_usercp_menu, statusupdate_usercp, statusupdate_usercp_action_delete, statusupdate_usercp_action_delete_denied, statusupdate_usercp_action_edit, statusupdate_usercp_action_edit_denied, statusupdate_usercp_action_add, statusupdate_usercp_action_add_denied, statusupdate_usercp_edit, statusupdate_usercp_delete, statusupdate_usercp_link, ";
		$templatelist .= "statusupdate_index, statusupdate_index_row, statusupdate_index_row_none, statusupdate_index_row_add_comment_form, statusupdate_index_row_show_comment, statusupdate_index_row_show_comment_row";
	}
}