Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php define("DEMO_MODE", false); if( isset($_GET["noscript"]) ) { exit( "<div sty..

Decoded Output download

<?php 
define("DEMO_MODE", false); 
if( isset($_GET["noscript"]) ) 
{ 
    exit( "<div style=\"border: 3px solid red; text-align: center; font-size: 18px; font-weight: bold; padding: 10px; width: 600px; height: 65px; margin: 100px auto; font-family: 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 1.7;\">Your Browser does not support JavaScript, or it is disabled.<br/>To run this application, you must enable JavaScript!!</div>" ); 
} 
 
aaaaaa(); 
$TSUE = array(  ); 
$TSUE["breadcrumb"] = array(  ); 
$TSUE["action"] = getvar("action"); 
$TSUE["do"] = getvar("do"); 
$TSUE["option"] = getvar("option"); 
$TSUE["items_perpage"] = 15; 
$TSUE["array_items_perpage"] = 40; 
$TSUE["TSUE_Database"] = new TSUE_Database(); 
$TSUE["TSUE_Settings"] = new TSUE_Settings(); 
$Warnings = array(  ); 
/*if( !DEMO_MODE ) 
{ 
    aaaaab(); 
}*/ 
 
checkadmin(); 
if( isset($_GET["newperpage"]) ) 
{ 
    $newperpage = intval(getvar("newperpage")); 
    if( $newperpage ) 
    { 
        $TSUE["items_perpage"] = $newperpage; 
    } 
 
    unset($newperpage); 
} 
else 
{ 
    if( isset($_COOKIE["newperpage"]) ) 
    { 
        $newperpage = intval($_COOKIE["newperpage"]); 
        if( $newperpage ) 
        { 
            $TSUE["items_perpage"] = $newperpage; 
        } 
 
        unset($newperpage); 
    } 
 
} 
 
if( !DEMO_MODE && !IS_AJAX && substr(aaaaac(), 0, 12) != substr($TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"], 0, 12) && !headers_sent() ) 
{ 
    $websiteURL = parse_url($TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]); 
    if( isset($websiteURL["path"]) && !empty($websiteURL["path"]) ) 
    { 
        $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] = str_replace($websiteURL["path"], "", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]); 
    } 
 
    echo "
	<!DOCTYPE html>
	<html id=\"TSUE\" lang=\"en-us\">
		<head>
			<noscript><meta http-equiv=refresh content=\"6; URL=" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . $_SERVER["REQUEST_URI"] . "\" /></noscript>
			<title>Fatal Error</title>
			<script type=\"text/javascript\">
				setTimeout(function()
				{
					window.location=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . $_SERVER["REQUEST_URI"] . "\";
				}, 3000);
			</script>
		</head>
		<body>
			<div style=\"border: 3px solid red; text-align: center; font-size: 18px; font-weight: bold; padding: 10px; width: 600px; margin: 100px auto; font-family: 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 1.7;\">You are being redirected to correct url...</div>
		</body>
	</html>"; 
    exit(); 
} 
 
$outputContent = ""; 
if( !IS_AJAX ) 
{ 
    $MySQLVariables = $TSUE["TSUE_Database"]->query("SHOW VARIABLES WHERE Variable_Name IN (\"ft_min_word_len\", \"max_allowed_packet\")"); 
    if( $TSUE["TSUE_Database"]->num_rows($MySQLVariables) ) 
    { 
        while( $V = $TSUE["TSUE_Database"]->fetch_assoc($MySQLVariables) ) 
        { 
            if( $V["Variable_name"] == "max_allowed_packet" && $V["Value"] < 20 * 1024 * 1024 ) 
            { 
                $Warnings[] = "MySQL <b>max_allowed_packet</b> is " . friendly_size($V["Value"]) . " on this server.<br />You need to increase this variable at least 20MB."; 
            } 
 
            if( $V["Variable_name"] == "ft_min_word_len" && 3 < $V["Value"] ) 
            { 
                $Warnings[] = "MySQL <b>ft_min_word_len</b> is " . $V["Value"] . " on this server.<br />Please decrease this value to 3 ."; 
            } 
 
        } 
    } 
 
} 
 
if( !IS_AJAX && !$TSUE["action"] ) 
{ 
    addbreadcrumb(array( get_phrase("logged_welcome_back", $TSUE["TSUE_Member"]["membername"]) => TSUE_ADMINCP_URL )); 
    $Today = TIMENOW - 86400; 
    $totalRegisteredMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_members"); 
    $todayRegisteredMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_members WHERE joindate >= " . $Today); 
    $membersAwaitingApproval = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_members WHERE membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")"); 
    $mutedMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_member_profile WHERE muted = 1"); 
    $bannedMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_member_bans"); 
    $warnedMembers = $TSUE["TSUE_Database"]->row_count("SELECT warnid FROM tsue_member_warns"); 
    $todayCreatedThreads = $TSUE["TSUE_Database"]->row_count("SELECT threadid FROM tsue_forums_threads WHERE post_date >= " . $Today); 
    $todayPostedReplies = $TSUE["TSUE_Database"]->row_count("SELECT postid FROM tsue_forums_posts WHERE post_date >= " . $Today); 
    $todayPostedComments = $TSUE["TSUE_Database"]->row_count("SELECT comment_id FROM tsue_comments WHERE post_date >= " . $Today); 
    $todayLikedContents = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE like_id FROM tsue_liked_content WHERE like_date >= " . $Today); 
    $todayPostedReports = $TSUE["TSUE_Database"]->row_count("SELECT report_id FROM tsue_reports WHERE first_report_date >= " . $Today); 
    $todayPostedRequests = $TSUE["TSUE_Database"]->row_count("SELECT rid FROM tsue_requests WHERE added >= " . $Today); 
    $totalUploadedTorrents = $TSUE["TSUE_Database"]->row_count("SELECT tid FROM tsue_torrents"); 
    $todayUploadedTorrents = $TSUE["TSUE_Database"]->row_count("SELECT tid FROM tsue_torrents WHERE added >= " . $Today); 
    $torrentsAwaitingSeed = $TSUE["TSUE_Database"]->row_count("SELECT tid FROM tsue_torrents WHERE seeders = 0"); 
    if( getsetting("xbt", "active") ) 
    { 
        $Seeders = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE fid FROM xbt_files_users WHERE active = 1 AND `left` = 0"); 
        $Leechers = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE fid FROM xbt_files_users WHERE active = 1 AND `left` > 0"); 
    } 
    else 
    { 
        $Seeders = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE pid FROM tsue_torrents_peers WHERE active = 1 AND `left` = 0"); 
        $Leechers = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE pid FROM tsue_torrents_peers WHERE active = 1 AND `left` > 0"); 
    } 
 
    $totalPeers = $Seeders + $Leechers; 
    $outputContent = "
	<div style=\"margin-left: 5px; text-align: center;\">
		<div style=\"float: left; width: 250px; height: 140px; padding: 5px; margin: 5px; font-size: 11px;background: #F5F5F5;border: 1px solid #DDDDDD;border-radius: 5px; -webkit-border-radius:  5px; -moz-border-radius:  5px; -khtml-border-radius:  5px;overflow: hidden;zoom: 1;\">
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Total Registered Members: <a href=\"?action=Member Manager&do=All Members\">" . number_format($totalRegisteredMembers) . "</a></div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Registered Members: " . number_format($todayRegisteredMembers) . "</div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Members Awaiting Approval: <a href=\"?action=Member Manager&do=Awaiting Approval\">" . number_format($membersAwaitingApproval) . "</a></div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Muted Members: <a href=\"?action=Member Manager&do=Muted Members\">" . number_format($mutedMembers) . "</a></div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Banned Members: <a href=\"?action=Member Manager&do=Banned Members\">" . number_format($bannedMembers) . "</a></div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Warned Members: <a href=\"?action=Member Manager&do=Warned Members\">" . number_format($warnedMembers) . "</a></div>
		</div>
		
		<div style=\"float: left; width: 250px; height: 140px; padding: 5px; margin: 5px; font-size: 11px;background: #F5F5F5;border: 1px solid #DDDDDD;border-radius: 5px; -webkit-border-radius:  5px; -moz-border-radius:  5px; -khtml-border-radius:  5px;overflow: hidden;zoom: 1;\">
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Created Threads: " . number_format($todayCreatedThreads) . "</div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Replies: " . number_format($todayPostedReplies) . "</div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Comments: " . number_format($todayPostedComments) . "</div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Liked Contents: " . number_format($todayLikedContents) . "</div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Reports: " . number_format($todayPostedReports) . "</div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Requests: " . number_format($todayPostedRequests) . "</div>
		</div>

		<div style=\"float: left; width: 250px; height: 140px; padding: 5px; margin: 5px; font-size: 11px;background: #F5F5F5;border: 1px solid #DDDDDD;border-radius: 5px; -webkit-border-radius:  5px; -moz-border-radius:  5px; -khtml-border-radius:  5px;overflow: hidden;zoom: 1;\">
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Total Uploaded Torrents: " . number_format($totalUploadedTorrents) . "</div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Uploaded Torrents: " . number_format($todayUploadedTorrents) . "</div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Torrents Awaiting Seed: " . number_format($torrentsAwaitingSeed) . "</div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Total Peers" . ((getsetting("xbt", "active") ? " (XBT)" : "")) . ": " . number_format($totalPeers) . "</div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Seeders: " . number_format($Seeders) . "</div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\">Leechers: " . number_format($Leechers) . "</div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\"></div>
			<div style=\"padding: 3px 0; margin-bottom: 3px;\"></div>
		</div>
	</div>
	
	<div style=\"clear: both;\"></div>

	<div id=\"tsue_news\">
		<img src=\"images/ajax/fb_ajax-loader.gif\" alt=\"\" title=\"\" class=\"ajaxLoader\" /> " . get_phrase("loading") . "
	</div>
	<br />
	
	<script type=\"text/javascript\">
		\$(document).ready(function()
		{
			\$.ajax
			({
				url: \"index.php\",
				data: \"isAjax=1&action=tsue_news\",
				type: \"POST\",
				success: function(response)
				{
					\$(\"#tsue_news\").css({\"text-align\": \"left\"}).html('<span style=\"float: right;\" id=\"showAllRecentNews\" class=\"submit\">Show All Recent News</span>'+response).find(\"div.dottedBottom\").each(function(i)
					{
						if(i > 0)
						{
							\$(this).css({\"display\":\"none\"});
						}
					});

					\$(\"#showAllRecentNews\").click(function(e)
					{
						\$(\"div.dottedBottom\").fadeIn(300);
						\$(this).remove();
					});
				}
			});
		});
	</script>"; 
} 
 
if( $TSUE["action"] == "server-status" ) 
{ 
    checkdemomode(); 
    aaaaad("Server"); 
    if( $TSUE["do"] == "update" ) 
    { 
        $serverIP = getserverip(); 
        $Ports = array( "HTTP" => getsetting("server", "http_port", 80), "HTTPS" => getsetting("server", "https_port", 443), "SSH" => getsetting("server", "ssh_port", 22), "FTP" => getsetting("server", "ftp_port", 21), "POP3" => getsetting("server", "pop3_port", 110) ); 
        if( array_search("", $Ports) !== false ) 
        { 
            exit( errormessage(get_phrase("please_setup_your_server_first")) ); 
        } 
 
        $Status = array(  ); 
        foreach( $Ports as $Type => $Port ) 
        { 
            if( $Port ) 
            { 
                $fp = @fsockopen($serverIP, $Port, $errno, $errstr, 7); 
                if( $fp ) 
                { 
                    $Status[$Type] = "up"; 
                } 
                else 
                { 
                    $Status[$Type] = "down"; 
                } 
 
            } 
 
        } 
        $Rows = ""; 
        foreach( $Status as $rowName => $Row ) 
        { 
            $Rows .= "
			<td><img src=\"images/status/" . $Row . ".png\" alt=\"\" title=\"\" /></td>"; 
        } 
        if( getsetting("xbt", "active") ) 
        { 
            $fp = @fsockopen($serverIP, 2710, $errno, $errstr, 7); 
            $Rows .= "
			<td><img src=\"images/status/" . (($fp ? "up" : "down")) . ".png\" alt=\"\" title=\"\" /></td>"; 
        } 
 
        $HTML = "
		<table cellpadding=\"0\" cellspacing=\"0\" class=\"table\">
			<tr>
				<th>Server</th>
				<th>HTTP</th>
				<th>HTTPS</th>
				<th>SSH</th>
				<th>FTP</th>
				<th>POP3</th>
				" . ((getsetting("xbt", "active") ? "
				<th>XBT</th>" : "")) . "
			</tr>
			<tr>
				<td>" . U . " (" . $serverIP . ")</td>
				" . $Rows . "
			</tr>
		</table>"; 
        echo $HTML; 
        exit(); 
    } 
    else 
    { 
        echo "
	<!DOCTYPE html>
	<html id=\"TSUE\" lang=\"en-us\">
		<head>
			<noscript><meta http-equiv=refresh content=\"0; URL=" . TSUE_ADMINCP_URL . "?noscript=1\" /></noscript>
			<title>Server Status</title>
			<link rel=\"stylesheet\" type=\"text/css\" href=\"css/serverStatus.css\" />
			<script type=\"text/javascript\">
				var TSUEPhrases = [];
			</script>
			<script type=\"text/javascript\" src=\"./../js/tsue/jquery.js\"></script>
		</head>
		<body>
			<div class=\"form\">" . get_phrase("server_status_table_msg") . "</div>
			<div id=\"serverStatus\" class=\"form\">
				<img src=\"images/ajax/fb_ajax-loader.gif\" alt=\"\" title=\"\" class=\"ajaxLoader\" />" . get_phrase("loading") . "
			</div>
			<script type=\"text/javascript\">
				\$(window).load(function()
				{
					\$.ajax
					({
						url: \"index.php\",
						data: \"action=server-status&do=update\",
						type: \"POST\",
						success: function(response)
						{
							\$(\"#serverStatus\").html(response);
						}
					});
				});
			</script>
		</body>
	</html>"; 
        exit(); 
    } 
 
} 
else 
{ 
    if( $TSUE["action"] == "php-info" ) 
    { 
        checkdemomode(); 
        aaaaad("Server"); 
        phpinfo(); 
        exit(); 
    } 
 
    if( $TSUE["action"] == "irc-debug" ) 
    { 
        checkdemomode(); 
        aaaaad("Options"); 
        $TSUE_IRCBot = new TSUE_IRCBot("debug"); 
        echo $TSUE_IRCBot->Debug(); 
        exit(); 
    } 
 
    if( $TSUE["action"] == "closeGlobalWarning" && IS_AJAX ) 
    { 
        $_SESSION["skipGlobalWarnings"] = TIMENOW; 
        exit(); 
    } 
 
    if( $TSUE["action"] == "getDirectorySize" && IS_AJAX ) 
    { 
        $validDirs = array( "avatars", "countryFlags", "downloads", "gallery", "languageFlags", "posts", "smilies", "subTitles", "torrents" ); 
        $totalSize = 0; 
        foreach( $validDirs as $dir ) 
        { 
            $totalSize += foldersize(DATAPATH . $dir); 
        } 
        $totalSize = friendly_size($totalSize); 
        exit( $totalSize ); 
    } 
    else 
    { 
        if( $TSUE["action"] == "doCleanup" && IS_AJAX ) 
        { 
            aaaaad("Cleanup"); 
            $dir = trim(getvar("dir")); 
            if( $dir ) 
            { 
                $validDirs = array( "avatars", "countryFlags", "downloads", "gallery", "languageFlags", "posts", "smilies", "subTitles", "torrents" ); 
                $skipFiles = array( ".", "..", "index.html", ".htaccess" ); 
                if( in_array($dir, $validDirs) ) 
                { 
                    $fullPath = DATAPATH . $dir . "/"; 
                    if( is_dir($fullPath) ) 
                    { 
                        switch( $dir ) 
                        { 
                            case "avatars": 
                                $Result = $TSUE["TSUE_Database"]->query("SELECT memberid FROM tsue_members ORDER BY memberid ASC"); 
                                $Memberids = array(  ); 
                                if( $TSUE["TSUE_Database"]->num_rows($Result) ) 
                                { 
                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) ) 
                                    { 
                                        $Memberids[] = $Row["memberid"]; 
                                    } 
                                } 
 
                                foreach( array( "l/", "m/", "s/" ) as $subDir ) 
                                { 
                                    if( is_dir($fullPath . $subDir) ) 
                                    { 
                                        $Avatars = scandir($fullPath . $subDir); 
                                        if( $Avatars ) 
                                        { 
                                            foreach( $Avatars as $Avatar ) 
                                            { 
                                                $ext = strtolower(file_extension($Avatar)); 
                                                if( in_array($ext, array( "jpg", "jpeg", "gif", "png" )) ) 
                                                { 
                                                    $memberid = str_replace(array( ".jpg", ".jpeg", ".gif", ".png" ), "", $Avatar); 
                                                    if( !in_array($memberid, $Memberids) ) 
                                                    { 
                                                        @unlink($fullPath . $subDir . $Avatar); 
                                                    } 
 
                                                } 
                                                else 
                                                { 
                                                    if( !in_array($Avatar, $skipFiles) ) 
                                                    { 
                                                        @unlink($fullPath . $subDir . $Avatar); 
                                                    } 
 
                                                } 
 
                                            } 
                                        } 
 
                                    } 
 
                                } 
                                break; 
                            case "countryFlags": 
                                $Flags = scandir($fullPath); 
                                if( $Flags ) 
                                { 
                                    foreach( $Flags as $Flag ) 
                                    { 
                                        $ext = strtolower(file_extension($Flag)); 
                                        if( !in_array($ext, array( "gif", "jpg", "png", "jpeg" )) && !in_array($Flag, $skipFiles) ) 
                                        { 
                                            @unlink($fullPath . $Flag); 
                                        } 
 
                                    } 
                                } 
 
                                break; 
                            case "downloads": 
                                $Result = $TSUE["TSUE_Database"]->query("SELECT filename, preview FROM tsue_downloads"); 
                                $Filenames = $Previews = array(  ); 
                                if( $TSUE["TSUE_Database"]->num_rows($Result) ) 
                                { 
                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) ) 
                                    { 
                                        if( $Row["filename"] ) 
                                        { 
                                            $Filenames[] = $Row["filename"]; 
                                        } 
 
                                        if( $Row["preview"] ) 
                                        { 
                                            $Previews[] = $Row["preview"]; 
                                        } 
 
                                    } 
                                } 
 
                                foreach( array( "files/", "previews/" ) as $subDir ) 
                                { 
                                    if( is_dir($fullPath . $subDir) ) 
                                    { 
                                        $Files = scandir($fullPath . $subDir); 
                                        if( $Files ) 
                                        { 
                                            foreach( $Files as $File ) 
                                            { 
                                                if( !in_array($File, $Filenames) && !in_array($File, $Previews) && !in_array($File, $skipFiles) ) 
                                                { 
                                                    @unlink($fullPath . $subDir . $File); 
                                                } 
 
                                            } 
                                        } 
 
                                    } 
 
                                } 
                                break; 
                            case "gallery": 
                                $Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type IN(\"image_gallery_public\", \"image_gallery_private\") AND associated = 1"); 
                                $Filenames = array(  ); 
                                if( $TSUE["TSUE_Database"]->num_rows($Result) ) 
                                { 
                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) ) 
                                    { 
                                        $Filenames[] = $Row["filename"]; 
                                    } 
                                } 
 
                                foreach( array( "l/", "s/" ) as $subDir ) 
                                { 
                                    if( is_dir($fullPath . $subDir) ) 
                                    { 
                                        $Files = scandir($fullPath . $subDir); 
                                        if( $Files ) 
                                        { 
                                            foreach( $Files as $File ) 
                                            { 
                                                if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) ) 
                                                { 
                                                    @unlink($fullPath . $subDir . $File); 
                                                } 
 
                                            } 
                                        } 
 
                                    } 
 
                                } 
                                break; 
                            case "languageFlags": 
                                $Result = $TSUE["TSUE_Database"]->query("SELECT languageid FROM tsue_languages ORDER BY languageid ASC"); 
                                $Languageids = array(  ); 
                                if( $TSUE["TSUE_Database"]->num_rows($Result) ) 
                                { 
                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) ) 
                                    { 
                                        $Languageids[] = $Row["languageid"]; 
                                    } 
                                } 
 
                                $Flags = scandir($fullPath); 
                                if( $Flags ) 
                                { 
                                    foreach( $Flags as $Flag ) 
                                    { 
                                        $ext = strtolower(file_extension($Flag)); 
                                        if( in_array($ext, array( "gif", "jpg", "png" )) ) 
                                        { 
                                            $languageid = str_replace(array( ".gif", ".jpg", ".png" ), "", $Flag); 
                                            if( !in_array($languageid, $Languageids) ) 
                                            { 
                                                @unlink($fullPath . $Flag); 
                                            } 
 
                                        } 
                                        else 
                                        { 
                                            if( !in_array($Flag, $skipFiles) ) 
                                            { 
                                                @unlink($fullPath . $Flag); 
                                            } 
 
                                        } 
 
                                    } 
                                } 
 
                                break; 
                            case "posts": 
                                $Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type = \"posts\" AND associated = 1"); 
                                $Filenames = array(  ); 
                                if( $TSUE["TSUE_Database"]->num_rows($Result) ) 
                                { 
                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) ) 
                                    { 
                                        $Filenames[] = $Row["filename"]; 
                                    } 
                                } 
 
                                $Files = scandir($fullPath); 
                                if( $Files ) 
                                { 
                                    foreach( $Files as $File ) 
                                    { 
                                        if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) ) 
                                        { 
                                            @unlink($fullPath . $File); 
                                        } 
 
                                    } 
                                } 
 
                                break; 
                            case "smilies": 
                                $Smilies = scandir($fullPath); 
                                if( $Smilies ) 
                                { 
                                    foreach( $Smilies as $S ) 
                                    { 
                                        $ext = strtolower(file_extension($S)); 
                                        if( !in_array($ext, array( "gif", "jpg", "png" )) && !in_array($S, $skipFiles) ) 
                                        { 
                                            @unlink($fullPath . $S); 
                                        } 
 
                                    } 
                                } 
 
                                break; 
                            case "subTitles": 
                                $Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_subtitles"); 
                                $Filenames = array(  ); 
                                if( $TSUE["TSUE_Database"]->num_rows($Result) ) 
                                { 
                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) ) 
                                    { 
                                        if( $Row["filename"] ) 
                                        { 
                                            $Filenames[] = $Row["filename"]; 
                                        } 
 
                                    } 
                                } 
 
                                $Files = scandir($fullPath); 
                                if( $Files ) 
                                { 
                                    foreach( $Files as $File ) 
                                    { 
                                        if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) ) 
                                        { 
                                            @unlink($fullPath . $File); 
                                        } 
 
                                    } 
                                } 
 
                                break; 
                            case "torrents": 
                                $subDirs = array( "category_images/", "imdb/", "nfo/", "torrent_files/", "torrent_genres/", "torrent_images/" ); 
                                foreach( $subDirs as $subDir ) 
                                { 
                                    if( is_dir($fullPath . $subDir) ) 
                                    { 
                                        switch( $subDir ) 
                                        { 
                                            case "category_images/": 
                                                $Result = $TSUE["TSUE_Database"]->query("SELECT cid FROM tsue_torrents_categories ORDER BY cid ASC"); 
                                                $Cids = array(  ); 
                                                if( $TSUE["TSUE_Database"]->num_rows($Result) ) 
                                                { 
                                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) ) 
                                                    { 
                                                        $Cids[] = $Row["cid"]; 
                                                    } 
                                                } 
 
                                                $categoryImages = scandir($fullPath . $subDir); 
                                                if( $categoryImages ) 
                                                { 
                                                    foreach( $categoryImages as $categoryImage ) 
                                                    { 
                                                        $ext = strtolower(file_extension($categoryImage)); 
                                                        if( in_array($ext, array( "png", "gif", "jpg", "jpeg" )) ) 
                                                        { 
                                                            $cid = str_replace(array( ".png", ".gif", ".jpg", ".jpeg" ), "", $categoryImage); 
                                                            if( !in_array($cid, $Cids) ) 
                                                            { 
                                                                @unlink($fullPath . $subDir . $categoryImage); 
                                                            } 
 
                                                        } 
                                                        else 
                                                        { 
                                                            if( !in_array($categoryImage, $skipFiles) ) 
                                                            { 
                                                                @unlink($fullPath . $subDir . $categoryImage); 
                                                            } 
 
                                                        } 
 
                                                    } 
                                                } 
 
                                                break; 
                                            case "imdb/": 
                                                $Result = $TSUE["TSUE_Database"]->query("SELECT content FROM tsue_imdb"); 
                                                $Filenames = array(  ); 
                                                if( $TSUE["TSUE_Database"]->num_rows($Result) ) 
                                                { 
                                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) ) 
                                                    { 
                                                        if( $Row["content"] ) 
                                                        { 
                                                            $Row["content"] = @unserialize($Row["content"]); 
                                                            if( $Row["content"] && isset($Row["content"]["title_id"]) && $Row["content"]["title_id"] ) 
                                                            { 
                                                                $Filenames[] = $Row["content"]["title_id"] . ".jpg"; 
                                                            } 
 
                                                        } 
 
                                                    } 
                                                } 
 
                                                $Files = scandir($fullPath . $subDir); 
                                                if( $Files ) 
                                                { 
                                                    foreach( $Files as $File ) 
                                                    { 
                                                        if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) ) 
                                                        { 
                                                            @unlink($fullPath . $subDir . $File); 
                                                        } 
 
                                                    } 
                                                } 
 
                                                break; 
                                            case "nfo/": 
                                                $Files = scandir($fullPath . $subDir); 
                                                if( $Files ) 
                                                { 
                                                    foreach( $Files as $File ) 
                                                    { 
                                                        if( !in_array($File, $skipFiles) ) 
                                                        { 
                                                            @unlink($fullPath . $subDir . $File); 
                                                        } 
 
                                                    } 
                                                } 
 
                                                break; 
                                            case "torrent_files/": 
                                                $Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type = \"torrent_files\" AND associated = 1"); 
                                                $Filenames = array(  ); 
                                                if( $TSUE["TSUE_Database"]->num_rows($Result) ) 
                                                { 
                                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) ) 
                                                    { 
                                                        $Filenames[] = $Row["filename"]; 
                                                    } 
                                                } 
 
                                                $Files = scandir($fullPath . $subDir); 
                                                if( $Files ) 
                                                { 
                                                    foreach( $Files as $File ) 
                                                    { 
                                                        if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) ) 
                                                        { 
                                                            @unlink($fullPath . $subDir . $File); 
                                                        } 
 
                                                    } 
                                                } 
 
                                                break; 
                                            case "torrent_genres/": 
                                                $Result = $TSUE["TSUE_Database"]->query("SELECT gicon FROM tsue_torrents_genres"); 
                                                $Filenames = array(  ); 
                                                if( $TSUE["TSUE_Database"]->num_rows($Result) ) 
                                                { 
                                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) ) 
                                                    { 
                                                        if( $Row["gicon"] ) 
                                                        { 
                                                            $Filenames[] = $Row["gicon"]; 
                                                        } 
 
                                                    } 
                                                } 
 
                                                $Files = scandir($fullPath . $subDir); 
                                                if( $Files ) 
                                                { 
                                                    foreach( $Files as $File ) 
                                                    { 
                                                        if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) ) 
                                                        { 
                                                            @unlink($fullPath . $subDir . $File); 
                                                        } 
 
                                                    } 
                                                } 
 
                                                break; 
                                            case "torrent_images/": 
                                                $Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type IN (\"torrent_images\", \"torrent_screenshots\") AND associated = 1"); 
                                                $Filenames = array(  ); 
                                                if( $TSUE["TSUE_Database"]->num_rows($Result) ) 
                                                { 
                                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) ) 
                                                    { 
                                                        $Filenames[] = $Row["filename"]; 
                                                    } 
                                                } 
 
                                                foreach( array( "l/", "m/", "s/" ) as $deepSubDir ) 
                                                { 
                                                    if( is_dir($fullPath . $subDir . $deepSubDir) ) 
                                                    { 
                                                        $Files = scandir($fullPath . $subDir . $deepSubDir); 
                                                        if( $Files ) 
                                                        { 
                                                            foreach( $Files as $File ) 
                                                            { 
                                                                $ext = strtolower(file_extension($File)); 
                                                                if( !in_array($ext, array( "png", "gif", "jpg", "jpeg" )) && !in_array($File, $skipFiles) ) 
                                                                { 
                                                                    @unlink($fullPath . $subDir . $deepSubDir . $File); 
                                                                } 
 
                                                            } 
                                                        } 
 
                                                    } 
 
                                                } 
                                                break; 
                                        } 
                                    } 
 
                                } 
                                break; 
                        } 
                    } 
 
                } 
 
            } 
 
            exit(); 
        } 
 
        if( $TSUE["action"] == "checkHitRunOptions" && IS_AJAX ) 
        { 
            if( isset($_POST["HITRUN"]) ) 
            { 
                $Options = $_POST["HITRUN"]; 
                $XBT = $TSUE["TSUE_Settings"]->settings["xbt"]["active"]; 
                $Rules = array(  ); 
                if( $XBT ) 
                { 
                    if( isset($Options["dayTolerance"]) && $Options["dayTolerance"] ) 
                    { 
                        $Rules[] = "p.mtime < " . (TIMENOW - $Options["dayTolerance"] * 24 * 60 * 60); 
                    } 
 
                    if( isset($Options["announceLimit"]) && $Options["announceLimit"] ) 
                    { 
                        $Rules[] = "p.announced < " . $Options["announceLimit"]; 
                    } 
 
                    if( isset($Options["skipMembergroups"]) && !empty($Options["skipMembergroups"]) ) 
                    { 
                        $Rules[] = "m.membergroupid NOT IN (" . implode(",", array_map("intval", $Options["skipMembergroups"])) . ")"; 
                    } 
 
                    $Rules[] = "p.active = 0"; 
                    $Rules[] = "p.left = 0"; 
                    $Rules[] = "p.isWarned = 0"; 
                    $Rules[] = "p.downloaded > 0"; 
                    $WHERE = implode(" AND ", $Rules); 
                    $Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.uploaded as total_uploaded, p.mtime as last_updated, p.announced, t.tid, t.name, t.size, t.options, m.memberid, m.membername, g.groupname, g.groupstyle FROM xbt_files_users p INNER JOIN tsue_torrents t ON (p.fid=t.tid) INNER JOIN tsue_members m ON (p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE " . $WHERE); 
                } 
                else 
                { 
                    if( isset($Options["skipMembergroups"]) && !empty($Options["skipMembergroups"]) ) 
                    { 
                        $Rules[] = "m.membergroupid NOT IN (" . implode(",", array_map("intval", $Options["skipMembergroups"])) . ")"; 
                    } 
 
                    $WHERE = ""; 
                    if( $Rules ) 
                    { 
                        $WHERE = " WHERE " . implode(" AND ", $Rules); 
                    } 
 
                    $Peers = $TSUE["TSUE_Database"]->query("
																				SELECT SQL_NO_CACHE
																				SUM(p.total_uploaded) AS total_uploaded, 
																				MAX(p.last_updated) AS last_updated, 
																				SUM(p.announced) AS announced, 
																				MAX(p.active) AS active, 
																				MAX(p.left) AS `left`, 
																				MAX(p.isWarned) AS isWarned, 
																				SUM(p.total_downloaded) AS total_downloaded, 
																				t.tid, t.name, t.size, t.options, m.memberid, m.membername, g.groupname, g.groupstyle 
																				FROM tsue_torrents_peers p 
																				INNER JOIN tsue_torrents t USING(tid) 
																				INNER JOIN tsue_members m USING(memberid) 
																				LEFT JOIN tsue_membergroups g USING(membergroupid)
																				" . $WHERE . " 
																				GROUP BY p.tid, p.memberid 
																				ORDER BY p.last_updated DESC
																			"); 
                } 
 
                $Data = "<div class=\"error\">" . get_phrase("no_results_found") . " " . get_phrase("check_hitrun_options") . "</div>"; 
                if( $TSUE["TSUE_Database"]->num_rows($Peers) ) 
                { 
                    $Data = "
		<div style=\"max-height: 100px; overflow: auto; width: 100%;\">
			<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" class=\"table\">
				<tr>
					<td class=\"tableContentTDHeader\">" . get_phrase("torrents_peer_membername") . "</td>
					<td class=\"tableContentTDHeader\">Torrent</td>
					<td class=\"tableContentTDHeader\">" . get_phrase("torrents_peer_last_updated") . "</td>
					<td class=\"tableContentTDHeader\">" . get_phrase("torrents_peer_announced") . "</td>
					<td class=\"tableContentTDHeader\">" . get_phrase("promotion_minRatio") . "</td>
					<td class=\"tableContentTDHeader\">" . get_phrase("ratio") . "</td>
				</tr>"; 
                    while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) ) 
                    { 
                        $torrentOptions = unserialize($Peer["options"]); 
                        if( isset($torrentOptions["hitRunRatio"]) && $torrentOptions["hitRunRatio"] ) 
                        { 
                            $passed = false; 
                            if( $XBT ) 
                            { 
                                $torrentOptions["hitRunRatio"] = 0 + $torrentOptions["hitRunRatio"]; 
                                if( member_ratio($Peer["total_uploaded"], $Peer["size"], true) < $torrentOptions["hitRunRatio"] ) 
                                { 
                                    $passed = false; 
                                } 
                                else 
                                { 
                                    $passed = true; 
                                } 
 
                            } 
                            else 
                            { 
                                if( isset($Options["dayTolerance"]) && $Options["dayTolerance"] && TIMENOW - $Options["dayTolerance"] * 86400 < $Peer["last_updated"] ) 
                                { 
                                    $passed = true; 
                                } 
                                else 
                                { 
                                    if( isset($Options["announceLimit"]) && $Options["announceLimit"] && $Options["announceLimit"] <= $Peer["announced"] ) 
                                    { 
                                        $passed = true; 
                                    } 
                                    else 
                                    { 
                                        if( $Peer["active"] ) 
                                        { 
                                            $passed = true; 
                                        } 
                                        else 
                                        { 
                                            if( $Peer["left"] ) 
                                            { 
                                                $passed = true; 
                                            } 
                                            else 
                                            { 
                                                if( $Peer["isWarned"] ) 
                                                { 
                                                    $passed = true; 
                                                } 
                                                else 
                                                { 
                                                    if( !$Peer["total_downloaded"] ) 
                                                    { 
                                                        $passed = true; 
                                                    } 
 
                                                } 
 
                                            } 
 
                                        } 
 
                                    } 
 
                                } 
 
                                if( !$passed ) 
                                { 
                                    $torrentOptions["hitRunRatio"] = 0 + $torrentOptions["hitRunRatio"]; 
                                    if( member_ratio($Peer["total_uploaded"], $Peer["size"], true) < $torrentOptions["hitRunRatio"] ) 
                                    { 
                                        $passed = false; 
                                    } 
                                    else 
                                    { 
                                        $passed = true; 
                                    } 
 
                                } 
 
                            } 
 
                            if( !$passed ) 
                            { 
                                $datediff = TIMENOW - $Peer["last_updated"]; 
                                $days = floor($datediff / (60 * 60 * 24)); 
                                $days = get_phrase("x_days_ago", $days); 
                                $Data .= "
					<tr>
						<td class=\"tableContentTD\">" . aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Peer["memberid"] => array( "target" => "_blank", "phrase" => getmembername($Peer["membername"], $Peer["groupstyle"]) ) )) . "</td>
						<td class=\"tableContentTD\">" . aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Peer["tid"], strip_tags($Peer["name"])) . "</td>
						<td class=\"tableContentTD\">" . convert_time($Peer["last_updated"]) . " (<span style=\"font-size: 10px; color: #ccc;\">" . $days . "</span>)</td>
						<td class=\"tableContentTD\">" . number_format($Peer["announced"]) . "</td>
						<td class=\"tableContentTD\">" . $torrentOptions["hitRunRatio"] . "</td>
						<td class=\"tableContentTD\">" . member_ratio($Peer["total_uploaded"], $Peer["size"]) . "</td>
					</tr>"; 
                            } 
 
                        } 
 
                    } 
                    $Data .= "
			</table>
		</div>
		<br />" . get_phrase("check_hitrun_options"); 
                } 
 
                exit( $Data ); 
            } 
 
            exit(); 
        } 
 
        if( $TSUE["action"] == "tsue_news" && IS_AJAX ) 
        { 
            $tsueNewsURL = "oops"; 
            $HTML = fetchurl($tsueNewsURL); 
            exit( $HTML ); 
        } 
 
        if( $TSUE["action"] == "checkAddonUpdates" && IS_AJAX ) 
        { 
            aaaaad("TSUE Store"); 
            if( !function_exists("simplexml_load_file") ) 
            { 
                exit( "TSUE Add-on system requires the PHP function <code>simplexml_load_file()</code>.<br />Your server has this disabled. Please ask your hosting company to enable <code>simplexml_load_file</code>." ); 
            } 
 
            $fetchAddonsURL = "oops"; 
            $Addons = fetchurl($fetchAddonsURL); 
            if( !$Addons ) 
            { 
                exit( get_phrase("failed_to_open_x", "addons") ); 
            } 
 
            $installedAddons = $TSUE["TSUE_Database"]->query("SELECT filename, title, version_string, version_id FROM tsue_admincp_addons WHERE active = 1"); 
            if( $TSUE["TSUE_Database"]->num_rows($installedAddons) ) 
            { 
                $installedAddonsCache = array(  ); 
                while( $A = $TSUE["TSUE_Database"]->fetch_assoc($installedAddons) ) 
                { 
                    $installedAddonsCache["'" . $A["filename"] . "'"] = $A; 
                } 
                $tableContents = aaaaag(array( array( "width" => "67%", "text" => "Title" ), array( "width" => "15%", "text" => "Installed Version" ), array( "width" => "18%", "text" => "Newest Version" ) ), "tableContentTR", "tableContentTDHeader"); 
                foreach( $Addons->addon as $Addon ) 
                { 
                    if( isset($installedAddonsCache["'" . $Addon->filename . "'"]) ) 
                    { 
                        $workWidth = $installedAddonsCache["'" . $Addon->filename . "'"]; 
                        if( $workWidth["version_id"] < $Addon->version_id ) 
                        { 
                            $Addon->version_string = "<span style=\"font-weight: bold; font-size: 14px;\">v" . $Addon->version_string . "</span>"; 
                        } 
                        else 
                        { 
                            $Addon->version_string = "v" . $Addon->version_string; 
                        } 
 
                        $tableContents .= aaaaag(array( array( "width" => "67%", "text" => $Addon->title ), array( "width" => "15%", "text" => "v" . $workWidth["version_string"] ), array( "width" => "18%", "text" => $Addon->version_string ) )); 
                    } 
 
                } 
                $HTML = createtable(get_phrase("check_updates"), $tableContents); 
                exit( $HTML ); 
            } 
            else 
            { 
                exit( "<div class=\"error\">" . get_phrase("there_is_no_any_addon_installed_yet") . "</div>" ); 
            } 
 
        } 
        else 
        { 
            if( $TSUE["action"] == "getTSUEAddons" && IS_AJAX ) 
            { 
                aaaaad("TSUE Store"); 
                if( !function_exists("simplexml_load_file") ) 
                { 
                    exit( "TSUE Add-on system requires the PHP function <code>simplexml_load_file()</code>.<br />Your server has this disabled. Please ask your hosting company to enable <code>simplexml_load_file</code>." ); 
                } 
 
                $fetchAddonsURL = "oops"; 
                $Addons = fetchurl($fetchAddonsURL); 
 
                if( !$Addons ) 
                { 
                    exit( get_phrase("failed_to_open_x", "addons") ); 
                } 
 
                $listAddons = ""; 
                foreach( $Addons->addon as $Addon ) 
                { 
                    if( $Addon->discount != "0.00" ) 
                    { 
                        $Addon->price = "<s>" . $Addon->price . "</s> <span style=\"font-size: 13px;\">\$" . $Addon->discount . "</span>"; 
                    } 
 
                    $listAddons .= "<br />"; 
                } 
                exit( $listAddons ); 
            } 
            else 
            { 
                if( $TSUE["action"] == "reset_passkey" && IS_AJAX ) 
                { 
                    checkdemomode(); 
                    aaaaad("All Members"); 
                    $memberid = intval(getvar("memberid")); 
                    if( $memberid ) 
                    { 
                        $passkey = generatepasskey(); 
                        $TSUE["TSUE_Database"]->update("tsue_members", array( "passkey" => $passkey ), "memberid = " . $TSUE["TSUE_Database"]->escape($memberid)); 
                        $TSUE["TSUE_Database"]->update("tsue_member_profile", array( "torrent_pass" => substr($passkey, 0, 32) ), "memberid = " . $TSUE["TSUE_Database"]->escape($memberid)); 
                        exit( $passkey ); 
                    } 
 
                } 
 
                if( $TSUE["action"] == "fixTorrentHash" && IS_AJAX ) 
                { 
                    checkdemomode(); 
                    aaaaad("Torrents"); 
                    $tid = intval(getvar("tid")); 
                    if( $tid ) 
                    { 
                        $Torrent = $TSUE["TSUE_Database"]->query_result("SELECT t.name, a.filename FROM tsue_torrents t LEFT JOIN tsue_attachments a ON (a.content_type='torrent_files' AND a.content_id=t.tid) WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid)); 
                        if( $Torrent ) 
                        { 
                            $T = new Torrent(); 
                            if( $Torrent["filename"] ) 
                            { 
                                $TorrentFile = DATAPATH . "torrents/torrent_files/" . $Torrent["filename"]; 
                                if( is_file($TorrentFile) ) 
                                { 
                                    $T->load(file_get_contents($TorrentFile)); 
                                    $info_hash = $T->getHash(); 
                                    $TSUE["TSUE_Database"]->update("tsue_torrents", array( "info_hash" => $info_hash ), "tid=" . $TSUE["TSUE_Database"]->escape($tid)); 
                                    _sendheaders(strip_tags($Torrent["name"]) . "~~~" . bin2hex($info_hash)); 
                                } 
                                else 
                                { 
                                    _sendheaders(strip_tags($Torrent["name"]) . "~~~n/a"); 
                                } 
 
                            } 
 
                        } 
 
                    } 
 
                } 
 
                if( $TSUE["action"] == "resetIMDB" && IS_AJAX ) 
                { 
                    checkdemomode(); 
                    aaaaad("Torrents"); 
                    $tid = intval(getvar("tid")); 
                    if( $tid ) 
                    { 
                        $Torrent = $TSUE["TSUE_Database"]->query_result("SELECT name, options FROM tsue_torrents  WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid)); 
                        if( $Torrent ) 
                        { 
                            $torrentName = strip_tags($Torrent["name"]); 
                            $Options = unserialize($Torrent["options"]); 
                            if( $Options["imdb"] ) 
                            { 
                                $IMDB = new IMDB($Options["imdb"]); 
                                if( 2 < count($IMDB->movieInfo) ) 
                                { 
                                    $BuildQuery = array( "tid" => $tid, "content" => serialize($IMDB->movieInfo) ); 
                                    $TSUE["TSUE_Database"]->replace("tsue_imdb", $BuildQuery); 
                                    $IMDB->posterPath = DATAPATH . "torrents/imdb/"; 
                                    $IMDB->savePoster($IMDB->movieInfo["poster"]); 
                                    _sendheaders(strip_tags($Options["imdb"]) . "~~~" . $torrentName); 
                                } 
 
                            } 
                            else 
                            { 
                                exit( "no_imdb~~~" . $torrentName ); 
                            } 
 
                        } 
 
                    } 
 
                } 
 
                if( $TSUE["action"] == "autoComplete" && IS_AJAX ) 
                { 
                    $keyword = getvar("keyword"); 
                    if( !$keyword ) 
                    { 
                        exit(); 
                    } 
 
                    switch( $TSUE["do"] ) 
                    { 
                        case "searchMember": 
                            $memberList = array(  ); 
                            $Members = $TSUE["TSUE_Database"]->query("SELECT membername FROM tsue_members WHERE membername LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY membername ASC"); 
                            if( !$TSUE["TSUE_Database"]->num_rows($Members) ) 
                            { 
                                exit(); 
                            } 
 
                            while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) ) 
                            { 
                                $memberList[] = $Member["membername"]; 
                            } 
                            _sendheaders(json_encode($memberList), "application/json"); 
                            break; 
                        case "searchINAdminCP": 
                            $Result = array(  ); 
                            $Templates = $TSUE["TSUE_Database"]->query("SELECT template.templateid, template.themeid, template.templatename, theme.themename FROM tsue_templates template INNER JOIN tsue_themes theme USING(themeid) WHERE template.templatename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' OR template.template LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY template.themeid ASC, template.templatename ASC"); 
                            if( $TSUE["TSUE_Database"]->num_rows($Templates) ) 
                            { 
                                $Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Templates</div>" ); 
                                while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($Templates) ) 
                                { 
                                    $Result[] = array( "url" => TSUE_ADMINCP_URL . "?action=Appearance&do=Themes&themeid=" . $Template["themeid"] . "&type=manageTemplates&editTemplate=" . $Template["templateid"], "label" => "<b>Theme:</b> " . $Template["themename"] . " | <b>Template:</b> " . $Template["templatename"] ); 
                                } 
                            } 
 
                            $Styles = $TSUE["TSUE_Database"]->query("SELECT style.styleid, style.stylename, style.themeid, theme.themename FROM tsue_styles style INNER JOIN tsue_themes theme USING(themeid) WHERE style.stylename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' OR style.css LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY style.themeid ASC, style.stylename ASC"); 
                            if( $TSUE["TSUE_Database"]->num_rows($Styles) ) 
                            { 
                                $Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Styles</div>" ); 
                                while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($Styles) ) 
                                { 
                                    $Result[] = array( "url" => TSUE_ADMINCP_URL . "?action=Appearance&do=Themes&themeid=" . $Style["themeid"] . "&type=manageStyles&editStyle=" . $Style["styleid"], "label" => "<b>Theme:</b> " . $Style["themename"] . " | <b>Style:</b> " . $Style["stylename"] ); 
                                } 
                            } 
 
                            $Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, g.groupstyle FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE m.membername LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY m.membername ASC"); 
                            if( $TSUE["TSUE_Database"]->num_rows($Members) ) 
                            { 
                                $Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Members</div>" ); 
                                while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) ) 
                                { 
                                    $Result[] = array( "url" => TSUE_ADMINCP_URL . "?action=Member Manager&do=All Members&edit=" . $Member["memberid"], "label" => getmembername($Member["membername"], $Member["groupstyle"]) ); 
                                } 
                            } 
 
                            $LangFound = array(  ); 
                            $Languages = $TSUE["TSUE_Database"]->query("SELECT languageid, title, phrase_global FROM tsue_languages"); 
                            while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) ) 
                            { 
                                $phraseGlobal = unserialize($Language["phrase_global"]); 
                                foreach( $phraseGlobal as $Name => $Phrase ) 
                                { 
                                    if( strpos(strtolower($Phrase), strtolower($keyword)) !== false || strpos(strtolower($Name), strtolower($keyword)) !== false ) 
                                    { 
                                        $LangFound[] = array( "url" => TSUE_ADMINCP_URL . "?action=Appearance&do=Languages&type=editPhrase&languageid=" . $Language["languageid"] . "&text=" . $Name, "label" => "<b>" . $Language["title"] . ":</b> " . $Name ); 
                                    } 
 
                                } 
                            } 
                            if( $LangFound ) 
                            { 
                                $Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Languages</div>" ); 
                                $Result = array_merge($Result, $LangFound); 
                                unset($LangFound); 
                            } 
 
                            if( !$Result ) 
                            { 
                                $Result = array( get_phrase("message_nothing_found") ); 
                            } 
 
                            _sendheaders(json_encode($Result), "application/json"); 
                    } 
                } 
 
                if( $TSUE["action"] == "torrentCategoriesInbutboxes" && IS_AJAX ) 
                { 
                    _sendheaders(torrentcategoriesinbutboxes(getvar("name"))); 
                } 
 
                if( $TSUE["action"] == "searchInTorrentsShowCatz" && IS_AJAX ) 
                { 
                    _sendheaders(torrentcategoriesinbutboxes("categories[]", "checkbox", tsue_explode(",", getvar("categories")))); 
                } 
 
                if( $TSUE["action"] == "rebuildForumCounters" && IS_AJAX ) 
                { 
                    aaaaad("Forum Manager"); 
                    $Forums = $TSUE["TSUE_Database"]->query("SELECT forumid, parentid FROM tsue_forums"); 
                    if( !$TSUE["TSUE_Database"]->num_rows($Forums) ) 
                    { 
                        exit( errormessage(get_phrase("forums_no_registered_forum_yet")) ); 
                    } 
 
                    while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) ) 
                    { 
                        $Threads = $TSUE["TSUE_Database"]->query("SELECT threadid FROM tsue_forums_threads WHERE forumid = " . $TSUE["TSUE_Database"]->escape($Forum["forumid"])); 
                        $threadCount = $TSUE["TSUE_Database"]->num_rows($Threads); 
                        $replyCount = -1; 
                        if( $threadCount ) 
                        { 
                            while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) ) 
                            { 
                                $Post = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(postid) AS replycount FROM tsue_forums_posts WHERE threadid=" . $TSUE["TSUE_Database"]->escape($Thread["threadid"])); 
                                if( $Post["replycount"] ) 
                                { 
                                    $replyCount += $Post["replycount"]; 
                                } 
 
                            } 
                        } 
 
                        if( $replyCount == -1 ) 
                        { 
                            $replyCount = 0; 
                        } 
 
                        $last_post_info = ""; 
                        $last_post_threadid = 0; 
                        $lastPostData = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.forumid = " . $TSUE["TSUE_Database"]->escape($Forum["forumid"]) . " ORDER BY p.post_date DESC LIMIT 1"); 
                        if( $lastPostData ) 
                        { 
                            $last_post_info = serialize(array( "lastpostdate" => $lastPostData["post_date"], "lastposter" => $lastPostData["membername"], "lastposterid" => $lastPostData["memberid"] )); 
                            $last_post_threadid = $lastPostData["threadid"]; 
                        } 
 
                        $buildQuery = array( "replycount" => $replyCount, "threadcount" => $threadCount, "last_post_info" => $last_post_info, "last_post_threadid" => $last_post_threadid ); 
                        $TSUE["TSUE_Database"]->update("tsue_forums", $buildQuery, "forumid = " . $TSUE["TSUE_Database"]->escape($Forum["forumid"])); 
                    } 
                    $Threads = $TSUE["TSUE_Database"]->query("SELECT threadid FROM tsue_forums_threads"); 
                    if( $TSUE["TSUE_Database"]->num_rows($Threads) ) 
                    { 
                        while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) ) 
                        { 
                            $last_post_info = ""; 
                            $last_post_threadid = 0; 
                            $last_post_date = 0; 
                            $findLastPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"]) . " ORDER BY p.post_date DESC LIMIT 1"); 
                            if( $findLastPosts ) 
                            { 
                                $last_post_info = serialize(array( "lastpostdate" => $findLastPosts["post_date"], "lastposter" => $findLastPosts["membername"], "lastposterid" => $findLastPosts["memberid"] )); 
                                $last_post_threadid = $findLastPosts["threadid"]; 
                                $last_post_date = $findLastPosts["post_date"]; 
                            } 
 
                            $reply_count = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as replyCount FROM tsue_forums_posts WHERE threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"])); 
                            $reply_count = $reply_count["replyCount"] - 1; 
                            $buildQuery = array( "reply_count" => $reply_count, "last_post_info" => $last_post_info, "last_post_date" => $last_post_date ); 
                            $TSUE["TSUE_Database"]->update("tsue_forums_threads", $buildQuery, "threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"])); 
                        } 
                    } 
 
                    exit( successmessage("(" . number_format($TSUE["TSUE_Database"]->querycount) . ") " . get_phrase("forum_counters_has_been_updated")) ); 
                } 
 
                if( $TSUE["action"] == "about" && IS_AJAX ) 
                { 
                    exit( "
	<hr />
	<b>RevolutioN WorlD " . V . "</b><br />

	Copyright &copy; " . date("Y") . "<hr />" ); 
                } 
 
                if( $TSUE["action"] == "checkUpdates" && IS_AJAX ) 
                { 
                    $URL = "oops"; 
                    $recentVersion = fetchurl($URL); 
                    $currentVersion = V; 
                    if( $recentVersion < $currentVersion ) 
                    { 
                        $Result = "<div class=\"error\">oops</div>"; 
                    } 
                    else 
                    { 
                        if( $currentVersion < $recentVersion ) 
                        { 
                            $Result = "<div class=\"error\">A new version, " . $recentVersion . " is available to download!</div\">"; 
                        } 
                        else 
                        { 
                            $Result = "<div class=\"success\">You are using version " . $currentVersion . "<br />Congratulations, this is the very latest version!</div>"; 
                        } 
 
                    } 
 
                    exit( $Result ); 
                } 
 
                if( $TSUE["action"] == "Dashboard" ) 
                { 
                    addbreadcrumb(array( get_phrase("menu_dashboard") => TSUE_ADMINCP_URL . "?action=Dashboard" )); 
                    if( !$TSUE["do"] ) 
                    { 
                        $outputContent .= optionbox("Options", get_phrase("dashboard_options"), get_phrase("dashboard_options_alt")); 
                        $outputContent .= optionbox("Pages", get_phrase("dashboard_pages"), get_phrase("dashboard_pages_alt")); 
                        $outputContent .= optionbox("Polls", get_phrase("dashboard_polls"), get_phrase("dashboard_polls_alt")); 
                        $outputContent .= optionbox("News", get_phrase("dashboard_news"), get_phrase("dashboard_news_alt")); 
                        $outputContent .= optionbox("FAQ", get_phrase("dashboard_faq"), get_phrase("dashboard_faq_alt")); 
                        $outputContent .= optionbox("Torrent Categories", get_phrase("dashboard_torrent_categories"), get_phrase("dashboard_torrent_categories_alt")); 
                        $outputContent .= optionbox("Market", get_phrase("dashboard_market"), get_phrase("dashboard_market_alt")); 
                        $outputContent .= optionbox("API Manager", get_phrase("dashboard_api_manager"), get_phrase("dashboard_api_manager_alt")); 
                        $outputContent .= optionbox("Cron Entries", get_phrase("dashboard_cron_entries"), get_phrase("dashboard_cron_entries_alt")); 
                        $outputContent .= optionbox("Rebuild Caches", get_phrase("dashboard_cache_rebuild_caches"), get_phrase("dashboard_cache_rebuild_caches_alt")); 
                        $outputContent .= optionbox("Logs", get_phrase("dashboard_logs"), get_phrase("dashboard_logs_alt")); 
                        $outputContent .= optionbox("Server", get_phrase("dashboard_server"), get_phrase("dashboard_server_alt")); 
                        $outputContent .= optionbox("Notes", get_phrase("dashboard_notes"), get_phrase("dashboard_notes_alt")); 
                        $outputContent .= optionbox("Statistics", get_phrase("dashboard_statistics"), get_phrase("dashboard_statistics_alt")); 
                        $outputContent .= optionbox("Read PM", get_phrase("dashboard_readpm"), get_phrase("dashboard_readpm_alt")); 
                        $outputContent .= optionbox("Database", get_phrase("database"), get_phrase("database_alt")); 
                        $outputContent .= optionbox("Announcements", get_phrase("dashboard_announcements"), get_phrase("dashboard_announcements_alt")); 
                        $outputContent .= optionbox("Torrents", get_phrase("navigation_torrents"), get_phrase("dashboard_torrents_alt")); 
                        $outputContent .= optionbox("Add-ons", get_phrase("addons"), get_phrase("addons_alt")); 
                        $outputContent .= optionbox("TSUE Store", get_phrase("tsue_store"), get_phrase("tsue_store_alt")); 
                        $outputContent .= optionbox("Recent Comments", get_phrase("recent_comments"), get_phrase("recent_comments_alt")); 
                        $outputContent .= optionbox("Torrent Genres", get_phrase("torrent_genres"), get_phrase("torrent_genres_alt")); 
                        $outputContent .= optionbox("Advertisements", get_phrase("dashboard_ads"), get_phrase("dashboard_ads_alt")); 
                        $outputContent .= optionbox("Shoutbox Channels", get_phrase("shoutbox_channels"), get_phrase("shoutbox_channels_alt")); 
                    } 
                    else 
                    { 
                        aaaaad($TSUE["do"]); 
                        switch( $TSUE["do"] ) 
                        { 
                            case "Options": 
                                addbreadcrumb(array( get_phrase("dashboard_options") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handleoptions(); 
                                break; 
                            case "Pages": 
                                addbreadcrumb(array( get_phrase("dashboard_pages") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlepages(); 
                                break; 
                            case "Polls": 
                                addbreadcrumb(array( get_phrase("dashboard_polls") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlepolls(); 
                                break; 
                            case "News": 
                                addbreadcrumb(array( get_phrase("dashboard_news") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlenews(); 
                                break; 
                            case "FAQ": 
                                addbreadcrumb(array( get_phrase("dashboard_faq") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlefaq(); 
                                break; 
                            case "Torrent Categories": 
                                addbreadcrumb(array( get_phrase("dashboard_torrent_categories_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handletorrentcategories(); 
                                break; 
                            case "Market": 
                                addbreadcrumb(array( get_phrase("dashboard_market") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlemarket(); 
                                break; 
                            case "API Manager": 
                                addbreadcrumb(array( get_phrase("dashboard_api_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handleapimanager(); 
                                break; 
                            case "Cron Entries": 
                                addbreadcrumb(array( get_phrase("dashboard_cron_entries") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlecronentries(); 
                                break; 
                            case "Rebuild Caches": 
                                addbreadcrumb(array( get_phrase("dashboard_cache_rebuild_caches") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlerebuildcaches(true); 
                                break; 
                            case "Logs": 
                                addbreadcrumb(array( get_phrase("dashboard_logs") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlelogs(); 
                                break; 
                            case "Server": 
                                addbreadcrumb(array( get_phrase("dashboard_server") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handleserver(); 
                                break; 
                            case "Notes": 
                                addbreadcrumb(array( get_phrase("dashboard_notes") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlenotes(); 
                                break; 
                            case "Statistics": 
                                addbreadcrumb(array( get_phrase("dashboard_statistics") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlestatistics(); 
                                break; 
                            case "Read PM": 
                                addbreadcrumb(array( get_phrase("dashboard_readpm_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlereadpm(); 
                                break; 
                            case "Database": 
                                addbreadcrumb(array( get_phrase("database_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handledatabase(); 
                                break; 
                            case "Announcements": 
                                addbreadcrumb(array( get_phrase("dashboard_announcements") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handleannouncements(); 
                                break; 
                            case "Torrents": 
                                addbreadcrumb(array( get_phrase("dashboard_torrents_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handletorrents(); 
                                break; 
                            case "Add-ons": 
                                addbreadcrumb(array( get_phrase("addons") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handleaddons(); 
                                break; 
                            case "TSUE Store": 
                                header("Location: " . TSUE_ADMINCP_URL . "?action=Dashboard&do=Add-ons&TSUEAddonStore=1"); 
                                exit(); 
                            case "Recent Comments": 
                                addbreadcrumb(array( get_phrase("recent_comments") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlerecentcomments(); 
                                break; 
                            case "Torrent Genres": 
                                addbreadcrumb(array( get_phrase("torrent_genres") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handletorrentgenres(); 
                                break; 
                            case "Advertisements": 
                                addbreadcrumb(array( get_phrase("dashboard_ads") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handleadvertisements(); 
                                break; 
                            case "Shoutbox Channels": 
                                addbreadcrumb(array( get_phrase("shoutbox_channels") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handleshoutboxchannels(); 
                        } 
                    } 
 
                } 
 
                if( $TSUE["action"] == "Plugin Manager" ) 
                { 
                    aaaaad($TSUE["action"]); 
                    addbreadcrumb(array( get_phrase("menu_plugin_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] )); 
                    $outputContent .= aaaaah(); 
                } 
 
                if( $TSUE["action"] == "Forum Manager" ) 
                { 
                    aaaaad($TSUE["action"]); 
                    addbreadcrumb(array( get_phrase("menu_forum_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] )); 
                    if( !$TSUE["do"] ) 
                    { 
                        $outputContent .= optionbox("Manage Forums", get_phrase("manage_forums"), get_phrase("manage_forums_alt"), $TSUE["action"]); 
                        $outputContent .= optionbox("Thread Prefixes", get_phrase("thread_prefixes"), get_phrase("thread_prefixes"), $TSUE["action"]); 
                        $outputContent .= optionbox("Quick Forum Permissions", get_phrase("permissions"), get_phrase("quick_forum_permissions"), $TSUE["action"]); 
                        $outputContent .= optionbox("Rebuild Counters", get_phrase("rebuild_counters"), get_phrase("rebuild_counters_alt"), $TSUE["action"]); 
                    } 
                    else 
                    { 
                        switch( $TSUE["do"] ) 
                        { 
                            case "Manage Forums": 
                                addbreadcrumb(array( get_phrase("manage_forums_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handleforums(); 
                                break; 
                            case "Quick Forum Permissions": 
                                addbreadcrumb(array( get_phrase("quick_forum_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= aaaaai(); 
                                break; 
                            case "Thread Prefixes": 
                                addbreadcrumb(array( get_phrase("thread_prefixes") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= threadprefixes(); 
                                break; 
                            case "Rebuild Counters": 
                                addbreadcrumb(array( get_phrase("rebuild_counters") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= rebuildforumcounters(); 
                        } 
                    } 
 
                } 
 
                if( $TSUE["action"] == "Appearance" ) 
                { 
                    aaaaad($TSUE["action"]); 
                    addbreadcrumb(array( get_phrase("dashboard_options_appearance") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] )); 
                    if( !$TSUE["do"] ) 
                    { 
                        $outputContent .= optionbox("Themes", get_phrase("theme_manager_themes"), get_phrase("theme_manager_themes_alt"), $TSUE["action"]); 
                        $outputContent .= optionbox("Languages", get_phrase("theme_manager_languages"), get_phrase("theme_manager_languages_alt"), $TSUE["action"]); 
                        $outputContent .= optionbox("Upload Torrent", get_phrase("navigation_upload_torrent"), get_phrase("add_extra_fields"), $TSUE["action"]); 
                        $outputContent .= optionbox("Auto Description", get_phrase("auto_description"), get_phrase("auto_description_alt"), $TSUE["action"]); 
                    } 
                    else 
                    { 
                        switch( $TSUE["do"] ) 
                        { 
                            case "Themes": 
                                addbreadcrumb(array( get_phrase("theme_manager_themes") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlethemes(); 
                                break; 
                            case "Languages": 
                                addbreadcrumb(array( get_phrase("theme_manager_languages") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlelanguages(); 
                                break; 
                            case "Upload Torrent": 
                                addbreadcrumb(array( get_phrase("navigation_upload_torrent") . " | " . get_phrase("add_extra_fields") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handleuploadtorrent(); 
                                break; 
                            case "Auto Description": 
                                addbreadcrumb(array( get_phrase("auto_description") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handleautodescription(); 
                        } 
                    } 
 
                } 
 
                if( $TSUE["action"] == "Member Manager" ) 
                { 
                    addbreadcrumb(array( get_phrase("menu_member_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] )); 
                    if( !$TSUE["do"] ) 
                    { 
                        $outputContent .= optionbox("All Members", get_phrase("member_manager_list_all_members"), get_phrase("member_manager_list_all_members_alt")); 
                        $outputContent .= optionbox("Awaiting Approval", get_phrase("member_manager_awaiting_approval"), get_phrase("member_manager_awaiting_approval_alt")); 
                        $outputContent .= optionbox("Banned Members", get_phrase("member_manager_banned_members"), get_phrase("member_manager_banned_members_alt")); 
                        $outputContent .= optionbox("Warned Members", get_phrase("member_manager_warned_members"), get_phrase("member_manager_warned_members_alt")); 
                        $outputContent .= optionbox("Membergroups", get_phrase("member_manager_membergroups"), get_phrase("member_manager_membergroups_alt")); 
                        $outputContent .= optionbox("Email Members", get_phrase("member_manager_email_members"), get_phrase("member_manager_email_members_alt")); 
                        $outputContent .= optionbox("Search Members", get_phrase("member_manager_search_members"), get_phrase("member_manager_search_members_alt")); 
                        $outputContent .= optionbox("Peers", get_phrase("member_manager_peers"), get_phrase("member_manager_peers_alt")); 
                        $outputContent .= optionbox("Account Upgrades", get_phrase("upgrade_account_upgrades"), get_phrase("upgrade_account_upgrades_alt")); 
                        $outputContent .= optionbox("Muted Members", get_phrase("member_manager_muted_members"), get_phrase("member_manager_muted_members_alt")); 
                        $outputContent .= optionbox("PM Members", get_phrase("member_manager_pm_members"), get_phrase("member_manager_pm_members_alt")); 
                        $outputContent .= optionbox("Promotions", get_phrase("promotions"), get_phrase("promotions_alt")); 
                        $outputContent .= optionbox("Duplicate Ips", get_phrase("duplicate_ips"), get_phrase("duplicate_ips_alt")); 
                        $outputContent .= optionbox("Hit and Runners", get_phrase("hit_and_runners"), get_phrase("stats_hitrun_warns")); 
                        $outputContent .= optionbox("Test Permissions", get_phrase("test_permissions"), get_phrase("test_permissions_alt")); 
                        $outputContent .= optionbox("Administrators", get_phrase("administrators"), get_phrase("administrators_alt")); 
                        $outputContent .= optionbox("Gift", get_phrase("gift"), get_phrase("gift_alt")); 
                        $outputContent .= optionbox("Mass Invite", get_phrase("mass_invite"), get_phrase("mass_invite_alt")); 
                        $outputContent .= optionbox("Awards", get_phrase("awards"), get_phrase("awards_alt")); 
                        $outputContent .= optionbox("Auto Warned Members", get_phrase("member_manager_auto_warned_members"), get_phrase("member_manager_auto_warned_members_alt")); 
                        $outputContent .= optionbox("Uploader Activity", get_phrase("uploader_activity"), get_phrase("uploader_activity_alt")); 
                        $outputContent .= optionbox("First Line Support", get_phrase("first_line_support"), get_phrase("first_line_support_alt")); 
                        $outputContent .= optionbox("Spam Cleaner", get_phrase("spam_cleaner"), get_phrase("spam_cleaner_alt")); 
                    } 
                    else 
                    { 
                        aaaaad($TSUE["do"]); 
                        switch( $TSUE["do"] ) 
                        { 
                            case "All Members": 
                                addbreadcrumb(array( get_phrase("member_manager_list_all_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= aaaaaj(); 
                                break; 
                            case "Awaiting Approval": 
                                addbreadcrumb(array( get_phrase("member_manager_awaiting_approval") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= manageawaitingapproval(); 
                                break; 
                            case "Banned Members": 
                                addbreadcrumb(array( get_phrase("member_manager_banned_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= managebannedmembers(); 
                                break; 
                            case "Warned Members": 
                                addbreadcrumb(array( get_phrase("member_manager_warned_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= managewarnedmembers(); 
                                break; 
                            case "Membergroups": 
                                addbreadcrumb(array( get_phrase("member_manager_membergroups") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= managemembergroups(); 
                                break; 
                            case "Email Members": 
                                addbreadcrumb(array( get_phrase("member_manager_email_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= manageemailmembers(); 
                                break; 
                            case "Search Members": 
                                addbreadcrumb(array( get_phrase("member_manager_search_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= managesearchmembers(); 
                                break; 
                            case "Peers": 
                                addbreadcrumb(array( get_phrase("member_manager_peers") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= managepeers(); 
                                break; 
                            case "Account Upgrades": 
                                addbreadcrumb(array( get_phrase("upgrade_account_upgrades_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= manageaccountupgrades(); 
                                break; 
                            case "Muted Members": 
                                addbreadcrumb(array( get_phrase("member_manager_muted_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= managemutedmembers(); 
                                break; 
                            case "PM Members": 
                                addbreadcrumb(array( get_phrase("member_manager_pm_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= managepmmembers(); 
                                break; 
                            case "Promotions": 
                                addbreadcrumb(array( get_phrase("promotions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= managepromotions(); 
                                break; 
                            case "Duplicate Ips": 
                                addbreadcrumb(array( get_phrase("duplicate_ips") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= manageduplicateips(); 
                                break; 
                            case "Hit and Runners": 
                                addbreadcrumb(array( get_phrase("hit_and_runners") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= aaaaak(); 
                                break; 
                            case "Test Permissions": 
                                addbreadcrumb(array( get_phrase("test_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= managetestpermissions(); 
                                break; 
                            case "Administrators": 
                                addbreadcrumb(array( get_phrase("administrators_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= manageadministrators(); 
                                break; 
                            case "Gift": 
                                addbreadcrumb(array( get_phrase("gift") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= managegift(); 
                                break; 
                            case "Mass Invite": 
                                addbreadcrumb(array( get_phrase("mass_invite") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= managemassinvite(); 
                                break; 
                            case "Awards": 
                                addbreadcrumb(array( get_phrase("awards") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= manageawards(); 
                                break; 
                            case "Auto Warned Members": 
                                addbreadcrumb(array( get_phrase("member_manager_auto_warned_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= manageautowarnedmembers(); 
                                break; 
                            case "Uploader Activity": 
                                addbreadcrumb(array( get_phrase("uploader_activity") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= manageuploaderactivity(); 
                                break; 
                            case "First Line Support": 
                                addbreadcrumb(array( get_phrase("first_line_support") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= managefirstlinesupport(); 
                                break; 
                            case "Spam Cleaner": 
                                addbreadcrumb(array( get_phrase("spam_cleaner") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= managespamcleaner(); 
                        } 
                    } 
 
                } 
 
                if( $TSUE["action"] == "File Manager" ) 
                { 
                    addbreadcrumb(array( get_phrase("menu_file_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] )); 
                    if( !$TSUE["do"] ) 
                    { 
                        $outputContent .= optionbox("Prune", get_phrase("file_manager_prune_cache"), get_phrase("file_manager_prune_cache_alt")); 
                        $outputContent .= optionbox("Smilies", get_phrase("file_manager_smilies"), get_phrase("file_manager_smilies_alt")); 
                        $outputContent .= optionbox("Country Flags", get_phrase("file_manager_country_flags"), get_phrase("file_manager_country_flags_alt")); 
                        $outputContent .= optionbox("Attachment Browser", get_phrase("attachments"), get_phrase("attachment_browser")); 
                        $outputContent .= optionbox("Downloads", get_phrase("dm_title"), get_phrase("dm_title_alt")); 
                        $outputContent .= optionbox("Permissions", get_phrase("permissions"), get_phrase("permissions_alt")); 
                        $outputContent .= optionbox("Cleanup", get_phrase("cleanup"), get_phrase("cleanup_alt")); 
                    } 
                    else 
                    { 
                        aaaaad($TSUE["do"]); 
                        switch( $TSUE["do"] ) 
                        { 
                            case "Prune": 
                                addbreadcrumb(array( get_phrase("file_manager_prune_cache") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handleprune(); 
                                break; 
                            case "Smilies": 
                                addbreadcrumb(array( get_phrase("file_manager_smilies") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlesmilies(); 
                                break; 
                            case "Country Flags": 
                                addbreadcrumb(array( get_phrase("file_manager_country_flags") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlecountryflags(); 
                                break; 
                            case "Attachment Browser": 
                                addbreadcrumb(array( get_phrase("attachment_browser") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handleattachments(); 
                                break; 
                            case "Downloads": 
                                addbreadcrumb(array( get_phrase("dm_title") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handledownloads(); 
                                break; 
                            case "Permissions": 
                                addbreadcrumb(array( get_phrase("permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlepermissions(); 
                                break; 
                            case "Cleanup": 
                                addbreadcrumb(array( get_phrase("cleanup") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] )); 
                                $outputContent .= handlecleanup(); 
                        } 
                    } 
 
                } 
 
                printoutput($outputContent); 
            } 
 
        } 
 
    } 
 
} 
 
 
class TSUE_Settings 
{ 
    public $settings = array(  ); 
 
    public function TSUE_Settings() 
    { 
        global $TSUE; 
        $fetchSettings = $TSUE["TSUE_Database"]->query("SELECT settingname, settingvalues FROM tsue_settings ORDER BY settingname"); 
        if( $TSUE["TSUE_Database"]->num_rows($fetchSettings) ) 
        { 
            while( $Setting = $TSUE["TSUE_Database"]->fetch_assoc($fetchSettings) ) 
            { 
                $this->settings[$Setting["settingname"]] = unserialize($Setting["settingvalues"]); 
            } 
        } 
 
    } 
 
} 
 
 
class TSUE_Database 
{ 
    public $querycount = 0; 
    public $query = NULL; 
    public $query_cache = array(  ); 
    public $shutdown_queries = array(  ); 
    public $error = NULL; 
    public $connection = NULL; 
    public $locked = false; 
 
    public function TSUE_Database() 
    { 
        if( !is_file(LIBRARYPATH . "config/database_config.php") ) 
        { 
            exit( "<h1>Fatal Error: The database configuration file does not exists.</h1>" ); 
        } 
 
        require(LIBRARYPATH . "config/database_config.php"); 
        if( !($this->connection = mysqli_init()) ) 
        { 
            $this->error = "mysqli_init failed!"; 
            $this->halt(); 
        } 
 
        if( !defined("MYSQL_HOST") || !defined("MYSQL_USER") || !defined("MYSQL_PASS") || !defined("MYSQL_DB") || !defined("MYSQL_PORT") || !defined("MYSQL_SOCKET") ) 
        { 
            exit( "<h1>Fatal Error: Invalid variables in the database configuration file.</h1>" ); 
        } 
 
        if( !mysqli_real_connect($this->connection, MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DB, MYSQL_PORT, MYSQL_SOCKET) ) 
        { 
            $this->error = "MySQLi connection error!"; 
            $this->halt(); 
        } 
 
        if( MYSQL_CHARSET != "" ) 
        { 
            if( function_exists("mysqli_set_charset") ) 
            { 
                mysqli_set_charset($this->connection, MYSQL_CHARSET); 
                return NULL; 
            } 
 
            $this->execute_query("SET NAMES " . MYSQL_CHARSET); 
        } 
 
    } 
 
    public function execute_query($query, $buffered = true) 
    { 
        $this->querycount++; 
        $this->query = $query; 
        $this->query_cache[] = $query; 
        if( $queryresult = mysqli_query($this->connection, $this->query, ($buffered ? MYSQLI_STORE_RESULT : MYSQLI_USE_RESULT)) ) 
        { 
            return $queryresult; 
        } 
 
        $this->error = mysqli_error($this->connection); 
        $this->halt(); 
    } 
 
    public function query($query, $buffered = true) 
    { 
        return $this->execute_query($query, $buffered); 
    } 
 
    public function replace($table, $buildQuery, $isShutDownQuery = false) 
    { 
        checkdemomode(); 
        $Query = array(  ); 
        foreach( $buildQuery as $field => $value ) 
        { 
            $Query[] = "`" . $field . "` = " . $this->escape($value); 
        } 
        $SET = implode(",", $Query); 
        if( $isShutDownQuery ) 
        { 
            return $this->shutdown_query("REPLACE INTO `" . $table . "` SET " . $SET); 
        } 
 
        return $this->query("REPLACE INTO `" . $table . "` SET " . $SET); 
    } 
 
    public function insert($table, $buildQuery, $isShutDownQuery = false, $EXTRA = "", $IGNORE = "") 
    { 
        checkdemomode(); 
        $Query = array(  ); 
        foreach( $buildQuery as $field => $value ) 
        { 
            $Query[] = "`" . $field . "` = " . $this->escape($value); 
        } 
        $SET = implode(",", $Query); 
        if( $isShutDownQuery ) 
        { 
            return $this->shutdown_query("INSERT" . (($IGNORE ? " IGNORE" : "")) . " INTO `" . $table . "` SET " . $SET . $EXTRA); 
        } 
 
        return $this->query("INSERT" . (($IGNORE ? " IGNORE" : "")) . " INTO `" . $table . "` SET " . $SET . $EXTRA); 
    } 
 
    public function update($table, $buildQuery, $where = "", $isShutDownQuery = false) 
    { 
        checkdemomode(); 
        $Query = array(  ); 
        foreach( $buildQuery as $field => $value ) 
        { 
            if( is_array($value) ) 
            { 
                if( $value["escape"] == 0 ) 
                { 
                    $Query[] = "`" . $field . "` = " . $value["value"]; 
                } 
                else 
                { 
                    $Query[] = "`" . $field . "` = " . $this->escape($value["value"]); 
                } 
 
            } 
            else 
            { 
                $Query[] = "`" . $field . "` = " . $this->escape($value); 
            } 
 
        } 
        $SET = implode(",", $Query); 
        if( $isShutDownQuery ) 
        { 
            return $this->shutdown_query("UPDATE `" . $table . "` SET " . $SET . (($where ? " WHERE " . $where : ""))); 
        } 
 
        return $this->query("UPDATE `" . $table . "` SET " . $SET . (($where ? " WHERE " . $where : ""))); 
    } 
 
    public function delete($table, $WHERE = "") 
    { 
        checkdemomode(); 
        $this->execute_query("DELETE FROM " . $table . (($WHERE ? " WHERE " . $WHERE : ""))); 
        return $this->affected_rows(); 
    } 
 
    public function truncate($table) 
    { 
        checkdemomode(); 
        return $this->execute_query("TRUNCATE TABLE `" . $table . "`"); 
    } 
 
    public function query_result($query, $buffered = true) 
    { 
        $returnarray = false; 
        $queryresult = $this->execute_query($query, $buffered); 
        if( $this->num_rows($queryresult) ) 
        { 
            $returnarray = $this->fetch_assoc($queryresult); 
            $this->free($queryresult); 
        } 
 
        return $returnarray; 
    } 
 
    public function row_count($query, $buffered = true) 
    { 
        return $this->num_rows($this->execute_query($query, $buffered)); 
    } 
 
    public function exec_shutdown_queries() 
    { 
        if( $this->shutdown_queries && count($this->shutdown_queries) ) 
        { 
            foreach( $this->shutdown_queries as $query ) 
            { 
                $this->execute_query($query); 
            } 
        } 
 
    } 
 
    public function shutdown_query($query) 
    { 
        $this->shutdown_queries[] = $query; 
    } 
 
    public function lock_tables($tablelist = "") 
    { 
        if( !empty($tablelist) && is_array($tablelist) ) 
        { 
            $sql = ""; 
            foreach( $tablelist as $name => $type ) 
            { 
                $sql .= ((!empty($sql) ? ", " : "")) . $name . " " . $type; 
            } 
            $this->query("LOCK TABLES " . $sql); 
            $this->locked = true; 
        } 
 
    } 
 
    public function unlock_tables() 
    { 
        if( $this->locked ) 
        { 
            $this->query("UNLOCK TABLES"); 
            $this->locked = false; 
        } 
 
    } 
 
    public function affected_rows() 
    { 
        return mysqli_affected_rows($this->connection); 
    } 
 
    public function insert_id() 
    { 
        return mysqli_insert_id($this->connection); 
    } 
 
    public function fetch_assoc($query) 
    { 
        return mysqli_fetch_array($query, MYSQLI_ASSOC); 
    } 
 
    public function fetch_row($query) 
    { 
        return mysqli_fetch_row($query); 
    } 
 
    public function fetch_fields($query) 
    { 
        return mysqli_fetch_fields($query); 
    } 
 
    public function num_rows($query) 
    { 
        return mysqli_num_rows($query); 
    } 
 
    public function free($query) 
    { 
        mysqli_free_result($query); 
    } 
 
    public function escape($string) 
    { 
        return "'" . mysqli_real_escape_string($this->connection, $string) . "'"; 
    } 
 
    public function escape_no_quotes($string) 
    { 
        return mysqli_real_escape_string($this->connection, $string); 
    } 
 
    public function field_exists($table, $column) 
    { 
        return $this->row_count("SHOW columns FROM  `" . $table . "` WHERE Field = " . $this->escape($column)); 
    } 
 
    public function halt() 
    { 
        _sendheaders("<h1>Database Error!</h1> Please try again later or contact an <b>Administrator</b>.<br />(<b>" . mysqli_errno($this->connection) . "</b>)" . $this->error . "<hr>" . $this->query); 
    } 
 
    public function close() 
    { 
        mysqli_close($this->connection); 
    } 
 
} 
 
 
class TSUESMTP 
{ 
    public $smtpSocket = NULL; 
    public $smtpReturn = 0; 
    public $secure = ""; 
    public $toemail = ""; 
    public $toname = ""; 
    public $subject = ""; 
    public $message = ""; 
    public $headers = ""; 
    public $fromemail = ""; 
    public $delimiter = "
"; 
    public $Settings = array(  ); 
 
    public function TSUESMTP() 
    { 
        global $TSUE; 
        $this->secure = ($TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_secure"] == 1 ? "tls" : "none"); 
    } 
 
    public function start($toemail, $toname = "", $subject, $message, $from, $fromname) 
    { 
        global $TSUE; 
        $toemail = $this->fetch_first_line($toemail); 
        if( empty($toemail) ) 
        { 
            return false; 
        } 
 
        $delimiter =& $this->delimiter; 
        $toemail = $this->dounhtmlspecialchars($toemail); 
        $subject = $this->fetch_first_line($subject); 
        $message = preg_replace("#(
|
|
)#s", $delimiter, trim($message)); 
        if( (strtolower($TSUE["TSUE_Language"]["charset"]) == "iso-8859-1" || $TSUE["TSUE_Language"]["charset"] == "") && preg_match("/&[a-z0-9#]+;/i", $message) ) 
        { 
            $message = utf8_encode($message); 
            $subject = utf8_encode($subject); 
            $encoding = "UTF-8"; 
            $unicode_decode = true; 
        } 
        else 
        { 
            $encoding = $TSUE["TSUE_Language"]["charset"]; 
            $unicode_decode = false; 
        } 
 
        $message = $this->dounhtmlspecialchars($message, $unicode_decode); 
        $subject = $this->encode_email_header($this->dounhtmlspecialchars($subject, $unicode_decode), $encoding, false, false); 
        $from = $this->fetch_first_line($from); 
        $mailfromname = ($fromname ? $this->fetch_first_line($fromname) : $from); 
        if( $unicode_decode == true ) 
        { 
            $mailfromname = utf8_encode($mailfromname); 
        } 
 
        $mailfromname = $this->encode_email_header($this->dounhtmlspecialchars($mailfromname, $unicode_decode), $encoding); 
        if( !isset($headers) ) 
        { 
            $headers = ""; 
        } 
 
        $headers .= "From: " . $mailfromname . " <" . $from . ">" . $delimiter; 
        $headers .= "Return-Path: " . $from . $delimiter; 
        $headers .= "Message-ID: <" . gmdate("YmdHis") . "." . substr(md5($message . microtime()), 0, 12) . "@" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . ">" . $delimiter; 
        $headers .= "MIME-Version: 1.0" . $delimiter; 
        $headers .= "Content-Type: text/html" . (($encoding ? "; charset=\"" . $encoding . "\"" : "")) . $delimiter; 
        $headers .= "Content-Transfer-Encoding: 8bit" . $delimiter; 
        $headers .= "X-Priority: 3" . $delimiter; 
        $headers .= "X-Mailer: TSUE Mail via PHP" . $delimiter; 
        $headers .= "X-Sender: TSUE PHP-Mailer" . $delimiter; 
        $headers .= "Date: " . date("r") . $delimiter; 
        $this->toemail = $toemail; 
        $this->toname = $toname; 
        $this->subject = $subject; 
        $this->message = $message; 
        $this->headers = $headers; 
        $this->fromemail = $from; 
    } 
 
    public function sendMessage($msg, $expectedResult = false) 
    { 
        if( $msg !== false && !empty($msg) ) 
        { 
            fputs($this->smtpSocket, $msg . "
"); 
        } 
 
        if( $expectedResult !== false ) 
        { 
            $result = ""; 
            while( $line = @fgets($this->smtpSocket, 1024) ) 
            { 
                $result .= $line; 
                if( preg_match("#^(\d{3}) #", $line, $matches) ) 
                { 
                    break; 
                } 
 
            } 
            $this->smtpReturn = intval((isset($matches["1"]) ? $matches["1"] : 0)); 
            return $this->smtpReturn == $expectedResult; 
        } 
 
        return true; 
    } 
 
    public function errorMessage($msg) 
    { 
        global $TSUE; 
        if( $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_debug"] == "1" ) 
        { 
            logadminaction($msg); 
        } 
 
        return false; 
    } 
 
    public function sendHello() 
    { 
        global $TSUE; 
        if( !$this->smtpSocket ) 
        { 
            return false; 
        } 
 
        if( !$this->sendMessage("EHLO " . $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"], 250) && !$this->sendMessage("HELO " . $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"], 250) ) 
        { 
            return false; 
        } 
 
        return true; 
    } 
 
    public function send() 
    { 
        global $TSUE; 
        if( !$this->toemail ) 
        { 
            return false; 
        } 
 
        $this->smtpSocket = fsockopen((($this->secure == "ssl" ? "ssl://" : "tcp://")) . $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"], $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_port"], $errno, $errstr, 30); 
        if( $this->smtpSocket ) 
        { 
            if( !$this->sendMessage(false, 220) ) 
            { 
                return $this->errorMessage($this->smtpReturn . " Unexpected response when connecting to SMTP server"); 
            } 
 
            if( !$this->sendHello() ) 
            { 
                return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during handshake"); 
            } 
 
            if( $this->secure == "tls" && function_exists("stream_socket_enable_crypto") ) 
            { 
                if( $this->sendMessage("STARTTLS", 220) && !stream_socket_enable_crypto($this->smtpSocket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT) ) 
                { 
                    return $this->errorMessage("Unable to negotitate TLS handshake."); 
                } 
 
                $this->sendHello(); 
            } 
 
            if( $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_user"] && $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_pass"] && $this->sendMessage("AUTH LOGIN", 334) && (!$this->sendMessage(base64_encode($TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_user"]), 334) || !$this->sendMessage(base64_encode($TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_pass"]), 235)) ) 
            { 
                return $this->errorMessage($this->smtpReturn . " Authorization to the SMTP server failed"); 
            } 
 
            if( !$this->sendMessage("MAIL FROM:<" . $this->fromemail . ">", 250) ) 
            { 
                return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during FROM address transmission"); 
            } 
 
            $addresses = tsue_explode(",", $this->toemail); 
            foreach( $addresses as $address ) 
            { 
                if( !$this->sendMessage("RCPT TO:<" . trim($address) . ">", 250) ) 
                { 
                    return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during TO address transmission"); 
                } 
 
            } 
            if( $this->sendMessage("DATA", 354) ) 
            { 
                $this->sendMessage("Date: " . gmdate("r"), false); 
                $this->sendMessage("To: " . $this->toemail, false); 
                $this->sendMessage(trim($this->headers), false); 
                $this->sendMessage("Subject: " . $this->subject, false); 
                $this->sendMessage("
", false); 
                $this->message = preg_replace("#^\." . $this->delimiter . "#m", ".." . $this->delimiter, $this->message); 
                $this->sendMessage($this->message, false); 
                if( !$this->sendMessage(".", 250) ) 
                { 
                    return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server when ending transmission"); 
                } 
 
                $this->sendMessage("QUIT", 221); 
                fclose($this->smtpSocket); 
                return true; 
            } 
 
            return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during data transmission"); 
        } 
        else 
        { 
            return $this->errorMessage("Unable to connect to SMTP server"); 
        } 
 
    } 
 
    public function fetch_first_line($text) 
    { 
        $text = preg_replace("/(
|
|
)/s", "
", trim($text)); 
        $pos = strpos($text, "
"); 
        if( $pos !== false ) 
        { 
            return substr($text, 0, $pos); 
        } 
 
        return $text; 
    } 
 
    public function dounhtmlspecialchars($text, $doUniCode = false) 
    { 
        if( $doUniCode ) 
        { 
            $text = preg_replace("/&#([0-9]+);/esiU", "convert_int_to_utf8('\1')", $text); 
        } 
 
        return str_replace(array( "&lt;", "&gt;", "&quot;", "&amp;" ), array( "<", ">", "\"", "&" ), $text); 
    } 
 
    public function encode_email_header($text, $charset = "utf-8", $force_encode = false, $quoted_string = true) 
    { 
        $text = trim($text); 
        if( !$charset ) 
        { 
            return $text; 
        } 
 
        if( $force_encode == true ) 
        { 
            $qp_encode = true; 
        } 
        else 
        { 
            $qp_encode = false; 
            for( $i = 0; $i < strlen($text); $i++ ) 
            { 
                if( 127 < ord($text[$i]) ) 
                { 
                    $qp_encode = true; 
                    break; 
                } 
 
            } 
        } 
 
        if( $qp_encode == true ) 
        { 
            $outtext = preg_replace("#([^a-zA-Z0-9!*+\-/ ])#e", "'=' . strtoupper(dechex(ord(str_replace('\\"', '\"', '\1'))))", $text); 
            $outtext = str_replace(" ", "_", $outtext); 
            $outtext = "=?" . $charset . "?q?" . $outtext . "?="; 
            return $outtext; 
        } 
 
        if( $quoted_string ) 
        { 
            $text = str_replace(array( "\"", "(", ")" ), array( "\\"", "\(", "\)" ), $text); 
            return "\"" . $text . "\""; 
        } 
 
        return preg_replace("#(\r\n|\n|\r)+#", " ", $text); 
    } 
 
} 
 
 
class TSUE_Parser 
{ 
    public $valid_elements = "<p><span><img><a><strong><b><em><ul><li><ol><br>"; 
    private $buildCensorArray = NULL; 
 
    public function TSUE_Parser() 
    { 
    } 
 
    public function removeP($text = "") 
    { 
        if( substr($text, 0, 13) == "<p>&nbsp;</p>" ) 
        { 
            $text = substr_replace($text, "", 0, 13); 
        } 
 
        if( substr($text, 0, 7) == "<p></p>" ) 
        { 
            $text = substr_replace($text, "", 0, 7); 
        } 
 
        if( substr($text, 0, 8) == "<p> </p>" ) 
        { 
            $text = substr_replace($text, "", 0, 8); 
        } 
 
        return $text; 
    } 
 
    public function clearTinymceP($text = "") 
    { 
        $text = $this->removeP($text); 
        if( substr($text, 0, 3) == "<p>" && substr($text, -4) == "</p>" ) 
        { 
            $text = substr_replace($text, "", 0, 3); 
            $text = substr_replace($text, "", -4); 
        } 
 
        return $text; 
    } 
 
    public function parse($text = "") 
    { 
        global $TSUE; 
        $text = trim($text); 
        $text = $this->clearTinymceP($text); 
        $text = $this->censorString($text); 
        if( strlen($text) <= 2 ) 
        { 
            return $text; 
        } 
 
        preg_match_all("#\[(code|php)\](.*?)\[/\1\](
?|
?)#si", $text, $code_matches, PREG_SET_ORDER); 
        $text = preg_replace("#\[(code|php)\](.*?)\[/\1\](
?|
?)#si", "~~~TSUE_CODE~~~", $text); 
        $text = strip_tags($text, $this->valid_elements); 
        $text = $TSUE["TSUE_Security"]->xss_clean($text); 
        $pattern = array( "#\[quote=(.*?)\](.*?)\[\/quote\]#esi", "#\[quote\](.*?)\[\/quote\]#esi", "#\[youtube\](.*?)\[\/youtube\]#esi", "#\[nfo\](.*?)\[\/nfo\]#esi", "#\[spoiler\](.*?)\[\/spoiler\]#esi" ); 
        $replace = array( "\$this->parseQuotesWithName('\$1','\$2')", "\$this->parseQuotes('\$1')", "\$this->parseYoutube('\$1')", "\$this->parseNFO('\$1')", "\$this->parseSpoiler('\$1')" ); 
        while( preg_match($pattern[0], $text) || preg_match($pattern[1], $text) || preg_match($pattern[2], $text) || preg_match($pattern[3], $text) || preg_match($pattern[4], $text) ) 
        { 
            $text = preg_replace($pattern, $replace, $text); 
        } 
        if( $code_matches && count($code_matches) ) 
        { 
            foreach( $code_matches as $match ) 
            { 
                $match["2"] = trim(strip_tags($match["2"])); 
                switch( strtolower($match["1"]) ) 
                { 
                    case "php": 
                        $CodeTitle = get_phrase("tinymce_php_code"); 
                        $match["2"] = html_declean($match["2"]); 
                        $CodeContent = $this->PHPCode($match["2"]); 
                        $CodeMD5 = md5($CodeTitle . $CodeContent); 
                        break; 
                    default: 
                        $CodeTitle = get_phrase("tinymce_code"); 
                        $CodeContent = html_clean($match["2"]); 
                        $CodeMD5 = md5($CodeTitle . $CodeContent); 
                        break; 
                } 
                $codeOutput = "
				<div class=\"CodeBlock\" id=\"" . $CodeMD5 . "\">
					<div class=\"title\">
						<span id=\"expand_button\" class=\"clickable\" md5=\"" . $CodeMD5 . "\">" . get_phrase("button_expand") . "</span>
						" . $CodeTitle . ":
					</div>
					<pre><code>" . $CodeContent . "</code></pre>
				</div>"; 
                $codeOutput = str_replace(array( "<code><code>", "</code></code>" ), array( "<code>", "</code>" ), $codeOutput); 
                $text = preg_replace("#~~~TSUE_CODE~~~?#", $codeOutput, $text, 1); 
            } 
        } 
 
        return trim($text); 
    } 
 
    public function parseQuotesWithName($QuoteDetails = "", $CodeQuoteContent = "") 
    { 
        global $TSUE; 
        if( !$CodeQuoteContent ) 
        { 
            return NULL; 
        } 
 
        $explode = @tsue_explode("|", @trim($QuoteDetails)); 
        $MemberName = $PostID = ""; 
        if( isset($explode["0"]) ) 
        { 
            $MemberName = trim(str_replace("\\"", "\"", $explode["0"])); 
        } 
 
        if( isset($explode["1"]) ) 
        { 
            $PostID = intval($explode["1"]); 
        } 
 
        $CodeQuoteContent = trim(str_replace("\\"", "\"", $CodeQuoteContent)); 
        $MemberName = get_phrase("member_x_said", ucfirst($MemberName)); 
        $quoteOutput = "
		<div class=\"CodeBlockQuote\">
			<div class=\"title\">
				" . $MemberName . " <a href=\"#\" rel=\"autoScroller\" name=\"" . $PostID . "\">&#8593;</a>
			</div>
			<div class=\"quotecontent\">" . $CodeQuoteContent . "</div>
		</div>"; 
        return $quoteOutput; 
    } 
 
    public function parseQuotes($CodeQuoteContent = "") 
    { 
        global $TSUE; 
        if( !$CodeQuoteContent ) 
        { 
            return NULL; 
        } 
 
        $CodeQuoteContent = trim(str_replace("\\"", "\"", $CodeQuoteContent)); 
        return "
		<div class=\"CodeBlockQuote\">
			<div class=\"quotecontent\">" . $CodeQuoteContent . "</div>
		</div>"; 
    } 
 
    public function parseYoutube($videoTag = "") 
    { 
        global $TSUE; 
        $youtube = ""; 
        if( $videoTag ) 
        { 
            $youtube = "<object width=\"500\" height=\"314\"><param name=\"movie\" value=\"http://www.youtube.com/v/" . $videoTag . "?version=3&amp;hd=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/" . $videoTag . "?version=3&amp;hd=1\" type=\"application/x-shockwave-flash\" width=\"500\" height=\"314\" allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed></object>"; 
        } 
 
        return $youtube; 
    } 
 
    public function parseNFO($nfoTag = "") 
    { 
        global $TSUE; 
        $nfo = ""; 
        if( $nfoTag ) 
        { 
            $nfo = "<pre class=\"nfo\">" . $nfoTag . "</pre>"; 
        } 
 
        return $nfo; 
    } 
 
    public function parseSpoiler($spoilerTag = "") 
    { 
        global $TSUE; 
        $spoiler = ""; 
        if( $spoilerTag ) 
        { 
            $spoiler = "
			<div id=\"spoiler\">
				<div class=\"spoiler_tag\">" . $spoilerTag . "</div>
			</div>"; 
        } 
 
        return $spoiler; 
    } 
 
    public function PHPCode($content = "") 
    { 
        if( strpos($content, "<?") == false ) 
        { 
            $tagAdded = true; 
            $content = "<?php
" . $content; 
        } 
        else 
        { 
            $tagAdded = false; 
        } 
 
        $content = highlight_string($content, true); 
        if( $tagAdded ) 
        { 
            $content = preg_replace("#&lt;\?php<br\s*/?>#", "", $content, 1); 
        } 
 
        return trim($content); 
    } 
 
    public function censorString($string) 
    { 
        global $TSUE; 
        if( !isset($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]) ) 
        { 
            return $string; 
        } 
 
        if( !isset($TSUE["TSUE_Settings"]->settings["censor_cache"]["censoring_censor_character"]) ) 
        { 
            $TSUE["TSUE_Settings"]->settings["censor_cache"]["censoring_censor_character"] = ""; 
        } 
 
        if( !$this->buildCensorArray ) 
        { 
            $this->buildCensorArray = $this->buildCensorArray($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"], $TSUE["TSUE_Settings"]->settings["censor_cache"]["censoring_censor_character"]); 
        } 
 
        if( !empty($this->buildCensorArray["exact"]) ) 
        { 
            $string = preg_replace(array_keys($this->buildCensorArray["exact"]), $this->buildCensorArray["exact"], $string); 
        } 
 
        if( !empty($this->buildCensorArray["any"]) ) 
        { 
            $string = str_ireplace(array_keys($this->buildCensorArray["any"]), $this->buildCensorArray["any"], $string); 
        } 
 
        return $string; 
    } 
 
    public function buildCensorArray(array $words, $censorString) 
    { 
        $censorCache = array(  ); 
        if( !empty($words["exact"]) ) 
        { 
            $exact = array(  ); 
            foreach( $words["exact"] as $word => $replace ) 
            { 
                $search = "#(?<=\W|^)(" . preg_quote($word, "#") . ")(?=\W|\$)#i"; 
                if( is_int($replace) ) 
                { 
                    $exact[$search] = str_repeat($censorString, $replace); 
                } 
                else 
                { 
                    $exact[$search] = $replace; 
                } 
 
            } 
            $censorCache["exact"] = $exact; 
        } 
 
        if( !empty($words["any"]) ) 
        { 
            $any = array(  ); 
            foreach( $words["any"] as $word => $replace ) 
            { 
                if( is_int($replace) ) 
                { 
                    $any[$word] = str_repeat($censorString, $replace); 
                } 
                else 
                { 
                    $any[$word] = $replace; 
                } 
 
            } 
            $censorCache["any"] = $any; 
        } 
 
        return $censorCache; 
    } 
 
} 
 
 
class TSUE_Security 
{ 
    protected $_xss_hash = ""; 
    protected $charset = "UTF-8"; 
    protected $_never_allowed_str = array( "document.cookie" => "[removed]", "document.write" => "[removed]", ".parentNode" => "[removed]", ".innerHTML" => "[removed]", "window.location" => "[removed]", "-moz-binding" => "[removed]", "<!--" => "&lt;!--", "-->" => "--&gt;", "<![CDATA[" => "&lt;![CDATA[" ); 
    protected $_never_allowed_regex = array( "javascript\s*:" => "[removed]", "expression\s*(\(|&\#40;)" => "[removed]", "vbscript\s*:" => "[removed]", "Redirect\s+302" => "[removed]" ); 
 
    public function xss_clean($str, $is_image = false) 
    { 
        if( is_array($str) ) 
        { 
            while( list($key) = each($str) ) 
            { 
                $str[$key] = $this->xss_clean($str[$key]); 
            } 
            return $str; 
        } 
 
        $str = $this->remove_invisible_characters($str); 
        $str = $this->_validate_entities($str); 
        $str = rawurldecode($str); 
        $str = preg_replace_callback("/[a-z]+=([\'\"]).*?\1/si", array( $this, "_convert_attribute" ), $str); 
        $str = preg_replace_callback("/<\w+.*?(?=>|<|\$)/si", array( $this, "_decode_entity" ), $str); 
        $str = $this->remove_invisible_characters($str); 
        if( strpos($str, "	") !== false ) 
        { 
            $str = str_replace("	", " ", $str); 
        } 
 
        $converted_string = $str; 
        $str = $this->_do_never_allowed($str); 
        if( $is_image === true ) 
        { 
            $str = preg_replace("/<\?(php)/i", "&lt;?\1", $str); 
        } 
        else 
        { 
            $str = str_replace(array( "<?", "?" . ">" ), array( "&lt;?", "?&gt;" ), $str); 
        } 
 
        $words = array( "javascript", "expression", "vbscript", "script", "applet", "alert", "document", "write", "cookie", "window" ); 
        foreach( $words as $word ) 
        { 
            $temp = ""; 
            $i = 0; 
            for( $wordlen = strlen($word); $i < $wordlen; $i++ ) 
            { 
                $temp .= substr($word, $i, 1) . "\s*"; 
            } 
            $str = preg_replace_callback("#(" . substr($temp, 0, -3) . ")(\W)#is", array( $this, "_compact_exploded_words" ), $str); 
        } 
        do 
        { 
            $original = $str; 
            if( preg_match("/<a/i", $str) ) 
            { 
                $str = preg_replace_callback("#<a\s+([^>]*?)(>|\$)#si", array( $this, "_js_link_removal" ), $str); 
            } 
 
            if( preg_match("/<img/i", $str) ) 
            { 
                $str = preg_replace_callback("#<img\s+([^>]*?)(\s?/?>|\$)#si", array( $this, "_js_img_removal" ), $str); 
            } 
 
            if( preg_match("/script/i", $str) || preg_match("/xss/i", $str) ) 
            { 
                $str = preg_replace("#<(/*)(script|xss)(.*?)\>#si", "[removed]", $str); 
            } 
 
        } 
        while( $original != $str ); 
        unset($original); 
        $str = $this->_remove_evil_attributes($str, $is_image); 
        $naughty = "alert|applet|audio|basefont|base|behavior|bgsound|blink|body|embed|expression|form|frameset|frame|head|html|ilayer|iframe|input|isindex|layer|link|meta|object|plaintext|style|script|textarea|title|video|xml|xss"; 
        $str = preg_replace_callback("#<(/*\s*)(" . $naughty . ")([^><]*)([><]*)#is", array( $this, "_sanitize_naughty_html" ), $str); 
        $str = preg_replace("#(alert|cmd|passthru|eval|exec|expression|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(\s*)\((.*?)\)#si", "\1\2&#40;\3&#41;", $str); 
        $str = $this->_do_never_allowed($str); 
        if( $is_image === true ) 
        { 
            return ($str == $converted_string ? true : false); 
        } 
 
        return $str; 
    } 
 
    public function xss_hash() 
    { 
        if( $this->_xss_hash == "" ) 
        { 
            mt_srand(); 
            $this->_xss_hash = md5(TIMENOW + mt_rand(0, 1999999999)); 
        } 
 
        return $this->_xss_hash; 
    } 
 
    public function entity_decode($str, $charset = "UTF-8") 
    { 
        if( stristr($str, "&") === false ) 
        { 
            return $str; 
        } 
 
        if( function_exists("html_entity_decode") && strtolower($charset) != "utf-8" ) 
        { 
            $str = html_entity_decode($str, ENT_COMPAT, $charset); 
            $str = preg_replace("~&#x(0*[0-9a-f]{2,5})~ei", "chr(hexdec(\"\1\"))", $str); 
            return preg_replace("~&#([0-9]{2,4})~e", "chr(\1)", $str); 
        } 
 
        $str = preg_replace("~&#x(0*[0-9a-f]{2,5});{0,1}~ei", "chr(hexdec(\"\1\"))", $str); 
        $str = preg_replace("~&#([0-9]{2,4});{0,1}~e", "chr(\1)", $str); 
        if( stristr($str, "&") === false ) 
        { 
            $str = strtr($str, array_flip(get_html_translation_table(HTML_ENTITIES))); 
        } 
 
        return $str; 
    } 
 
    public function sanitize_filename($str, $relative_path = false) 
    { 
        $bad = array( "../", "<!--", "-->", "<", ">", "'", "\"", "&", "\$", "#", "{", "}", "[", "]", "=", ";", "?", "%20", "%22", "%3c", "%253c", "%3e", "%0e", "%28", "%29", "%2528", "%26", "%24", "%3f", "%3b", "%3d" ); 
        if( !$relative_path ) 
        { 
            $bad[] = "./"; 
            $bad[] = "/"; 
        } 
 
        $str = remove_invisible_characters($str, false); 
        return stripslashes(str_replace($bad, "", $str)); 
    } 
 
    protected function _compact_exploded_words($matches) 
    { 
        return preg_replace("/\s+/s", "", $matches[1]) . $matches[2]; 
    } 
 
    protected function _remove_evil_attributes($str, $is_image) 
    { 
        $evil_attributes = array( "on\w*", "xmlns" ); 
        if( $is_image === true ) 
        { 
            unset($evil_attributes[array_search("xmlns", $evil_attributes)]); 
        } 
 
        do 
        { 
            $str = preg_replace("#<(/?[^><]+?)([^A-Za-z\-])(" . implode("|", $evil_attributes) . ")(\s*=\s*)([\"][^>]*?[\"]|[\'][^>]*?[\']|[^>]*?)([\s><])([><]*)#i", "<\$1\$6", $str, -1, $count); 
        } 
        while( $count ); 
        return $str; 
    } 
 
    protected function _sanitize_naughty_html($matches) 
    { 
        $str = "&lt;" . $matches[1] . $matches[2] . $matches[3]; 
        $str .= str_replace(array( ">", "<" ), array( "&gt;", "&lt;" ), $matches[4]); 
        return $str; 
    } 
 
    protected function _js_link_removal($match) 
    { 
        $attributes = $this->_filter_attributes(str_replace(array( "<", ">" ), "", $match[1])); 
        return str_replace($match[1], preg_replace("#href=.*?(alert\(|alert&\#40;|javascript\:|livescript\:|mocha\:|charset\=|window\.|document\.|\.cookie|<script|<xss|base64\s*,)#si", "", $attributes), $match[0]); 
    } 
 
    protected function _js_img_removal($match) 
    { 
        $attributes = $this->_filter_attributes(str_replace(array( "<", ">" ), "", $match[1])); 
        return str_replace($match[1], preg_replace("#src=.*?(alert\(|alert&\#40;|javascript\:|livescript\:|mocha\:|charset\=|window\.|document\.|\.cookie|<script|<xss|base64\s*,)#si", "", $attributes), $match[0]); 
    } 
 
    protected function _convert_attribute($match) 
    { 
        return str_replace(array( ">", "<", "\" ), array( "&gt;", "&lt;", "\\" ), $match[0]); 
    } 
 
    protected function _filter_attributes($str) 
    { 
        $out = ""; 
        if( preg_match_all("#\s*[a-z\-]+\s*=\s*(\"|\')([^\1]*?)\1#is", $str, $matches) ) 
        { 
            foreach( $matches[0] as $match ) 
            { 
                $out .= preg_replace("#/\*.*?\*/#s", "", $match); 
            } 
        } 
 
        return $out; 
    } 
 
    protected function _decode_entity($match) 
    { 
        return $this->entity_decode($match[0], strtoupper($this->charset)); 
    } 
 
    protected function _validate_entities($str) 
    { 
        $str = preg_replace("|\&([a-z\_0-9\-]+)\=([a-z\_0-9\-]+)|i", $this->xss_hash() . "\1=\2", $str); 
        $str = preg_replace("#(&\#?[0-9a-z]{2,})([\x00-\ ])*;?#i", "\1;\2", $str); 
        $str = preg_replace("#(&\#x?)([0-9A-F]+);?#i", "\1\2;", $str); 
        $str = str_replace($this->xss_hash(), "&", $str); 
        return $str; 
    } 
 
    protected function _do_never_allowed($str) 
    { 
        foreach( $this->_never_allowed_str as $key => $val ) 
        { 
            $str = str_replace($key, $val, $str); 
        } 
        foreach( $this->_never_allowed_regex as $key => $val ) 
        { 
            $str = preg_replace("#" . $key . "#i", $val, $str); 
        } 
        return $str; 
    } 
 
    protected function remove_invisible_characters($str, $url_encoded = true) 
    { 
        $non_displayables = array(  ); 
        if( $url_encoded ) 
        { 
            $non_displayables[] = "/%0[0-8bcef]/"; 
            $non_displayables[] = "/%1[0-9a-f]/"; 
        } 
 
        $non_displayables[] = "/[\x00-\x08\\\x0E-\x1F\x7F]+/S"; 
        do 
        { 
            $str = preg_replace($non_displayables, "", $str, -1, $count); 
        } 
        while( $count ); 
        return $str; 
    } 
 
} 
 
 
class TSUE_IRCBot 
{ 
    public $fp = NULL; 
    public $debug = array(  ); 
    public $connected = false; 
    public $font = array( "[c]" => "", "[n]" => "", "[b]" => "", "[u]" => "", "[r]" => "" ); 
 
    public function TSUE_IRCBot($msg) 
    { 
        global $TSUE; 
        $this->fp = fsockopen($TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"], $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPort"], $errno, $errstr, 5); 
        if( !$this->fp ) 
        { 
            $this->debug[] = "Unable to connect to IRC Server at " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"] . ":" . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPort"] . " (" . $errno . ") " . $errstr; 
            return false; 
        } 
 
        if( $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"][0] != "#" ) 
        { 
            $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"] = "#" . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"]; 
        } 
 
        $this->debug[] = "Connected to: " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"]; 
        $this->connected = true; 
        $this->sendCMD("PASS " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPass"]); 
        $this->sendCMD("NICK " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircNick"]); 
        $this->sendCMD("USER " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircNick"] . " TSUE IRC BOT"); 
        while( !feof($this->fp) ) 
        { 
            $data = str_replace(array( "
", "
" ), "", fgets($this->fp, 1024)); 
            $this->debug[] = "[RECEIVE] " . $data; 
            $exData = tsue_explode(" ", $data); 
            if( isset($exData["0"]) && $exData["0"] == "PING" ) 
            { 
                $this->sendCMD("PONG " . $exData[1]); 
            } 
            else 
            { 
                if( isset($exData["1"]) && $exData["1"] == "376" ) 
                { 
                    $this->sendCMD("JOIN " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"]); 
                } 
                else 
                { 
                    if( isset($exData["1"]) && $exData["1"] == "366" ) 
                    { 
                        $this->sendCMD("PRIVMSG " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"] . " [b][c]4,0" . $msg); 
                        $this->Disconnect(); 
                        return NULL; 
                    } 
 
                } 
 
            } 
 
        } 
        if( $this->connected ) 
        { 
            $this->Disconnect(); 
        } 
 
    } 
 
    public function sendCMD($cmd) 
    { 
        @fputs($this->fp, @strtr($cmd, $this->font) . "

"); 
        $this->debug[] = "[SEND] " . $cmd; 
    } 
 
    public function Disconnect() 
    { 
        $this->sendCMD("QUIT :USING TSUE IRC BOT"); 
        @fclose($this->fp); 
    } 
 
    public function Debug() 
    { 
        return ($this->debug ? implode("<br />", $this->debug) : false); 
    } 
 
} 
 
 
class Torrent 
{ 
    private $torrent = NULL; 
    private $info = NULL; 
    public $error = NULL; 
 
    public function load(&$data) 
    { 
        $this->torrent = BEncode::decode($data); 
        if( $this->torrent->get_type() == "error" ) 
        { 
            $this->error = $this->torrent->get_plain(); 
            return false; 
        } 
 
        if( $this->torrent->get_type() != "dictionary" ) 
        { 
            $this->error = "The file was not a valid torrent file."; 
            return false; 
        } 
 
        $this->info = $this->torrent->get_value("info"); 
        if( !$this->info ) 
        { 
            $this->error = "Could not find info dictionary."; 
            return false; 
        } 
 
        return true; 
    } 
 
    public function getWhatever($Whatever) 
    { 
        return ($this->torrent->get_value($Whatever) ? $this->torrent->get_value($Whatever)->get_plain() : NULL); 
    } 
 
    public function getComment() 
    { 
        return ($this->torrent->get_value("comment") ? $this->torrent->get_value("comment")->get_plain() : NULL); 
    } 
 
    public function getCreationDate() 
    { 
        return ($this->torrent->get_value("creation date") ? $this->torrent->get_value("creation date")->get_plain() : NULL); 
    } 
 
    public function getCreatedBy() 
    { 
        return ($this->torrent->get_value("created by") ? $this->torrent->get_value("created by")->get_plain() : NULL); 
    } 
 
    public function getName() 
    { 
        return $this->info->get_value("name")->get_plain(); 
    } 
 
    public function getPieceLength() 
    { 
        return $this->info->get_value("piece length")->get_plain(); 
    } 
 
    public function getPieces() 
    { 
        return $this->info->get_value("pieces")->get_plain(); 
    } 
 
    public function getPrivate() 
    { 
        if( $this->info->get_value("private") ) 
        { 
            return $this->info->get_value("private")->get_plain(); 
        } 
 
        return -1; 
    } 
 
    public function getFiles() 
    { 
        $filelist = array(  ); 
        $length = $this->info->get_value("length"); 
        if( $length ) 
        { 
            $file = new Torrent_File(); 
            $file->name = $this->info->get_value("name")->get_plain(); 
            $file->length = $this->info->get_value("length")->get_plain(); 
            array_push($filelist, $file); 
        } 
        else 
        { 
            if( $this->info->get_value("files") ) 
            { 
                $files = $this->info->get_value("files")->get_plain(); 
                while( list($key, $value) = each($files) ) 
                { 
                    $file = new Torrent_File(); 
                    $path = $value->get_value("path")->get_plain(); 
                    while( list($key, $value2) = each($path) ) 
                    { 
                        $file->name .= "/" . $value2->get_plain(); 
                    } 
                    $file->name = ltrim($file->name, "/"); 
                    $file->length = $value->get_value("length")->get_plain(); 
                    array_push($filelist, $file); 
                } 
            } 
 
        } 
 
        return $filelist; 
    } 
 
    public function getTrackers() 
    { 
        $trackerlist = array(  ); 
        if( $this->torrent->get_value("announce-list") ) 
        { 
            $trackers = $this->torrent->get_value("announce-list")->get_plain(); 
            while( list($key, $value) = each($trackers) ) 
            { 
                if( is_array($value->get_plain()) ) 
                { 
                    while( list($key, $value2) = each($value) ) 
                    { 
                        while( list($key, $value3) = each($value2) ) 
                        { 
                            array_push($trackerlist, $value3->get_plain()); 
                        } 
                    } 
                } 
                else 
                { 
                    array_push($trackerlist, $value->get_plain()); 
                } 
 
            } 
        } 
        else 
        { 
            if( $this->torrent->get_value("announce") ) 
            { 
                array_push($trackerlist, $this->torrent->get_value("announce")->get_plain()); 
            } 
 
        } 
 
        return $trackerlist; 
    } 
 
    public function addTracker($tracker_url) 
    { 
        $trackers = $this->getTrackers(); 
        $trackers[] = $tracker_url; 
        $this->setTrackers($trackers); 
    } 
 
    public function removeWhatever($Whatever) 
    { 
        if( $this->torrent->get_value($Whatever) ) 
        { 
            $this->torrent->remove($Whatever); 
        } 
 
    } 
 
    public function setTrackers($trackerlist) 
    { 
        if( 1 <= count($trackerlist) ) 
        { 
            $this->torrent->remove("announce-list"); 
            $string = new BEncode_String($trackerlist[0]); 
            $this->torrent->set("announce", $string); 
        } 
 
        if( 1 < count($trackerlist) ) 
        { 
            $list = new BEncode_List(); 
            while( list($key, $value) = each($trackerlist) ) 
            { 
                $list2 = new BEncode_List(); 
                $string = new BEncode_String($value); 
                $list2->add($string); 
                $list->add($list2); 
            } 
            $this->torrent->set("announce-list", $list); 
        } 
 
    } 
 
    public function setFiles($filelist) 
    { 
        $length = $this->info->get_value("length"); 
        if( $length ) 
        { 
            $filelist[0] = str_replace("\", "/", $filelist[0]); 
            $string = new BEncode_String($filelist[0]); 
            $this->info->set("name", $string); 
        } 
        else 
        { 
            if( $this->info->get_value("files") ) 
            { 
                $files = $this->info->get_value("files")->get_plain(); 
                for( $i = 0; $i < count($files); $i++ ) 
                { 
                    $file_parts = split("/", $filelist[$i]); 
                    $path = new BEncode_List(); 
                    foreach( $file_parts as $part ) 
                    { 
                        $string = new BEncode_String($part); 
                        $path->add($string); 
                    } 
                    $files[$i]->set("path", $path); 
                } 
            } 
 
        } 
 
    } 
 
    public function setComment($value) 
    { 
        $type = "comment"; 
        $key = $this->torrent->get_value($type); 
        if( $value == "" ) 
        { 
            $this->torrent->remove($type); 
        } 
        else 
        { 
            if( $key ) 
            { 
                $key->set($value); 
            } 
            else 
            { 
                $string = new BEncode_String($value); 
                $this->torrent->set($type, $string); 
            } 
 
        } 
 
    } 
 
    public function setCreatedBy($value) 
    { 
        $type = "created by"; 
        $key = $this->torrent->get_value($type); 
        if( $value == "" ) 
        { 
            $this->torrent->remove($type); 
        } 
        else 
        { 
            if( $key ) 
            { 
                $key->set($value); 
            } 
            else 
            { 
                $string = new BEncode_String($value); 
                $this->torrent->set($type, $string); 
            } 
 
        } 
 
    } 
 
    public function setSource($value) 
    { 
        $type = "source"; 
        $key = $this->torrent->get_value($type); 
        if( $value == "" ) 
        { 
            $this->torrent->remove($type); 
        } 
        else 
        { 
            if( $key ) 
            { 
                $key->set($value); 
            } 
            else 
            { 
                $string = new BEncode_String($value); 
                $this->torrent->set($type, $string); 
            } 
 
        } 
 
    } 
 
    public function setCreationDate($value) 
    { 
        $type = "creation date"; 
        $key = $this->torrent->get_value($type); 
        if( $value == "" ) 
        { 
            $this->torrent->remove($type); 
        } 
        else 
        { 
            if( $key ) 
            { 
                $key->set($value); 
            } 
            else 
            { 
                $int = new BEncode_Int($value); 
                $this->torrent->set($type, $int); 
            } 
 
        } 
 
    } 
 
    public function setPrivate($value) 
    { 
        if( $value == -1 ) 
        { 
            $this->info->remove("private"); 
        } 
        else 
        { 
            $int = new BEncode_Int($value); 
            $this->info->set("private", $int); 
        } 
 
    } 
 
    public function bencode() 
    { 
        return $this->torrent->encode(); 
    } 
 
    public function getHash() 
    { 
        return pack("H*", sha1($this->info->encode())); 
    } 
 
    public function getSize() 
    { 
        $size = 0; 
        $IncludedFiles = $this->getFiles(); 
        foreach( $IncludedFiles as $File ) 
        { 
            $size += $File->length; 
        } 
        return $size; 
    } 
 
} 
 
 
class Torrent_File 
{ 
    public $name = NULL; 
    public $length = NULL; 
 
} 
 
 
class BEncode 
{ 
    public static function &decode(&$raw, &$offset = 0) 
    { 
        if( strlen($raw) <= $offset ) 
        { 
            return new BEncode_Error("Decoder exceeded max length."); 
        } 
 
        $char = $raw[$offset]; 
        switch( $char ) 
        { 
            case "i": 
                $int = new BEncode_Int(); 
                $int->decode($raw, $offset); 
                return $int; 
            case "d": 
                $dict = new BEncode_Dictionary(); 
                if( $check = $dict->decode($raw, $offset) ) 
                { 
                    return $check; 
                } 
 
                return $dict; 
            case "l": 
                $list = new BEncode_List(); 
                $list->decode($raw, $offset); 
                return $list; 
            case "e": 
                $AvoidPHPWarning = new BEncode_End(); 
                return $AvoidPHPWarning; 
            case "0": 
            case is_numeric($char): 
                $str = new BEncode_String(); 
                $str->decode($raw, $offset); 
                return $str; 
        } 
        return new BEncode_Error("Decoder encountered unknown char '" . $char . "' at offset " . $offset . "."); 
    } 
 
} 
 
 
class BEncode_End 
{ 
    public function get_type() 
    { 
        return "end"; 
    } 
 
} 
 
 
class BEncode_Error 
{ 
    private $error = NULL; 
 
    public function BEncode_Error($error) 
    { 
        $this->error = $error; 
    } 
 
    public function get_plain() 
    { 
        return $this->error; 
    } 
 
    public function get_type() 
    { 
        return "error"; 
    } 
 
} 
 
 
class BEncode_Int 
{ 
    private $value = NULL; 
 
    public function BEncode_Int($value = NULL) 
    { 
        $this->value = $value; 
    } 
 
    public function decode(&$raw, &$offset) 
    { 
        $end = strpos($raw, "e", $offset); 
        $this->value = substr($raw, ++$offset, $end - $offset); 
        $offset += $end - $offset; 
    } 
 
    public function get_plain() 
    { 
        return $this->value; 
    } 
 
    public function get_type() 
    { 
        return "int"; 
    } 
 
    public function encode() 
    { 
        return "i" . $this->value . "e"; 
    } 
 
    public function set($value) 
    { 
        $this->value = $value; 
    } 
 
} 
 
 
class BEncode_Dictionary 
{ 
    public $value = array(  ); 
 
    public function decode(&$raw, &$offset) 
    { 
        $dictionary = array(  ); 
        while( true ) 
        { 
            $name = BEncode::decode($raw, ++$offset); 
            if( $name->get_type() == "end" ) 
            { 
                break; 
            } 
 
            if( $name->get_type() == "error" ) 
            { 
                return $name; 
            } 
 
            if( $name->get_type() != "string" ) 
            { 
                return new BEncode_Error("Key name in dictionary was not a string."); 
            } 
 
            $value = BEncode::decode($raw, ++$offset); 
            if( $value->get_type() == "error" ) 
            { 
                return $value; 
            } 
 
            $dictionary[$name->get_plain()] = $value; 
        } 
        $this->value = $dictionary; 
    } 
 
    public function get_value($key) 
    { 
        if( isset($this->value[$key]) ) 
        { 
            return $this->value[$key]; 
        } 
 
    } 
 
    public function encode() 
    { 
        $this->sort(); 
        $encoded = "d"; 
        while( list($key, $value) = each($this->value) ) 
        { 
            $bstr = new BEncode_String(); 
            $bstr->set($key); 
            $encoded .= $bstr->encode(); 
            $encoded .= $value->encode(); 
        } 
        $encoded .= "e"; 
        return $encoded; 
    } 
 
    public function get_type() 
    { 
        return "dictionary"; 
    } 
 
    public function remove($key) 
    { 
        unset($this->value[$key]); 
    } 
 
    public function set($key, $value) 
    { 
        $this->value[$key] = $value; 
    } 
 
    private function sort() 
    { 
        ksort($this->value); 
    } 
 
    public function count() 
    { 
        return count($this->value); 
    } 
 
} 
 
 
class BEncode_List 
{ 
    private $value = array(  ); 
 
    public function add($bval) 
    { 
        array_push($this->value, $bval); 
    } 
 
    public function decode(&$raw, &$offset) 
    { 
        $list = array(  ); 
        while( true ) 
        { 
            $value = BEncode::decode($raw, ++$offset); 
            if( $value->get_type() == "end" ) 
            { 
                break; 
            } 
 
            if( $value->get_type() == "error" ) 
            { 
                return $value; 
            } 
 
            array_push($list, $value); 
        } 
        $this->value = $list; 
    } 
 
    public function encode() 
    { 
        $encoded = "l"; 
        for( $i = 0; $i < count($this->value); $i++ ) 
        { 
            $encoded .= $this->value[$i]->encode(); 
        } 
        $encoded .= "e"; 
        return $encoded; 
    } 
 
    public function get_plain() 
    { 
        return $this->value; 
    } 
 
    public function get_type() 
    { 
        return "list"; 
    } 
 
} 
 
 
class BEncode_String 
{ 
    private $value = NULL; 
 
    public function BEncode_String($value = NULL) 
    { 
        $this->value = $value; 
    } 
 
    public function decode(&$raw, &$offset) 
    { 
        $end = strpos($raw, ":", $offset); 
        $len = substr($raw, $offset, $end - $offset); 
        $offset += $len + $end - $offset; 
        $end++; 
        $this->value = substr($raw, $end, $len); 
    } 
 
    public function get_plain() 
    { 
        return $this->value; 
    } 
 
    public function get_type() 
    { 
        return "string"; 
    } 
 
    public function encode() 
    { 
        $len = strlen($this->value); 
        return (string) $len . ":" . $this->value; 
    } 
 
    public function set($value) 
    { 
        $this->value = $value; 
    } 
 
} 
 
 
class IMDB 
{ 
    public $movieInfo = array(  ); 
    public $posterPath = ""; 
 
    public function IMDB($movieKeyword) 
    { 
        $imdbUrl = $this->getIMDbUrlFromGoogle($movieKeyword); 
        $html = ($imdbUrl ? $this->geturl($imdbUrl) : false); 
        if( stripos($html, "<meta name=\"application-name\" content=\"IMDb\" />") !== false ) 
        { 
            $this->scrapMovieInfo($html); 
            $this->movieInfo["imdb_url"] = $imdbUrl; 
        } 
        else 
        { 
            $this->movieInfo["error"] = "No Title found on IMDb!"; 
        } 
 
    } 
 
    public function getIMDbUrlFromGoogle($title) 
    { 
        $url = "http://www.google.com/search?q=site:imdb.com+" . rawurlencode($title); 
        $html = $this->geturl($url); 
        $imdburls = $this->match_all("/<a.*?href=\".*?(http:\/\/www\.imdb.com\/title\/tt.*?\/).*?\".*?>.*?<\/a>/ms", $html, 1); 
        return ($imdburls ? $imdburls[0] : false); 
    } 
 
    public function scrapMovieInfo($html) 
    { 
        $this->movieInfo["title_id"] = $this->match("/<link rel=\"canonical\" href=\"http:\/\/www.imdb.com\/title\/(tt[0-9]+)\/\" \/>/ms", $html, 1); 
        $this->movieInfo["title"] = trim($this->match("/<title>(.*?) \(.*?<\/title>/ms", $html, 1)); 
        $this->movieInfo["year"] = trim($this->match("/<title>.*?\(.*?([0-9][0-9][0-9][0-9]).*?\).*?<\/title>/ms", $html, 1)); 
        $this->movieInfo["rating"] = $this->match("/itemprop=\"ratingValue\">([0-9].[0-9])<\/span>/ms", $html, 1); 
        $this->movieInfo["genres"] = array(  ); 
        foreach( $this->match_all("/<a.*?>(.*?)<\/a>/ms", $this->match("/Genre.?:(.*?)(<\/div>|See more)/ms", $html, 1), 1) as $m ) 
        { 
            array_push($this->movieInfo["genres"], $m); 
        } 
        $this->movieInfo["directors"] = array(  ); 
        foreach( $this->match_all("/<a.*?>(.*?)<\/a>/ms", $this->match("/Director.?:(.*?)(<\/div>|>.?and )/ms", $html, 1), 1) as $m ) 
        { 
            array_push($this->movieInfo["directors"], $m); 
        } 
        $this->movieInfo["writers"] = array(  ); 
        foreach( $this->match_all("/<a.*?>(.*?)<\/a>/ms", $this->match("/Writer.?:(.*?)(<\/div>|>.?and )/ms", $html, 1), 1) as $m ) 
        { 
            array_push($this->movieInfo["writers"], $m); 
        } 
        $this->movieInfo["stars"] = array(  ); 
        foreach( $this->match_all("/<a.*?>(.*?)<\/a>/ms", $this->match("/Stars:(.*?)<\/div>/ms", $html, 1), 1) as $m ) 
        { 
            array_push($this->movieInfo["stars"], $m); 
        } 
        $this->movieInfo["cast"] = array(  ); 
        foreach( $this->match_all("/<td class=\"name\">(.*?)<\/td>/ms", $html, 1) as $m ) 
        { 
            array_push($this->movieInfo["cast"], trim(strip_tags($m))); 
        } 
        $this->movieInfo["mpaa_rating"] = $this->match("/infobar\">.<img.*?alt=\"(.*?)\".*?>/ms", $html, 1); 
        if( $this->movieInfo["title_id"] != "" ) 
        { 
            $releaseinfoHtml = $this->geturl("http://www.imdb.com/title/" . $this->movieInfo["title_id"] . "/releaseinfo"); 
            $this->movieInfo["also_known_as"] = $this->getAkaTitles($releaseinfoHtml, $usa_title); 
            $this->movieInfo["usa_title"] = $usa_title; 
            $this->movieInfo["release_date"] = $this->match("/Release Date:<\/h4>.*?([0-9][0-9]? (January|February|March|April|May|June|July|August|September|October|November|December) (19|20)[0-9][0-9]).*?(\(|<span)/ms", $html, 1); 
            $this->movieInfo["release_dates"] = $this->getReleaseDates($releaseinfoHtml); 
        } 
 
        $this->movieInfo["plot"] = trim(strip_tags($this->match("/<p itemprop=\"description\">(.*?)<\/p>/ms", $html, 1))); 
        $this->movieInfo["poster"] = $this->match("/img_primary\">.*?<img src=\"(.*?)\".*?<\/td>/ms", $html, 1); 
        $this->movieInfo["poster_large"] = ""; 
        $this->movieInfo["poster_small"] = ""; 
        if( $this->movieInfo["poster"] != "" && strrpos($this->movieInfo["poster"], "nopicture") === false && strrpos($this->movieInfo["poster"], "ad.doubleclick") === false ) 
        { 
            $this->movieInfo["poster_large"] = substr($this->movieInfo["poster"], 0, strrpos($this->movieInfo["poster"], "_V1.")) . "_V1._SY500.jpg"; 
            $this->movieInfo["poster_small"] = substr($this->movieInfo["poster"], 0, strrpos($this->movieInfo["poster"], "_V1.")) . "_V1._SY150.jpg"; 
        } 
        else 
        { 
            $this->movieInfo["poster"] = ""; 
        } 
 
        $this->movieInfo["runtime"] = trim($this->match("/Runtime:<\/h4>.*?([0-9]+) min.*?<\/div>/ms", $html, 1)); 
        if( $this->movieInfo["runtime"] == "" ) 
        { 
            $this->movieInfo["runtime"] = trim($this->match("/infobar.*?([0-9]+) min.*?<\/div>/ms", $html, 1)); 
        } 
 
        $this->movieInfo["top_250"] = trim($this->match("/Top 250 #([0-9]+)</ms", $html, 1)); 
        $this->movieInfo["oscars"] = trim($this->match("/Won ([0-9]+) Oscars./ms", $html, 1)); 
        $this->movieInfo["storyline"] = trim(strip_tags($this->match("/Storyline<\/h2>(.*?)(<em|<\/p>|<span)/ms", $html, 1))); 
        $this->movieInfo["tagline"] = trim(strip_tags($this->match("/Tagline.?:<\/h4>(.*?)(<span|<\/div)/ms", $html, 1))); 
        $this->movieInfo["votes"] = $this->match("/<span itemprop=\"ratingCount\">(.*?)<\/span>/ms", $html, 1); 
        if( $this->movieInfo["title_id"] != "" ) 
        { 
            $this->movieInfo["media_images"] = $this->getMediaImages($this->movieInfo["title_id"]); 
        } 
 
    } 
 
    public function getReleaseDates($html) 
    { 
        $releaseDates = array(  ); 
        foreach( $this->match_all("/<tr>(.*?)<\/tr>/ms", $this->match("/Date<\/th><\/tr>(.*?)<\/table>/ms", $html, 1), 1) as $r ) 
        { 
            $country = trim(strip_tags($this->match("/<td><b>(.*?)<\/b><\/td>/ms", $r, 1))); 
            $date = trim(strip_tags($this->match("/<td align=\"right\">(.*?)<\/td>/ms", $r, 1))); 
            array_push($releaseDates, $country . " = " . $date); 
        } 
        return $releaseDates; 
    } 
 
    public function getAkaTitles($html, &$usa_title) 
    { 
        $akaTitles = array(  ); 
        foreach( $this->match_all("/<tr>(.*?)<\/tr>/msi", $this->match("/Also Known As(.*?)<\/table>/ms", $html, 1), 1) as $m ) 
        { 
            $akaTitleMatch = $this->match_all("/<td>(.*?)<\/td>/ms", $m, 1); 
            $akaTitle = trim($akaTitleMatch[0]); 
            $akaCountry = trim($akaTitleMatch[1]); 
            array_push($akaTitles, $akaTitle . " = " . $akaCountry); 
            if( $akaCountry != "" && strrpos(strtolower($akaCountry), "usa") !== false ) 
            { 
                $usa_title = $akaTitle; 
            } 
 
        } 
        return $akaTitles; 
    } 
 
    public function getMediaImages($titleId) 
    { 
        $url = "http://www.imdb.com/title/" . $titleId . "/mediaindex"; 
        $html = $this->geturl($url); 
        $media = array(  ); 
        $media = array_merge($media, $this->scanMediaImages($html)); 
        foreach( $this->match_all("/<a href=\"\?page=(.*?)\">/ms", $this->match("/<span style=\"padding: 0 1em;\">(.*?)<\/span>/ms", $html, 1), 1) as $p ) 
        { 
            $html = $this->geturl($url . "?page=" . $p); 
            $media = array_merge($media, $this->scanMediaImages($html)); 
        } 
        return $media; 
    } 
 
    public function scanMediaImages($html) 
    { 
        $pics = array(  ); 
        foreach( $this->match_all("/src=\"(.*?)\"/ms", $this->match("/<div class=\"thumb_list\" style=\"font-size: 0px;\">(.*?)<\/div>/ms", $html, 1), 1) as $i ) 
        { 
            $i = substr($i, 0, strrpos($i, "_V1.")) . "_V1._SY500.jpg"; 
            array_push($pics, $i); 
        } 
        return $pics; 
    } 
 
    public function geturl($url) 
    { 
        $html = ""; 
        if( function_exists("curl_init") && ($ch = curl_init()) ) 
        { 
            curl_setopt($ch, CURLOPT_URL, $url); 
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
            $html = curl_exec($ch); 
            curl_close($ch); 
        } 
 
        return $html; 
    } 
 
    public function match_all($regex, $str, $i = 0) 
    { 
        if( preg_match_all($regex, $str, $matches) === false ) 
        { 
            return false; 
        } 
 
        return $matches[$i]; 
    } 
 
    public function match($regex, $str, $i = 0) 
    { 
        if( preg_match($regex, $str, $match) == 1 ) 
        { 
            return $match[$i]; 
        } 
 
        return false; 
    } 
 
    public function savePoster($JPGURL) 
    { 
        $JPG = $this->geturl($JPGURL); 
        if( $JPG ) 
        { 
            return file_put_contents($this->posterPath . $this->movieInfo["title_id"] . ".jpg", $JPG); 
        } 
 
    } 
 
} 
 
 
class tmhOAuth 
{ 
    public $response = array(  ); 
 
    const VERSION = "0.8.3"; 
 
    public function __construct($config = array(  )) 
    { 
        $this->buffer = NULL; 
        $this->reconfigure($config); 
        $this->reset_request_settings(); 
        $this->set_user_agent(); 
    } 
 
    public function reconfigure($config = array(  )) 
    { 
        $this->config = array_merge(array( "user_agent" => "", "host" => "api.twitter.com", "consumer_key" => "", "consumer_secret" => "", "token" => "", "secret" => "", "bearer" => "", "oauth_version" => "1.0", "oauth_signature_method" => "HMAC-SHA1", "curl_http_version" => CURL_HTTP_VERSION_1_1, "curl_connecttimeout" => 30, "curl_timeout" => 10, "curl_ssl_verifyhost" => 2, "curl_ssl_verifypeer" => true, "use_ssl" => true, "curl_cainfo" => __DIR__ . DIRECTORY_SEPARATOR . "cacert.pem", "curl_capath" => __DIR__, "curl_followlocation" => false, "curl_proxy" => false, "curl_proxyuserpwd" => false, "curl_encoding" => "", "is_streaming" => false, "streaming_eol" => "
", "streaming_metrics_interval" => 10, "as_header" => true, "force_nonce" => false, "force_timestamp" => false ), $config); 
    } 
 
    private function reset_request_settings($options = array(  )) 
    { 
        $this->request_settings = array( "params" => array(  ), "headers" => array(  ), "with_user" => true, "multipart" => false ); 
        if( !empty($options) ) 
        { 
            $this->request_settings = array_merge($this->request_settings, $options); 
        } 
 
    } 
 
    private function set_user_agent() 
    { 
        if( !empty($this->config["user_agent"]) ) 
        { 
            return NULL; 
        } 
 
        $ssl = ($this->config["curl_ssl_verifyhost"] && $this->config["curl_ssl_verifypeer"] && $this->config["use_ssl"] ? "+" : "-"); 
        $ua = "tmhOAuth " . self::VERSION . $ssl . "SSL - //github.com/themattharris/tmhOAuth"; 
        $this->config["user_agent"] = $ua; 
    } 
 
    private function nonce($length = 12, $include_time = true) 
    { 
        if( $this->config["force_nonce"] === false ) 
        { 
            $prefix = ($include_time ? microtime() : ""); 
            return md5(substr($prefix . uniqid(), 0, $length)); 
        } 
 
        return $this->config["force_nonce"]; 
    } 
 
    private function timestamp() 
    { 
        if( $this->config["force_timestamp"] === false ) 
        { 
            $time = time(); 
        } 
        else 
        { 
            $time = $this->config["force_timestamp"]; 
        } 
 
        return (string) $time; 
    } 
 
    private function safe_encode($data) 
    { 
        if( is_array($data) ) 
        { 
            return array_map(array( $this, "safe_encode" ), $data); 
        } 
 
        if( is_scalar($data) ) 
        { 
            return str_ireplace(array( "+", "%7E" ), array( " ", "~" ), rawurlencode($data)); 
        } 
 
        return ""; 
    } 
 
    private function safe_decode($data) 
    { 
        if( is_array($data) ) 
        { 
            return array_map(array( $this, "safe_decode" ), $data); 
        } 
 
        if( is_scalar($data) ) 
        { 
            return rawurldecode($data); 
        } 
 
        return ""; 
    } 
 
    private function prepare_oauth1_params() 
    { 
        $defaults = array( "oauth_nonce" => $this->nonce(), "oauth_timestamp" => $this->timestamp(), "oauth_version" => $this->config["oauth_version"], "oauth_consumer_key" => $this->config["consumer_key"], "oauth_signature_method" => $this->config["oauth_signature_method"] ); 
        if( $oauth_token = $this->token() ) 
        { 
            $defaults["oauth_token"] = $oauth_token; 
        } 
 
        $this->request_settings["oauth1_params"] = array(  ); 
        foreach( $defaults as $k => $v ) 
        { 
            $this->request_settings["oauth1_params"][$this->safe_encode($k)] = $this->safe_encode($v); 
        } 
    } 
 
    private function token() 
    { 
        if( $this->request_settings["with_user"] ) 
        { 
            if( isset($this->config["token"]) && !empty($this->config["token"]) ) 
            { 
                return $this->config["token"]; 
            } 
 
            if( isset($this->config["user_token"]) ) 
            { 
                return $this->config["user_token"]; 
            } 
 
        } 
 
        return ""; 
    } 
 
    private function secret() 
    { 
        if( $this->request_settings["with_user"] ) 
        { 
            if( isset($this->config["secret"]) && !empty($this->config["secret"]) ) 
            { 
                return $this->config["secret"]; 
            } 
 
            if( isset($this->config["user_secret"]) ) 
            { 
                return $this->config["user_secret"]; 
            } 
 
        } 
 
        return ""; 
    } 
 
    public function extract_params($body) 
    { 
        $kvs = explode("&", $body); 
        $decoded = array(  ); 
        foreach( $kvs as $kv ) 
        { 
            $kv = explode("=", $kv, 2); 
            $kv[0] = $this->safe_decode($kv[0]); 
            $kv[1] = $this->safe_decode($kv[1]); 
            $decoded[$kv[0]] = $kv[1]; 
        } 
        return $decoded; 
    } 
 
    private function prepare_method() 
    { 
        $this->request_settings["method"] = strtoupper($this->request_settings["method"]); 
    } 
 
    private function prepare_url() 
    { 
        $parts = parse_url($this->request_settings["url"]); 
        $port = (isset($parts["port"]) ? $parts["port"] : false); 
        $scheme = $parts["scheme"]; 
        $host = $parts["host"]; 
        $path = (isset($parts["path"]) ? $parts["path"] : false); 
        $port or $port = ($scheme == 'https') ? '443' : '80'; 
        if( $scheme == "https" && $port != "443" || $scheme == "http" && $port != "80" ) 
{ 
    $host = (string) $host . ":" . $port; 
} 
 
        $this->request_settings["url"] = strtolower((string) $scheme . "://" . $host); 
        $this->request_settings["url"] .= $path; 
    } 
 
    private function multipart_escape($value) 
    { 
        if( !$this->request_settings["multipart"] || strpos($value, "@") !== 0 ) 
        { 
            return $value; 
        } 
 
        list($file) = explode(";", substr($value, 1), 2); 
        if( file_exists($file) ) 
        { 
            return $value; 
        } 
 
        return " " . $value; 
    } 
 
    private function prepare_params() 
    { 
        $doing_oauth1 = false; 
        $this->request_settings["prepared_params"] = array(  ); 
        $prepared =& $this->request_settings["prepared_params"]; 
        $prepared_pairs = array(  ); 
        $prepared_pairs_with_oauth = array(  ); 
        if( isset($this->request_settings["oauth1_params"]) ) 
        { 
            $oauth1 =& $this->request_settings["oauth1_params"]; 
            $doing_oauth1 = true; 
            $params = array_merge($oauth1, $this->request_settings["params"]); 
            unset($params["oauth_signature"]); 
            $oauth1 = array(  ); 
        } 
        else 
        { 
            $params = $this->request_settings["params"]; 
        } 
 
        uksort($params, "strcmp"); 
        foreach( $params as $k => $v ) 
        { 
            $k = ($this->request_settings["multipart"] ? $k : $this->safe_encode($k)); 
            if( is_array($v) ) 
            { 
                $v = implode(",", $v); 
            } 
 
            $v = ($this->request_settings["multipart"] ? $this->multipart_escape($v) : $this->safe_encode($v)); 
            if( $doing_oauth1 ) 
            { 
                if( strpos($k, "oauth") === 0 || !$this->request_settings["multipart"] ) 
                { 
                    $prepared_pairs_with_oauth[] = (string) $k . "=" . $v; 
                } 
 
                if( strpos($k, "oauth") === 0 ) 
                { 
                    $oauth1[$k] = $v; 
                    continue; 
                } 
 
            } 
 
            $prepared[$k] = $v; 
            $prepared_pairs[] = (string) $k . "=" . $v; 
        } 
        if( $doing_oauth1 ) 
        { 
            $this->request_settings["basestring_params"] = implode("&", $prepared_pairs_with_oauth); 
        } 
 
        if( !empty($prepared_pairs) ) 
        { 
            $content = implode("&", $prepared_pairs); 
            switch( $this->request_settings["method"] ) 
            { 
                case "POST": 
                    $this->request_settings["postfields"] = ($this->request_settings["multipart"] ? $prepared : $content); 
                    break; 
                default: 
                    $this->request_settings["querystring"] = $content; 
                    break; 
            } 
        } 
 
    } 
 
    private function prepare_signing_key() 
    { 
        $left = $this->safe_encode($this->config["consumer_secret"]); 
        $right = $this->safe_encode($this->secret()); 
        $this->request_settings["signing_key"] = $left . "&" . $right; 
    } 
 
    private function prepare_base_string() 
    { 
        $url = $this->request_settings["url"]; 
        if( !empty($this->request_settings["headers"]["Host"]) ) 
        { 
            $url = str_ireplace($this->config["host"], $this->request_settings["headers"]["Host"], $url); 
        } 
 
        $base = array( $this->request_settings["method"], $url, $this->request_settings["basestring_params"] ); 
        $this->request_settings["basestring"] = implode("&", $this->safe_encode($base)); 
    } 
 
    private function prepare_oauth_signature() 
    { 
        $this->request_settings["oauth1_params"]["oauth_signature"] = $this->safe_encode(base64_encode(hash_hmac("sha1", $this->request_settings["basestring"], $this->request_settings["signing_key"], true))); 
    } 
 
    private function prepare_auth_header() 
    { 
        if( !$this->config["as_header"] ) 
        { 
            return NULL; 
        } 
 
        if( isset($this->request_settings["oauth1_params"]) ) 
        { 
            uksort($this->request_settings["oauth1_params"], "strcmp"); 
            $encoded_quoted_pairs = array(  ); 
            foreach( $this->request_settings["oauth1_params"] as $k => $v ) 
            { 
                $encoded_quoted_pairs[] = (string) $k . "=\"" . $v . "\""; 
            } 
            $header = "OAuth " . implode(", ", $encoded_quoted_pairs); 
        } 
        else 
        { 
            if( !empty($this->config["bearer"]) ) 
            { 
                $header = "Bearer " . $this->config["bearer"]; 
            } 
 
        } 
 
        if( isset($header) ) 
        { 
            $this->request_settings["headers"]["Authorization"] = $header; 
        } 
 
    } 
 
    public function bearer_token_credentials() 
    { 
        $credentials = implode(":", array( $this->safe_encode($this->config["consumer_key"]), $this->safe_encode($this->config["consumer_secret"]) )); 
        return base64_encode($credentials); 
    } 
 
    public function request($method, $url, $params = array(  ), $useauth = true, $multipart = false, $headers = array(  )) 
    { 
        $options = array( "method" => $method, "url" => $url, "params" => $params, "with_user" => true, "multipart" => $multipart, "headers" => $headers ); 
        $options = array_merge($this->default_options(), $options); 
        if( $useauth ) 
        { 
            return $this->user_request($options); 
        } 
 
        return $this->unauthenticated_request($options); 
    } 
 
    public function apponly_request($options = array(  )) 
    { 
        $options = array_merge($this->default_options(), $options, array( "with_user" => false )); 
        $this->reset_request_settings($options); 
        if( $options["without_bearer"] ) 
        { 
            return $this->oauth1_request(); 
        } 
 
        $this->prepare_method(); 
        $this->prepare_url(); 
        $this->prepare_params(); 
        $this->prepare_auth_header(); 
        return $this->curlit(); 
    } 
 
    public function user_request($options = array(  )) 
    { 
        $options = array_merge($this->default_options(), $options, array( "with_user" => true )); 
        $this->reset_request_settings($options); 
        return $this->oauth1_request(); 
    } 
 
    public function unauthenticated_request($options = array(  )) 
    { 
        $options = array_merge($this->default_options(), $options, array( "with_user" => false )); 
        $this->reset_request_settings($options); 
        $this->prepare_method(); 
        $this->prepare_url(); 
        $this->prepare_params(); 
        return $this->curlit(); 
    } 
 
    private function oauth1_request() 
    { 
        $this->prepare_oauth1_params(); 
        $this->prepare_method(); 
        $this->prepare_url(); 
        $this->prepare_params(); 
        $this->prepare_base_string(); 
        $this->prepare_signing_key(); 
        $this->prepare_oauth_signature(); 
        $this->prepare_auth_header(); 
        return $this->curlit(); 
    } 
 
    private function default_options() 
    { 
        return array( "method" => "GET", "params" => array(  ), "with_user" => true, "multipart" => false, "headers" => array(  ), "without_bearer" => false ); 
    } 
 
    public function streaming_request($method, $url, $params = array(  ), $callback = "") 
    { 
        if( !empty($callback) ) 
        { 
            if( !is_callable($callback) ) 
            { 
                return false; 
            } 
 
            $this->config["streaming_callback"] = $callback; 
        } 
 
        $this->metrics["start"] = time(); 
        $this->metrics["interval_start"] = $this->metrics["start"]; 
        $this->metrics["messages"] = 0; 
        $this->metrics["last_messages"] = 0; 
        $this->metrics["bytes"] = 0; 
        $this->metrics["last_bytes"] = 0; 
        $this->config["is_streaming"] = true; 
        $this->request($method, $url, $params); 
    } 
 
    private function update_metrics() 
    { 
        $now = time(); 
        if( $now < $this->metrics["interval_start"] + $this->config["streaming_metrics_interval"] ) 
        { 
            return NULL; 
        } 
 
        $this->metrics["mps"] = round(($this->metrics["messages"] - $this->metrics["last_messages"]) / $this->config["streaming_metrics_interval"], 2); 
        $this->metrics["bps"] = round(($this->metrics["bytes"] - $this->metrics["last_bytes"]) / $this->config["streaming_metrics_interval"], 2); 
        $this->metrics["last_bytes"] = $this->metrics["bytes"]; 
        $this->metrics["last_messages"] = $this->metrics["messages"]; 
        $this->metrics["interval_start"] = $now; 
        return $this->metrics; 
    } 
 
    public function url($request, $extension = "json") 
    { 
        $request = preg_replace("\$([^:])//+\$", "\$1/", $request); 
        if( stripos($request, "http") === 0 || stripos($request, "//") === 0 ) 
        { 
            return $request; 
        } 
 
        $extension = (0 < strlen($extension) ? "." . $extension : ""); 
        $proto = ($this->config["use_ssl"] ? "https:/" : "http:/"); 
        $request = ltrim($request, "/"); 
        $pos = strlen($request) - strlen($extension); 
        if( substr($request, $pos) === $extension ) 
        { 
            $request = substr_replace($request, "", $pos); 
        } 
 
        return implode("/", array( $proto, $this->config["host"], $request . $extension )); 
    } 
 
    public function transformText($text, $mode = "encode") 
    { 
        return $this->{"safe_" . $mode}($text); 
    } 
 
    private function curlHeader($ch, $header) 
    { 
        $this->response["raw"] .= $header; 
        list($key, $value) = array_pad(explode(":", $header, 2), 2, NULL); 
        $key = trim($key); 
        $value = trim($value); 
        if( !isset($this->response["headers"][$key]) ) 
        { 
            $this->response["headers"][$key] = $value; 
        } 
        else 
        { 
            if( !is_array($this->response["headers"][$key]) ) 
            { 
                $this->response["headers"][$key] = array( $this->response["headers"][$key] ); 
            } 
 
            $this->response["headers"][$key][] = $value; 
        } 
 
        return strlen($header); 
    } 
 
    private function curlWrite($ch, $data) 
    { 
        $l = strlen($data); 
        if( strpos($data, $this->config["streaming_eol"]) === false ) 
        { 
            $this->buffer .= $data; 
            return $l; 
        } 
 
        $buffered = explode($this->config["streaming_eol"], $data); 
        $content = $this->buffer . $buffered[0]; 
        $this->metrics["messages"]++; 
        $this->metrics["bytes"] += strlen($content); 
        if( !is_callable($this->config["streaming_callback"]) ) 
        { 
            return 0; 
        } 
 
        $metrics = $this->update_metrics(); 
        $stop = call_user_func($this->config["streaming_callback"], $content, strlen($content), $metrics); 
        $this->buffer = $buffered[1]; 
        if( $stop ) 
        { 
            return 0; 
        } 
 
        return $l; 
    } 
 
    private function curlit() 
    { 
        $this->response = array( "raw" => "" ); 
        $c = curl_init(); 
        switch( $this->request_settings["method"] ) 
        { 
            case "GET": 
                if( isset($this->request_settings["querystring"]) ) 
                { 
                    $this->request_settings["url"] = $this->request_settings["url"] . "?" . $this->request_settings["querystring"]; 
                } 
 
                break; 
            case "POST": 
                curl_setopt($c, CURLOPT_POST, true); 
                if( isset($this->request_settings["postfields"]) ) 
                { 
                    $postfields = $this->request_settings["postfields"]; 
                } 
                else 
                { 
                    $postfields = array(  ); 
                } 
 
                curl_setopt($c, CURLOPT_POSTFIELDS, $postfields); 
                break; 
            default: 
                if( isset($this->request_settings["postfields"]) ) 
                { 
                    curl_setopt($c, CURLOPT_CUSTOMREQUEST, $this->request_settings["postfields"]); 
                } 
 
        } 
        curl_setopt_array($c, array( CURLOPT_HTTP_VERSION => $this->config["curl_http_version"], CURLOPT_USERAGENT => $this->config["user_agent"], CURLOPT_CONNECTTIMEOUT => $this->config["curl_connecttimeout"], CURLOPT_TIMEOUT => $this->config["curl_timeout"], CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => $this->config["curl_ssl_verifypeer"], CURLOPT_SSL_VERIFYHOST => $this->config["curl_ssl_verifyhost"], CURLOPT_FOLLOWLOCATION => $this->config["curl_followlocation"], CURLOPT_PROXY => $this->config["curl_proxy"], CURLOPT_ENCODING => $this->config["curl_encoding"], CURLOPT_URL => $this->request_settings["url"], CURLOPT_HEADERFUNCTION => array( $this, "curlHeader" ), CURLOPT_HEADER => false, CURLINFO_HEADER_OUT => true )); 
        if( $this->config["curl_cainfo"] !== false ) 
        { 
            curl_setopt($c, CURLOPT_CAINFO, $this->config["curl_cainfo"]); 
        } 
 
        if( $this->config["curl_capath"] !== false ) 
        { 
            curl_setopt($c, CURLOPT_CAPATH, $this->config["curl_capath"]); 
        } 
 
        if( $this->config["curl_proxyuserpwd"] !== false ) 
        { 
            curl_setopt($c, CURLOPT_PROXYUSERPWD, $this->config["curl_proxyuserpwd"]); 
        } 
 
        if( $this->config["is_streaming"] ) 
        { 
            $this->response["content-length"] = 0; 
            curl_setopt($c, CURLOPT_TIMEOUT, 0); 
            curl_setopt($c, CURLOPT_WRITEFUNCTION, array( $this, "curlWrite" )); 
        } 
 
        if( !empty($this->request_settings["headers"]) ) 
        { 
            foreach( $this->request_settings["headers"] as $k => $v ) 
            { 
                $headers[] = trim($k . ": " . $v); 
            } 
            curl_setopt($c, CURLOPT_HTTPHEADER, $headers); 
        } 
 
        if( isset($this->config["block"]) && true === $this->config["block"] ) 
        { 
            return 0; 
        } 
 
        $response = curl_exec($c); 
        $code = curl_getinfo($c, CURLINFO_HTTP_CODE); 
        $info = curl_getinfo($c); 
        $error = curl_error($c); 
        $errno = curl_errno($c); 
        curl_close($c); 
        $this->response["code"] = $code; 
        $this->response["response"] = $response; 
        $this->response["info"] = $info; 
        $this->response["error"] = $error; 
        $this->response["errno"] = $errno; 
        if( !isset($this->response["raw"]) ) 
        { 
            $this->response["raw"] = ""; 
        } 
 
        $this->response["raw"] .= $response; 
        return $code; 
    } 
 
} 
 
function handleoptions() 
{ 
    global $TSUE; 
    $HTML = ""; 
    if( $TSUE["option"] ) 
    { 
        if( isset($_POST["settings"]) && isset($_POST["save_options"]) ) 
        { 
            $HTML = successmessage(get_phrase("message_saved")); 
            if( isset($_POST["settings"]["website_url"]) && substr($_POST["settings"]["website_url"], -1) == "/" ) 
            { 
                $_POST["settings"]["website_url"] = rtrim($_POST["settings"]["website_url"], "/"); 
            } 
 
            updatesettings("global_settings", array_merge($TSUE["TSUE_Settings"]->settings["global_settings"], $_POST["settings"])); 
            aaaaal(); 
            handlerebuildcaches(false); 
            handleprune(false); 
        } 
        else 
        { 
            $HTML = ""; 
            $aaaaam = ""; 
            switch( $TSUE["option"] ) 
            { 
                case "website_active": 
                    $radioButtons = radioyesno("settings[website_active]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_active"]); 
                    $formContents = aaaaan(get_phrase("dashboard_options_website_active"), $radioButtons, get_phrase("dashboard_options_website_active_alt")); 
                    $textarea = textarea("settings[website_active_reason]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_active_reason"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_website_active_reason"), $textarea, get_phrase("dashboard_options_website_active_reason_alt")); 
                    $radioButtons = radioyesno("settings[tsue_debug_mode]", $TSUE["TSUE_Settings"]->settings["global_settings"]["tsue_debug_mode"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_debug_mode"), $radioButtons, get_phrase("dashboard_options_debug_mode_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_website_active") ); 
                    break; 
                case "basic_website_information": 
                    $inputbox = inputbox("settings[website_url]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]); 
                    $formContents = aaaaan(get_phrase("dashboard_options_website_url"), $inputbox, get_phrase("dashboard_options_website_url_alt")); 
                    $inputbox = inputbox("settings[website_title]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_website_title"), $inputbox, get_phrase("dashboard_options_website_title_alt")); 
                    $inputbox = inputbox("settings[website_description]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_description"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_website_description"), $inputbox, get_phrase("dashboard_options_website_description_alt")); 
                    $inputbox = inputbox("settings[website_email]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_email"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_website_email"), $inputbox, get_phrase("dashboard_options_website_email_alt")); 
                    $inputbox = inputbox("settings[donate_goal]", $TSUE["TSUE_Settings"]->settings["global_settings"]["donate_goal"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_donate_goal"), $inputbox, get_phrase("dashboard_options_donate_goal_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_basic_website_information") ); 
                    break; 
                case "email_options": 
                    $inputbox = inputbox("settings[website_sendmail_from]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_sendmail_from"]); 
                    $formContents = aaaaan(get_phrase("dashboard_options_website_sendmail_from"), $inputbox, get_phrase("dashboard_options_website_sendmail_from_alt")); 
                    $radioButtons = radioyesno("settings[use_f_parameter]", $TSUE["TSUE_Settings"]->settings["global_settings"]["use_f_parameter"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type_use_f_parameter"), $radioButtons, get_phrase("dashboard_options_mail_type_use_f_parameter_alt")); 
                    $radioButtons = radioyesno("settings[mail_type]", $TSUE["TSUE_Settings"]->settings["global_settings"]["mail_type"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type"), $radioButtons, get_phrase("dashboard_options_mail_type_alt")); 
                    $inputbox = inputbox("settings[smtp_host]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_host"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_host_alt")); 
                    $inputbox = inputbox("settings[smtp_port]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_port"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_port"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_port_alt")); 
                    $inputbox = inputbox("settings[smtp_user]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_user"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_user"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_user_alt")); 
                    $inputbox = inputbox("settings[smtp_pass]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_pass"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_pass"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_pass_alt")); 
                    $radioButtons = radioyesno("settings[smtp_secure]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_secure"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_secure"), $radioButtons, get_phrase("dashboard_options_mail_type_smtp_secure_alt")); 
                    $radioButtons = radioyesno("settings[smtp_debug]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_debug"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_debug"), $radioButtons, get_phrase("dashboard_options_mail_type_smtp_debug_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_email_options") ); 
                    break; 
                case "member_registration": 
                    $aaaaao = array( get_phrase("dashboard_options_website_allow_signup_0"), get_phrase("dashboard_options_website_allow_signup_1"), get_phrase("dashboard_options_website_allow_signup_2"), get_phrase("dashboard_options_website_allow_signup_3"), get_phrase("dashboard_options_website_allow_signup_4") ); 
                    $selectbox = selectbox("settings[website_allow_signup]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_allow_signup"], $aaaaao); 
                    $formContents = aaaaan(get_phrase("dashboard_options_website_allow_signup"), $selectbox, get_phrase("dashboard_options_website_allow_signup_alt")); 
                    $aaaaao = array( get_phrase("dashboard_options_website_new_signup_verification_0"), get_phrase("dashboard_options_website_new_signup_verification_1"), get_phrase("dashboard_options_website_new_signup_verification_2") ); 
                    $selectbox = selectbox("settings[website_new_signup_verification]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_new_signup_verification"], $aaaaao); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_website_new_signup_verification"), $selectbox, get_phrase("dashboard_options_website_new_signup_verification_alt")); 
                    $inputbox = inputbox("settings[max_members_limit]", getsetting("global_settings", "max_members_limit", 0), "text"); 
                    $formContents .= aaaaan(get_phrase("max_members_limit"), $inputbox, get_phrase("max_members_limit_alt")); 
                    $inputbox = inputbox("settings[membername_match_regular_expression]", getsetting("global_settings", "membername_match_regular_expression", "^[a-zA-Z0-9]+\$"), "text"); 
                    $formContents .= aaaaan(get_phrase("membername_match_regular_expression"), $inputbox, get_phrase("membername_match_regular_expression_alt")); 
                    $radioButtons = radioyesno("settings[force_member_to_agree_to_the_terms_of_service_and_rules]", getsetting("global_settings", "force_member_to_agree_to_the_terms_of_service_and_rules")); 
                    $formContents .= aaaaan(get_phrase("force_member_to_agree_to_the_terms_of_service_and_rules"), $radioButtons, get_phrase("force_member_to_agree_to_the_terms_of_service_and_rules_alt")); 
                    $textarea = textarea("settings[member_name_illegal_member_names]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_illegal_member_names"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_member_name_illegal_member_names"), $textarea, get_phrase("dashboard_options_member_name_illegal_member_names_alt")); 
                    $inputbox = inputbox("settings[member_name_min_char]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_min_char"], "text texthalf"); 
                    $inputbox .= inputbox("settings[member_name_max_char]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_max_char"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_member_name_length_limit"), $inputbox, get_phrase("dashboard_options_member_name_length_limit_alt")); 
                    $inputbox = inputbox("settings[member_password_min_char]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"], "text"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_member_password_min_char"), $inputbox, get_phrase("dashboard_options_member_password_min_char_alt")); 
                    $aaaaao = fetch_timezones(); 
                    $selectbox = selectbox("settings[d_timezone]", $TSUE["TSUE_Settings"]->settings["global_settings"]["d_timezone"], $aaaaao); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_d_timezone"), $selectbox, get_phrase("dashboard_options_d_timezone_alt")); 
                    $inputbox = inputbox("settings[default_uploaded]", getsetting("global_settings", "default_uploaded"), "text texthalf", "GB"); 
                    $formContents .= aaaaan(get_phrase("stats_uploaded"), $inputbox, get_phrase("default_uploaded_alt")); 
                    $inputbox = inputbox("settings[default_points]", getsetting("global_settings", "default_points"), "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("stats_points"), $inputbox, get_phrase("default_points_alt")); 
                    $inputbox = inputbox("settings[default_invites]", getsetting("global_settings", "default_invites"), "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("stats_total_invites"), $inputbox, get_phrase("default_invites_alt")); 
                    $radioButtons = radioyesno("settings[prevent_multiple_account]", getsetting("global_settings", "prevent_multiple_account")); 
                    $formContents .= aaaaan(get_phrase("prevent_multiple_account_registration"), $radioButtons, get_phrase("prevent_multiple_account_registration_alt")); 
                    $welcome_pm_text = get_phrase("welcome_pm_text", "?action=Appearance&do=Languages&type=editPhrase&languageid=1&text=new_member_welcome_pm_body", "?action=Appearance&do=Languages&type=editPhrase&languageid=1&text=new_member_welcome_pm_subject"); 
                    $radioButtons = radioyesno("settings[send_welcome_pm]", getsetting("global_settings", "send_welcome_pm")); 
                    $formContents .= aaaaan(get_phrase("send_welcome_pm"), $radioButtons, get_phrase("send_welcome_pm_alt") . " " . $welcome_pm_text); 
                    $inputbox = inputbox("settings[send_welcome_pm_owner]", getsetting("global_settings", "send_welcome_pm_owner"), "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("send_welcome_pm_owner"), $inputbox); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_member_registration") ); 
                    break; 
                case "appearance": 
                    $aaaaao = aaaaap(); 
                    $selectbox = selectbox("settings[d_themeid]", $TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"], $aaaaao); 
                    $formContents = aaaaan(get_phrase("dashboard_options_d_themeid"), $selectbox, get_phrase("dashboard_options_d_themeid_alt")); 
                    $aaaaao = aaaaaq(); 
                    $selectbox = selectbox("settings[d_languageid]", $TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"], $aaaaao); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_d_languageid"), $selectbox, get_phrase("dashboard_options_d_languageid_alt")); 
                    $radioButtons = radioyesno("settings[torrent_catz_always_visible]", getsetting("global_settings", "torrent_catz_always_visible")); 
                    $formContents .= aaaaan(get_phrase("torrent_catz_always_visible"), $radioButtons, get_phrase("torrent_catz_always_visible_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_appearance") ); 
                    break; 
                case "cookies": 
                    $inputbox = inputbox("settings[website_timeout]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_timeout"], "text texthalf"); 
                    $formContents = aaaaan(get_phrase("dashboard_options_website_timeout"), $inputbox, get_phrase("dashboard_options_website_timeout_alt")); 
                    $inputbox = inputbox("settings[cookie_path]", $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_path"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_cookie_path"), $inputbox, get_phrase("dashboard_options_cookie_path_alt")); 
                    $inputbox = inputbox("settings[cookie_domain]", $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_domain"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_cookie_domain"), $inputbox, get_phrase("dashboard_options_cookie_domain_alt")); 
                    $inputbox = inputbox("settings[gzip_compression_level]", $TSUE["TSUE_Settings"]->settings["global_settings"]["gzip_compression_level"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_gzip_compression_level"), $inputbox, get_phrase("dashboard_options_gzip_compression_level_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_cookies") ); 
                    break; 
                case "announce": 
                    $inputbox = inputbox("settings[announce_url]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_url"], "text"); 
                    $formContents = aaaaan(get_phrase("dashboard_options_announce_url"), $inputbox, get_phrase("dashboard_options_announce_url_alt")); 
                    $inputbox = inputbox("settings[announce_interval]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_interval"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_announce_interval"), $inputbox, get_phrase("dashboard_options_announce_interval_alt")); 
                    $aaaaao = array( get_phrase("dashboard_options_announce_check_peerid_0"), get_phrase("dashboard_options_announce_check_peerid_1"), get_phrase("dashboard_options_announce_check_peerid_2") ); 
                    $selectbox = selectbox("settings[announce_check_peerid]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_check_peerid"], $aaaaao); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_announce_check_peerid"), $selectbox, get_phrase("dashboard_options_announce_check_peerid_alt")); 
                    $textarea = textarea("settings[announce_check_peerlist]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_check_peerlist"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_announce_check_peerlist"), $textarea, get_phrase("dashboard_options_announce_check_peerlist_alt")); 
                    $radioButtons = radioyesno("settings[announce_check_ip]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_check_ip"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_announce_check_ip"), $radioButtons, get_phrase("dashboard_options_announce_check_ip_alt")); 
                    $radioButtons = radioyesno("settings[announce_private_torrents_only]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_private_torrents_only"]); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_announce_private_torrents_only") . " (" . get_phrase("dashboard_options_announce_private_torrents_only_alt2") . ")", $radioButtons, get_phrase("dashboard_options_announce_private_torrents_only_alt")); 
                    $radioButtons = radioyesno("settings[announce_add_announce_url]", getsetting("global_settings", "announce_add_announce_url")); 
                    $formContents .= aaaaan(get_phrase("announce_add_announce_url"), $radioButtons, get_phrase("announce_add_announce_url_alt")); 
                    $radioButtons = radioyesno("settings[show_announce_url]", getsetting("global_settings", "show_announce_url")); 
                    $formContents .= aaaaan(get_phrase("show_announce_url"), $radioButtons, get_phrase("show_announce_url_alt")); 
                    $radioButtons = radioyesno("settings[announce_check_slots]", getsetting("global_settings", "announce_check_slots")); 
                    $formContents .= aaaaan(get_phrase("announce_check_slots"), $radioButtons, get_phrase("announce_check_slots_alt")); 
                    $radioButtons = radioyesno("settings[announce_bump_inactive_torrents]", getsetting("global_settings", "announce_bump_inactive_torrents")); 
                    $formContents .= aaaaan(get_phrase("bump_inactive_torrents"), $radioButtons, get_phrase("bump_inactive_torrents_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_announce") ); 
                    break; 
                case "ipban": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        if( isset($_POST["removeip"]) ) 
                        { 
                            if( is_array($_POST["removeip"]) ) 
                            { 
                                $ip = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $_POST["removeip"])); 
                                $TSUE["TSUE_Database"]->delete("tsue_ip_match", "ip IN (" . $ip . ") AND match_type = 'banned'"); 
                                $outputMessage = "-UPDATE_HTML-~#bannedIPaddresses~" . successmessage(get_phrase("message_saved")) . getbannedips(); 
                            } 
 
                        } 
                        else 
                        { 
                            $ip = (isset($_POST["ip"]) ? trim($_POST["ip"]) : false); 
                            if( $ip ) 
                            { 
                                $banIp = banip($ip); 
                                if( !is_array($banIp) ) 
                                { 
                                    $HTML = errormessage(get_phrase("dashboard_options_ipban_invalid_ip")); 
                                } 
                                else 
                                { 
                                    $BuildQuery = array( "ip" => $banIp["0"], "first_octet" => $banIp["1"], "start_range" => $banIp["2"], "end_range" => $banIp["3"] ); 
                                    $TSUE["TSUE_Database"]->replace("tsue_ip_match", $BuildQuery); 
                                    $outputMessage = "-UPDATE_HTML-~#bannedIPaddresses~" . successmessage(get_phrase("message_saved")) . getbannedips(); 
                                } 
 
                            } 
 
                        } 
 
                        handlerebuildcaches(false); 
                        aaaaal(); 
                        if( isset($outputMessage) ) 
                        { 
                            _sendheaders($outputMessage); 
                        } 
 
                        exit(); 
                    } 
 
                    $formContents = aaaaan(get_phrase("dashboard_options_ipban_span"), getbannedips(), "", "optionsInOverlay", "dashboard_options_ipban"); 
                    $inputbox = inputbox("ip", "", "text"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_ipban_ip"), $inputbox, get_phrase("dashboard_options_ipban_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_ipban") ); 
                    break; 
                case "emailban": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        if( isset($_POST["removeemail"]) ) 
                        { 
                            if( is_array($_POST["removeemail"]) ) 
                            { 
                                $email = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $_POST["removeemail"])); 
                                $TSUE["TSUE_Database"]->delete("tsue_ban_email", "banned_email IN (" . $email . ")"); 
                                $outputMessage = "-UPDATE_HTML-~#bannedEmailaddresses~" . successmessage(get_phrase("message_saved")) . aaaaar(); 
                            } 
 
                        } 
                        else 
                        { 
                            $email = (isset($_POST["email"]) ? trim($_POST["email"]) : false); 
                            if( $email ) 
                            { 
                                $banEmail = banemail($email); 
                                if( !is_array($banEmail) ) 
                                { 
                                    $HTML = errormessage($banEmail); 
                                } 
                                else 
                                { 
                                    $BuildQuery = array( "banned_email" => $banEmail["0"] ); 
                                    $TSUE["TSUE_Database"]->replace("tsue_ban_email", $BuildQuery); 
                                    $outputMessage = "-UPDATE_HTML-~#bannedEmailaddresses~" . successmessage(get_phrase("message_saved")) . aaaaar(); 
                                } 
 
                            } 
 
                        } 
 
                        handlerebuildcaches(false); 
                        aaaaal(); 
                        if( isset($outputMessage) ) 
                        { 
                            _sendheaders($outputMessage); 
                        } 
 
                        exit(); 
                    } 
 
                    $formContents = aaaaan(get_phrase("dashboard_options_emailban_span"), aaaaar(), "", "optionsInOverlay", "dashboard_options_emailban"); 
                    $inputbox = inputbox("email", "", "text"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_emailban_email"), $inputbox, get_phrase("dashboard_options_emailban_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_emailban") ); 
                    break; 
                case "countryban": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        if( isset($_POST["removecountry"]) ) 
                        { 
                            if( is_array($_POST["removecountry"]) ) 
                            { 
                                $countries = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $_POST["removecountry"])); 
                                $TSUE["TSUE_Database"]->delete("tsue_ban_country", "country IN (" . $countries . ")"); 
                                $outputMessage = "-UPDATE_HTML-~#bannedCountries~" . successmessage(get_phrase("message_saved")) . getbannedcountries(); 
                            } 
 
                        } 
                        else 
                        { 
                            $country = (isset($_POST["country"]) ? trim(strtolower($_POST["country"])) : ""); 
                            $aaaaas = strlen($country); 
                            if( 2 <= $aaaaas ) 
                            { 
                                $BuildQuery = array( "country" => ($aaaaas == 2 ? strtoupper($country) : ucfirst($country)) ); 
                                $TSUE["TSUE_Database"]->replace("tsue_ban_country", $BuildQuery); 
                                $outputMessage = "-UPDATE_HTML-~#bannedCountries~" . successmessage(get_phrase("message_saved")) . getbannedcountries(); 
                            } 
 
                        } 
 
                        handlerebuildcaches(false); 
                        aaaaal(); 
                        if( isset($outputMessage) ) 
                        { 
                            _sendheaders($outputMessage); 
                        } 
 
                        exit(); 
                    } 
 
                    $formContents = "<h2>This feature uses <a href=\"http://www.maxmind.com/app/javascript\" target=\"_blank\">GeoIP from MaxMind</a>.</h2>"; 
                    $formContents .= aaaaan(get_phrase("dashboard_options_countryban_span"), getbannedcountries(), "", "optionsInOverlay", "dashboard_options_countryban"); 
                    $inputbox = inputbox("country", "", "text"); 
                    $formContents .= aaaaan(get_phrase("country_to_ban"), $inputbox, get_phrase("country_to_ban_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_countryban") ); 
                    break; 
                case "censoring": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $words = $_POST["options"]["censorWords"]; 
                        aaaaat($words); 
                        updatesettings("censor_cache", array( "censoring_censor_character" => trim($_POST["censoring_censor_character"]), "censorWords" => $words )); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = "-UPDATE_HTML-~#buildCensoringHTML~" . successmessage(get_phrase("message_saved")) . aaaaau(); 
                        aaaaal(); 
                        if( isset($outputMessage) ) 
                        { 
                            _sendheaders($outputMessage); 
                        } 
 
                        exit(); 
                    } 
 
                    $formContents = aaaaau(); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_censoring") ); 
                    break; 
                case "seo": 
                    $radioButtons = radioyesno("settings[social_media_buttons]", $TSUE["TSUE_Settings"]->settings["global_settings"]["social_media_buttons"]); 
                    $formContents = aaaaan(get_phrase("dashboard_options_seo_enable_social_media"), $radioButtons, get_phrase("dashboard_options_seo_enable_social_media_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_seo") ); 
                    break; 
                case "limitations": 
                    $inputbox = inputbox("settings[reseed_request_flood_limit]", $TSUE["TSUE_Settings"]->settings["global_settings"]["reseed_request_flood_limit"], "text"); 
                    $formContents = aaaaan(get_phrase("dashboard_options_limitations_reseed_request_flood_limit"), $inputbox, get_phrase("dashboard_options_limitations_reseed_request_flood_limit_alt")); 
                    $inputbox = inputbox("settings[website_torrents_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_torrents_perpage"], "text"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_torrents_perpage"), $inputbox, get_phrase("dashboard_options_limitations_torrents_perpage_alt")); 
                    $inputbox = inputbox("settings[website_rss_perpage]", getsetting("global_settings", "website_rss_perpage", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_torrents_perpage"]), "text"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_rss_perpage"), $inputbox, get_phrase("dashboard_options_limitations_rss_perpage_alt")); 
                    $inputbox = inputbox("settings[website_comments_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_comments_perpage"], "text"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_comments_perpage"), $inputbox, get_phrase("dashboard_options_limitations_comments_perpage_alt")); 
                    $inputbox = inputbox("settings[website_messages_perpage]", getsetting("global_settings", "website_messages_perpage", 15), "text"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_messages_perpage"), $inputbox, get_phrase("dashboard_options_limitations_messages_perpage_alt")); 
                    $inputbox = inputbox("settings[website_members_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_members_perpage"], "text"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_members_perpage"), $inputbox, get_phrase("dashboard_options_limitations_members_perpage_alt")); 
                    $inputbox = inputbox("settings[forums_threads_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_threads_perpage"], "text"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_threads_perpage"), $inputbox, get_phrase("dashboard_options_limitations_threads_perpage_alt")); 
                    $inputbox = inputbox("settings[forums_posts_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_posts_perpage"], "text"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_posts_perpage"), $inputbox, get_phrase("dashboard_options_limitations_posts_perpage_alt")); 
                    $inputbox = inputbox("settings[subtitles_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_perpage"], "text"); 
                    $formContents .= aaaaan(get_phrase("subtitles_perpage"), $inputbox, get_phrase("subtitles_perpage_alt")); 
                    $inputbox = inputbox("settings[requests_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["requests_perpage"], "text"); 
                    $formContents .= aaaaan(get_phrase("requests_per_page"), $inputbox, get_phrase("requests_per_page_alt")); 
                    $inputbox = inputbox("settings[comment_post_min_char_length]", $TSUE["TSUE_Settings"]->settings["global_settings"]["comment_post_min_char_length"], "text texthalf"); 
                    $inputbox .= inputbox("settings[comment_post_max_char_length]", $TSUE["TSUE_Settings"]->settings["global_settings"]["comment_post_max_char_length"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_comments_length_limit"), $inputbox, get_phrase("dashboard_options_limitations_comments_length_limit_alt")); 
                    $inputbox = inputbox("settings[forums_max_thread_title_limit]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_max_thread_title_limit"], "text"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_threads_max_title_limit"), $inputbox, get_phrase("dashboard_options_limitations_threads_max_title_limit_alt")); 
                    $inputbox = inputbox("settings[forums_min_post_length]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_min_post_length"], "text"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_posts_min_limit"), $inputbox, get_phrase("dashboard_options_limitations_posts_min_limit_alt")); 
                    $inputbox = inputbox("settings[website_resize_images_max_width]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_resize_images_max_width"], "text texthalf"); 
                    $inputbox .= inputbox("settings[website_resize_images_max_height]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_resize_images_max_height"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_scale_images"), $inputbox, get_phrase("dashboard_options_limitations_scale_images_alt")); 
                    $inputbox = inputbox("settings[allowed_file_types]", $TSUE["TSUE_Settings"]->settings["global_settings"]["allowed_file_types"], "text"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_allowed_file_types"), $inputbox, get_phrase("dashboard_options_limitations_allowed_file_types_alt")); 
                    $inputbox = inputbox("settings[max_file_size]", $TSUE["TSUE_Settings"]->settings["global_settings"]["max_file_size"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_max_file_size"), $inputbox . " " . friendly_size($TSUE["TSUE_Settings"]->settings["global_settings"]["max_file_size"]), get_phrase("dashboard_options_limitations_max_file_size_alt")); 
                    $inputbox = inputbox("settings[torrent_category_row_limit]", getsetting("global_settings", "torrent_category_row_limit", 3), "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("torrent_categories_row_limit"), $inputbox, get_phrase("torrent_categories_row_limit_alt")); 
                    $inputbox = inputbox("settings[request_torrent_chars_limit]", getsetting("global_settings", "request_torrent_chars_limit", 255), "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("request_torrent_chars_limit"), $inputbox, get_phrase("request_torrent_chars_limit_alt")); 
                    $inputbox = inputbox("settings[upcoming_releases_perpage]", getsetting("global_settings", "upcoming_releases_perpage", 10), "text"); 
                    $formContents .= aaaaan(get_phrase("upcoming_releases_perpage"), $inputbox, get_phrase("upcoming_releases_perpage_alt")); 
                    $inputbox = inputbox("settings[upcoming_releases_chars_limit]", getsetting("global_settings", "upcoming_releases_chars_limit", 255), "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("upcoming_releases_chars_limit"), $inputbox, get_phrase("upcoming_releases_chars_limit_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_limitations") ); 
                    break; 
                case "member_alerts": 
                    $inputbox = inputbox("settings[alerts_popup_expiry_hours]", $TSUE["TSUE_Settings"]->settings["global_settings"]["alerts_popup_expiry_hours"], "text"); 
                    $formContents = aaaaan(get_phrase("dashboard_options_member_alerts_expirity_hours"), $inputbox, get_phrase("dashboard_options_member_alerts_expirity_hours_alt")); 
                    $inputbox = inputbox("settings[alerts_popup_expiry_days]", $TSUE["TSUE_Settings"]->settings["global_settings"]["alerts_popup_expiry_days"], "text"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_member_alerts_expirity_days"), $inputbox, get_phrase("dashboard_options_member_alerts_expirity_days_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_member_alerts") ); 
                    break; 
                case "cleanup": 
                    $inputbox = inputbox("settings[peers_prune_in_day]", $TSUE["TSUE_Settings"]->settings["global_settings"]["peers_prune_in_day"], "text"); 
                    $formContents = aaaaan(get_phrase("dashboard_options_cleanup_prune_snatch_list"), $inputbox, get_phrase("dashboard_options_cleanup_prune_snatch_list_alt") . " " . get_phrase("leave_empty_to_skip_this")); 
                    $inputbox = inputbox("settings[shouts_prune_in_day]", $TSUE["TSUE_Settings"]->settings["global_settings"]["shouts_prune_in_day"], "text"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_cleanup_prune_shouts"), $inputbox, get_phrase("dashboard_options_cleanup_prune_shouts_alt") . " " . get_phrase("leave_empty_to_skip_this")); 
                    $inputbox = inputbox("settings[days_retain_posted_request]", getsetting("global_settings", "days_retain_posted_request"), "text"); 
                    $formContents .= aaaaan(get_phrase("days_retain_posted_request"), $inputbox, get_phrase("days_retain_posted_request_alt") . " " . get_phrase("leave_empty_to_skip_this")); 
                    $inputbox = inputbox("settings[days_retain_dead_torrents]", getsetting("global_settings", "days_retain_dead_torrents"), "text"); 
                    $formContents .= aaaaan(get_phrase("days_retain_dead_torrents"), $inputbox, get_phrase("days_retain_dead_torrents_alt") . " " . get_phrase("leave_empty_to_skip_this")); 
                    $inputbox = inputbox("settings[days_retain_unused_invites]", getsetting("global_settings", "days_retain_unused_invites"), "text"); 
                    $formContents .= aaaaan(get_phrase("days_retain_unused_invites"), $inputbox, get_phrase("days_retain_unused_invites_alt") . " " . get_phrase("leave_empty_to_skip_this")); 
                    $inputbox = inputbox("settings[days_retain_posted_upcoming_releases]", getsetting("global_settings", "days_retain_posted_upcoming_releases", 5), "text"); 
                    $formContents .= aaaaan(get_phrase("days_retain_posted_upcoming_releases"), $inputbox, get_phrase("days_retain_posted_upcoming_releases_alt") . " " . get_phrase("leave_empty_to_skip_this")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_cleanup") ); 
                    break; 
                case "points": 
                    $inputbox = inputbox("settings[points_seed]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_seed"], "text texthalf"); 
                    $formContents = aaaaan(get_phrase("dashboard_options_points_seed"), $inputbox, get_phrase("dashboard_options_points_seed_alt")); 
                    $inputbox = inputbox("settings[points_seed_al]", intval(getsetting("global_settings", "points_seed_al", 0)), "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("points_seed_al"), $inputbox, get_phrase("points_seed_al_alt") . " " . get_phrase("leave_empty_to_skip_this")); 
                    $inputbox = inputbox("settings[points_seed_min_gb]", getsetting("global_settings", "points_seed_min_gb", 0), "text texthalf", "GB"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_seed_min_gb"), $inputbox, get_phrase("dashboard_options_points_seed_min_gb_alt") . " " . get_phrase("leave_empty_to_skip_this")); 
                    $inputbox = inputbox("settings[points_x2_for_big_torrents]", getsetting("global_settings", "points_x2_for_big_torrents", 0), "text texthalf", "GB"); 
                    $formContents .= aaaaan(get_phrase("x2_for_big_torrents"), $inputbox, get_phrase("x2_for_big_torrents_alt") . " " . get_phrase("leave_empty_to_skip_this")); 
                    $inputbox = inputbox("settings[points_torrent_upload]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_torrent_upload"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_torrent_upload"), $inputbox, get_phrase("dashboard_options_points_torrent_upload_alt")); 
                    $inputbox = inputbox("settings[points_post_comment]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_post_comment"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_post_comment"), $inputbox, get_phrase("dashboard_options_points_post_comment_alt")); 
                    $inputbox = inputbox("settings[points_new_thread]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_thread"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_new_thread"), $inputbox, get_phrase("dashboard_options_points_new_thread_alt")); 
                    $inputbox = inputbox("settings[points_new_replies]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_replies"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_new_replies"), $inputbox, get_phrase("dashboard_options_points_new_replies_alt")); 
                    $aaaaao = array( 1 => get_phrase("points_likes_type_1"), 2 => get_phrase("points_likes_type_2"), 3 => get_phrase("points_likes_type_3") ); 
                    $selectbox = selectbox("settings[points_likes_type]", getsetting("global_settings", "points_likes_type", 2), $aaaaao, "selectNoWidth"); 
                    $inputbox = inputbox("settings[points_likes]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_likes"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_likes"), $inputbox, get_phrase("dashboard_options_points_likes_alt"), "optionsInOverlay", "", "", "", $selectbox); 
                    $inputbox = inputbox("settings[points_poll]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_poll"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_poll"), $inputbox, get_phrase("dashboard_options_points_poll_alt")); 
                    $inputbox = inputbox("settings[points_fill_request]", getsetting("global_settings", "points_fill_request", 0), "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_fill_request"), $inputbox, get_phrase("dashboard_options_points_fill_request_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_points") ); 
                    break; 
                case "subtitles": 
                    $inputbox = inputbox("settings[subtitles_allowed_file_types]", $TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_allowed_file_types"], "text texthalf"); 
                    $formContents = aaaaan(get_phrase("dashboard_options_subtitles_allowed_file_types"), $inputbox, get_phrase("dashboard_options_subtitles_allowed_file_types_alt")); 
                    $inputbox = inputbox("settings[subtitles_max_file_size]", $TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_max_file_size"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("subtitles_max_file_size"), $inputbox . " " . friendly_size($TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_max_file_size"]), get_phrase("subtitles_max_file_size_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_subtitles") ); 
                    break; 
                case "security": 
                    $radioButtons = radioyesno("settings[website_use_strike_system]", getsetting("global_settings", "website_use_strike_system", 0)); 
                    $formContents = aaaaan(get_phrase("dashboard_options_limitations_use_strike_system"), $radioButtons, get_phrase("dashboard_options_limitations_use_strike_system_alt")); 
                    $inputbox = inputbox("settings[limit_of_login_strikes]", getsetting("global_settings", "limit_of_login_strikes", 5), "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("limit_of_login_strikes"), $inputbox, get_phrase("limit_of_login_strikes_alt")); 
                    $radioButtons = radioyesno("settings[security_enable_captcha]", getsetting("global_settings", "security_enable_captcha", 0)); 
                    $formContents .= aaaaan(get_phrase("security_enable_captcha"), $radioButtons, get_phrase("security_enable_captcha_alt")); 
                    $inputbox = inputbox("settings[admincp_session_timeout]", getsetting("global_settings", "admincp_session_timeout", 5), "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("admincp_session_timeout"), $inputbox, get_phrase("admincp_session_timeout_alt")); 
                    $radioButtons = radioyesno("settings[security_ip_history]", getsetting("global_settings", "security_ip_history", 0)); 
                    $formContents .= aaaaan(get_phrase("security_ip_history"), $radioButtons, get_phrase("security_ip_history_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_security") ); 
                    break; 
                case "hitrun": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $hitrun_settings["active"] = (isset($_POST["HITRUN"]["active"]) && $_POST["HITRUN"]["active"] == 1 ? 1 : 0); 
                        $hitrun_settings["dayTolerance"] = (isset($_POST["HITRUN"]["dayTolerance"]) && $_POST["HITRUN"]["dayTolerance"] ? intval($_POST["HITRUN"]["dayTolerance"]) : 0); 
                        $hitrun_settings["maxWarns"] = (isset($_POST["HITRUN"]["maxWarns"]) && $_POST["HITRUN"]["maxWarns"] ? intval($_POST["HITRUN"]["maxWarns"]) : 0); 
                        $hitrun_settings["defaultRatio"] = (isset($_POST["HITRUN"]["defaultRatio"]) && $_POST["HITRUN"]["defaultRatio"] ? 0 + $_POST["HITRUN"]["defaultRatio"] : 0); 
                        $hitrun_settings["skipMembergroups"] = (isset($_POST["HITRUN"]["skipMembergroups"]) && is_array($_POST["HITRUN"]["skipMembergroups"]) && 0 < count($_POST["HITRUN"]["skipMembergroups"]) ? implode(",", array_map("intval", $_POST["HITRUN"]["skipMembergroups"])) : ""); 
                        $hitrun_settings["announceLimit"] = (isset($_POST["HITRUN"]["announceLimit"]) && $_POST["HITRUN"]["announceLimit"] ? intval($_POST["HITRUN"]["announceLimit"]) : 0); 
                        updatesettings("hitrun_settings", $hitrun_settings); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $formContents = "
					<div style=\"margin-bottom: 5px; font-size: 13px;\" class=\"checkHitRunOptions\">" . get_phrase("check_hitrun_options") . "</div>"; 
                    $radioButtons = radioyesno("HITRUN[active]", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["active"]); 
                    $formContents .= aaaaan(get_phrase("hitrun_active"), $radioButtons, get_phrase("hitrun_active_alt")); 
                    $inputbox = inputbox("HITRUN[dayTolerance]", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["dayTolerance"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("hitrun_daytolerance"), $inputbox, get_phrase("hitrun_daytolerance_alt")); 
                    $announceInterval = (getsetting("xbt", "active") ? getsetting("xbt", "announce_interval") : getsetting("global_settings", "announce_interval")); 
                    $aaaaav = getsetting("hitrun_settings", "announceLimit"); 
                    $totalSeconds = $announceInterval * $aaaaav; 
                    $secondsToHours = secondstohours($totalSeconds); 
                    $inputbox = inputbox("HITRUN[announceLimit]", getsetting("hitrun_settings", "announceLimit"), "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("hitrun_announcelimit"), $inputbox, get_phrase("hitrun_announcelimit_alt") . "<br>" . get_phrase("hitrun_announcelimit_alt2", $announceInterval, $aaaaav, $totalSeconds, $secondsToHours)); 
                    $inputbox = inputbox("HITRUN[maxWarns]", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["maxWarns"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("max_hitruns"), $inputbox, get_phrase("max_hitruns_alt")); 
                    $inputbox = inputbox("HITRUN[defaultRatio]", getsetting("hitrun_settings", "defaultRatio", 0), "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("default_hitrun_ratio"), $inputbox, get_phrase("default_hitrun_ratio_alt")); 
                    $Usergroups = aaaaaw("HITRUN[skipMembergroups][]", ($TSUE["TSUE_Settings"]->settings["hitrun_settings"]["skipMembergroups"] ? tsue_explode(",", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["skipMembergroups"]) : array(  ))); 
                    $formContents .= aaaaan(get_phrase("hitrun_skip_membergroups"), $Usergroups, get_phrase("hitrun_skip_membergroups_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_hitrun") ); 
                    break; 
                case "auto_uploader": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $auto_uploader["active"] = (isset($_POST["AUTOUPLOADER"]["active"]) && $_POST["AUTOUPLOADER"]["active"] == 1 ? 1 : 0); 
                        $auto_uploader["category"] = (isset($_POST["AUTOUPLOADER"]["category"]) ? intval($_POST["AUTOUPLOADER"]["category"]) : 0); 
                        $auto_uploader["path"] = (isset($_POST["AUTOUPLOADER"]["path"]) ? $_POST["AUTOUPLOADER"]["path"] : ""); 
                        $auto_uploader["owner"] = (isset($_POST["AUTOUPLOADER"]["owner"]) ? $_POST["AUTOUPLOADER"]["owner"] : ""); 
                        $auto_uploader["description"] = (isset($_POST["AUTOUPLOADER"]["description"]) ? $_POST["AUTOUPLOADER"]["description"] : ""); 
                        if( $auto_uploader["owner"] ) 
                        { 
                            $getMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($auto_uploader["owner"])); 
                            if( $getMember ) 
                            { 
                                $auto_uploader["owner"] = $getMember["memberid"]; 
                            } 
                            else 
                            { 
                                $auto_uploader["owner"] = ""; 
                            } 
 
                        } 
 
                        updatesettings("auto_uploader", $auto_uploader); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $formContents = "<h2>" . get_phrase("import_torrents", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/auto_uploader.php") . "</h2>"; 
                    $radioButtons = radioyesno("AUTOUPLOADER[active]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["active"]); 
                    $formContents .= aaaaan(get_phrase("auto_uploader_active"), $radioButtons, get_phrase("auto_uploader_active_alt")); 
                    $Categories = aaaaax("AUTOUPLOADER[category]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["category"]); 
                    $formContents .= aaaaan(get_phrase("auto_uploader_category"), $Categories, get_phrase("auto_uploader_category_alt")); 
                    $inputbox = inputbox("AUTOUPLOADER[path]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["path"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("auto_uploader_path"), $inputbox, get_phrase("auto_uploader_path_alt")); 
                    if( $TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"] ) 
                    { 
                        $getMember = $TSUE["TSUE_Database"]->query_result("SELECT membername FROM tsue_members WHERE memberid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"])); 
                        if( $getMember ) 
                        { 
                            $TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"] = $getMember["membername"]; 
                        } 
                        else 
                        { 
                            $TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"] = ""; 
                        } 
 
                    } 
 
                    $inputbox = inputbox("AUTOUPLOADER[owner]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"], "text texthalf", NULL, false, true); 
                    $formContents .= aaaaan(get_phrase("auto_uploader_owner"), $inputbox, get_phrase("auto_uploader_owner_alt")); 
                    $textarea = aaaaay("AUTOUPLOADER[description]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["description"], true); 
                    $formContents .= aaaaan(get_phrase("auto_uploader_description"), $textarea, get_phrase("auto_uploader_description_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("auto_uploader") ); 
                    break; 
                case "downloads": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $downloads["online"] = (isset($_POST["DOWNLOADS"]["online"]) && $_POST["DOWNLOADS"]["online"] == 1 ? 1 : 0); 
                        $downloads["offline_message"] = (isset($_POST["DOWNLOADS"]["offline_message"]) ? $_POST["DOWNLOADS"]["offline_message"] : ""); 
                        $downloads["offline_access"] = (isset($_POST["DOWNLOADS"]["offline_access"]) && is_array($_POST["DOWNLOADS"]["offline_access"]) && 0 < count($_POST["DOWNLOADS"]["offline_access"]) ? implode(",", array_map("intval", $_POST["DOWNLOADS"]["offline_access"])) : ""); 
                        $downloads["max_filesize"] = (isset($_POST["DOWNLOADS"]["max_filesize"]) ? 0 + $_POST["DOWNLOADS"]["max_filesize"] : 0); 
                        $downloads["allowed_file_types"] = (isset($_POST["DOWNLOADS"]["allowed_file_types"]) ? trim($_POST["DOWNLOADS"]["allowed_file_types"]) : ""); 
                        $downloads["files_perpage"] = (isset($_POST["DOWNLOADS"]["files_perpage"]) ? 0 + $_POST["DOWNLOADS"]["files_perpage"] : 0); 
                        updatesettings("downloads", $downloads); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $radioButtons = radioyesno("DOWNLOADS[online]", $TSUE["TSUE_Settings"]->settings["downloads"]["online"]); 
                    $formContents = aaaaan(get_phrase("dm_online"), $radioButtons, ""); 
                    $textarea = textarea("DOWNLOADS[offline_message]", $TSUE["TSUE_Settings"]->settings["downloads"]["offline_message"]); 
                    $formContents .= aaaaan(get_phrase("dm_offline_message"), $textarea, get_phrase("dm_offline_message_alt")); 
                    $Usergroups = aaaaaw("DOWNLOADS[offline_access][]", ($TSUE["TSUE_Settings"]->settings["downloads"]["offline_access"] ? tsue_explode(",", $TSUE["TSUE_Settings"]->settings["downloads"]["offline_access"]) : array(  ))); 
                    $formContents .= aaaaan(get_phrase("offline_access"), $Usergroups, get_phrase("offline_access_alt")); 
                    $inputbox = inputbox("DOWNLOADS[max_filesize]", $TSUE["TSUE_Settings"]->settings["downloads"]["max_filesize"], "text texthalf", friendly_size($TSUE["TSUE_Settings"]->settings["downloads"]["max_filesize"]), false, false, get_phrase("set_to_0_for_no_limit")); 
                    $formContents .= aaaaan(get_phrase("dm_max_filesize"), $inputbox, ""); 
                    $inputbox = inputbox("DOWNLOADS[allowed_file_types]", $TSUE["TSUE_Settings"]->settings["downloads"]["allowed_file_types"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_allowed_file_types"), $inputbox, ""); 
                    $inputbox = inputbox("DOWNLOADS[files_perpage]", $TSUE["TSUE_Settings"]->settings["downloads"]["files_perpage"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("limitations_files_perpage"), $inputbox, ""); 
                    $aaaaam = array( "option_name" => get_phrase("dm_title") ); 
                    break; 
                case "ircbot": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $ircbot["active"] = (isset($_POST["ircbot"]["active"]) && $_POST["ircbot"]["active"] == 1 ? 1 : 0); 
                        $ircbot["ircServer"] = (isset($_POST["ircbot"]["ircServer"]) ? $_POST["ircbot"]["ircServer"] : ""); 
                        $ircbot["ircPort"] = (isset($_POST["ircbot"]["ircPort"]) ? $_POST["ircbot"]["ircPort"] : ""); 
                        $ircbot["ircChannel"] = (isset($_POST["ircbot"]["ircChannel"]) ? $_POST["ircbot"]["ircChannel"] : ""); 
                        $ircbot["ircNick"] = (isset($_POST["ircbot"]["ircNick"]) ? $_POST["ircbot"]["ircNick"] : ""); 
                        $ircbot["ircPass"] = (isset($_POST["ircbot"]["ircPass"]) ? $_POST["ircbot"]["ircPass"] : ""); 
                        updatesettings("ircbot", $ircbot); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $radioButtons = radioyesno("ircbot[active]", $TSUE["TSUE_Settings"]->settings["ircbot"]["active"]); 
                    $formContents = aaaaan(get_phrase("ircbot_active"), $radioButtons, "", "optionsInOverlay", "", "<a href=\"?action=irc-debug\" target=\"blank\">" . get_phrase("dashboard_options_debug_mode") . "</a>"); 
                    $inputbox = inputbox("ircbot[ircServer]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"]); 
                    $formContents .= aaaaan(get_phrase("ircbot_ircserver"), $inputbox, ""); 
                    $inputbox = inputbox("ircbot[ircPort]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPort"]); 
                    $formContents .= aaaaan(get_phrase("ircbot_ircserverport"), $inputbox, ""); 
                    $inputbox = inputbox("ircbot[ircChannel]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"]); 
                    $formContents .= aaaaan(get_phrase("ircbot_ircchannel"), $inputbox, ""); 
                    $inputbox = inputbox("ircbot[ircNick]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircNick"]); 
                    $formContents .= aaaaan(get_phrase("ircbot_ircNick"), $inputbox, ""); 
                    $inputbox = inputbox("ircbot[ircPass]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPass"], "text", get_phrase("irc_bot_pass_tip")); 
                    $formContents .= aaaaan(get_phrase("ircbot_ircPass"), $inputbox, ""); 
                    $aaaaam = array( "option_name" => get_phrase("ircbot") ); 
                    break; 
                case "xbt": 
                    $deny_from_clients = ""; 
                    $aaaaaz = $TSUE["TSUE_Database"]->query("SELECT peer_id FROM xbt_deny_from_clients"); 
                    if( $TSUE["TSUE_Database"]->num_rows($aaaaaz) ) 
                    { 
                        while( $aaaaba = $TSUE["TSUE_Database"]->fetch_assoc($aaaaaz) ) 
                        { 
                            $deny_from_clients .= $aaaaba["peer_id"] . "
"; 
                        } 
                    } 
 
                    $deny_from_hosts = ""; 
                    $aaaabb = $TSUE["TSUE_Database"]->query("SELECT begin FROM xbt_deny_from_hosts"); 
                    if( $TSUE["TSUE_Database"]->num_rows($aaaabb) ) 
                    { 
                        while( $Ip = $TSUE["TSUE_Database"]->fetch_assoc($aaaabb) ) 
                        { 
                            $deny_from_hosts .= trim(long2ip($Ip["begin"])) . "
"; 
                        } 
                    } 
 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $xbt["active"] = (isset($_POST["xbt"]["active"]) && $_POST["xbt"]["active"] == 1 ? 1 : 0); 
                        $xbt["debug"] = (isset($_POST["xbt"]["debug"]) && $_POST["xbt"]["debug"] == 1 ? 1 : 0); 
                        $xbt["announce_url"] = (isset($_POST["xbt"]["announce_url"]) ? $_POST["xbt"]["announce_url"] : ""); 
                        $xbt["announce_interval"] = (isset($_POST["xbt"]["announce_interval"]) ? 0 + $_POST["xbt"]["announce_interval"] : ""); 
                        $xbt["offline_message"] = (isset($_POST["xbt"]["offline_message"]) ? $_POST["xbt"]["offline_message"] : ""); 
                        $xbt["redirect_url"] = (isset($_POST["xbt"]["redirect_url"]) ? $_POST["xbt"]["redirect_url"] : ""); 
                        $buildQuery = array( "debug" => $xbt["debug"], "offline_message" => $xbt["offline_message"], "redirect_url" => $xbt["redirect_url"], "announce_interval" => $xbt["announce_interval"] ); 
                        foreach( $buildQuery as $_name => $_value ) 
                        { 
                            $TSUE["TSUE_Database"]->update("xbt_config", array( "value" => trim($_value) ), "name=" . $TSUE["TSUE_Database"]->escape($_name)); 
                        } 
                        $TSUE["TSUE_Database"]->delete("xbt_deny_from_clients"); 
                        if( isset($_POST["xbt"]["deny_from_clients"]) && $_POST["xbt"]["deny_from_clients"] ) 
                        { 
                            $deny_from_clients = preg_split("/\r?\n/", $_POST["xbt"]["deny_from_clients"], -1, PREG_SPLIT_NO_EMPTY); 
                            if( $deny_from_clients ) 
                            { 
                                foreach( $deny_from_clients as $peer_id ) 
                                { 
                                    $TSUE["TSUE_Database"]->replace("xbt_deny_from_clients", array( "peer_id" => $peer_id )); 
                                } 
                            } 
 
                        } 
 
                        $TSUE["TSUE_Database"]->delete("xbt_deny_from_hosts"); 
                        if( isset($_POST["xbt"]["deny_from_hosts"]) && $_POST["xbt"]["deny_from_hosts"] ) 
                        { 
                            $deny_from_hosts = preg_split("/\r?\n/", $_POST["xbt"]["deny_from_hosts"], -1, PREG_SPLIT_NO_EMPTY); 
                            if( $deny_from_hosts ) 
                            { 
                                foreach( $deny_from_hosts as $ip ) 
                                { 
                                    $ip = trim(ip2long($ip)); 
                                    $TSUE["TSUE_Database"]->replace("xbt_deny_from_hosts", array( "begin" => $ip, "end" => $ip )); 
                                } 
                            } 
 
                        } 
 
                        updatesettings("xbt", $xbt); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $radioButtons = radioyesno("xbt[active]", getsetting("xbt", "active")); 
                    $formContents = aaaaan(get_phrase("xbt_active"), $radioButtons, ""); 
                    $radioButtons = radioyesno("xbt[debug]", getsetting("xbt", "debug")); 
                    $formContents .= aaaaan(get_phrase("xbt_debug"), $radioButtons, get_phrase("xbt_debug_alt")); 
                    $inputbox = inputbox("xbt[announce_url]", getsetting("xbt", "announce_url")); 
                    $formContents .= aaaaan(get_phrase("xbt_announce_url"), $inputbox, "http://tracker:port"); 
                    $inputbox = inputbox("xbt[announce_interval]", getsetting("xbt", "announce_interval")); 
                    $formContents .= aaaaan(get_phrase("xbt_announce_interval"), $inputbox, get_phrase("xbt_announce_interval_alt")); 
                    $inputbox = inputbox("xbt[offline_message]", getsetting("xbt", "offline_message")); 
                    $formContents .= aaaaan(get_phrase("xbt_offline_message"), $inputbox, get_phrase("xbt_offline_message_alt")); 
                    $inputbox = inputbox("xbt[redirect_url]", getsetting("xbt", "redirect_url")); 
                    $formContents .= aaaaan(get_phrase("xbt_redirect_url"), $inputbox, get_phrase("xbt_redirect_url_alt")); 
                    $textarea = textarea("xbt[deny_from_clients]", $deny_from_clients); 
                    $formContents .= aaaaan(get_phrase("xbt_deny_from_clients"), $textarea, get_phrase("xbt_deny_from_clients_alt")); 
                    $textarea = textarea("xbt[deny_from_hosts]", $deny_from_hosts); 
                    $formContents .= aaaaan(get_phrase("xbt_deny_from_hosts"), $textarea, get_phrase("xbt_deny_from_hosts_alt")); 
                    $aaaaam = array( "option_name" => "xbt" ); 
                    break; 
                case "gallery": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $gallery["online"] = (isset($_POST["GALLERY"]["online"]) && $_POST["GALLERY"]["online"] == 1 ? 1 : 0); 
                        $gallery["offline_message"] = (isset($_POST["GALLERY"]["offline_message"]) ? $_POST["GALLERY"]["offline_message"] : ""); 
                        $gallery["offline_access"] = (isset($_POST["GALLERY"]["offline_access"]) && is_array($_POST["GALLERY"]["offline_access"]) && 0 < count($_POST["GALLERY"]["offline_access"]) ? implode(",", array_map("intval", $_POST["GALLERY"]["offline_access"])) : ""); 
                        $gallery["max_filesize"] = (isset($_POST["GALLERY"]["max_filesize"]) ? 0 + $_POST["GALLERY"]["max_filesize"] : 0); 
                        $gallery["allowed_file_types"] = (isset($_POST["GALLERY"]["allowed_file_types"]) ? trim($_POST["GALLERY"]["allowed_file_types"]) : ""); 
                        $gallery["files_perpage"] = (isset($_POST["GALLERY"]["files_perpage"]) ? 0 + $_POST["GALLERY"]["files_perpage"] : 0); 
                        updatesettings("gallery", $gallery); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $radioButtons = radioyesno("GALLERY[online]", $TSUE["TSUE_Settings"]->settings["gallery"]["online"]); 
                    $formContents = aaaaan(get_phrase("image_gallery_online"), $radioButtons, ""); 
                    $textarea = textarea("GALLERY[offline_message]", $TSUE["TSUE_Settings"]->settings["gallery"]["offline_message"]); 
                    $formContents .= aaaaan(get_phrase("dm_offline_message"), $textarea, get_phrase("image_gallery_offline_alt")); 
                    $Usergroups = aaaaaw("GALLERY[offline_access][]", ($TSUE["TSUE_Settings"]->settings["gallery"]["offline_access"] ? tsue_explode(",", $TSUE["TSUE_Settings"]->settings["gallery"]["offline_access"]) : array(  ))); 
                    $formContents .= aaaaan(get_phrase("offline_access"), $Usergroups, get_phrase("image_gallery_offline_access_alt")); 
                    $inputbox = inputbox("GALLERY[max_filesize]", $TSUE["TSUE_Settings"]->settings["gallery"]["max_filesize"], "text texthalf", friendly_size($TSUE["TSUE_Settings"]->settings["gallery"]["max_filesize"]), false, false, get_phrase("set_to_0_for_no_limit")); 
                    $formContents .= aaaaan(get_phrase("dm_max_filesize"), $inputbox, ""); 
                    $inputbox = inputbox("GALLERY[allowed_file_types]", $TSUE["TSUE_Settings"]->settings["gallery"]["allowed_file_types"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_allowed_file_types"), $inputbox, ""); 
                    $inputbox = inputbox("GALLERY[files_perpage]", $TSUE["TSUE_Settings"]->settings["gallery"]["files_perpage"], "text texthalf"); 
                    $formContents .= aaaaan(get_phrase("limitations_gallery_images_perpage"), $inputbox, ""); 
                    $aaaaam = array( "option_name" => get_phrase("image_gallery") ); 
                    break; 
                case "auto_warning": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $auto_warning["active"] = (isset($_POST["auto_warning"]["active"]) && $_POST["auto_warning"]["active"] == 1 ? 1 : 0); 
                        $auto_warning["min_ratio"] = (isset($_POST["auto_warning"]["min_ratio"]) && $_POST["auto_warning"]["min_ratio"] ? trim($_POST["auto_warning"]["min_ratio"]) : 0); 
                        $auto_warning["warn_length"] = (isset($_POST["auto_warning"]["warn_length"]) && $_POST["auto_warning"]["warn_length"] ? intval($_POST["auto_warning"]["warn_length"]) : 0); 
                        $auto_warning["skipMembergroups"] = (isset($_POST["auto_warning"]["skipMembergroups"]) && is_array($_POST["auto_warning"]["skipMembergroups"]) && 0 < count($_POST["auto_warning"]["skipMembergroups"]) ? implode(",", array_map("intval", $_POST["auto_warning"]["skipMembergroups"])) : ""); 
                        updatesettings("auto_warning", $auto_warning); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $radioButtons = radioyesno("auto_warning[active]", getsetting("auto_warning", "active")); 
                    $formContents = aaaaan(get_phrase("auto_warning_active"), $radioButtons, get_phrase("auto_warning_active_alt")); 
                    $inputBox = inputbox("auto_warning[min_ratio]", getsetting("auto_warning", "min_ratio")); 
                    $formContents .= aaaaan(get_phrase("auto_warning_min_ratio"), $inputBox, ""); 
                    $inputBox = inputbox("auto_warning[warn_length]", getsetting("auto_warning", "warn_length")); 
                    $formContents .= aaaaan(get_phrase("auto_warning_warn_length"), $inputBox, ""); 
                    $Usergroups = aaaaaw("auto_warning[skipMembergroups][]", tsue_explode(",", getsetting("auto_warning", "skipMembergroups"))); 
                    $formContents .= aaaaan(get_phrase("auto_warning_skip_membergroups"), $Usergroups, get_phrase("auto_warning_skip_membergroups_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("auto_warning_System") ); 
                    break; 
                case "shoutbox_announcements": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $shoutbox["announce_new_torrents"] = (isset($_POST["shoutbox"]["announce_new_torrents"]) && $_POST["shoutbox"]["announce_new_torrents"] == 1 ? 1 : 0); 
                        $shoutbox["announce_new_torrent_comments"] = (isset($_POST["shoutbox"]["announce_new_torrent_comments"]) && $_POST["shoutbox"]["announce_new_torrent_comments"] == 1 ? 1 : 0); 
                        $shoutbox["announce_new_torrent_categories"] = (isset($_POST["announce_new_torrent_categories"]) && $_POST["announce_new_torrent_categories"] ? implode(",", $_POST["announce_new_torrent_categories"]) : ""); 
                        $shoutbox["announce_new_members"] = (isset($_POST["shoutbox"]["announce_new_members"]) && $_POST["shoutbox"]["announce_new_members"] == 1 ? 1 : 0); 
                        $shoutbox["announce_new_threads"] = (isset($_POST["shoutbox"]["announce_new_threads"]) && $_POST["shoutbox"]["announce_new_threads"] == 1 ? 1 : 0); 
                        $shoutbox["announce_new_replies"] = (isset($_POST["shoutbox"]["announce_new_replies"]) && $_POST["shoutbox"]["announce_new_replies"] == 1 ? 1 : 0); 
                        $shoutbox["announce_new_threads_skip_forums"] = (isset($_POST["announce_new_threads_skip_forums"]) && $_POST["announce_new_threads_skip_forums"] ? implode(",", $_POST["announce_new_threads_skip_forums"]) : ""); 
                        $shoutbox["notifications"] = (isset($_POST["shoutbox"]["notifications"]) ? trim($_POST["shoutbox"]["notifications"]) : ""); 
                        updatesettings("shoutbox", $shoutbox); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $formContents = get_phrase("click_here_to_modify_shoutbox_timeouts", "?action=Plugin Manager&options=3") . "<br /><br />"; 
                    $radioButtons = radioyesno("shoutbox[announce_new_torrents]", getsetting("shoutbox", "announce_new_torrents")); 
                    $formContents .= aaaaan(get_phrase("announce_new_torrents"), $radioButtons, ""); 
                    $radioButtons = radioyesno("shoutbox[announce_new_torrent_comments]", getsetting("shoutbox", "announce_new_torrent_comments")); 
                    $formContents .= aaaaan(get_phrase("announce_new_torrent_comments"), $radioButtons, ""); 
                    $announce_new_torrent_categories = tsue_explode(",", getsetting("shoutbox", "announce_new_torrent_categories")); 
                    $radioButtons = torrentcategoriesinbutboxes("announce_new_torrent_categories[]", "checkbox", $announce_new_torrent_categories); 
                    $formContents .= aaaaan(get_phrase("announce_new_torrent_categories"), $radioButtons, ""); 
                    $radioButtons = radioyesno("shoutbox[announce_new_members]", getsetting("shoutbox", "announce_new_members")); 
                    $formContents .= aaaaan(get_phrase("announce_new_members"), $radioButtons, ""); 
                    $radioButtons = radioyesno("shoutbox[announce_new_threads]", getsetting("shoutbox", "announce_new_threads")); 
                    $formContents .= aaaaan(get_phrase("announce_new_threads"), $radioButtons, ""); 
                    $radioButtons = radioyesno("shoutbox[announce_new_replies]", getsetting("shoutbox", "announce_new_replies")); 
                    $formContents .= aaaaan(get_phrase("announce_new_replies"), $radioButtons, ""); 
                    $Forums = aaaabc("announce_new_threads_skip_forums[]", explode(",", getsetting("shoutbox", "announce_new_threads_skip_forums"))); 
                    $formContents .= aaaaan(get_phrase("announce_new_threads_skip_forums"), $Forums, ""); 
                    $textarea = aaaaay("shoutbox[notifications]", getsetting("shoutbox", "notifications"), true); 
                    $formContents .= aaaaan(get_phrase("shoutbox_notifications"), $textarea); 
                    $aaaaam = array( "option_name" => get_phrase("shoutbox_announcements") ); 
                    break; 
                case "manage_inactive_members": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $inactive_members["active"] = (isset($_POST["inactive_members"]["active"]) && $_POST["inactive_members"]["active"] == 1 ? 1 : 0); 
                        $inactive_members["grace_period"] = (isset($_POST["inactive_members"]["grace_period"]) ? intval($_POST["inactive_members"]["grace_period"]) : 0); 
                        $inactive_members["max_email"] = (isset($_POST["inactive_members"]["max_email"]) ? intval($_POST["inactive_members"]["max_email"]) : 0); 
                        $inactive_members["prune_members"] = (isset($_POST["inactive_members"]["prune_members"]) ? intval($_POST["inactive_members"]["prune_members"]) : 0); 
                        $inactive_members["membergroups"] = (isset($_POST["inactive_members"]["membergroups"]) && $_POST["inactive_members"]["membergroups"] ? implode(",", $_POST["inactive_members"]["membergroups"]) : ""); 
                        updatesettings("inactive_members", $inactive_members); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $radioButtons = radioyesno("inactive_members[active]", getsetting("inactive_members", "active")); 
                    $formContents = aaaaan(get_phrase("inactive_members_active"), $radioButtons, get_phrase("inactive_members_active_alt")); 
                    $inputBox = inputbox("inactive_members[grace_period]", getsetting("inactive_members", "grace_period")); 
                    $formContents .= aaaaan(get_phrase("inactivity_grace_period"), $inputBox, get_phrase("inactivity_grace_period_alt")); 
                    $inputBox = inputbox("inactive_members[max_email]", getsetting("inactive_members", "max_email")); 
                    $formContents .= aaaaan(get_phrase("inactivity_max_email_to_send"), $inputBox, get_phrase("inactivity_max_email_to_send_alt")); 
                    $inputBox = inputbox("inactive_members[prune_members]", getsetting("inactive_members", "prune_members")); 
                    $formContents .= aaaaan(get_phrase("inactivity_prune_members"), $inputBox, get_phrase("inactivity_prune_members_alt")); 
                    $Usergroups = aaaaaw("inactive_members[membergroups][]", tsue_explode(",", getsetting("inactive_members", "membergroups"))); 
                    $formContents .= aaaaan(get_phrase("inactivity_membergroups"), $Usergroups, get_phrase("inactivity_membergroups_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("manage_inactive_members") ); 
                    break; 
                case "happy_hours": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $happy_hours["active"] = (isset($_POST["happy_hours"]["active"]) && $_POST["happy_hours"]["active"] == 1 ? 1 : 0); 
                        $happy_hours["start_date"] = (isset($_POST["happy_hours"]["start_date"]) ? $_POST["happy_hours"]["start_date"] : ""); 
                        $happy_hours["end_date"] = (isset($_POST["happy_hours"]["end_date"]) ? $_POST["happy_hours"]["end_date"] : ""); 
                        $happy_hours["freeleech"] = (isset($_POST["happy_hours"]["freeleech"]) && $_POST["happy_hours"]["freeleech"] == 1 ? 1 : 0); 
                        $happy_hours["doubleupload"] = (isset($_POST["happy_hours"]["doubleupload"]) && $_POST["happy_hours"]["doubleupload"] == 1 ? 1 : 0); 
                        if( $happy_hours["start_date"] ) 
                        { 
                            $happy_hours["start_date"] = str_replace("/", "-", $happy_hours["start_date"]); 
                            $happy_hours["start_date"] = strtotime($happy_hours["start_date"]); 
                        } 
 
                        if( $happy_hours["end_date"] ) 
                        { 
                            $happy_hours["end_date"] = str_replace("/", "-", $happy_hours["end_date"]); 
                            $happy_hours["end_date"] = strtotime($happy_hours["end_date"]); 
                        } 
 
                        updatesettings("happy_hours", $happy_hours); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        aaaabd("expired.php"); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $start_date = getsetting("happy_hours", "start_date"); 
                    if( $start_date ) 
                    { 
                        $start_date = date("d/m/Y", $start_date); 
                    } 
 
                    $end_date = getsetting("happy_hours", "end_date"); 
                    if( $end_date ) 
                    { 
                        $end_date = date("d/m/Y", $end_date); 
                    } 
 
                    $formContents = ""; 
                    $radioButtons = radioyesno("happy_hours[active]", getsetting("happy_hours", "active")); 
                    $formContents .= aaaaan(get_phrase("happy_hours_active"), $radioButtons); 
                    $inputBox = inputbox("happy_hours[start_date]", $start_date, "text", "", true); 
                    $formContents .= aaaaan(get_phrase("happy_hours_start_date"), $inputBox); 
                    $inputBox = inputbox("happy_hours[end_date]", $end_date, "text", "", true); 
                    $formContents .= aaaaan(get_phrase("happy_hours_end_date"), $inputBox); 
                    $aaaabe = "
					<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
						<tr>
							<td><input type=\"checkbox\" name=\"happy_hours[freeleech]\" value=\"1\" id=\"type_1\"" . ((getsetting("happy_hours", "freeleech") ? " checked=\"checked\"" : "")) . " /></td>
							<td><label for=\"type_1\">" . get_phrase("happy_hours_freeleech") . "</label></td>
						</tr>
						<tr>
							<td><input type=\"checkbox\" name=\"happy_hours[doubleupload]\" value=\"1\" id=\"type_2\"" . ((getsetting("happy_hours", "doubleupload") ? " checked=\"checked\"" : "")) . " /></td>
							<td><label for=\"type_2\">" . get_phrase("happy_hours_double_upload") . "</label></td>
						</tr>
					</table>"; 
                    $formContents .= aaaaan(get_phrase("happy_hours_type"), $aaaabe); 
                    $aaaaam = array( "option_name" => get_phrase("happy_hours") ); 
                    break; 
                case "social_media": 
                    $formContents = "<div class=\"soptionTitle\">" . get_phrase("facebook_api_alt") . "</div>"; 
                    $inputbox = inputbox("settings[facebook_app_id]", $TSUE["TSUE_Settings"]->settings["global_settings"]["facebook_app_id"], "text"); 
                    $formContents .= aaaaan(get_phrase("facebook_app_id"), $inputbox, get_phrase("facebook_app_id_alt")); 
                    $inputbox = inputbox("settings[facebook_app_secret]", $TSUE["TSUE_Settings"]->settings["global_settings"]["facebook_app_secret"], "text"); 
                    $formContents .= aaaaan(get_phrase("facebook_app_secret"), $inputbox, get_phrase("facebook_app_secret_alt")); 
                    $formContents .= "
					<div class=\"soptionTitle\">
						" . get_phrase("twitter_api_alt") . "
						<span class=\"smallPassiveTextBlock\">" . get_phrase("twitter_api_tip") . "</span>
					</div>"; 
                    $inputbox = inputbox("settings[consumerKey]", getsetting("global_settings", "consumerKey"), "text"); 
                    $formContents .= aaaaan(get_phrase("consumer_key"), $inputbox); 
                    $inputbox = inputbox("settings[consumerSecret]", getsetting("global_settings", "consumerSecret"), "text"); 
                    $formContents .= aaaaan(get_phrase("consumer_secret"), $inputbox); 
                    $inputbox = inputbox("settings[accessToken]", getsetting("global_settings", "accessToken"), "text"); 
                    $formContents .= aaaaan(get_phrase("access_token"), $inputbox); 
                    $inputbox = inputbox("settings[accessTokenSecret]", getsetting("global_settings", "accessTokenSecret"), "text"); 
                    $formContents .= aaaaan(get_phrase("access_token_secret"), $inputbox); 
                    $aaaaam = array( "option_name" => get_phrase("social_media") ); 
                    break; 
                case "server": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $server["http_port"] = (isset($_POST["server"]["http_port"]) ? 0 + $_POST["server"]["http_port"] : ""); 
                        $server["https_port"] = (isset($_POST["server"]["https_port"]) ? 0 + $_POST["server"]["https_port"] : ""); 
                        $server["ssh_port"] = (isset($_POST["server"]["ssh_port"]) ? 0 + $_POST["server"]["ssh_port"] : ""); 
                        $server["ftp_port"] = (isset($_POST["server"]["ftp_port"]) ? 0 + $_POST["server"]["ftp_port"] : ""); 
                        $server["pop3_port"] = (isset($_POST["server"]["pop3_port"]) ? 0 + $_POST["server"]["pop3_port"] : ""); 
                        updatesettings("server", $server); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $formContents = "<div class=\"soptionTitle\"><a href=\"?action=server-status\" target=\"_blank\">" . get_phrase("server_status") . "</a></div>"; 
                    $inputbox = inputbox("server[http_port]", getsetting("server", "http_port", 80), "text"); 
                    $formContents .= aaaaan(get_phrase("http_port"), $inputbox); 
                    $inputbox = inputbox("server[https_port]", getsetting("server", "https_port", 443), "text"); 
                    $formContents .= aaaaan(get_phrase("https_port"), $inputbox); 
                    $inputbox = inputbox("server[ssh_port]", getsetting("server", "ssh_port", 22), "text"); 
                    $formContents .= aaaaan(get_phrase("ssh_port"), $inputbox); 
                    $inputbox = inputbox("server[ftp_port]", getsetting("server", "ftp_port", 21), "text"); 
                    $formContents .= aaaaan(get_phrase("ftp_port"), $inputbox); 
                    $inputbox = inputbox("server[pop3_port]", getsetting("server", "pop3_port", 110), "text"); 
                    $formContents .= aaaaan(get_phrase("pop3_port"), $inputbox); 
                    $aaaaam = array( "option_name" => get_phrase("server") ); 
                    break; 
                case "sls": 
                    $radioButtons = radioyesno("settings[sls_active]", getsetting("global_settings", "sls_active")); 
                    $formContents = aaaaan(get_phrase("sls_active"), $radioButtons); 
                    $radioButtons = radioyesno("settings[sls_show_signup_link]", getsetting("global_settings", "sls_show_signup_link")); 
                    $formContents .= aaaaan(get_phrase("sls_show_signup_link"), $radioButtons); 
                    $radioButtons = radioyesno("settings[sls_show_fp_link]", getsetting("global_settings", "sls_show_fp_link")); 
                    $formContents .= aaaaan(get_phrase("sls_show_fp_link"), $radioButtons); 
                    $radioButtons = radioyesno("settings[sls_show_recent_torrents]", getsetting("global_settings", "sls_show_recent_torrents")); 
                    $formContents .= aaaaan(get_phrase("sls_show_recent_torrents"), $radioButtons); 
                    $aaaaam = array( "option_name" => get_phrase("sls") ); 
                    break; 
                case "uploader_inactivity": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $uploader_inactivity["membergroups"] = (isset($_POST["uploader_inactivity"]["membergroups"]) && $_POST["uploader_inactivity"]["membergroups"] ? implode(",", $_POST["uploader_inactivity"]["membergroups"]) : ""); 
                        $uploader_inactivity["demote_to"] = (isset($_POST["uploader_inactivity"]["demote_to"]) ? 0 + $_POST["uploader_inactivity"]["demote_to"] : ""); 
                        $uploader_inactivity["criterias_torrents"] = (isset($_POST["uploader_inactivity"]["criterias_torrents"]) ? 0 + $_POST["uploader_inactivity"]["criterias_torrents"] : ""); 
                        $uploader_inactivity["criterias_days"] = (isset($_POST["uploader_inactivity"]["criterias_days"]) ? 0 + $_POST["uploader_inactivity"]["criterias_days"] : ""); 
                        updatesettings("uploader_inactivity", $uploader_inactivity); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $formContents = "<h2>" . get_phrase("demote_inactive_uploaders_cron") . "</h2>"; 
                    $Usergroups = aaaaaw("uploader_inactivity[membergroups][]", explode(",", getsetting("uploader_inactivity", "membergroups"))); 
                    $formContents .= aaaaan(get_phrase("inactivity_membergroups"), $Usergroups, get_phrase("inactivity_membergroups_alt")); 
                    $Usergroups = aaaabf("uploader_inactivity[demote_to]", getsetting("uploader_inactivity", "demote_to"), true, ""); 
                    $formContents .= aaaaan(get_phrase("select_membergroup"), $Usergroups, get_phrase("uploader_inactivity_demote_to")); 
                    $Criterias = "
					<div style=\"margin-top: 5px;\">
						" . get_phrase("query_criterias_for_demotion", "<input type=\"text\" name=\"uploader_inactivity[criterias_torrents]\" value=\"" . getsetting("uploader_inactivity", "criterias_torrents") . "\" class=\"text textVeryTiny\" />", "<input type=\"text\" name=\"uploader_inactivity[criterias_days]\" value=\"" . getsetting("uploader_inactivity", "criterias_days") . "\" class=\"text textVeryTiny\" />") . "
					</div>"; 
                    $formContents .= aaaaan(get_phrase("criterias_for_demotion"), $Criterias, ""); 
                    $aaaaam = array( "option_name" => get_phrase("uploader_inactivity") ); 
                    break; 
                case "automatic_invites": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $automatic_invites["membergroups"] = (isset($_POST["automatic_invites"]["membergroups"]) && $_POST["automatic_invites"]["membergroups"] ? implode(",", $_POST["automatic_invites"]["membergroups"]) : ""); 
                        $automatic_invites["amount"] = (isset($_POST["automatic_invites"]["amount"]) ? intval($_POST["automatic_invites"]["amount"]) : ""); 
                        updatesettings("automatic_invites", $automatic_invites); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $formContents = "<h2>" . get_phrase("automatic_invites_cron") . "</h2>"; 
                    $Usergroups = aaaaaw("automatic_invites[membergroups][]", explode(",", getsetting("automatic_invites", "membergroups"))); 
                    $formContents .= aaaaan(get_phrase("inactivity_membergroups"), $Usergroups, get_phrase("automatic_invites_membergroups")); 
                    $inputbox = inputbox("automatic_invites[amount]", getsetting("automatic_invites", "amount", 0), "text"); 
                    $formContents .= aaaaan(get_phrase("automatic_invites_amount"), $inputbox); 
                    $aaaaam = array( "option_name" => get_phrase("automatic_invites") ); 
                    break; 
                case "magnet_links": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $magnet_links["active"] = (isset($_POST["magnet_links"]["active"]) ? intval($_POST["magnet_links"]["active"]) : 0); 
                        updatesettings("magnet_links", $magnet_links); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $radioButtons = radioyesno("magnet_links[active]", getsetting("magnet_links", "active")); 
                    $formContents = aaaaan(get_phrase("magnet_links_active"), $radioButtons, nl2br(get_phrase("magnet_links_active_alt"))); 
                    $aaaaam = array( "option_name" => get_phrase("magnet_links") ); 
                    break; 
                case "auto_alert": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $auto_alert["admins"] = (isset($_POST["auto_alert"]["admins"]) ? $_POST["auto_alert"]["admins"] : ""); 
                        $auto_alert["words"] = (isset($_POST["auto_alert"]["words"]) ? $_POST["auto_alert"]["words"] : ""); 
                        updatesettings("auto_alert", $auto_alert); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $inputbox = inputbox("auto_alert[admins]", getsetting("auto_alert", "admins"), "text", "", false, true, "", "autoCompleteMultiple"); 
                    $formContents = aaaaan(get_phrase("auto_alert_admins"), $inputbox, get_phrase("auto_alert_admins_alt")); 
                    $inputbox = aaaaay("auto_alert[words]", getsetting("auto_alert", "words")); 
                    $formContents .= aaaaan(get_phrase("auto_alert_words"), $inputbox, get_phrase("auto_alert_words_alt")); 
                    $aaaaam = array( "option_name" => get_phrase("auto_alert") ); 
                    break; 
                case "search_system": 
                    if( isset($_POST["save_options"]) ) 
                    { 
                        $search_system["method"] = (isset($_POST["search_system"]["method"]) && $_POST["search_system"]["method"] == 2 ? 2 : 1); 
                        updatesettings("search_system", $search_system); 
                        $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
                        $outputMessage = successmessage(get_phrase("message_saved")); 
                        aaaaal(); 
                        _sendheaders($outputMessage); 
                    } 
 
                    $aaaaao = array( 1 => get_phrase("search_method_1"), 2 => get_phrase("search_method_2") ); 
                    $selectbox = selectbox("search_system[method]", getsetting("search_system", "method", 1), $aaaaao); 
                    $formContents = aaaaan(get_phrase("search_system"), $selectbox, get_phrase("search_system_alert")); 
                    $aaaaam = array( "option_name" => get_phrase("search_system") ); 
            } 
            if( isset($formContents) ) 
            { 
                $HTML .= aaaabg($formContents, $aaaaam); 
            } 
 
        } 
 
    } 
    else 
    { 
        $HTML = "
		<div id=\"options\">
			<div class=\"head\">" . get_phrase("dashboard_options_alt") . "</div>
			<div class=\"optionsScroll\">
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=website_active\">" . get_phrase("dashboard_options_website_active") . " <span>" . get_phrase("dashboard_options_website_active_span") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=basic_website_information\">" . get_phrase("dashboard_options_basic_website_information") . " <span></span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=email_options\">" . get_phrase("dashboard_options_email_options") . " <span></span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=member_registration\">" . get_phrase("dashboard_options_member_registration") . " <span></span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=appearance\">" . get_phrase("dashboard_options_appearance") . " <span>" . get_phrase("dashboard_options_appearance_span") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=cookies\">" . get_phrase("dashboard_options_cookies") . " <span></span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=announce\">" . get_phrase("dashboard_options_announce") . " <span>" . get_phrase("dashboard_options_announce_span") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=ipban\">" . get_phrase("dashboard_options_ipban") . " <span>" . get_phrase("dashboard_options_ipban_span") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=emailban\">" . get_phrase("dashboard_options_emailban") . " <span>" . get_phrase("dashboard_options_emailban_span") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=countryban\">" . get_phrase("dashboard_options_countryban") . " <span>" . get_phrase("dashboard_options_countryban_span") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=censoring\">" . get_phrase("dashboard_options_censoring") . " <span>" . get_phrase("dashboard_options_censoring_span") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=seo\">" . get_phrase("dashboard_options_seo") . " <span>" . get_phrase("dashboard_options_seo_span") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=limitations\">" . get_phrase("dashboard_options_limitations") . " <span></span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=member_alerts\">" . get_phrase("dashboard_options_member_alerts") . " <span>" . get_phrase("dashboard_options_member_alerts_span") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=cleanup\">" . get_phrase("dashboard_options_cleanup") . " <span>" . get_phrase("dashboard_options_cleanup_span") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=points\">" . get_phrase("dashboard_options_points") . " <span>" . get_phrase("dashboard_options_points_span") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=subtitles\">" . get_phrase("dashboard_options_subtitles") . " 
				<span></span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=security\">" . get_phrase("dashboard_options_security") . " 
				<span>" . get_phrase("dashboard_options_security_span") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=hitrun\">" . get_phrase("dashboard_options_hitrun") . " 
				<span>" . get_phrase("dashboard_options_hitrun_span") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=auto_uploader\">" . get_phrase("auto_uploader") . " 
				<span>" . get_phrase("auto_uploader_span") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=downloads\">" . get_phrase("dm_title") . " 
				<span>" . get_phrase("dm_title_alt") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=ircbot\">" . get_phrase("ircbot") . "
				<span>" . get_phrase("ircbot_title") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=xbt\">XBT
				<span>" . get_phrase("xbt_title") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=gallery\">" . get_phrase("image_gallery") . "</div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=auto_warning\">" . get_phrase("auto_warning_System") . "
				<span>" . get_phrase("auto_warning_System_alt") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=shoutbox_announcements\">" . get_phrase("shoutbox_announcements") . "
				<span>" . get_phrase("shoutbox_announcements_alt") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=manage_inactive_members\">" . get_phrase("manage_inactive_members") . "
				<span>" . get_phrase("manage_inactive_members_alt") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=happy_hours\">" . get_phrase("happy_hours") . "
				<span>" . get_phrase("happy_hours_alt") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=social_media\">" . get_phrase("social_media") . "
				<span>" . get_phrase("social_media_alt") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=server\">" . get_phrase("server") . "
				<span>" . get_phrase("server_alt") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=sls\">" . get_phrase("sls") . "
				<span>" . get_phrase("sls_alt") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=uploader_inactivity\">" . get_phrase("uploader_inactivity") . "
				<span>" . get_phrase("uploader_inactivity_alt") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=automatic_invites\">" . get_phrase("automatic_invites") . "
				<span>" . get_phrase("automatic_invites_alt") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=magnet_links\">" . get_phrase("magnet_links") . "
				<span>" . get_phrase("magnet_links_alt") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=auto_alert\">" . get_phrase("auto_alert") . "
				<span>" . get_phrase("auto_alert_alt") . "</span></div>
				<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=search_system\">" . get_phrase("search_system") . "
				<span>" . get_phrase("search_system_alt") . "</span></div>
			</div>
		</div>"; 
    } 
 
    return $HTML; 
} 
 
function handlepages() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $aaaabh = aaaaae(array( "new=1" => array( "phrase" => get_phrase("pages_create_new") ) )); 
    $enable_disable = intval(getvar("enable_disable")); 
    $showinmenu = intval(getvar("showinmenu")); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    if( isset($_POST["sort"]) ) 
    { 
        foreach( $_POST["sort"] as $pageID => $Sort ) 
        { 
            $pageID = intval($pageID); 
            $Sort = intval($Sort); 
            $TSUE["TSUE_Database"]->update("tsue_pages", array( "sort" => $Sort ), "pageid=" . $TSUE["TSUE_Database"]->escape($pageID)); 
        } 
        logadminaction(get_phrase("pages_all_pages_updated")); 
        handlerebuildcaches(false); 
        handleprune(false); 
        header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]); 
        exit(); 
    } 
    else 
    { 
        if( $edit || $new ) 
        { 
            $Page = array( "pageid" => 0, "parentid" => 0, "name" => "", "phrase" => "", "internal_link" => "", "external_link" => "", "sort" => 0, "active" => 0, "plugins_left" => array(  ), "plugins_right" => array(  ), "showinmenu" => 0, "viewpermissions" => array(  ) ); 
            $aaaaam = ""; 
            if( $edit ) 
            { 
                $Page = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($edit)); 
                if( !$Page ) 
                { 
                    return errormessage(get_phrase("message_content_error")); 
                } 
 
                $Page["plugins_left"] = tsue_explode(",", $Page["plugins_left"]); 
                $Page["plugins_right"] = tsue_explode(",", $Page["plugins_right"]); 
                $Page["viewpermissions"] = tsue_explode(",", $Page["viewpermissions"]); 
                $aaaaam = array( "edit" => $edit ); 
                addbreadcrumb(array( get_phrase("button_edit") . ": " . $Page["name"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
            } 
            else 
            { 
                addbreadcrumb(array( get_phrase("pages_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
            } 
 
            if( isset($_POST["Page"]) ) 
            { 
                $Page = $_POST["Page"]; 
                if( !$Page["name"] ) 
                { 
                    $formErrors[] = get_phrase("pages_page_name_error"); 
                } 
 
                if( !$Page["phrase"] || !isset($TSUE["TSUE_Language"]["phrase"][$Page["phrase"]]) ) 
                { 
                    $formErrors[] = get_phrase("pages_page_phrase_error"); 
                } 
 
                if( !$Page["internal_link"] && !$Page["external_link"] ) 
                { 
                    $Page["internal_link"] = "#"; 
                } 
 
                if( !isset($Page["plugins_left"]) ) 
                { 
                    $Page["plugins_left"] = array(  ); 
                } 
 
                if( !isset($Page["plugins_right"]) ) 
                { 
                    $Page["plugins_right"] = array(  ); 
                } 
 
                if( !isset($Page["viewpermissions"]) ) 
                { 
                    $Page["viewpermissions"] = array(  ); 
                } 
 
                if( !isset($formErrors) ) 
                { 
                    $buildQuery = array( "parentid" => $Page["parentid"], "name" => $Page["name"], "phrase" => $Page["phrase"], "internal_link" => $Page["internal_link"], "external_link" => $Page["external_link"], "sort" => ($Page["sort"] ? $Page["sort"] : 0), "active" => ($Page["active"] ? $Page["active"] : 0), "plugins_left" => implode(",", $Page["plugins_left"]), "plugins_right" => implode(",", $Page["plugins_right"]), "showinmenu" => ($Page["showinmenu"] ? $Page["showinmenu"] : 0), "viewpermissions" => implode(",", $Page["viewpermissions"]) ); 
                    if( $edit ) 
                    { 
                        $Page["pageid"] = $edit; 
                        $TSUE["TSUE_Database"]->update("tsue_pages", $buildQuery, "pageid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                    } 
                    else 
                    { 
                        $TSUE["TSUE_Database"]->insert("tsue_pages", $buildQuery); 
                        $Page["pageid"] = $TSUE["TSUE_Database"]->insert_id(); 
                    } 
 
                    logadminaction(get_phrase("pages_page_updated", $Page["name"] . " (" . $Page["pageid"] . ")")); 
                    $HTML .= successmessage(get_phrase("message_saved")); 
                    $updateDone = true; 
                    handlerebuildcaches(false); 
                    handleprune(false); 
                } 
                else 
                { 
                    $HTML .= errormessage(implode("<br />", $formErrors)); 
                } 
 
            } 
 
            if( !isset($updateDone) ) 
            { 
                $radioButtons = radioyesno("Page[active]", $Page["active"]); 
                $formContents = aaaaan(get_phrase("pages_page_active"), $radioButtons); 
                $radioButtons = radioyesno("Page[showinmenu]", $Page["showinmenu"]); 
                $formContents .= aaaaan(get_phrase("pages_showinmenu_1"), $radioButtons); 
                $inputbox = inputbox("Page[name]", $Page["name"]); 
                $formContents .= aaaaan(get_phrase("pages_page_name"), $inputbox); 
                $inputbox = inputbox("Page[phrase]", $Page["phrase"]); 
                $formContents .= aaaaan(get_phrase("pages_page_phrase"), $inputbox, get_phrase("pages_page_phrase_alt")); 
                $inputbox = inputbox("Page[internal_link]", $Page["internal_link"]); 
                $formContents .= aaaaan(get_phrase("pages_page_internal_link"), $inputbox, get_phrase("pages_page_internal_link_alt") . "<br /><strong>" . get_phrase("pages_page_internal_link_alt2") . "</strong>"); 
                $inputbox = inputbox("Page[external_link]", $Page["external_link"]); 
                $formContents .= aaaaan(get_phrase("pages_page_external_link"), $inputbox, get_phrase("pages_page_external_link_alt")); 
                $inputbox = inputbox("Page[sort]", $Page["sort"], "sortFirst"); 
                $formContents .= aaaaan(get_phrase("global_sort"), $inputbox); 
                $parentPages = aaaabi("Page[parentid]", $Page["parentid"], (isset($Page["pageid"]) ? $Page["pageid"] : 0)); 
                $formContents .= aaaaan(get_phrase("pages_parent_page"), $parentPages, get_phrase("pages_parent_page_alt")); 
                $aaaabj = aaaabk("Page[plugins_left][]", $Page["plugins_left"]); 
                $formContents .= aaaaan(get_phrase("pages_plugins_left"), $aaaabj, get_phrase("pages_plugins_left_alt")); 
                $aaaabl = aaaabk("Page[plugins_right][]", $Page["plugins_right"]); 
                $formContents .= aaaaan(get_phrase("pages_plugins_right"), $aaaabl, get_phrase("pages_plugins_left_alt")); 
                $Usergroups = aaaaaw("Page[viewpermissions][]", $Page["viewpermissions"]); 
                $formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all")); 
                $HTML .= aaaabg($formContents, $aaaaam); 
                return $HTML; 
            } 
 
        } 
 
        if( $enable_disable ) 
        { 
            $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
            $Page = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            if( $Page ) 
            { 
                $TSUE["TSUE_Database"]->update("tsue_pages", $BuildQuery, "pageid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
                logadminaction(get_phrase("pages_page_updated", $Page["name"] . " (" . $enable_disable . ")")); 
                handlerebuildcaches(false); 
                handleprune(false); 
            } 
 
        } 
 
        if( $showinmenu ) 
        { 
            $BuildQuery = array( "showinmenu" => array( "escape" => 0, "value" => "IF(showinmenu>0,0,1)" ) ); 
            $Page = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($showinmenu)); 
            if( $Page ) 
            { 
                $TSUE["TSUE_Database"]->update("tsue_pages", $BuildQuery, "pageid = " . $TSUE["TSUE_Database"]->escape($showinmenu)); 
                logadminaction(get_phrase("pages_page_updated", $Page["name"] . " (" . $showinmenu . ")")); 
                handlerebuildcaches(false); 
                handleprune(false); 
            } 
 
        } 
 
        if( $delete ) 
        { 
            $Page = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            if( $Page ) 
            { 
                $TSUE["TSUE_Database"]->delete("tsue_pages", "pageid = " . $TSUE["TSUE_Database"]->escape($delete)); 
                $TSUE["TSUE_Database"]->delete("tsue_pages", "parentid = " . $TSUE["TSUE_Database"]->escape($delete)); 
                logadminaction(get_phrase("pages_page_deleted", $Page["name"] . " (" . $delete . ")")); 
                handlerebuildcaches(false); 
                handleprune(false); 
            } 
 
        } 
 
        $subPagesCache = array(  ); 
        $subPages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_pages WHERE parentid != 0 ORDER BY sort ASC"); 
        if( $TSUE["TSUE_Database"]->num_Rows($subPages) ) 
        { 
            while( $subPage = $TSUE["TSUE_Database"]->fetch_assoc($subPages) ) 
            { 
                $subPagesCache[$subPage["parentid"]][] = $subPage; 
            } 
        } 
 
        $Pages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_pages WHERE parentid = 0 ORDER BY active DESC, sort ASC"); 
        if( !$TSUE["TSUE_Database"]->num_rows($Pages) ) 
        { 
            $tableContents = errormessage(get_phrase("no_results_found")); 
        } 
        else 
        { 
            $tableContents = ""; 
            while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) ) 
            { 
                $tableContents .= buildpagelist($Page); 
                if( isset($subPagesCache[$Page["pageid"]]) ) 
                { 
                    foreach( $subPagesCache[$Page["pageid"]] as $subPage ) 
                    { 
                        $tableContents .= buildpagelist($subPage, true); 
                    } 
                } 
 
            } 
            $tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) )); 
        } 
 
        $HTML .= aaaabn(createtable(get_phrase("dashboard_pages_alt"), $tableContents, 3, $aaaabh)); 
        return $HTML; 
    } 
 
} 
 
function buildpagelist($Page, $isSubPage = false) 
{ 
    global $TSUE; 
    $linkClass = (!$Page["active"] ? "linkDisabled" : ""); 
    $pageEditLink = aaaaae(array( "edit=" . $Page["pageid"] => array( "phrase" => $Page["name"], "class" => $linkClass ) )); 
    $aaaabo = aaaaae(array( "delete=" . $Page["pageid"] => array( "phrase" => getimage("buttons/delete" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") . ((!$isSubPage ? get_phrase("pages_page_delete_warning") : "")) ) )); 
    if( $Page["active"] ) 
    { 
        $aaaabp = aaaaae(array( "enable_disable=" . $Page["pageid"] => array( "phrase" => getimage("buttons/disable" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("button_disable")) ) )); 
    } 
    else 
    { 
        $aaaabp = aaaaae(array( "enable_disable=" . $Page["pageid"] => array( "phrase" => getimage("buttons/enable" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("button_enable")) ) )); 
    } 
 
    if( $Page["showinmenu"] ) 
    { 
        $aaaabq = aaaaae(array( "showinmenu=" . $Page["pageid"] => array( "phrase" => getimage("buttons/hide" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("pages_showinmenu_0")) ) )); 
    } 
    else 
    { 
        $aaaabq = aaaaae(array( "showinmenu=" . $Page["pageid"] => array( "phrase" => getimage("buttons/show" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("pages_showinmenu_1")) ) )); 
    } 
 
    $pageLink = "
	<span style=\"padding-left: 9px;\">
		<a href=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $Page["internal_link"] . "&amp;pid=" . $Page["pageid"] . "\" target=\"_blank\" style=\"color: #ccc; font-weight: normal; font-size: 10px;\">" . $Page["internal_link"] . "&amp;pid=" . $Page["pageid"] . "</a>
	</span>"; 
    if( $isSubPage ) 
    { 
        $tableContents = aaaaag(array( array( "width" => "75%", "text" => "&nbsp;&nbsp;<span class=\"smallPassiveText\">-- " . $pageEditLink . "</span>" . $pageLink ), array( "width" => "5%", "text" => inputbox("sort[" . $Page["pageid"] . "]", $Page["sort"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "20%", "text" => $aaaabp . $aaaabq . $aaaabo, "align" => "right" ) )); 
    } 
    else 
    { 
        $tableContents = aaaaag(array( array( "width" => "65%", "text" => $pageEditLink . $pageLink ), array( "width" => "10%", "text" => inputbox("sort[" . $Page["pageid"] . "]", $Page["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaabp . $aaaabq . $aaaabo, "align" => "right" ) )); 
    } 
 
    return $tableContents; 
} 
 
 
function handlepolls() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $aaaabr = aaaaae(array( "new=1" => array( "phrase" => get_phrase("poll_create_new") ) )); 
    $enable_disable = intval(getvar("enable_disable")); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    if( $enable_disable ) 
    { 
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
        $Poll = $TSUE["TSUE_Database"]->query_result("SELECT question FROM tsue_poll WHERE pid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
        if( $Poll ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_poll", $BuildQuery, "pid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            logadminaction(get_phrase("poll_x_has_been_updated", $Poll["question"] . " (" . $enable_disable . ")")); 
        } 
 
    } 
 
    if( $delete ) 
    { 
        $Poll = $TSUE["TSUE_Database"]->query_result("SELECT question FROM tsue_poll WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Poll ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_poll", "pid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            logadminaction(get_phrase("poll_x_has_been_deleted", $Poll["question"] . " (" . $delete . ")")); 
        } 
 
    } 
 
    if( $edit || $new ) 
    { 
        $Poll = array( "active" => 1, "question" => "", "options" => array(  ), "votes" => "", "voters" => "", "multiple" => 0, "closeDaysAfter" => 0, "closed" => 0, "threadid" => 0, "createdinThread" => 0 ); 
        $aaaaam = ""; 
        $pollOptionList = ""; 
        $totalOptions = 5; 
        for( $i = 0; $i < $totalOptions; $i++ ) 
        { 
            $pollOptionList .= (aaaabs); 
        } 
        if( $edit ) 
        { 
            $Poll = $TSUE["TSUE_Database"]->query_result("SELECT active, question, options, votes, voters, multiple, closeDaysAfter, closed, threadid FROM tsue_poll WHERE pid = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Poll ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
            $pollOptions = tsue_explode("~", $Poll["options"]); 
            $_pollOptionList = ""; 
            foreach( $pollOptions as $pollOption ) 
            { 
                $_pollOptionList .= aaaabs($pollOption); 
                $totalOptions++; 
            } 
            $pollOptionList = $_pollOptionList . $pollOptionList; 
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Poll["question"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        } 
        else 
        { 
            addbreadcrumb(array( get_phrase("poll_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
        } 
 
        if( isset($_POST["Poll"]) ) 
        { 
            $Poll = array_merge($Poll, $_POST["Poll"]); 
            if( !$Poll["question"] ) 
            { 
                $formErrors[] = get_phrase("poll_error_no_question"); 
            } 
 
            if( !$Poll["options"] || count($Poll["options"]) < 2 ) 
            { 
                $formErrors[] = get_phrase("poll_error_no_options"); 
            } 
            else 
            { 
                $Options = array(  ); 
                foreach( $Poll["options"] as $Option ) 
                { 
                    $Option = trim($Option); 
                    if( !empty($Option) ) 
                    { 
                        $Options[] = $Option; 
                    } 
 
                } 
                if( !$Options || count($Options) < 2 ) 
                { 
                    $formErrors[] = get_phrase("poll_error_no_options"); 
                } 
                else 
                { 
                    $Poll["options"] = $Options; 
                } 
 
            } 
 
            if( $Poll["threadid"] ) 
            { 
                $aaaabt = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_forums_threads WHERE threadid = " . $TSUE["TSUE_Database"]->escape($Poll["threadid"])); 
                if( !$aaaabt ) 
                { 
                    $formErrors[] = get_phrase("message_content_error"); 
                } 
 
            } 
 
            if( !isset($formErrors) ) 
            { 
                $buildQuery = array( "active" => $Poll["active"], "question" => $Poll["question"], "options" => implode("~", $Poll["options"]), "votes" => $Poll["votes"], "voters" => $Poll["voters"], "multiple" => $Poll["multiple"], "closeDaysAfter" => $Poll["closeDaysAfter"], "closed" => $Poll["closed"], "threadid" => $Poll["threadid"], "createdinThread" => 0 ); 
                if( $edit ) 
                { 
                    $TSUE["TSUE_Database"]->update("tsue_poll", $buildQuery, "pid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $buildQuery["date"] = TIMENOW; 
                    $TSUE["TSUE_Database"]->insert("tsue_poll", $buildQuery); 
                } 
 
                logadminaction(get_phrase("poll_x_has_been_updated", $Poll["question"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $radioButtons = radioyesno("Poll[active]", $Poll["active"]); 
            $formContents = aaaaan(get_phrase("poll_active"), $radioButtons); 
            $radioButtons = radioyesno("Poll[closed]", $Poll["closed"]); 
            $formContents .= aaaaan(get_phrase("poll_is_closed"), $radioButtons, get_phrase("poll_is_closed_alt")); 
            $inputbox = inputbox("Poll[closeDaysAfter]", $Poll["closeDaysAfter"]); 
            $formContents .= aaaaan(get_phrase("poll_close_days_after"), $inputbox, get_phrase("poll_close_days_after_alt")); 
            $radioButtons = radioyesno("Poll[multiple]", $Poll["multiple"]); 
            $formContents .= aaaaan(get_phrase("poll_multiple"), $radioButtons, get_phrase("poll_multiple_alt")); 
            $inputbox = inputbox("Poll[threadid]", $Poll["threadid"]); 
            $formContents .= aaaaan(get_phrase("discuss_threadid"), $inputbox, get_phrase("discuss_threadid_alt")); 
            $inputbox = inputbox("Poll[question]", $Poll["question"]); 
            $formContents .= aaaaan(get_phrase("poll_question"), $inputbox); 
            $formContents .= aaaaan(get_phrase("poll_options"), $pollOptionList, "", "optionsInOverlay", "", getimage("status/bullet_toggle_plus.png", get_phrase("button_add_more_fields"), "pointer middle"), "pollOptions"); 
            $Script = "
			<script type=\"text/javascript\">
				var totalOptions = " . $totalOptions . ";
				\$(\"#polloptions img\").click(function(e)
				{
					e.preventDefault();

					totalOptions++;

					\$('<input type=\"text\" class=\"text\" name=\"Poll[options][]\" id=\"ib_Poll[options][]\" value=\"\" style=\"display: none;\" />').appendTo('div[rel=\"pollOptions\"]').fadeIn(\"slow\");

					return false;
				});
			</script>"; 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML . $Script; 
        } 
 
    } 
 
    $Polls = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_poll WHERE createdinThread = 0 ORDER BY active DESC, date DESC"); 
    if( !$TSUE["TSUE_Database"]->num_rows($Polls) ) 
    { 
        $tableContents = errormessage(get_phrase("poll_no_poll_yet")); 
    } 
    else 
    { 
        $tableContents = ""; 
        while( $Poll = $TSUE["TSUE_Database"]->fetch_assoc($Polls) ) 
        { 
            $linkClass = (!$Poll["active"] ? "linkDisabled" : ""); 
            $aaaabu = aaaaae(array( "edit=" . $Poll["pid"] => array( "phrase" => $Poll["question"], "class" => $linkClass ) )); 
            $aaaabv = aaaaae(array( "delete=" . $Poll["pid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            if( $Poll["active"] ) 
            { 
                $aaaabw = aaaaae(array( "enable_disable=" . $Poll["pid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
            } 
            else 
            { 
                $aaaabw = aaaaae(array( "enable_disable=" . $Poll["pid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
            } 
 
            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaabu . " <span class=\"smallPassiveText\">(" . implode(" - ", tsue_explode("~", $Poll["options"])) . ") / " . get_phrase("poll_created", convert_relative_time($Poll["date"])) . " / " . get_phrase("poll_voters", count(tsue_explode("~", $Poll["voters"]))) . "</span>" ), array( "width" => "15%", "text" => $aaaabw . $aaaabv, "align" => "right" ) )); 
        } 
    } 
 
    $HTML .= createtable(get_phrase("dashboard_polls"), $tableContents, 2, $aaaabr); 
    return $HTML; 
} 
 
function handlenews() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $aaaabx = aaaaae(array( "new=1" => array( "phrase" => get_phrase("news_create_new") ) )); 
    $enable_disable = intval(getvar("enable_disable")); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $tweet = intval(getvar("tweet")); 
    if( $enable_disable ) 
    { 
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
        $News = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
        if( $News ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_news", $BuildQuery, "nid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            logadminaction(get_phrase("news_x_has_been_updated", $News["title"] . " (" . $enable_disable . ")")); 
            handlerebuildcaches(false); 
        } 
 
    } 
 
    if( $delete ) 
    { 
        $News = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $News ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_news", "nid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            logadminaction(get_phrase("news_x_has_been_deleted", $News["title"] . " (" . $delete . ")")); 
            handlerebuildcaches(false); 
        } 
 
    } 
 
    if( $edit || $new ) 
    { 
        $News = array( "active" => 1, "title" => "", "content" => "" ); 
        $aaaaam = ""; 
        if( $edit ) 
        { 
            $News = $TSUE["TSUE_Database"]->query_result("SELECT active,title,content FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$News ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $News["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        } 
        else 
        { 
            addbreadcrumb(array( get_phrase("news_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
        } 
 
        if( isset($_POST["News"]) ) 
        { 
            $News = $_POST["News"]; 
            if( !$News["title"] ) 
            { 
                $formErrors[] = get_phrase("news_error_no_title"); 
            } 
 
            if( !$News["content"] ) 
            { 
                $formErrors[] = get_phrase("news_error_no_content"); 
            } 
 
            if( !isset($formErrors) ) 
            { 
                $buildQuery = array( "active" => $News["active"], "title" => $News["title"], "content" => $News["content"] ); 
                if( $edit ) 
                { 
                    $TSUE["TSUE_Database"]->update("tsue_news", $buildQuery, "nid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $buildQuery["memberid"] = $TSUE["TSUE_Member"]["memberid"]; 
                    $buildQuery["date"] = TIMENOW; 
                    $TSUE["TSUE_Database"]->insert("tsue_news", $buildQuery); 
                } 
 
                logadminaction(get_phrase("news_x_has_been_updated", $News["title"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                $updateDone = true; 
                handlerebuildcaches(false); 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $radioButtons = radioyesno("News[active]", $News["active"]); 
            $formContents = aaaaan(get_phrase("news_active"), $radioButtons); 
            $inputbox = inputbox("News[title]", $News["title"]); 
            $formContents .= aaaaan(get_phrase("news_news_title"), $inputbox); 
            $textarea = textarea("News[content]", $News["content"], true); 
            $formContents .= aaaaan(get_phrase("news_content"), $textarea); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    if( $tweet ) 
    { 
        $News = $TSUE["TSUE_Database"]->query_result("SELECT content FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($tweet)); 
        if( $News ) 
        { 
            $HTML .= posttotwitter($News["content"], 120); 
        } 
 
    } 
 
    $AllNews = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_news ORDER BY active DESC, date DESC"); 
    if( !$TSUE["TSUE_Database"]->num_rows($AllNews) ) 
    { 
        $tableContents = errormessage(get_phrase("news_no_news_yet")); 
    } 
    else 
    { 
        $tableContents = ""; 
        while( $News = $TSUE["TSUE_Database"]->fetch_assoc($AllNews) ) 
        { 
            $linkClass = (!$News["active"] ? "linkDisabled" : ""); 
            $aaaaby = aaaaae(array( "edit=" . $News["nid"] => array( "phrase" => $News["title"], "class" => $linkClass ) )); 
            $aaaabz = aaaaae(array( "delete=" . $News["nid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            $aaaaca = aaaaae(array( "tweet=" . $News["nid"] => array( "phrase" => getimage("buttons/twitter.png", "Tweet") ) )); 
            if( $News["active"] ) 
            { 
                $aaaacb = aaaaae(array( "enable_disable=" . $News["nid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
            } 
            else 
            { 
                $aaaacb = aaaaae(array( "enable_disable=" . $News["nid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
            } 
 
            $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaaby . " <span class=\"smallPassiveText\">" . get_phrase("news_created", convert_relative_time($News["date"])) . "</span>" ), array( "width" => "20%", "text" => $aaaaca . $aaaacb . $aaaabz, "align" => "right" ) )); 
        } 
    } 
 
    $HTML .= createtable(get_phrase("dashboard_news"), $tableContents, 2, $aaaabx); 
    return $HTML; 
} 
 
function handlefaq() 
{ 
    global $TSUE; 
    $cid = intval(getvar("cid")); 
    $type = trim(getvar("type")); 
    $fid = intval(getvar("fid")); 
    $HTML = ""; 
    if( $type == "deleteCategory" && $cid ) 
    { 
        $FAQCategory = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_faq_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid)); 
        if( $FAQCategory ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_faq_categories", "cid = " . $TSUE["TSUE_Database"]->escape($cid)); 
            $TSUE["TSUE_Database"]->delete("tsue_faq", "cid = " . $TSUE["TSUE_Database"]->escape($cid)); 
            logadminaction(get_phrase("faq_category_has_been_deleted", $FAQCategory["name"] . " (" . $cid . ")")); 
        } 
 
    } 
 
    if( $type == "addCategory" || $type == "editCategory" ) 
    { 
        if( $type == "editCategory" ) 
        { 
            $FAQCategory = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_faq_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid)); 
            if( !$FAQCategory ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            addbreadcrumb(array( get_phrase("faq_edit_category") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;cid=" . $cid . "&amp;type=" . $type )); 
            $aaaaam = array( "cid" => $cid ); 
        } 
        else 
        { 
            $FAQCategory = array( "name" => "", "sort" => "", "active" => 1 ); 
            addbreadcrumb(array( get_phrase("faq_create_new_category") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;type=" . $type )); 
            $aaaaam = ""; 
        } 
 
        if( isset($_POST["FAQCategory"]) ) 
        { 
            $FAQCategory = $_POST["FAQCategory"]; 
            if( !$FAQCategory["name"] ) 
            { 
                $formErrors[] = get_phrase("faq_category_name_error"); 
            } 
 
            if( !isset($formErrors) ) 
            { 
                $buildQuery = array( "name" => $FAQCategory["name"], "sort" => $FAQCategory["sort"], "active" => $FAQCategory["active"] ); 
                if( $type == "editCategory" ) 
                { 
                    $TSUE["TSUE_Database"]->update("tsue_faq_categories", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($cid)); 
                } 
                else 
                { 
                    $TSUE["TSUE_Database"]->insert("tsue_faq_categories", $buildQuery); 
                    $cid = $TSUE["TSUE_Database"]->insert_id(); 
                } 
 
                logadminaction(get_phrase("faq_category_has_been_updated", $FAQCategory["name"] . " (" . $cid . ")")); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $radioButtons = radioyesno("FAQCategory[active]", $FAQCategory["active"]); 
            $formContents = aaaaan(get_phrase("faq_category_active"), $radioButtons); 
            $inputbox = inputbox("FAQCategory[name]", $FAQCategory["name"]); 
            $formContents .= aaaaan(get_phrase("faq_category_name"), $inputbox); 
            $inputbox = inputbox("FAQCategory[sort]", $FAQCategory["sort"], "text textVeryTiny"); 
            $formContents .= aaaaan(get_phrase("faq_category_displayorder"), $inputbox); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    if( $type == "deleteItem" && $fid && $cid ) 
    { 
        $FAQItem = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_faq WHERE fid = " . $TSUE["TSUE_Database"]->escape($fid) . " AND cid = " . $TSUE["TSUE_Database"]->escape($cid)); 
        if( $FAQItem ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_faq", "fid = " . $TSUE["TSUE_Database"]->escape($fid)); 
            logadminaction(get_phrase("faq_item_has_been_deleted", $FAQItem["title"] . " (" . $fid . ")")); 
        } 
 
    } 
 
    if( ($type == "addItem" || $type == "editItem") && $cid ) 
    { 
        $FAQCategory = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_faq_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid)); 
        if( !$FAQCategory ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        addbreadcrumb(array( get_phrase(($type == "editItem" ? "faq_edit_item" : "faq_add_item")) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;cid=" . $cid . "&amp;type=" . $type )); 
        $FAQItem = array( "cid" => $cid, "title" => "", "content" => "", "sort" => "", "active" => 1 ); 
        $aaaaam = ""; 
        if( $type == "editItem" ) 
        { 
            $FAQItem = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_faq WHERE fid = " . $TSUE["TSUE_Database"]->escape($fid)); 
            if( !$FAQItem ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "fid" => $fid ); 
        } 
 
        if( isset($_POST["FAQItem"]) ) 
        { 
            $FAQItem = $_POST["FAQItem"]; 
            if( !$FAQItem["title"] ) 
            { 
                $formErrors[] = get_phrase("faq_title_error"); 
            } 
 
            if( !$FAQItem["content"] ) 
            { 
                $formErrors[] = get_phrase("faq_content_error"); 
            } 
 
            if( !isset($formErrors) ) 
            { 
                $buildQuery = array( "cid" => $cid, "title" => $FAQItem["title"], "content" => $FAQItem["content"], "sort" => $FAQItem["sort"], "active" => $FAQItem["active"] ); 
                if( $type == "editItem" ) 
                { 
                    $TSUE["TSUE_Database"]->update("tsue_faq", $buildQuery, "fid=" . $TSUE["TSUE_Database"]->escape($fid)); 
                } 
                else 
                { 
                    $TSUE["TSUE_Database"]->insert("tsue_faq", $buildQuery); 
                    $fid = $TSUE["TSUE_Database"]->insert_id(); 
                } 
 
                logadminaction(get_phrase("faq_item_has_been_updated", $FAQItem["title"] . " (" . $fid . ")")); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $radioButtons = radioyesno("FAQItem[active]", $FAQItem["active"]); 
            $formContents = aaaaan(get_phrase("faq_item_active"), $radioButtons); 
            $inputbox = inputbox("FAQItem[title]", $FAQItem["title"]); 
            $formContents .= aaaaan(get_phrase("faq_item_title"), $inputbox); 
            $textarea = textarea("FAQItem[content]", $FAQItem["content"], true); 
            $formContents .= aaaaan(get_phrase("faq_item_content"), $textarea); 
            $inputbox = inputbox("FAQItem[sort]", $FAQItem["sort"], "text textVeryTiny"); 
            $formContents .= aaaaan(get_phrase("faq_item_displayorder"), $inputbox); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    $aaaacc = array(  ); 
    $aaaacd = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_faq ORDER BY cid ASC"); 
    while( $FAQItem = $TSUE["TSUE_Database"]->fetch_assoc($aaaacd) ) 
    { 
        $aaaace = aaaaae(array( "cid=" . $FAQItem["cid"] . "&fid=" . $FAQItem["fid"] . "&type=editItem" => array( "phrase" => get_phrase("button_edit") ) )); 
        $aaaacf = aaaaae(array( "cid=" . $FAQItem["cid"] . "&fid=" . $FAQItem["fid"] . "&type=deleteItem" => array( "phrase" => get_phrase("button_delete"), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
        $linkClass = (!$FAQItem["active"] ? "linkDisabled" : ""); 
        $aaaacc[$FAQItem["cid"]][] = "
		<li>[" . $aaaace . "] [" . $aaaacf . "] <span class=\"" . $linkClass . "\">" . $FAQItem["title"] . "</span></li>"; 
    } 
    $aaaacg = ""; 
    $FAQCategories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_faq_categories ORDER BY cid ASC"); 
    while( $FAQCategory = $TSUE["TSUE_Database"]->fetch_assoc($FAQCategories) ) 
    { 
        $items = ""; 
        if( isset($aaaacc[$FAQCategory["cid"]]) ) 
        { 
            $items .= "<ul>"; 
            foreach( $aaaacc[$FAQCategory["cid"]] as $cid => $li ) 
            { 
                $items .= $li; 
            } 
            $items .= "</ul>"; 
        } 
 
        $aaaach = aaaaae(array( "cid=" . $FAQCategory["cid"] . "&type=editCategory" => array( "phrase" => get_phrase("button_edit") ) )); 
        $aaaaci = aaaaae(array( "cid=" . $FAQCategory["cid"] . "&type=addItem" => array( "phrase" => get_phrase("faq_add_item") ) )); 
        $aaaacj = aaaaae(array( "cid=" . $FAQCategory["cid"] . "&type=deleteCategory" => array( "phrase" => get_phrase("button_delete"), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
        $linkClass = (!$FAQCategory["active"] ? "linkDisabled" : ""); 
        $aaaacg .= "
		<li>[" . $aaaaci . "] [" . $aaaach . "] [" . $aaaacj . "] <span class=\"" . $linkClass . "\"><b>" . $FAQCategory["name"] . "</b></span> " . $items . "</li>"; 
    } 
    $aaaack = aaaaae(array( "type=addCategory" => array( "phrase" => get_phrase("faq_create_new_category") ) )); 
    return createtable(get_phrase("dashboard_faq_alt"), "
	<tr>
		<td>
			<ul style=\"line-height: 2;\">
				" . $aaaacg . "
			</ul>
		</td>
	</tr>", 1, $aaaack); 
} 
 
function handletorrentcategories() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $aaaacl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("torrent_categories_new_category") ) )); 
    $tableContents = ""; 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $cid = intval(getvar("cid")); 
    $set = trim(getvar("set")); 
    $confirm = intval(getvar("confirm")); 
    if( isset($_POST["sort"]) ) 
    { 
        foreach( $_POST["sort"] as $Cid => $Sort ) 
        { 
            $Cid = intval($Cid); 
            $Sort = intval($Sort); 
            $TSUE["TSUE_Database"]->update("tsue_torrents_categories", array( "sort" => $Sort ), "cid=" . $TSUE["TSUE_Database"]->escape($Cid)); 
        } 
        handleprune(false); 
        header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]); 
        exit(); 
    } 
    else 
    { 
        if( $set && $cid ) 
        { 
            $Category = $TSUE["TSUE_Database"]->query_result("SELECT cname FROM tsue_torrents_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid)); 
            if( !$Category ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            if( $set == "delete" ) 
            { 
                $Phrase = "delete_all_torrents_in_this_category"; 
            } 
            else 
            { 
                $Phrase = "set_all_torrents_" . $set . "_in_this_category"; 
            } 
 
            if( !isset($TSUE["TSUE_Language"]["phrase"][$Phrase]) ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $Phrase = $TSUE["TSUE_Language"]["phrase"][$Phrase] . ": " . $Category["cname"]; 
            if( !$confirm ) 
            { 
                return errormessage("
			" . $Phrase . "
			<p>" . get_phrase("are_you_sure_that_you_want_to_perform_this_action") . "</p>
			<p>" . aaaaae(array( "set=" . $set . "&cid=" . $cid . "&confirm=1" => array( "class" => "submit", "phrase" => get_phrase("button_apply") ) )) . "</p>"); 
            } 
 
            logadminaction($Phrase); 
            handlerebuildcaches(false); 
            handleprune(false); 
            switch( $set ) 
            { 
                case "free": 
                case "non_free": 
                    aaaacm(array( "download_multiplier" => ($set == "free" ? 0 : 1) ), $cid); 
                    break; 
                case "double_upload": 
                case "non_double_upload": 
                    aaaacm(array( "upload_multiplier" => ($set == "double_upload" ? 2 : 1) ), $cid); 
                    break; 
                case "sticky": 
                case "un_sticky": 
                    $TSUE["TSUE_Database"]->update("tsue_torrents", array( "sticky" => ($set == "sticky" ? 1 : 0) ), "cid=" . $TSUE["TSUE_Database"]->escape($cid)); 
                    break; 
                case "anonymouse": 
                case "non_anonymouse": 
                    aaaacm(array( "anonymouse" => ($set == "anonymouse" ? 1 : 0) ), $cid); 
                    break; 
                case "record_stats": 
                case "non_record_stats": 
                    aaaacm(array( "record_stats" => ($set == "record_stats" ? 1 : 0) ), $cid); 
                    break; 
                case "delete": 
                    $Torrents = $TSUE["TSUE_Database"]->query("SELECT tid FROM tsue_torrents WHERE cid = " . $cid); 
                    if( $TSUE["TSUE_Database"]->num_rows($Torrents) ) 
                    { 
                        while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) ) 
                        { 
                            deletetorrent($Torrent["tid"]); 
                        } 
                    } 
 
                    break; 
            } 
        } 
 
        if( $delete ) 
        { 
            checkdemomode(); 
            $Category = $TSUE["TSUE_Database"]->query_result("SELECT pid, cname FROM tsue_torrents_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            if( $Category ) 
            { 
                $TSUE["TSUE_Database"]->delete("tsue_torrents_categories", "cid = " . $TSUE["TSUE_Database"]->escape($delete)); 
                foreach( array( "png", "gif", "jpg", "jpeg" ) as $extension ) 
                { 
                    $categoryImage = DATAPATH . "torrents/category_images/" . $delete . "." . $extension; 
                    if( file_exists($categoryImage) ) 
                    { 
                        @unlink($categoryImage); 
                    } 
 
                } 
                if( !$Category["pid"] ) 
                { 
                    $subCategories = $TSUE["TSUE_Database"]->query("SELECT cid FROM tsue_torrents_categories WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete)); 
                    if( $TSUE["TSUE_Database"]->num_rows($subCategories) ) 
                    { 
                        while( $subCategory = $TSUE["TSUE_Database"]->fetch_assoc($subCategories) ) 
                        { 
                            foreach( array( "png", "gif", "jpg", "jpeg" ) as $extension ) 
                            { 
                                $categoryImage = DATAPATH . "torrents/category_images/" . $subCategory["cid"] . "." . $extension; 
                                if( file_exists($categoryImage) ) 
                                { 
                                    @unlink($categoryImage); 
                                } 
 
                            } 
                        } 
                        $TSUE["TSUE_Database"]->delete("tsue_torrents_categories", "pid = " . $TSUE["TSUE_Database"]->escape($delete)); 
                    } 
 
                } 
 
                logadminaction(get_phrase("torrent_categories_category_has_been_deleted", $Category["cname"] . " (" . $delete . ")")); 
                handlerebuildcaches(false); 
                handleprune(false); 
            } 
 
        } 
 
        if( $edit || $new ) 
        { 
            $Category = array( "pid" => 0, "sort" => "", "cname" => "", "cviewpermissions" => array(  ), "cdownloadpermissions" => array(  ) ); 
            $aaaaam = ""; 
            if( $edit ) 
            { 
                $Category = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_torrents_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit)); 
                if( !$Category ) 
                { 
                    return errormessage(get_phrase("message_content_error")); 
                } 
 
                $aaaaam = array( "edit" => $edit ); 
                $Category["cviewpermissions"] = tsue_explode(",", $Category["cviewpermissions"]); 
                $Category["cdownloadpermissions"] = tsue_explode(",", $Category["cdownloadpermissions"]); 
                addbreadcrumb(array( get_phrase("button_edit") . ": " . $Category["cname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
            } 
            else 
            { 
                addbreadcrumb(array( get_phrase("torrent_categories_new_category") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
            } 
 
            if( isset($_POST["Category"]) ) 
            { 
                checkdemomode(); 
                $Category = $_POST["Category"]; 
                $categoryImage = $_FILES["categoryImage"]; 
                if( !isset($Category["cviewpermissions"]) ) 
                { 
                    $Category["cviewpermissions"] = array(  ); 
                } 
 
                if( !isset($Category["cdownloadpermissions"]) ) 
                { 
                    $Category["cdownloadpermissions"] = array(  ); 
                } 
 
                if( !$Category["cname"] ) 
                { 
                    $formErrors[] = get_phrase("message_required_fields_error"); 
                } 
 
                if( $categoryImage && $categoryImage["tmp_name"] ) 
                { 
                    if( !is_uploaded_file($categoryImage["tmp_name"]) ) 
                    { 
                        $flagError[] = get_phrase("upload_error3"); 
                    } 
                    else 
                    { 
                        if( !$categoryImage["name"] || !$categoryImage["type"] || !$categoryImage["tmp_name"] || $categoryImage["error"] || !$categoryImage["size"] ) 
                        { 
                            $flagError[] = get_phrase("upload_error3"); 
                        } 
                        else 
                        { 
                            if( !in_array(file_extension($categoryImage["name"]), array( "png", "gif", "jpg", "jpeg" )) ) 
                            { 
                                $flagError[] = get_phrase("upload_error6", "png,gif,jpg"); 
                            } 
                            else 
                            { 
                                $aaaacn = file_extension($categoryImage["name"]); 
                                $newFlag = $categoryImage["tmp_name"]; 
                            } 
 
                        } 
 
                    } 
 
                } 
 
                if( isset($flagError) ) 
                { 
                    $formErrors = (isset($formErrors) ? array_merge($formErrors, $flagError) : $flagError); 
                    unset($flagError); 
                } 
 
                if( !isset($formErrors) ) 
                { 
                    $buildQuery = array( "cname" => $Category["cname"], "pid" => $Category["pid"], "sort" => $Category["sort"], "cviewpermissions" => implode(",", $Category["cviewpermissions"]), "cdownloadpermissions" => implode(",", $Category["cdownloadpermissions"]) ); 
                    if( $edit ) 
                    { 
                        $TSUE["TSUE_Database"]->update("tsue_torrents_categories", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                        $flagID = $edit; 
                    } 
                    else 
                    { 
                        $TSUE["TSUE_Database"]->insert("tsue_torrents_categories", $buildQuery); 
                        $flagID = $TSUE["TSUE_Database"]->insert_id(); 
                    } 
 
                    if( isset($newFlag) && $flagID ) 
                    { 
                        foreach( array( "png", "gif", "jpg", "jpeg" ) as $checkExtension ) 
                        { 
                            $aaaaco = DATAPATH . "torrents/category_images/" . $flagID . "." . $checkExtension; 
                            if( file_exists($aaaaco) ) 
                            { 
                                @unlink($aaaaco); 
                            } 
 
                        } 
                        $aaaacp = DATAPATH . "torrents/category_images/" . $flagID . "." . $aaaacn; 
                        @move_uploaded_file($newFlag, $aaaacp); 
                    } 
 
                    logadminaction(get_phrase("torrent_categories_category_has_been_updated", $Category["cname"] . " (" . $flagID . ")")); 
                    $HTML .= successmessage(get_phrase("message_saved")); 
                    handlerebuildcaches(false); 
                    handleprune(false); 
                    $updateDone = true; 
                } 
                else 
                { 
                    $HTML .= errormessage(implode("<br />", $formErrors)); 
                } 
 
            } 
 
            if( !isset($updateDone) ) 
            { 
                $inputbox = inputbox("Category[cname]", $Category["cname"], "text texthalf"); 
                $formContents = aaaaan(get_phrase("torrent_categories_category_name"), $inputbox); 
                $selectbox = aaaacq("Category[pid]", $Category["pid"], (isset($Category["cid"]) ? $Category["cid"] : 0)); 
                $formContents .= aaaaan(get_phrase("global_parent_category"), $selectbox); 
                $inputbox = inputbox("Category[sort]", $Category["sort"], "text textVeryTiny"); 
                $formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox); 
                $aaaacr = aaaacs("categoryImage"); 
                $formContents .= aaaaan(get_phrase("torrent_categories_category_image"), $aaaacr, ($edit ? get_phrase("global_leave_empty_keep_current_one") : "")); 
                $aaaabe = aaaaaw("Category[cviewpermissions][]", $Category["cviewpermissions"]); 
                $formContents .= aaaaan(get_phrase("global_view_permissions"), $aaaabe); 
                $aaaabe = aaaaaw("Category[cdownloadpermissions][]", $Category["cdownloadpermissions"]); 
                $formContents .= aaaaan(get_phrase("global_download_permissions"), $aaaabe); 
                $HTML .= aaaabg($formContents, $aaaaam); 
                return $HTML; 
            } 
 
        } 
 
        $aaaact = array(  ); 
        $subCategories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories WHERE pid > 0 ORDER BY `sort` ASC"); 
        if( $TSUE["TSUE_Database"]->num_Rows($subCategories) ) 
        { 
            while( $subCategory = $TSUE["TSUE_Database"]->fetch_assoc($subCategories) ) 
            { 
                $aaaact[$subCategory["pid"]][] = $subCategory; 
            } 
        } 
 
        $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories WHERE pid = 0 ORDER BY `sort` ASC"); 
        if( !$TSUE["TSUE_Database"]->num_rows($Categories) ) 
        { 
            $tableContents = errormessage(get_phrase("no_results_found")); 
        } 
        else 
        { 
            $tableContents = ""; 
            while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) ) 
            { 
                $tableContents .= aaaacu($Category); 
                if( isset($aaaact[$Category["cid"]]) ) 
                { 
                    foreach( $aaaact[$Category["cid"]] as $subCategory ) 
                    { 
                        $tableContents .= aaaacu($subCategory, true); 
                    } 
                } 
 
            } 
            $tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) )); 
        } 
 
        $HTML .= aaaabn(createtable(get_phrase("dashboard_torrent_categories_alt"), $tableContents, 3, $aaaacl)); 
        return $HTML; 
    } 
 
} 
 
function aaaacm($Option, $Cid) 
{ 
    global $TSUE; 
    $Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,options FROM tsue_torrents WHERE cid = " . $Cid); 
    if( $TSUE["TSUE_Database"]->num_rows($Torrents) ) 
    { 
        while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) ) 
        { 
            $buildQuery = array(  ); 
            $buildQuery["options"] = serialize(array_merge(unserialize($Torrent["options"]), $Option)); 
            $buildQuery["flags"] = 2; 
            if( array_key_exists("upload_multiplier", $Option) ) 
            { 
                $buildQuery["upload_multiplier"] = $Option["upload_multiplier"]; 
            } 
            else 
            { 
                if( array_key_exists("download_multiplier", $Option) ) 
                { 
                    $buildQuery["download_multiplier"] = $Option["download_multiplier"]; 
                } 
 
            } 
 
            $TSUE["TSUE_Database"]->update("tsue_torrents", $buildQuery, "tid=" . $TSUE["TSUE_Database"]->escape($Torrent["tid"])); 
        } 
    } 
 
} 
 
function aaaacu($Category, $isSubCategory = false) 
{ 
    global $TSUE; 
    $aaaacv = aaaaae(array( "edit=" . $Category["cid"] => array( "phrase" => $Category["cname"] ) )); 
    $aaaacw = aaaaae(array( "delete=" . $Category["cid"] => array( "phrase" => getimage("buttons/delete" . (($isSubCategory ? "_s" : "")) . ".png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") . ((!$isSubCategory ? get_phrase("torrent_categories_category_delete_warning") : "")) ) )); 
    $categoryImage = get_torrent_category_image($Category["cid"]); 
    if( $categoryImage ) 
    { 
        $categoryImage = "<img src=\"" . $categoryImage . "\" alt=\"" . $Category["cname"] . "\" title=\"" . $Category["cname"] . "\" border=\"0\"" . (($isSubCategory ? " width=\"30\" height=\"30\" style=\"margin-left: 30px;\"" : "")) . " />"; 
    } 
 
    $Options = "
	<div rel=\"dropDownMenu\" class=\"dropDownMenu\">
		<span class=\"smallPassiveText\">[Options]</span>
		<div id=\"dropDownMenu\">
			" . aaaaae(array( "set=free&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_free_in_this_category") ) )) . "
			" . aaaaae(array( "set=non_free&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_free_in_this_category") ) )) . "
			" . aaaaae(array( "set=double_upload&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_double_upload_in_this_category") ) )) . "
			" . aaaaae(array( "set=non_double_upload&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_double_upload_in_this_category") ) )) . "
			" . aaaaae(array( "set=sticky&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_sticky_in_this_category") ) )) . "
			" . aaaaae(array( "set=un_sticky&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_un_sticky_in_this_category") ) )) . "
			" . aaaaae(array( "set=anonymouse&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_anonymouse_in_this_category") ) )) . "
			" . aaaaae(array( "set=non_anonymouse&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_anonymouse_in_this_category") ) )) . "
			" . aaaaae(array( "set=record_stats&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_record_stats_in_this_category") ) )) . "
			" . aaaaae(array( "set=non_record_stats&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_record_stats_in_this_category") ) )) . "
			" . aaaaae(array( "set=delete&cid=" . $Category["cid"] => array( "phrase" => get_phrase("delete_all_torrents_in_this_category") ) )) . "
		</div>
	</div>"; 
    if( $isSubCategory ) 
    { 
        $tableContents = aaaaag(array( array( "width" => "75%", "text" => "&nbsp;&nbsp;" . $categoryImage . " <span class=\"smallPassiveText\">-- " . $aaaacv . "</span>" . $Options ), array( "width" => "5%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "20%", "text" => $aaaacw, "align" => "right" ) )); 
    } 
    else 
    { 
        $tableContents = aaaaag(array( array( "width" => "65%", "text" => $categoryImage . " " . $aaaacv . $Options ), array( "width" => "10%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaacw, "align" => "right" ) )); 
    } 
 
    return $tableContents; 
} 
 
function handlemarket() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $aaaacx = aaaaae(array( "new=1" => array( "phrase" => get_phrase("market_create_new") ) )); 
    $enable_disable = intval(getvar("enable_disable")); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    if( $enable_disable ) 
    { 
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
        $Market = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_market WHERE itemid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
        if( $Market ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_market", $BuildQuery, "itemid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            logadminaction(get_phrase("market_item_x_updated", $Market["title"] . " (" . $enable_disable . ")")); 
        } 
 
    } 
 
    if( $delete ) 
    { 
        $Market = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_market WHERE itemid = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Market ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_market", "itemid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            logadminaction(get_phrase("market_item_x_deleted", $Market["title"] . " (" . $delete . ")")); 
        } 
 
    } 
 
    if( $edit || $new ) 
    { 
        $Market = array( "title" => "", "description" => "", "required_points" => 0, "item_type" => "", "amount" => "", "active" => 1, "permissions" => array(  ) ); 
        $aaaaam = ""; 
        if( $edit ) 
        { 
            $Market = $TSUE["TSUE_Database"]->query_result("SELECT title,description,required_points,item_type,amount,active,permissions FROM tsue_market WHERE itemid = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Market ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
            $Market["permissions"] = tsue_explode(",", $Market["permissions"]); 
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Market["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        } 
        else 
        { 
            addbreadcrumb(array( get_phrase("market_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
        } 
 
        if( isset($_POST["Market"]) ) 
        { 
            $Market = $_POST["Market"]; 
            if( !$Market["title"] ) 
            { 
                $formErrors[] = get_phrase("market_title_error"); 
            } 
 
            if( !$Market["item_type"] ) 
            { 
                $formErrors[] = get_phrase("market_item_type_error"); 
            } 
 
            if( !$Market["amount"] && in_array($Market["item_type"], array( "invites_left", "uploaded", "gift", "hitrun" )) ) 
            { 
                $formErrors[] = get_phrase("market_item_amount_error"); 
            } 
 
            if( !isset($Market["permissions"]) ) 
            { 
                $Market["permissions"] = array(  ); 
            } 
 
            if( !isset($formErrors) ) 
            { 
                $buildQuery = array( "title" => $Market["title"], "description" => $Market["description"], "required_points" => $Market["required_points"], "item_type" => $Market["item_type"], "amount" => $Market["amount"], "active" => $Market["active"], "permissions" => implode(",", $Market["permissions"]) ); 
                if( $edit ) 
                { 
                    $TSUE["TSUE_Database"]->update("tsue_market", $buildQuery, "itemid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $TSUE["TSUE_Database"]->insert("tsue_market", $buildQuery); 
                } 
 
                logadminaction(get_phrase("market_item_x_updated", $Market["title"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $radioButtons = radioyesno("Market[active]", $Market["active"]); 
            $formContents = aaaaan(get_phrase("market_item_active"), $radioButtons); 
            $inputbox = inputbox("Market[title]", $Market["title"]); 
            $formContents .= aaaaan(get_phrase("market_item_title"), $inputbox); 
            $textarea = textarea("Market[description]", $Market["description"], true); 
            $formContents .= aaaaan(get_phrase("market_item_description"), $textarea); 
            $inputbox = inputbox("Market[required_points]", $Market["required_points"]); 
            $formContents .= aaaaan(get_phrase("market_required_points"), $inputbox); 
            $selectbox = selectbox("Market[item_type]", $Market["item_type"], array( "invites_left" => get_phrase("market_item_type_invites_left"), "custom_title" => get_phrase("market_item_type_custom_title"), "uploaded" => get_phrase("market_item_type_uploaded"), "gift" => get_phrase("market_item_type_gift"), "hitrun" => get_phrase("market_item_type_hitrun"), "change_membername" => get_phrase("change_membername") )); 
            $formContents .= aaaaan(get_phrase("market_item_type"), $selectbox); 
            $inputbox = inputbox("Market[amount]", $Market["amount"], "text texttiny", "", false, false, getimage("buttons/calculator.png", get_phrase("calculator"), "calculator")); 
            $formContents .= aaaaan(get_phrase("market_item_amount"), $inputbox); 
            $Usergroups = aaaaaw("Market[permissions][]", $Market["permissions"]); 
            $formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all")); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    $AllItems = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_market ORDER BY active DESC, required_points ASC"); 
    if( !$TSUE["TSUE_Database"]->num_rows($AllItems) ) 
    { 
        $tableContents = errormessage(get_phrase("market_item_no_item_yet")); 
    } 
    else 
    { 
        $tableContents = ""; 
        while( $Market = $TSUE["TSUE_Database"]->fetch_assoc($AllItems) ) 
        { 
            $linkClass = (!$Market["active"] ? "linkDisabled" : ""); 
            $aaaacy = aaaaae(array( "edit=" . $Market["itemid"] => array( "phrase" => $Market["title"], "class" => $linkClass ) )); 
            $aaaacz = aaaaae(array( "delete=" . $Market["itemid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            if( $Market["active"] ) 
            { 
                $aaaada = aaaaae(array( "enable_disable=" . $Market["itemid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
            } 
            else 
            { 
                $aaaada = aaaaae(array( "enable_disable=" . $Market["itemid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
            } 
 
            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaacy . " <span class=\"smallPassiveText\">" . get_phrase("market_required_points") . ": " . $Market["required_points"] . "</span>" ), array( "width" => "15%", "text" => $aaaada . $aaaacz, "align" => "right" ) )); 
        } 
    } 
 
    $HTML .= createtable(get_phrase("dashboard_market_alt"), $tableContents, 2, $aaaacx); 
    return $HTML; 
} 
 
function handleapimanager() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $enable_disable = intval(getvar("enable_disable")); 
    $edit = intval(getvar("edit")); 
    $logs = intval(getvar("logs")); 
    if( $logs ) 
    { 
        $API = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades_api WHERE api_id = " . $TSUE["TSUE_Database"]->escape($logs)); 
        if( !$API ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        addbreadcrumb(array( $API["title"] . ": " . get_phrase("logs", $TSUE["TSUE_Member"]["membername"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;logs=" . $logs )); 
        $getLogs = $TSUE["TSUE_Database"]->query("SELECT t.amount, t.currency, t.dateline, t.full_log, p.hash, p.completed, p.memberid, u.upgrade_title, u.upgrade_length_type, u.upgrade_length, m.membername, g.groupname, g.groupstyle FROM tsue_member_upgrades_transaction t LEFT JOIN tsue_member_upgrades_purchases p USING(history_id) LEFT JOIN tsue_member_upgrades u ON (p.upgrade_id=u.upgrade_id) LEFT JOIN tsue_members m ON(p.memberid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE t.api_id = " . $TSUE["TSUE_Database"]->escape($logs) . " AND full_log != '' AND completed = 0 ORDER BY t.dateline DESC"); 
        if( !$TSUE["TSUE_Database"]->num_rows($getLogs) ) 
        { 
            return errormessage(get_phrase("message_nothing_found")); 
        } 
 
        $List = ""; 
        while( $Log = $TSUE["TSUE_Database"]->fetch_assoc($getLogs) ) 
        { 
            if( $Log["upgrade_length_type"] == "lifetime" ) 
            { 
                $Log["upgrade_length"] = ""; 
                $Log["upgrade_length_type"] = get_phrase("upgrade_lifetime"); 
            } 
            else 
            { 
                if( $Log["upgrade_length_type"] ) 
                { 
                    $Log["upgrade_length_type"] = get_phrase("upgrade_" . $Log["upgrade_length_type"] . ((1 < $Log["upgrade_length"] ? "s" : ""))); 
                } 
 
            } 
 
            if( $Log["amount"] ) 
            { 
                $upradePrice = get_phrase("upgrade_price", $Log["amount"], strtoupper($Log["currency"]), $Log["upgrade_length"], $Log["upgrade_length_type"]); 
            } 
            else 
            { 
                $upradePrice = "[N/A]"; 
            } 
 
            $List .= "
			<div class=\"apiLogs\">
				<span style=\"float: right;\">#" . $Log["hash"] . "</span>
				" . $Log["upgrade_title"] . " <span class=\"smallPassiveText\">" . $upradePrice . "</span><br />
				<b>" . get_phrase("upgrade_membername") . ":</b> " . aaaaaf("?p=profile&pid=18&memberid=" . $Log["memberid"], getmembername($Log["membername"], $Log["groupstyle"])) . "<br />
				<b>" . get_phrase("torrents_peer_last_updated") . ":</b> " . convert_relative_time($Log["dateline"]) . "<br />
				<b>" . get_phrase("logs") . ":</b> " . $Log["full_log"] . "
			</div>
			<br />"; 
        } 
        return $List; 
    } 
 
    if( $edit ) 
    { 
        $API = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades_api WHERE api_id = " . $TSUE["TSUE_Database"]->escape($edit)); 
        if( !$API ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        addbreadcrumb(array( $API["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        $aaaaam = array( "edit" => $edit ); 
        $APISettings = ($API["settings"] ? unserialize($API["settings"]) : false); 
        if( !$APISettings ) 
        { 
            if( $API["classname"] == "coinbase" ) 
            { 
                $APISettings = array( "secret_key" => "", "api_key" => "", "payment_inform_emails" => "", "payment_pm_owner" => "" ); 
            } 
            else 
            { 
                $APISettings = array( "business" => "", "demo_mode" => 0, "payment_inform_emails" => "", "payment_pm_owner" => "" ); 
            } 
 
        } 
 
        if( isset($_POST["APISettings"]) ) 
        { 
            $APISettings = $_POST["APISettings"]; 
            if( !isset($formErrors) ) 
            { 
                $buildQuery = array( "settings" => serialize($APISettings) ); 
                $TSUE["TSUE_Database"]->update("tsue_member_upgrades_api", $buildQuery, "api_id=" . $TSUE["TSUE_Database"]->escape($edit)); 
                logadminaction(get_phrase("upgrade_api_has_been_updated", $API["title"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                handlerebuildcaches(false); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            if( $API["classname"] == "coinbase" ) 
            { 
                $inputbox = inputbox("APISettings[secret_key]", $APISettings["secret_key"]); 
                $formContents = aaaaan(get_phrase("upgrade_api_secret_key"), $inputbox, get_phrase("upgrade_api_secret_key_alt")); 
                $inputbox = inputbox("APISettings[api_key]", $APISettings["api_key"]); 
                $formContents .= aaaaan(get_phrase("upgrade_api_api_key"), $inputbox, get_phrase("upgrade_api_api_key_alt")); 
            } 
            else 
            { 
                $inputbox = inputbox("APISettings[business]", $APISettings["business"]); 
                $formContents = aaaaan(get_phrase("upgrade_api_business"), $inputbox, get_phrase("upgrade_api_business_alt", $API["title"])); 
                $radioButtons = radioyesno("APISettings[demo_mode]", $APISettings["demo_mode"]); 
                $formContents .= aaaaan(get_phrase("upgrade_api_demo_mode"), $radioButtons); 
            } 
 
            $inputbox = inputbox("APISettings[payment_inform_emails]", $APISettings["payment_inform_emails"]); 
            $formContents .= aaaaan(get_phrase("upgrade_api_email_notification"), $inputbox, get_phrase("upgrade_api_email_notification_alt")); 
            $inputbox = inputbox("APISettings[payment_pm_owner]", $APISettings["payment_pm_owner"], "text textVeryTiny"); 
            $formContents .= aaaaan(get_phrase("upgrade_api_pm_notification_owner"), $inputbox, get_phrase("upgrade_api_pm_notification_owner_alt")); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    if( $enable_disable ) 
    { 
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
        $API = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_member_upgrades_api WHERE api_id = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
        if( $API ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_member_upgrades_api", $BuildQuery, "api_id = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            logadminaction(get_phrase("upgrade_api_has_been_updated", $API["title"] . " (" . $enable_disable . ")")); 
            handlerebuildcaches(false); 
        } 
 
    } 
 
    $apiList = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_member_upgrades_api ORDER BY active DESC, title ASC"); 
    if( !$TSUE["TSUE_Database"]->num_rows($apiList) ) 
    { 
        $tableContents = errormessage(get_phrase("upgrade_no_api")); 
    } 
    else 
    { 
        $tableContents = ""; 
        while( $API = $TSUE["TSUE_Database"]->fetch_assoc($apiList) ) 
        { 
            $Image = array( "src" => "images/payment_api/" . $API["classname"] . ".png", "alt" => $API["title"], "title" => $API["title"], "class" => "middle", "id" => "", "rel" => "" ); 
            $Image = aaaadb($Image); 
            $linkClass = (!$API["active"] ? "linkDisabled" : ""); 
            $aaaadc = aaaaae(array( "edit=" . $API["api_id"] => array( "phrase" => $API["title"], "class" => $linkClass ) )); 
            $aaaadd = aaaaae(array( "logs=" . $API["api_id"] => array( "phrase" => getimage("buttons/examine.png", get_phrase("logs")) ) )); 
            if( $API["active"] ) 
            { 
                $aaaade = aaaaae(array( "enable_disable=" . $API["api_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
            } 
            else 
            { 
                $aaaade = aaaaae(array( "enable_disable=" . $API["api_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
            } 
 
            $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $Image . " " . $aaaadc . "<span class=\"smallPassiveText\">" . get_phrase("upgrade_api_supported_currency") . ": " . $API["currency"] . "</span>" ), array( "width" => "20%", "text" => $aaaadd . $aaaade, "align" => "right" ) )); 
        } 
    } 
 
    $HTML .= createtable(get_phrase("dashboard_api_manager_alt"), $tableContents, 2); 
    return $HTML; 
} 
 
function handlecronentries() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $aaaadf = aaaaae(array( "new=1" => array( "phrase" => get_phrase("dashboard_cron_entries_create_new") ) )); 
    $enable_disable = intval(getvar("enable_disable")); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $run = intval(getvar("run")); 
    if( $run ) 
    { 
        $BuildQuery = array( "nextrun" => TIMENOW ); 
        $Cron = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($run)); 
        if( $Cron ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_cron", $BuildQuery, "cid = " . $TSUE["TSUE_Database"]->escape($run)); 
            logadminaction(get_phrase("dashboard_cron_entries_cron_updated", $Cron["title"] . " (" . $run . ")")); 
            $HTML .= successmessage(get_phrase("message_saved")); 
        } 
 
    } 
 
    if( $edit || $new ) 
    { 
        $Cron = array( "title" => "", "nextrun" => TIMENOW, "minutes" => 0, "filename" => "", "function" => "", "active" => 0 ); 
        $aaaaam = ""; 
        if( $edit ) 
        { 
            $Cron = $TSUE["TSUE_Database"]->query_result("SELECT title,nextrun,minutes,filename,function,active FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Cron ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Cron["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        } 
        else 
        { 
            addbreadcrumb(array( get_phrase("dashboard_cron_entries_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
        } 
 
        if( isset($_POST["Cron"]) ) 
        { 
            $Cron = $_POST["Cron"]; 
            $aaaadg = array( "years" => 365 * 24 * 60 * 60, "months" => 31 * 24 * 60 * 60, "weeks" => 7 * 24 * 60 * 60, "days" => 24 * 60 * 60, "hours" => 60 * 60, "minutes" => 60 ); 
            $Cron["minutes"] = 0; 
            foreach( array( "years", "months", "weeks", "days", "hours", "minutes" ) as $aaaadh ) 
            { 
                if( isset($_POST["Cron"][$aaaadh]) && $_POST["Cron"][$aaaadh] && isset($aaaadg[$aaaadh]) ) 
                { 
                    $Cron["minutes"] += intval($_POST["Cron"][$aaaadh]) * $aaaadg[$aaaadh]; 
                } 
 
            } 
            if( !$Cron["title"] ) 
            { 
                $formErrors[] = get_phrase("dashboard_cron_entries_cron_title_error"); 
            } 
 
            if( !$Cron["filename"] || !is_file(LIBRARYPATH . "cron/" . $Cron["filename"]) ) 
            { 
                $formErrors[] = get_phrase("dashboard_cron_entries_cron_file_error"); 
            } 
 
            if( !$Cron["function"] ) 
            { 
                $formErrors[] = get_phrase("dashboard_cron_entries_cron_function_error"); 
            } 
 
            if( !$Cron["minutes"] ) 
            { 
                $formErrors[] = get_phrase("dashboard_cron_entries_cron_run_period_error"); 
            } 
 
            if( !isset($formErrors) ) 
            { 
                $buildQuery = array( "title" => $Cron["title"], "nextrun" => TIMENOW + $Cron["minutes"], "minutes" => $Cron["minutes"], "filename" => $Cron["filename"], "function" => $Cron["function"], "active" => $Cron["active"] ); 
                if( $edit ) 
                { 
                    unset($buildQuery["nextrun"]); 
                    $TSUE["TSUE_Database"]->update("tsue_cron", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $TSUE["TSUE_Database"]->insert("tsue_cron", $buildQuery); 
                } 
 
                logadminaction(get_phrase("dashboard_cron_entries_cron_updated", $Cron["title"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $radioButtons = radioyesno("Cron[active]", $Cron["active"]); 
            $formContents = aaaaan(get_phrase("dashboard_cron_entries_active"), $radioButtons); 
            $inputbox = inputbox("Cron[title]", $Cron["title"]); 
            $formContents .= aaaaan(get_phrase("dashboard_cron_entries_title"), $inputbox); 
            $inputbox = inputbox("Cron[filename]", $Cron["filename"]); 
            $formContents .= aaaaan(get_phrase("dashboard_cron_entries_filename"), $inputbox, get_phrase("global_file_path", (DEMO_MODE ? "" : LIBRARYPATH . "cron/"))); 
            $inputbox = inputbox("Cron[function]", $Cron["function"]); 
            $formContents .= aaaaan(get_phrase("dashboard_cron_entries_function"), $inputbox); 
            $aaaadi = aaaadj($Cron["minutes"]); 
            $inputbox = inputbox("Cron[years]", $aaaadi["years"], "text textVeryTiny", get_phrase("dashboard_cron_entries_years")); 
            $inputbox .= inputbox("Cron[months]", $aaaadi["months"], "text textVeryTiny", get_phrase("dashboard_cron_entries_months")); 
            $inputbox .= inputbox("Cron[weeks]", $aaaadi["weeks"], "text textVeryTiny", get_phrase("dashboard_cron_entries_weeks")); 
            $inputbox .= inputbox("Cron[days]", $aaaadi["days"], "text textVeryTiny", get_phrase("dashboard_cron_entries_days")); 
            $inputbox .= inputbox("Cron[hours]", $aaaadi["hours"], "text textVeryTiny", get_phrase("dashboard_cron_entries_hours")); 
            $inputbox .= inputbox("Cron[minutes]", $aaaadi["minutes"], "text textVeryTiny", get_phrase("dashboard_cron_entries_minutes")); 
            $formContents .= aaaaan(get_phrase("dashboard_cron_entries_run_period"), $inputbox); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    if( $enable_disable ) 
    { 
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
        $Cron = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
        if( $Cron ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_cron", $BuildQuery, "cid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            logadminaction(get_phrase("dashboard_cron_entries_cron_updated", $Cron["title"] . " (" . $enable_disable . ")")); 
        } 
 
    } 
 
    if( $delete ) 
    { 
        $Cron = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Cron ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_cron", "cid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            logadminaction(get_phrase("dashboard_cron_entries_cron_deleted", $Cron["title"] . " (" . $delete . ")")); 
        } 
 
    } 
 
    $aaaadk = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_cron ORDER BY active DESC, filename ASC"); 
    if( !$TSUE["TSUE_Database"]->num_rows($aaaadk) ) 
    { 
        $tableContents = errormessage(get_phrase("dashboard_cron_entries_no_cron")); 
    } 
    else 
    { 
        $tableContents = ""; 
        while( $Cron = $TSUE["TSUE_Database"]->fetch_assoc($aaaadk) ) 
        { 
            $loadTime = get_phrase("load_time", round($Cron["loadTime"], 4)); 
            $queryCount = get_phrase("query_count", number_format($Cron["queryCount"])); 
            $nextRun = get_phrase("dashboard_cron_entries_next_run", convert_relative_time($Cron["nextrun"])); 
            $linkClass = (!$Cron["active"] ? "linkDisabled" : ""); 
            $aaaadl = aaaaae(array( "run=" . $Cron["cid"] => array( "phrase" => getimage("buttons/refresh.png", get_phrase("dashboard_cron_entries_run_cron")) ) )); 
            $aaaadm = aaaaae(array( "edit=" . $Cron["cid"] => array( "phrase" => $Cron["title"], "class" => $linkClass ) )); 
            $aaaadn = aaaaae(array( "delete=" . $Cron["cid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            if( $Cron["active"] ) 
            { 
                $aaaado = aaaaae(array( "enable_disable=" . $Cron["cid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
            } 
            else 
            { 
                $aaaado = aaaaae(array( "enable_disable=" . $Cron["cid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
            } 
 
            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaadm . " <span class=\"smallPassiveText\">" . $nextRun . " | " . $queryCount . " | " . $loadTime . "</span>" ), array( "width" => "15%", "text" => $aaaado . $aaaadl . $aaaadn, "align" => "right" ) )); 
        } 
    } 
 
    $HTML .= createtable(get_phrase("dashboard_cron_entries"), $tableContents, 2, $aaaadf); 
    return $HTML; 
} 
 
function handlerebuildcaches($logANDreturn = true) 
{ 
    global $TSUE; 
    $content = ""; 
    $cacheContents = array(  ); 
    $Announcement = $TSUE["TSUE_Database"]->query_result("SELECT a.*, m.membername FROM tsue_announcements a LEFT JOIN tsue_members m USING(memberid) WHERE a.active = 1 ORDER BY a.date DESC LIMIT 1"); 
    if( $Announcement ) 
    { 
        $cacheContents["active_announcements_cache"] = array( "aid" => $Announcement["aid"], "memberid" => $Announcement["memberid"], "date" => $Announcement["date"], "title" => $Announcement["title"], "content" => $Announcement["content"] ); 
    } 
    else 
    { 
        $cacheContents["active_announcements_cache"] = array(  ); 
    } 
 
    $News = $TSUE["TSUE_Database"]->query("SELECT n.*, m.membername FROM tsue_news n LEFT JOIN tsue_members m USING(memberid) WHERE n.active = 1 ORDER BY n.date DESC"); 
    if( $TSUE["TSUE_Database"]->num_rows($News) ) 
    { 
        while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($News) ) 
        { 
            $cacheContents["active_news_cache"][] = array( "nid" => $nItem["nid"], "memberid" => $nItem["memberid"], "date" => $nItem["date"], "title" => $nItem["title"], "content" => $nItem["content"] ); 
        } 
    } 
    else 
    { 
        $cacheContents["active_news_cache"] = array(  ); 
    } 
 
    $aaaadp = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_country ORDER BY 'country'"); 
    if( $TSUE["TSUE_Database"]->num_rows($aaaadp) ) 
    { 
        while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($aaaadp) ) 
        { 
            $cacheContents["banned_countries_cache"][] = $nItem["country"]; 
        } 
    } 
    else 
    { 
        $cacheContents["banned_countries_cache"] = array(  ); 
    } 
 
    $aaaadq = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_email ORDER BY 'banned_email'"); 
    if( $TSUE["TSUE_Database"]->num_rows($aaaadq) ) 
    { 
        while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($aaaadq) ) 
        { 
            $cacheContents["banned_emails_cache"][] = $nItem["banned_email"]; 
        } 
    } 
    else 
    { 
        $cacheContents["banned_emails_cache"] = array(  ); 
    } 
 
    $bannedIPs = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ip_match WHERE match_type = 'banned'"); 
    if( $TSUE["TSUE_Database"]->num_rows($bannedIPs) ) 
    { 
        while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($bannedIPs) ) 
        { 
            $cacheContents["banned_ips_cache"][$nItem["first_octet"]][] = array( $nItem["start_range"], $nItem["end_range"] ); 
        } 
    } 
    else 
    { 
        $cacheContents["banned_ips_cache"] = array(  ); 
    } 
 
    $Smilies = $TSUE["TSUE_Database"]->query("SELECT smilie_text, smilie_title, smilie_file FROM tsue_smilies"); 
    if( $TSUE["TSUE_Database"]->num_rows($Smilies) ) 
    { 
        while( $Smilie = $TSUE["TSUE_Database"]->fetch_assoc($Smilies) ) 
        { 
            $cacheContents["dialog_smilies_cache"][] = $Smilie; 
        } 
    } 
    else 
    { 
        $cacheContents["dialog_smilies_cache"] = array(  ); 
    } 
 
    $permissions = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums_permissions ORDER BY forumid ASC"); 
    if( $TSUE["TSUE_Database"]->num_rows($permissions) ) 
    { 
        while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($permissions) ) 
        { 
            $cacheContents["forums_permissions_cache"][] = array( "forumid" => $nItem["forumid"], "membergroupid" => $nItem["membergroupid"], "permissions" => $nItem["permissions"] ); 
        } 
    } 
    else 
    { 
        $cacheContents["forums_permissions_cache"] = array(  ); 
    } 
 
    $prefixes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums_thread_prefixes ORDER BY pname ASC"); 
    if( $TSUE["TSUE_Database"]->num_rows($prefixes) ) 
    { 
        while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($prefixes) ) 
        { 
            $cacheContents["forums_thread_prefixes"][] = array( "pid" => $nItem["pid"], "pname" => $nItem["pname"], "cssname" => $nItem["cssname"], "viewpermissions" => $nItem["viewpermissions"] ); 
        } 
    } 
    else 
    { 
        $cacheContents["forums_thread_prefixes"] = array(  ); 
    } 
 
    $Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, name, filename, contents, viewpermissions, pluginOptions FROM tsue_plugins WHERE `active` = 1"); 
    if( $TSUE["TSUE_Database"]->num_rows($Plugins) ) 
    { 
        while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) ) 
        { 
            $cacheContents["tsue_plugins_cache"][] = $nItem; 
        } 
    } 
    else 
    { 
        $cacheContents["tsue_plugins_cache"] = array(  ); 
    } 
 
    $Genres = $TSUE["TSUE_Database"]->query("SELECT gid, gname, gicon, categories FROM tsue_torrents_genres WHERE active = 1 ORDER BY gname ASC"); 
    if( $TSUE["TSUE_Database"]->num_rows($Genres) ) 
    { 
        while( $Genre = $TSUE["TSUE_Database"]->fetch_assoc($Genres) ) 
        { 
            $cacheContents["tsue_torrents_genres_cache"][] = $Genre; 
        } 
    } 
    else 
    { 
        $cacheContents["tsue_torrents_genres_cache"] = array(  ); 
    } 
 
    $Themes = $TSUE["TSUE_Database"]->query("SELECT themeid FROM tsue_themes WHERE active = 1"); 
    if( $TSUE["TSUE_Database"]->num_rows($Themes) ) 
    { 
        while( $Theme = $TSUE["TSUE_Database"]->fetch_assoc($Themes) ) 
        { 
            $aaaadr[] = $Theme["themeid"]; 
        } 
        $TSUE["TSUE_Settings"]->settings["global_settings"]["available_themes"] = implode(",", $aaaadr); 
    } 
 
    $Languages = $TSUE["TSUE_Database"]->query("SELECT languageid FROM tsue_languages WHERE active = 1"); 
    if( $TSUE["TSUE_Database"]->num_rows($Languages) ) 
    { 
        while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) ) 
        { 
            $languageCache[] = $Language["languageid"]; 
        } 
        $TSUE["TSUE_Settings"]->settings["global_settings"]["available_languages"] = implode(",", $languageCache); 
    } 
 
    updatesettings("global_settings", $TSUE["TSUE_Settings"]->settings["global_settings"]); 
    $tableContents = ""; 
    if( !empty($cacheContents) ) 
    { 
        foreach( $cacheContents as $settingname => $settingvalues ) 
        { 
            updatesettings($settingname, $settingvalues); 
            $tableContents .= aaaaag(array( array( "width" => "90%", "text" => $settingname ), array( "width" => "10%", "text" => getimage("status/success-24.png") ) )); 
        } 
    } 
 
    if( !$logANDreturn ) 
    { 
        return NULL; 
    } 
 
    logadminaction(get_phrase("log_cache_all_caches_has_been_updated")); 
    $HTML = createtable(get_phrase("dashboard_cache_rebuild_caches"), $tableContents, 2); 
    return $HTML; 
} 
 
function aaaady($Pagination, $Type, $WHERE) 
{ 
    global $TSUE; 
    $tabNames = array( 1 => "tabs-1", 2 => "tabs-2", 3 => "tabs-3" ); 
    $tableContents = aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_name") ), array( "width" => "20%", "text" => get_phrase("table_list_date") ), array( "width" => "50%", "text" => get_phrase("table_list_log") ), array( "width" => "10%", "text" => get_phrase("global_action") ) ), NULL, "tableContentTDHeader"); 
    $Logs = $TSUE["TSUE_Database"]->query("SELECT l.*, m.lastactivity, mg.groupname, mg.groupstyle FROM tsue_logs l LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups mg USING(membergroupid) WHERE type = " . intval($Type) . $WHERE . " ORDER BY l.logid DESC " . $Pagination["0"]); 
    while( $Log = $TSUE["TSUE_Database"]->fetch_assoc($Logs) ) 
    { 
        $extraText = ""; 
        if( $Type == 3 ) 
        { 
            $logText = tsue_explode("~~~", $Log["log"]); 
            $Log["log"] = print_r(unserialize($logText["1"]), true); 
            $extraText = "<div class=\"accountUpdated\">" . $logText["0"] . "</div>"; 
            unset($logText); 
        } 
 
        $tableContents .= aaaaag(array( array( "width" => "20%", "valign" => "top", "text" => aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Log["memberid"] => array( "phrase" => getmembername($Log["membername"], $Log["groupstyle"]) ) )) ), array( "width" => "20%", "valign" => "top", "text" => convert_relative_time($Log["date"]) ), array( "width" => "50%", "valign" => "top", "text" => $extraText . strip_tags($Log["log"]) ), array( "width" => "10%", "valign" => "top", "text" => aaaaae(array( "delete=" . $Log["logid"] . "#" . $tabNames[$Log["type"]] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )) ) )); 
    } 
    return $tableContents; 
} 
 
function handlelogs() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $WHERE = ""; 
    $adminLogs = ""; 
    $aaaads = ""; 
    $keywords = trim(getvar("keywords")); 
    $prune = intval(getvar("prune")); 
    $aaaadt = ""; 
    $aaaadu = DATAPATH . "errors/"; 
    $aaaadv = intval(getvar("delete")); 
    if( $aaaadv && $TSUE["TSUE_Database"]->delete("tsue_logs", "logid=" . $TSUE["TSUE_Database"]->escape($aaaadv)) ) 
    { 
        $HTML .= successmessage(get_phrase("message_content_has_been_deleted")); 
    } 
 
    if( $prune && !DEMO_MODE ) 
    { 
        if( $prune == 4 ) 
        { 
            $Files = scandir($aaaadu); 
            if( $Files ) 
            { 
                foreach( $Files as $phpErrorLogFile ) 
                { 
                    if( file_extension($phpErrorLogFile) == "log" ) 
                    { 
                        @unlink($aaaadu . $phpErrorLogFile); 
                    } 
 
                } 
                $aaaadt = successmessage(get_phrase("message_content_has_been_deleted")); 
            } 
 
        } 
        else 
        { 
            if( $TSUE["TSUE_Database"]->delete("tsue_logs", "type=" . $TSUE["TSUE_Database"]->escape($prune)) ) 
            { 
                $aaaadt = successmessage(get_phrase("message_content_has_been_deleted")); 
            } 
 
        } 
 
    } 
 
    if( $keywords ) 
    { 
        $WHERE = " AND log LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'"; 
    } 
 
    $aaaadw = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as logCount FROM tsue_logs WHERE type = 2" . $WHERE); 
    if( $aaaadw["logCount"] ) 
    { 
        $aaaadx = pagination($aaaadw["logCount"], ($keywords ? "keywords=" . htmlspecialchars($keywords) : ""), 3, false, false, "#tabs-2"); 
        $tableContents = aaaady($aaaadx, 2, $WHERE); 
        $adminLogs = createtable(get_phrase("logs_admin_logs"), $tableContents, 4, $aaaadx["1"]); 
    } 
    else 
    { 
        $adminLogs = get_phrase("no_results_found"); 
    } 
 
    $aaaadz = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as logCount FROM tsue_logs WHERE type = 1" . $WHERE); 
    if( $aaaadz["logCount"] ) 
    { 
        $aaaaea = pagination($aaaadz["logCount"], ($keywords ? "keywords=" . htmlspecialchars($keywords) : ""), 3, false, false, "#website-logs"); 
        $tableContents = aaaady($aaaaea, 1, $WHERE); 
        $aaaads = createtable(get_phrase("logs_website_logs"), $tableContents, 4, $aaaaea["1"]); 
    } 
    else 
    { 
        $aaaads = get_phrase("no_results_found"); 
    } 
 
    $aaaaeb = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as logCount FROM tsue_logs WHERE type = 3" . $WHERE); 
    if( $aaaaeb["logCount"] ) 
    { 
        $aaaaec = pagination($aaaaeb["logCount"], ($keywords ? "keywords=" . htmlspecialchars($keywords) : ""), 3, false, false, "#member-manager"); 
        $tableContents = aaaady($aaaaec, 3, $WHERE); 
        $aaaaed = createtable(get_phrase("menu_member_manager"), $tableContents, 4, $aaaaec["1"]); 
    } 
    else 
    { 
        $aaaaed = get_phrase("no_results_found"); 
    } 
 
    $aaaaee = ""; 
    if( !DEMO_MODE ) 
    { 
        $phpErrorLogFile = trim(urldecode(getvar("phpErrorLogFile"))); 
        if( $phpErrorLogFile && file_extension($phpErrorLogFile) == "log" && is_file($aaaadu . $phpErrorLogFile) ) 
        { 
            $aaaaee .= "
			<h5>" . $aaaadu . $phpErrorLogFile . "</h5>
			<div class=\"phpErrorLog\">
				" . nl2br(file_get_contents($aaaadu . $phpErrorLogFile)) . "
			</div>"; 
        } 
 
    } 
 
    $deletePhpErrorLogFile = trim(urldecode(getvar("deletePhpErrorLogFile"))); 
    if( $deletePhpErrorLogFile && file_extension($deletePhpErrorLogFile) == "log" && is_file($aaaadu . $deletePhpErrorLogFile) ) 
    { 
        checkdemomode(); 
        unlink($aaaadu . $deletePhpErrorLogFile); 
    } 
 
    if( !DEMO_MODE ) 
    { 
        $aaaaef = scandir($aaaadu); 
        if( $aaaaef && 4 < count($aaaaef) ) 
        { 
            $aaaaee .= "
			<ul class=\"phpErrorLogs\">"; 
            foreach( $aaaaef as $FILE ) 
            { 
                if( file_extension($FILE) == "log" ) 
                { 
                    $aaaaee .= "
					<li>[<a href=\"?action=Dashboard&do=Logs&deletePhpErrorLogFile=" . urlencode($FILE) . "#tabs-4\">x</a>] <a href=\"?action=Dashboard&do=Logs&phpErrorLogFile=" . urlencode($FILE) . "#tabs-4\">" . $FILE . " (" . friendly_size(filesize($aaaadu . $FILE)) . ")</a></li>"; 
                } 
 
            } 
            $aaaaee .= "
			</ul>"; 
        } 
        else 
        { 
            if( !$aaaaee ) 
            { 
                $aaaaee = get_phrase("message_nothing_found"); 
            } 
 
        } 
 
    } 
    else 
    { 
        $aaaaee = get_phrase("message_nothing_found"); 
    } 
 
    $searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) )); 
    $searchForm = aaaabn(createtable(get_phrase("search_logs"), $searchForm), array(  ), "?action=Dashboard&do=Logs#tabs-5"); 
    $aaaaeg = "
	<a href=\"?action=Dashboard&do=Logs&prune=1#tabs-6\">" . get_phrase("prune_logs_website") . "</a> 
	| 
	<a href=\"?action=Dashboard&do=Logs&prune=2#tabs-6\">" . get_phrase("prune_logs_administrator") . "</a>
	| 
	<a href=\"?action=Dashboard&do=Logs&prune=3#tabs-6\">" . get_phrase("prune_member_manager_logs") . "</a>
	| 
	<a href=\"?action=Dashboard&do=Logs&prune=4#tabs-6\">" . get_phrase("prune_php_logs") . "</a>"; 
    return createtabs(array( get_phrase("logs_website_logs") => $aaaads, get_phrase("logs_admin_logs") => $adminLogs, get_phrase("menu_member_manager") => $aaaaed, "PHP" => $aaaaee, get_phrase("search_logs") => $searchForm, get_phrase("prune_logs") => $aaaadt . $aaaaeg )); 
} 
 
 
function handleserver() 
{ 
    global $TSUE; 
    checkdemomode(); 
    $mysqlVersion = $TSUE["TSUE_Database"]->query_result("SELECT VERSION() AS version"); 
    $serverinfo = (SAFEMODE ? "<br />Safe Mode" : ""); 
    $serverinfo .= (ini_get("file_uploads") == 0 || strtolower(ini_get("file_uploads")) == "off" ? "<br />File Uploads: Disabled" : ""); 
    $aaaaeh = friendly_size(foldersize(ROOTPATH)); 
    $aaaaei = 0; 
    $Tables = $TSUE["TSUE_Database"]->query("SHOW TABLE STATUS"); 
    while( $Table = $TSUE["TSUE_Database"]->fetch_assoc($Tables) ) 
    { 
        $aaaaei += $Table["Data_length"] + $Table["Index_length"]; 
    } 
    $offset = timezone_offset_get(new DateTimeZone("GMT"), new DateTime()); 
    $serverTime = date("d-m-Y h:i:s") . " " . date_default_timezone_get() . " " . fetch_timezones($offset); 
    $Variables = array(  ); 
    $MySQLVariables = $TSUE["TSUE_Database"]->query("SHOW VARIABLES WHERE Variable_Name IN (\"ft_max_word_len\", \"ft_min_word_len\", \"max_allowed_packet\", \"max_connections\")"); 
    while( $V = $TSUE["TSUE_Database"]->fetch_assoc($MySQLVariables) ) 
    { 
        if( $V["Variable_name"] == "max_allowed_packet" ) 
        { 
            $V["Value"] = friendly_size($V["Value"]); 
        } 
 
        $Variables[] = $V["Variable_name"] . ": " . $V["Value"]; 
    } 
    $serverDetails = array( "Server Type" => PHP_OS, "Server Software" => php_uname(), "Server Time" => $serverTime, "PHP Version" => phpversion(), "PHP Memory Limit" => friendly_size(ini_get("memory_limit")), "PHP Max Post Size" => ini_get("post_max_size"), "PHP Max Upload Size" => ini_get("upload_max_filesize"), "MySQL Version" => (($mysqlVersion ? $mysqlVersion["version"] : "N/A")) . " (" . implode(" - ", $Variables) . ")", "System Load Average(s)" => loadaverage(), "PHPInfo" => "<a href=\"?action=php-info\" target=\"_blank\">Click here to view</a>", "Server Status" => "<a href=\"?action=server-status\" target=\"_blank\">Click here to view</a>", "TSUE Folder Size" => $aaaaeh, "TSUE Database Size" => friendly_size($aaaaei) ); 
    $tableContents = ""; 
    foreach( $serverDetails as $text => $val ) 
    { 
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => "<b>" . $text . ":</b> " . $val ) )); 
    } 
    $HTML = createtable(get_phrase("dashboard_server_alt"), $tableContents, 1); 
    return $HTML; 
} 
 
function loadaverage() 
{ 
    if( strtoupper(substr(PHP_OS, 0, 3)) === "WIN" && class_exists("COM") ) 
    { 
        $wmi = new COM("Winmgmts://"); 
        $server = $wmi->execquery("SELECT LoadPercentage FROM Win32_Processor"); 
        $cpu_num = 0; 
        $load_total = 0; 
        foreach( $server as $cpu ) 
        { 
            $cpu_num++; 
            $load_total += $cpu->loadpercentage; 
        } 
        return (int) round($load_total / $cpu_num); 
    } 
    else 
    { 
        if( function_exists("sys_getloadavg") ) 
        { 
            return implode(" - ", sys_getloadavg()); 
        } 
 
        return "-"; 
    } 
 
} 
 
function handlenotes() 
{ 
    global $TSUE; 
    $HTML = ""; 
    if( isset($_POST["notes"]) ) 
    { 
        $buildQuery = array( "noteType" => "admin", "notes" => trim($_POST["notes"]), "updated" => TIMENOW, "updater" => $TSUE["TSUE_Member"]["memberid"] ); 
        $TSUE["TSUE_Database"]->replace("tsue_notes", $buildQuery); 
        logadminaction(get_phrase("notes_has_been_updated")); 
        $HTML .= successmessage(get_phrase("message_saved")); 
    } 
 
    $Notes = $TSUE["TSUE_Database"]->query_result("SELECT notes FROM tsue_notes WHERE noteType = 'admin'"); 
    if( !$Notes["notes"] ) 
    { 
        $Notes["notes"] = ""; 
    } 
 
    $tableContents = aaaaag(array( array( "width" => "100%", "text" => textarea("notes", $Notes["notes"], true, "templateTextareaTinyMCE"), "align" => "left" ) )); 
    $tableContents .= aaaaag(array( array( "width" => "100%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left" ) )); 
    $HTML .= aaaabn(createtable(get_phrase("dashboard_notes_alt"), $tableContents)); 
    return $HTML; 
} 
 
 
function handlestatistics() 
{ 
    global $TSUE; 
    global $postsCache; 
    global $setYear; 
    global $chartType; 
    $chartType = (isset($_GET["s"]) ? strip_tags(trim($_GET["s"])) : "primetimeMembers"); 
    $setYear = (isset($_GET["year"]) && $_GET["year"] ? intval($_GET["year"]) : convert_time(TIMENOW, "Y")); 
    $prepareStats = ""; 
    $HTML = "
	<div id=\"chart_buttons\">
		" . yearselectbox() . "
		<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;s=primetimeMembers\"" . ((!$chartType || $chartType == "primetimeMembers" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_most_active") . "</a> 
		<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;s=primetimeRegistrations\"" . (($chartType == "primetimeRegistrations" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_registrations") . "</a>
		<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;s=primetimeThreads\"" . (($chartType == "primetimeThreads" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_threads") . "</a>
		<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;s=primetimePosts\"" . (($chartType == "primetimePosts" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_posts") . "</a>
		<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;s=primetimeTorrents\"" . (($chartType == "primetimeTorrents" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_torrents") . "</a>
	</div>"; 
    switch( $chartType ) 
    { 
        case "primetimeMembers": 
            $prepareStats = primetimemembers($setYear); 
            break; 
        case "primetimeRegistrations": 
            $prepareStats = primetimeregistrations($setYear); 
            break; 
        case "primetimeThreads": 
            $prepareStats = primetimethreads($setYear); 
            break; 
        case "primetimePosts": 
            $prepareStats = primetimeposts($setYear); 
            break; 
        case "primetimeTorrents": 
            $prepareStats = primetimetorrents($setYear); 
            break; 
    } 
    if( $prepareStats ) 
    { 
        $HTML .= "
		<div id=\"chart_div\">
			<div id=\"chart_notice\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "</div>
		</div>

		<script type=\"text/javascript\" src=\"http://www.google.com/jsapi\"></script>
		<script type=\"text/javascript\">
			google.load(\"visualization\", \"1\", {\"packages\":[\"corechart\"]});
			google.setOnLoadCallback(drawChart);

			function drawChart()
			{
				var data = new google.visualization.DataTable();
				" . $prepareStats["buildScript"] . "
				var options = {chartArea:{top:\"" . $prepareStats["top"] . "\"}, \"width\":\"" . $prepareStats["width"] . "\", height:\"" . $prepareStats["height"] . "\", legend:\"" . $prepareStats["legend"] . "\"};
				var chart = new google.visualization.PieChart(document.getElementById(\"chart_div\"));
				chart.draw(data, options);
			}

			\$('select[name=\"year\"]').change(function()
			{
				var \$setYear = parseInt(\$(this).val());
				if(\$setYear)
				{
					window.location = \"?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&s=" . $chartType . "&year=\"+\$setYear;
				}
			});
		</script>"; 
    } 
 
    return $HTML; 
} 
 
function handlereadpm() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $keywords = trim(getvar("keywords")); 
    $WHERE = ""; 
    $message_id = intval(getvar("message_id")); 
    if( $message_id ) 
    { 
        $aaaaek = $TSUE["TSUE_Database"]->query_result("SELECT message.*, m.membername as owner, g.groupstyle as ownergroup, mm.membername as receiver, gg.groupstyle as receivergroup FROM tsue_messages_master message LEFT JOIN tsue_members m ON(message.owner_memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) LEFT JOIN tsue_members mm ON(message.receiver_memberid=mm.memberid) LEFT JOIN tsue_membergroups gg ON (gg.membergroupid=mm.membergroupid) WHERE message_id = " . $TSUE["TSUE_Database"]->escape($message_id) . " AND (message.owner_deleted = 0 OR message.receiver_deleted=0)"); 
        if( !$aaaaek ) 
        { 
            return errormessage(get_phrase("message_nothing_found")); 
        } 
 
        addbreadcrumb(array( get_phrase("dashboard_readpm") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;message_id=" . $message_id )); 
        $TSUE["TSUE_Security"] = new TSUE_Security(); 
        $TSUE["TSUE_Parser"] = new TSUE_Parser(); 
        $aaaael = ""; 
        $Replies = $TSUE["TSUE_Database"]->query("SELECT r.*, m.membername, g.groupstyle FROM tsue_messages_replies r LEFT JOIN tsue_members m ON(r.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) WHERE message_id = " . $TSUE["TSUE_Database"]->escape($message_id) . " ORDER BY reply_date ASC"); 
        while( $Reply = $TSUE["TSUE_Database"]->fetch_assoc($Replies) ) 
        { 
            $sender = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Reply["memberid"] => array( "phrase" => getmembername($Reply["membername"], $Reply["groupstyle"]) ) )); 
            $reply_date = convert_relative_time($Reply["reply_date"]); 
            $message = $TSUE["TSUE_Parser"]->parse($Reply["reply"]); 
            $aaaael .= "
			<div style=\"float: left; margin-bottom: 10px; border: 1px solid #ccc; width: 100%;\">
				<div style=\"padding: 5px;\">
					<span style=\"float: right;\">" . $sender . " | " . $reply_date . "</span>
					" . $message . "
				</div>
			</div>"; 
        } 
        return $aaaael; 
    } 
 
    $searchType = trim(getvar("searchType")); 
    if( !in_array($searchType, array( "subject", "owner", "receiver" )) ) 
    { 
        $searchType = "subject"; 
    } 
 
    if( $keywords && $searchType ) 
    { 
        switch( $searchType ) 
        { 
            case "subject": 
                $WHERE = " AND message.subject LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'"; 
                break; 
            case "owner": 
                $searchMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($keywords)); 
                $WHERE = " AND message.owner_memberid = " . $searchMember["memberid"]; 
                break; 
            case "receiver": 
                $searchMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($keywords)); 
                $WHERE = " AND message.receiver_memberid = " . $searchMember["memberid"]; 
                break; 
        } 
    } 
 
    $orderBy["fieldname"] = "message.message_date"; 
    $orderBy["type"] = "DESC"; 
    if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) ) 
    { 
        $allowedFieldNames = array( "message.owner_memberid", "message.receiver_memberid", "message.subject", "message.message_date" ); 
        $allowedTypes = array( "DESC", "ASC" ); 
        if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) ) 
        { 
            $orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"]; 
            $orderBy["type"] = $_REQUEST["orderBy"]["type"]; 
        } 
 
    } 
 
    if( isset($_POST["deleteMessages"]) && $_POST["deleteMessages"] ) 
    { 
        $deleteMessages = implode(",", array_map("intval", $_POST["deleteMessages"])); 
        $TSUE["TSUE_Database"]->delete("tsue_messages_master", "message_id IN (" . $deleteMessages . ")"); 
        $TSUE["TSUE_Database"]->delete("tsue_messages_replies", "message_id IN (" . $deleteMessages . ")"); 
        $Phrase = get_phrase("messages_deleted") . " (" . $deleteMessages . ")"; 
        logadminaction($Phrase); 
        $HTML .= successmessage($Phrase); 
    } 
 
    $aaaaem = $TSUE["TSUE_Database"]->query("SELECT message.*, m.membername as owner, g.groupstyle as ownergroup, mm.membername as receiver, gg.groupstyle as receivergroup FROM tsue_messages_master message LEFT JOIN tsue_members m ON(message.owner_memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) LEFT JOIN tsue_members mm ON(message.receiver_memberid=mm.memberid) LEFT JOIN tsue_membergroups gg ON (gg.membergroupid=mm.membergroupid) WHERE (message.owner_deleted = 0 OR message.receiver_deleted=0)" . $WHERE); 
    $messageCount = $TSUE["TSUE_Database"]->num_rows($aaaaem); 
    if( !$messageCount ) 
    { 
        return errormessage(get_phrase("message_nothing_found")); 
    } 
 
    $Pagination = pagination($messageCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&amp;orderBy[type]=" . $orderBy["type"] . (($keywords ? "&amp;keywords=" . urlencode($keywords) . "&amp;searchType=" . $searchType : ""))); 
    $aaaaem = $TSUE["TSUE_Database"]->query("SELECT message.*, m.membername as owner, g.groupstyle as ownergroup, mm.membername as receiver, gg.groupstyle as receivergroup FROM tsue_messages_master message LEFT JOIN tsue_members m ON(message.owner_memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) LEFT JOIN tsue_members mm ON(message.receiver_memberid=mm.memberid) LEFT JOIN tsue_membergroups gg ON (gg.membergroupid=mm.membergroupid) WHERE (message.owner_deleted = 0 OR message.receiver_deleted=0)" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]); 
    while( $Message = $TSUE["TSUE_Database"]->fetch_assoc($aaaaem) ) 
    { 
        $owner = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Message["owner_memberid"] => array( "phrase" => getmembername($Message["owner"], $Message["ownergroup"]) ) )); 
        $receiver = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Message["receiver_memberid"] => array( "phrase" => getmembername($Message["receiver"], $Message["receivergroup"]) ) )); 
        $message_date = convert_relative_time($Message["message_date"]); 
        $messageLink = aaaaae(array( "message_id=" . $Message["message_id"] => array( "phrase" => strip_tags($Message["subject"]) ) )); 
        $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $messageLink . "<br /><span class=\"smallPassiveTextBlock\">" . $message_date . ", " . $owner . " ---> " . $receiver . "</span>" ), array( "width" => "20%", "text" => "<input type=\"checkbox\" name=\"deleteMessages[]\" value=\"" . $Message["message_id"] . "\" />", "align" => "right" ) )); 
    } 
    $tableContents .= aaaaag(array( array( "width" => "100%", "colspan" => 2, "align" => "right", "text" => "<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("messages_delete") . "\" /> &nbsp;&nbsp; <input type=\"checkbox\" name=\"checkALL\" value=\"deleteMessages[]\" />" ) )); 
    $selectBox = "
	<select name=\"searchType\" class=\"selectNoWidth\">
		<option value=\"subject\"" . (($searchType == "subject" ? " selected=\"selected\"" : "")) . ">" . get_phrase("messages_subject") . "</option>
		<option value=\"owner\"" . (($searchType == "owner" ? " selected=\"selected\"" : "")) . ">" . get_phrase("sender") . "</option>
		<option value=\"receiver\"" . (($searchType == "receiver" ? " selected=\"selected\"" : "")) . ">" . get_phrase("receiver") . "</option>
	</select>"; 
    $searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) )); 
    $HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array(  ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />"; 
    $HTML .= aaaabn(createtable(get_phrase("dashboard_readpm_alt"), $tableContents, 2, $Pagination["1"])); 
    $HTML .= "
	<div style=\"float: right; margin-top: 10px;\">
		" . aaaabn("
		" . get_phrase("torrents_sort_by") . "
		<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">
			<option value=\"message.owner_memberid\"" . (($orderBy["fieldname"] == "message.owner_memberid" ? " selected=\"selected\"" : "")) . ">" . get_phrase("sender") . "</option>
			<option value=\"message.receiver_memberid\"" . (($orderBy["fieldname"] == "message.receiver_memberid" ? " selected=\"selected\"" : "")) . ">" . get_phrase("receiver") . "</option>
			<option value=\"message.subject\"" . (($orderBy["fieldname"] == "message.subject" ? " selected=\"selected\"" : "")) . ">" . get_phrase("messages_subject") . "</option>
			<option value=\"message.message_date\"" . (($orderBy["fieldname"] == "message.message_date" ? " selected=\"selected\"" : "")) . ">" . get_phrase("date_added") . "</option>
		</select>
		<select name=\"orderBy[type]\" class=\"selectNoWidth\">
			<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>
			<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>
		</select>
		<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "
	</div>"; 
    return $HTML; 
} 
 
function handledatabase() 
{ 
    global $TSUE; 
    $SQL = intval(getvar("SQL")); 
    $AutomaticQuery = intval(getvar("AutomaticQuery")); 
    $Tables = intval(getvar("Tables")); 
    $DatabaseBackup = intval(getvar("DatabaseBackup")); 
    if( $SQL ) 
    { 
        addbreadcrumb(array( get_phrase("database_sql_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;SQL=1" )); 
        return aaaaen(); 
    } 
 
    if( $AutomaticQuery ) 
    { 
        addbreadcrumb(array( get_phrase("auto_query") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;AutomaticQuery=1" )); 
        return aaaaeo(); 
    } 
 
    if( $Tables ) 
    { 
        addbreadcrumb(array( get_phrase("database_tables") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;Tables=1" )); 
        return aaaaep(); 
    } 
 
    if( $DatabaseBackup ) 
    { 
        addbreadcrumb(array( get_phrase("database_backup") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;DatabaseBackup=1" )); 
        $backupDir = DATAPATH . "backups/"; 
        if( isset($_GET["sqlFile"]) && !empty($_GET["sqlFile"]) && substr($_GET["sqlFile"], -7) === ".sql.gz" && is_file($backupDir . $_GET["sqlFile"]) ) 
        { 
            $fullPath = $backupDir . $_GET["sqlFile"]; 
            $fileSize = filesize($fullPath); 
            if( headers_sent() ) 
            { 
                exit( "Critical Error: Headers already sent!" ); 
            } 
 
            if( ini_get("zlib.output_compression") ) 
            { 
                ini_set("zlib.output_compression", "Off"); 
            } 
 
            $download_rate = 4096; 
            setheader("Content-type", "application/octet-stream", true); 
            setheader("ETag", TIMENOW, true); 
            setheader("Content-Length", $fileSize, true); 
            setdownloadfilename($_GET["sqlFile"]); 
            if( $localFile = fopen($fullPath, "rb") ) 
            { 
                while( !feof($localFile) ) 
                { 
                    if( connection_status() != CONNECTION_NORMAL ) 
                    { 
                        break; 
                    } 
 
                    echo fread($localFile, round($download_rate * 1024)); 
                    @flush(); 
                    sleep(1); 
                } 
                fclose($localFile); 
                unlink($fullPath); 
                exit(); 
            } 
 
        } 
 
        if( strtoupper($_SERVER["REQUEST_METHOD"]) == "POST" ) 
        { 
            $sqlFiles = (isset($_POST["sqlFiles"]) ? $_POST["sqlFiles"] : ""); 
            if( is_array($sqlFiles) && !empty($sqlFiles) ) 
            { 
                foreach( $sqlFiles as $sqlFile ) 
                { 
                    if( substr($sqlFile, -7) === ".sql.gz" && is_file($backupDir . $sqlFile) ) 
                    { 
                        unlink($backupDir . $sqlFile); 
                        logadminaction(get_phrase("sql_x_deleted", $sqlFile)); 
                    } 
 
                } 
            } 
 
        } 
 
        $totalSize = 0; 
        $sqlFiles = scandir($backupDir); 
        $fileCache = array(  ); 
        foreach( $sqlFiles as $sqlFile ) 
        { 
            if( substr($sqlFile, -7) === ".sql.gz" ) 
            { 
                $fileSize = filesize($backupDir . $sqlFile); 
                $totalSize += $fileSize; 
                $fileCache[] = array( "filename" => $sqlFile, "filesize" => $fileSize, "filectime" => filectime($backupDir . $sqlFile) ); 
            } 
 
        } 
        $HTML = ""; 
        if( $fileCache ) 
        { 
            $HTML .= "
			<form method=\"post\">
			<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">
				<tr>
					<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . get_phrase("forums_attached_files_filename") . "</th>
					<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . get_phrase("forums_attached_files_filesize") . "</th>
					<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . get_phrase("date_added") . "</th>
					<th style=\"text-align: center; padding: 5px; background: #ddd;\"><input type=\"checkbox\" name=\"checkALL\" value=\"sqlFiles[]\" /></th>
				</tr>"; 
            foreach( $fileCache as $File ) 
            { 
                $HTML .= "
				<tr>
					<td style=\"text-align: left; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\"><a href=\"?action=Dashboard&do=Database&DatabaseBackup=1&sqlFile=" . urlencode($File["filename"]) . "\">" . $File["filename"] . "</a></td>
					<td style=\"text-align: left; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\">" . friendly_size($File["filesize"]) . "</td>
					<td style=\"text-align: left; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\">" . convert_time($File["filectime"], "d-m-Y h:i") . "</td>
					<td style=\"text-align: center; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\"><input type=\"checkbox\" name=\"sqlFiles[]\" value=\"" . $File["filename"] . "\" /></th>
				</tr>"; 
            } 
            $HTML .= "
			<tr>
				<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\"></th>
				<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . friendly_size($totalSize) . "</th>
				<th style=\"text-align: right; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\" colspan=\"2\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("button_delete") . "\" /></td>
			</tr>"; 
            $HTML .= "
			</table>
			</form><br />"; 
        } 
 
        return "
		" . $HTML . "
		<div style=\"padding: 10px; border: 1px solid #ddd; line-height: 1.6\">
			<div style=\"font-weight: bold; font-size: 14px;\">Automated MySQL Backup using CRON via shell.</div>
			<div style=\"color: #999; font-size: 12px;\">This script allows you to automatically make a backup of your TSUE database using cron job.</div>
			<div style=\"margin-top: 10px;\"><input type=\"text\" style=\"padding: 3px; border: 1px solid #ddd; font-size: 11px; color: red; width: 98%;\" value='php -q \"" . CLIPATH . "backupDatabase.php\"' /></div>

			<div style=\"margin: 10px; padding: 5px; background: #f6f8fa;\">
				" . nl2br("<b>cPanel</b>
				Click on the Cron Job icon in your control panel and select the Once A Day option from the Common Settings dropdown menu. Then paste the cron command into the Command field.

				<b>DirectAdmin</b>
				The command for DirectAdmin is generally the same as above, however, you need to reference the full path to the php binary.

				This can be /usr/bin/php, /usr/bin/home/php or /usr/local/bin/php but this is dependent on the server setup and you should check with your Server Administrator for the full path to the php binary.

				An example command to run is:
				/usr/bin/php -q \"" . CLIPATH . "backupDatabase.php\"
				/usr/local/bin/php -q \"" . CLIPATH . "backupDatabase.php\"

				<b>Plesk</b>
				You can specify the php command using the following on Linux Plesk:
				env php -q \"" . CLIPATH . "backupDatabase.php\"

				<b>SSH (via crontab -e)</b>
				@daily php -q \"" . CLIPATH . "backupDatabase.php\"") . "
			</div>
		</div>"; 
    } 
    else 
    { 
        $aaaaeq = optionbox("Database/SQL", get_phrase("database_sql"), get_phrase("database_sql_alt"), "Database"); 
        $aaaaeq .= optionbox("Database/AutomaticQuery", get_phrase("auto_query"), get_phrase("auto_query_alt"), "Database"); 
        $aaaaeq .= optionbox("Database/Tables", get_phrase("database_tables"), get_phrase("database_tables_alt"), "Database"); 
        $aaaaeq .= optionbox("Database/DatabaseBackup", get_phrase("database_backup"), get_phrase("database_backup_alt"), "Database"); 
        return $aaaaeq; 
    } 
 
} 
 
function aaaaen() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $Query = trim(getvar("Query")); 
    if( ispost() && $Query ) 
    { 
        checkdemomode(); 
        $TSUE["TSUE_Database"]->query($Query); 
        $HTML .= successmessage(get_phrase("your_sql_query_has_been_executed")); 
    } 
 
    $textarea = textarea("Query", $Query); 
    $formContents = aaaaan(get_phrase("database_sql_alt"), $textarea); 
    $HTML .= aaaabg($formContents, array(  ), "", "database_sql_alt"); 
    return $HTML; 
} 
 
function aaaaeo() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $queryID = trim(getvar("queryID")); 
    $confirmed = trim(getvar("confirmed")); 
    $affectedRows = 0; 
    if( ispost() && $queryID ) 
    { 
        if( $confirmed != "true" ) 
        { 
            $hiddenInputBoxes = array( "AutomaticQuery" => 1, "queryID" => $queryID, "confirmed" => "true" ); 
            $formContents = errormessage("
			" . get_phrase("auto_query_" . $queryID) . "
			<p>" . get_phrase("are_you_sure_that_you_want_to_perform_this_action") . "</p>
			<p><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("button_apply") . "\" /></p>"); 
            return aaaabn($formContents, $hiddenInputBoxes); 
        } 
 
        $Queries = array( 1 => "ALTER TABLE `tsue_member_profile` CHANGE `torrentStyle` `torrentStyle` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '2' COMMENT 'Torrent List Style. 1: Modern 2: Classic';~UPDATE `tsue_member_profile` SET torrentStyle = 2;", 2 => "ALTER TABLE `tsue_member_profile` CHANGE `torrentStyle` `torrentStyle` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Torrent List Style. 1: Modern 2: Classic';~UPDATE `tsue_member_profile` SET torrentStyle = 1;", 3 => "UPDATE tsue_member_profile SET invites_left = 0;", 4 => "UPDATE tsue_member_profile SET uploaded = 0;", 5 => "UPDATE tsue_member_profile SET downloaded = 0;", 6 => "UPDATE tsue_member_profile SET hitRuns = 0;", 7 => "UPDATE tsue_member_profile SET total_warns = 0;", 8 => "UPDATE tsue_member_profile SET muted = 0;", 9 => "UPDATE tsue_member_profile SET points = 0;", 10 => "UPDATE tsue_members SET languageid = " . $TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"], 11 => "UPDATE tsue_members SET themeid = " . $TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"], 12 => "DELETE FROM tsue_messages_master;~DELETE FROM tsue_messages_replies;~UPDATE tsue_members SET unread_messages=0;", 13 => "DELETE FROM tsue_member_alerts;~UPDATE tsue_members SET unread_alerts=0;" ); 
        if( isset($Queries[$queryID]) ) 
        { 
            checkdemomode(); 
            $Query = tsue_explode("~", $Queries[$queryID]); 
            if( $Query ) 
            { 
                foreach( $Query as $SQL ) 
                { 
                    $TSUE["TSUE_Database"]->query($SQL); 
                    $affectedRows += $TSUE["TSUE_Database"]->affected_rows(); 
                } 
                $HTML .= successmessage(get_phrase("your_sql_query_has_been_executed") . " - " . get_phrase("affected_rows", $affectedRows)); 
            } 
 
        } 
        else 
        { 
            $HTML .= errormessage(get_phrase("message_content_error")); 
        } 
 
    } 
 
    $optionArray = array( "", get_phrase("auto_query_1"), get_phrase("auto_query_2"), get_phrase("auto_query_3"), get_phrase("auto_query_4"), get_phrase("auto_query_5"), get_phrase("auto_query_6"), get_phrase("auto_query_7"), get_phrase("auto_query_8"), get_phrase("auto_query_9"), get_phrase("auto_query_10"), get_phrase("auto_query_11"), get_phrase("auto_query_12"), get_phrase("auto_query_13") ); 
    $selectbox = selectbox("queryID", $queryID, $optionArray); 
    $formContents = aaaaan(get_phrase("auto_query"), $selectbox, get_phrase("auto_query_tip")); 
    $HTML .= aaaabg($formContents, array(  ), "", "button_apply"); 
    return $HTML; 
} 
 
function aaaaep() 
{ 
    global $TSUE; 
    checkdemomode(); 
    $HTML = ""; 
    $tableContents = ""; 
    $requestedTables = getvar("requestedTables"); 
    $dl = getvar("dl"); 
    if( $dl ) 
    { 
        $fullPath = DATAPATH . "cache/" . $dl; 
        if( !file_exists($fullPath) ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        $fileSize = filesize($fullPath); 
        if( headers_sent() ) 
        { 
            exit( "Critical Error: Headers already sent!" ); 
        } 
 
        if( ini_get("zlib.output_compression") ) 
        { 
            ini_set("zlib.output_compression", "Off"); 
        } 
 
        $download_rate = 4096; 
        setheader("Content-type", "application/octet-stream", true); 
        setheader("ETag", TIMENOW, true); 
        setheader("Content-Length", $fileSize, true); 
        setdownloadfilename($dl); 
        if( $localFile = fopen($fullPath, "rb") ) 
        { 
            while( !feof($localFile) ) 
            { 
                if( connection_status() != CONNECTION_NORMAL ) 
                { 
                    break; 
                } 
 
                echo fread($localFile, round($download_rate * 1024)); 
                @flush(); 
                sleep(1); 
            } 
            fclose($localFile); 
            unlink($fullPath); 
            exit(); 
        } 
 
        return errormessage(get_phrase("message_content_error")); 
    } 
 
    if( IS_AJAX && $requestedTables && ($requestedTables = tsue_explode(",", $requestedTables)) ) 
    { 
        $time = convert_time(TIMENOW, "dS F Y \a\t H:i"); 
        $mysqlversion = $TSUE["TSUE_Database"]->query_result("SELECT VERSION() AS version"); 
        $backupSQL = "-- -------------------------------------------
-- TSUE Database Backup
-- Generated: " . $time . "
-- PHP Version: " . phpversion() . "
-- MySQL Version: " . $mysqlversion["version"] . "
-- TSUE Version: " . V . "
-- -------------------------------------------
"; 
        foreach( $requestedTables as $Table ) 
        { 
            if( preg_match("#^[a-zA-Z_]+\$#", $Table) ) 
            { 
                $backupSQL .= "
-- ----------------------------------------------------------------------
"; 
                $backupSQL .= "-- Table structure for table `" . $Table . "`"; 
                $backupSQL .= "
-- ----------------------------------------------------------------------
"; 
                $Query = $TSUE["TSUE_Database"]->query_result("SHOW CREATE TABLE `" . $Table . "`"); 
                $backupSQL .= $Query["Create Table"] . ";

"; 
                $backupSQL .= "
-- ----------------------------------------------------------------------
"; 
                $backupSQL .= "-- Dumping data for table `" . $Table . "`"; 
                $backupSQL .= "
-- ----------------------------------------------------------------------
"; 
                $Fields = array(  ); 
                $rowTypes = array(  ); 
                $Rows = $TSUE["TSUE_Database"]->query("SHOW COLUMNS FROM " . $Table); 
                while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Rows) ) 
                { 
                    $Fields[] = "`" . $Row["Field"] . "`"; 
                    $rowTypes[] = $Row["Type"]; 
                } 
                $Datas = $TSUE["TSUE_Database"]->query("SELECT * FROM " . $Table); 
                if( $TSUE["TSUE_Database"]->num_rows($Datas) ) 
                { 
                    while( $Data = $TSUE["TSUE_Database"]->fetch_row($Datas) ) 
                    { 
                        foreach( $Data as $j => $k ) 
                        { 
                            if( preg_match("#binary|blob#isU", strtolower($rowTypes[$j])) ) 
                            { 
                                $Data[$j] = (!$k ? "''" : "0x" . bin2hex($k)); 
                            } 
                            else 
                            { 
                                $Data[$j] = $TSUE["TSUE_Database"]->escape($k); 
                            } 
 
                        } 
                        $backupSQL .= "INSERT INTO " . $Table . " (" . implode(",", $Fields) . ") VALUES (" . implode(",", $Data) . ");
"; 
                    } 
                } 
 
            } 
 
        } 
        $fileName = "tsue_db_backup_" . TIMENOW . ".sql"; 
        if( function_exists("gzopen") ) 
        { 
            $fileName .= ".gz"; 
            $fp = gzopen(DATAPATH . "cache/" . $fileName, "w9"); 
            gzwrite($fp, $backupSQL); 
        } 
        else 
        { 
            $fp = fopen(DATAPATH . "cache/" . $fileName . ".sql", "w"); 
            fwrite($fp, $backupSQL); 
        } 
 
        exit( get_phrase("your_backup_is_ready", "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&Tables=1&dl=" . $fileName) ); 
    } 
    else 
    { 
        $Phrases = array( "Name" => get_phrase("database_table"), "Engine" => get_phrase("database_engine"), "Rows" => get_phrase("database_rows"), "Data_length" => get_phrase("database_data_length"), "Index_length" => get_phrase("database_index"), "Collation" => get_phrase("database_collation") ); 
        $tableContents .= aaaaag(array( array( "width" => "25%", "text" => $Phrases["Name"] ), array( "width" => "13%", "text" => $Phrases["Engine"] ), array( "width" => "10%", "text" => $Phrases["Rows"] ), array( "width" => "13%", "text" => $Phrases["Data_length"] ), array( "width" => "12%", "text" => $Phrases["Index_length"] ), array( "width" => "20%", "text" => $Phrases["Collation"] ), array( "width" => "5%", "text" => "<input type=\"checkbox\" name=\"checkALL\" value=\"requestedTables[]\" />" ) ), "tableContentTR", "tableContentTDHeader"); 
        $totalSize = 0; 
        $Tables = $TSUE["TSUE_Database"]->query("SHOW TABLE STATUS"); 
        while( $Table = $TSUE["TSUE_Database"]->fetch_assoc($Tables) ) 
        { 
            $totalSize += $Table["Data_length"] + $Table["Index_length"]; 
            $tableContents .= aaaaag(array( array( "width" => "25%", "text" => $Table["Name"] ), array( "width" => "13%", "text" => $Table["Engine"] ), array( "width" => "10%", "text" => number_format($Table["Rows"]) ), array( "width" => "13%", "text" => ($Table["Data_length"] ? friendly_size($Table["Data_length"]) : "0") ), array( "width" => "12%", "text" => ($Table["Index_length"] ? friendly_size($Table["Index_length"]) : "0") ), array( "width" => "20%", "text" => $Table["Collation"] ), array( "width" => "5%", "text" => "<input type=\"checkbox\" name=\"requestedTables[]\" value=\"" . $Table["Name"] . "\"" . (($requestedTables && in_array($Table["Name"], $requestedTables) ? " checked=\"checked\"" : "")) . " />" ) ), "", "tableContentTD small"); 
        } 
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => "<span style=\"margin-right: 40px;\">" . get_phrase("database_size", "<b>" . friendly_size($totalSize) . "</b>") . "</span> " . aaaabm(get_phrase("database_backup_selected_tables")), "align" => "right", "colspan" => 7 ) )); 
        $script = "
	<script type=\"text/javascript\">
		\$(\"#simpleForm\").submit(function(e)
		{
			e.preventDefault();

			var \$requestedTables = new Array();
			var \$rCount=0;
			
			\$searchCheckboxes = \$('input[name=\"requestedTables[]\"]', this).each(function()
			{
				if(\$(this).is(\":checked\"))
				{
					\$requestedTables[\$rCount] = \$(this).val();
					\$rCount++;
				}
			});

			if(!\$rCount)
			{
				return;
			}

			\$(\"#mainText\").html('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("backup_is_being_generated") . "');

			buildQuery = \"isAjax=1&action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&Tables=1&requestedTables=\"+\$requestedTables.join(\",\");
			\$.ajax
			({
				type: \"POST\",
				data: buildQuery,
				beforeSend: function()
				{
					TSUEAdmin.hideLoader();
				},
				success: function(result)
				{
					\$(\"#mainText\").html(result);
				}
			});

			return false;
		})
	</script>"; 
        $HTML .= aaaabn(createtable(get_phrase("database_tables_alt"), $tableContents, 7), array(  ), "", $script); 
        return $HTML; 
    } 
 
} 
 
function handleannouncements() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $aaaaer = aaaaae(array( "new=1" => array( "phrase" => get_phrase("announcement_create_new") ) )); 
    $enable_disable = intval(getvar("enable_disable")); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $tweet = intval(getvar("tweet")); 
    if( $enable_disable ) 
    { 
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
        $Announcement = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
        if( $Announcement ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_announcements", $BuildQuery, "aid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            logadminaction(get_phrase("announcement_x_has_been_updated", $Announcement["title"] . " (" . $enable_disable . ")")); 
            handlerebuildcaches(false); 
        } 
 
    } 
 
    if( $delete ) 
    { 
        $Announcement = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Announcement ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_announcements", "aid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            logadminaction(get_phrase("announcement_x_has_been_deleted", $Announcement["title"] . " (" . $delete . ")")); 
            handlerebuildcaches(false); 
        } 
 
    } 
 
    if( $edit || $new ) 
    { 
        $Announcement = array( "active" => 1, "title" => "", "content" => "", "reset" => 0 ); 
        $aaaaam = ""; 
        if( $edit ) 
        { 
            $Announcement = $TSUE["TSUE_Database"]->query_result("SELECT active,title,content FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Announcement ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
            $Announcement["reset"] = (isset($_POST["Announcement"]["reset"]) ? intval($_POST["Announcement"]["reset"]) : 0); 
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Announcement["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        } 
        else 
        { 
            addbreadcrumb(array( get_phrase("announcement_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
        } 
 
        if( isset($_POST["Announcement"]) ) 
        { 
            $Announcement = $_POST["Announcement"]; 
            if( !$Announcement["title"] ) 
            { 
                $formErrors[] = get_phrase("news_error_no_title"); 
            } 
 
            if( !$Announcement["content"] ) 
            { 
                $formErrors[] = get_phrase("news_error_no_content"); 
            } 
 
            if( !isset($formErrors) ) 
            { 
                $buildQuery = array( "active" => $Announcement["active"], "title" => $Announcement["title"], "content" => $Announcement["content"] ); 
                if( $edit ) 
                { 
                    if( $Announcement["reset"] ) 
                    { 
                        $buildQuery["date"] = TIMENOW; 
                    } 
 
                    $TSUE["TSUE_Database"]->update("tsue_announcements", $buildQuery, "aid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $buildQuery["memberid"] = $TSUE["TSUE_Member"]["memberid"]; 
                    $buildQuery["date"] = TIMENOW; 
                    $TSUE["TSUE_Database"]->insert("tsue_announcements", $buildQuery); 
                } 
 
                logadminaction(get_phrase("announcement_x_has_been_updated", $Announcement["title"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                $updateDone = true; 
                handlerebuildcaches(false); 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $radioButtons = radioyesno("Announcement[active]", $Announcement["active"]); 
            $formContents = aaaaan(get_phrase("announcement_active"), $radioButtons); 
            if( $edit ) 
            { 
                $radioButtons = radioyesno("Announcement[reset]", $Announcement["reset"]); 
                $formContents .= aaaaan(get_phrase("reset_announcement"), $radioButtons, get_phrase("reset_announcement_alt")); 
            } 
 
            $inputbox = inputbox("Announcement[title]", $Announcement["title"]); 
            $formContents .= aaaaan(get_phrase("announcement_title"), $inputbox); 
            $textarea = textarea("Announcement[content]", $Announcement["content"], true); 
            $formContents .= aaaaan(get_phrase("announcement_content"), $textarea); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    if( $tweet ) 
    { 
        $Announcement = $TSUE["TSUE_Database"]->query_result("SELECT content FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($tweet)); 
        if( $Announcement ) 
        { 
            $HTML .= posttotwitter($Announcement["content"], 120); 
        } 
 
    } 
 
    $Announcements = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_announcements ORDER BY active DESC, date DESC"); 
    if( !$TSUE["TSUE_Database"]->num_rows($Announcements) ) 
    { 
        $tableContents = errormessage(get_phrase("announcements_no_announcement_yet")); 
    } 
    else 
    { 
        $tableContents = ""; 
        while( $Announcement = $TSUE["TSUE_Database"]->fetch_assoc($Announcements) ) 
        { 
            $linkClass = (!$Announcement["active"] ? "linkDisabled" : ""); 
            $aaaaes = aaaaae(array( "edit=" . $Announcement["aid"] => array( "phrase" => $Announcement["title"], "class" => $linkClass ) )); 
            $aaaaet = aaaaae(array( "delete=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            $aaaaca = aaaaae(array( "tweet=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/twitter.png", "Tweet") ) )); 
            if( $Announcement["active"] ) 
            { 
                $aaaaeu = aaaaae(array( "enable_disable=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
            } 
            else 
            { 
                $aaaaeu = aaaaae(array( "enable_disable=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
            } 
 
            $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaaes . " <span class=\"smallPassiveText\">" . get_phrase("news_created", convert_relative_time($Announcement["date"])) . "</span>" ), array( "width" => "20%", "text" => $aaaaca . $aaaaeu . $aaaaet, "align" => "right" ) )); 
        } 
    } 
 
    $HTML .= createtable(get_phrase("dashboard_announcements"), $tableContents, 2, $aaaaer); 
    return $HTML; 
} 
 
function handletorrents() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $manageTorrents = getvar("manageTorrents", false, false); 
    $torrentAction = getvar("torrentAction"); 
    $hit_run_ratio = getvar("hit_run_ratio"); 
    $new_category = intval(getvar("new_category")); 
    $upload_multiplier = getvar("upload_multiplier"); 
    $download_multiplier = getvar("download_multiplier"); 
    $tags = getvar("tags"); 
    $searchType = trim(getvar("searchType")); 
    $keywords = trim(getvar("keywords")); 
    $categories = getvar("categories", false, false); 
    $sortOptions = getvar("sortOptions", false, false); 
    $showOnly = getvar("showOnly"); 
    $WHERE = ""; 
    $aaaaev = ""; 
    $pagerConditions = array(  ); 
    $orderBY = " ORDER BY t.sticky DESC, t.added DESC"; 
    $SelectedSortBy["added"] = " selected=\"selected\""; 
    $SelectedSortBy["times_completed"] = ""; 
    $SelectedSortBy["size"] = $SelectedSortBy["times_completed"]; 
    $SelectedSortBy["leechers"] = $SelectedSortBy["size"]; 
    $SelectedSortBy["seeders"] = $SelectedSortBy["leechers"]; 
    $SelectedOrderBy["desc"] = " selected=\"selected\""; 
    $SelectedOrderBy["asc"] = ""; 
    if( !empty($sortOptions) && is_array($sortOptions) && count($sortOptions) == 2 ) 
    { 
        $availableSortBY = array( "added", "seeders", "leechers", "size", "times_completed" ); 
        $availableOrderBy = array( "asc", "desc" ); 
        if( !empty($sortOptions["sortBy"]) && !empty($sortOptions["sortOrder"]) && in_array($sortOptions["sortOrder"], $availableOrderBy) && in_array($sortOptions["sortBy"], $availableSortBY) ) 
        { 
            $SelectedSortBy[$sortOptions["sortBy"]] = " selected=\"selected\""; 
            $SelectedOrderBy[$sortOptions["sortOrder"]] = " selected=\"selected\""; 
            $orderBY = " ORDER BY t." . $sortOptions["sortBy"] . " " . strtoupper($sortOptions["sortOrder"]); 
            $pagerConditions[] = "sortOptions[sortBy]=" . $sortOptions["sortBy"]; 
            $pagerConditions[] = "sortOptions[sortOrder]=" . $sortOptions["sortOrder"]; 
        } 
 
    } 
 
    if( !$showOnly || !in_array($showOnly, array( "anonymouse", "record_stats", "upload_multiplier", "download_multiplier", "nuked", "hitRunRatio", "external", "dead", "sticky", "torrents_has_no_imdb", "silver_torrents", "x2_torrents" )) ) 
    { 
        $showOnly = ""; 
    } 
 
    if( ispost() && $torrentAction && $manageTorrents ) 
    { 
        $tids = array_map("intval", $manageTorrents); 
        $escaped = "tid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $tids)) . ")"; 
        switch( $torrentAction ) 
        { 
            case "free": 
                aaaaew("download_multiplier", $escaped, 1, 0, 1); 
                $Phrase = get_phrase("set_free_non_free"); 
                break; 
            case "double": 
                aaaaew("upload_multiplier", $escaped, 2, 1, 2); 
                $Phrase = get_phrase("set_double_non_double"); 
                break; 
            case "sticky": 
                $TSUE["TSUE_Database"]->update("tsue_torrents", array( "sticky" => array( "escape" => 0, "value" => "IF(sticky>0,0,1)" ) ), $escaped); 
                $Phrase = get_phrase("set_sticky_un_sticky"); 
                break; 
            case "anonymouse": 
                aaaaew("anonymouse", $escaped, 1, 0, 1); 
                $Phrase = get_phrase("set_anonymouse_non_anonymouse"); 
                break; 
            case "record_stats": 
                aaaaew("record_stats", $escaped, 1, 0, 1); 
                $Phrase = get_phrase("set_record_stats_non_record_stats"); 
                break; 
            case "reset_hit_run": 
                aaaaew("hitRunRatio", $escaped, "", "", "", "!="); 
                $Phrase = get_phrase("reset_hit_and_run_ratio"); 
                break; 
            case "set_hit_run": 
                aaaaew("hitRunRatio", $escaped, $hit_run_ratio, $hit_run_ratio, $hit_run_ratio, "!="); 
                $Phrase = get_phrase("set_hit_and_run_ratio"); 
                break; 
            case "reset_tags": 
                $TSUE["TSUE_Database"]->update("tsue_torrents", array( "tags" => "" ), $escaped); 
                $Phrase = get_phrase("reset_tags"); 
                break; 
            case "set_tags": 
                if( $tags ) 
                { 
                    $tags = tsue_explode(",", cleartags(strip_tags(trim($tags)))); 
                    if( $tags ) 
                    { 
                        $safeTags = array(  ); 
                        foreach( $tags as $tag ) 
                        { 
                            $tag = trim(strip_tags($tag)); 
                            if( 2 < strlen($tag) ) 
                            { 
                                $tag = ucfirst(strtolower($tag)); 
                                if( !in_array($tag, $safeTags) && $tag ) 
                                { 
                                    $safeTags[] = $tag; 
                                    $TSUE["TSUE_Database"]->replace("tsue_tags", array( "tag" => $tag )); 
                                } 
 
                            } 
 
                        } 
                        $tags = implode(",", $safeTags); 
                        unset($safeTags); 
                    } 
                    else 
                    { 
                        $tags = ""; 
                    } 
 
                    if( $tags ) 
                    { 
                        $TSUE["TSUE_Database"]->update("tsue_torrents", array( "tags" => $tags ), $escaped); 
                    } 
 
                } 
 
                $Phrase = get_phrase("set_tags"); 
                break; 
            case "move_torrents": 
                if( $new_category ) 
                { 
                    $TSUE["TSUE_Database"]->update("tsue_torrents", array( "cid" => $new_category ), $escaped); 
                    $Phrase = get_phrase("move_to_another_category"); 
                } 
 
                break; 
            case "remove_imdb": 
                aaaaex($tids); 
                $Phrase = get_phrase("remove_imdb"); 
                break; 
            case "set_multipliers": 
                $Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,options FROM tsue_torrents WHERE " . $escaped); 
                if( $TSUE["TSUE_Database"]->num_rows($Torrents) ) 
                { 
                    while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) ) 
                    { 
                        $torrentOptions = unserialize($Torrent["options"]); 
                        $torrentOptions["upload_multiplier"] = $upload_multiplier; 
                        $torrentOptions["download_multiplier"] = $download_multiplier; 
                        $buildQuery = array( "options" => serialize($torrentOptions), "flags" => 2, "upload_multiplier" => $upload_multiplier, "download_multiplier" => $download_multiplier ); 
                        $TSUE["TSUE_Database"]->update("tsue_torrents", $buildQuery, "tid=" . $TSUE["TSUE_Database"]->escape($Torrent["tid"])); 
                    } 
                } 
 
                $Phrase = get_phrase("set_multipliers"); 
                break; 
            case "delete_torrents": 
                $Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,name FROM tsue_torrents WHERE " . $escaped); 
                if( $TSUE["TSUE_Database"]->num_rows($Torrents) ) 
                { 
                    while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) ) 
                    { 
                        deletetorrent($Torrent["tid"]); 
                    } 
                } 
 
                $Phrase = get_phrase("delete_selected_torrents"); 
                break; 
        } 
        if( isset($Phrase) && $tids ) 
        { 
            $tids = implode(" ,", $tids); 
            $Phrase = get_phrase("dashboard_torrents_alt") . " -> " . get_phrase("select_an_action_to_apply") . " -> " . $Phrase . " -> " . $tids; 
            logadminaction($Phrase); 
            $HTML .= successmessage(get_phrase("message_saved")); 
        } 
 
    } 
 
    if( $keywords ) 
    { 
        $pagerConditions[] = "keywords=" . html_clean($keywords); 
        $pagerConditions[] = "searchType=" . html_clean($searchType); 
        switch( $searchType ) 
        { 
            case "name": 
                $whereConditions[] = explodesearchkeywords("t.name", $keywords); 
                break; 
            case "description": 
                $whereConditions[] = explodesearchkeywords("t.description", $keywords); 
                break; 
            case "uploader": 
                if( !is_valid_string($keywords) ) 
                { 
                    return errormessage(get_phrase("no_results_found")); 
                } 
 
                $whereConditions[] = "m.membername=" . $TSUE["TSUE_Database"]->escape($keywords); 
                break; 
            case "both": 
            case "default": 
                $whereConditions[] = explodesearchkeywords("t.name,t.description", $keywords); 
                break; 
        } 
    } 
 
    if( $categories ) 
    { 
        if( !is_array($categories) ) 
        { 
            $categories = tsue_explode(",", $categories); 
        } 
 
        $categories = array_map("intval", $categories); 
        $categories = implode(",", $categories); 
        $pagerConditions[] = "categories=" . $categories; 
        $whereConditions[] = "t.cid IN (" . $categories . ")"; 
    } 
 
    if( isset($whereConditions) ) 
    { 
        $WHERE = " WHERE " . implode(" AND ", $whereConditions); 
    } 
 
    if( !empty($pagerConditions) ) 
    { 
        $aaaaev = implode("&", $pagerConditions); 
    } 
 
    $totalTorrents = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE t.tid, m.membername FROM tsue_torrents t LEFT JOIN tsue_members m ON(t.owner=m.memberid)" . $WHERE); 
    if( !$totalTorrents ) 
    { 
        return errormessage(get_phrase("message_nothing_found")); 
    } 
 
    if( $showOnly ) 
    { 
        $Pagination["1"] = ""; 
        $Pagination["0"] = $Pagination["1"]; 
    } 
    else 
    { 
        $Pagination = pagination($totalTorrents, $aaaaev); 
    } 
 
    $aaaaey = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE t.*, m.membername, g.groupname, g.groupstyle, c.cname, c.cviewpermissions, c.cdownloadpermissions, cc.cname as parentCategoryName, a.filename, i.content as IMDBContent FROM tsue_torrents t LEFT JOIN tsue_members m on (t.owner=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_torrents_categories c ON(t.cid=c.cid) LEFT JOIN tsue_torrents_categories cc ON(c.pid=cc.cid) LEFT JOIN tsue_attachments a ON (a.content_type='torrent_images' AND a.content_id=t.tid) LEFT JOIN tsue_imdb i USING(tid)" . $WHERE . " GROUP BY t.tid " . $orderBY . " " . $Pagination["0"]); 
    $tableContents .= aaaaag(array( array( "width" => "45%", "text" => get_phrase("torrent_name") ), array( "width" => "25%", "text" => get_phrase("torrent_categories_category_name") ), array( "width" => "25%", "text" => get_phrase("torrents_seeders") . "/" . get_phrase("torrents_leechers") . "/" . get_phrase("torrents_times_completed") ), array( "width" => "5%", "text" => "<input type=\"checkbox\" name=\"checkALL\" value=\"manageTorrents[]\" />" ) ), "tableContentTR", "tableContentTDHeader"); 
    if( $showOnly ) 
    { 
        $aaaaez = array(  ); 
        while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($aaaaey) ) 
        { 
            $torrentOptions = unserialize($Torrent["options"]); 
            if( isset($torrentOptions[$showOnly]) || in_array($showOnly, array( "external", "dead", "sticky", "torrents_has_no_imdb", "silver_torrents", "x2_torrents" )) ) 
            { 
                switch( $showOnly ) 
                { 
                    case "anonymouse": 
                        if( $torrentOptions[$showOnly] ) 
                        { 
                            $aaaaez[] = $Torrent; 
                        } 
 
                        break; 
                    case "record_stats": 
                        if( !$torrentOptions[$showOnly] || !$torrentOptions["download_multiplier"] ) 
                        { 
                            $aaaaez[] = $Torrent; 
                        } 
 
                        break; 
                    case "upload_multiplier": 
                        if( $torrentOptions[$showOnly] != "1" ) 
                        { 
                            $aaaaez[] = $Torrent; 
                        } 
 
                        break; 
                    case "download_multiplier": 
                        if( $torrentOptions[$showOnly] != "1" ) 
                        { 
                            $aaaaez[] = $Torrent; 
                        } 
 
                        break; 
                    case "nuked": 
                        if( $torrentOptions[$showOnly] ) 
                        { 
                            $aaaaez[] = $Torrent; 
                        } 
 
                        break; 
                    case "hitRunRatio": 
                        if( $torrentOptions[$showOnly] ) 
                        { 
                            $aaaaez[] = $Torrent; 
                        } 
 
                        break; 
                    case "external": 
                        if( $Torrent["external"] ) 
                        { 
                            $aaaaez[] = $Torrent; 
                        } 
 
                        break; 
                    case "dead": 
                        if( !$Torrent["seeders"] ) 
                        { 
                            $aaaaez[] = $Torrent; 
                        } 
 
                        break; 
                    case "sticky": 
                        if( $Torrent["sticky"] ) 
                        { 
                            $aaaaez[] = $Torrent; 
                        } 
 
                        break; 
                    case "torrents_has_no_imdb": 
                        if( !$Torrent["IMDBContent"] ) 
                        { 
                            $aaaaez[] = $Torrent; 
                        } 
 
                        break; 
                    case "silver_torrents": 
                        if( $torrentOptions["download_multiplier"] == "0.5" ) 
                        { 
                            $aaaaez[] = $Torrent; 
                        } 
 
                        break; 
                    case "x2_torrents": 
                        if( $torrentOptions["upload_multiplier"] == "2" ) 
                        { 
                            $aaaaez[] = $Torrent; 
                        } 
 
                        break; 
                } 
            } 
 
        } 
        if( !empty($aaaaez) ) 
        { 
            foreach( $aaaaez as $Torrent ) 
            { 
                $tableContents .= aaaafa($Torrent, $manageTorrents); 
            } 
        } 
 
    } 
    else 
    { 
        while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($aaaaey) ) 
        { 
            $tableContents .= aaaafa($Torrent, $manageTorrents); 
        } 
    } 
 
    $selectBox = "
	<select name=\"searchType\" class=\"selectNoWidth\">
		<option value=\"name\"" . (($searchType == "name" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_name") . "</option>
		<option value=\"description\"" . (($searchType == "description" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_description") . "</option>
		<option value=\"both\"" . (($searchType == "both" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_both") . "</option>
		<option value=\"owner\"" . (($searchType == "owner" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_uploader") . "</option>
	</select>"; 
    $searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texttiny") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) . " <input type=\"button\" id=\"categories\" name=\"categories\" value=\"" . get_phrase("categories") . "\" class=\"submit\" />" ) )); 
    $script = "
	<script type=\"text/javascript\">
		\$('input[name=\"categories\"]').click(function(e)
		{
			e.preventDefault();
			
			\$this = \$(this);

			\$(\"#categoryList\").remove();

			\$.ajax
			({
				type: \"POST\",
				data: \"isAjax=1&action=searchInTorrentsShowCatz&categories=" . $categories . "\",
				success: function(result)
				{
					\$('<div id=\"categoryList\">'+result+'</div>').insertAfter(\$this);
				}
			});
			
			return false;
		});
	</script>"; 
    $HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array(  ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"], $script, "searchForm") . "<br />"; 
    $selectBox = "
	<input type=\"hidden\" name=\"hit_run_ratio\" value=\"\" />
	<input type=\"hidden\" name=\"new_category\" value=\"\" />
	<input type=\"hidden\" name=\"upload_multiplier\" value=\"\" />
	<input type=\"hidden\" name=\"download_multiplier\" value=\"\" />
	<input type=\"hidden\" name=\"tags\" value=\"\" />

	<select name=\"torrentAction\" class=\"selectNoWidth\">
		<option value=\"\"></option>
		<option value=\"free\">" . get_phrase("set_free_non_free") . "</option>
		<option value=\"double\">" . get_phrase("set_double_non_double") . "</option>
		<option value=\"sticky\">" . get_phrase("set_sticky_un_sticky") . "</option>
		<option value=\"anonymouse\">" . get_phrase("set_anonymouse_non_anonymouse") . "</option>
		<option value=\"record_stats\">" . get_phrase("set_record_stats_non_record_stats") . "</option>
		<option value=\"fix_info_hashes\">" . get_phrase("fix_info_hashes") . "</option>
		<option value=\"reset_hit_run\">" . get_phrase("reset_hit_and_run_ratio") . "</option>
		<option value=\"set_hit_run\">" . get_phrase("set_hit_and_run_ratio") . "</option>
		<option value=\"reset_tags\">" . get_phrase("reset_tags") . "</option>
		<option value=\"set_tags\">" . get_phrase("set_tags") . "</option>
		<option value=\"move_torrents\">" . get_phrase("move_to_another_category") . "</option>
		<option value=\"remove_imdb\">" . get_phrase("remove_imdb") . "</option>
		<option value=\"reset_imdb\">" . get_phrase("reset_imdb") . "</option>
		<option value=\"set_multipliers\">" . get_phrase("set_multipliers") . "</option>
		<option value=\"delete_torrents\">" . get_phrase("delete_selected_torrents") . "</option>
	</select>"; 
    $script = "
	<script type=\"text/javascript\">
		var \$simpleForm = \$('#simpleForm');

		\$simpleForm.on(\"submit\", function(e)
		{
			var \$tids = new Array(), \$torrentAction = \$('select[name=\"torrentAction\"]').val();
			
			\$('input[name=\"manageTorrents[]\"]:checked').each(function()
			{
				\$tids.push(\$(this).val());
			});

			var \$total = \$tids.length;

			
			if(!\$total || !\$torrentAction)
			{
				alert(\"" . get_phrase("message_required_fields_error") . "\");
				return false;
			}
			else
			{
				if(\$torrentAction == \"fix_info_hashes\" || \$torrentAction == \"reset_imdb\")
				{
					e.preventDefault();

					\$noLoader = true;

					if(\$torrentAction == \"fix_info_hashes\")
					{
						TSUEAdmin.dialog('<h2>" . get_phrase("fix_info_hashes") . "</h2><div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "</div>', false, false);
						\$(\$tids).each(function(index, element)
						{
							handleFixTorrentHashResult(element, \$total, index+1);
						});
					}
					else if(\$torrentAction == \"reset_imdb\")
					{
						TSUEAdmin.dialog('<h2>" . get_phrase("reset_imdb") . "</h2><div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("torrent_upload_step_2") . "</div>', false, false);
						\$(\$tids).each(function(index, element)
						{
							handleResetIMDB(element, \$total, index+1);
						});
					}

					return false;
				}
				else if(\$torrentAction == \"delete_torrents\")
				{
					return confirm(\"" . get_phrase("are_you_sure_that_you_want_to_perform_this_action") . "\");
				}

				return true;
			}
		});

		function endTorrentAction()
		{
			\$(\"#ajax-loader\").remove();
			\$('<div class=\"successStay\">" . get_phrase("operation_completed") . "</div>').prependTo(\".overlay_text\");
			return false;
		}

		function handleResetIMDB(tid, total, count)
		{
			if(tid)
			{
				\$.ajax
				({
					type: \"POST\",
					data: \"isAjax=1&action=resetIMDB&tid=\"+tid,
					success: function(result)
					{
						result = result.split(\"~~~\");
						var imdbURL = result[0], torrentName = result[1];

						if(imdbURL == \"no_imdb\")
						{
							\$('<div class=\"torrentFixed\">" . getimage("status/warning-24.png") . " ('+torrentName+') " . get_phrase("no_imdb") . "</div>').appendTo('.overlay_text');
						}
						else
						{
							\$('<div class=\"torrentFixed\">" . getimage("status/success-24.png") . " '+torrentName+' ('+imdbURL+')</div>').appendTo('.overlay_text');
						}

						\$(\"#ajax-loader\").remove();
						
						if(count == total)
						{
							endTorrentAction();
						}
						else
						{
							\$('<div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("torrent_upload_step_2") . "</div>').appendTo(\".overlay_text\");
						}
					}
				});
			}
		}

		function handleFixTorrentHashResult(tid, total, count)
		{
			if(tid)
			{
				\$.ajax
				({
					type: \"POST\",
					data: \"isAjax=1&action=fixTorrentHash&tid=\"+tid,
					success: function(result)
					{
						result = result.split(\"~~~\");
						var torrentName = result[0], infoHash = result[1];
						
						\$('<div class=\"torrentFixed\">" . getimage("status/success-24.png") . " '+torrentName+' ('+infoHash+')</div>').appendTo('.overlay_text');
						\$(\"#ajax-loader\").remove();
						
						if(count == total)
						{
							endTorrentAction();
						}
						else
						{
							\$('<div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "</div>').appendTo(\".overlay_text\");
						}
					}
				});
			}
		}

		\$('select[name=\"torrentAction\"]').change(function()
		{
			var \$selectBox = \$(this), \$torrentAction = \$selectBox.val();
			switch(\$torrentAction)
			{
				case \"set_hit_run\":
					var \$setHitRun = '<form name=\"set_hit_run_form\" method=\"post\" action=\"\">" . get_phrase("set_hit_and_run_ratio") . ": <input type=\"text\" name=\"hit_run_value\" value=\"\" class=\"text texttiny\" /> <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /></form>';
					
					TSUEAdmin.dialog(\$setHitRun, false, true);
					
					\$('form[name=\"set_hit_run_form\"]').submit(function(e)
					{
						e.preventDefault();
						\$(\"#hitRunError\").remove();
						
						var \$hitRunForm = \$(this), \$hitRunValue = \$('input[name=\"hit_run_value\"]', \$hitRunForm).val();
						
						if(!\$hitRunValue)
						{
							\$('<div id=\"hitRunError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$hitRunForm);
						}
						else
						{
							\$('input[name=\"hit_run_ratio\"]').val(\$hitRunValue);
							\$(\"#hitRunError\").remove();
							TSUEAdmin.closeDialog();
							\$simpleForm.submit();
						}
						return false;
					});
				break;

				case \"move_torrents\":
					\$.ajax
					({
						type: \"POST\",
						data: \"isAjax=1&action=torrentCategoriesInbutboxes&name=category_id\",
						success: function(result)
						{
							var \$moveTorrent = '<h2>" . get_phrase("move_to_another_category") . "</h2><form name=\"move_torrent_form\" method=\"post\" action=\"\">'+result+' <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /></form>';
							TSUEAdmin.dialog(\$moveTorrent, false, true);

							\$('form[name=\"move_torrent_form\"]').on(\"submit\", function(e)
							{
								e.preventDefault();
								\$(\"#newCategoryError\").remove();

								var \$moveTorrentForm = \$(this), \$newCategory = \$('input[name=\"category_id\"]:checked', \$moveTorrentForm).val();

								if(!\$newCategory)
								{
									\$('<div id=\"hitRunError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$moveTorrentForm);
								}
								else
								{
									\$('input[name=\"new_category\"]').val(\$newCategory);
									\$(\"#newCategoryError\").remove();
									TSUEAdmin.closeDialog();
									\$simpleForm.submit();
								}
								
								return false;
							});
						}
					});
				break;

				case \"set_multipliers\":
					var \$multipliers = '<h2>" . get_phrase("set_multipliers") . "</h2><form name=\"multipliers_form\" method=\"post\" action=\"\">" . get_phrase("torrent_upload_multiplier") . ": <input type=\"text\" name=\"upload_multiplier_value\" value=\"\" class=\"text texttiny\" /> " . get_phrase("torrent_download_multiplier") . ": <input type=\"text\" name=\"download_multiplier_value\" value=\"\" class=\"text texttiny\" /> <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /></form>';

					TSUEAdmin.dialog(\$multipliers, false, true);

					\$('form[name=\"multipliers_form\"]').submit(function(e)
					{
						e.preventDefault();
						\$(\"#multipliersError\").remove();
						
						var \$multipliersForm = \$(this), \$uploadMultipliervalue = \$('input[name=\"upload_multiplier_value\"]', \$multipliersForm).val(), \$downloadMultipliervalue = \$('input[name=\"download_multiplier_value\"]', \$multipliersForm).val();
						
						if(!\$uploadMultipliervalue || !\$downloadMultipliervalue)
						{
							\$('<div id=\"multipliersError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$multipliersForm);
						}
						else
						{
							\$('input[name=\"upload_multiplier\"]').val(\$uploadMultipliervalue);
							\$('input[name=\"download_multiplier\"]').val(\$downloadMultipliervalue);
							\$(\"#multipliersError\").remove();
							TSUEAdmin.closeDialog();
							\$simpleForm.submit();
						}
						return false;
					});
				break;

				case \"set_tags\":
					var \$setTags = '<h2>" . get_phrase("set_tags") . "</h2><form name=\"set_tags_form\" method=\"post\" action=\"\"><input type=\"text\" name=\"tags_value\" value=\"\" class=\"text textnormal\" /> <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /> <span class=\"smallPassiveTextBlock\">" . get_phrase("tags_altv2") . "</span></form>';
					
					TSUEAdmin.dialog(\$setTags, false, true);
					
					\$('form[name=\"set_tags_form\"]').submit(function(e)
					{
						e.preventDefault();
						\$(\"#setTagsError\").remove();
						
						var \$setTagsForm = \$(this), \$setTagsValue = \$('input[name=\"tags_value\"]', \$setTagsForm).val();
						
						if(!\$setTagsValue)
						{
							\$('<div id=\"setTagsError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$setTagsForm);
						}
						else
						{
							\$('input[name=\"tags\"]').val(\$setTagsValue);
							\$(\"#setTagsError\").remove();
							TSUEAdmin.closeDialog();
							\$simpleForm.submit();
						}
						return false;
					});
				break;
			}
		});
	</script>"; 
    $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("select_an_action_to_apply") . " " . $selectBox . " " . aaaabm(get_phrase("button_apply")), "align" => "right", "colspan" => 4 ) )); 
    $HTML .= aaaabn(createtable(get_phrase("dashboard_torrents_alt"), $tableContents, 7, $Pagination["1"]), array(  ), "", $script); 
    $displayOptions = "
	<select name=\"sortOptions[sortBy]\" class=\"selectNoWidth\">
		<option value=\"added\"" . $SelectedSortBy["added"] . ">" . get_phrase("torrents_sort_by_added") . "</option>
		<option value=\"seeders\"" . $SelectedSortBy["seeders"] . ">" . get_phrase("torrents_seeders") . "</option>
		<option value=\"leechers\"" . $SelectedSortBy["leechers"] . ">" . get_phrase("torrents_leechers") . "</option>
		<option value=\"size\"" . $SelectedSortBy["size"] . ">" . get_phrase("torrents_size") . "</option>
		<option value=\"times_completed\"" . $SelectedSortBy["times_completed"] . ">" . get_phrase("torrents_times_completed") . "</option>
	</select>
	<select name=\"sortOptions[sortOrder]\" class=\"selectNoWidth\">
		<option value=\"desc\"" . $SelectedOrderBy["desc"] . ">" . get_phrase("torrents_sort_order_desc") . "</option>
		<option value=\"asc\"" . $SelectedOrderBy["asc"] . ">" . get_phrase("torrents_sort_order_asc") . "</option>
	</select>
	"; 
    $tableContents = aaaaag(array( array( "width" => "80%", "text" => get_phrase("torrents_sort_by") . ": " . $displayOptions . " " . aaaabm(get_phrase("button_apply"), get_phrase("button_reset")) ) )); 
    $HTML .= "<br />" . aaaabn(createtable(get_phrase("torrents_display_options"), $tableContents), array(  ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"], "", "displayOptions"); 
    $aaaafb = "
	<select name=\"showOnly\" class=\"selectNoWidth\">
		<option value=\"anonymouse\"" . (($showOnly == "anonymouse" ? " selected=\"selected\"" : "")) . ">" . get_phrase("anonymouse_torrents") . "</option>
		<option value=\"record_stats\"" . (($showOnly == "record_stats" ? " selected=\"selected\"" : "")) . ">" . get_phrase("free_no_stats_torrents") . "</option>
		<option value=\"upload_multiplier\"" . (($showOnly == "upload_multiplier" ? " selected=\"selected\"" : "")) . ">" . get_phrase("different_upload_multiplier") . "</option>
		<option value=\"download_multiplier\"" . (($showOnly == "download_multiplier" ? " selected=\"selected\"" : "")) . ">" . get_phrase("different_download_multiplier") . "</option>
		<option value=\"nuked\"" . (($showOnly == "nuked" ? " selected=\"selected\"" : "")) . ">" . get_phrase("nuked_torrents") . "</option>
		<option value=\"hitRunRatio\"" . (($showOnly == "hitRunRatio" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_have_hit_run_ratio") . "</option>
		<option value=\"external\"" . (($showOnly == "external" ? " selected=\"selected\"" : "")) . ">" . get_phrase("external_torrents") . "</option>
		<option value=\"dead\"" . (($showOnly == "dead" ? " selected=\"selected\"" : "")) . ">" . get_phrase("dead_torrents") . "</option>
		<option value=\"sticky\"" . (($showOnly == "sticky" ? " selected=\"selected\"" : "")) . ">" . get_phrase("sticky_torrents") . "</option>
		<option value=\"torrents_has_no_imdb\"" . (($showOnly == "torrents_has_no_imdb" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_has_no_imdb") . "</option>
		<option value=\"silver_torrents\"" . (($showOnly == "silver_torrents" ? " selected=\"selected\"" : "")) . ">" . get_phrase("silver_torrents") . "</option>
		<option value=\"x2_torrents\"" . (($showOnly == "x2_torrents" ? " selected=\"selected\"" : "")) . ">" . get_phrase("x2_torrents") . "</option>
	</select>"; 
    $tableContents = aaaaag(array( array( "width" => "80%", "text" => "Show Only: " . $aaaafb . " " . aaaabm(get_phrase("button_apply"), get_phrase("button_reset")) ) )); 
    $HTML .= "<br />" . aaaabn(createtable(get_phrase("torrents_display_options"), $tableContents), array(  ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"], "", "showOnly"); 
    return $HTML; 
} 
 
function aaaafa($Torrent, $manageTorrents) 
{ 
    global $TSUE; 
    if( $Torrent["flags"] != 1 && $Torrent["size"] && $Torrent["name"] ) 
    { 
        $Torrent["options"] = unserialize($Torrent["options"]); 
        $torrentImage = get_torrent_image($Torrent["filename"], ($Torrent["IMDBContent"] ? unserialize($Torrent["IMDBContent"]) : "")); 
        $torrentName = strip_tags($Torrent["name"]); 
        $torrentFlags = gettorrentmultipliers($Torrent); 
        $size = friendly_size($Torrent["size"]); 
        $aaaafc = get_phrase("torrents_owner", convert_relative_time($Torrent["added"]), getmembername($Torrent["membername"], $Torrent["groupstyle"])); 
        $aaaafd = strip_tags($Torrent["cname"]); 
        if( $Torrent["parentCategoryName"] ) 
        { 
            $aaaafd = strip_tags($Torrent["parentCategoryName"]) . " > " . $aaaafd; 
        } 
 
        $seeders = number_format($Torrent["seeders"]); 
        $leechers = number_format($Torrent["leechers"]); 
        $aaaafe = number_format($Torrent["times_completed"]); 
        return aaaaag(array( array( "width" => "45%", "valign" => "top", "text" => "
										<div class=\"torrentImage\">" . $torrentImage . "</div>
										<div class=\"torrentDetails\">" . aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Torrent["tid"], $torrentName) . "</div>
										<div class=\"torrentDetails\">" . $torrentFlags . "</div>
										<span class=\"smallPassiveTextBlock\">" . $size . " - " . aaaaaf("?p=profile&pid=18&memberid=" . $Torrent["owner"], $aaaafc) . "</span>" ), array( "width" => "25%", "valign" => "top", "text" => $aaaafd ), array( "width" => "25%", "valign" => "top", "text" => $seeders . "/" . $leechers . "/" . $aaaafe ), array( "width" => "5%", "valign" => "top", "text" => "<input type=\"checkbox\" name=\"manageTorrents[]\" value=\"" . $Torrent["tid"] . "\"" . (($manageTorrents && in_array($Torrent["tid"], $manageTorrents) ? " checked=\"checked\"" : "")) . " />" ) )); 
    } 
 
} 
 
function cleartags($tags) 
{ 
    $tags = removewhitespaces($tags); 
    $tags = preg_replace("/,+/", ",", $tags); 
    $tags = trim($tags, ","); 
    $tags = trim($tags); 
    return $tags; 
} 
 
function aaaaew($Option, $escaped, $if, $so, $otherwise, $type = "==") 
{ 
    global $TSUE; 
    $Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,options FROM tsue_torrents WHERE " . $escaped); 
    if( $TSUE["TSUE_Database"]->num_rows($Torrents) ) 
    { 
        while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) ) 
        { 
            $torrentOptions = unserialize($Torrent["options"]); 
            if( $type == "==" ) 
            { 
                $torrentOptions[$Option] = ($torrentOptions[$Option] == $if ? $so : $otherwise); 
            } 
            else 
            { 
                if( $type == "!=" ) 
                { 
                    $torrentOptions[$Option] = ($torrentOptions[$Option] != $if ? $so : $otherwise); 
                } 
 
            } 
 
            $buildQuery = array(  ); 
            $buildQuery["options"] = serialize($torrentOptions); 
            $buildQuery["flags"] = 2; 
            if( $Option == "upload_multiplier" ) 
            { 
                $buildQuery["upload_multiplier"] = $torrentOptions[$Option]; 
            } 
            else 
            { 
                if( $Option == "download_multiplier" ) 
                { 
                    $buildQuery["download_multiplier"] = $torrentOptions[$Option]; 
                } 
 
            } 
 
            $TSUE["TSUE_Database"]->update("tsue_torrents", $buildQuery, "tid=" . $TSUE["TSUE_Database"]->escape($Torrent["tid"])); 
        } 
    } 
 
} 
 
function gettorrentmultipliers($Torrent) 
{ 
    global $TSUE; 
    $multipliers = $newIndicatorText = ""; 
    $defaultThemeName = aaaaff(); 
    if( $Torrent["options"]["record_stats"] == 0 ) 
    { 
        $newIndicatorText[] = "torrent_no_record"; 
    } 
    else 
    { 
        if( $Torrent["options"]["download_multiplier"] == 0 || $Torrent["download_multiplier"] == 0 ) 
        { 
            $newIndicatorText[] = "torrent_free"; 
        } 
        else 
        { 
            if( $Torrent["options"]["download_multiplier"] != 1 || $Torrent["download_multiplier"] != 1 ) 
            { 
                $Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/torrent_free.png", "alt" => "", "title" => get_phrase("torrent_download_multiplier") . ": " . $Torrent["options"]["download_multiplier"], "class" => "middle", "id" => "", "rel" => "" ); 
                $multipliers .= aaaadb($Image); 
            } 
 
        } 
 
        if( $Torrent["options"]["upload_multiplier"] != 1 || $Torrent["upload_multiplier"] != 1 ) 
        { 
            $Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/torrent_multiple_upload.png", "alt" => "", "title" => get_phrase("torrent_upload_multiplier") . ": " . $Torrent["options"]["upload_multiplier"], "class" => "middle", "id" => "", "rel" => "" ); 
            $multipliers .= aaaadb($Image); 
        } 
 
    } 
 
    if( $Torrent["sticky"] ) 
    { 
        $Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/sticky.png", "alt" => "", "title" => get_phrase("sticky_torrent"), "class" => "middle", "id" => "", "rel" => "" ); 
        $multipliers .= aaaadb($Image); 
    } 
 
    if( $Torrent["options"]["nuked"] ) 
    { 
        $nuked_reason_x = str_replace("\"", "", strip_tags($Torrent["options"]["nuked"])); 
        $nuked_reason_x = get_phrase("nuked_reason_x", $nuked_reason_x); 
        $Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/buttons/nuke.png", "alt" => $nuked_reason_x, "title" => $nuked_reason_x, "class" => "middle", "id" => "", "rel" => "" ); 
        $multipliers .= aaaadb($Image); 
    } 
 
    if( $newIndicatorText ) 
    { 
        foreach( $newIndicatorText as $text ) 
        { 
            $Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/" . $text . ".png", "alt" => "", "title" => get_phrase($text), "class" => "middle", "id" => "", "rel" => "" ); 
            $multipliers .= aaaadb($Image); 
        } 
    } 
 
    if( $Torrent["external"] ) 
    { 
        $Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/buttons/refresh.png", "alt" => $Torrent["tid"], "title" => get_phrase("refresh_external_torrent_status"), "class" => "middle clickable", "id" => "update_external_torrent", "rel" => "" ); 
        $multipliers .= aaaadb($Image); 
    } 
 
    return $multipliers; 
} 
 
function aaaadb($Image = array(  )) 
{ 
    return "<img src=\"" . $Image["src"] . "\" alt=\"" . $Image["alt"] . "\" title=\"" . $Image["title"] . "\" class=\"" . $Image["class"] . "\" id=\"" . $Image["id"] . "\" rel=\"" . $Image["rel"] . "\" />"; 
} 
 
function get_torrent_image($filename, $IMDBContent = "") 
{ 
    global $TSUE; 
    if( $filename && is_file(DATAPATH . "torrents/torrent_images/s/" . $filename) ) 
    { 
        $image = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/torrent_images/s/" . $filename; 
    } 
    else 
    { 
        if( $IMDBContent && is_file(DATAPATH . "torrents/imdb/" . $IMDBContent["title_id"] . ".jpg") ) 
        { 
            $image = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/imdb/" . $IMDBContent["title_id"] . ".jpg"; 
        } 
 
    } 
 
    if( !isset($image) ) 
    { 
        $defaultThemeName = aaaaff(); 
        return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/torrent_s.png\" alt=\"\" title=\"\" />"; 
    } 
 
    $Image = array( "src" => $image, "alt" => "", "title" => "", "class" => "middle", "id" => "", "rel" => "" ); 
    return aaaadb($Image); 
} 
 
function handleaddons() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $aaaafg = aaaaae(array( "install=1" => array( "phrase" => get_phrase("install_addon") ) )); 
    $aaaafh = aaaaae(array( "TSUEAddonStore=1" => array( "phrase" => get_phrase("tsue_store") ) )); 
    $aaaafi = aaaaae(array( "checkAddonUpdates=1" => array( "phrase" => get_phrase("check_updates") ) )); 
    $enable_disable = intval(getvar("enable_disable")); 
    $delete = intval(getvar("delete")); 
    $run = intval(getvar("run")); 
    $install = intval(getvar("install")); 
    $permissions = intval(getvar("permissions")); 
    $TSUEAddonStore = intval(getvar("TSUEAddonStore")); 
    $checkAddonUpdates = intval(getvar("checkAddonUpdates")); 
    $_SESSION["load-addon"] = ""; 
    if( $checkAddonUpdates ) 
    { 
        addbreadcrumb(array( get_phrase("check_updates") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;checkAddonUpdates=1" )); 
        return "
		<div class=\"ajaxLoaderDiv\" id=\"updatesAreBeingChecked\">
			" . getimage("ajax/ajax-loader.gif", NULL, "middle") . "
			" . get_phrase("please_wait_while_updates_are_being_checked") . "
		</div>
		
		<script type=\"text/javascript\">
			setTimeout(function()
			{
				\$.ajax
				({
					type: \"POST\",
					data: \"isAjax=1&action=checkAddonUpdates\",
					success: function(result)
					{
						\$(\"<div>\"+result+\"</div>\").insertBefore(\"#updatesAreBeingChecked\");
						\$(\"#updatesAreBeingChecked\").remove();
					}
				});
			}, 1000);
		</script>"; 
    } 
 
    if( $permissions ) 
    { 
        $Addon = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($permissions)); 
        if( $Addon ) 
        { 
            addbreadcrumb(array( get_phrase("set_permissions") . ": " . $Addon["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;permissions=" . $Addon["addon_id"] )); 
            $Permissions = ($Addon["permissions"] ? explode(",", $Addon["permissions"]) : array(  )); 
            if( ispost() ) 
            { 
                $Permissions = getvar("Permissions", array(  ), false); 
                $newPerms = implode(",", array_map("intval", $Permissions)); 
                $TSUE["TSUE_Database"]->update("tsue_admincp_addons", array( "permissions" => $newPerms ), "addon_id = " . $TSUE["TSUE_Database"]->escape($permissions)); 
                $Phrase = get_phrase("addon_perms_updated", $Addon["title"]); 
                logadminaction($Phrase); 
                handlerebuildcaches(false); 
                $HTML .= successmessage($Phrase); 
            } 
 
            if( !$HTML ) 
            { 
                $Usergroups = aaaaaw("Permissions[]", $Permissions); 
                $formContents = aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all")); 
                $HTML .= aaaabg($formContents); 
                return $HTML; 
            } 
 
        } 
 
    } 
 
    if( $run ) 
    { 
        $Addon = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($run)); 
        if( $Addon ) 
        { 
            addbreadcrumb(array( $Addon["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;run=" . $Addon["addon_id"] )); 
            $addonFile = "./addons/files/" . $Addon["filename"] . ".php"; 
            if( !is_file($addonFile) ) 
            { 
                return errormessage("Add-on file does not exists: addons/files/" . $Addon["filename"] . ".php"); 
            } 
 
            if( $Addon["permissions"] ) 
            { 
                $aPerms = explode(",", $Addon["permissions"]); 
                if( !in_array($TSUE["TSUE_Member"]["membergroupid"], $aPerms) ) 
                { 
                    return errormessage(get_phrase("permission_denied")); 
                } 
 
            } 
 
            $_SESSION["load-addon"] = base64_encode(strrev(md5($Addon["filename"]))); 
            $HTML .= "
			<iframe name=\"addonIframe\" id=\"addonIframe\" src=\"addons/load-addon.php?load=" . $Addon["filename"] . "\" frameborder=\"0\" border=\"0\" cellspacing=\"0\" style=\"border: 1px solid #ccc;width: 100%; height: 50px; margin-bottom: 10px;\"></iframe>
			<script type=\"text/javascript\" src=\"./js/jquery.iframe-auto-height.js\"></script>
			<script type=\"text/javascript\">\$(\"#addonIframe\").iframeAutoHeight();</script>"; 
        } 
 
    } 
 
    if( $delete ) 
    { 
        checkdemomode(); 
        $Addon = $TSUE["TSUE_Database"]->query_result("SELECT filename,title FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Addon ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_admincp_addons", "addon_id = " . $TSUE["TSUE_Database"]->escape($delete)); 
            if( is_file("./addons/files/" . $Addon["filename"] . ".php") ) 
            { 
                @unlink("./addons/files/" . $Addon["filename"] . ".php"); 
            } 
 
            $Phrase = get_phrase("addon_x_has_been_deleted", $Addon["title"] . " (" . $delete . ")"); 
            logadminaction($Phrase); 
            handlerebuildcaches(false); 
            $HTML .= successmessage($Phrase); 
        } 
 
    } 
 
    if( $enable_disable ) 
    { 
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
        $Addon = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
        if( $Addon ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_admincp_addons", $BuildQuery, "addon_id = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            $Phrase = get_phrase("addon_has_been_updated", $Addon["title"] . " (" . $enable_disable . ")"); 
            logadminaction($Phrase); 
            handlerebuildcaches(false); 
            $HTML .= successmessage($Phrase); 
        } 
 
    } 
 
    if( $TSUEAddonStore ) 
    { 
        addbreadcrumb(array( get_phrase("tsue_store") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;TSUEAddonStore=1" )); 
        $HTML = "
		<div id=\"getTSUEAddons\">
			" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "
		</div>
		
		<script type=\"text/javascript\">
			\$(window).load(function()
			{
				buildQuery = \"isAjax=1&action=getTSUEAddons\";
				\$.ajax
				({
					type: \"POST\",
					data: buildQuery,
					success: function(response)
					{
						if(!response)
						{
							response = \"" . get_phrase("message_nothing_found") . "\";
						}

						\$(\"#getTSUEAddons\").html(response);
						
						\$('#getTSUEAddons div[class=\"install_addon\"]').on(\"click\", function(e)
						{
							e.preventDefault();
							var \$installButton = \$(this), \$addonID = parseInt(\$installButton.attr(\"rel\"));
							\$(\"#purchaseFormDiv\").remove();

							var purchaseFormHTML = '<div style=\"display: none; padding: 8px; margin: 5px 0; border: 1px solid #ccc; width: 400px;\" id=\"purchaseFormDiv\">'+
							'<form method=\"post\" id=\"purchaseForm\">'+
							'<div style=\"font-weight: bold; color: red; margin-bottom: 4px;\">" . get_phrase("enter_customer_number") . "</div>'+
							'" . get_phrase("customer_number") . ": <input type=\"text\" class=\"text texttiny\" name=\"customerNumber\" />'+
							'&nbsp;<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("upgrade_purchase") . "\" />'+ 
							'&nbsp;<input type=\"button\" class=\"submit\" value=\"" . get_phrase("button_close") . "\" id=\"purchaseFormCancelButton\" />'+
							'</form>'+
							'</div>';

							\$(purchaseFormHTML).insertBefore(\$installButton).fadeIn(\"slow\").expose({closeOnEsc: false, closeOnClick: false});
							\$(\"#purchaseForm\").submit(function(e)
							{
								e.preventDefault();
								
								var \$customerNumber = \$('input[name=\"customerNumber\"]', \$(this)).val();
								if(\$customerNumber.length == 10)
								{
									\$installButton.hide();
									\$(\"#purchaseFormDiv\").html('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "').css({\"text-align\":\"center\", \"color\": \"red\", \"border\": \"2px solid #000\"}).expose({closeOnEsc: false, closeOnClick: false});
									\$.ajax
									({
										type: \"POST\",
										data: \"isAjax=1&action=purchaseTSUEAddon&customerNumber=\"+\$customerNumber+\"&addon_id=\"+\$addonID,
										success: function(response)
										{
											\$(\"#purchaseFormDiv\").html(response);
											\$(\"#purchaseFormCancelButton\").click(function(e)
											{
												e.preventDefault();
												\$.mask.close();
												\$(\"#purchaseFormDiv\").remove();
												\$installButton.show();
												return false;
											});
										}
									});
								}
								else
								{
									\$(\"#purchaseFormDiv\").effect(\"shake\", { times: 3 }, 300);
								}
								
								return false;
							});

							\$(\"#purchaseFormCancelButton\").click(function(e)
							{
								e.preventDefault();
								\$.mask.close();
								\$(\"#purchaseFormDiv\").remove();
								\$installButton.show();
								return false;
							});

							return false;
						}).hover
						(
							function()
							{
								\$(this).css({\"background\":\"#16cc16\"});
							}
							,
							function()
							{
								\$(this).css({\"background\":\"#d8b654\"});
							}
						);
					}
				});
			});
		</script>"; 
        return $HTML; 
    } 
 
    if( $install ) 
    { 
        addbreadcrumb(array( get_phrase("install_addon") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;install=1" )); 
        checkdemomode(); 
        if( !function_exists("simplexml_load_file") ) 
        { 
            return errormessage("TSUE Add-on system requires the PHP function <code>simplexml_load_file()</code>.<br />Your server has this disabled. Please ask your hosting company to enable <code>simplexml_load_file</code>."); 
        } 
 
        if( ispost() ) 
        { 
            $addonFile = (isset($_FILES["addon_file"]) ? $_FILES["addon_file"] : ""); 
            if( $addonFile ) 
            { 
                if( !$addonFile["name"] || !$addonFile["tmp_name"] || $addonFile["error"] || !$addonFile["size"] ) 
                { 
                    $HTML .= errormessage(get_phrase("upload_error3") . " (PE-" . $addonFile["error"] . ")"); 
                } 
                else 
                { 
                    if( !preg_match("#xml#", $addonFile["type"]) || file_extension($addonFile["name"]) != "xml" ) 
                    { 
                        $HTML .= errormessage(get_phrase("upload_error6", "xml")); 
                    } 
                    else 
                    { 
                        if( !($Addon = simplexml_load_file($addonFile["tmp_name"])) ) 
                        { 
                            $HTML .= errormessage(get_phrase("failed_to_open_x", htmlspecialchars($addonFile["name"]))); 
                        } 
                        else 
                        { 
                            if( !isset($Addon->filename) || !isset($Addon->title) || !isset($Addon->description) || !isset($Addon->version_string) || !isset($Addon->version_id) || !isset($Addon->active) || !isset($Addon->permissions) ) 
                            { 
                                $HTML .= errormessage(get_phrase("invalid_addon_xml")); 
                            } 
                            else 
                            { 
                                if( !preg_match("#^[a-zA-Z0-9_\-]+\$#", $Addon->filename) ) 
                                { 
                                    $HTML .= errormessage("Addon filename contains bad chars. Only [a-z A-Z 0-9 - _] allowed."); 
                                } 
                                else 
                                { 
                                    if( !is_file("./addons/files/" . $Addon->filename . ".php") ) 
                                    { 
                                        $HTML .= errormessage("Add-on file does not exists: addons/files/" . $Addon->filename . ".php"); 
                                    } 
                                    else 
                                    { 
                                        $aaaafj = $TSUE["TSUE_Database"]->query_result("SELECT filename FROM tsue_admincp_addons WHERE filename = " . $TSUE["TSUE_Database"]->escape($Addon->filename)); 
                                        if( $aaaafj ) 
                                        { 
                                            return errormessage(get_phrase("x_is_already_installed", $Addon->filename)); 
                                        } 
 
                                        $buildQuery = array( "filename" => $Addon->filename, "title" => strip_tags($Addon->title), "description" => strip_tags($Addon->description), "version_string" => htmlspecialchars($Addon->version_string), "version_id" => htmlspecialchars($Addon->version_id), "active" => ($Addon->active == 1 ? 1 : 0), "permissions" => htmlspecialchars($Addon->permissions) ); 
                                        $TSUE["TSUE_Database"]->insert("tsue_admincp_addons", $buildQuery); 
                                        $Phrase = get_phrase("new_addon_installed", $Addon->filename); 
                                        logadminaction($Phrase); 
                                        handlerebuildcaches(false); 
                                        return successmessage($Phrase); 
                                    } 
 
                                } 
 
                            } 
 
                        } 
 
                    } 
 
                } 
 
            } 
            else 
            { 
                $HTML .= errormessage(get_phrase("upload_error3")); 
            } 
 
        } 
 
        $aaaacr = aaaacs("addon_file"); 
        $formContents = aaaaan(get_phrase("install_from_uploaded_file"), $aaaacr); 
        $HTML .= aaaabg($formContents, array(  ), "", "install_addon"); 
        return $HTML; 
    } 
 
    $tableContents .= aaaaag(array( array( "width" => "80%", "text" => get_phrase("installed_addons") ), array( "width" => "20%", "text" => "" ) ), "tableContentTR", "tableContentTDHeader"); 
    $Addons = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_admincp_addons ORDER BY active DESC, title ASC"); 
    if( $TSUE["TSUE_Database"]->num_rows($Addons) ) 
    { 
        while( $Addon = $TSUE["TSUE_Database"]->fetch_assoc($Addons) ) 
        { 
            $linkClass = (!$Addon["active"] ? "linkDisabled" : ""); 
            $aaaafk = aaaaae(array( "run=" . $Addon["addon_id"] => array( "phrase" => $Addon["title"], "class" => $linkClass ) )); 
            $aaaafl = aaaaae(array( "delete=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            $aaaafm = aaaaae(array( "permissions=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/permissions.png", get_phrase("set_permissions")) ) )); 
            if( $Addon["active"] ) 
            { 
                $aaaafn = aaaaae(array( "enable_disable=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
            } 
            else 
            { 
                $aaaafn = aaaaae(array( "enable_disable=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
            } 
 
            $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaafk . "<span class=\"smallPassiveText\">(" . $Addon["version_string"] . ") " . $Addon["description"] . "</span>" ), array( "width" => "20%", "text" => $aaaafm . $aaaafn . $aaaafl, "align" => "right" ) )); 
        } 
    } 
    else 
    { 
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("there_is_no_any_addon_installed_yet"), "colspan" => "2" ) )); 
    } 
 
    $HTML .= aaaabn(createtable(get_phrase("addons_alt"), $tableContents, 2, $aaaafh . " | " . $aaaafg . " | " . $aaaafi)); 
    return $HTML; 
} 
 
function handlerecentcomments() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $deleteComment = intval(getvar("deleteComment")); 
    $deleteReply = intval(getvar("deleteReply")); 
    if( $deleteComment ) 
    { 
        $TSUE["TSUE_Database"]->delete("tsue_comments", "comment_id = " . $TSUE["TSUE_Database"]->escape($deleteComment) . " AND content_type IN (\"torrent_comments\", \"profile_comments\")"); 
        $TSUE["TSUE_Database"]->delete("tsue_comments_replies", "comment_id = " . $TSUE["TSUE_Database"]->escape($deleteComment) . " AND content_type IN (\"torrent_comments\", \"profile_comments\")"); 
        $Phrase = get_phrase("comment_x_has_been_deleted", $deleteComment); 
        logadminaction($Phrase); 
        $HTML = successmessage($Phrase); 
    } 
 
    if( $deleteReply ) 
    { 
        $TSUE["TSUE_Database"]->delete("tsue_comments_replies", "reply_id = " . $TSUE["TSUE_Database"]->escape($deleteReply) . " AND content_type IN (\"torrent_comments\", \"profile_comments\")"); 
        $Phrase = get_phrase("comment_x_has_been_deleted", $deleteComment); 
        logadminaction($Phrase); 
        $HTML = successmessage($Phrase); 
    } 
 
    $totalComments = $TSUE["TSUE_Database"]->row_count("SELECT comment_id FROM tsue_comments WHERE content_type IN (\"torrent_comments\", \"profile_comments\")"); 
    if( !$totalComments ) 
    { 
        return errormessage(get_phrase("message_nothing_found")); 
    } 
 
    $Pagination = pagination($totalComments, "", 3, 20); 
    $Comments = $TSUE["TSUE_Database"]->query("SELECT c.*, m.membername, g.groupstyle FROM tsue_comments c LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE c.content_type IN (\"torrent_comments\", \"profile_comments\") ORDER BY post_date DESC " . $Pagination["0"]); 
    $aaaafo = $profileComments = $aaaafp = array(  ); 
    while( $Comment = $TSUE["TSUE_Database"]->fetch_assoc($Comments) ) 
    { 
        $aaaafp[] = $Comment["comment_id"]; 
        if( $Comment["content_type"] == "torrent_comments" ) 
        { 
            $aaaafo[] = $Comment; 
        } 
        else 
        { 
            if( $Comment["content_type"] == "profile_comments" ) 
            { 
                $profileComments[] = $Comment; 
            } 
 
        } 
 
    } 
    $commentReplyCache = array(  ); 
    $aaaafq = $TSUE["TSUE_Database"]->query("SELECT r.*, m.membername, g.groupstyle FROM tsue_comments_replies r LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE r.comment_id IN (0," . implode(",", $aaaafp) . ") ORDER BY post_date ASC"); 
    if( $TSUE["TSUE_Database"]->num_rows($aaaafq) ) 
    { 
        while( $Reply = $TSUE["TSUE_Database"]->fetch_assoc($aaaafq) ) 
        { 
            $commentReplyCache[$Reply["comment_id"]][] = $Reply; 
        } 
    } 
 
    $TSUE["TSUE_Database"]->free($Comments); 
    $TSUE["TSUE_Database"]->free($aaaafq); 
    $TSUE["TSUE_Security"] = new TSUE_Security(); 
    $TSUE["TSUE_Parser"] = new TSUE_Parser(); 
    $tC = ""; 
    if( $aaaafo ) 
    { 
        foreach( $aaaafo as $Comment ) 
        { 
            $tC .= buildcommentlist($Comment, "torrent_comments", 1, $commentReplyCache); 
        } 
    } 
 
    $pC = ""; 
    if( $profileComments ) 
    { 
        foreach( $profileComments as $Comment ) 
        { 
            $pC .= buildcommentlist($Comment, "profile_posts", 2, $commentReplyCache); 
        } 
    } 
 
    $createTabs = createtabs(array( get_phrase("torrent_comments") => $tC, get_phrase("profile_posts") => $pC )); 
    return $HTML . createtable(get_phrase("recent_comments"), "<tr><td>" . $createTabs . "</td></tr>", 1, $Pagination["1"]); 
} 
 
function buildcommentlist($Comment, $Type, $tabNumber, $commentReplyCache) 
{ 
    global $TSUE; 
    $Sender = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Comment["memberid"] => array( "phrase" => getmembername($Comment["membername"], $Comment["groupstyle"]) ) )); 
    $postDate = convert_relative_time($Comment["post_date"]); 
    $Message = $TSUE["TSUE_Parser"]->parse($Comment["message"]); 
    if( $Type == "torrent_comments" ) 
    { 
        $URL = "?p=torrents&pid=10&action=details&tid=" . $Comment["content_id"] . "#torrent_comments"; 
    } 
    else 
    { 
        $URL = "?p=profile&pid=18&memberid=" . $Comment["content_id"] . "#profile_posts"; 
    } 
 
    $Link = aaaaaf($URL, getimage("buttons/view_comment.png", get_phrase("view_comment"))); 
    $Delete = aaaaae(array( "deleteComment=" . $Comment["comment_id"] . "#tabs-" . $tabNumber => array( "phrase" => getimage("buttons/delete_comment.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
    $aaaafr = aaaafs($Comment["comment_id"], $Type, $tabNumber, $commentReplyCache); 
    return "
	<div style=\"margin-bottom: 10px; border-bottom: 3px solid #ccc;\">
		<div style=\"background: #fff; padding: 5px; font-size: 13px;\">
			<span style=\"float: right;\">" . $Link . "&nbsp;&nbsp;" . $Delete . "</span>
			" . $Sender . " | " . $postDate . "
		</div>
		<div style=\"padding: 5px; font-size: 12px;\">
			" . $Message . "
			" . $aaaafr . "
		</div>
	</div>"; 
} 
 
function aaaafs($comment_id, $Type, $tabNumber, $commentReplyCache) 
{ 
    global $TSUE; 
    if( isset($commentReplyCache[$comment_id]) ) 
    { 
        $Replies = ""; 
        foreach( $commentReplyCache[$comment_id] as $Comment ) 
        { 
            $Sender = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Comment["memberid"] => array( "phrase" => getmembername($Comment["membername"], $Comment["groupstyle"]) ) )); 
            $postDate = convert_relative_time($Comment["post_date"]); 
            $Message = $TSUE["TSUE_Parser"]->parse($Comment["message"]); 
            if( $Type == "torrent_comments" ) 
            { 
                $URL = "?p=torrents&pid=10&action=details&tid=" . $Comment["content_id"] . "#torrent_comments"; 
            } 
            else 
            { 
                $URL = "?p=profile&pid=18&memberid=" . $Comment["content_id"] . "#profile_posts"; 
            } 
 
            $Link = aaaaaf($URL, getimage("buttons/view_comment.png", get_phrase("view_comment"))); 
            $Delete = aaaaae(array( "deleteReply=" . $Comment["reply_id"] . "#tabs-" . $tabNumber => array( "phrase" => getimage("buttons/delete_comment.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            $Replies .= "
			<div style=\"margin: 10px; border-bottom: 1px solid #ccc; border-top: 1px solid #ccc;\">
				<div style=\"background: #e1e0e0; padding: 0; font-size: 10px;\">
					<span style=\"float: right;\">" . $Link . "&nbsp;&nbsp;" . $Delete . "</span>
					" . $Sender . " | " . $postDate . "
				</div>
				<div style=\"padding: 5px; font-size: 9px;\">" . $Message . "</div>
			</div>"; 
        } 
        return $Replies; 
    } 
 
} 
 
function handletorrentgenres() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $enable_disable = intval(getvar("enable_disable")); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $genreImagesFullURL = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/torrent_genres/"; 
    $aaaaft = DATAPATH . "torrents/torrent_genres/"; 
    $tableContents = ""; 
    if( !is_dir($aaaaft) || !is_writable($aaaaft) ) 
    { 
        return errormessage(get_phrase("torrent_genres_folder_error")); 
    } 
 
    if( $new || $edit ) 
    { 
        checkdemomode(); 
        $Genre = array( "gname" => "", "gicon" => "", "active" => 0, "categories" => "" ); 
        $aaaaam = ""; 
        if( $edit ) 
        { 
            $Genre = $TSUE["TSUE_Database"]->query_result("SELECT gname, gicon, active, categories FROM tsue_torrents_genres WHERE gid = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Genre ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
            $aaaafu = $Genre["gicon"]; 
            $Genre["categories"] = explode(",", $Genre["categories"]); 
            addbreadcrumb(array( get_phrase("button_edit") . ": <img src=\"" . $genreImagesFullURL . $Genre["gicon"] . "\" style=\"width: 16px; height: 16px; border: 0; vertical-align: middle; margin: 0 3px;\" /> " . $Genre["gname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        } 
        else 
        { 
            addbreadcrumb(array( get_phrase("create_new_genre") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
        } 
 
        if( isset($_POST["Genre"]) ) 
        { 
            $Genre = $_POST["Genre"]; 
            if( !isset($Genre["categories"]) || !$Genre["categories"] ) 
            { 
                $Genre["categories"] = array(  ); 
            } 
 
            if( !$Genre["gname"] ) 
            { 
                $formErrors[] = get_phrase("please_enter_a_valid_title"); 
            } 
            else 
            { 
                if( isset($_FILES["gicon"]) ) 
                { 
                    $aaaafv = $_FILES["gicon"]; 
                    if( !$aaaafv["size"] || $aaaafv["error"] ) 
                    { 
                        if( !$edit ) 
                        { 
                            $formErrors[] = get_phrase("upload_error3"); 
                        } 
 
                    } 
                    else 
                    { 
                        if( !in_array(file_extension($aaaafv["name"]), array( "gif", "jpg", "png", "jpeg" )) ) 
                        { 
                            $formErrors[] = get_phrase("upload_error6", "gif, jpg, png"); 
                        } 
                        else 
                        { 
                            if( is_file($aaaaft . $aaaafv["name"]) ) 
                            { 
                                $formErrors[] = get_phrase("upload_error7"); 
                            } 
                            else 
                            { 
                                if( !move_uploaded_file($aaaafv["tmp_name"], $aaaaft . $aaaafv["name"]) ) 
                                { 
                                    $formErrors[] = get_phrase("upload_error8"); 
                                } 
                                else 
                                { 
                                    $aaaafw = $aaaaft . $aaaafv["name"]; 
                                } 
 
                            } 
 
                        } 
 
                    } 
 
                } 
 
            } 
 
            if( !$edit && (!isset($aaaafw) || !is_file($aaaafw)) ) 
            { 
                $formErrors[] = get_phrase("genre_icon_error"); 
            } 
 
            if( isset($formErrors) ) 
            { 
                if( isset($aaaafw) ) 
                { 
                    @unlink($aaaafw); 
                } 
 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
            else 
            { 
                $buildQuery = array( "gname" => $Genre["gname"], "active" => $Genre["active"], "categories" => implode(",", $Genre["categories"]) ); 
                if( $edit ) 
                { 
                    if( isset($aaaafw) ) 
                    { 
                        if( is_file($aaaaft . $aaaafu) ) 
                        { 
                            unlink($aaaaft . $aaaafu); 
                        } 
 
                        $buildQuery["gicon"] = str_replace($aaaaft, "", $aaaafw); 
                    } 
 
                    $Phrase = get_phrase("genre_x_updated", $Genre["gname"]); 
                    $TSUE["TSUE_Database"]->update("tsue_torrents_genres", $buildQuery, "gid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $Phrase = get_phrase("new_genre_x_created", $Genre["gname"]); 
                    $buildQuery["gicon"] = str_replace($aaaaft, "", $aaaafw); 
                    $TSUE["TSUE_Database"]->insert("tsue_torrents_genres", $buildQuery); 
                } 
 
                $HTML .= successmessage($Phrase); 
                logadminaction($Phrase); 
                handlerebuildcaches(false); 
                handleprune(false); 
                $uploadDone = true; 
            } 
 
        } 
 
        if( !isset($uploadDone) ) 
        { 
            $inputbox = inputbox("Genre[gname]", $Genre["gname"]); 
            $formContents = aaaaan(get_phrase("genre_name"), $inputbox); 
            $radioButtons = radioyesno("Genre[active]", $Genre["active"]); 
            $formContents .= aaaaan(get_phrase("genre_active"), $radioButtons); 
            $aaaacr = aaaacs("gicon"); 
            $formContents .= aaaaan(get_phrase("genre_icon"), $aaaacr, ($edit ? get_phrase("global_leave_empty_keep_current_one") : "")); 
            $aaaact = array(  ); 
            $aaaafx = array(  ); 
            $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC"); 
            while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) ) 
            { 
                if( $Category["pid"] ) 
                { 
                    $aaaact[$Category["pid"]][] = $Category; 
                } 
                else 
                { 
                    $aaaafx[] = $Category; 
                } 
 
            } 
            $aaaafy = "
			<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
				<tr>"; 
            $Count = 0; 
            $maxPerRow = 4; 
            foreach( $aaaafx as $Category ) 
            { 
                if( $Count % $maxPerRow == 0 ) 
                { 
                    $aaaafy .= "
					</tr><tr>"; 
                } 
 
                $Count++; 
                $subCategoryList = ""; 
                if( isset($aaaact[$Category["cid"]]) ) 
                { 
                    foreach( $aaaact[$Category["cid"]] as $subCategory ) 
                    { 
                        $checked = ""; 
                        if( in_array($subCategory["cid"], $Genre["categories"]) ) 
                        { 
                            $checked = " checked=\"checked\""; 
                        } 
 
                        $subCategoryList .= "
						<div style=\"margin-left: 20px;\" class=\"forumSub\">
							<label><input type=\"checkbox\" name=\"Genre[categories][]\" value=\"" . $subCategory["cid"] . "\"" . $checked . " /> " . $subCategory["cname"] . "</label>
						</div>"; 
                    } 
                } 
 
                $checked = ""; 
                if( in_array($Category["cid"], $Genre["categories"]) ) 
                { 
                    $checked = " checked=\"checked\""; 
                } 
 
                $aaaafy .= "
					<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">
						<label><input type=\"checkbox\" name=\"Genre[categories][]\" value=\"" . $Category["cid"] . "\"" . $checked . " /> " . $Category["cname"] . "</label>
						" . $subCategoryList . "
					</td>"; 
            } 
            $aaaafy .= "
				</tr>
			</table>"; 
            $formContents .= aaaaan(get_phrase("select_torrent_categories"), $aaaafy, get_phrase("select_torrent_categories_alt")); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    if( $enable_disable ) 
    { 
        checkdemomode(); 
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
        $Genre = $TSUE["TSUE_Database"]->query_result("SELECT gname FROM tsue_torrents_genres WHERE gid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
        if( $Genre ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_torrents_genres", $BuildQuery, "gid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            $Phrase = get_phrase("torrent_genre_x_updated", $Genre["gname"] . " (" . $enable_disable . ")"); 
            logadminaction($Phrase); 
            handlerebuildcaches(false); 
            handleprune(false); 
            $HTML .= successmessage($Phrase); 
        } 
 
    } 
 
    if( $delete ) 
    { 
        checkdemomode(); 
        $Genre = $TSUE["TSUE_Database"]->query_result("SELECT gname, gicon FROM tsue_torrents_genres WHERE gid = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Genre ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_torrents_genres", "gid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            if( is_file($aaaaft . $Genre["gicon"]) ) 
            { 
                @unlink($aaaaft . $Genre["gicon"]); 
            } 
 
            $Phrase = get_phrase("torrent_genre_x_deleted", $Genre["gname"] . " (" . $delete . ")"); 
            logadminaction($Phrase); 
            handlerebuildcaches(false); 
            handleprune(false); 
            $HTML .= successmessage($Phrase); 
        } 
 
    } 
 
    if( !$tableContents ) 
    { 
        $Genres = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_genres ORDER BY active DESC, gname ASC"); 
        if( !$TSUE["TSUE_Database"]->num_rows($Genres) ) 
        { 
            $tableContents = errormessage(get_phrase("message_nothing_found")); 
        } 
        else 
        { 
            $tableContents = ""; 
            while( $Genre = $TSUE["TSUE_Database"]->fetch_assoc($Genres) ) 
            { 
                $linkClass = (!$Genre["active"] ? "linkDisabled" : ""); 
                $aaaafz = aaaaae(array( "edit=" . $Genre["gid"] => array( "phrase" => $Genre["gname"], "class" => $linkClass ) )); 
                $aaaaga = aaaaae(array( "delete=" . $Genre["gid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
                if( $Genre["active"] ) 
                { 
                    $aaaagb = aaaaae(array( "enable_disable=" . $Genre["gid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
                } 
                else 
                { 
                    $aaaagb = aaaaae(array( "enable_disable=" . $Genre["gid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
                } 
 
                $tableContents .= aaaaag(array( array( "width" => "80%", "text" => "<img src=\"" . $genreImagesFullURL . $Genre["gicon"] . "\" style=\"width: 26px; height: 26px; border: 0; vertical-align: middle; margin-right: 5px;\" /> " . $aaaafz ), array( "width" => "10%", "text" => $aaaagb . $aaaaga, "align" => "center" ) )); 
            } 
        } 
 
    } 
 
    $aaaagc = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_genre") ) )); 
    $HTML .= createtable(get_phrase("torrent_genres"), $tableContents, 2, $aaaagc); 
    return $HTML; 
} 
 
function handleadvertisements() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $aaaagd = aaaaae(array( "new=1" => array( "phrase" => get_phrase("ads_create_new") ) )); 
    $enable_disable = intval(getvar("enable_disable")); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    if( $enable_disable ) 
    { 
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
        $Ads = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_ads WHERE id = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
        if( $Ads ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_ads", $BuildQuery, "id = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            logadminaction(get_phrase("ads_x_has_been_updated", $Ads["title"] . " (" . $enable_disable . ")")); 
            handlerebuildcaches(false); 
        } 
 
    } 
 
    if( $delete ) 
    { 
        $Ads = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_ads WHERE id = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Ads ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_ads", "id = " . $TSUE["TSUE_Database"]->escape($delete)); 
            logadminaction(get_phrase("ads_x_has_been_deleted", $Ads["title"] . " (" . $delete . ")")); 
            handlerebuildcaches(false); 
        } 
 
    } 
 
    if( $edit || $new ) 
    { 
        $Ads = array( "title" => "", "content" => "", "position" => 0, "active" => 1, "permissions" => array(  ) ); 
        $aaaaam = ""; 
        if( $edit ) 
        { 
            $Ads = $TSUE["TSUE_Database"]->query_result("SELECT title, content, position, active, permissions FROM tsue_ads WHERE id = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Ads ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
            $Ads["permissions"] = tsue_explode(",", $Ads["permissions"]); 
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Ads["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        } 
        else 
        { 
            addbreadcrumb(array( get_phrase("ads_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
        } 
 
        if( isset($_POST["Ads"]) ) 
        { 
            $Ads = $_POST["Ads"]; 
            if( !$Ads["title"] ) 
            { 
                $formErrors[] = get_phrase("please_enter_a_valid_title"); 
            } 
 
            if( !$Ads["content"] ) 
            { 
                $formErrors[] = get_phrase("error_no_content"); 
            } 
 
            if( !isset($Ads["permissions"]) ) 
            { 
                $Ads["permissions"] = array(  ); 
            } 
 
            if( !isset($formErrors) ) 
            { 
                $buildQuery = array( "title" => $Ads["title"], "content" => $Ads["content"], "position" => $Ads["position"], "active" => $Ads["active"], "permissions" => implode(",", $Ads["permissions"]) ); 
                if( $edit ) 
                { 
                    $TSUE["TSUE_Database"]->update("tsue_ads", $buildQuery, "id=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $TSUE["TSUE_Database"]->insert("tsue_ads", $buildQuery); 
                } 
 
                logadminaction(get_phrase("ads_x_has_been_updated", $Ads["title"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                $updateDone = true; 
                handlerebuildcaches(false); 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $radioButtons = radioyesno("Ads[active]", $Ads["active"]); 
            $formContents = aaaaan(get_phrase("ads_active"), $radioButtons); 
            $inputbox = inputbox("Ads[title]", $Ads["title"]); 
            $formContents .= aaaaan(get_phrase("ads_title"), $inputbox); 
            $textarea = textarea("Ads[content]", $Ads["content"], true); 
            $formContents .= aaaaan(get_phrase("ads_content"), $textarea); 
            $inputbox = inputbox("Ads[position]", $Ads["position"]); 
            $formContents .= aaaaan(get_phrase("ads_position"), $inputbox); 
            $Usergroups = aaaaaw("Ads[permissions][]", $Ads["permissions"]); 
            $formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    $aaaage = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ads ORDER BY active DESC, position ASC"); 
    if( !$TSUE["TSUE_Database"]->num_rows($aaaage) ) 
    { 
        $tableContents = errormessage(get_phrase("ads_no_ads_yet")); 
    } 
    else 
    { 
        if( isset($_POST["sort"]) ) 
        { 
            foreach( $_POST["sort"] as $id => $position ) 
            { 
                $id = intval($id); 
                $position = intval($position); 
                $TSUE["TSUE_Database"]->update("tsue_ads", array( "position" => $position ), "id=" . $TSUE["TSUE_Database"]->escape($id)); 
            } 
            logadminaction(get_phrase("ads_all_pages_updated")); 
            handlerebuildcaches(false); 
            handleprune(false); 
            header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]); 
            exit(); 
        } 
        else 
        { 
            $tableContents = ""; 
            while( $Ads = $TSUE["TSUE_Database"]->fetch_assoc($aaaage) ) 
            { 
                $linkClass = (!$Ads["active"] ? "linkDisabled" : ""); 
                $aaaagf = aaaaae(array( "edit=" . $Ads["id"] => array( "phrase" => $Ads["title"], "class" => $linkClass ) )); 
                $aaaagg = aaaaae(array( "delete=" . $Ads["id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
                if( $Ads["active"] ) 
                { 
                    $aaaagh = aaaaae(array( "enable_disable=" . $Ads["id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
                } 
                else 
                { 
                    $aaaagh = aaaaae(array( "enable_disable=" . $Ads["id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
                } 
 
                $tableContents .= aaaaag(array( array( "width" => "70%", "text" => $aaaagf . " <span class=\"smallPassiveText\"></span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Ads["id"] . "]", $Ads["position"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "20%", "text" => $aaaagh . $aaaagg, "align" => "right" ) )); 
            } 
            $tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) )); 
        } 
 
    } 
 
    $HTML .= aaaabn(createtable(get_phrase("dashboard_ads"), $tableContents, 3, $aaaagd)); 
    return $HTML; 
} 
 
function handleshoutboxchannels() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $aaaacl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_channel") ) )); 
    $tableContents = ""; 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $cid = intval(getvar("cid")); 
    if( isset($_POST["sort"]) ) 
    { 
        foreach( $_POST["sort"] as $Cid => $Sort ) 
        { 
            $Cid = intval($Cid); 
            $Sort = intval($Sort); 
            $TSUE["TSUE_Database"]->update("tsue_shoutbox_channels", array( "sort" => $Sort ), "cid=" . $TSUE["TSUE_Database"]->escape($Cid)); 
        } 
        handleprune(false); 
        header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]); 
        exit(); 
    } 
    else 
    { 
        if( $delete ) 
        { 
            checkdemomode(); 
            if( $delete == 1 ) 
            { 
                return errormessage(get_phrase("shoutbox_default_channel_cant_be_deleted")); 
            } 
 
            $Category = $TSUE["TSUE_Database"]->query_result("SELECT cname FROM tsue_shoutbox_channels WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            if( $Category ) 
            { 
                $TSUE["TSUE_Database"]->delete("tsue_shoutbox_channels", "cid = " . $TSUE["TSUE_Database"]->escape($delete)); 
                logadminaction(get_phrase("shoutbox_channel_deleted", $Category["cname"] . " (" . $delete . ")")); 
                handlerebuildcaches(false); 
                handleprune(false); 
            } 
 
        } 
 
        if( $edit || $new ) 
        { 
            $Category = array( "sort" => "", "cname" => "", "cviewpermissions" => array(  ), "cshoutpermissions" => array(  ) ); 
            $aaaaam = ""; 
            if( $edit ) 
            { 
                $Category = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_shoutbox_channels WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit)); 
                if( !$Category ) 
                { 
                    return errormessage(get_phrase("message_content_error")); 
                } 
 
                $aaaaam = array( "edit" => $edit ); 
                $Category["cviewpermissions"] = tsue_explode(",", $Category["cviewpermissions"]); 
                $Category["cshoutpermissions"] = tsue_explode(",", $Category["cshoutpermissions"]); 
                addbreadcrumb(array( get_phrase("button_edit") . ": " . $Category["cname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
            } 
            else 
            { 
                addbreadcrumb(array( get_phrase("create_new_channel") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
            } 
 
            if( isset($_POST["Category"]) ) 
            { 
                checkdemomode(); 
                $Category = $_POST["Category"]; 
                if( !isset($Category["cviewpermissions"]) ) 
                { 
                    $Category["cviewpermissions"] = array(  ); 
                } 
 
                if( !isset($Category["cshoutpermissions"]) ) 
                { 
                    $Category["cshoutpermissions"] = array(  ); 
                } 
 
                if( !$Category["cname"] ) 
                { 
                    $formErrors[] = get_phrase("message_required_fields_error"); 
                } 
 
                if( isset($flagError) ) 
                { 
                    $formErrors = (isset($formErrors) ? array_merge($formErrors, $flagError) : $flagError); 
                    unset($flagError); 
                } 
 
                if( !isset($formErrors) ) 
                { 
                    $buildQuery = array( "cname" => $Category["cname"], "sort" => $Category["sort"], "cviewpermissions" => ($edit && $edit == 1 ? "" : implode(",", $Category["cviewpermissions"])), "cshoutpermissions" => implode(",", $Category["cshoutpermissions"]) ); 
                    if( $edit ) 
                    { 
                        $TSUE["TSUE_Database"]->update("tsue_shoutbox_channels", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                        $flagID = $edit; 
                    } 
                    else 
                    { 
                        $TSUE["TSUE_Database"]->insert("tsue_shoutbox_channels", $buildQuery); 
                        $flagID = $TSUE["TSUE_Database"]->insert_id(); 
                    } 
 
                    logadminaction(get_phrase("shoutbox_channel_updated", $Category["cname"] . " (" . $flagID . ")")); 
                    $HTML .= successmessage(get_phrase("message_saved")); 
                    handlerebuildcaches(false); 
                    handleprune(false); 
                    $updateDone = true; 
                } 
                else 
                { 
                    $HTML .= errormessage(implode("<br />", $formErrors)); 
                } 
 
            } 
 
            if( !isset($updateDone) ) 
            { 
                $inputbox = inputbox("Category[cname]", $Category["cname"], "text texthalf"); 
                $formContents = aaaaan(get_phrase("channel_name"), $inputbox); 
                $inputbox = inputbox("Category[sort]", $Category["sort"], "text textVeryTiny"); 
                $formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox); 
                if( !($edit && $edit == 1) ) 
                { 
                    $aaaabe = aaaaaw("Category[cviewpermissions][]", $Category["cviewpermissions"]); 
                    $formContents .= aaaaan(get_phrase("global_view_permissions"), $aaaabe, get_phrase("global_leave_empty_all")); 
                } 
 
                $aaaabe = aaaaaw("Category[cshoutpermissions][]", $Category["cshoutpermissions"]); 
                $formContents .= aaaaan(get_phrase("global_shout_permissions"), $aaaabe, get_phrase("global_leave_empty_all")); 
                $HTML .= aaaabg($formContents, $aaaaam); 
                return $HTML; 
            } 
 
        } 
 
        $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_shoutbox_channels ORDER BY `sort` ASC"); 
        if( !$TSUE["TSUE_Database"]->num_rows($Categories) ) 
        { 
            $tableContents = errormessage(get_phrase("no_results_found")); 
        } 
        else 
        { 
            $tableContents = ""; 
            while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) ) 
            { 
                $aaaacv = aaaaae(array( "edit=" . $Category["cid"] => array( "phrase" => $Category["cname"] ) )); 
                $aaaacw = aaaaae(array( "delete=" . $Category["cid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
                $tableContents .= aaaaag(array( array( "width" => "65%", "text" => $aaaacv ), array( "width" => "10%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaacw, "align" => "right" ) )); 
            } 
            $tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) )); 
        } 
 
        $HTML .= aaaabn(createtable(get_phrase("shoutbox_channels"), $tableContents, 3, $aaaacl)); 
        return $HTML; 
    } 
 
} 
 
function aaaaah() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $enable_disable = intval(getvar("enable_disable")); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $options = intval(getvar("options")); 
    if( $options ) 
    { 
        $Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name, pluginOptions FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($options)); 
        if( $Plugin && $Plugin["pluginOptions"] ) 
        { 
            addbreadcrumb(array( get_phrase("dashboard_options") . ": " . $Plugin["name"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;options=" . $options )); 
            $Plugin["pluginOptions"] = unserialize($Plugin["pluginOptions"]); 
            $formContents = ""; 
            if( isset($_POST["pluginOptions"]) ) 
            { 
                $newOptions = array(  ); 
                foreach( $_POST["pluginOptions"] as $fieldType => $Fields ) 
                { 
                    foreach( $Fields as $fieldName => $fieldValue ) 
                    { 
                        $newOptions[] = array( "fieldType" => $fieldType, "fieldName" => $fieldName, "fieldValue" => $fieldValue ); 
                    } 
                } 
                $buildQuery = array( "pluginOptions" => serialize($newOptions) ); 
                $TSUE["TSUE_Database"]->update("tsue_plugins", $buildQuery, "pluginid=" . $TSUE["TSUE_Database"]->escape($options)); 
                $Plugin["pluginOptions"] = $newOptions; 
                logadminaction(get_phrase("plugin_manager_plugin_updated", $Plugin["name"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                handlerebuildcaches(false); 
                handleprune(false); 
                $updateDone = true; 
            } 
 
            $formContents = aaaagi($Plugin["pluginOptions"]); 
            $HTML .= aaaabg($formContents); 
            return $HTML; 
        } 
        else 
        { 
            return errormessage(get_phrase("message_nothing_found")); 
        } 
 
    } 
    else 
    { 
        if( $edit || $new ) 
        { 
            $Plugin = array( "name" => "", "filename" => "", "contents" => "", "active" => 0, "viewpermissions" => array(  ) ); 
            $aaaaam = ""; 
            if( $edit ) 
            { 
                $Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name,filename,contents,active,viewpermissions FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($edit)); 
                if( !$Plugin ) 
                { 
                    return errormessage(get_phrase("message_content_error")); 
                } 
 
                $Plugin["viewpermissions"] = tsue_explode(",", $Plugin["viewpermissions"]); 
                $aaaaam = array( "edit" => $edit ); 
                addbreadcrumb(array( get_phrase("button_edit") . ": " . $Plugin["name"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;edit=" . $edit )); 
            } 
            else 
            { 
                addbreadcrumb(array( get_phrase("plugin_manager_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;new=1" )); 
            } 
 
            if( isset($_POST["Plugin"]) ) 
            { 
                $Plugin = $_POST["Plugin"]; 
                if( !$Plugin["name"] ) 
                { 
                    $formErrors[] = get_phrase("dashboard_cron_entries_cron_title_error"); 
                } 
 
                if( $Plugin["filename"] && !is_file(LIBRARYPATH . "plugins/" . $Plugin["filename"]) ) 
                { 
                    $formErrors[] = get_phrase("plugin_manager_plugin_file_error"); 
                } 
 
                if( !$Plugin["filename"] && !$Plugin["contents"] ) 
                { 
                    $formErrors[] = get_phrase("plugin_manager_create_fatal_error"); 
                } 
 
                if( !isset($Plugin["viewpermissions"]) ) 
                { 
                    $Plugin["viewpermissions"] = array(  ); 
                } 
 
                if( !isset($formErrors) ) 
                { 
                    $buildQuery = array( "name" => $Plugin["name"], "filename" => $Plugin["filename"], "active" => $Plugin["active"], "contents" => $Plugin["contents"], "viewpermissions" => implode(",", $Plugin["viewpermissions"]) ); 
                    if( $edit ) 
                    { 
                        $TSUE["TSUE_Database"]->update("tsue_plugins", $buildQuery, "pluginid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                    } 
                    else 
                    { 
                        $TSUE["TSUE_Database"]->insert("tsue_plugins", $buildQuery); 
                    } 
 
                    logadminaction(get_phrase("plugin_manager_plugin_updated", $Plugin["name"])); 
                    $HTML .= successmessage(get_phrase("message_saved")); 
                    handlerebuildcaches(false); 
                    handleprune(false); 
                    $updateDone = true; 
                } 
                else 
                { 
                    $HTML .= errormessage(implode("<br />", $formErrors)); 
                } 
 
            } 
 
            if( !isset($updateDone) ) 
            { 
                $radioButtons = radioyesno("Plugin[active]", $Plugin["active"]); 
                $formContents = aaaaan(get_phrase("plugin_manager_plugin_active"), $radioButtons); 
                $inputbox = inputbox("Plugin[name]", $Plugin["name"]); 
                $formContents .= aaaaan(get_phrase("plugin_manager_plugin_name"), $inputbox); 
                $inputbox = inputbox("Plugin[filename]", $Plugin["filename"]); 
                $formContents .= aaaaan(get_phrase("plugin_manager_plugin_filename"), $inputbox, get_phrase("global_file_path", (DEMO_MODE ? "" : LIBRARYPATH . "plugins/"))); 
                $textarea = textarea("Plugin[contents]", $Plugin["contents"], true); 
                $formContents .= aaaaan(get_phrase("plugin_manager_plugin_contents"), $textarea, get_phrase("plugin_manager_plugin_contents_alt")); 
                $Usergroups = aaaaaw("Plugin[viewpermissions][]", $Plugin["viewpermissions"]); 
                $formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all")); 
                $HTML .= aaaabg($formContents, $aaaaam); 
                return $HTML; 
            } 
 
        } 
 
        if( $enable_disable ) 
        { 
            $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
            $Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            if( $Plugin ) 
            { 
                $TSUE["TSUE_Database"]->update("tsue_plugins", $BuildQuery, "pluginid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
                logadminaction(get_phrase("plugin_manager_plugin_updated", $Plugin["name"] . " (" . $enable_disable . ")")); 
                handlerebuildcaches(false); 
                handleprune(false); 
            } 
 
        } 
 
        if( $delete ) 
        { 
            $Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            if( $Plugin ) 
            { 
                $TSUE["TSUE_Database"]->delete("tsue_plugins", "pluginid = " . $TSUE["TSUE_Database"]->escape($delete)); 
                logadminaction(get_phrase("plugin_manager_plugin_deleted", $Plugin["name"] . " (" . $delete . ")")); 
                handlerebuildcaches(false); 
                handleprune(false); 
            } 
 
        } 
 
        $Plugins = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_plugins ORDER BY active DESC, name ASC"); 
        if( !$TSUE["TSUE_Database"]->num_rows($Plugins) ) 
        { 
            $tableContents = errormessage(get_phrase("plugin_manager_no_plugin")); 
        } 
        else 
        { 
            $tableContents = ""; 
            while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) ) 
            { 
                $linkClass = (!$Plugin["active"] ? "linkDisabled" : ""); 
                $aaaagj = aaaaae(array( "edit=" . $Plugin["pluginid"] => array( "phrase" => $Plugin["name"], "class" => $linkClass ) )); 
                $aaaagk = aaaaae(array( "delete=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
                $aaaagl = ""; 
                if( $Plugin["pluginOptions"] ) 
                { 
                    $aaaagl = aaaaae(array( "options=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/options.png", get_phrase("dashboard_options")) ) )); 
                } 
 
                if( $Plugin["active"] ) 
                { 
                    $aaaagm = aaaaae(array( "enable_disable=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
                } 
                else 
                { 
                    $aaaagm = aaaaae(array( "enable_disable=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
                } 
 
                $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaagj . "<span class=\"smallPassiveText\">" . $Plugin["filename"] . "</span>" ), array( "width" => "20%", "text" => $aaaagl . $aaaagm . $aaaagk, "align" => "right" ) )); 
            } 
        } 
 
        $aaaagn = aaaaae(array( "new=1" => array( "phrase" => get_phrase("plugin_manager_create_new") ) )); 
        $HTML .= createtable(get_phrase("plugin_manager_plugin_list"), $tableContents, 2, $aaaagn); 
        return $HTML; 
    } 
 
} 
 
function getpluginoption($Options = array(  ), $optionFieldName = "", $defaultFieldValue = "") 
{ 
    foreach( $Options as $Option ) 
    { 
        if( $Option["fieldName"] == $optionFieldName ) 
        { 
            return $Option["fieldValue"]; 
        } 
 
    } 
    return $defaultFieldValue; 
} 
 
function aaaagi($pluginOptions) 
{ 
    global $TSUE; 
    $formContents = ""; 
    if( $pluginOptions ) 
    { 
        foreach( $pluginOptions as $Options ) 
        { 
            if( isset($Options["fieldType"]) && $Options["fieldType"] && isset($Options["fieldName"]) && $Options["fieldName"] ) 
            { 
                $optionName = "pluginOptions[" . $Options["fieldType"] . "][" . $Options["fieldName"] . "]"; 
                switch( $Options["fieldType"] ) 
                { 
                    case "input": 
                        $inputbox = inputbox($optionName, getpluginoption($pluginOptions, $Options["fieldName"])); 
                        $formContents .= aaaaan(get_phrase("plugin_" . $Options["fieldName"]), $inputbox); 
                        break; 
                    case "radioYesNo": 
                        $radiobox = radioyesno($optionName, getpluginoption($pluginOptions, $Options["fieldName"])); 
                        $formContents .= aaaaan(get_phrase("plugin_" . $Options["fieldName"]), $radiobox); 
                } 
            } 
 
        } 
    } 
 
    return $formContents; 
} 
 
function aaaago($Permissions, $parentid = 0) 
{ 
    $aaaagp = aaaagq(array( "canview_forum", "canview_thread_list", "canview_thread_posts" ), $Permissions, "forums_viewing_permissions"); 
    $formContents = aaaaan(get_phrase("forums_viewing_permissions"), $aaaagp); 
    $aaaagp = aaaagq(array( "canupload", "candownload" ), $Permissions, "forums_attachment_permissions"); 
    $formContents .= aaaaan(get_phrase("forums_attachment_permissions"), $aaaagp); 
    $aaaagp = aaaagq(array( "canreply_threads", "canpost_new_thread", "candelete_own_posts", "canedit_own_posts", "canedit_own_threads", "cansubscribe_to_threads" ), $Permissions, "forums_post_thread_permissions"); 
    $formContents .= aaaaan(get_phrase("forums_post_thread_permissions"), $aaaagp); 
    $aaaagp = aaaagq(array( "canpost_polls", "candelete_own_polls", "canedit_own_polls" ), $Permissions, "forum_poll_permissions"); 
    $formContents .= aaaaan(get_phrase("forum_poll_permissions"), $aaaagp); 
    $aaaagp = aaaagq(array( "candelete_posts", "candelete_threads", "canedit_posts", "canedit_threads", "canmanage_locked_threads", "canmove_threads", "canlock_threads", "cansticky_threads", "candelete_polls", "canedit_polls" ), $Permissions, "forums_admin_mod_permissions"); 
    $formContents .= aaaaan(get_phrase("forums_admin_mod_permissions"), $aaaagp); 
    $extra = ""; 
    if( $parentid == -1 ) 
    { 
        $extra = "<label><input type=\"checkbox\" name=\"apply_to_subforums\" value=\"1\" checked=\"checked\" /> " . get_phrase("forums_apply_to_subforums") . "</label>"; 
    } 
 
    return array( $formContents, $extra ); 
} 
 
function handleforums() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $aaaagr = aaaaae(array( "new=1" => array( "phrase" => get_phrase("forums_create_new") ) )); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $permissions = intval(getvar("permissions")); 
    $membergroupid = intval(getvar("membergroupid")); 
    $type = trim(getvar("type")); 
    $quickPermissions = intval(getvar("quickPermissions")); 
    $defaultTheme = aaaaff(); 
    $aaaags = ROOTPATH . "styles/" . $defaultTheme . "/forums/forum_icons/"; 
    $forumIconsFullURL = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/forums/forum_icons/"; 
    if( isset($_POST["displayorder"]) ) 
    { 
        foreach( $_POST["displayorder"] as $forumID => $displayorder ) 
        { 
            $forumID = intval($forumID); 
            $displayorder = intval($displayorder); 
            $TSUE["TSUE_Database"]->update("tsue_forums", array( "displayorder" => $displayorder ), "forumid=" . $TSUE["TSUE_Database"]->escape($forumID)); 
        } 
        logadminaction(get_phrase("forums_forum_has_been_updated")); 
        handlerebuildcaches(false); 
        header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]); 
        exit(); 
    } 
    else 
    { 
        if( $edit || $new ) 
        { 
            $Forum = array( "forumid" => 0, "parentid" => -1, "title" => "", "description" => "", "icon" => "1.png", "displayorder" => "", "password" => "", "external_link" => "", "last_post_info" => "" ); 
            $aaaaam = ""; 
            if( $edit ) 
            { 
                $Forum = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($edit)); 
                if( !$Forum ) 
                { 
                    return errormessage(get_phrase("message_content_error")); 
                } 
 
                $aaaaam = array( "edit" => $edit ); 
                addbreadcrumb(array( get_phrase("button_edit") . ": " . $Forum["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
            } 
            else 
            { 
                addbreadcrumb(array( get_phrase("forums_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
            } 
 
            if( isset($_POST["Forum"]) ) 
            { 
                $Forum = $_POST["Forum"]; 
                $usePassword = (isset($_POST["usePassword"]) && $_POST["usePassword"] == 1 ? true : false); 
                if( !$Forum["title"] ) 
                { 
                    $formErrors[] = get_phrase("forums_title_error"); 
                } 
 
                if( !isset($formErrors) ) 
                { 
                    $buildQuery = array( "parentid" => $Forum["parentid"], "title" => $Forum["title"], "description" => $Forum["description"], "icon" => $Forum["icon"], "displayorder" => intval($Forum["displayorder"]), "external_link" => $Forum["external_link"], "last_post_info" => "" ); 
                    if( $Forum["password"] && $usePassword ) 
                    { 
                        $buildQuery["password"] = sha1($Forum["password"]); 
                    } 
                    else 
                    { 
                        if( !$usePassword ) 
                        { 
                            $buildQuery["password"] = ""; 
                        } 
 
                    } 
 
                    if( $edit ) 
                    { 
                        $TSUE["TSUE_Database"]->update("tsue_forums", $buildQuery, "forumid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                        $Forum["forumid"] = $edit; 
                    } 
                    else 
                    { 
                        $TSUE["TSUE_Database"]->insert("tsue_forums", $buildQuery); 
                        $Forum["forumid"] = $TSUE["TSUE_Database"]->insert_id(); 
                        aaaagt($Forum["forumid"]); 
                    } 
 
                    logadminaction(get_phrase("forums_forum_has_been_updated", $Forum["title"] . " (" . $Forum["forumid"] . ")")); 
                    $HTML .= successmessage(get_phrase("message_saved")); 
                    $updateDone = true; 
                    handlerebuildcaches(false); 
                } 
                else 
                { 
                    $HTML .= errormessage(implode("<br />", $formErrors)); 
                } 
 
            } 
 
            if( !isset($updateDone) ) 
            { 
                $inputbox = inputbox("Forum[title]", $Forum["title"]); 
                $formContents = aaaaan(get_phrase("forums_forum_title"), $inputbox); 
                $inputbox = inputbox("Forum[description]", $Forum["description"]); 
                $formContents .= aaaaan(get_phrase("forums_forum_description"), $inputbox); 
                $inputbox = inputbox("Forum[displayorder]", $Forum["displayorder"], "text veryTinyText"); 
                $formContents .= aaaaan(get_phrase("forums_forum_displayorder"), $inputbox); 
                $aaaagu = aaaagv("Forum[parentid]", $Forum["parentid"], (isset($Forum["forumid"]) ? $Forum["forumid"] : 0)); 
                $formContents .= aaaaan(get_phrase("forums_parent_forum"), $aaaagu, get_phrase("forums_parent_forum_alt")); 
                $inputbox = inputbox("Forum[password]", NULL); 
                $formContents .= aaaaan("<label><input type=\"checkbox\" name=\"usePassword\" checked=\"checked\" value=\"1\" class=\"middle\" /> " . get_phrase("forums_forum_password") . "</label>", $inputbox, get_phrase("forums_forum_password_alt")); 
                $inputbox = inputbox("Forum[external_link]", $Forum["external_link"]); 
                $formContents .= aaaaan(get_phrase("forums_forum_external_link"), $inputbox, get_phrase("forums_forum_external_link_alt")); 
                $aaaagw = scandir($aaaags); 
                if( 3 < count($aaaagw) ) 
                { 
                    $Icons = "<input type=\"hidden\" name=\"Forum[icon]\" value=\"" . $Forum["icon"] . "\" />"; 
                    foreach( $aaaagw as $Icon ) 
                    { 
                        if( in_array(file_extension($Icon), array( "jpg", "jpeg", "png", "gif" )) ) 
                        { 
                            $Icons .= "
						<div class=\"forumIcon" . (($Forum["icon"] == $Icon ? " selectedForumIcon" : "")) . "\"><img src=\"" . $forumIconsFullURL . $Icon . "\" alt=\"" . $Icon . "\" title=\"" . $Icon . "\" rel=\"" . $Icon . "\" /></div>"; 
                        } 
 
                    } 
                    $Icons .= "
				<div class=\"clear\"></div>
				<script type=\"text/javascript\">
					\$(\"div.forumIcon\").on(\"click\", function(e)
					{
						e.preventDefault();

						var \$this = \$(this), \$hiddenIconInputBox = \$('input[name=\"Forum[icon]\"]'), \$selectedNewIcon = \$this.find(\"img\").attr(\"alt\");

						\$(\"div.forumIcon\").removeClass(\"selectedForumIcon\");
						\$this.addClass(\"selectedForumIcon\");
						\$hiddenIconInputBox.val(\$selectedNewIcon);

						return false;
					});
				</script>"; 
                    $formContents .= aaaaan(get_phrase("forum_icon"), $Icons, get_phrase("forum_icon_alt")); 
                } 
 
                $HTML .= aaaabg($formContents, $aaaaam); 
                return $HTML; 
            } 
 
        } 
 
        if( $delete ) 
        { 
            $Forum = $TSUE["TSUE_Database"]->query_result("SELECT parentid, title FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            if( $Forum ) 
            { 
                deleteforum($delete); 
                if( $Forum["parentid"] == -1 ) 
                { 
                    $subForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($delete)); 
                    if( $TSUE["TSUE_Database"]->num_rows($subForums) ) 
                    { 
                        while( $subForum = $TSUE["TSUE_Database"]->fetch_assoc($subForums) ) 
                        { 
                            deleteforum($subForum["forumid"]); 
                            $deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($subForum["forumid"])); 
                            if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) ) 
                            { 
                                while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) ) 
                                { 
                                    deleteforum($deepSubForum["forumid"]); 
                                } 
                            } 
 
                        } 
                    } 
 
                } 
                else 
                { 
                    $deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($delete)); 
                    if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) ) 
                    { 
                        while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) ) 
                        { 
                            deleteforum($deepSubForum["forumid"]); 
                        } 
                    } 
 
                } 
 
                logadminaction(get_phrase("forums_forum_has_been_deleted", $Forum["title"] . " (" . $delete . ")")); 
                handlerebuildcaches(false); 
            } 
 
        } 
 
        if( $permissions ) 
        { 
            $Forum = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($permissions)); 
            if( !$Forum ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $TITLE = get_phrase("membergroups_forum_permissions") . " : " . $Forum["title"]; 
            addbreadcrumb(array( get_phrase("membergroups_forum_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;permissions=" . $permissions )); 
            $forumPermissions = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums_permissions WHERE forumid = " . $TSUE["TSUE_Database"]->escape($permissions)); 
            if( !$forumPermissions ) 
            { 
                aaaagt($permissions); 
            } 
 
            if( $type == "edit" && $membergroupid ) 
            { 
                $membergroup = $TSUE["TSUE_Database"]->query_result("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups WHERE membergroupid=" . $TSUE["TSUE_Database"]->escape($membergroupid)); 
                if( !$membergroup ) 
                { 
                    return errormessage(get_phrase("message_content_error")); 
                } 
 
                $forumPermissions = $TSUE["TSUE_Database"]->query_result("SELECT permissions FROM tsue_forums_permissions WHERE forumid = " . $TSUE["TSUE_Database"]->escape($permissions) . " AND membergroupid = " . $TSUE["TSUE_Database"]->escape($membergroupid)); 
                if( !$forumPermissions ) 
                { 
                    return errormessage(get_phrase("message_content_error")); 
                } 
 
                $Permissions = unserialize($forumPermissions["permissions"]); 
                addbreadcrumb(array( get_phrase("forums_view_permissions") . ": " . $membergroup["groupname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;permissions=" . $permissions . "&amp;type=" . $type . "&amp;membergroupid=" . $membergroupid )); 
                if( isset($_POST["Permissions"]) ) 
                { 
                    $newPermissions = serialize($_POST["Permissions"]); 
                    $Permissions = $_POST["Permissions"]; 
                    $buildQuery = array( "forumid" => $permissions, "membergroupid" => $membergroupid, "permissions" => $newPermissions ); 
                    $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery); 
                    if( $Forum["parentid"] == -1 && isset($_POST["apply_to_subforums"]) && $_POST["apply_to_subforums"] == 1 ) 
                    { 
                        $subForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($permissions)); 
                        if( $TSUE["TSUE_Database"]->num_rows($subForums) ) 
                        { 
                            while( $subForum = $TSUE["TSUE_Database"]->fetch_assoc($subForums) ) 
                            { 
                                $buildQuery = array( "forumid" => $subForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $newPermissions ); 
                                $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery); 
                                $deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($subForum["forumid"])); 
                                if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) ) 
                                { 
                                    while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) ) 
                                    { 
                                        $buildQuery = array( "forumid" => $deepSubForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $newPermissions ); 
                                        $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery); 
                                    } 
                                } 
 
                            } 
                        } 
 
                    } 
 
                    logadminaction(get_phrase("forums_forum_permissions_has_been_updated", $Forum["title"] . " (" . $permissions . ")")); 
                    $HTML .= successmessage(get_phrase("message_saved")); 
                    handlerebuildcaches(false); 
                } 
 
                $aaaagx = aaaago($Permissions, $Forum["parentid"]); 
                $HTML .= "<h3>" . $Forum["title"] . "</h3>" . aaaabg($aaaagx["0"], array(  ), $aaaagx["1"]); 
                return $HTML; 
            } 
 
            $aaaagy = ""; 
            $membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups ORDER BY membergroupid ASC"); 
            while( $membergroup = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) ) 
            { 
                $aaaagz = aaaaae(array( "permissions=" . $Forum["forumid"] . "&type=edit&membergroupid=" . $membergroup["membergroupid"] => array( "phrase" => get_phrase("forums_view_permissions") ) )); 
                $aaaagy .= "<li>[" . $aaaagz . "] " . getmembername($membergroup["groupname"], $membergroup["groupstyle"]) . "</li>"; 
            } 
            $aaaaha = aaaaae(array( "edit=" . $Forum["forumid"] => array( "phrase" => $Forum["title"] ) )); 
            return createtable($TITLE, "
		<tr>
			<td>
				<ul style=\"line-height: 2;\">
					<li>
						" . $aaaaha . "
						<ul>" . $aaaagy . "</ul>
					</li>
				</ul>
			</td>
		</tr>"); 
        } 
 
        if( $quickPermissions ) 
        { 
            $formErrors = array(  ); 
            $membergroups = array(  ); 
            $HTML = ""; 
            $Permissions = aaaahb(); 
            $Forum = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($quickPermissions)); 
            if( !$Forum ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $TITLE = get_phrase("quick_forum_permissions") . " : " . $Forum["title"]; 
            addbreadcrumb(array( get_phrase("quick_forum_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;quickPermissions=" . $quickPermissions )); 
            if( ispost() && isset($_POST["save_options"]) ) 
            { 
                $membergroups = (isset($_POST["membergroups"]) ? $_POST["membergroups"] : ""); 
                $Permissions = (isset($_POST["Permissions"]) ? $_POST["Permissions"] : ""); 
                if( !$membergroups ) 
                { 
                    $formErrors[] = get_phrase("select_membergroups_to_apply_perms"); 
                } 
 
                if( $formErrors ) 
                { 
                    $HTML .= errormessage(implode("<br />", $formErrors)); 
                } 
                else 
                { 
                    $aaaahc = serialize($Permissions); 
                    foreach( $membergroups as $membergroupid ) 
                    { 
                        $buildQuery = array( "forumid" => $quickPermissions, "membergroupid" => $membergroupid, "permissions" => $aaaahc ); 
                        $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery); 
                        if( $Forum["parentid"] == -1 && isset($_POST["apply_to_subforums"]) && $_POST["apply_to_subforums"] == 1 ) 
                        { 
                            $subForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($quickPermissions)); 
                            if( $TSUE["TSUE_Database"]->num_rows($subForums) ) 
                            { 
                                while( $subForum = $TSUE["TSUE_Database"]->fetch_assoc($subForums) ) 
                                { 
                                    $buildQuery = array( "forumid" => $subForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $aaaahc ); 
                                    $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery); 
                                    $deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($subForum["forumid"])); 
                                    if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) ) 
                                    { 
                                        while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) ) 
                                        { 
                                            $buildQuery = array( "forumid" => $deepSubForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $aaaahc ); 
                                            $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery); 
                                        } 
                                    } 
 
                                } 
                            } 
 
                        } 
 
                    } 
                    logadminaction(get_phrase("forums_forum_permissions_has_been_updated", $Forum["title"] . " (" . $permissions . ")")); 
                    $HTML .= successmessage(get_phrase("message_saved")); 
                    handlerebuildcaches(false); 
                } 
 
            } 
 
            $Usergroups = aaaaaw("membergroups[]", $membergroups); 
            $formContents = aaaaan(get_phrase("select_membergroups_to_apply_perms"), $Usergroups); 
            $aaaagx = aaaago($Permissions, $Forum["parentid"]); 
            $formContents .= $aaaagx["0"]; 
            $HTML .= "<h3>" . $TITLE . "</h3>" . aaaabg($formContents, array(  ), $aaaagx["1"]); 
            return $HTML; 
        } 
 
        $Forums = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums ORDER BY displayorder ASC"); 
        if( !$TSUE["TSUE_Database"]->num_rows($Forums) ) 
        { 
            $tableContents = errormessage(get_phrase("no_results_found")); 
        } 
        else 
        { 
            $forumCategories = $subForums = array(  ); 
            while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) ) 
            { 
                if( $Forum["parentid"] == -1 ) 
                { 
                    $forumCategories[] = $Forum; 
                } 
                else 
                { 
                    $subForums[$Forum["parentid"]][] = $Forum; 
                } 
 
            } 
            $tableContents = ""; 
            foreach( $forumCategories as $Forum ) 
            { 
                $tableContents .= aaaahd($Forum, false, false, $forumIconsFullURL); 
                if( isset($subForums[$Forum["forumid"]]) ) 
                { 
                    foreach( $subForums[$Forum["forumid"]] as $subForum ) 
                    { 
                        $tableContents .= aaaahd($subForum, true, false, $forumIconsFullURL); 
                        if( isset($subForums[$subForum["forumid"]]) ) 
                        { 
                            foreach( $subForums[$subForum["forumid"]] as $deepSubForum ) 
                            { 
                                $tableContents .= aaaahd($deepSubForum, true, true, $forumIconsFullURL); 
                            } 
                        } 
 
                    } 
                } 
 
            } 
            $tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) )); 
        } 
 
        $HTML .= aaaabn(createtable(get_phrase("menu_forum_manager"), $tableContents, 3, $aaaagr)); 
        return $HTML; 
    } 
 
} 
 
function aaaaai() 
{ 
    global $TSUE; 
    $formErrors = array(  ); 
    $membergroups = array(  ); 
    $forums = array(  ); 
    $HTML = ""; 
    $Permissions = aaaahb(); 
    if( ispost() && isset($_POST["save_options"]) ) 
    { 
        $forums = (isset($_POST["forums"]) ? $_POST["forums"] : ""); 
        $membergroups = (isset($_POST["membergroups"]) ? $_POST["membergroups"] : ""); 
        $Permissions = (isset($_POST["Permissions"]) ? $_POST["Permissions"] : ""); 
        if( !$forums ) 
        { 
            $formErrors[] = get_phrase("select_forums_to_apply_permissions"); 
        } 
 
        if( !$membergroups ) 
        { 
            $formErrors[] = get_phrase("select_membergroups_to_apply_perms"); 
        } 
 
        if( $formErrors ) 
        { 
            $HTML .= errormessage(implode("<br />", $formErrors)); 
        } 
        else 
        { 
            $aaaahc = serialize($Permissions); 
            foreach( $forums as $forumid ) 
            { 
                $forumid = intval($forumid); 
                if( $forumid ) 
                { 
                    $Forum = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($forumid)); 
                    if( $Forum ) 
                    { 
                        foreach( $membergroups as $membergroupid ) 
                        { 
                            $membergroupid = intval($membergroupid); 
                            if( $membergroupid ) 
                            { 
                                $buildQuery = array( "forumid" => $forumid, "membergroupid" => $membergroupid, "permissions" => $aaaahc ); 
                                $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery); 
                            } 
 
                        } 
                        logadminaction(get_phrase("forums_forum_permissions_has_been_updated", $Forum["title"] . " (" . $forumid . ")")); 
                    } 
 
                } 
 
            } 
            $HTML .= successmessage(get_phrase("message_saved")); 
            handlerebuildcaches(false); 
        } 
 
    } 
 
    $Forums = aaaabc("forums[]", $forums); 
    $formContents = aaaaan(get_phrase("select_forums_to_apply_permissions"), $Forums); 
    $Usergroups = aaaaaw("membergroups[]", $membergroups); 
    $formContents .= aaaaan(get_phrase("select_membergroups_to_apply_perms"), $Usergroups); 
    $aaaagx = aaaago($Permissions); 
    $formContents .= $aaaagx["0"]; 
    $HTML .= aaaabg($formContents); 
    return $HTML; 
} 
 
function aaaahd($Forum, $isSubForum = false, $isDeepSubForum = false, $forumIconsFullURL) 
{ 
    global $TSUE; 
    $aaaaha = aaaaae(array( "edit=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/edit" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("button_edit")) ) )); 
    $aaaahe = aaaaae(array( "permissions=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/permissions" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("forums_view_permissions")) ) )); 
    $aaaahf = aaaaae(array( "quickPermissions=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/quickpermissions" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("forums_set_quick_permissions")) ) )); 
    $aaaahg = aaaaae(array( "delete=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/delete" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") . ((!$isSubForum ? get_phrase("pages_page_delete_warning") : "")) ) )); 
    $forumIcon = ""; 
    if( $Forum["icon"] ) 
    { 
        $forumIcon = "<img src=\"" . $forumIconsFullURL . $Forum["icon"] . "\" alt=\"\" title=\"\" style=\"width: 16px; margin-right: 2px;\" />"; 
    } 
 
    $pageLink = "
	<span style=\"padding-left: 9px;\">
		<a href=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/?p=forums&amp;pid=11&amp;fid=" . $Forum["forumid"] . "\" target=\"_blank\" style=\"color: #ccc; font-weight: normal; font-size: 10px;\">?p=forums&amp;pid=11&amp;fid=" . $Forum["forumid"] . "</a>
	</span>"; 
    if( $isDeepSubForum ) 
    { 
        $tableContents = aaaaag(array( array( "width" => "", "text" => "<span class=\"forumDeepSub\">" . $forumIcon . $Forum["title"] . $pageLink . "</span>" ), array( "width" => "100", "text" => inputbox("displayorder[" . $Forum["forumid"] . "]", $Forum["displayorder"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "400", "text" => $aaaaha . $aaaahe . $aaaahf . $aaaahg, "align" => "right" ) )); 
    } 
    else 
    { 
        if( $isSubForum ) 
        { 
            $tableContents = aaaaag(array( array( "width" => "", "text" => "<span class=\"forumSub\">" . $forumIcon . $Forum["title"] . $pageLink . "</span>" ), array( "width" => "100", "text" => inputbox("displayorder[" . $Forum["forumid"] . "]", $Forum["displayorder"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "400", "text" => $aaaaha . $aaaahe . $aaaahf . $aaaahg, "align" => "right" ) )); 
        } 
        else 
        { 
            $tableContents = aaaaag(array( array( "width" => "", "text" => "<span class=\"forumMain\">" . $forumIcon . $Forum["title"] . $pageLink . "</span>" ), array( "width" => "100", "text" => inputbox("displayorder[" . $Forum["forumid"] . "]", $Forum["displayorder"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "400", "text" => $aaaaha . $aaaahe . $aaaahf . $aaaahg, "align" => "right" ) )); 
        } 
 
    } 
 
    return $tableContents; 
} 
 
function aaaagt($forumid = 0) 
{ 
    global $TSUE; 
    if( !$forumid ) 
    { 
        return false; 
    } 
 
    $aaaahh = aaaahb(); 
    $membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, permissions FROM tsue_membergroups ORDER BY membergroupid ASC"); 
    while( $membergroup = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) ) 
    { 
        $groupPerm = unserialize($membergroup["permissions"]); 
        $aaaahi = serialize((isset($groupPerm["canlogin_admincp"]) && $groupPerm["canlogin_admincp"] ? $aaaahh["adminForumPermissions"] : $aaaahh["defaultForumPermissions"])); 
        $buildQuery = array( "forumid" => $forumid, "membergroupid" => $membergroup["membergroupid"], "permissions" => $aaaahi ); 
        $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery); 
    } 
} 
 
function deleteforum($forumid = 0) 
{ 
    global $TSUE; 
    checkdemomode(); 
    if( !$forumid ) 
    { 
        return false; 
    } 
 
    $TSUE["TSUE_Database"]->delete("tsue_forums", "forumid = " . $TSUE["TSUE_Database"]->escape($forumid)); 
    $TSUE["TSUE_Database"]->delete("tsue_forums_permissions", "forumid = " . $TSUE["TSUE_Database"]->escape($forumid)); 
    $Threads = $TSUE["TSUE_Database"]->query("SELECT threadid FROM tsue_forums_threads WHERE forumid=" . $TSUE["TSUE_Database"]->escape($forumid)); 
    if( $TSUE["TSUE_Database"]->num_rows($Threads) ) 
    { 
        while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) ) 
        { 
            $threadCache[] = $Thread["threadid"]; 
        } 
        $postCache = array(  ); 
        $aaaahj = array(  ); 
        $Posts = $TSUE["TSUE_Database"]->query("SELECT postid, memberid FROM tsue_forums_posts WHERE threadid IN (" . implode(",", $threadCache) . ")"); 
        if( $TSUE["TSUE_Database"]->num_rows($Posts) ) 
        { 
            while( $Post = $TSUE["TSUE_Database"]->fetch_assoc($Posts) ) 
            { 
                if( isset($aaaahj[$Post["memberid"]]) ) 
                { 
                    $aaaahj[$Post["memberid"]] += 1; 
                } 
                else 
                { 
                    $aaaahj[$Post["memberid"]] = 1; 
                } 
 
                $postCache[] = $Post["postid"]; 
            } 
        } 
 
        if( $aaaahj ) 
        { 
            foreach( $aaaahj as $memberid => $postCount ) 
            { 
                $BuildQuery = array( "total_posts" => array( "escape" => 0, "value" => "IF(total_posts>" . $postCount . ", total_posts-" . $postCount . ", 0)" ) ); 
                $TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $memberid); 
            } 
        } 
 
        $Attachments = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type ='posts' AND content_id IN (" . implode(",", $postCache) . ")"); 
        if( $TSUE["TSUE_Database"]->num_rows($Attachments) ) 
        { 
            while( $Attachment = $TSUE["TSUE_Database"]->fetch_assoc($Attachments) ) 
            { 
                $filePath = DATAPATH . "posts/" . $Attachment["filename"]; 
                @unlink($filePath); 
            } 
            $TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type ='posts' AND content_id IN (" . implode(",", $postCache) . ")"); 
        } 
 
        $TSUE["TSUE_Database"]->delete("tsue_forums_posts", "threadid IN (" . implode(",", $threadCache) . ")"); 
        $TSUE["TSUE_Database"]->delete("tsue_forums_thread_subscribe", "threadid IN (" . implode(",", $threadCache) . ")"); 
    } 
 
    $TSUE["TSUE_Database"]->delete("tsue_forums_threads", "forumid = " . $TSUE["TSUE_Database"]->escape($forumid)); 
    return true; 
} 
 
function threadprefixes() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $aaaahk = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_thread_prefix") ) )); 
    $new = intval(getvar("new")); 
    $edit = intval(getvar("edit")); 
    $delete = intval(getvar("delete")); 
    if( $edit || $new ) 
    { 
        $Prefix = array( "pname" => "", "cssname" => "pink", "viewpermissions" => array(  ) ); 
        $aaaaam = ""; 
        if( $edit ) 
        { 
            $Prefix = $TSUE["TSUE_Database"]->query_result("SELECT pname, cssname, viewpermissions FROM tsue_forums_thread_prefixes WHERE pid = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Prefix ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
            if( !$Prefix["viewpermissions"] ) 
            { 
                $Prefix["viewpermissions"] = array(  ); 
            } 
            else 
            { 
                $Prefix["viewpermissions"] = unserialize($Prefix["viewpermissions"]); 
            } 
 
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Prefix["pname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        } 
        else 
        { 
            addbreadcrumb(array( get_phrase("create_new_thread_prefix") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
        } 
 
        if( isset($_POST["Prefix"]) ) 
        { 
            $Prefix = $_POST["Prefix"]; 
            if( !isset($Prefix["viewpermissions"]) || !$Prefix["viewpermissions"] ) 
            { 
                $Prefix["viewpermissions"] = array(  ); 
            } 
 
            if( !$Prefix["pname"] ) 
            { 
                $formErrors[] = get_phrase("message_required_fields_error"); 
            } 
            else 
            { 
                if( !$Prefix["cssname"] ) 
                { 
                    $formErrors[] = get_phrase("message_required_fields_error"); 
                } 
 
            } 
 
            if( !isset($formErrors) ) 
            { 
                $buildQuery = array( "pname" => $Prefix["pname"], "cssname" => $Prefix["cssname"], "viewpermissions" => ($Prefix["viewpermissions"] ? serialize($Prefix["viewpermissions"]) : "") ); 
                if( $edit ) 
                { 
                    $TSUE["TSUE_Database"]->update("tsue_forums_thread_prefixes", $buildQuery, "pid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $TSUE["TSUE_Database"]->insert("tsue_forums_thread_prefixes", $buildQuery); 
                } 
 
                logadminaction(get_phrase("prefix_has_been_updated", $Prefix["pname"] . " (" . $edit . ")")); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                handlerebuildcaches(false); 
                handleprune(false); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $inputbox = inputbox("Prefix[pname]", $Prefix["pname"]); 
            $formContents = aaaaan(get_phrase("forums_title"), $inputbox); 
            $selectbox = "
			<label>
				<input type=\"radio\" name=\"Prefix[cssname]\" value=\"pink\"" . (($Prefix["cssname"] == "pink" ? " checked=\"checked\"" : "")) . " />
				<span class=\"prefixButton pink\">Test</span> 
			</label>
			<label>
				<input type=\"radio\" name=\"Prefix[cssname]\" value=\"green\"" . (($Prefix["cssname"] == "green" ? " checked=\"checked\"" : "")) . " />
				<span class=\"prefixButton green\">Test</span> 
			</label>
			<label>
				<input type=\"radio\" name=\"Prefix[cssname]\" value=\"red\"" . (($Prefix["cssname"] == "red" ? " checked=\"checked\"" : "")) . " />
				<span class=\"prefixButton red\">Test</span> 
			</label>
			<label>
				<input type=\"radio\" name=\"Prefix[cssname]\" value=\"orange\"" . (($Prefix["cssname"] == "orange" ? " checked=\"checked\"" : "")) . " />
				<span class=\"prefixButton orange\">Test</span> 
			</label>
			<label>
				<input type=\"radio\" name=\"Prefix[cssname]\" value=\"blue\"" . (($Prefix["cssname"] == "blue" ? " checked=\"checked\"" : "")) . " />
				<span class=\"prefixButton blue\">Test</span> 
			</label>
			<label>
				<input type=\"radio\" name=\"Prefix[cssname]\" value=\"yellow\"" . (($Prefix["cssname"] == "yellow" ? " checked=\"checked\"" : "")) . " />
				<span class=\"prefixButton yellow\">Test</span> 
			</label>
			<label>
				<input type=\"radio\" name=\"Prefix[cssname]\" value=\"black\"" . (($Prefix["cssname"] == "black" ? " checked=\"checked\"" : "")) . " />
				<span class=\"prefixButton black\">Test</span> 
			</label>
			"; 
            $formContents .= aaaaan(get_phrase("display_styling"), $selectbox); 
            $Usergroups = aaaaaw("Prefix[viewpermissions][]", $Prefix["viewpermissions"]); 
            $formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all")); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    if( $delete ) 
    { 
        $Prefix = $TSUE["TSUE_Database"]->query_result("SELECT pname FROM tsue_forums_thread_prefixes WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Prefix ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_forums_thread_prefixes", "pid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            $TSUE["TSUE_Database"]->update("tsue_forums_thread_prefixes", array( "pid" => 0 ), "pid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            logadminaction(get_phrase("prefix_has_been_deleted", $Prefix["pname"] . " (" . $delete . ")")); 
            handlerebuildcaches(false); 
            handleprune(false); 
        } 
 
    } 
 
    $Prefixes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums_thread_prefixes ORDER BY pname ASC"); 
    if( $TSUE["TSUE_Database"]->num_rows($Prefixes) ) 
    { 
        while( $Prefix = $TSUE["TSUE_Database"]->fetch_assoc($Prefixes) ) 
        { 
            $aaaahl = aaaaae(array( "edit=" . $Prefix["pid"] => array( "phrase" => $Prefix["pname"] ) )); 
            $aaaahm = aaaaae(array( "delete=" . $Prefix["pid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<span class=\"prefixButton " . $Prefix["cssname"] . "\">" . $Prefix["cssname"] . "</span> " . $aaaahl ), array( "width" => "15%", "text" => $aaaahm, "align" => "right" ) )); 
        } 
    } 
 
    $HTML .= createtable(get_phrase("thread_prefixes"), $tableContents, 2, $aaaahk); 
    return $HTML; 
} 
 
function rebuildforumcounters() 
{ 
    return "
	<div class=\"ajaxLoaderDiv\" id=\"forumCountersUpdating\">
		" . getimage("ajax/ajax-loader.gif", NULL, "middle") . "
		" . get_phrase("please_wait_while_forum_counters_are_updated") . "
	</div>
	
	<script type=\"text/javascript\">
		setTimeout(function()
		{
			\$.ajax
			({
				type: \"POST\",
				data: \"isAjax=1&action=rebuildForumCounters\",
				success: function(result)
				{
					\$(\"#forumCountersUpdating\").css({\"text-align\": \"left\"}).html(result)
				}
			});
		}, 1000);
	</script>"; 
} 
 
function handlethemes() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $themeid = intval(getvar("themeid")); 
    $enable_disable = intval(getvar("enable_disable")); 
    $type = trim(getvar("type")); 
    $template = intval(getvar("template")); 
    $editTemplate = intval(getvar("editTemplate")); 
    $deleteTemplate = intval(getvar("deleteTemplate")); 
    $newTemplate = intval(getvar("newTemplate")); 
    $revertTemplate = intval(getvar("revertTemplate")); 
    $style = intval(getvar("style")); 
    $editStyle = intval(getvar("editStyle")); 
    $newStyle = intval(getvar("newStyle")); 
    $revertStyle = intval(getvar("revertStyle")); 
    $searchPhrase = trim(getvar("searchPhrase", "", false)); 
    $export = intval(getvar("export")); 
    $import = intval(getvar("import")); 
    $WHERE = ""; 
    if( $import ) 
    { 
        if( !extension_loaded("zip") ) 
        { 
            return errormessage(get_phrase("an_error_hash_occurded") . ": (i1) http://php.net/manual/en/book.zip.php"); 
        } 
 
        checkdemomode(); 
        addbreadcrumb(array( get_phrase("import_a_theme") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;import=1" )); 
        if( isset($_FILES["theme"]) ) 
        { 
            $importTheme = $_FILES["theme"]; 
            if( $importTheme["error"] != UPLOAD_ERR_OK ) 
            { 
                switch( $importTheme["error"] ) 
                { 
                    case 1: 
                        $formErrors[] = get_phrase("upload_error1"); 
                        break; 
                    case 4: 
                        $formErrors[] = get_phrase("upload_error3"); 
                        break; 
                    default: 
                        $formErrors[] = get_phrase("an_error_hash_occurded") . ": (UE-" . $importTheme["error"] . ")"; 
                        break; 
                } 
            } 
            else 
            { 
                if( file_extension($importTheme["name"]) != "zip" ) 
                { 
                    $formErrors[] = get_phrase("upload_error6", "zip"); 
                } 
                else 
                { 
                    $zip = new ZipArchive(); 
                    $res = $zip->open($importTheme["tmp_name"]); 
                    if( $res === true ) 
                    { 
                        $tmpFolder = DATAPATH . "cache/tmp_theme_folder/"; 
                        if( is_dir($tmpFolder) ) 
                        { 
                            rrmdir($tmpFolder); 
                        } 
 
                        if( !mkdir($tmpFolder, 511) ) 
                        { 
                            $formErrors[] = get_phrase("an_error_hash_occurded") . ": (i3)"; 
                        } 
                        else 
                        { 
                            $zip->extractTo($tmpFolder); 
                            $zip->close(); 
                            $aaaahn = $tmpFolder . "install_tsue_theme.xml"; 
                            if( !file_exists($aaaahn) ) 
                            { 
                                $formErrors[] = get_phrase("pls_install_a_valid_theme"); 
                            } 
                            else 
                            { 
                                $XML = simplexml_load_file($aaaahn); 
                                if( !$XML ) 
                                { 
                                    $formErrors[] = get_phrase("an_error_hash_occurded") . ": (i4) " . $aaaahn; 
                                } 
                                else 
                                { 
                                    $checkTheme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themename = " . $TSUE["TSUE_Database"]->escape($XML->themename)); 
                                    if( $checkTheme ) 
                                    { 
                                        $formErrors[] = get_phrase("theme_manager_theme_name_alt"); 
                                    } 
                                    else 
                                    { 
                                        $buildQuery = array( "themename" => $XML->themename, "viewpermissions" => $XML->viewpermissions, "active" => $XML->active ); 
                                        if( $TSUE["TSUE_Database"]->insert("tsue_themes", $buildQuery) ) 
                                        { 
                                            $themeID = $TSUE["TSUE_Database"]->insert_id(); 
                                            foreach( $XML->styles->style as $style ) 
                                            { 
                                                $buildQuery = array( "stylename" => $style->stylename, "themeid" => $themeID, "css" => $style->css_content, "last_updated" => $style->last_updated, "orj_css" => $style->orj_css_content ); 
                                                $TSUE["TSUE_Database"]->insert("tsue_styles", $buildQuery); 
                                            } 
                                            foreach( $XML->templates->template as $template ) 
                                            { 
                                                $buildQuery = array( "themeid" => $themeID, "templatename" => $template->templatename, "template" => aaaaho($template->template_content), "last_updated" => $template->last_updated, "orj_template" => aaaaho($template->orj_template_content) ); 
                                                $TSUE["TSUE_Database"]->insert("tsue_templates", $buildQuery); 
                                            } 
                                            if( is_dir(DATAPATH . "cache/" . $XML->themename) ) 
                                            { 
                                                rrmdir(DATAPATH . "cache/" . $XML->themename); 
                                            } 
 
                                            if( !rename($tmpFolder, DATAPATH . "cache/" . $XML->themename) ) 
                                            { 
                                                $aaaahp = "I can not rename the folder name. Please rename this: " . $tmpFolder . " with this: " . DATAPATH . "cache/" . $XML->themename . " and then move " . DATAPATH . "cache/" . $XML->themename . " into " . ROOTPATH . "styles/"; 
                                            } 
                                            else 
                                            { 
                                                if( !is_writable(ROOTPATH . "styles") ) 
                                                { 
                                                    $aaaahp = ROOTPATH . "styles is not writable. Please move this: " . DATAPATH . "cache/" . $XML->themename . " to: " . ROOTPATH . "styles/"; 
                                                } 
                                                else 
                                                { 
                                                    if( !copy_directory(DATAPATH . "cache/" . $XML->themename, ROOTPATH . "styles/" . $XML->themename) ) 
                                                    { 
                                                        $aaaahp = "I can not move the folder. Please move this: " . DATAPATH . "cache/" . $XML->themename . " to: " . ROOTPATH . "styles/"; 
                                                    } 
                                                    else 
                                                    { 
                                                        if( !is_dir(ROOTPATH . "styles/" . $XML->themename) ) 
                                                        { 
                                                            $aaaahp = "I can not move the folder. Please move this: " . DATAPATH . "cache/" . $XML->themename . " to: " . ROOTPATH . "styles/"; 
                                                        } 
                                                        else 
                                                        { 
                                                            rrmdir(DATAPATH . "cache/" . $XML->themename); 
                                                            unlink(ROOTPATH . "styles/" . $XML->themename . "/install_tsue_theme.xml"); 
                                                        } 
 
                                                    } 
 
                                                } 
 
                                            } 
 
                                            $phrase = get_phrase("theme_manager_theme_imported", $XML->themename); 
                                            if( isset($aaaahp) ) 
                                            { 
                                                if( is_file(ROOTPATH . "styles/" . $XML->themename . "/install_tsue_theme.xml") ) 
                                                { 
                                                    unlink(ROOTPATH . "styles/" . $XML->themename . "/install_tsue_theme.xml"); 
                                                } 
 
                                                if( is_file(DATAPATH . "cache/" . $XML->themename) ) 
                                                { 
                                                    unlink(DATAPATH . "cache/" . $XML->themename . "/install_tsue_theme.xml"); 
                                                } 
 
                                                if( is_file($aaaahn) ) 
                                                { 
                                                    unlink($aaaahn); 
                                                } 
 
                                                $phrase .= "<br /><br />" . $aaaahp; 
                                            } 
 
                                            logadminaction($phrase); 
                                            $HTML .= successmessage($phrase); 
                                            handlerebuildcaches(false); 
                                            handleprune(false); 
                                            $importDone = true; 
                                        } 
                                        else 
                                        { 
                                            $formErrors[] = get_phrase("database_error") . ": (i5)"; 
                                        } 
 
                                    } 
 
                                } 
 
                            } 
 
                        } 
 
                    } 
                    else 
                    { 
                        $formErrors[] = get_phrase("an_error_hash_occurded") . ": (i2)"; 
                    } 
 
                } 
 
            } 
 
            if( isset($formErrors) ) 
            { 
                if( isset($tmpFolder) && is_dir($tmpFolder) ) 
                { 
                    rrmdir($tmpFolder); 
                } 
 
                if( isset($XML->themename) && is_dir(DATAPATH . "cache/" . $XML->themename) ) 
                { 
                    rrmdir(DATAPATH . "cache/" . $XML->themename); 
                } 
 
                if( isset($XML->themename) && is_dir(ROOTPATH . "styles/" . $XML->themename) ) 
                { 
                    rrmdir(ROOTPATH . "styles/" . $XML->themename); 
                } 
 
                if( isset($themeID) ) 
                { 
                    $TSUE["TSUE_Database"]->delete("tsue_themes", "themeid = " . $TSUE["TSUE_Database"]->escape($themeID)); 
                    $TSUE["TSUE_Database"]->delete("tsue_templates", "themeid = " . $TSUE["TSUE_Database"]->escape($themeID)); 
                    $TSUE["TSUE_Database"]->delete("tsue_styles", "themeid = " . $TSUE["TSUE_Database"]->escape($themeID)); 
                } 
 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($importDone) ) 
        { 
            $aaaacr = aaaacs("theme"); 
            $formContents = aaaaan(get_phrase("theme_manager_import_from_uploaded_file"), $aaaacr); 
            $HTML .= aaaabg($formContents); 
            $HTML .= "
			<script type=\"text/javascript\">
				\$(\"#overlay_form\").submit(function(e)
				{
					\$(this).hide();
					\$('<div style=\"font-size: 20px; font-weight: bold; color: red; border: 1px solid #ddd; padding: 15px; text-align: center;\"> " . getimage("ajax/ajax-loader.gif") . "&nbsp;&nbsp;" . get_phrase("please_wait_uploading") . "</div>').appendTo(\"#mainText\");
				});
			</script>"; 
            return $HTML; 
        } 
 
    } 
 
    if( $export ) 
    { 
        checkdemomode(); 
        if( !extension_loaded("zip") ) 
        { 
            return errormessage(get_phrase("an_error_hash_occurded") . ": (e1) http://php.net/manual/en/book.zip.php"); 
        } 
 
        $Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename, viewpermissions, active FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($export)); 
        if( !$Theme ) 
        { 
            return errormessage(get_phrase("message_content_error") . " (e2)"); 
        } 
 
        $Styles = $TSUE["TSUE_Database"]->query("SELECT stylename, css, last_updated, orj_css FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($export)); 
        if( !$Styles ) 
        { 
            return errormessage(get_phrase("message_content_error") . " (e3)"); 
        } 
 
        $Templates = $TSUE["TSUE_Database"]->query("SELECT templatename, template, last_updated, orj_template FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($export)); 
        if( !$Templates ) 
        { 
            return errormessage(get_phrase("message_content_error") . " (e4)"); 
        } 
 
        $xmlOutput = "<?xml version=\"1.0\" encoding=\"" . $TSUE["TSUE_Language"]["charset"] . "\"?>
<tsuetheme>
	<themename>" . $Theme["themename"] . "</themename>
	<viewpermissions>" . $Theme["viewpermissions"] . "</viewpermissions>
	<active>" . $Theme["active"] . "</active>"; 
        $xmlOutput .= "
	<styles>"; 
        while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($Styles) ) 
        { 
            $xmlOutput .= "
		<style>
			<stylename>" . $Style["stylename"] . "</stylename>
			<css_content><![CDATA[" . $Style["css"] . "]]></css_content>
			<last_updated>" . $Style["last_updated"] . "</last_updated>
			<orj_css_content><![CDATA[" . $Style["orj_css"] . "]]></orj_css_content>
		</style>"; 
        } 
        $xmlOutput .= "
	</styles>"; 
        $xmlOutput .= "
	<templates>"; 
        while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($Templates) ) 
        { 
            $xmlOutput .= "
		<template>
			<templatename>" . $Template["templatename"] . "</templatename>
			<template_content><![CDATA[" . aaaahq($Template["template"]) . "]]></template_content>
			<last_updated>" . $Template["last_updated"] . "</last_updated>
			<orj_template_content><![CDATA[" . aaaahq($Template["orj_template"]) . "]]></orj_template_content>
		</template>"; 
        } 
        $xmlOutput .= "
	</templates>"; 
        $xmlOutput .= "
</tsuetheme>"; 
        $xmlOutput = utf8_encode($xmlOutput); 
        $aaaahr = safe_names($Theme["themename"]); 
        $aaaahs = DATAPATH . "cache/" . $aaaahr . "/"; 
        $createXMLFile = $aaaahs . "install_tsue_theme.xml"; 
        if( is_dir($aaaahs) ) 
        { 
            rrmdir($aaaahs); 
        } 
 
        if( !is_dir($aaaahs) && !mkdir($aaaahs, 511) ) 
        { 
            return errormessage(get_phrase("an_error_hash_occurded") . ": (e5) " . $aaaahs); 
        } 
 
        if( !file_put_contents($createXMLFile, $xmlOutput) ) 
        { 
            return errormessage(get_phrase("an_error_hash_occurded") . ": (e6) " . $createXMLFile); 
        } 
 
        $XML = simplexml_load_file($createXMLFile); 
        if( !$XML ) 
        { 
            return errormessage(get_phrase("an_error_hash_occurded") . ": (e7) " . $createXMLFile); 
        } 
 
        $themeFiles = ROOTPATH . "styles/" . $Theme["themename"] . "/"; 
        copy_directory($themeFiles, $aaaahs); 
        $zipFileName = "tsue_theme_" . V . "_" . $aaaahr . ".zip"; 
        $createZipFile = DATAPATH . "cache/" . $zipFileName; 
        if( is_file($createZipFile) ) 
        { 
            unlink($createZipFile); 
        } 
 
        if( !zip($aaaahs, $createZipFile) ) 
        { 
            return errormessage(get_phrase("an_error_hash_occurded") . ": (e8) " . $createZipFile); 
        } 
 
        rrmdir($aaaahs); 
        downloadfile($createZipFile, $zipFileName); 
        unlink($createZipFile); 
        exit(); 
    } 
 
    if( $type == "manageTemplates" && $themeid ) 
    { 
        $Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid)); 
        if( !$Theme ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        addbreadcrumb(array( get_phrase("theme_manager_manage_templates") . ": " . $Theme["themename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;themeid=" . $themeid . "&amp;type=manageTemplates" )); 
        if( $deleteTemplate ) 
        { 
            $Template = $TSUE["TSUE_Database"]->query_result("SELECT templatename FROM tsue_templates WHERE templateid = " . $TSUE["TSUE_Database"]->escape($deleteTemplate)); 
            if( !$Template ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $TSUE["TSUE_Database"]->delete("tsue_templates", "templateid = " . $TSUE["TSUE_Database"]->escape($deleteTemplate)); 
            $Phrase = get_phrase("template_x_has_been_deleted", $Template["templatename"]); 
            $HTML .= errormessage($Phrase); 
            handlerebuildcaches(false); 
            handleprune(false); 
        } 
 
        if( $revertTemplate ) 
        { 
            $Template = $TSUE["TSUE_Database"]->query_result("SELECT templatename,template FROM tsue_templates WHERE templateid = " . $TSUE["TSUE_Database"]->escape($revertTemplate)); 
            if( !$Template ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $BuildQuery = array( "template" => array( "escape" => 0, "value" => "orj_template" ) ); 
            $TSUE["TSUE_Database"]->update("tsue_templates", $BuildQuery, "templateid = " . $TSUE["TSUE_Database"]->escape($revertTemplate)); 
            $HTML .= successmessage(get_phrase("message_saved")); 
            handlerebuildcaches(false); 
            handleprune(false); 
        } 
 
        if( $searchPhrase ) 
        { 
            $WHERE = " AND (templatename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%' OR template LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%')"; 
        } 
 
        $Templates = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE . " ORDER BY last_updated DESC, templatename ASC"); 
        if( !$TSUE["TSUE_Database"]->num_rows($Templates) ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        if( $editTemplate || $newTemplate ) 
        { 
            if( isset($_GET["created"]) && !ispost() ) 
            { 
                $HTML .= successmessage(get_phrase("message_saved")); 
            } 
 
            $Template = array( "templatename" => "", "template" => "" ); 
            $aaaaam = ""; 
            if( $editTemplate ) 
            { 
                $Template = $TSUE["TSUE_Database"]->query_result("SELECT templatename,template FROM tsue_templates WHERE templateid = " . $TSUE["TSUE_Database"]->escape($editTemplate)); 
                if( !$Template ) 
                { 
                    return errormessage(get_phrase("message_content_error")); 
                } 
 
                $aaaaam = array( "editTemplate" => $editTemplate ); 
                $aaaaht = $Template["templatename"]; 
                addbreadcrumb(array( $Template["templatename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;themeid=" . $themeid . "&amp;type=manageTemplates&amp;editTemplate=" . $editTemplate )); 
            } 
            else 
            { 
                addbreadcrumb(array( get_phrase("theme_manage_create_new_template") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;themeid=" . $themeid . "&amp;type=manageTemplates&amp;newTemplate=1" )); 
            } 
 
            if( isset($_POST["Template"]) ) 
            { 
                $Template = $_POST["Template"]; 
                if( !$Template["templatename"] || !$Template["template"] ) 
                { 
                    $formErrors[] = get_phrase("message_required_fields_error"); 
                } 
 
                if( $Template["templatename"] && (!$editTemplate || $editTemplate && $aaaaht != $Template["templatename"]) ) 
                { 
                    $checkTemplate = $TSUE["TSUE_Database"]->query_result("SELECT templatename FROM tsue_templates WHERE templatename = " . $TSUE["TSUE_Database"]->escape($Template["templatename"]) . " AND themeid = " . $TSUE["TSUE_Database"]->escape($themeid)); 
                    if( $checkTemplate ) 
                    { 
                        $formErrors[] = get_phrase("theme_manager_template_name_alt"); 
                    } 
 
                } 
 
                if( !isset($formErrors) ) 
                { 
                    $buildQuery = array( "themeid" => $themeid, "templatename" => $Template["templatename"], "template" => $Template["template"], "last_updated" => TIMENOW ); 
                    if( $editTemplate ) 
                    { 
                        $TSUE["TSUE_Database"]->update("tsue_templates", $buildQuery, "templateid=" . $TSUE["TSUE_Database"]->escape($editTemplate)); 
                    } 
                    else 
                    { 
                        $buildQuery["orj_template"] = $buildQuery["template"]; 
                        $TSUE["TSUE_Database"]->insert("tsue_templates", $buildQuery); 
                        $aaaahu = $TSUE["TSUE_Database"]->insert_id(); 
                    } 
 
                    logadminaction(get_phrase("theme_manager_template_updated", $Template["templatename"])); 
                    $HTML .= successmessage(get_phrase("message_saved")); 
                    handlerebuildcaches(false); 
                    handleprune(false); 
                    if( !$editTemplate ) 
                    { 
                        header("Location: ?action=" . $TSUE["action"] . "&do=Themes&themeid=" . $themeid . "&type=manageTemplates&editTemplate=" . $aaaahu . "&created=1"); 
                        exit(); 
                    } 
 
                    $Templates = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE); 
                } 
                else 
                { 
                    $HTML .= errormessage(implode("<br />", $formErrors)); 
                } 
 
            } 
 
            if( !isset($updateDone) ) 
            { 
                $inputbox = inputbox("Template[templatename]", $Template["templatename"], "text"); 
                $formContents = aaaaan(get_phrase("theme_manager_template_name"), $inputbox, get_phrase("theme_manager_template_name_alt")); 
                $inputbox = textarea("Template[template]", $Template["template"], false, "templateTextarea"); 
                $formContents .= aaaaan(get_phrase("theme_manager_template_html"), $inputbox); 
                $HTML .= aaaabg($formContents, $aaaaam); 
                return $HTML; 
            } 
 
        } 
 
        $tableContents = ""; 
        while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($Templates) ) 
        { 
            $aaaahv = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&deleteTemplate=" . $Template["templateid"] . (($searchPhrase ? "&searchPhrase=" . html_clean($searchPhrase) : "")) => array( "phrase" => getimage("buttons/delete_s.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            $aaaahw = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&editTemplate=" . $Template["templateid"] => array( "phrase" => $Template["templatename"] ) )); 
            $aaaahx = ""; 
            if( $Template["template"] != $Template["orj_template"] ) 
            { 
                $aaaahx = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&revertTemplate=" . $Template["templateid"] => array( "phrase" => get_phrase("revert") ) )); 
            } 
 
            $last_updated = convert_relative_time($Template["last_updated"]); 
            $size = friendly_size(strlen($Template["template"])); 
            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaahv . " " . $aaaahw . "<span class=\"smallPassiveText\">" . get_phrase("torrents_peer_last_updated") . ": " . $last_updated . " (" . $size . ")</span>" ), array( "width" => "15%", "text" => "<span class=\"revertTemplate\">" . $aaaahx . "</span>", "align" => "right" ) )); 
        } 
        $aaaahy = aaaaag(array( array( "width" => "15%", "text" => get_phrase("theme_manager_search_in_templates_keywords"), "align" => "right" ), array( "width" => "85%", "text" => inputbox("searchPhrase", html_clean($searchPhrase), "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) )); 
        $HTML .= aaaabn(createtable(get_phrase("theme_manager_search_in_templates"), $aaaahy, 2), NULL, "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageTemplates&search=1"); 
        $aaaahz = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&newTemplate=1" => array( "phrase" => get_phrase("theme_manage_create_new_template") ) )); 
        $HTML .= "
		<div style=\"max-height: 500px; overflow: auto; zoom: 1;\">
			" . createtable(get_phrase("theme_manager_manage_templates") . " (" . $Theme["themename"] . ")", $tableContents, 2, $aaaahz) . "
		</div>"; 
        return $HTML; 
    } 
 
    if( $type == "manageStyles" && $themeid ) 
    { 
        $Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid)); 
        if( !$Theme ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        addbreadcrumb(array( get_phrase("theme_manager_manage_styles") . ": " . $Theme["themename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;themeid=" . $themeid . "&amp;type=manageStyles" )); 
        if( $searchPhrase ) 
        { 
            $WHERE = " AND (stylename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%' OR css LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%')"; 
        } 
 
        if( $revertStyle ) 
        { 
            /*$Style = $TSUE["TSUE_Database"]->query_result("SELECT stylename FROM tsue_styles WHERE styleid = " . $TSUE["TSUE_Database"]->escape($revertStyle)); 
            if( !$Style ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $BuildQuery = array( "css" => array( "escape" => 0, "value" => "orj_css" ) ); 
            $TSUE["TSUE_Database"]->update("tsue_styles", $BuildQuery, "styleid = " . $TSUE["TSUE_Database"]->escape($revertStyle)); 
            $HTML .= successmessage(get_phrase("message_saved")); 
            handlerebuildcaches(false); 
            handleprune(false);*/ 
        } 
 
        $Styles = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE . " ORDER BY last_updated DESC"); 
        if( !$TSUE["TSUE_Database"]->num_rows($Styles) ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        if( $editStyle || $newStyle ) 
        { 
            $Style = array( "stylename" => "", "css" => "" ); 
            $aaaaam = ""; 
            if( $editStyle ) 
            { 
                $Style = $TSUE["TSUE_Database"]->query_result("SELECT stylename,css FROM tsue_styles WHERE styleid = " . $TSUE["TSUE_Database"]->escape($editStyle)); 
                if( !$Style ) 
                { 
                    return errormessage(get_phrase("message_content_error")); 
                } 
 
                $aaaaam = array( "editStyle" => $editStyle ); 
                $aaaaia = $Style["stylename"]; 
                addbreadcrumb(array( $Style["stylename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;themeid=" . $themeid . "&amp;type=manageStyles&amp;editStyle=" . $editStyle )); 
            } 
            else 
            { 
                addbreadcrumb(array( get_phrase("theme_manage_create_new_style") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;themeid=" . $themeid . "&amp;type=manageStyles&amp;newStyle=1" )); 
            } 
 
            if( isset($_POST["Style"]) ) 
            { 
                $Style = $_POST["Style"]; 
                if( !$Style["stylename"] || !$Style["css"] ) 
                { 
                    $formErrors[] = get_phrase("message_required_fields_error"); 
                } 
 
                if( $Style["stylename"] && (!$editStyle || $editStyle && $aaaaia != $Style["stylename"]) ) 
                { 
                    $checkStyle = $TSUE["TSUE_Database"]->query_result("SELECT stylename FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . " AND stylename = " . $TSUE["TSUE_Database"]->escape($Style["stylename"])); 
                    if( $checkStyle ) 
                    { 
                        $formErrors[] = get_phrase("theme_manager_style_name_alt"); 
                    } 
 
                } 
 
                if( !isset($formErrors) ) 
                { 
                    $buildQuery = array( "stylename" => $Style["stylename"], "themeid" => $themeid, "css" => $Style["css"], "last_updated" => TIMENOW ); 
                    if( $editStyle ) 
                    { 
                        $TSUE["TSUE_Database"]->update("tsue_styles", $buildQuery, "styleid=" . $TSUE["TSUE_Database"]->escape($editStyle)); 
                    } 
                    else 
                    { 
                        $buildQuery["orj_css"] = $buildQuery["css"]; 
                        $TSUE["TSUE_Database"]->insert("tsue_styles", $buildQuery); 
                    } 
 
                    logadminaction(get_phrase("theme_manager_style_updated", $Style["stylename"])); 
                    $HTML .= successmessage(get_phrase("message_saved")); 
                    handlerebuildcaches(false); 
                    handleprune(false); 
                    $Styles = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE); 
                } 
                else 
                { 
                    $HTML .= errormessage(implode("<br />", $formErrors)); 
                } 
 
            } 
 
            $inputbox = inputbox("Style[stylename]", $Style["stylename"], "text"); 
            $formContents = aaaaan(get_phrase("theme_manager_style_name"), $inputbox, get_phrase("theme_manager_style_name_alt")); 
            $inputbox = textarea("Style[css]", $Style["css"], false, "templateTextarea"); 
            $formContents .= aaaaan(get_phrase("theme_manager_style_css"), $inputbox); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
        $tableContents = ""; 
        while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($Styles) ) 
        { 
            $aaaaib = aaaaae(array( "themeid=" . $themeid . "&type=manageStyles&editStyle=" . $Style["styleid"] => array( "phrase" => $Style["stylename"] ) )); 
            $aaaahx = ""; 
            if( $Style["css"] != $Style["orj_css"] ) 
            { 
                $aaaahx = aaaaae(array( "themeid=" . $themeid . "&type=manageStyles&revertStyle=" . $Style["styleid"] => array( "phrase" => get_phrase("revert") ) )); 
            } 
 
            $last_updated = convert_relative_time($Style["last_updated"]); 
            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaaib . "<span class=\"smallPassiveText\">" . get_phrase("torrents_peer_last_updated") . ": " . $last_updated . "</span>" ), array( "width" => "15%", "text" => "<span class=\"revertTemplate\">" . $aaaahx . "</span>", "align" => "right" ) )); 
        } 
        $aaaahy = aaaaag(array( array( "width" => "15%", "text" => get_phrase("theme_manager_search_in_templates_keywords"), "align" => "right" ), array( "width" => "85%", "text" => inputbox("searchPhrase", html_clean($searchPhrase), "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) )); 
        $HTML .= aaaabn(createtable(get_phrase("theme_manager_search_in_styles"), $aaaahy, 2), NULL, "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageStyles&search=1"); 
        $aaaaic = aaaaae(array( "themeid=" . $themeid . "&type=manageStyles&newStyle=1" => array( "phrase" => get_phrase("theme_manage_create_new_style") ) )); 
        $HTML .= "
		<div style=\"max-height: 500px; overflow: auto; zoom: 1;\">
			" . createtable(get_phrase("theme_manager_manage_styles") . " (" . $Theme["themename"] . ")", $tableContents, 2, $aaaaic) . "
		</div>"; 
        return $HTML; 
    } 
 
    if( $delete ) 
    { 
        $Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Theme ) 
        { 
            if( !$TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid != " . $TSUE["TSUE_Database"]->escape($delete) . " AND active = 1") ) 
            { 
                return errormessage(get_phrase("you_cant_delete_disable_this_theme")); 
            } 
 
            $TSUE["TSUE_Database"]->delete("tsue_themes", "themeid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            $TSUE["TSUE_Database"]->delete("tsue_templates", "themeid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            $TSUE["TSUE_Database"]->delete("tsue_styles", "themeid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            logadminaction(get_phrase("theme_manager_theme_deleted", $Theme["themename"] . " (" . $delete . ")")); 
            handlerebuildcaches(false); 
            handleprune(false); 
        } 
 
    } 
 
    if( $edit || $new ) 
    { 
        $Theme = array( "themename" => "", "viewpermissions" => array(  ) ); 
        $aaaaam = ""; 
        if( $edit ) 
        { 
            $Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename, viewpermissions FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Theme ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
            $aaaaid = $Theme["themename"]; 
            if( $Theme["viewpermissions"] ) 
            { 
                $Theme["viewpermissions"] = unserialize($Theme["viewpermissions"]); 
            } 
            else 
            { 
                $Theme["viewpermissions"] = array(  ); 
            } 
 
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Theme["themename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        } 
        else 
        { 
            addbreadcrumb(array( get_phrase("theme_manager_create_new_theme") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
        } 
 
        if( isset($_POST["Theme"]) ) 
        { 
            $Theme = $_POST["Theme"]; 
            if( !isset($Theme["viewpermissions"]) ) 
            { 
                $Theme["viewpermissions"] = array(  ); 
            } 
 
            if( !$Theme["themename"] ) 
            { 
                $formErrors[] = get_phrase("message_required_fields_error"); 
            } 
            else 
            { 
                if( !$edit || $edit && $aaaaid != $Theme["themename"] ) 
                { 
                    $checkTheme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themename = " . $TSUE["TSUE_Database"]->escape($Theme["themename"])); 
                    if( $checkTheme ) 
                    { 
                        $formErrors[] = get_phrase("theme_manager_theme_name_alt"); 
                    } 
 
                } 
 
            } 
 
            if( !is_dir(STYLEPATH . $Theme["themename"]) ) 
            { 
                $formErrors[] = get_phrase("theme_manager_theme_folder_error", (DEMO_MODE ? "" : STYLEPATH)); 
            } 
 
            if( !isset($formErrors) ) 
            { 
                $buildQuery = array( "themename" => $Theme["themename"] ); 
                if( $Theme["viewpermissions"] ) 
                { 
                    $buildQuery["viewpermissions"] = serialize($Theme["viewpermissions"]); 
                } 
                else 
                { 
                    $buildQuery["viewpermissions"] = ""; 
                } 
 
                if( $edit ) 
                { 
                    $TSUE["TSUE_Database"]->update("tsue_themes", $buildQuery, "themeid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $TSUE["TSUE_Database"]->insert("tsue_themes", $buildQuery); 
                    $aaaaie = $TSUE["TSUE_Database"]->insert_id(); 
                    $defaultThemeID = $TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"]; 
                    if( $aaaaie && $defaultThemeID ) 
                    { 
                        $allTemplates = $TSUE["TSUE_Database"]->query("SELECT templatename, template, last_updated, orj_template FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($defaultThemeID)); 
                        if( $TSUE["TSUE_Database"]->num_rows($allTemplates) ) 
                        { 
                            while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($allTemplates) ) 
                            { 
                                $buildQuery = array( "themeid" => $aaaaie, "templatename" => $Template["templatename"], "template" => $Template["template"], "last_updated" => $Template["last_updated"], "orj_template" => $Template["orj_template"] ); 
                                $TSUE["TSUE_Database"]->insert("tsue_templates", $buildQuery); 
                            } 
                        } 
 
                        $allStyles = $TSUE["TSUE_Database"]->query("SELECT stylename, css, last_updated, orj_css FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($defaultThemeID)); 
                        if( $TSUE["TSUE_Database"]->num_rows($allStyles) ) 
                        { 
                            while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($allStyles) ) 
                            { 
                                $buildQuery = array( "themeid" => $aaaaie, "stylename" => $Style["stylename"], "css" => $Style["css"], "last_updated" => $Style["last_updated"], "orj_css" => $Style["orj_css"] ); 
                                $TSUE["TSUE_Database"]->insert("tsue_styles", $buildQuery); 
                            } 
                        } 
 
                    } 
 
                } 
 
                logadminaction(get_phrase("theme_manager_theme_updated", $Theme["themename"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                handlerebuildcaches(false); 
                handleprune(false); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $inputbox = inputbox("Theme[themename]", $Theme["themename"], "text texthalf"); 
            $formContents = aaaaan(get_phrase("theme_manager_theme_name"), $inputbox, get_phrase("theme_manager_theme_name_alt")); 
            $Usergroups = aaaaaw("Theme[viewpermissions][]", $Theme["viewpermissions"]); 
            $formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all")); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    if( $enable_disable ) 
    { 
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
        $Query = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
        if( $Query ) 
        { 
            if( !$TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid != " . $TSUE["TSUE_Database"]->escape($enable_disable) . " AND active = 1") ) 
            { 
                return errormessage(get_phrase("you_cant_delete_disable_this_theme")); 
            } 
 
            $TSUE["TSUE_Database"]->update("tsue_themes", $BuildQuery, "themeid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            logadminaction(get_phrase("theme_manager_theme_updated", $Query["themename"] . " (" . $enable_disable . ")")); 
            handlerebuildcaches(false); 
            handleprune(false); 
        } 
 
    } 
 
    $Themes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_themes ORDER BY active DESC, themename ASC"); 
    if( !$TSUE["TSUE_Database"]->num_rows($Themes) ) 
    { 
        $tableContents = errormessage(get_phrase("theme_manager_no_theme")); 
    } 
    else 
    { 
        $tableContents = ""; 
        while( $Theme = $TSUE["TSUE_Database"]->fetch_assoc($Themes) ) 
        { 
            $linkClass = (!$Theme["active"] ? "linkDisabled" : ""); 
            $aaaaif = aaaaae(array( "edit=" . $Theme["themeid"] => array( "phrase" => $Theme["themename"], "class" => $linkClass ) )); 
            $aaaaig = aaaaae(array( "themeid=" . $Theme["themeid"] . "&type=manageTemplates" => array( "phrase" => getimage("buttons/managetemplates.png", get_phrase("theme_manager_manage_templates")) ) )); 
            $aaaaih = aaaaae(array( "export=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/save.png", get_phrase("button_export")), "target" => "_blank" ) )); 
            $aaaaii = aaaaae(array( "themeid=" . $Theme["themeid"] . "&type=manageStyles" => array( "phrase" => getimage("buttons/managestyles.png", get_phrase("theme_manager_manage_styles")) ) )); 
            $aaaaij = aaaaae(array( "delete=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            if( $Theme["active"] ) 
            { 
                $aaaaik = aaaaae(array( "enable_disable=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
            } 
            else 
            { 
                $aaaaik = aaaaae(array( "enable_disable=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
            } 
 
            $tableContents .= aaaaag(array( array( "width" => "70%", "text" => $aaaaif . ((DEMO_MODE ? "" : "<span class=\"smallPassiveText\">" . get_phrase("theme_manager_themepath", STYLEPATH . $Theme["themename"]) . "</span>")) ), array( "width" => "30%", "text" => $aaaaik . $aaaaig . $aaaaii . $aaaaih . $aaaaij, "align" => "right" ) )); 
        } 
    } 
 
    $aaaail = aaaaae(array( "new=1" => array( "phrase" => get_phrase("theme_manager_create_new_theme") ) )); 
    $aaaaim = aaaaae(array( "import=1" => array( "phrase" => get_phrase("import_a_theme") ) )); 
    $HTML .= createtable(get_phrase("theme_manager_themes_alt"), $tableContents, 2, $aaaail . " - " . $aaaaim); 
    return $HTML; 
} 
 
function handlelanguages() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $enable_disable = intval(getvar("enable_disable")); 
    $languageid = intval(getvar("languageid")); 
    $type = trim(getvar("type")); 
    $import = intval(getvar("import")); 
    $examine = intval(getvar("examine")); 
    $fixMissing = intval(getvar("fixMissing")); 
    $searchPhrase = trim(getvar("searchPhrase", "", false)); 
    if( $delete ) 
    { 
        checkdemomode(); 
        $Language = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Language ) 
        { 
            if( !$TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid != " . $TSUE["TSUE_Database"]->escape($delete) . " AND active = 1") ) 
            { 
                return errormessage(get_phrase("you_cant_delete_disable_this_language")); 
            } 
 
            $TSUE["TSUE_Database"]->delete("tsue_languages", "languageid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            if( file_exists(DATAPATH . "languageFlags/" . $delete . ".png") ) 
            { 
                @unlink(DATAPATH . "languageFlags/" . $delete . ".png"); 
            } 
 
            logadminaction(get_phrase("theme_manager_language_deleted", $Language["title"] . " (" . $delete . ")")); 
            handlerebuildcaches(false); 
            handleprune(false); 
        } 
 
    } 
 
    if( $edit || $new ) 
    { 
        $Language = array( "title" => "", "content_language" => "", "charset" => "", "date_format" => "", "time_format" => "" ); 
        $aaaaam = ""; 
        if( $edit ) 
        { 
            $Language = $TSUE["TSUE_Database"]->query_result("SELECT title,content_language,charset,date_format,time_format FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Language ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
            $TSUE["TSUE_Language"]["charset"] = strtolower($Language["charset"]); 
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Language["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        } 
        else 
        { 
            addbreadcrumb(array( get_phrase("theme_manager_create_new_language") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
        } 
 
        if( isset($_POST["Language"]) ) 
        { 
            checkdemomode(); 
            $Language = $_POST["Language"]; 
            $Flag = $_FILES["flag"]; 
            if( !$Language["title"] || !$Language["content_language"] || !$Language["charset"] || !$Language["date_format"] || !$Language["date_format"] ) 
            { 
                $formErrors[] = get_phrase("message_required_fields_error"); 
            } 
            else 
            { 
                $TSUE["TSUE_Language"]["charset"] = strtolower($Language["charset"]); 
            } 
 
            if( !$Flag ) 
            { 
                $flagErrors[] = get_phrase("upload_error3"); 
            } 
            else 
            { 
                if( !is_uploaded_file($Flag["tmp_name"]) ) 
                { 
                    $flagError[] = get_phrase("upload_error3"); 
                } 
                else 
                { 
                    if( !$Flag["name"] || !$Flag["type"] || !$Flag["tmp_name"] || $Flag["error"] || !$Flag["size"] ) 
                    { 
                        $flagError[] = get_phrase("upload_error3"); 
                    } 
                    else 
                    { 
                        if( !in_array(file_extension($Flag["name"]), array( "png" )) ) 
                        { 
                            $flagError[] = get_phrase("upload_error6", "png"); 
                        } 
                        else 
                        { 
                            $newFlag = $Flag["tmp_name"]; 
                        } 
 
                    } 
 
                } 
 
            } 
 
            if( isset($flagError) && !$edit ) 
            { 
                $formErrors = array_merge($formErrors, $flagError); 
                unset($flagError); 
            } 
 
            if( !isset($formErrors) ) 
            { 
                $buildQuery = array( "title" => $Language["title"], "content_language" => $Language["content_language"], "charset" => $Language["charset"], "date_format" => $Language["date_format"], "time_format" => $Language["time_format"] ); 
                if( $edit ) 
                { 
                    $TSUE["TSUE_Database"]->update("tsue_languages", $buildQuery, "languageid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                    $flagID = $edit; 
                } 
                else 
                { 
                    $TSUE["TSUE_Database"]->insert("tsue_languages", $buildQuery); 
                    $flagID = $TSUE["TSUE_Database"]->insert_id(); 
                    $newLanguageID = $flagID; 
                    $defaultLanguageID = $TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"]; 
                    if( $newLanguageID && $defaultLanguageID ) 
                    { 
                        $phraseGlobal = $TSUE["TSUE_Database"]->query_result("SELECT phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($defaultLanguageID)); 
                        if( $phraseGlobal ) 
                        { 
                            $buildQuery = array( "phrase_global" => $phraseGlobal["phrase_global"] ); 
                            $TSUE["TSUE_Database"]->update("tsue_languages", $buildQuery, "languageid = " . $TSUE["TSUE_Database"]->escape($newLanguageID)); 
                        } 
 
                    } 
 
                } 
 
                if( isset($newFlag) && $flagID ) 
                { 
                    @move_uploaded_file($newFlag, DATAPATH . "languageFlags/" . $flagID . ".png"); 
                } 
 
                logadminaction(get_phrase("theme_manager_language_updated", $Language["title"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                handlerebuildcaches(false); 
                handleprune(false); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $inputbox = inputbox("Language[title]", $Language["title"], "text texthalf"); 
            $formContents = aaaaan(get_phrase("theme_manager_language_title"), $inputbox); 
            $inputbox = inputbox("Language[content_language]", $Language["content_language"], "text texthalf"); 
            $formContents .= aaaaan(get_phrase("theme_manager_content_language"), $inputbox, get_phrase("theme_manager_content_language_alt")); 
            $inputbox = inputbox("Language[charset]", $Language["charset"], "text texthalf"); 
            $formContents .= aaaaan(get_phrase("theme_manager_language_charset"), $inputbox); 
            $inputbox = inputbox("Language[date_format]", $Language["date_format"], "text texthalf"); 
            $formContents .= aaaaan(get_phrase("theme_manager_language_date_format"), $inputbox, get_phrase("theme_manager_language_date_time_help")); 
            $inputbox = inputbox("Language[time_format]", $Language["time_format"], "text texthalf"); 
            $formContents .= aaaaan(get_phrase("theme_manager_language_time_format"), $inputbox, get_phrase("theme_manager_language_date_time_help")); 
            $aaaacr = aaaacs("flag"); 
            $formContents .= aaaaan(get_phrase("theme_manager_language_flag"), $aaaacr, ($edit ? get_phrase("theme_manager_language_flag_alt") : "")); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    if( $type == "deletePhrase" ) 
    { 
        $aaaain = trim(getvar("text")); 
        if( !$aaaain ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        $checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT title, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid)); 
        if( !$checkPhrase ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        $phraseGlobal = unserialize($checkPhrase["phrase_global"]); 
        if( !isset($phraseGlobal[$aaaain]) ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        unset($phraseGlobal[$aaaain]); 
        $phraseGlobal = serialize($phraseGlobal); 
        $BuildQuery = array( "phrase_global" => $phraseGlobal ); 
        $TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid=" . $languageid); 
        if( $TSUE["TSUE_Database"]->affected_rows() ) 
        { 
            logadminaction(get_phrase("theme_manager_language_updated", $checkPhrase["title"])); 
            $HTML .= successmessage(get_phrase("message_saved")); 
            handlerebuildcaches(false); 
            handleprune(false); 
            $type = "phraseList"; 
        } 
        else 
        { 
            return errormessage(get_phrase("database_error")); 
        } 
 
    } 
 
    if( $type == "editPhrase" || $type == "newPhrase" ) 
    { 
        addbreadcrumb(array( get_phrase("theme_manager_language_phrases") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;type=phraseList&amp;languageid=" . $languageid )); 
        $text = trim(getvar("text")); 
        if( !$text && $type == "editPhrase" ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        $checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT title, charset, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid)); 
        if( !$checkPhrase ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        $TSUE["TSUE_Language"]["charset"] = strtolower($checkPhrase["charset"]); 
        $phrase = unserialize($checkPhrase["phrase_global"]); 
        if( $type == "editPhrase" && !isset($phrase[$text]) ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        if( isset($_POST["Phrase"]) ) 
        { 
            $_POST["Phrase"]["title"] = trim($_POST["Phrase"]["title"]); 
            if( $type == "newPhrase" && isset($phrase[$_POST["Phrase"]["title"]]) ) 
            { 
                return errormessage(get_phrase("theme_manager_phrase_title_alt")); 
            } 
 
            if( !$_POST["Phrase"]["title"] || !aaaaio($_POST["Phrase"]["title"]) ) 
            { 
                return errormessage(get_phrase("theme_manager_phrase_title_error")); 
            } 
 
            $phrase[$_POST["Phrase"]["title"]] = trim($_POST["Phrase"]["text"]); 
            $phrase = serialize($phrase); 
            $BuildQuery = array( "phrase_global" => $phrase ); 
            $TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid=" . $languageid); 
            if( $TSUE["TSUE_Database"]->affected_rows() ) 
            { 
                $aaaaip = $TSUE["TSUE_Database"]->query("SELECT languageid, phrase_global FROM tsue_languages WHERE languageid != " . $TSUE["TSUE_Database"]->escape($languageid)); 
                if( $TSUE["TSUE_Database"]->num_rows($aaaaip) ) 
                { 
                    while( $aaaaiq = $TSUE["TSUE_Database"]->fetch_assoc($aaaaip) ) 
                    { 
                        $aaaair = unserialize($aaaaiq["phrase_global"]); 
                        if( !isset($aaaair[$_POST["Phrase"]["title"]]) ) 
                        { 
                            $aaaair[$_POST["Phrase"]["title"]] = trim($_POST["Phrase"]["text"]); 
                            $BuildQuery = array( "phrase_global" => serialize($aaaair) ); 
                            $TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid=" . $aaaaiq["languageid"]); 
                        } 
 
                    } 
                } 
 
                logadminaction(get_phrase("theme_manager_language_updated", $checkPhrase["title"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                handlerebuildcaches(false); 
                handleprune(false); 
                $aaaais = true; 
                $type = "phraseList"; 
            } 
            else 
            { 
                return errormessage(get_phrase("database_error")); 
            } 
 
        } 
 
        if( !isset($aaaais) ) 
        { 
            $aaaaam = array( "type" => $type, "languageid" => $languageid, "text" => $text ); 
            $inputbox = inputbox("Phrase[title]", $text, "text"); 
            $formContents = aaaaan(get_phrase("theme_manager_phrase_title"), $inputbox, get_phrase("theme_manager_phrase_title_alt")); 
            $inputbox = textarea("Phrase[text]", (isset($phrase[$text]) ? $phrase[$text] : ""), false, "phraseTextarea"); 
            $formContents .= aaaaan(get_phrase("theme_manager_phrase_text"), $inputbox, get_phrase("theme_manager_phrase_text_alt")); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    if( $type == "phraseList" ) 
    { 
        $page = intval(getvar("page")); 
        addbreadcrumb(array( get_phrase("theme_manager_language_phrases") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;type=phraseList&amp;languageid=" . $languageid )); 
        $checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT title, charset, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid)); 
        if( !$checkPhrase ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        $TSUE["TSUE_Language"]["charset"] = strtolower($checkPhrase["charset"]); 
        $phrase_global = unserialize($checkPhrase["phrase_global"]); 
        if( !isset($_GET["noSort"]) ) 
        { 
            ksort($phrase_global); 
        } 
 
        $aaaait = array(  ); 
        foreach( $phrase_global as $name => $value ) 
        { 
            if( $searchPhrase ) 
            { 
                if( stristr($name, $searchPhrase) !== false || stristr($value, $searchPhrase) !== false ) 
                { 
                    $aaaait[] = array( "name" => trim($name), "value" => trim($value) ); 
                } 
 
            } 
            else 
            { 
                $aaaait[] = array( "name" => trim($name), "value" => trim($value) ); 
            } 
 
        } 
        unset($phrase_global); 
        if( $aaaait ) 
        { 
            $pages = array_chunk($aaaait, $TSUE["array_items_perpage"]); 
            $countPages = count($aaaait); 
            $Pagination = pagination($countPages, "type=" . $type . "&languageid=" . $languageid . (($searchPhrase ? "&searchPhrase=" . html_clean($searchPhrase) : "")), 3, $TSUE["array_items_perpage"], true); 
            unset($aaaait); 
            $tableContents = ""; 
            foreach( $pages[$page] as $Phrase ) 
            { 
                $aaaaiu = aaaaae(array( "type=editPhrase&amp;languageid=" . $languageid . "&amp;text=" . $Phrase["name"] => array( "phrase" => $Phrase["name"] ) )); 
                $aaaaiv = aaaaae(array( "type=deletePhrase&amp;languageid=" . $languageid . "&amp;text=" . $Phrase["name"] . (($searchPhrase ? "&searchPhrase=" . html_clean($searchPhrase) : "")) => array( "phrase" => "[x]", "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
                $tableContents .= aaaaag(array( array( "width" => "100%", "text" => $aaaaiv . " " . $aaaaiu . " <span class=\"smallPassiveText\">" . htmlspecialchars($Phrase["value"]) . "</span>" ) )); 
            } 
        } 
        else 
        { 
            $Pagination["0"] = ""; 
            $Pagination["1"] = ""; 
            $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("theme_manager_search_phrases_no_result") ) )); 
        } 
 
        $aaaahy = aaaaag(array( array( "width" => "15%", "text" => get_phrase("theme_manager_phrase_text"), "align" => "right" ), array( "width" => "85%", "text" => inputbox("searchPhrase", html_clean($searchPhrase), "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) )); 
        $HTML .= aaaabn(createtable(get_phrase("theme_manager_search_phrases"), $aaaahy, 2), NULL, "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&type=" . $type . "&languageid=" . $languageid); 
        $aaaaiw = aaaaae(array( "type=newPhrase&languageid=" . $languageid => array( "phrase" => get_phrase("theme_manager_phrase_new") ) )); 
        $HTML .= "
		<div style=\"max-height: 500px; overflow: auto; zoom: 1;\">
			" . createtable(get_phrase("theme_manager_language_phrases") . ": " . $checkPhrase["title"] . " (" . $aaaaiw . ")", $tableContents, 1, $Pagination["1"]) . "
		</div>"; 
        return $HTML; 
    } 
    else 
    { 
        if( $type == "export" ) 
        { 
            addbreadcrumb(array( get_phrase("theme_manager_language_phrases") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;type=phraseList&amp;languageid=" . $languageid )); 
            $checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid)); 
            if( !$checkPhrase ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $TSUE["TSUE_Language"]["charset"] = strtolower($checkPhrase["charset"]); 
            $fileName = "language-" . $checkPhrase["title"] . "-" . $checkPhrase["content_language"] . ".txt"; 
            $phraseGlobal = unserialize($checkPhrase["phrase_global"]); 
            $phraseList = PHP_EOL; 
            foreach( $phraseGlobal as $aaaain => $aaaaix ) 
            { 
                $phraseList .= "[PHRASE][PHRASE_TITLE]" . $aaaain . "[/PHRASE_TITLE][PHRASE_CONTENT]" . $aaaaix . "[/PHRASE_CONTENT][/PHRASE]" . PHP_EOL . PHP_EOL; 
            } 
            $Contents = "[TITLE]" . $checkPhrase["title"] . "[/TITLE]" . PHP_EOL . "[CONTENT_LANGUAGE]" . $checkPhrase["content_language"] . "[/CONTENT_LANGUAGE]" . PHP_EOL . "[CHARSET]" . $checkPhrase["charset"] . "[/CHARSET]" . PHP_EOL . "[DATE_FORMAT]" . $checkPhrase["date_format"] . "[/DATE_FORMAT]" . PHP_EOL . "[TIME_FORMAT]" . $checkPhrase["time_format"] . "[/TIME_FORMAT]" . PHP_EOL . $phraseList; 
            downloadfile(NULL, $fileName, $Contents); 
            exit(); 
        } 
        else 
        { 
            if( $import ) 
            { 
                checkdemomode(); 
                addbreadcrumb(array( get_phrase("theme_manager_import") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;import=1" )); 
                if( isset($_FILES["language"]) ) 
                { 
                    $Language = $_FILES["language"]; 
                    if( !$Language["size"] || $Language["error"] ) 
                    { 
                        $formErrors[] = get_phrase("theme_manager_import_valid_file"); 
                    } 
                    else 
                    { 
                        if( file_extension($Language["name"]) != "txt" ) 
                        { 
                            $formErrors[] = get_phrase("upload_error6", "txt"); 
                        } 
 
                    } 
 
                    if( isset($formErrors) ) 
                    { 
                        $HTML .= errormessage(implode("<br />", $formErrors)); 
                    } 
                    else 
                    { 
                        $Language = file_get_contents($Language["tmp_name"]); 
                        if( !$Language ) 
                        { 
                            $formErrors[] = get_phrase("theme_manager_import_valid_file"); 
                        } 
                        else 
                        { 
                            preg_match("#\[TITLE\](.*?)\[\/TITLE\]#esi", $Language, $Title); 
                            $Title = (isset($Title["1"]) && $Title["1"] ? $Title["1"] : ""); 
                            preg_match("#\[CONTENT_LANGUAGE\](.*?)\[\/CONTENT_LANGUAGE\]#esi", $Language, $contentLanguage); 
                            $contentLanguage = (isset($contentLanguage["1"]) && $contentLanguage["1"] ? $contentLanguage["1"] : ""); 
                            preg_match("#\[CHARSET\](.*?)\[\/CHARSET\]#esi", $Language, $Charset); 
                            $Charset = (isset($Charset["1"]) && $Charset["1"] ? $Charset["1"] : ""); 
                            preg_match("#\[DATE_FORMAT\](.*?)\[\/DATE_FORMAT\]#esi", $Language, $dateFormat); 
                            $dateFormat = (isset($dateFormat["1"]) && $dateFormat["1"] ? $dateFormat["1"] : ""); 
                            preg_match("#\[TIME_FORMAT\](.*?)\[\/TIME_FORMAT\]#esi", $Language, $timeFormat); 
                            $timeFormat = (isset($timeFormat["1"]) && $timeFormat["1"] ? $timeFormat["1"] : ""); 
                            $phraseGlobal = array(  ); 
                            preg_match_all("#\[PHRASE\](.*?)\[\/PHRASE\]#esi", $Language, $PHRASES); 
                            foreach( $PHRASES["1"] as $PHRASE ) 
                            { 
                                preg_match("#\[PHRASE_TITLE\](.*?)\[\/PHRASE_TITLE\]#esi", $PHRASE, $aaaain); 
                                preg_match("#\[PHRASE_CONTENT\](.*?)\[\/PHRASE_CONTENT\]#esi", $PHRASE, $aaaaix); 
                                $phraseGlobal[$aaaain["1"]] = $aaaaix["1"]; 
                            } 
                            $aaaaiy = $TSUE["TSUE_Database"]->query_result("SELECT phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"])); 
                            $aaaaiy = unserialize($aaaaiy["phrase_global"]); 
                            $aaaaiz = array(  ); 
                            foreach( $aaaaiy as $aaaain => $phraseValue ) 
                            { 
                                if( !isset($phraseGlobal[$aaaain]) ) 
                                { 
                                    $aaaaiz[$aaaain] = $phraseValue; 
                                } 
 
                            } 
                            if( $aaaaiz ) 
                            { 
                                $phraseGlobal = array_merge($phraseGlobal, $aaaaiz); 
                            } 
 
                            $buildQuery = array( "title" => $Title, "content_language" => $contentLanguage, "charset" => $Charset, "date_format" => $dateFormat, "time_format" => $timeFormat, "phrase_global" => serialize($phraseGlobal) ); 
                            $TSUE["TSUE_Database"]->insert("tsue_languages", $buildQuery); 
                            $newLanguageID = $TSUE["TSUE_Database"]->insert_id(); 
                            logadminaction(get_phrase("theme_manager_language_imported", $Title)); 
                            $HTML .= successmessage(get_phrase("message_saved")); 
                            handlerebuildcaches(false); 
                            handleprune(false); 
                            header("Location: ?action=" . $TSUE["action"] . "&do=Languages&edit=" . $newLanguageID); 
                            exit(); 
                        } 
 
                    } 
 
                } 
 
                $aaaacr = aaaacs("language"); 
                $formContents = aaaaan(get_phrase("theme_manager_import_from_uploaded_file"), $aaaacr); 
                $HTML .= aaaabg($formContents); 
                return $HTML; 
            } 
 
            if( $enable_disable ) 
            { 
                $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
                $Query = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
                if( $Query ) 
                { 
                    if( !$TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid != " . $TSUE["TSUE_Database"]->escape($enable_disable) . " AND active = 1") ) 
                    { 
                        return errormessage(get_phrase("you_cant_delete_disable_this_language")); 
                    } 
 
                    $TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
                    logadminaction(get_phrase("theme_manager_language_updated", $Query["title"] . " (" . $enable_disable . ")")); 
                    handlerebuildcaches(false); 
                    handleprune(false); 
                } 
 
            } 
 
            if( $examine ) 
            { 
                $aaaaja = $TSUE["TSUE_Database"]->query_result("SELECT title, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($examine)); 
                if( !$aaaaja ) 
                { 
                    return errormessage(get_phrase("message_content_error")); 
                } 
 
                addbreadcrumb(array( get_phrase("examine_this_language") . " (" . $aaaaja["title"] . ")" => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;examine=" . $examine )); 
                $aaaajb = @unserialize($aaaaja["phrase_global"]); 
                $aaaajc = array(  ); 
                $aaaaiz = array(  ); 
                $orjPhrases = @unserialize(@trim(@file_get_contents("oops"))); 
                if( !$orjPhrases ) 
                { 
                    return errormessage(get_phrase("unable_fetch_orj_language")); 
                } 
 
                foreach( $orjPhrases as $phraseName => $phraseValue ) 
                { 
                    if( !isset($aaaajb[$phraseName]) ) 
                    { 
                        $aaaaiz[$phraseName] = $phraseValue; 
                    } 
 
                } 
                foreach( $aaaajb as $phraseName => $phraseValue ) 
                { 
                    if( !isset($orjPhrases[$phraseName]) ) 
                    { 
                        $aaaajc[$phraseName] = $phraseValue; 
                    } 
 
                } 
                if( empty($aaaajc) && empty($aaaaiz) ) 
                { 
                    return successmessage(get_phrase("language_x_is_valid", $aaaaja["title"])); 
                } 
 
                $Output = ""; 
                if( $fixMissing ) 
                { 
                    foreach( $aaaaiz as $phraseName => $phraseValue ) 
                    { 
                        $aaaajb[$phraseName] = $phraseValue; 
                    } 
                    $buildQuery = array( "phrase_global" => serialize($aaaajb) ); 
                    $TSUE["TSUE_Database"]->update("tsue_languages", $buildQuery, "languageid = " . $TSUE["TSUE_Database"]->escape($examine)); 
                    $Status = get_phrase("missing_phrases_for_x_has_been_fixed", $aaaaja["title"]); 
                    logadminaction($Status); 
                    handlerebuildcaches(false); 
                    handleprune(false); 
                    return successmessage($Status); 
                } 
                else 
                { 
                    if( !empty($aaaajc) ) 
                    { 
                        $tableContents = ""; 
                        foreach( $aaaajc as $phraseName => $phraseValue ) 
                        { 
                            $tableContents .= aaaaag(array( array( "width" => "30%", "text" => $phraseName ), array( "width" => "70%", "text" => htmlspecialchars($phraseValue) ) )); 
                        } 
                        $Output .= createtable(get_phrase("following_phrases_are_outdated"), $tableContents, 2); 
                    } 
 
                    if( !empty($aaaaiz) ) 
                    { 
                        $tableContents = ""; 
                        foreach( $aaaaiz as $phraseName => $phraseValue ) 
                        { 
                            $tableContents .= aaaaag(array( array( "width" => "30%", "text" => $phraseName ), array( "width" => "70%", "text" => htmlspecialchars($phraseValue) ) )); 
                        } 
                        if( $Output ) 
                        { 
                            $Output .= "<br />"; 
                        } 
 
                        $aaaajd = aaaaae(array( "examine=" . $examine . "&amp;fixMissing=1" => array( "phrase" => get_phrase("fix_missing_phrases") ) )); 
                        $Output .= createtable(get_phrase("following_phrases_are_missing"), $tableContents, 2, $aaaajd); 
                    } 
 
                    return $Output; 
                } 
 
            } 
            else 
            { 
                $Languages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_languages ORDER BY active DESC, title ASC"); 
                if( !$TSUE["TSUE_Database"]->num_rows($Languages) ) 
                { 
                    $tableContents = errormessage(get_phrase("theme_manager_no_language")); 
                } 
                else 
                { 
                    $tableContents = ""; 
                    while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) ) 
                    { 
                        $linkClass = (!$Language["active"] ? "linkDisabled" : ""); 
                        $aaaaje = aaaaae(array( "edit=" . $Language["languageid"] => array( "phrase" => $Language["title"], "class" => $linkClass ) )); 
                        $aaaajf = aaaaae(array( "delete=" . $Language["languageid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
                        $aaaajg = aaaaae(array( "type=phraseList&amp;languageid=" . $Language["languageid"] => array( "phrase" => getimage("buttons/phrases.png", get_phrase("theme_manager_language_phrases")) ) )); 
                        $aaaajh = aaaaae(array( "type=export&amp;languageid=" . $Language["languageid"] => array( "phrase" => getimage("buttons/save.png", get_phrase("button_export")), "target" => "_blank" ) )); 
                        $aaaaji = aaaaae(array( "examine=" . $Language["languageid"] => array( "phrase" => getimage("buttons/examine.png", get_phrase("examine_this_language")) ) )); 
                        if( $Language["active"] ) 
                        { 
                            $aaaajj = aaaaae(array( "enable_disable=" . $Language["languageid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
                        } 
                        else 
                        { 
                            $aaaajj = aaaaae(array( "enable_disable=" . $Language["languageid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
                        } 
 
                        $tableContents .= aaaaag(array( array( "width" => "70%", "text" => aaaajk($Language["languageid"]) . " " . $aaaaje . "<span class=\"smallPassiveText\">" . $Language["charset"] . "</span>" ), array( "width" => "30%", "align" => "right", "text" => $aaaajg . $aaaaji . $aaaajh . $aaaajj . $aaaajf ) )); 
                    } 
                } 
 
                $aaaajl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("theme_manager_create_new_language") ) )); 
                $aaaajm = aaaaae(array( "import=1" => array( "phrase" => get_phrase("theme_manager_import") ) )); 
                $HTML .= createtable(get_phrase("theme_manager_themes_alt"), $tableContents, 2, $aaaajl . " - " . $aaaajm); 
                return $HTML; 
            } 
 
        } 
 
    } 
 
} 
 
function handleuploadtorrent() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $createNewField = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_field") ) )); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $enable_disable = intval(getvar("enable_disable")); 
    $htmlCode = intval(getvar("htmlCode")); 
    $aaaajn = array( 1 => get_phrase("torrent_details"), 2 => get_phrase("torrent_options"), 3 => get_phrase("torrent_file"), 4 => get_phrase("torrent_finish_upload") ); 
    $aaaajo = array( 1 => "Input Text", 2 => "Textarea", 3 => "Selectbox", 4 => "Input Checkbox(es)", 5 => "Input Radio Button(s)" ); 
    if( $htmlCode ) 
    { 
        $Field = $TSUE["TSUE_Database"]->query_result("SELECT title,name FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($htmlCode)); 
        if( !$Field ) 
        { 
            return errormessage(get_phrase("message_content_error")); 
        } 
 
        exit( "<div style=\"font-weight: bold; font-size: 14px;\">" . get_phrase("generate_html_code") . ": " . $Field["title"] . "</div>
		<div style=\"border-bottom: 1px solid #ddd; font-size: 12px; padding-bottom: 2px; margin-bottom: 2px;\">" . get_phrase("generated_html_code_tip") . "</div>
		" . highlight_string("{\$Torrent['" . $Field["name"] . "']}", true) ); 
    } 
 
    if( $new || $edit ) 
    { 
        checkdemomode(); 
        $Field = array( "area" => 1, "title" => "", "name" => "", "type" => 1, "default_value" => "", "tip_phrase" => "", "active" => 1, "display_order" => 0 ); 
        $aaaaam = ""; 
        if( $edit ) 
        { 
            $Field = $TSUE["TSUE_Database"]->query_result("SELECT field_id, area, title, name, type, default_value, tip_phrase, active, display_order FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Field ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
            $aaaajp = $Field["name"]; 
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Field["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        } 
        else 
        { 
            addbreadcrumb(array( get_phrase("create_new_field") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
        } 
 
        if( isset($_POST["Field"]) ) 
        { 
            $Field = $_POST["Field"]; 
            if( !$Field["title"] ) 
            { 
                $formErrors[] = get_phrase("please_enter_a_valid_title"); 
            } 
 
            if( !$Field["name"] ) 
            { 
                $formErrors[] = get_phrase("you_must_enter_unique_field_name"); 
            } 
            else 
            { 
                if( !preg_match("#^[a-zA-Z0-9\_]+\$#", $Field["name"]) ) 
                { 
                    $formErrors[] = get_phrase("invalid_field_name"); 
                } 
                else 
                { 
                    if( !$edit && $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $Field["name"]) || $edit && $aaaajp != $Field["name"] && $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $Field["name"]) ) 
                    { 
                        $formErrors[] = get_phrase("you_must_enter_unique_field_name"); 
                    } 
                    else 
                    { 
                        $checkFieldName = $TSUE["TSUE_Database"]->query_result("SELECT field_id FROM tsue_torrents_upload_extra_fields WHERE name = " . $TSUE["TSUE_Database"]->escape($Field["name"]) . (($edit ? " AND field_id != " . $TSUE["TSUE_Database"]->escape($edit) : ""))); 
                        if( $checkFieldName ) 
                        { 
                            $formErrors[] = get_phrase("you_must_enter_unique_field_name"); 
                        } 
 
                    } 
 
                } 
 
            } 
 
            if( !isset($aaaajn[$Field["area"]]) ) 
            { 
                $formErrors[] = get_phrase("field_area_error"); 
            } 
 
            if( !isset($aaaajo[$Field["type"]]) ) 
            { 
                $formErrors[] = get_phrase("field_type_error"); 
            } 
 
            if( in_array($Field["type"], array( 3, 4, 5 )) && !$Field["default_value"] ) 
            { 
                $formErrors[] = get_phrase("field_default_value_error"); 
            } 
 
            if( $Field["tip_phrase"] && !$TSUE["TSUE_Language"]["phrase"][$Field["tip_phrase"]] ) 
            { 
                $formErrors[] = get_phrase("the_specific_phrase_x_does_not_exists", $Field["tip_phrase"]); 
            } 
 
            if( isset($formErrors) ) 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
            else 
            { 
                $buildQuery = array( "area" => $Field["area"], "title" => $Field["title"], "name" => strtolower($Field["name"]), "type" => $Field["type"], "default_value" => $Field["default_value"], "tip_phrase" => $Field["tip_phrase"], "active" => $Field["active"], "display_order" => $Field["display_order"] ); 
                if( $edit ) 
                { 
                    if( $aaaajp != $Field["name"] ) 
                    { 
                        if( $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $aaaajp) ) 
                        { 
                            $TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` DROP `" . $aaaajp . "`"); 
                        } 
 
                        $TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` ADD `" . $Field["name"] . "` MEDIUMBLOB"); 
                    } 
 
                    $Phrase = get_phrase("new_field_x_updated", $Field["title"]); 
                    $TSUE["TSUE_Database"]->update("tsue_torrents_upload_extra_fields", $buildQuery, "field_id=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` ADD `" . $Field["name"] . "` MEDIUMBLOB"); 
                    $Phrase = get_phrase("new_field_x_updated", $Field["title"]); 
                    $TSUE["TSUE_Database"]->insert("tsue_torrents_upload_extra_fields", $buildQuery); 
                } 
 
                $HTML .= successmessage($Phrase); 
                logadminaction($Phrase); 
                handlerebuildcaches(false); 
                handleprune(false); 
                $uploadDone = true; 
            } 
 
        } 
 
        if( !isset($uploadDone) ) 
        { 
            $radioButtons = radioyesno("Field[active]", $Field["active"]); 
            $formContents = aaaaan(get_phrase("field_is_active"), $radioButtons); 
            $inputbox = inputbox("Field[title]", $Field["title"]); 
            $formContents .= aaaaan(get_phrase("field_title"), $inputbox); 
            $inputbox = inputbox("Field[name]", $Field["name"]); 
            $formContents .= aaaaan(get_phrase("field_name"), $inputbox); 
            $selectbox = selectbox("Field[area]", $Field["area"], $aaaajn); 
            $formContents .= aaaaan(get_phrase("field_area"), $selectbox); 
            $selectbox = selectbox("Field[type]", $Field["type"], $aaaajo); 
            $formContents .= aaaaan(get_phrase("field_type"), $selectbox); 
            $textarea = textarea("Field[default_value]", $Field["default_value"], false, "phraseTextarea textareaHeightNormal"); 
            $formContents .= aaaaan(get_phrase("field_default_values"), $textarea, get_phrase("field_default_values_alt")); 
            $inputbox = inputbox("Field[tip_phrase]", $Field["tip_phrase"]); 
            $formContents .= aaaaan(get_phrase("field_tip_phrase"), $inputbox); 
            $inputbox = inputbox("Field[display_order]", $Field["display_order"], "text textVeryTiny"); 
            $formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    if( $enable_disable ) 
    { 
        checkdemomode(); 
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
        $Field = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
        if( $Field ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_torrents_upload_extra_fields", $BuildQuery, "field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            $Phrase = get_phrase("new_field_x_updated", $Field["title"] . " (" . $enable_disable . ")"); 
            logadminaction($Phrase); 
            handlerebuildcaches(false); 
            handleprune(false); 
            $HTML .= successmessage($Phrase); 
        } 
 
    } 
 
    if( $delete ) 
    { 
        checkdemomode(); 
        $Field = $TSUE["TSUE_Database"]->query_result("SELECT title, name FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Field ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_torrents_upload_extra_fields", "field_id = " . $TSUE["TSUE_Database"]->escape($delete)); 
            if( $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $Field["name"]) ) 
            { 
                $TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` DROP `" . $Field["name"] . "`"); 
            } 
 
            $Phrase = get_phrase("field_x_has_been_deleted", $Field["title"] . " (" . $delete . ")"); 
            logadminaction($Phrase); 
            handlerebuildcaches(false); 
            handleprune(false); 
            $HTML .= successmessage($Phrase); 
        } 
 
    } 
 
    if( !$tableContents ) 
    { 
        if( isset($_POST["sort"]) ) 
        { 
            foreach( $_POST["sort"] as $field_id => $display_order ) 
            { 
                $field_id = intval($field_id); 
                $display_order = intval($display_order); 
                $TSUE["TSUE_Database"]->update("tsue_torrents_upload_extra_fields", array( "display_order" => $display_order ), "field_id=" . $TSUE["TSUE_Database"]->escape($field_id)); 
            } 
            $HTML .= successmessage(get_phrase("field_display_options_updated")); 
            logadminaction(get_phrase("field_display_options_updated")); 
            handleprune(false); 
        } 
 
        $Fields = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_upload_extra_fields ORDER BY active DESC, display_order ASC"); 
        if( !$TSUE["TSUE_Database"]->num_rows($Fields) ) 
        { 
            $tableContents = errormessage(get_phrase("message_nothing_found")); 
        } 
        else 
        { 
            $tableContents = ""; 
            while( $Field = $TSUE["TSUE_Database"]->fetch_assoc($Fields) ) 
            { 
                $linkClass = (!$Field["active"] ? "linkDisabled" : ""); 
                $aaaajq = aaaaae(array( "edit=" . $Field["field_id"] => array( "phrase" => $Field["title"], "class" => $linkClass ) )); 
                $aaaajr = aaaaae(array( "delete=" . $Field["field_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
                if( $Field["active"] ) 
                { 
                    $aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
                } 
                else 
                { 
                    $aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
                } 
 
                $aaaajt = aaaaae(array( "htmlCode=" . $Field["field_id"] => array( "phrase" => getimage("buttons/generateHTMLcode.png", get_phrase("generate_html_code")), "rel" => $Field["field_id"], "class" => "generateHTMLCode" ) )); 
                $tableContents .= aaaaag(array( array( "width" => "75%", "text" => $aaaajq . " <span class=\"smallPassiveText\">" . $aaaajn[$Field["area"]] . " - " . $aaaajo[$Field["type"]] . "</span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Field["field_id"] . "]", $Field["display_order"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "15%", "text" => $aaaajt . $aaaajs . $aaaajr, "align" => "center" ) )); 
            } 
            $tableContents = "
			<script type=\"text/javascript\">

				\$(document).on(\"click\", \".generateHTMLCode\", function(e)
				{
					e.preventDefault();

					var \$field_id = parseInt(\$(this).attr(\"rel\"));
					\$.ajax
					({
						method: \"POST\",
						data: \"isAjax=1&action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&htmlCode=\"+\$field_id,
						success: function(response)
						{
							TSUEAdmin.dialog(response, true, true);
						}
					});

					return false;
				});
			</script>" . $tableContents; 
        } 
 
    } 
 
    $tableContents .= aaaaag(array( array( "width" => "70%", "text" => NULL ), array( "width" => "30%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) )); 
    $aaaagc = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_genre") ) )); 
    $HTML .= aaaabn(createtable(get_phrase("navigation_upload_torrent") . " | " . get_phrase("add_extra_fields"), $tableContents, 3, $createNewField)); 
    return $HTML; 
} 
 
function handleautodescription() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $createNewField = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_field") ) )); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $enable_disable = intval(getvar("enable_disable")); 
    $aaaaju = "(" . get_phrase("auto_description") . ") "; 
    $aaaajn = array( 1 => get_phrase("navigation_upload_torrent"), 2 => get_phrase("messages_new_message"), 3 => get_phrase("forums_post_new_thread") ); 
    if( $new || $edit ) 
    { 
        checkdemomode(); 
        $Field = array( "area" => 1, "title" => "", "default_value" => "", "active" => 1, "display_order" => 0, "viewpermissions" => array(  ) ); 
        $aaaaam = ""; 
        if( $edit ) 
        { 
            $Field = $TSUE["TSUE_Database"]->query_result("SELECT field_id, area, title, default_value, active, display_order, viewpermissions FROM tsue_auto_description WHERE field_id = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Field ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
            if( !$Field["viewpermissions"] ) 
            { 
                $Field["viewpermissions"] = array(  ); 
            } 
            else 
            { 
                $Field["viewpermissions"] = unserialize($Field["viewpermissions"]); 
            } 
 
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Field["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        } 
        else 
        { 
            addbreadcrumb(array( get_phrase("create_new_field") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
        } 
 
        if( isset($_POST["Field"]) ) 
        { 
            $Field = $_POST["Field"]; 
            if( !$Field["title"] ) 
            { 
                $formErrors[] = get_phrase("please_enter_a_valid_title"); 
            } 
 
            if( !isset($aaaajn[$Field["area"]]) ) 
            { 
                $formErrors[] = get_phrase("field_area_error"); 
            } 
 
            if( !$Field["default_value"] ) 
            { 
                $formErrors[] = get_phrase("field_default_value_error"); 
            } 
 
            if( isset($formErrors) ) 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
            else 
            { 
                if( !isset($Field["viewpermissions"]) || !$Field["viewpermissions"] ) 
                { 
                    $Field["viewpermissions"] = array(  ); 
                } 
 
                $buildQuery = array( "area" => $Field["area"], "title" => $Field["title"], "default_value" => $Field["default_value"], "active" => $Field["active"], "display_order" => $Field["display_order"], "viewpermissions" => ($Field["viewpermissions"] ? serialize($Field["viewpermissions"]) : "") ); 
                if( $edit ) 
                { 
                    $Phrase = get_phrase("new_field_x_updated", $Field["title"]); 
                    $TSUE["TSUE_Database"]->update("tsue_auto_description", $buildQuery, "field_id=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $Phrase = get_phrase("new_field_x_updated", $Field["title"]); 
                    $TSUE["TSUE_Database"]->insert("tsue_auto_description", $buildQuery); 
                } 
 
                $HTML .= successmessage($Phrase); 
                logadminaction($aaaaju . $Phrase); 
                handlerebuildcaches(false); 
                handleprune(false); 
                $uploadDone = true; 
            } 
 
        } 
 
        if( !isset($uploadDone) ) 
        { 
            $radioButtons = radioyesno("Field[active]", $Field["active"]); 
            $formContents = aaaaan(get_phrase("field_is_active"), $radioButtons); 
            $inputbox = inputbox("Field[title]", $Field["title"]); 
            $formContents .= aaaaan(get_phrase("field_title"), $inputbox); 
            $selectbox = selectbox("Field[area]", $Field["area"], $aaaajn); 
            $formContents .= aaaaan(get_phrase("field_area"), $selectbox); 
            $textarea = textarea("Field[default_value]", $Field["default_value"], false, "phraseTextarea textareaHeightNormal"); 
            $formContents .= aaaaan(get_phrase("field_default_values"), $textarea, get_phrase("field_default_values_alt")); 
            $inputbox = inputbox("Field[display_order]", $Field["display_order"], "text textVeryTiny"); 
            $formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox); 
            $Usergroups = aaaaaw("Field[viewpermissions][]", $Field["viewpermissions"]); 
            $formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all")); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    if( $enable_disable ) 
    { 
        checkdemomode(); 
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
        $Field = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_description WHERE field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
        if( $Field ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_auto_description", $BuildQuery, "field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            $Phrase = get_phrase("new_field_x_updated", $Field["title"] . " (" . $enable_disable . ")"); 
            logadminaction($aaaaju . $Phrase); 
            handlerebuildcaches(false); 
            handleprune(false); 
            $HTML .= successmessage($Phrase); 
        } 
 
    } 
 
    if( $delete ) 
    { 
        checkdemomode(); 
        $Field = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_description WHERE field_id = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Field ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_auto_description", "field_id = " . $TSUE["TSUE_Database"]->escape($delete)); 
            $Phrase = get_phrase("field_x_has_been_deleted", $Field["title"] . " (" . $delete . ")"); 
            logadminaction($aaaaju . $Phrase); 
            handlerebuildcaches(false); 
            handleprune(false); 
            $HTML .= successmessage($Phrase); 
        } 
 
    } 
 
    if( !$tableContents ) 
    { 
        if( isset($_POST["sort"]) ) 
        { 
            foreach( $_POST["sort"] as $field_id => $display_order ) 
            { 
                $field_id = intval($field_id); 
                $display_order = intval($display_order); 
                $TSUE["TSUE_Database"]->update("tsue_auto_description", array( "display_order" => $display_order ), "field_id=" . $TSUE["TSUE_Database"]->escape($field_id)); 
            } 
            $HTML .= successmessage(get_phrase("field_display_options_updated")); 
            logadminaction($aaaaju . get_phrase("field_display_options_updated")); 
            handleprune(false); 
        } 
 
        $Fields = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_auto_description ORDER BY active DESC, display_order ASC"); 
        if( !$TSUE["TSUE_Database"]->num_rows($Fields) ) 
        { 
            $tableContents = errormessage(get_phrase("message_nothing_found")); 
        } 
        else 
        { 
            $tableContents = ""; 
            while( $Field = $TSUE["TSUE_Database"]->fetch_assoc($Fields) ) 
            { 
                $linkClass = (!$Field["active"] ? "linkDisabled" : ""); 
                $aaaajq = aaaaae(array( "edit=" . $Field["field_id"] => array( "phrase" => $Field["title"], "class" => $linkClass ) )); 
                $aaaajr = aaaaae(array( "delete=" . $Field["field_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
                if( $Field["active"] ) 
                { 
                    $aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
                } 
                else 
                { 
                    $aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
                } 
 
                $tableContents .= aaaaag(array( array( "width" => "75%", "text" => $aaaajq . " <span class=\"smallPassiveText\">" . $aaaajn[$Field["area"]] . "</span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Field["field_id"] . "]", $Field["display_order"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "15%", "text" => $aaaajs . $aaaajr, "align" => "center" ) )); 
            } 
        } 
 
    } 
 
    $tableContents .= aaaaag(array( array( "width" => "70%", "text" => NULL ), array( "width" => "30%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) )); 
    $aaaagc = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_genre") ) )); 
    $HTML .= aaaabn(createtable(get_phrase("auto_description"), $tableContents, 3, $createNewField)); 
    return $HTML; 
} 
 
function aaaaaj($Query = NULL) 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $aaaajv = aaaaae(array( "new=1" => array( "phrase" => get_phrase("members_create_new") ) )); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    if( $delete ) 
    { 
        $Member = $TSUE["TSUE_Database"]->query_result("SELECT membername FROM tsue_members WHERE memberid = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Member ) 
        { 
            deletemember($delete); 
            logadminaction(get_phrase("members_member_deleted", $Member["membername"] . " (" . $delete . ")")); 
        } 
 
    } 
 
    if( $edit || $new ) 
    { 
        $Member = array( "membergroupid" => 2, "membername" => "", "password" => "", "passkey" => "", "email" => "", "themeid" => 1, "languageid" => 1, "timezone" => 1, "gender" => "", "visible" => 1, "accountParked" => 0 ); 
        $memberProfile = array( "date_of_birth" => "", "signature" => "", "country" => "", "custom_title" => "", "uploaded" => 0, "downloaded" => 0, "total_posts" => 0, "invites_left" => 0, "points" => 0, "total_warns" => 0, "hitRuns" => 0, "torrent_pass" => "", "torrentStyle" => 1, "defaultTorrentCategories" => "" ); 
        $memberPrivacy = array( "allow_view_profile" => "members", "receive_admin_email" => 1, "receive_pm_email" => 1, "show_your_age" => 1 ); 
        $aaaajw = ""; 
        $defaultEmail = ""; 
        if( $edit ) 
        { 
            $Member = $TSUE["TSUE_Database"]->query_result("SELECT m.membergroupid, m.membername, m.passkey, m.email, m.themeid, m.languageid, m.timezone, m.gender, m.visible, m.accountParked, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_member_bans b USING(memberid) WHERE m.memberid = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Member ) 
            { 
                return errormessage(get_phrase("member_not_found")); 
            } 
 
            $aaaajw = $Member["membername"]; 
            $defaultEmail = $Member["email"]; 
            $memberProfile = $TSUE["TSUE_Database"]->query_result("SELECT date_of_birth, signature, country, custom_title, uploaded, downloaded, total_posts, invites_left, points, total_warns, hitRuns, torrent_pass, torrentStyle, defaultTorrentCategories FROM tsue_member_profile WHERE memberid = " . $TSUE["TSUE_Database"]->escape($edit)); 
            $memberPrivacy = $TSUE["TSUE_Database"]->query_result("SELECT allow_view_profile, receive_admin_email, receive_pm_email, show_your_age FROM tsue_member_privacy WHERE memberid = " . $TSUE["TSUE_Database"]->escape($edit)); 
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Member["membername"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        } 
        else 
        { 
            addbreadcrumb(array( get_phrase("members_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
        } 
 
        if( isset($_POST["Member"]) ) 
        { 
            $Member = $_POST["Member"]; 
            $memberProfile = $_POST["memberProfile"]; 
            $memberPrivacy = $_POST["memberPrivacy"]; 
            if( !isset($_POST["Member"]["visible"]) ) 
            { 
                $Member["visible"] = 0; 
            } 
 
            if( !isset($_POST["Member"]["accountParked"]) ) 
            { 
                $Member["accountParked"] = 0; 
            } 
 
            if( !isset($_POST["memberPrivacy"]["receive_admin_email"]) ) 
            { 
                $memberPrivacy["receive_admin_email"] = 0; 
            } 
 
            if( !isset($_POST["memberPrivacy"]["receive_pm_email"]) ) 
            { 
                $memberPrivacy["receive_pm_email"] = 0; 
            } 
 
            if( !isset($_POST["memberPrivacy"]["show_your_age"]) ) 
            { 
                $memberPrivacy["show_your_age"] = 0; 
            } 
 
            if( !isset($_POST["memberProfile"]["defaultTorrentCategories"]) || empty($_POST["memberProfile"]["defaultTorrentCategories"]) ) 
            { 
                $memberProfile["defaultTorrentCategories"] = ""; 
            } 
            else 
            { 
                $aaaajx = array(  ); 
                foreach( $_POST["memberProfile"]["defaultTorrentCategories"] as $dtcid ) 
                { 
                    $dtcid = intval($dtcid); 
                    if( $dtcid ) 
                    { 
                        $aaaajx[] = $dtcid; 
                    } 
 
                } 
                $memberProfile["defaultTorrentCategories"] = implode(",", $aaaajx); 
                unset($aaaajx); 
            } 
 
            if( !$Member["membername"] || !is_valid_string($Member["membername"]) ) 
            { 
                $formErrors[] = get_phrase("invalid_membername"); 
            } 
            else 
            { 
                if( strlen($Member["membername"]) < $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_min_char"] ) 
                { 
                    $formErrors[] = get_phrase("invalid_membername_min_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_min_char"]); 
                } 
                else 
                { 
                    if( $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_max_char"] < strlen($Member["membername"]) ) 
                    { 
                        $formErrors[] = get_phrase("invalid_membername_max_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_max_char"]); 
                    } 
                    else 
                    { 
                        $checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($Member["membername"])); 
                        if( $checkMember && $Member["membername"] != $aaaajw ) 
                        { 
                            $formErrors[] = get_phrase("invalid_membername_in_use"); 
                        } 
                        else 
                        { 
                            if( $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_illegal_member_names"] ) 
                            { 
                                $member_name_illegal_member_names = preg_split("/\r?\n/", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_illegal_member_names"], -1, PREG_SPLIT_NO_EMPTY); 
                                if( $member_name_illegal_member_names ) 
                                { 
                                    foreach( $member_name_illegal_member_names as $name ) 
                                    { 
                                        $name = trim($name); 
                                        if( $name === "" ) 
                                        { 
                                            continue; 
                                        } 
 
                                        if( stripos($Member["membername"], $name) !== false && $Member["membername"] != $aaaajw ) 
                                        { 
                                            $formErrors[] = get_phrase("invalid_membername_in_use"); 
                                        } 
 
                                    } 
                                } 
 
                            } 
 
                        } 
 
                    } 
 
                } 
 
            } 
 
            if( !is_valid_email($Member["email"]) ) 
            { 
                $formErrors[] = get_phrase("invalid_email"); 
            } 
            else 
            { 
                $checkEmail = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE email = " . $TSUE["TSUE_Database"]->escape($Member["email"])); 
                if( $checkEmail && $Member["email"] != $defaultEmail ) 
                { 
                    $formErrors[] = get_phrase("invalid_email_in_use"); 
                } 
 
            } 
 
            if( !$Member["passkey"] ) 
            { 
                $Member["passkey"] = generatepasskey(); 
            } 
 
            if( $Member["password"] ) 
            { 
                if( strlen($Member["password"]) < $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"] ) 
                { 
                    $formErrors[] = get_phrase("invalid_memberpassword_min_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"]); 
                } 
                else 
                { 
                    if( $Member["password"] == $Member["membername"] ) 
                    { 
                        $formErrors[] = get_phrase("invalid_memberpassword_same_as_name"); 
                    } 
 
                } 
 
            } 
            else 
            { 
                if( $new ) 
                { 
                    $formErrors[] = get_phrase("invalid_memberpassword_min_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"]); 
                } 
 
            } 
 
            if( !$memberProfile["date_of_birth"] || substr_count($memberProfile["date_of_birth"], "/") != 2 || 10 < strlen($memberProfile["date_of_birth"]) ) 
            { 
                $formErrors[] = get_phrase("invalid_date_of_birth"); 
            } 
            else 
            { 
                list($day, $month, $year) = @tsue_explode("/", $memberProfile["date_of_birth"]); 
                if( !checkdate($month, $day, $year) || date("Y") <= $year ) 
                { 
                    $formErrors[] = get_phrase("invalid_date_of_birth"); 
                } 
 
            } 
 
            if( !isset($formErrors) ) 
            { 
                if( empty($Member["password"]) ) 
                { 
                    unset($Member["password"]); 
                } 
                else 
                { 
                    $Member["password"] = md5($Member["password"]); 
                } 
 
                $memberProfile["custom_title"] = html_declean($memberProfile["custom_title"]); 
                $memberProfile["torrent_pass"] = substr($Member["passkey"], 0, 32); 
                if( $edit ) 
                { 
                    $TSUE["TSUE_Database"]->update("tsue_members", $Member, "memberid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                    $TSUE["TSUE_Database"]->update("tsue_member_profile", $memberProfile, "memberid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                    $TSUE["TSUE_Database"]->update("tsue_member_privacy", $memberPrivacy, "memberid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                    $Member["memberid"] = $edit; 
                } 
                else 
                { 
                    $Member["password_date"] = TIMENOW; 
                    $Member["joindate"] = TIMENOW; 
                    $TSUE["TSUE_Database"]->insert("tsue_members", $Member); 
                    $Member["memberid"] = $TSUE["TSUE_Database"]->insert_id(); 
                    $memberProfile["memberid"] = $Member["memberid"]; 
                    $TSUE["TSUE_Database"]->insert("tsue_member_profile", $memberProfile); 
                    $memberPrivacy["memberid"] = $Member["memberid"]; 
                    $TSUE["TSUE_Database"]->insert("tsue_member_privacy", $memberPrivacy); 
                } 
 
                $aaaajy = get_phrase("members_member_updated", $Member["membername"] . " (" . $Member["memberid"] . ")"); 
                logadminaction($aaaajy); 
                $memberQuery = array_merge($Member, $memberProfile, $memberPrivacy); 
                logadminaction($aaaajy . "~~~" . serialize($memberQuery), 3); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $table1 = " 
			<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">
				<tr>
					<td style=\"text-align: right;\">" . get_phrase("your_name") . "</td>
					<td>" . inputbox("Member[membername]", $Member["membername"]) . "  " . ((isset($Member["isBanned"]) && $Member["isBanned"] ? "<span class=\"smallPassiveText\">" . get_phrase("banned") . "</span>" : "")) . "</td>
				</tr>
				<tr>
					<td style=\"text-align: right;\">" . get_phrase("your_email") . "</td>
					<td>" . inputbox("Member[email]", $Member["email"]) . "</td>
				</tr>
				<tr>
					<td style=\"text-align: right;\">" . get_phrase("your_password") . "</td>
					<td>" . inputbox("Member[password]", NULL) . "</td>
				</tr>
				 <tr>
					<td style=\"text-align: right;\">" . get_phrase("your_passkey") . "</td>
					<td>" . inputbox("Member[passkey]", $Member["passkey"], "text" . (($edit ? " textanormal" : "")), NULL, false, false, ($edit ? "<a href=\"#\" id=\"reset_passkey\" data=\"" . $edit . "\">[" . get_phrase("reset_passkey") . "]</a>" : "")) . "</td>
				</tr>
				 <tr>
					<td style=\"text-align: right;\">" . get_phrase("your_membergroup") . "</td>
					<td>" . aaaabf("Member[membergroupid]", $Member["membergroupid"]) . "</td>
				</tr>
				<tr>
					<td style=\"text-align: right;\">" . get_phrase("memberinfo_custom_title") . "</td>
					<td>" . inputbox("memberProfile[custom_title]", strip_tags($memberProfile["custom_title"])) . "</td>
				</tr>
			</table>
			<script type=\"text/javascript\">
				\$(\"#reset_passkey\").click(function(e)
				{
					e.preventDefault();

					var \$this = \$(this), \$memberid = parseInt(\$this.attr(\"data\"));

					if(\$memberid)
					{
						buildQuery = \"isAjax=1&action=reset_passkey&memberid=\"+\$memberid;
						\$.ajax
						({
							type: \"POST\",
							data: buildQuery,
							success: function(response)
							{
								if(response.length == 40)
								{
									\$('<div class=\"success\">" . get_phrase("reset_passkey_message", $Member["membername"]) . "</div>').insertAfter(\"#reset_passkey\");
									\$this.remove();
									\$('input[name=\"Member[passkey]\"]').val(response);
								}
							}
						});
					}

					return false;
				});
			</script>"; 
            $table2 = "
			<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">
				 <tr>
					<td style=\"text-align: right;\">" . get_phrase("stats_uploaded") . "</td>
					<td>" . inputbox("memberProfile[uploaded]", $memberProfile["uploaded"], "text texthalf", friendly_size($memberProfile["uploaded"])) . "</td>
				</tr>
				<tr>
					<td style=\"text-align: right;\">" . get_phrase("stats_downloaded") . "</td>
					<td>" . inputbox("memberProfile[downloaded]", $memberProfile["downloaded"], "text texthalf", friendly_size($memberProfile["downloaded"])) . "</td>
				</tr>
				 <tr>
					<td style=\"text-align: right;\">" . get_phrase("stats_total_posts") . "</td>
					<td>" . inputbox("memberProfile[total_posts]", $memberProfile["total_posts"], "text texthalf") . "</td>
				</tr>
				<tr>
					<td style=\"text-align: right;\">" . get_phrase("stats_total_invites") . "</td>
					<td>" . inputbox("memberProfile[invites_left]", $memberProfile["invites_left"], "text texthalf") . "</td>
				</tr>
				<tr>
					<td style=\"text-align: right;\">" . get_phrase("stats_points") . "</td>
					<td>" . inputbox("memberProfile[points]", $memberProfile["points"], "text texthalf") . "</td>
				</tr>
			</table>"; 
            $table3 = "
			<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">
				<tr>
					<td style=\"text-align: right;\">" . get_phrase("memberinfo_gender") . "</td>
					<td>
						<select name=\"Member[gender]\" class=\"select\">
							<option value=\"m\"" . (($Member["gender"] == "m" ? " selected=\"selected\"" : "")) . ">" . get_phrase("memberinfo_gender_male") . "</option>
							<option value=\"f\"" . (($Member["gender"] == "f" ? " selected=\"selected\"" : "")) . ">" . get_phrase("memberinfo_gender_female") . "</option>
							<option value=\"\"" . (($Member["gender"] == "" ? " selected=\"selected\"" : "")) . ">" . get_phrase("memberinfo_gender_unspecified") . "</option>
						</select>
					</td>
				</tr>
				 <tr>
					<td style=\"text-align: right;\">" . get_phrase("memberinfo_date_of_birth") . "</td>
					<td>" . inputbox("memberProfile[date_of_birth]", $memberProfile["date_of_birth"], "text", NULL, true) . "</td>
				</tr>
				<tr>
					<td style=\"text-align: right; vertical-align: top;\">" . get_phrase("memberinfo_country") . "</td>
					<td>" . inputbox("memberProfile[country]", $memberProfile["country"]) . " " . (($memberProfile["country"] ? getcountryflag($memberProfile["country"]) : "")) . "</td>
				</tr>
			</table>"; 
            $torrentCategoriesInbutboxes = torrentcategoriesinbutboxes("memberProfile[defaultTorrentCategories][]", "checkbox", explode(",", $memberProfile["defaultTorrentCategories"])); 
            $table4 = "
			<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">
				<tr>
					<td style=\"text-align: right; width: 150px;\">" . get_phrase("membercp_style") . "</td>
					<td style=\"vertical-align: top;\">" . selectbox("Member[themeid]", $Member["themeid"], aaaaap()) . "</td>
				</tr>
				<tr>
					<td style=\"text-align: right; width: 150px;\">" . get_phrase("torrent_listing") . "</td>
					<td style=\"vertical-align: top;\">" . selectbox("memberProfile[torrentStyle]", $memberProfile["torrentStyle"], array( 1 => get_phrase("modern"), 2 => get_phrase("classic") )) . "</td>
				</tr>
				 <tr>
					<td style=\"text-align: right; width: 150px;\">" . get_phrase("membercp_language") . "</td>
					<td style=\"vertical-align: top;\">" . selectbox("Member[languageid]", $Member["languageid"], aaaaaq()) . "</td>
				</tr>
				<tr>
					<td style=\"text-align: right; width: 150px;\">" . get_phrase("membercp_timezone") . "</td>
					<td style=\"vertical-align: top;\">" . selectbox("Member[timezone]", $Member["timezone"], fetch_timezones()) . "</td>
				</tr>
				
				<tr>
					<td colspan=\"2\" style=\"border-top: 1px solid #ccc;\"></td>
				</tr>
				<tr>
					<td style=\"text-align: right;vertical-align: top; width: 150px;\">" . get_phrase("default_categories") . "</td>
					<td style=\"vertical-align: top;\">" . $torrentCategoriesInbutboxes . "</td>
				</tr>

				<tr>
					<td colspan=\"2\" style=\"border-top: 1px solid #ccc;\"></td>
				</tr>
				<tr>
					<td style=\"text-align: right; width: 150px; vertical-align: top;\">" . get_phrase("park_account") . "</td>
					<td style=\"vertical-align: top;\"><input type=\"checkbox\" name=\"Member[accountParked]\" value=\"1\"" . (($Member["accountParked"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("park_account_info") . "</span></td>
				</tr>

			</table>"; 
            $table5 = "
			<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">
				<tr>
					<td style=\"text-align: right;\">" . get_phrase("membercp_online_status") . "</td>
					<td><input type=\"checkbox\" name=\"Member[visible]\" value=\"1\"" . (($Member["visible"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("membercp_online_status_info") . "</span></td>
				</tr>
				<tr>
					<td style=\"text-align: right;\">" . get_phrase("membercp_receive_email") . "</td>
					<td><input type=\"checkbox\" name=\"memberPrivacy[receive_admin_email]\" value=\"1\"" . (($memberPrivacy["receive_admin_email"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("membercp_receive_email_info") . "</span></td>
				</tr>
				<tr>
					<td style=\"text-align: right;\">" . get_phrase("membercp_receive_pm_email") . "</td>
					<td><input type=\"checkbox\" name=\"memberPrivacy[receive_pm_email]\" value=\"1\"" . (($memberPrivacy["receive_pm_email"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("membercp_receive_pm_email_info") . "</span></td>
				</tr>
				<tr>
					<td style=\"text-align: right;\">" . get_phrase("show_your_age") . "</td>
					<td><input type=\"checkbox\" name=\"memberPrivacy[show_your_age]\" value=\"1\"" . (($memberPrivacy["show_your_age"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("show_your_age_info") . "</span></td>
				</tr>
				<tr>
					<td style=\"text-align: right;\">" . get_phrase("membercp_view_your_details") . "</td>
					<td>" . selectbox("memberPrivacy[allow_view_profile]", $memberPrivacy["allow_view_profile"], array( "everyone" => get_phrase("membercp_all_visitors"), "members" => get_phrase("membercp_members_only"), "followed" => get_phrase("membercp_people_you_follow"), "none" => get_phrase("membercp_none") )) . "</td>
				</tr>
			</table>"; 
            $table6 = "
			<table border=\"0\" cellpadding=\"5\" width=\"100%\" cellspacing=\"0\">
				<tr>
					<td style=\"align: right; vertical-align: top;\">" . textarea("memberProfile[signature]", $memberProfile["signature"], true) . "</td>
				</tr>
			</table>"; 
            $table7 = "
			<table border=\"0\" cellpadding=\"5\" width=\"100%\" cellspacing=\"0\">
				<tr>
					<td style=\"text-align: right;\">" . get_phrase("stats_total_warns") . "</td>
					<td>" . inputbox("memberProfile[total_warns]", $memberProfile["total_warns"], "text texthalf") . "</td>
				</tr>
				<tr>
					<td style=\"text-align: right;\">" . get_phrase("stats_hitrun_warns") . "</td>
					<td>" . inputbox("memberProfile[hitRuns]", $memberProfile["hitRuns"], "text texthalf") . "</td>
				</tr>
			</table>"; 
            $createTabs = createtabs(array( get_phrase("members_member_essantials") => $table1, get_phrase("stats_title") => $table2, get_phrase("navigation_membercp_personal_details") => $table3, get_phrase("navigation_membercp_preferences") => $table4, get_phrase("navigation_membercp_privacy") => $table5, get_phrase("navigation_membercp_signature") => $table6, get_phrase("member_manager_warned_members") => $table7 )); 
            $HTML .= "
            " . $createTabs . "
            <div id=\"submit_reset_container\">
				 " . (($edit ? "<span class=\"floatRight\">" . aaaaaf("?p=profile&pid=18&memberid=" . $edit, get_phrase("memberinfo_title", $Member["membername"])) . "</span>" : "")) . "
				  " . aaaabm(get_phrase("button_save"), get_phrase("button_reset")) . "
            </div>"; 
            $aaaaam = ($edit ? array( "edit" => $edit ) : ""); 
            $HTML = aaaabn($HTML, $aaaaam); 
        } 
 
        if( !isset($updateDone) ) 
        { 
            return $HTML; 
        } 
 
    } 
 
    if( $Query ) 
    { 
        $membersCount = $TSUE["TSUE_Database"]->num_rows($Query); 
    } 
    else 
    { 
        $membersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as membersCount FROM tsue_members"); 
    } 
 
    if( !$membersCount ) 
    { 
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_results_found"), "colspan" => 2 ) )); 
    } 
    else 
    { 
        $aaaajz = array(  ); 
        $bannedMembers = $TSUE["TSUE_Database"]->query("SELECT memberid FROM tsue_member_bans", true); 
        if( $TSUE["TSUE_Database"]->num_rows($bannedMembers) ) 
        { 
            while( $bannedMember = $TSUE["TSUE_Database"]->fetch_assoc($bannedMembers) ) 
            { 
                $aaaajz[$bannedMember["memberid"]] = true; 
            } 
        } 
 
        if( $Query ) 
        { 
            $Members = $Query; 
            $Pagination["0"] = ""; 
            $Pagination["1"] = ""; 
        } 
        else 
        { 
            $Pagination = pagination($membersCount["membersCount"]); 
            $Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, m.ipaddress, m.joindate, m.lastactivity, g.groupstyle, p.uploaded, p.downloaded, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_bans b USING(memberid) ORDER BY membername ASC " . $Pagination["0"]); 
        } 
 
        while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) ) 
        { 
            if( !isset($aaaajz[$Member["memberid"]]) ) 
            { 
                $aaaaka = aaaaae(array( "?action=Member Manager&do=Banned Members&ban=1&membername=" . $Member["membername"] => array( "phrase" => getimage("options/bannedmembers.png", get_phrase("banned_ban_member"), "", "16") ) )); 
            } 
            else 
            { 
                $aaaaka = aaaaae(array( "?action=Member Manager&do=Banned Members&lift=" . $Member["memberid"] => array( "phrase" => getimage("options/prune.png", get_phrase("banned_lift_ban"), "", "16") ) )); 
            } 
 
            $aaaakb = aaaaae(array( "edit=" . $Member["memberid"] => array( "phrase" => getmembername($Member["membername"], $Member["groupstyle"]) ) )); 
            $aaaakc = aaaaae(array( "delete=" . $Member["memberid"] => array( "phrase" => getimage("buttons/delete_s.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            $joinDate = get_phrase("memberinfo_membersince", convert_time($Member["joindate"], "d-m-Y")); 
            $lastActivity = get_phrase("memberinfo_lastactivity", convert_time($Member["lastactivity"], "d-m-Y")); 
            $tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . "<span class=\"smallPassiveTextlowMargin\">" . (($Member["isBanned"] ? "(" . get_phrase("banned") . ") " : "")) . strip_tags($Member["ipaddress"]) . " / " . strip_tags($Member["email"]) . " / UL:" . friendly_size($Member["uploaded"]) . " / DL:" . friendly_size($Member["downloaded"]) . " / R:" . member_ratio($Member["uploaded"], $Member["downloaded"]) . " / " . $joinDate . " / " . $lastActivity . "</span>" ), array( "width" => "10%", "align" => "right", "text" => $aaaaka . $aaaakc ) )); 
        } 
    } 
 
    $HTML .= createtable(get_phrase("member_manager_list_all_members_alt") . " (" . number_format(($Query ? $membersCount : $membersCount["membersCount"])) . ") (" . $aaaajv . ")", $tableContents, 2, $Pagination["1"]); 
    return $HTML; 
} 
 
function manageawaitingapproval() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    if( isset($_POST["approve"]) && !empty($_POST["approve"]) ) 
    { 
        $aaaakd = array(  ); 
        foreach( $_POST["approve"] as $MemberID ) 
        { 
            if( intval($MemberID) ) 
            { 
                $aaaakd[] = $MemberID; 
            } 
 
        } 
        if( !empty($aaaakd) ) 
        { 
            $aaaakd = implode(",", $aaaakd); 
            $Members = $TSUE["TSUE_Database"]->query("SELECT memberid, membername, email FROM tsue_members WHERE memberid IN(" . $aaaakd . ") AND membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")"); 
            if( $TSUE["TSUE_Database"]->num_rows($Members) ) 
            { 
                if( isset($_POST["deleteMembers"]) ) 
                { 
                    while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) ) 
                    { 
                        deletemember($Member["memberid"]); 
                        logadminaction(get_phrase("members_member_deleted", $Member["membername"] . " (" . $Member["memberid"] . ")")); 
                    } 
                } 
                else 
                { 
                    if( isset($_POST["approve_notify"]) && $_POST["approve_notify"] == 1 ) 
                    { 
                        while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) ) 
                        { 
                            $subject = get_phrase("approve_account_approved_title", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"]); 
                            $message = get_phrase("approve_account_approved_body", $Member["membername"], $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"], $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]); 
                            sent_mail($Member["email"], $Member["membername"], $subject, $message); 
                        } 
                    } 
 
                    $TSUE["TSUE_Database"]->update("tsue_members", array( "membergroupid" => is_member_of("registeredusers") ), "memberid IN(" . $aaaakd . ") AND membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")"); 
                    logadminaction(get_phrase("approve_members_approved", $aaaakd)); 
                } 
 
            } 
 
        } 
 
    } 
 
    $unapprovedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as unapprovedMembersCount FROM tsue_members WHERE membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")"); 
    if( !$unapprovedMembersCount["unapprovedMembersCount"] ) 
    { 
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("approve_no_results") ) )); 
        return createtable(get_phrase("member_manager_awaiting_approval_alt"), $tableContents); 
    } 
 
    $Pagination = pagination($unapprovedMembersCount["unapprovedMembersCount"]); 
    $Members = $TSUE["TSUE_Database"]->query("SELECT m.*, g.groupstyle FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE m.membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ") " . $Pagination["0"]); 
    while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) ) 
    { 
        $aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Member["memberid"] => array( "phrase" => getmembername($Member["membername"], $Member["groupstyle"]) ) )); 
        $joinDate = get_phrase("approve_account_created", convert_relative_time($Member["joindate"])); 
        $tableContents .= aaaaag(array( array( "width" => "99%", "text" => $aaaakb . " <span class=\"smallPassiveText\">(" . strip_tags($Member["email"]) . ") -- " . $joinDate . "</span>" ), array( "width" => "1%", "text" => "<input type=\"checkbox\" name=\"approve[]\" value=\"" . $Member["memberid"] . "\" />" ) )); 
    } 
    $tableContents .= aaaaag(array( array( "width" => "99%", "text" => "<label><input type=\"checkbox\" name=\"approve_notify\" value=\"1\" checked=\"checked\" /> " . get_phrase("approve_notify") . "</label>  
												 <input type=\"submit\" class=\"submit\" value=\"" . get_phrase("approve_approve_account") . "\" name=\"approveMembers\" /> 
												 <input type=\"submit\" class=\"submit\" value=\"" . get_phrase("delete_selected_members") . "\" name=\"deleteMembers\" />", "align" => "left" ), array( "width" => "1%", "text" => "<input type=\"checkbox\" name=\"checkALL\" value=\"approve[]\" />", "align" => "right" ) )); 
    $HTML .= aaaabn(createtable(get_phrase("member_manager_awaiting_approval_alt"), $tableContents, 2, $Pagination["1"])); 
    return $HTML; 
} 
 
function managebannedmembers() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $aaaake = aaaaae(array( "ban=1" => array( "phrase" => get_phrase("banned_ban_member") ) )); 
    $ban = intval(getvar("ban")); 
    $lift = intval(getvar("lift")); 
    if( $lift ) 
    { 
        $bannedMember = $TSUE["TSUE_Database"]->query_result("SELECT b.*, m.membername, mm.membername AS bannedBy FROM tsue_member_bans b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.banned_by=mm.memberid) WHERE b.memberid=" . $TSUE["TSUE_Database"]->escape($lift)); 
        if( !$bannedMember ) 
        { 
            return errormessage(get_phrase("member_not_found")); 
        } 
 
        $TSUE["TSUE_Database"]->delete("tsue_member_bans", "memberid=" . $TSUE["TSUE_Database"]->escape($lift)); 
        logadminaction(get_phrase("banned_ban_has_been_lifted", $bannedMember["membername"], $TSUE["TSUE_Member"]["membername"])); 
        $HTML .= successmessage(get_phrase("message_saved")); 
        handlerebuildcaches(false); 
    } 
 
    if( $ban ) 
    { 
        $banMember = array( "membername" => (isset($_GET["membername"]) ? strip_tags($_GET["membername"]) : ""), "memberid" => "", "banned_by" => $TSUE["TSUE_Member"]["memberid"], "ban_date" => TIMENOW, "end_date" => 0, "reason" => "" ); 
        if( isset($_POST["banMember"]) ) 
        { 
            $banMember = array_merge($banMember, $_POST["banMember"]); 
            if( !$banMember["membername"] ) 
            { 
                $formErrors[] = get_phrase("member_not_found"); 
            } 
            else 
            { 
                $checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($banMember["membername"])); 
                if( !$checkMember ) 
                { 
                    $formErrors[] = get_phrase("member_not_found"); 
                } 
                else 
                { 
                    $banMember["memberid"] = $checkMember["memberid"]; 
                    $aaaakf = $banMember["membername"]; 
                    unset($banMember["membername"]); 
                } 
 
            } 
 
            if( $banMember["end_date"] ) 
            { 
                $end_date = list($day, $month, $year) = tsue_explode("/", $banMember["end_date"]); 
                $end_date = strtotime((string) $year . "/" . $month . "/" . $day); 
                if( !checkdate($month, $day, $year) || $end_date <= TIMENOW ) 
                { 
                    $formErrors[] = get_phrase("banned_invalid_date"); 
                } 
 
            } 
 
            if( !isset($formErrors) ) 
            { 
                if( isset($end_date) ) 
                { 
                    $banMember["end_date"] = $end_date; 
                } 
                else 
                { 
                    $banMember["end_date"] = 0; 
                } 
 
                $TSUE["TSUE_Database"]->replace("tsue_member_bans", $banMember); 
                logadminaction(get_phrase("banned_member_has_been_banned", $aaaakf, $TSUE["TSUE_Member"]["membername"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                handlerebuildcaches(false); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $inputbox = inputbox("banMember[membername]", (isset($banMember["membername"]) ? $banMember["membername"] : $aaaakf), "text", NULL, false, true); 
            $formContents = aaaaan(get_phrase("your_name"), $inputbox); 
            $inputbox = inputbox("banMember[reason]", $banMember["reason"]); 
            $formContents .= aaaaan(get_phrase("banned_reason"), $inputbox, get_phrase("banned_reason_alt")); 
            $inputbox = inputbox("banMember[end_date]", $banMember["end_date"], "text texthalf", get_phrase("banned_ban_length_alt"), true); 
            $formContents .= aaaaan(get_phrase("banned_ban_length"), $inputbox, get_phrase("banned_ban_length_alt")); 
            $HTML .= aaaabg($formContents); 
            return $HTML; 
        } 
 
    } 
 
    $bannedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as bannedMembersCount FROM tsue_member_bans"); 
    if( !$bannedMembersCount["bannedMembersCount"] ) 
    { 
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("banned_no_banned_members") ) )); 
        return createtable(get_phrase("member_manager_banned_members_alt") . " (" . $aaaake . ")", $tableContents); 
    } 
 
    $Pagination = pagination($bannedMembersCount["bannedMembersCount"]); 
    $bannedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, mm.membername AS bannedBy FROM tsue_member_bans b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.banned_by=mm.memberid) " . $Pagination["0"]); 
    while( $bannedMember = $TSUE["TSUE_Database"]->fetch_assoc($bannedMembers) ) 
    { 
        $reason = get_phrase("banned_reason") . ": " . (($bannedMember["reason"] ? strip_tags($bannedMember["reason"]) : "..")); 
        $ban_date = get_phrase("banned_ban_started", convert_relative_time($bannedMember["ban_date"])); 
        $end_date = get_phrase("banned_ban_ends", ($bannedMember["end_date"] && TIMENOW < $bannedMember["end_date"] ? convert_time($bannedMember["end_date"], "d/m/Y") : get_phrase("banned_ban_ends_never"))); 
        $banned_by = get_phrase("banned_banned_by", $bannedMember["bannedBy"]); 
        $aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $bannedMember["memberid"] => array( "phrase" => $bannedMember["membername"] ) )); 
        $aaaakg = aaaaae(array( "lift=" . $bannedMember["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("banned_lift_ban")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
        $tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $ban_date . " -- " . $end_date . " -- " . $banned_by . " -- " . $reason . "</span>" ), array( "width" => "10%", "text" => $aaaakg ) )); 
    } 
    $HTML .= createtable(get_phrase("member_manager_banned_members_alt") . " (" . number_format($bannedMembersCount["bannedMembersCount"]) . ") (" . $aaaake . ")", $tableContents, 2, $Pagination["1"]); 
    return $HTML; 
} 
 
function managewarnedmembers() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $aaaakh = aaaaae(array( "warn=1" => array( "phrase" => get_phrase("warned_warn_member") ) )); 
    $warn = intval(getvar("warn")); 
    $lift = intval(getvar("lift")); 
    if( $lift ) 
    { 
        $warnedMember = $TSUE["TSUE_Database"]->query_result("SELECT w.*, m.membername, mm.membername AS warnedBy FROM tsue_member_warns w LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (w.warned_by=mm.memberid) WHERE w.warnid=" . $TSUE["TSUE_Database"]->escape($lift)); 
        if( !$warnedMember ) 
        { 
            return errormessage(get_phrase("member_not_found")); 
        } 
 
        $TSUE["TSUE_Database"]->delete("tsue_member_warns", "warnid=" . $TSUE["TSUE_Database"]->escape($lift)); 
        $BuildQuery = array( "total_warns" => array( "escape" => 0, "value" => "IF(total_warns > 0, total_warns-1, 0)" ) ); 
        $TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $warnedMember["memberid"]); 
        alert_member($warnedMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "warns", 0, "warn_lifted"); 
        logadminaction(get_phrase("warned_warn_has_been_lifted", $warnedMember["membername"], $TSUE["TSUE_Member"]["membername"])); 
        $HTML .= successmessage(get_phrase("message_saved")); 
        handlerebuildcaches(false); 
    } 
 
    if( $warn ) 
    { 
        $warnMember = array( "membername" => (isset($_GET["membername"]) ? strip_tags($_GET["membername"]) : ""), "memberid" => "", "warned_by" => $TSUE["TSUE_Member"]["memberid"], "warn_date" => TIMENOW, "end_date" => 0, "notes" => "" ); 
        if( isset($_POST["warnMember"]) ) 
        { 
            $warnMember = array_merge($warnMember, $_POST["warnMember"]); 
            if( !$warnMember["membername"] ) 
            { 
                $formErrors[] = get_phrase("member_not_found"); 
            } 
            else 
            { 
                $checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($warnMember["membername"])); 
                if( !$checkMember ) 
                { 
                    $formErrors[] = get_phrase("member_not_found"); 
                } 
                else 
                { 
                    $warnMember["memberid"] = $checkMember["memberid"]; 
                    $aaaaki = $warnMember["membername"]; 
                    unset($warnMember["membername"]); 
                } 
 
            } 
 
            if( $warnMember["end_date"] ) 
            { 
                $end_date = list($day, $month, $year) = tsue_explode("/", $warnMember["end_date"]); 
                $end_date = strtotime((string) $year . "/" . $month . "/" . $day); 
                if( !checkdate($month, $day, $year) || $end_date <= TIMENOW ) 
                { 
                    $formErrors[] = get_phrase("warned_invalid_date"); 
                } 
 
            } 
 
            if( !isset($formErrors) ) 
            { 
                if( isset($end_date) ) 
                { 
                    $warnMember["end_date"] = $end_date; 
                } 
                else 
                { 
                    $warnMember["end_date"] = 0; 
                } 
 
                $TSUE["TSUE_Database"]->replace("tsue_member_warns", $warnMember); 
                $BuildQuery = array( "total_warns" => array( "escape" => 0, "value" => "total_warns+1" ) ); 
                $TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $warnMember["memberid"]); 
                alert_member($warnMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "warns", 0, "warn_member"); 
                logadminaction(get_phrase("warned_member_has_been_warned", $aaaaki, $TSUE["TSUE_Member"]["membername"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                handlerebuildcaches(false); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $inputbox = inputbox("warnMember[membername]", (isset($warnMember["membername"]) ? $warnMember["membername"] : $aaaaki), "text", NULL, false, true); 
            $formContents = aaaaan(get_phrase("your_name"), $inputbox); 
            $inputbox = inputbox("warnMember[notes]", $warnMember["notes"]); 
            $formContents .= aaaaan(get_phrase("warned_reason"), $inputbox, get_phrase("warned_reason_alt")); 
            $inputbox = inputbox("warnMember[end_date]", $warnMember["end_date"], "text texthalf", get_phrase("warned_warn_length_alt"), true); 
            $formContents .= aaaaan(get_phrase("warned_warn_length"), $inputbox, get_phrase("warned_warn_length_alt")); 
            $HTML .= aaaabg($formContents); 
            return $HTML; 
        } 
 
    } 
 
    $warnedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as warnedMembersCount FROM tsue_member_warns"); 
    if( !$warnedMembersCount["warnedMembersCount"] ) 
    { 
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("warned_no_warned_members") ) )); 
        return createtable(get_phrase("member_manager_warned_members_alt") . " (" . $aaaakh . ")", $tableContents); 
    } 
 
    $Pagination = pagination($warnedMembersCount["warnedMembersCount"]); 
    $warnedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, mm.membername AS warnedBy FROM tsue_member_warns b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.warned_by=mm.memberid) " . $Pagination["0"]); 
    while( $warnedMember = $TSUE["TSUE_Database"]->fetch_assoc($warnedMembers) ) 
    { 
        $notes = get_phrase("warned_reason") . ": " . (($warnedMember["notes"] ? strip_tags($warnedMember["notes"]) : "..")); 
        $warn_date = get_phrase("warned_warn_started", convert_relative_time($warnedMember["warn_date"])); 
        $end_date = get_phrase("warned_warn_ends", ($warnedMember["end_date"] && TIMENOW < $warnedMember["end_date"] ? convert_time($warnedMember["end_date"], "d/m/Y") : get_phrase("warned_warn_ends_never"))); 
        $warned_by = get_phrase("warned_warned_by", $warnedMember["warnedBy"]); 
        $aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $warnedMember["memberid"] => array( "phrase" => $warnedMember["membername"] ) )); 
        $aaaakj = aaaaae(array( "lift=" . $warnedMember["warnid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("warned_lift_warn")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
        $tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $warn_date . " -- " . $end_date . " -- " . $warned_by . " -- " . $notes . "</span>" ), array( "width" => "10%", "text" => $aaaakj ) )); 
    } 
    $HTML .= createtable(get_phrase("member_manager_warned_members_alt") . " (" . number_format($warnedMembersCount["warnedMembersCount"]) . ") (" . $aaaakh . ")", $tableContents, 2, $Pagination["1"]); 
    return $HTML; 
} 
 
function managemembergroups() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $aaaakk = aaaaae(array( "new=1" => array( "phrase" => get_phrase("membergroups_create_new") ) )); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $copy = intval(getvar("copy")); 
    $Permissions = array( "canview_member_profiles" => 1, "canreport" => 1, "canfollow" => 1, "canupload_avatar" => 0, "canpost_signature" => 0, "canvote_polls" => 1, "cansend_invite" => 1, "canpark_account" => 1, "canchange_own_email" => 1, "canreceive_pm_email" => 0, "canchange_birthday" => 0, "canview_torrents" => 1, "canview_torrent_details" => 1, "canview_peers" => 0, "canview_torrent_filelist" => 1, "candownload_torrents" => 1, "canupload_torrents" => 0, "canedit_own_torrents" => 1, "candelete_own_torrents" => 0, "canrequest_reseed" => 1, "canrefresh_imdb" => 0, "canupdate_external_torrents" => 1, "do_not_record_download_stats" => 0, "canuse_bookmarks" => 1, "force_to_read_unread_pm" => 0, "max_slot_limit" => 0, "minratio_dl_torrents" => 0, "canview_subtitles" => 1, "canupload_subtitles" => 0, "candownload_subtitles" => 1, "canpost_comments" => 1, "canedit_own_comments" => 1, "candelete_own_comments" => 0, "canpost_a_new_message" => 1, "canpost_a_reply_to_message" => 1, "canlike" => 1, "canview_like_list" => 0, "canview_any_forum" => 1, "cansearch_in_forums" => 1, "canview_shout" => 1, "canpost_shout" => 1, "canedit_own_shout" => 1, "candelete_own_shout" => 0, "canview_market" => 1, "canpurchase_item" => 1, "canrequest_torrent" => 1, "canvote_request" => 1, "canfill_request" => 0, "request_limit" => 1, "canview_dm" => 1, "candownload_dm" => 1, "canupload_dm" => 0, "canedit_own_files" => 0, "candelete_own_files" => 0, "speed_throttling_dm" => 250, "max_simultaneous_downloads" => 3, "max_bandwidth_usage_per_day" => 1073741824, "max_downloads_per_day" => 5, "canview_image_gallery" => 1, "canupload_image" => 0, "candelete_own_image" => 1, "max_image_uploads" => 10, "canlogin_admincp" => 0, "canedit_shout" => 0, "candelete_shout" => 0, "canprune_shouts" => 0, "canpost_notice" => 0, "canedit_comments" => 0, "candelete_comments" => 0, "canedit_torrents" => 0, "candelete_torrents" => 0, "canset_multipliers" => 0, "canview_invisible_members" => 0, "canview_special_details" => 0, "canview_debug" => 0, "canview_offline_website" => 0, "canview_all_profiles" => 0, "canmanage_reports" => 0, "canedit_subtitles" => 0, "candelete_subtitles" => 0, "canwarn_member" => 0, "canban_member" => 0, "canview_member_history" => 0, "canmute_member" => 0, "canremove_avatar" => 0, "canset_hitrun_ratio" => 0, "canmanage_applications" => 0, "candelete_request" => 0, "canedit_request" => 0, "cansticky_torrents" => 0, "canview_all_content" => 0, "candelete_files" => 0, "canedit_files" => 0, "cannuke_torrents" => 0, "candelete_image_gallery_files" => 0, "canreply_staff_messages" => 0, "candelete_staff_messages" => 0, "canreset_passkey" => 0, "canaward_members" => 0, "canreset_request" => 0, "canadd_note" => 0, "candelete_staff_notes" => 0, "canview_poll_voters" => 0, "canfill_upcomingreleases" => 0, "canedit_upcomingreleases" => 0, "candelete_upcomingreleases" => 0, "canbump_torrents" => 0, "candelete_applications" => 0, "can_moderate_torrents" => 0, "canuse_spam_cleaner" => 0 ); 
    if( isset($_POST["sort"]) ) 
    { 
        foreach( $_POST["sort"] as $aaaakl => $Sort ) 
        { 
            $aaaakl = intval($aaaakl); 
            $Sort = intval($Sort); 
            $TSUE["TSUE_Database"]->update("tsue_membergroups", array( "sort" => $Sort ), "membergroupid=" . $TSUE["TSUE_Database"]->escape($aaaakl)); 
        } 
        logadminaction(get_phrase("pages_all_pages_updated")); 
        handleprune(false); 
        header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]); 
        exit(); 
    } 
    else 
    { 
        if( $delete ) 
        { 
            $Membergroup = $TSUE["TSUE_Database"]->query_result("SELECT groupname, protected FROM tsue_membergroups WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            if( !$Membergroup ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            if( $Membergroup["protected"] == 1 ) 
            { 
                return errormessage(get_phrase("membergroups_cant_delete_default")); 
            } 
 
            $checkMembers = $TSUE["TSUE_Database"]->query("SELECT memberid, membergroupid FROM tsue_members WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            if( $TSUE["TSUE_Database"]->num_rows($checkMembers) ) 
            { 
                $TSUE["TSUE_Database"]->update("tsue_members", array( "membergroupid" => is_member_of("registeredusers") ), "membergroupid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            } 
 
            $TSUE["TSUE_Database"]->delete("tsue_membergroups", "membergroupid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            logadminaction(get_phrase("membergroups_membergroup_deleted", $Membergroup["groupname"])); 
            $HTML .= successmessage(get_phrase("membergroups_membergroup_deleted", $Membergroup["groupname"])); 
            handlerebuildcaches(false); 
        } 
 
        if( $copy ) 
        { 
            $Membergroup = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_membergroups WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($copy)); 
            if( !$Membergroup ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $Permissions = unserialize($Membergroup["permissions"]); 
            $new = 1; 
        } 
 
        if( $edit || $new ) 
        { 
            $Membergroup = array( "groupname" => "", "groupstyle" => "{membername}", "flood_limit" => 30, "showOnStaff" => 0, "passwordExpires" => 184 ); 
            $aaaaam = ""; 
            if( $edit ) 
            { 
                $Membergroup = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_membergroups WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($edit)); 
                if( !$Membergroup ) 
                { 
                    return errormessage(get_phrase("message_content_error")); 
                } 
 
                $Permissions = unserialize($Membergroup["permissions"]); 
                $aaaaam = array( "edit" => $edit ); 
                addbreadcrumb(array( getmembername($Membergroup["groupname"], $Membergroup["groupstyle"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
            } 
            else 
            { 
                addbreadcrumb(array( get_phrase("membergroups_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
            } 
 
            if( isset($_POST["Membergroup"]) ) 
            { 
                $Membergroup = $_POST["Membergroup"]; 
                if( !$Membergroup["groupname"] ) 
                { 
                    $formErrors[] = get_phrase("membergroups_invalid_groupname"); 
                } 
 
                if( !preg_match("#\{membername\}#", $Membergroup["groupstyle"]) ) 
                { 
                    $formErrors[] = get_phrase("membergroups_invalid_groupstyle"); 
                } 
 
                $Permissions = $_POST["Permissions"]; 
                if( !isset($formErrors) ) 
                { 
                    $buildQuery = array( "groupname" => $Membergroup["groupname"], "groupstyle" => html_declean($Membergroup["groupstyle"]), "flood_limit" => intval($Membergroup["flood_limit"]), "permissions" => serialize($Permissions), "showOnStaff" => $Membergroup["showOnStaff"], "passwordExpires" => $Membergroup["passwordExpires"] ); 
                    if( $edit ) 
                    { 
                        $TSUE["TSUE_Database"]->update("tsue_membergroups", $buildQuery, "membergroupid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                        $aaaakm = $edit; 
                    } 
                    else 
                    { 
                        $TSUE["TSUE_Database"]->insert("tsue_membergroups", $buildQuery); 
                        $aaaakn = $TSUE["TSUE_Database"]->insert_id(); 
                        $aaaahh = aaaahb(); 
                        if( !$aaaakn ) 
                        { 
                            return NULL; 
                        } 
 
                        $aaaakm = $aaaakn; 
                        $Forums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums ORDER BY forumid ASC"); 
                        if( $TSUE["TSUE_Database"]->num_rows($Forums) ) 
                        { 
                            while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) ) 
                            { 
                                $aaaahi = serialize((isset($Permissions["canlogin_admincp"]) && $Permissions["canlogin_admincp"] ? $aaaahh["adminForumPermissions"] : $aaaahh["defaultForumPermissions"])); 
                                $buildQuery = array( "forumid" => $Forum["forumid"], "membergroupid" => $aaaakn, "permissions" => $aaaahi ); 
                                $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery); 
                            } 
                        } 
 
                    } 
 
                    if( $aaaakm ) 
                    { 
                        $pagePermissions = getvar("pagePermissions", array(  ), false); 
                        $aaaako = array(  ); 
                        if( is_array($pagePermissions) && !empty($pagePermissions) ) 
                        { 
                            foreach( $pagePermissions as $pageID => $value ) 
                            { 
                                $pageID = intval($pageID); 
                                if( $pageID && $value == 1 ) 
                                { 
                                    $aaaako[] = $pageID; 
                                } 
 
                            } 
                        } 
 
                        if( !empty($aaaako) ) 
                        { 
                            $Pages = $TSUE["TSUE_Database"]->query("SELECT pageid, viewpermissions FROM tsue_pages WHERE pageid IN (" . implode(",", $aaaako) . ")"); 
                            if( $TSUE["TSUE_Database"]->num_rows($Pages) ) 
                            { 
                                while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) ) 
                                { 
                                    $viewpermissions = tsue_explode(",", $Page["viewpermissions"]); 
                                    if( empty($viewpermissions) ) 
                                    { 
                                        $viewpermissions = aaaakp(); 
                                    } 
                                    else 
                                    { 
                                        if( !in_array($aaaakm, $viewpermissions) ) 
                                        { 
                                            $viewpermissions[] = $aaaakm; 
                                        } 
 
                                    } 
 
                                    $TSUE["TSUE_Database"]->update("tsue_pages", array( "viewpermissions" => implode(",", $viewpermissions) ), "pageid=" . $TSUE["TSUE_Database"]->escape($Page["pageid"])); 
                                } 
                                $Pages = $TSUE["TSUE_Database"]->query("SELECT pageid, viewpermissions FROM tsue_pages WHERE pageid NOT IN (" . implode(",", $aaaako) . ")"); 
                                if( $TSUE["TSUE_Database"]->num_rows($Pages) ) 
                                { 
                                    while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) ) 
                                    { 
                                        $viewpermissions = tsue_explode(",", $Page["viewpermissions"]); 
                                        if( empty($viewpermissions) ) 
                                        { 
                                            $viewpermissions = aaaakp($aaaakm); 
                                        } 
 
                                        $viewpermissions = aaaakq($viewpermissions, $aaaakm); 
                                        $TSUE["TSUE_Database"]->update("tsue_pages", array( "viewpermissions" => implode(",", $viewpermissions) ), "pageid=" . $TSUE["TSUE_Database"]->escape($Page["pageid"])); 
                                    } 
                                } 
 
                            } 
 
                        } 
 
                        $pluginPermissions = getvar("pluginPermissions", array(  ), false); 
                        $aaaakr = array(  ); 
                        if( is_array($pluginPermissions) && !empty($pluginPermissions) ) 
                        { 
                            foreach( $pluginPermissions as $pluginID => $value ) 
                            { 
                                $pluginID = intval($pluginID); 
                                if( $pluginID && $value == 1 ) 
                                { 
                                    $aaaakr[] = $pluginID; 
                                } 
 
                            } 
                        } 
 
                        if( !empty($aaaakr) ) 
                        { 
                            $Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, viewpermissions FROM tsue_plugins WHERE pluginid IN (" . implode(",", $aaaakr) . ")"); 
                            if( $TSUE["TSUE_Database"]->num_rows($Plugins) ) 
                            { 
                                while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) ) 
                                { 
                                    $viewpermissions = tsue_explode(",", $Plugin["viewpermissions"]); 
                                    if( empty($viewpermissions) ) 
                                    { 
                                        $viewpermissions = aaaakp(); 
                                    } 
                                    else 
                                    { 
                                        if( !in_array($aaaakm, $viewpermissions) ) 
                                        { 
                                            $viewpermissions[] = $aaaakm; 
                                        } 
 
                                    } 
 
                                    $TSUE["TSUE_Database"]->update("tsue_plugins", array( "viewpermissions" => implode(",", $viewpermissions) ), "pluginid=" . $TSUE["TSUE_Database"]->escape($Plugin["pluginid"])); 
                                } 
                                $Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, viewpermissions FROM tsue_plugins WHERE pluginid NOT IN (" . implode(",", $aaaakr) . ")"); 
                                if( $TSUE["TSUE_Database"]->num_rows($Plugins) ) 
                                { 
                                    while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) ) 
                                    { 
                                        $viewpermissions = tsue_explode(",", $Plugin["viewpermissions"]); 
                                        if( empty($viewpermissions) ) 
                                        { 
                                            $viewpermissions = aaaakp($aaaakm); 
                                        } 
 
                                        $viewpermissions = aaaakq($viewpermissions, $aaaakm); 
                                        $TSUE["TSUE_Database"]->update("tsue_plugins", array( "viewpermissions" => implode(",", $viewpermissions) ), "pluginid=" . $TSUE["TSUE_Database"]->escape($Plugin["pluginid"])); 
                                    } 
                                } 
 
                            } 
 
                        } 
 
                        $torrentCategoryViewPermissions = getvar("torrentCategoryViewPermissions", array(  ), false); 
                        $torrentCategoryDownloadPermissions = getvar("torrentCategoryDownloadPermissions", array(  ), false); 
                        $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC"); 
                        while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) ) 
                        { 
                            $cviewpermissions = tsue_explode(",", $Category["cviewpermissions"]); 
                            if( isset($torrentCategoryViewPermissions[$Category["cid"]]) && !in_array($aaaakm, $cviewpermissions) ) 
                            { 
                                $cviewpermissions[] = $aaaakm; 
                            } 
                            else 
                            { 
                                if( !isset($torrentCategoryViewPermissions[$Category["cid"]]) && in_array($aaaakm, $cviewpermissions) ) 
                                { 
                                    $cviewpermissions = aaaakq($cviewpermissions, $aaaakm); 
                                } 
 
                            } 
 
                            $cviewpermissions = implode(",", $cviewpermissions); 
                            $TSUE["TSUE_Database"]->update("tsue_torrents_categories", array( "cviewpermissions" => $cviewpermissions ), "cid=" . $TSUE["TSUE_Database"]->escape($Category["cid"])); 
                        } 
                        $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC"); 
                        while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) ) 
                        { 
                            $cdownloadpermissions = tsue_explode(",", $Category["cdownloadpermissions"]); 
                            if( isset($torrentCategoryDownloadPermissions[$Category["cid"]]) && !in_array($aaaakm, $cdownloadpermissions) ) 
                            { 
                                $cdownloadpermissions[] = $aaaakm; 
                            } 
                            else 
                            { 
                                if( !isset($torrentCategoryDownloadPermissions[$Category["cid"]]) && in_array($aaaakm, $cdownloadpermissions) ) 
                                { 
                                    $cdownloadpermissions = aaaakq($cdownloadpermissions, $aaaakm); 
                                } 
 
                            } 
 
                            $cdownloadpermissions = implode(",", $cdownloadpermissions); 
                            $TSUE["TSUE_Database"]->update("tsue_torrents_categories", array( "cdownloadpermissions" => $cdownloadpermissions ), "cid=" . $TSUE["TSUE_Database"]->escape($Category["cid"])); 
                        } 
                    } 
 
                    logadminaction(get_phrase("membergroups_membergroup_updated", $Membergroup["groupname"])); 
                    $HTML .= successmessage(get_phrase("message_saved")); 
                    handlerebuildcaches(false); 
                    handleprune(); 
                    $updateDone = true; 
                } 
                else 
                { 
                    $HTML .= errormessage(implode("<br />", $formErrors)); 
                } 
 
            } 
 
            if( !isset($updateDone) ) 
            { 
                $inputbox = inputbox("Membergroup[groupname]", $Membergroup["groupname"]); 
                $formContents = aaaaan(get_phrase("membergroups_groupname"), $inputbox); 
                $inputbox = inputbox("Membergroup[groupstyle]", html_clean($Membergroup["groupstyle"]), "text", "", false, false, getmembername($Membergroup["groupname"], $Membergroup["groupstyle"])); 
                $formContents .= aaaaan(get_phrase("membergroups_groupstyle"), $inputbox); 
                $inputbox = inputbox("Membergroup[flood_limit]", intval($Membergroup["flood_limit"])); 
                $formContents .= aaaaan(get_phrase("membergroups_flood_limit"), $inputbox, get_phrase("set_to_0_for_no_limit")); 
                $inputbox = radioyesno("Membergroup[showOnStaff]", intval($Membergroup["showOnStaff"])); 
                $formContents .= aaaaan(get_phrase("membergroups_show_on_staff_page"), $inputbox); 
                $inputbox = inputbox("Membergroup[passwordExpires]", intval($Membergroup["passwordExpires"])); 
                $formContents .= aaaaan(get_phrase("membergroups_password_expires"), $inputbox, get_phrase("membergroups_password_expires_alt")); 
                $aaaagp = aaaagq(array( "canview_member_profiles", "canreport", "canfollow", "canupload_avatar", "canpost_signature", "canvote_polls", "cansend_invite", "canpark_account", "canchange_own_email", "canreceive_pm_email", "canchange_birthday" ), $Permissions, "membergroups_general_permissions"); 
                $formContents .= aaaaan(get_phrase("membergroups_general_permissions"), $aaaagp); 
                $aaaagp = aaaagq(array( "canview_torrents", "canview_torrent_details", "canview_peers", "canview_torrent_filelist", "candownload_torrents", "canupload_torrents" => array( "canupload_torrents" => array( get_phrase("option_yes") => 1, get_phrase("option_no") => 0, get_phrase("option_moderate") => 2 ) ), "canedit_own_torrents", "candelete_own_torrents", "canrequest_reseed", "canrefresh_imdb", "canupdate_external_torrents", "do_not_record_download_stats", "force_to_read_unread_pm", "canuse_bookmarks" ), $Permissions, "membergroups_torrent_permissions"); 
                $aaaagp .= aaaaks(array( "max_slot_limit" => get_phrase("set_to_0_for_no_limit"), "minratio_dl_torrents" => get_phrase("set_to_0_for_no_limit") ), $Permissions); 
                $formContents .= aaaaan(get_phrase("membergroups_torrent_permissions"), $aaaagp); 
                $aaaagp = aaaagq(array( "canview_subtitles", "canupload_subtitles", "candownload_subtitles" ), $Permissions, "membergroups_subtitles_permissions"); 
                $formContents .= aaaaan(get_phrase("membergroups_subtitles_permissions"), $aaaagp); 
                $aaaagp = aaaagq(array( "canpost_comments", "canedit_own_comments", "candelete_own_comments" ), $Permissions, "membergroups_comment_permissions"); 
                $formContents .= aaaaan(get_phrase("membergroups_comment_permissions"), $aaaagp); 
                $aaaagp = aaaagq(array( "canpost_a_new_message", "canpost_a_reply_to_message" ), $Permissions, "membergroups_pm_permissions"); 
                $formContents .= aaaaan(get_phrase("membergroups_pm_permissions"), $aaaagp); 
                $aaaagp = aaaagq(array( "canlike", "canview_like_list" ), $Permissions, "membergroups_like_permissions"); 
                $formContents .= aaaaan(get_phrase("membergroups_like_permissions"), $aaaagp); 
                $aaaagp = aaaagq(array( "canview_any_forum", "cansearch_in_forums" ), $Permissions, "membergroups_forum_permissions"); 
                $formContents .= aaaaan(get_phrase("membergroups_forum_permissions"), $aaaagp); 
                $aaaagp = aaaagq(array( "canview_shout", "canpost_shout", "canedit_own_shout", "candelete_own_shout" ), $Permissions, "membergroups_shoutbox_permissions"); 
                $formContents .= aaaaan(get_phrase("membergroups_shoutbox_permissions"), $aaaagp); 
                $aaaagp = aaaagq(array( "canview_market", "canpurchase_item" ), $Permissions, "membergroups_market_permissions"); 
                $formContents .= aaaaan(get_phrase("membergroups_market_permissions"), $aaaagp); 
                $aaaagp = aaaagq(array( "canrequest_torrent", "canvote_request", "canfill_request" ), $Permissions, "request_a_torrent_permissions"); 
                $aaaagp .= aaaaks(array( "request_limit" => get_phrase("set_to_0_for_no_limit") ), $Permissions); 
                $formContents .= aaaaan(get_phrase("request_a_torrent_permissions"), $aaaagp); 
                $aaaagp = aaaagq(array( "canview_dm", "candownload_dm", "canupload_dm", "canedit_own_files", "candelete_own_files" ), $Permissions, "dm_title"); 
                $aaaagp .= aaaaks(array( "speed_throttling_dm" => get_phrase("set_to_0_for_no_limit"), "max_simultaneous_downloads" => get_phrase("set_to_0_for_no_limit"), "max_bandwidth_usage_per_day" => friendly_size($Permissions["max_bandwidth_usage_per_day"]) . " | " . get_phrase("set_to_0_for_no_limit"), "max_downloads_per_day" => get_phrase("set_to_0_for_no_limit") ), $Permissions); 
                $formContents .= aaaaan(get_phrase("dm_title") . " (" . get_phrase("dm_title_alt") . ")", $aaaagp); 
                $aaaagp = aaaagq(array( "canview_image_gallery", "canupload_image", "candelete_own_image" ), $Permissions, "image_gallery_permissions"); 
                $aaaagp .= aaaaks(array( "max_image_uploads" => get_phrase("set_to_0_for_no_limit") ), $Permissions); 
                $formContents .= aaaaan(get_phrase("image_gallery_permissions"), $aaaagp); 
                $aaaagp = aaaagq(array( "canlogin_admincp", "canedit_shout", "candelete_shout", "canprune_shouts", "canpost_notice", "canedit_comments", "candelete_comments", "canedit_torrents", "candelete_torrents", "canset_multipliers", "canview_invisible_members", "canview_special_details", "canview_debug", "canview_offline_website", "canview_all_profiles", "canmanage_reports", "canedit_subtitles", "candelete_subtitles", "canwarn_member", "canban_member", "canview_member_history", "canmute_member", "canremove_avatar", "canset_hitrun_ratio", "canmanage_applications", "candelete_request", "canedit_request", "cansticky_torrents", "canview_all_content", "candelete_files", "canedit_files", "cannuke_torrents", "candelete_image_gallery_files", "canreply_staff_messages", "candelete_staff_messages", "canreset_passkey", "canaward_members", "canreset_request", "canadd_note", "candelete_staff_notes", "canview_poll_voters", "canfill_upcomingreleases", "canedit_upcomingreleases", "candelete_upcomingreleases", "canbump_torrents", "candelete_applications", "can_moderate_torrents", "canuse_spam_cleaner" ), $Permissions, "membergroups_administrator_permissions"); 
                $formContents .= aaaaan(get_phrase("membergroups_administrator_permissions"), $aaaagp); 
                $subPagesCache = array(  ); 
                $aaaakt = array(  ); 
                $Pages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_pages ORDER BY sort ASC"); 
                while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) ) 
                { 
                    if( $Page["parentid"] ) 
                    { 
                        $subPagesCache[$Page["parentid"]][] = $Page; 
                    } 
                    else 
                    { 
                        $aaaakt[] = $Page; 
                    } 
 
                } 
                $pagePermissions = "
			" . get_phrase("select_pages_to_allow_view_for_this_group") . "
			<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
				<tr>"; 
                $Count = 0; 
                $maxPerRow = 4; 
                foreach( $aaaakt as $Page ) 
                { 
                    if( $Count % $maxPerRow == 0 ) 
                    { 
                        $pagePermissions .= "
					</tr><tr>"; 
                    } 
 
                    $Count++; 
                    $aaaaku = ""; 
                    if( isset($subPagesCache[$Page["pageid"]]) ) 
                    { 
                        foreach( $subPagesCache[$Page["pageid"]] as $subPage ) 
                        { 
                            $checked = ""; 
                            if( $edit && in_array($edit, tsue_explode(",", $subPage["viewpermissions"])) || isset($_POST["pagePermissions"][$subPage["pageid"]]) || empty($subPage["viewpermissions"]) ) 
                            { 
                                $checked = " checked=\"checked\""; 
                            } 
 
                            $aaaaku .= "
						<div style=\"margin-left: 20px;\" class=\"forumSub\">
							<label><input type=\"checkbox\" name=\"pagePermissions[" . $subPage["pageid"] . "]\" value=\"1\"" . $checked . " /> " . $TSUE["TSUE_Language"]["phrase"][$subPage["phrase"]] . "</label>
						</div>"; 
                        } 
                    } 
 
                    $checked = ""; 
                    if( $edit && in_array($edit, tsue_explode(",", $Page["viewpermissions"])) || isset($_POST["pagePermissions"][$Page["pageid"]]) || empty($Page["viewpermissions"]) ) 
                    { 
                        $checked = " checked=\"checked\""; 
                    } 
 
                    $pagePermissions .= "
					<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">
						<label><input type=\"checkbox\" name=\"pagePermissions[" . $Page["pageid"] . "]\" value=\"1\"" . $checked . " /> " . $TSUE["TSUE_Language"]["phrase"][$Page["phrase"]] . "</label>
						" . $aaaaku . "						
					</td>"; 
                } 
                $pagePermissions .= "
				</tr>
			</table>"; 
                $pluginPermissions = "
			" . get_phrase("select_plugins_to_allow_view_for_this_group") . "
			<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
				<tr>"; 
                $Count = 0; 
                $maxPerRow = 3; 
                $Plugins = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_plugins ORDER BY name ASC"); 
                while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) ) 
                { 
                    if( $Count % $maxPerRow == 0 ) 
                    { 
                        $pluginPermissions .= "
					</tr><tr>"; 
                    } 
 
                    $Count++; 
                    $checked = ""; 
                    if( $edit && in_array($edit, tsue_explode(",", $Plugin["viewpermissions"])) || isset($_POST["pluginPermissions"][$Plugin["pluginid"]]) || empty($Plugin["viewpermissions"]) ) 
                    { 
                        $checked = " checked=\"checked\""; 
                    } 
 
                    $pluginPermissions .= "
					<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">
						<label><input type=\"checkbox\" name=\"pluginPermissions[" . $Plugin["pluginid"] . "]\" value=\"1\"" . $checked . " /> " . $Plugin["name"] . "</label>
					</td>"; 
                } 
                $pluginPermissions .= "
				</tr>
			</table>"; 
                $aaaact = array(  ); 
                $aaaafx = array(  ); 
                $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC"); 
                while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) ) 
                { 
                    if( $Category["pid"] ) 
                    { 
                        $aaaact[$Category["pid"]][] = $Category; 
                    } 
                    else 
                    { 
                        $aaaafx[] = $Category; 
                    } 
 
                } 
                $torrentCategoryViewPermissions = "
			" . get_phrase("select_torrent_categories_to_allow_view_for_this_group") . "
			<h3>" . get_phrase("global_view_permissions") . "</h3>
			<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
				<tr>"; 
                $Count = 0; 
                $maxPerRow = 4; 
                foreach( $aaaafx as $Category ) 
                { 
                    if( $Count % $maxPerRow == 0 ) 
                    { 
                        $torrentCategoryViewPermissions .= "
					</tr><tr>"; 
                    } 
 
                    $Count++; 
                    $subCategoryList = ""; 
                    if( isset($aaaact[$Category["cid"]]) ) 
                    { 
                        foreach( $aaaact[$Category["cid"]] as $subCategory ) 
                        { 
                            $checked = ""; 
                            if( $edit && in_array($edit, tsue_explode(",", $subCategory["cviewpermissions"])) || isset($_POST["torrentCategoryViewPermissions"][$subCategory["cid"]]) ) 
                            { 
                                $checked = " checked=\"checked\""; 
                            } 
 
                            $subCategoryList .= "
						<div style=\"margin-left: 20px;\" class=\"forumSub\">
							<label><input type=\"checkbox\" name=\"torrentCategoryViewPermissions[" . $subCategory["cid"] . "]\" value=\"1\"" . $checked . " /> " . $subCategory["cname"] . "</label>
						</div>"; 
                        } 
                    } 
 
                    $checked = ""; 
                    if( $edit && in_array($edit, tsue_explode(",", $Category["cviewpermissions"])) || isset($_POST["torrentCategoryViewPermissions"][$Category["cid"]]) ) 
                    { 
                        $checked = " checked=\"checked\""; 
                    } 
 
                    $torrentCategoryViewPermissions .= "
					<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">
						<label><input type=\"checkbox\" name=\"torrentCategoryViewPermissions[" . $Category["cid"] . "]\" value=\"1\"" . $checked . " /> " . $Category["cname"] . "</label>
						" . $subCategoryList . "
					</td>"; 
                } 
                $torrentCategoryViewPermissions .= "
				</tr>
			</table>"; 
                $torrentCategoryDownloadPermissions = "
			<h3>" . get_phrase("global_download_permissions") . "</h3>
			<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
				<tr>"; 
                $Count = 0; 
                $maxPerRow = 4; 
                foreach( $aaaafx as $Category ) 
                { 
                    if( $Count % $maxPerRow == 0 ) 
                    { 
                        $torrentCategoryDownloadPermissions .= "
					</tr><tr>"; 
                    } 
 
                    $Count++; 
                    $subCategoryList = ""; 
                    if( isset($aaaact[$Category["cid"]]) ) 
                    { 
                        foreach( $aaaact[$Category["cid"]] as $subCategory ) 
                        { 
                            $checked = ""; 
                            if( $edit && in_array($edit, tsue_explode(",", $subCategory["cdownloadpermissions"])) || isset($_POST["torrentCategoryDownloadPermissions"][$subCategory["cid"]]) ) 
                            { 
                                $checked = " checked=\"checked\""; 
                            } 
 
                            $subCategoryList .= "
						<div style=\"margin-left: 20px;\" class=\"forumSub\">
							<label><input type=\"checkbox\" name=\"torrentCategoryDownloadPermissions[" . $subCategory["cid"] . "]\" value=\"1\"" . $checked . " /> " . $subCategory["cname"] . "</label>
						</div>"; 
                        } 
                    } 
 
                    $checked = ""; 
                    if( $edit && in_array($edit, tsue_explode(",", $Category["cdownloadpermissions"])) || isset($_POST["torrentCategoryDownloadPermissions"][$Category["cid"]]) ) 
                    { 
                        $checked = " checked=\"checked\""; 
                    } 
 
                    $torrentCategoryDownloadPermissions .= "
					<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">
						<label><input type=\"checkbox\" name=\"torrentCategoryDownloadPermissions[" . $Category["cid"] . "]\" value=\"1\"" . $checked . " /> " . $Category["cname"] . "</label>
						" . $subCategoryList . "
					</td>"; 
                } 
                $torrentCategoryDownloadPermissions .= "
				</tr>
			</table>"; 
                $createTabs = createtabs(array( get_phrase("membergroup_options_and_perms") => $formContents, get_phrase("pages_view_permissions") => $pagePermissions, get_phrase("plugins_view_permissions") => $pluginPermissions, get_phrase("torrents_view_and_download_permissions") => $torrentCategoryViewPermissions . $torrentCategoryDownloadPermissions )); 
                $HTML .= aaaabn($createTabs . "
            <div id=\"submit_reset_container\">
                 " . aaaabm(get_phrase("button_save"), get_phrase("button_reset")) . "
            </div>", $aaaaam); 
                return $HTML; 
            } 
 
        } 
 
        $membergroupCache = array(  ); 
        $Members = $TSUE["TSUE_Database"]->query("SELECT membergroupid FROM tsue_members", true); 
        while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) ) 
        { 
            if( isset($membergroupCache[$Member["membergroupid"]]) ) 
            { 
                $membergroupCache[$Member["membergroupid"]]++; 
            } 
            else 
            { 
                $membergroupCache[$Member["membergroupid"]] = 1; 
            } 
 
        } 
        $Membergroups = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_membergroups"); 
        while( $Membergroup = $TSUE["TSUE_Database"]->fetch_assoc($Membergroups) ) 
        { 
            $aaaakv = aaaaae(array( "edit=" . $Membergroup["membergroupid"] => array( "phrase" => getmembername($Membergroup["groupname"], $Membergroup["groupstyle"]) ) )); 
            $aaaakw = aaaaae(array( "delete=" . $Membergroup["membergroupid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            $aaaakx = aaaaae(array( "copy=" . $Membergroup["membergroupid"] => array( "phrase" => getimage("buttons/copy.png", get_phrase("create_a_new_membergroup_based_on_this")) ) )); 
            $tableContents .= aaaaag(array( array( "text" => $aaaakv . " <span class=\"smallPassiveText\">" . get_phrase("membergroups_groupid", $Membergroup["membergroupid"]) . " / " . get_phrase("membergroups_total_members", (isset($membergroupCache[$Membergroup["membergroupid"]]) ? number_format($membergroupCache[$Membergroup["membergroupid"]]) : 0)) . "</span>" ), array( "text" => inputbox("sort[" . $Membergroup["membergroupid"] . "]", $Membergroup["sort"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "12%", "text" => $aaaakx . $aaaakw, "align" => "right" ) )); 
        } 
        $tableContents .= aaaaag(array( array( "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "right", "colspan" => 2 ), array( "text" => "&nbsp;", "align" => "right", "colspan" => 1, "width" => "12%" ) )); 
        $HTML .= aaaabn(createtable(get_phrase("member_manager_membergroups_alt"), $tableContents, 3, $aaaakk)); 
        return $HTML; 
    } 
 
} 
 
function aaaagq($permNames, $Permissions, $REL) 
{ 
    global $TSUE; 
    $List = "
	<table cellpadding=\"5\" cellspacing=\"0\" border=\"0\">
		<tr>
			<td>&nbsp;</td>
			<td>
				<a href=\"javascript:void(0);\" id=\"setALLYes\" rel=\"" . $REL . "\">" . getimage("status/checkall_yes.png", get_phrase("global_setall_yes")) . "</a>&nbsp;&nbsp;
				<a href=\"javascript:void(0);\" id=\"setALLNo\" rel=\"" . $REL . "\">" . getimage("status/checkall_no.png", get_phrase("global_setall_no")) . "</a>
			</td>
		</tr>"; 
    foreach( $permNames as $Name ) 
    { 
        if( !is_array($Name) ) 
        { 
            $phrase = $Name; 
            $radioBox = radioyesno("Permissions[" . $Name . "]", (isset($Permissions[$Name]) ? $Permissions[$Name] : ""), NULL, $REL) . ((isset($TSUE["TSUE_Language"]["phrase"][(string) $Name . "_tip"]) ? aaaaky($TSUE["TSUE_Language"]["phrase"][(string) $Name . "_tip"]) : "")); 
        } 
        else 
        { 
            $radioBox = ""; 
            foreach( $Name as $nName => $nValues ) 
            { 
                $phrase = $nName; 
                foreach( $nValues as $nm => $val ) 
                { 
                    $radioBox .= aaaakz("Permissions[" . $nName . "]", $val, isset($Permissions[$nName]) && $Permissions[$nName] == $val, $nm, (isset($TSUE["TSUE_Language"]["phrase"][(string) $nName . "_tip"]) ? aaaaky($TSUE["TSUE_Language"]["phrase"][(string) $nName . "_tip"]) : "")); 
                } 
            } 
        } 
 
        $phrase = get_phrase($phrase); 
        if( 50 < strlen($phrase) ) 
        { 
            $phrase = "<span style=\"font-size: 11px;\">" . $phrase . "</span>"; 
        } 
 
        $List .= "
		<tr class=\"tableContentTR\">
			<td style=\"text-align: right; font-weight: bold; width: 350px; vertical-align: top;\" width=\"350\" valign=\"top\">" . $phrase . "</td>
			<td style=\"text-align: left; width: 300px;\" width=\"300\">" . $radioBox . "</td>
		</tr>"; 
    } 
    $List .= "</table>"; 
    return $List; 
} 
 
function aaaaks($permNames, $Permissions) 
{ 
    global $TSUE; 
    $List = "
	<table cellpadding=\"5\" cellspacing=\"0\" border=\"0\">"; 
    foreach( $permNames as $permName => $nextToInputText ) 
    { 
        $Options = array( "Phrase" => $permName, "fieldName" => "Permissions[" . $permName . "]", "Value" => (isset($Permissions[$permName]) ? $Permissions[$permName] : ""), "altPhrase" => (isset($TSUE["TSUE_Language"]["phrase"][$permName . "_alt"]) ? $TSUE["TSUE_Language"]["phrase"][$permName . "_alt"] : ""), "nextToInputText" => $nextToInputText ); 
        $phrase = get_phrase($Options["Phrase"]); 
        if( 50 < strlen($phrase) ) 
        { 
            $phrase = "<span style=\"font-size: 11px;\">" . $phrase . "</span>"; 
        } 
 
        $List .= "
		<tr class=\"tableContentTR\">
			<td style=\"text-align: right; font-weight: bold; width: 350px; vertical-align: top;\" width=\"350\" valign=\"top\">" . $phrase . "</td>
			<td style=\"text-align: left; width: 300px;\" width=\"300\">
				" . inputbox($Options["fieldName"], $Options["Value"], "text", $Options["altPhrase"]) . " 
				<span class=\"smallPassiveText\">" . $Options["nextToInputText"] . "</span>
			</td>
		</tr>"; 
    } 
    $List .= "</table>"; 
    return $List; 
} 
 
function manageemailmembers() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $emailMembers = array( "from_name" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"], "from_email" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_sendmail_from"], "email_title" => "", "email_body" => "", "receive_admin_email" => 1, "membername" => "", "email" => "", "joindate" => "", "lastactivity" => "", "membergroup" => array(  ) ); 
    if( isset($_POST["emailMembers"]) ) 
    { 
        checkdemomode(); 
        $emailMembers = $_POST["emailMembers"]; 
        if( !isset($emailMembers["membergroup"]) ) 
        { 
            $emailMembers["membergroup"] = array(  ); 
        } 
 
        if( !isset($emailMembers["receive_admin_email"]) ) 
        { 
            $emailMembers["receive_admin_email"] = 0; 
        } 
 
        foreach( array( "from_name", "from_email", "email_title", "email_body" ) as $required ) 
        { 
            if( empty($emailMembers[$required]) ) 
            { 
                $errorDetected = true; 
            } 
 
        } 
        if( isset($errorDetected) ) 
        { 
            $formErrors[] = get_phrase("message_required_fields_error"); 
        } 
 
        if( !is_valid_email($emailMembers["from_email"]) ) 
        { 
            $formErrors[] = get_phrase("invalid_email"); 
        } 
 
        if( isset($formErrors) ) 
        { 
            $HTML .= errormessage(implode("<br />", $formErrors)); 
        } 
        else 
        { 
            $Where = ""; 
            $searchCriteria = array(  ); 
            if( $emailMembers["receive_admin_email"] ) 
            { 
                $searchCriteria[] = "privacy.receive_admin_email = 1"; 
            } 
 
            if( $emailMembers["membername"] ) 
            { 
                $searchCriteria[] = "m.membername = " . $TSUE["TSUE_Database"]->escape($emailMembers["membername"]); 
            } 
 
            if( $emailMembers["email"] ) 
            { 
                $searchCriteria[] = "m.email = " . $TSUE["TSUE_Database"]->escape($emailMembers["email"]); 
            } 
 
            if( $emailMembers["joindate"] ) 
            { 
                $joindate = list($day, $month, $year) = tsue_explode("/", $emailMembers["joindate"]); 
                $joindate = strtotime((string) $year . "/" . $month . "/" . $day); 
                $searchCriteria[] = "m.joindate > " . $joindate; 
            } 
 
            if( $emailMembers["lastactivity"] ) 
            { 
                $lastactivity = list($day, $month, $year) = tsue_explode("/", $emailMembers["lastactivity"]); 
                $lastactivity = strtotime((string) $year . "/" . $month . "/" . $day); 
                $searchCriteria[] = "m.lastactivity > " . $lastactivity; 
            } 
 
            $aaaala = false; 
            if( !empty($emailMembers["membergroup"]) ) 
            { 
                $aaaala = in_array(is_member_of("banned"), $emailMembers["membergroup"]); 
                $searchCriteria[] = "m.membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $emailMembers["membergroup"])) . ")"; 
            } 
 
            if( !empty($searchCriteria) ) 
            { 
                $WHERE = " WHERE " . implode(" AND ", $searchCriteria); 
            } 
 
            $Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, b.memberid AS isBanned, g.groupstyle, p.uploaded, p.downloaded 
			FROM tsue_members m 
			LEFT JOIN tsue_member_bans b USING(memberid)
			LEFT JOIN tsue_membergroups g USING(membergroupid) 
			LEFT JOIN tsue_member_profile p USING(memberid) 
			LEFT JOIN tsue_member_privacy privacy USING(memberid)
			" . $WHERE . " ORDER BY membername ASC"); 
            if( !($totalMembers = $TSUE["TSUE_Database"]->num_rows($Members)) ) 
            { 
                $HTML .= errormessage(get_phrase("no_members_matched")); 
            } 
            else 
            { 
                while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) ) 
                { 
                    if( !($aaaala && $Member["isBanned"]) ) 
                    { 
                        sent_mail($Member["email"], $Member["membername"], $emailMembers["email_title"], $emailMembers["email_body"], $emailMembers["from_email"], $emailMembers["from_name"], false); 
                    } 
 
                } 
                $HTML .= successmessage(get_phrase("email_members_email_was_sent", number_format($totalMembers))); 
            } 
 
        } 
 
    } 
 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_from_name"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[from_name]", $emailMembers["from_name"]) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_from_email"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[from_email]", $emailMembers["from_email"]) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_email_title"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[email_title]", $emailMembers["email_title"]) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_email_body"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => textarea("emailMembers[email_body]", $emailMembers["email_body"], true) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("global_search_criteria"), "colspan" => 2 ) ), "tableContentTDHeader"); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => "<input type=\"checkbox\" name=\"emailMembers[receive_admin_email]\" value=\"1\"" . (($emailMembers["receive_admin_email"] == 1 ? " checked=\"checked\"" : "")) . " /> " . get_phrase("email_members_only_to_members_receive_email_enabled") ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_name"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[membername]", $emailMembers["membername"], "text texthalf", NULL, false, true) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_email"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[email]", $emailMembers["email"], "text texthalf") ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_joindate"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[joindate]", $emailMembers["joindate"], "text texthalf", NULL, true) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_lastactivity"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[lastactivity]", $emailMembers["lastactivity"], "text texthalf", NULL, true) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_membergroup"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => aaaaaw("emailMembers[membergroup][]", $emailMembers["membergroup"], 3) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => aaaabm(get_phrase("member_manager_email_members"), get_phrase("button_reset")) ) )); 
    $HTML .= aaaabn(createtable(get_phrase("member_manager_email_members_alt"), $tableContents, 2)) . "
	<script type=\"text/javascript\">
		\$(\"#simpleForm\").submit(function(e)
		{
			TSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("sending_email") . "', false, false);
		});
	</script>"; 
    return $HTML; 
} 
 
function managesearchmembers() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $Search = array( "membername" => "", "email" => "", "passkey" => "", "joindate" => "", "lastactivity" => "", "ipaddress" => "", "uploaded" => "", "downloaded" => "", "ratio" => "", "ratioType" => "", "total_posts" => "", "membergroup" => array(  ) ); 
    if( isset($_POST["Search"]) ) 
    { 
        $Search = $_POST["Search"]; 
        $Where = ""; 
        $searchCriteria = array(  ); 
        if( !isset($Search["membergroup"]) ) 
        { 
            $Search["membergroup"] = array(  ); 
        } 
 
        if( $Search["membername"] ) 
        { 
            $searchCriteria[] = "m.membername LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["membername"]) . "%'"; 
        } 
 
        if( $Search["email"] ) 
        { 
            $searchCriteria[] = "m.email LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["email"]) . "%'"; 
        } 
 
        if( $Search["passkey"] ) 
        { 
            $searchCriteria[] = "m.passkey LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["passkey"]) . "%'"; 
        } 
 
        if( $Search["joindate"] ) 
        { 
            $joindate = list($day, $month, $year) = tsue_explode("/", $Search["joindate"]); 
            $joindate = strtotime((string) $year . "/" . $month . "/" . $day); 
            $searchCriteria[] = "m.joindate > " . $joindate; 
        } 
 
        if( $Search["lastactivity"] ) 
        { 
            $lastactivity = list($day, $month, $year) = tsue_explode("/", $Search["lastactivity"]); 
            $lastactivity = strtotime((string) $year . "/" . $month . "/" . $day); 
            $searchCriteria[] = "m.lastactivity > " . $lastactivity; 
        } 
 
        if( $Search["ipaddress"] ) 
        { 
            $searchCriteria[] = "m.ipaddress LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["ipaddress"]) . "%'"; 
        } 
 
        if( $Search["uploaded"] ) 
        { 
            $searchCriteria[] = "p.uploaded > " . (0 + $Search["uploaded"]); 
        } 
 
        if( $Search["downloaded"] ) 
        { 
            $searchCriteria[] = "p.downloaded > " . (0 + $Search["downloaded"]); 
        } 
 
        $Search["ratio"] = 0 + $Search["ratio"]; 
        if( $Search["ratio"] && in_array($Search["ratioType"], array( "=", ">", ">=", "<", "<=" )) ) 
        { 
            $searchCriteria[] = "(p.downloaded > 0 AND p.uploaded/p.downloaded " . $Search["ratioType"] . " " . $Search["ratio"] . ")"; 
        } 
 
        if( $Search["total_posts"] ) 
        { 
            $searchCriteria[] = "p.total_posts > " . (0 + $Search["total_posts"]); 
        } 
 
        if( !empty($Search["membergroup"]) ) 
        { 
            $searchCriteria[] = "m.membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $Search["membergroup"])) . ")"; 
        } 
 
        if( empty($searchCriteria) ) 
        { 
            $HTML .= errormessage(get_phrase("no_members_matched")); 
        } 
        else 
        { 
            $WHERE = " WHERE " . implode(" AND ", $searchCriteria); 
            $Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, m.joindate, m.lastactivity, m.ipaddress, g.groupstyle, p.uploaded, p.downloaded, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_privacy privacy USING(memberid) LEFT JOIN tsue_member_bans b USING(memberid)" . $WHERE . " ORDER BY m.membername ASC"); 
            if( !$TSUE["TSUE_Database"]->num_rows($Members) ) 
            { 
                $HTML .= errormessage(get_phrase("no_members_matched")); 
            } 
            else 
            { 
                $TSUE["do"] = "All Members"; 
                return aaaaaj($Members); 
            } 
 
        } 
 
    } 
 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_name"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[membername]", $Search["membername"], "text texthalf", NULL, false, true) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_email"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[email]", $Search["email"], "text texthalf") ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_passkey"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[passkey]", $Search["passkey"], "text texthalf") ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_joindate"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[joindate]", $Search["joindate"], "text texthalf", NULL, true) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_lastactivity"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[lastactivity]", $Search["lastactivity"], "text texthalf", NULL, true) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_ip"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[ipaddress]", $Search["ipaddress"], "text texthalf") ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_uploaded"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[uploaded]", $Search["uploaded"], "text texthalf") ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_downloaded"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[downloaded]", $Search["downloaded"], "text texthalf") ) )); 
    $aaaaao = array( "=" => "=", ">" => ">", ">=" => ">=", "<" => "<", "<=" => "<=" ); 
    $selectbox = selectbox("Search[ratioType]", $Search["ratioType"], $aaaaao, "select smallSelect"); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_ratio"), "align" => "right" ), array( "width" => "80%", "text" => $selectbox . inputbox("Search[ratio]", $Search["ratio"], "text texttiny") ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_total_posts"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[total_posts]", $Search["total_posts"], "text texthalf") ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_membergroup"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => aaaaaw("Search[membergroup][]", $Search["membergroup"], 3) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) )); 
    $HTML .= aaaabn(createtable(get_phrase("member_manager_search_members_alt"), $tableContents, 2)); 
    return $HTML; 
} 
 
function managepeers() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $delete = intval(getvar("delete")); 
    $keywords = trim(getvar("keywords")); 
    $searchType = trim(getvar("searchType")); 
    $WHERE = ""; 
    if( !in_array($searchType, array( "membername", "torrentname" )) ) 
    { 
        $searchType = "membername"; 
    } 
 
    if( $keywords && $searchType ) 
    { 
        switch( $searchType ) 
        { 
            case "membername": 
                $WHERE = " AND m.membername = " . $TSUE["TSUE_Database"]->escape($keywords); 
                break; 
            case "torrentname": 
                $WHERE = " AND t.name LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'"; 
                break; 
        } 
    } 
 
    if( getsetting("xbt", "active") ) 
    { 
        $orderBy["fieldname"] = "p.mtime"; 
    } 
    else 
    { 
        $orderBy["fieldname"] = "p.last_updated"; 
    } 
 
    $orderBy["type"] = "DESC"; 
    if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) ) 
    { 
        $allowedFieldNames = array( "m.membername", "t.name", "p.ipaddress", "p.total_uploaded", "p.upload_speed", "p.total_downloaded", "p.download_speed", "p.announced", "p.last_updated" ); 
        $allowedTypes = array( "DESC", "ASC" ); 
        if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) ) 
        { 
            $orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"]; 
            $orderBy["type"] = $_REQUEST["orderBy"]["type"]; 
        } 
 
    } 
 
    if( $delete ) 
    { 
        if( getsetting("xbt", "active") ) 
        { 
            $memberid = intval(getvar("memberid")); 
            $Peer = $TSUE["TSUE_Database"]->query_result("SELECT SQL_NO_CACHE uid FROM xbt_files_users WHERE fid = " . $TSUE["TSUE_Database"]->escape($delete) . " AND uid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
            if( $Peer ) 
            { 
                $TSUE["TSUE_Database"]->delete("xbt_files_users", "fid=" . $TSUE["TSUE_Database"]->escape($delete) . " AND uid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
                logadminaction(get_phrase("peers_peer_deleted", $delete)); 
            } 
 
        } 
        else 
        { 
            $Peer = $TSUE["TSUE_Database"]->query_result("SELECT SQL_NO_CACHE memberid FROM tsue_torrents_peers WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            if( $Peer ) 
            { 
                $TSUE["TSUE_Database"]->delete("tsue_torrents_peers", "pid=" . $TSUE["TSUE_Database"]->escape($delete)); 
                logadminaction(get_phrase("peers_peer_deleted", $delete)); 
            } 
 
        } 
 
    } 
 
    if( getsetting("xbt", "active") ) 
    { 
        $peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, m.membername, m.email, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE); 
    } 
    else 
    { 
        $peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, m.membername, m.email, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE); 
    } 
 
    $tableContents .= aaaaag(array( array( "width" => "25%", "text" => get_phrase("your_name") ), array( "width" => "15%", "text" => get_phrase("search_criteria_ip") ), array( "width" => "15%", "text" => get_phrase("stats_uploaded") ), array( "width" => "15%", "text" => get_phrase("stats_downloaded") ), array( "width" => "10%", "text" => get_phrase("torrents_peer_announced") ), array( "width" => "15%", "text" => get_phrase("torrents_peer_last_updated") ), array( "width" => "5%", "text" => get_phrase("global_action") ) ), "tableContentTR", "tableContentTDHeader"); 
    if( !$peerCount ) 
    { 
        $Pagination["1"] = ""; 
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_results_found"), "colspan" => 7 ) )); 
    } 
    else 
    { 
        $Pagination = pagination($peerCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&amp;orderBy[type]=" . $orderBy["type"] . (($keywords ? "&amp;keywords=" . urlencode($keywords) . "&amp;searchType=" . $searchType : ""))); 
        if( getsetting("xbt", "active") ) 
        { 
            $aaaalb["fieldname"] = str_replace(array( "p.ipaddress", "p.total_uploaded", "p.upload_speed", "p.total_downloaded", "p.download_speed", "p.last_updated" ), array( "m.ipaddress", "p.uploaded", "p.up_rate", "p.downloaded", "p.down_rate", "p.mtime" ), $orderBy["fieldname"]); 
            $Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.fid as pid, p.announced, p.port, p.downloaded as total_downloaded, p.uploaded as total_uploaded, p.mtime as last_updated, p.up_rate as upload_speed, p.down_rate as download_speed, t.tid, t.name, m.memberid, m.membername, m.ipaddress, m.email, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE . " ORDER BY " . $aaaalb["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]); 
        } 
        else 
        { 
            $Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.*, t.name, m.membername, m.email, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]); 
        } 
 
        while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) ) 
        { 
            $torrentName = strip_tags($Peer["name"]); 
            $aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Peer["memberid"] => array( "phrase" => getmembername($Peer["membername"], $Peer["groupstyle"]) ) )); 
            $aaaalc = aaaaae(array( "delete=" . $Peer["pid"] . "&memberid=" . $Peer["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            $tableContents .= aaaaag(array( array( "text" => $aaaakb . "<br />" . aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Peer["tid"], "<span title=\"" . $torrentName . "\">" . substr($torrentName, 0, 25) . "</span>", $torrentName) ), array( "text" => strip_tags($Peer["ipaddress"]) . ":" . intval($Peer["port"]) . ((getsetting("xbt", "active") ? "" : "<div style=\"font-size: 10px;\">" . get_phrase("peer_id") . ": " . friendlypeerid($Peer["peer_id"]) . "</div>")) ), array( "text" => friendly_size($Peer["total_uploaded"]) . "<br />" . friendly_size($Peer["upload_speed"]) . "/s" ), array( "text" => friendly_size($Peer["total_downloaded"]) . "<br />" . friendly_size($Peer["download_speed"]) . "/s" ), array( "text" => number_format($Peer["announced"]) ), array( "text" => convert_relative_time($Peer["last_updated"]) ), array( "text" => $aaaalc ) )); 
        } 
    } 
 
    $selectBox = "
	<select name=\"searchType\" class=\"selectNoWidth\">
		<option value=\"membername\"" . (($searchType == "membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>
		<option value=\"torrentname\"" . (($searchType == "torrentname" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>
	</select>"; 
    $searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) )); 
    $HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array(  ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />"; 
    $HTML .= createtable(get_phrase("member_manager_peers_alt"), $tableContents, 7, $Pagination["1"]); 
    $HTML .= "
	<div style=\"float: right; margin-top: 10px;\">
		" . aaaabn("
		" . get_phrase("torrents_sort_by") . "
		<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">
			<option value=\"m.membername\"" . (($orderBy["fieldname"] == "m.membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>
			<option value=\"t.name\"" . (($orderBy["fieldname"] == "t.name" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>
			<option value=\"p.ipaddress\"" . (($orderBy["fieldname"] == "p.ipaddress" ? " selected=\"selected\"" : "")) . ">" . get_phrase("search_criteria_ip") . "</option>
			<option value=\"p.total_uploaded\"" . (($orderBy["fieldname"] == "p.total_uploaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_uploaded") . "</option>
			<option value=\"p.upload_speed\"" . (($orderBy["fieldname"] == "p.upload_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_uploaded") . "</option>
			<option value=\"p.total_downloaded\"" . (($orderBy["fieldname"] == "p.total_downloaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_downloaded") . "</option>
			<option value=\"p.download_speed\"" . (($orderBy["fieldname"] == "p.download_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_downloaded") . "</option>
			<option value=\"p.announced\"" . (($orderBy["fieldname"] == "p.announced" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_announced") . "</option>
			<option value=\"p.last_updated\"" . (($orderBy["fieldname"] == "p.last_updated" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_last_updated") . "</option>
		</select>
		<select name=\"orderBy[type]\" class=\"selectNoWidth\">
			<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>
			<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>
		</select>
		<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "
	</div>"; 
    return $HTML; 
} 
 
function manageaccountupgrades() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $aaaald = aaaaae(array( "new=1" => array( "phrase" => get_phrase("upgrade_create_new") ) )); 
    $aaaale = aaaaae(array( "list_active_upgrades=1" => array( "phrase" => get_phrase("upgrade_list_active_upgrades") ) )); 
    $aaaalf = aaaaae(array( "list_active_upgrades=1&create_new_active_upgrade=1" => array( "phrase" => get_phrase("create_new_active_upgrade") ) )); 
    $enable_disable = intval(getvar("enable_disable")); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $list_active_upgrades = intval(getvar("list_active_upgrades")); 
    $promotion_id = intval(getvar("promotion_id")); 
    $create_new_active_upgrade = intval(getvar("create_new_active_upgrade")); 
    $edit_promotion_id = intval(getvar("edit_promotion_id")); 
    if( $list_active_upgrades ) 
    { 
        if( $promotion_id ) 
        { 
            $aaaalg = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, u.upgrade_title, m.membername FROM tsue_member_upgrades_promotions p LEFT JOIN tsue_member_upgrades u USING(upgrade_id) LEFT JOIN tsue_members m USING(memberid) WHERE p.promotion_id = " . $TSUE["TSUE_Database"]->escape($promotion_id) . " AND p.active = 1"); 
            if( !$aaaalg ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $buildQuery = array( "expiry_date" => TIMENOW ); 
            $TSUE["TSUE_Database"]->update("tsue_member_upgrades_promotions", $buildQuery, "promotion_id =" . $TSUE["TSUE_Database"]->escape($promotion_id)); 
            aaaabd("expired.php"); 
            logadminaction(get_phrase("upgrade_member_downrage_completed", $aaaalg["membername"], $aaaalg["upgrade_title"])); 
            $HTML .= successmessage(get_phrase("message_saved")); 
        } 
 
        addbreadcrumb(array( get_phrase("upgrade_list_active_upgrades") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;list_active_upgrades=1" )); 
        if( $create_new_active_upgrade ) 
        { 
            $membername = getvar("membername"); 
            $upgrade_id = intval(getvar("upgrade_id")); 
            addbreadcrumb(array( get_phrase("create_new_active_upgrade") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;list_active_upgrades=1&create_new_active_upgrade=1" )); 
            if( ispost() ) 
            { 
                return aaaalh($membername, $upgrade_id); 
            } 
 
            $inputbox = inputbox("membername", $membername, "text", "", false, true); 
            $formContents = aaaaan(get_phrase("upgrade_membername"), $inputbox); 
            $optionArray = array(  ); 
            $Upgrades = $TSUE["TSUE_Database"]->query("SELECT upgrade_id, upgrade_title FROM tsue_member_upgrades"); 
            while( $Upgrade = $TSUE["TSUE_Database"]->fetch_assoc($Upgrades) ) 
            { 
                $optionArray[$Upgrade["upgrade_id"]] = $Upgrade["upgrade_title"]; 
            } 
            $selectbox = selectbox("upgrade_id", $upgrade_id, $optionArray); 
            $formContents .= aaaaan(get_phrase("upgrade_account_upgrades"), $selectbox); 
            $HTML .= aaaabg($formContents); 
            return $HTML; 
        } 
 
        if( $edit_promotion_id ) 
        { 
            $aaaali = $TSUE["TSUE_Database"]->query_result("SELECT p.promotion_id, p.start_date, p.expiry_date, p.memberid, p.active, u.upgrade_title, u.upgrade_length, u.upgrade_length_type, t.txn_id, t.amount, t.currency, a.title as processor, m.membername, g.groupname, g.groupstyle FROM tsue_member_upgrades_promotions p LEFT JOIN tsue_member_upgrades u USING(upgrade_id) LEFT JOIN tsue_member_upgrades_transaction t USING(txn_id) LEFT JOIN tsue_member_upgrades_api a USING(api_id) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.promotion_id = " . $TSUE["TSUE_Database"]->escape($edit_promotion_id) . " AND p.active = 1"); 
            if( $aaaali ) 
            { 
                addbreadcrumb(array( $aaaali["upgrade_title"] . ": " . getmembername($aaaali["membername"], $aaaali["groupstyle"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;list_active_upgrades=1&edit_promotion_id=" . $edit_promotion_id )); 
                if( ispost() ) 
                { 
                    $expiry_date = getvar("expiry_date"); 
                    if( $expiry_date ) 
                    { 
                        $expiry_date = str_replace("/", "-", $expiry_date); 
                        $expiry_date = strtotime($expiry_date); 
                    } 
 
                    if( $expiry_date ) 
                    { 
                        $TSUE["TSUE_Database"]->update("tsue_member_upgrades_promotions", array( "expiry_date" => $expiry_date ), "promotion_id = " . $TSUE["TSUE_Database"]->escape($edit_promotion_id) . " AND active = 1"); 
                        $aaaali["expiry_date"] = $expiry_date; 
                        logadminaction(get_phrase("upgrade_item_has_been_updated", $aaaali["upgrade_title"] . ": " . getmembername($aaaali["membername"], $aaaali["groupstyle"]))); 
                        $HTML .= successmessage(get_phrase("message_saved")); 
                        handlerebuildcaches(false); 
                        $updateDone = true; 
                    } 
 
                    if( !$expiry_date ) 
                    { 
                        $HTML .= errormessage(get_phrase("message_required_fields_error")); 
                    } 
 
                } 
 
                if( !isset($updateDone) ) 
                { 
                    if( $aaaali["upgrade_length_type"] == "lifetime" || !$aaaali["expiry_date"] ) 
                    { 
                        $expiry_date = ""; 
                    } 
                    else 
                    { 
                        $expiry_date = date("d/m/Y", $aaaali["expiry_date"]); 
                    } 
 
                    $inputbox = inputbox("expiry_date", $expiry_date, "text", "", true); 
                    $formContents = aaaaan(get_phrase("upgrade_item_expires"), $inputbox); 
                    $HTML .= aaaabg($formContents); 
                    return $HTML; 
                } 
 
            } 
 
        } 
 
        $aaaalj = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as upgradesCount FROM tsue_member_upgrades_promotions WHERE active = 1"); 
        $Pagination = pagination($aaaalj["upgradesCount"], "list_active_upgrades=1"); 
        if( $aaaalj && $aaaalj["upgradesCount"] ) 
        { 
            $memberUpgrades = $TSUE["TSUE_Database"]->query("SELECT p.promotion_id, p.start_date, p.expiry_date, p.memberid, p.active, u.upgrade_title, u.upgrade_length, u.upgrade_length_type, t.txn_id, t.amount, t.currency, a.title as processor, m.membername, g.groupname, g.groupstyle FROM tsue_member_upgrades_promotions p LEFT JOIN tsue_member_upgrades u USING(upgrade_id) LEFT JOIN tsue_member_upgrades_transaction t USING(txn_id) LEFT JOIN tsue_member_upgrades_api a USING(api_id) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1 GROUP BY txn_id ORDER BY p.expiry_date " . $Pagination["0"]); 
            $tableContents = aaaaag(array( array( "width" => "15%", "text" => get_phrase("upgrade_membername") ), array( "width" => "25%", "text" => get_phrase("upgrade_item_title") ), array( "width" => "20%", "text" => get_phrase("upgrade_item_length") ), array( "width" => "15%", "text" => get_phrase("upgrade_item_start_date") ), array( "width" => "15%", "text" => get_phrase("upgrade_item_expires") ), array( "width" => "10%", "text" => get_phrase("global_action") ) ), NULL, "tableContentTDHeader"); 
            while( $Upgrade = $TSUE["TSUE_Database"]->fetch_assoc($memberUpgrades) ) 
            { 
                $noAction = 0; 
                if( $Upgrade["upgrade_length_type"] == "lifetime" || !$Upgrade["expiry_date"] ) 
                { 
                    $Upgrade["upgrade_length"] = ""; 
                    $Upgrade["upgrade_length_type"] = get_phrase("upgrade_lifetime"); 
                } 
                else 
                { 
                    if( $Upgrade["upgrade_length_type"] ) 
                    { 
                        $Upgrade["upgrade_length_type"] = get_phrase("upgrade_" . $Upgrade["upgrade_length_type"] . ((1 < $Upgrade["upgrade_length"] ? "s" : ""))); 
                    } 
 
                } 
 
                if( !$Upgrade["txn_id"] ) 
                { 
                    $Upgrade["txn_id"] = "N/A"; 
                } 
 
                if( $Upgrade["amount"] ) 
                { 
                    $upradePrice = get_phrase("upgrade_price", $Upgrade["amount"], strtoupper($Upgrade["currency"]), $Upgrade["upgrade_length"], $Upgrade["upgrade_length_type"]); 
                } 
                else 
                { 
                    $upradePrice = "[N/A]"; 
                } 
 
                $Upgrade["start_date"] = convert_relative_time($Upgrade["start_date"]); 
                if( !$Upgrade["active"] ) 
                { 
                    $Upgrade["expiry_date"] = get_phrase("upgrade_disabled"); 
                } 
                else 
                { 
                    if( !$Upgrade["expiry_date"] || $Upgrade["upgrade_length_type"] == "lifetime" ) 
                    { 
                        $Upgrade["expiry_date"] = get_phrase("upgrade_lifetime"); 
                    } 
                    else 
                    { 
                        if( $Upgrade["expiry_date"] <= TIMENOW ) 
                        { 
                            $Upgrade["expiry_date"] = get_phrase("upgrade_expired_waiting_cron"); 
                            $noAction = 1; 
                        } 
                        else 
                        { 
                            $Upgrade["expiry_date"] = convert_time($Upgrade["expiry_date"]); 
                        } 
 
                    } 
 
                } 
 
                $editLink = aaaaae(array( "list_active_upgrades=1&edit_promotion_id=" . $Upgrade["promotion_id"] => array( "phrase" => getimage("buttons/edit_s.png", get_phrase("button_edit")) ) )); 
                $aaaalk = ($noAction ? "" : aaaaae(array( "list_active_upgrades=1&promotion_id=" . $Upgrade["promotion_id"] => array( "phrase" => getimage("buttons/delete_s.png", get_phrase("upgrade_downgrade")), "confirmation" => get_phrase("upgrade_downgrade_confirm", $Upgrade["membername"]) ) ))); 
                $tableContents .= aaaaag(array( array( "width" => "15%", "text" => aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Upgrade["memberid"] => array( "phrase" => getmembername($Upgrade["membername"], $Upgrade["groupstyle"]) ) )) . " <span class=\"smallPassiveTextBlock\">" . aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Upgrade["memberid"] => array( "phrase" => getmembername($Upgrade["groupname"], $Upgrade["groupstyle"]) ) )) . "</span>" ), array( "width" => "25%", "text" => $Upgrade["upgrade_title"] . " <span class=\"smallPassiveTextBlock\">" . $Upgrade["processor"] . " [#" . $Upgrade["txn_id"] . "]</span>" ), array( "width" => "20%", "text" => $upradePrice ), array( "width" => "15", "text" => $Upgrade["start_date"] ), array( "width" => "15%", "text" => $Upgrade["expiry_date"] ), array( "width" => "10%", "text" => $editLink . $aaaalk ) )); 
            } 
            $HTML .= createtable(get_phrase("upgrade_list_active_upgrades") . " (" . number_format($aaaalj["upgradesCount"]) . ") (" . $aaaalf . ")", $tableContents, 6, $Pagination["1"]); 
            return $HTML; 
        } 
 
        return errormessage(get_phrase("upgrade_no_active_upgrades") . " " . $aaaalf); 
    } 
 
    if( $edit || $new ) 
    { 
        $Upgrade = array( "upgrade_title" => "", "upgrade_description" => "", "upgrade_length" => "", "upgrade_length_type" => "", "upgrade_membergroupid" => "", "upgrade_points" => "", "upgrade_invites" => "", "upgrade_upload" => "", "upgrade_price" => "", "upgrade_currency" => "", "viewpermissions" => array(  ), "upgrade_demote_to" => 0 ); 
        $aaaaam = ""; 
        if( $edit ) 
        { 
            $Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Upgrade ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
            if( !$Upgrade["viewpermissions"] ) 
            { 
                $Upgrade["viewpermissions"] = array(  ); 
            } 
            else 
            { 
                $Upgrade["viewpermissions"] = unserialize($Upgrade["viewpermissions"]); 
            } 
 
        } 
 
        if( isset($_POST["Upgrade"]) ) 
        { 
            $Upgrade = $_POST["Upgrade"]; 
            if( !isset($Upgrade["viewpermissions"]) || !$Upgrade["viewpermissions"] ) 
            { 
                $Upgrade["viewpermissions"] = array(  ); 
            } 
 
            if( !$Upgrade["upgrade_title"] ) 
            { 
                $formErrors[] = get_phrase("upgrade_title_error"); 
            } 
 
            if( !$Upgrade["upgrade_price"] ) 
            { 
                $formErrors[] = get_phrase("upgrade_price_error"); 
            } 
 
            if( !isset($formErrors) ) 
            { 
                if( $Upgrade["upgrade_length_type"] == "lifetime" ) 
                { 
                    $Upgrade["upgrade_length"] = 0; 
                } 
 
                $buildQuery = array( "upgrade_title" => $Upgrade["upgrade_title"], "upgrade_description" => $Upgrade["upgrade_description"], "upgrade_length" => $Upgrade["upgrade_length"], "upgrade_length_type" => $Upgrade["upgrade_length_type"], "upgrade_membergroupid" => $Upgrade["upgrade_membergroupid"], "upgrade_points" => $Upgrade["upgrade_points"], "upgrade_invites" => $Upgrade["upgrade_invites"], "upgrade_upload" => $Upgrade["upgrade_upload"], "upgrade_price" => $Upgrade["upgrade_price"], "upgrade_currency" => $Upgrade["upgrade_currency"], "upgrade_demote_to" => intval($Upgrade["upgrade_demote_to"]), "viewpermissions" => ($Upgrade["viewpermissions"] ? serialize($Upgrade["viewpermissions"]) : "") ); 
                if( $edit ) 
                { 
                    $TSUE["TSUE_Database"]->update("tsue_member_upgrades", $buildQuery, "upgrade_id=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $TSUE["TSUE_Database"]->insert("tsue_member_upgrades", $buildQuery); 
                } 
 
                logadminaction(get_phrase("upgrade_item_has_been_updated", $Upgrade["upgrade_title"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                handlerebuildcaches(false); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $inputbox = inputbox("Upgrade[upgrade_title]", $Upgrade["upgrade_title"]); 
            $formContents = aaaaan(get_phrase("upgrade_item_title"), $inputbox); 
            $textarea = textarea("Upgrade[upgrade_description]", $Upgrade["upgrade_description"], true); 
            $formContents .= aaaaan(get_phrase("upgrade_item_description"), $textarea); 
            $inputbox = inputbox("Upgrade[upgrade_length]", $Upgrade["upgrade_length"], "text textVeryTiny"); 
            $optionArray = array( "day" => get_phrase("upgrade_day"), "week" => get_phrase("upgrade_week"), "month" => get_phrase("upgrade_month"), "year" => get_phrase("upgrade_year"), "lifetime" => get_phrase("upgrade_lifetime") ); 
            $selectbox = selectbox("Upgrade[upgrade_length_type]", $Upgrade["upgrade_length_type"], $optionArray, "select smallSelect"); 
            $formContents .= aaaaan(get_phrase("upgrade_length"), $inputbox . $selectbox); 
            $Usergroups = aaaabf("Upgrade[upgrade_membergroupid]", $Upgrade["upgrade_membergroupid"], true); 
            $formContents .= aaaaan(get_phrase("upgrade_membergroup"), $Usergroups, get_phrase("upgrade_membergroup_alt")); 
            $Usergroups = aaaabf("Upgrade[upgrade_demote_to]", $Upgrade["upgrade_demote_to"], true, get_phrase("previous_membergroup")); 
            $formContents .= aaaaan(get_phrase("upgrade_demote_membergroup"), $Usergroups, get_phrase("upgrade_demote_membergroup_alt")); 
            $inputbox = inputbox("Upgrade[upgrade_points]", $Upgrade["upgrade_points"], "text textVeryTiny"); 
            $formContents .= aaaaan(get_phrase("upgrade_gift_points"), $inputbox); 
            $inputbox = inputbox("Upgrade[upgrade_invites]", $Upgrade["upgrade_invites"], "text textVeryTiny"); 
            $formContents .= aaaaan(get_phrase("upgrade_gift_invites"), $inputbox); 
            $inputbox = inputbox("Upgrade[upgrade_upload]", $Upgrade["upgrade_upload"], "text textVeryTiny", "GB"); 
            $formContents .= aaaaan(get_phrase("upgrade_gift_upload"), $inputbox); 
            $inputbox = inputbox("Upgrade[upgrade_price]", $Upgrade["upgrade_price"], "text textVeryTiny"); 
            $optionArray = currencycodes(); 
            $selectbox = selectbox("Upgrade[upgrade_currency]", $Upgrade["upgrade_currency"], $optionArray, "select smallSelect", "", true); 
            $formContents .= aaaaan(get_phrase("upgrade_item_price_currency"), $inputbox . $selectbox); 
            $Usergroups = aaaaaw("Upgrade[viewpermissions][]", $Upgrade["viewpermissions"]); 
            $formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all")); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    if( $enable_disable ) 
    { 
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
        $Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT upgrade_title FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
        if( $Upgrade ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_member_upgrades", $BuildQuery, "upgrade_id = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            logadminaction(get_phrase("upgrade_item_has_been_updated", $Upgrade["upgrade_title"] . " (" . $enable_disable . ")")); 
            handlerebuildcaches(false); 
        } 
 
    } 
 
    if( $delete ) 
    { 
        $Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT upgrade_title FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Upgrade ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_member_upgrades", "upgrade_id = " . $TSUE["TSUE_Database"]->escape($delete)); 
            logadminaction(get_phrase("upgrade_item_has_been_deleted", $Upgrade["upgrade_title"] . " (" . $delete . ")")); 
            handlerebuildcaches(false); 
        } 
 
    } 
 
    $Upgrades = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_member_upgrades ORDER BY active DESC, upgrade_price ASC"); 
    if( !$TSUE["TSUE_Database"]->num_rows($Upgrades) ) 
    { 
        $tableContents = errormessage(get_phrase("upgrade_account_no_items")); 
    } 
    else 
    { 
        $membergroupCache = array(  ); 
        $membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups"); 
        while( $membergroup = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) ) 
        { 
            $membergroupCache[$membergroup["membergroupid"]] = getmembername($membergroup["groupname"], $membergroup["groupstyle"]); 
        } 
        $tableContents = ""; 
        while( $Upgrade = $TSUE["TSUE_Database"]->fetch_assoc($Upgrades) ) 
        { 
            $linkClass = (!$Upgrade["active"] ? "linkDisabled" : ""); 
            $aaaall = aaaaae(array( "edit=" . $Upgrade["upgrade_id"] => array( "phrase" => $Upgrade["upgrade_title"], "class" => $linkClass ) )); 
            $aaaalm = aaaaae(array( "delete=" . $Upgrade["upgrade_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            if( $Upgrade["upgrade_length_type"] == "lifetime" ) 
            { 
                $Upgrade["upgrade_length"] = ""; 
                $Upgrade["upgrade_length_type"] = get_phrase("upgrade_lifetime"); 
            } 
            else 
            { 
                $Upgrade["upgrade_length_type"] = get_phrase("upgrade_" . $Upgrade["upgrade_length_type"] . ((1 < $Upgrade["upgrade_length"] ? "s" : ""))); 
            } 
 
            $upradePrice = get_phrase("upgrade_price", $Upgrade["upgrade_price"], strtoupper($Upgrade["upgrade_currency"]), $Upgrade["upgrade_length"], $Upgrade["upgrade_length_type"]); 
            $Promotions = ""; 
            if( $Upgrade["upgrade_membergroupid"] ) 
            { 
                $Promotions[] = get_phrase("upgrade_membergroup_x", $membergroupCache[$Upgrade["upgrade_membergroupid"]]); 
            } 
 
            if( $Upgrade["upgrade_points"] ) 
            { 
                $Promotions[] = get_phrase("upgrade_points_x", number_format($Upgrade["upgrade_points"])); 
            } 
 
            if( $Upgrade["upgrade_invites"] ) 
            { 
                $Promotions[] = get_phrase("upgrade_invites_x", number_format($Upgrade["upgrade_invites"])); 
            } 
 
            if( $Upgrade["upgrade_upload"] ) 
            { 
                $Promotions[] = get_phrase("upgrade_upload_x", friendly_size($Upgrade["upgrade_upload"] * 1073741824)); 
            } 
 
            if( $Promotions ) 
            { 
                $Promotions = "<br />" . implode(" - ", $Promotions); 
            } 
 
            if( $Upgrade["active"] ) 
            { 
                $aaaaln = aaaaae(array( "enable_disable=" . $Upgrade["upgrade_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
            } 
            else 
            { 
                $aaaaln = aaaaae(array( "enable_disable=" . $Upgrade["upgrade_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
            } 
 
            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaall . "<span class=\"smallPassiveText\">" . $upradePrice . " " . $Promotions . "</span>" ), array( "width" => "15%", "text" => $aaaaln . $aaaalm ) )); 
        } 
    } 
 
    $HTML .= createtable(get_phrase("upgrade_account_upgrades_alt"), $tableContents, 2, $aaaald . " - " . $aaaale); 
    return $HTML; 
} 
 
function aaaalh($membername, $upgrade_id) 
{ 
    global $TSUE; 
    $Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($upgrade_id)); 
    if( !$Upgrade ) 
    { 
        return errormessage(get_phrase("upgrade_invalid_item")); 
    } 
 
    $Member = $TSUE["TSUE_Database"]->query_result("SELECT memberid, membername, membergroupid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($membername)); 
    if( !$Member ) 
    { 
        return errormessage(get_phrase("member_not_found")); 
    } 
 
    $hash = md5($Member["memberid"] . $Upgrade["upgrade_title"] . $Upgrade["upgrade_id"] . generatepasskey(10)); 
    $BuildQuery = array( "hash" => $hash, "upgrade_id" => $Upgrade["upgrade_id"], "memberid" => $Member["memberid"], "completed" => 1, "created" => TIMENOW ); 
    $TSUE["TSUE_Database"]->insert("tsue_member_upgrades_purchases", $BuildQuery); 
    $history_id = $TSUE["TSUE_Database"]->insert_id(); 
    $BuildQuery = array( "history_id" => $history_id, "amount" => $Upgrade["upgrade_price"], "currency" => $Upgrade["upgrade_currency"], "state" => 1, "dateline" => TIMENOW, "api_id" => 1, "full_log" => "Added via Admin CP by " . $TSUE["TSUE_Member"]["membername"] ); 
    $TSUE["TSUE_Database"]->insert("tsue_member_upgrades_transaction", $BuildQuery); 
    $txn_id = $TSUE["TSUE_Database"]->insert_id(); 
    $buildPromotion = array(  ); 
    $buildPromotion["upgrade_id"] = $Upgrade["upgrade_id"]; 
    $buildPromotion["history_id"] = $history_id; 
    $buildPromotion["txn_id"] = $txn_id; 
    $buildPromotion["start_date"] = TIMENOW; 
    if( $Upgrade["upgrade_length"] && $Upgrade["upgrade_length_type"] != "lifetime" ) 
    { 
        $buildPromotion["expiry_date"] = strtotime("+" . $Upgrade["upgrade_length"] . " " . $Upgrade["upgrade_length_type"] . ((1 < $Upgrade["upgrade_length"] ? "s" : ""))); 
    } 
    else 
    { 
        $buildPromotion["expiry_date"] = 0; 
    } 
 
    $buildPromotion["memberid"] = $Member["memberid"]; 
    $previousUpgrade = $TSUE["TSUE_Database"]->query_result("SELECT old_membergroupid FROM tsue_member_upgrades_promotions WHERE memberid = " . $TSUE["TSUE_Database"]->escape($Member["memberid"]) . " AND (expiry_date = 0 OR expiry_date > " . TIMENOW . ") AND active = 1 ORDER BY start_date ASC LIMIT 1"); 
    if( $previousUpgrade ) 
    { 
        $buildPromotion["old_membergroupid"] = $previousUpgrade["old_membergroupid"]; 
    } 
    else 
    { 
        $buildPromotion["old_membergroupid"] = $Member["membergroupid"]; 
    } 
 
    $buildPromotion["active"] = 1; 
    $TSUE["TSUE_Database"]->insert("tsue_member_upgrades_promotions", $buildPromotion); 
    $updateAccount = array(  ); 
    $profileUpdate = array(  ); 
    if( $Upgrade["upgrade_membergroupid"] ) 
    { 
        $updateAccount["membergroupid"] = $Upgrade["upgrade_membergroupid"]; 
    } 
 
    if( $Upgrade["upgrade_points"] ) 
    { 
        $profileUpdate["points"] = array( "escape" => 0, "value" => "points+" . $Upgrade["upgrade_points"] ); 
    } 
 
    if( $Upgrade["upgrade_invites"] ) 
    { 
        $profileUpdate["invites_left"] = array( "escape" => 0, "value" => "invites_left+" . $Upgrade["upgrade_invites"] ); 
    } 
 
    if( $Upgrade["upgrade_upload"] ) 
    { 
        $profileUpdate["uploaded"] = array( "escape" => 0, "value" => "uploaded+" . $Upgrade["upgrade_upload"] * 1024 * 1024 * 1024 ); 
    } 
 
    if( $updateAccount ) 
    { 
        $TSUE["TSUE_Database"]->update("tsue_members", $updateAccount, "memberid=" . $TSUE["TSUE_Database"]->escape($Member["memberid"])); 
    } 
 
    if( $profileUpdate ) 
    { 
        profileupdate($Member["memberid"], $profileUpdate); 
    } 
 
    $subject = get_phrase("upgrade_thank_you_subject"); 
    $message = nl2br(get_phrase("upgrade_thank_you_message", $Member["membername"], $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"])); 
    sendpm($subject, $TSUE["TSUE_Member"]["memberid"], $Member["memberid"], $message); 
    aaaabd("expired.php"); 
    logadminaction(get_phrase("new_active_upgrade_added", $Upgrade["upgrade_title"], $Member["membername"] . " (" . $Member["memberid"] . ")")); 
    handlerebuildcaches(false); 
    handleprune(false); 
    header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&list_active_upgrades=1"); 
    exit(); 
} 
 
function managemutedmembers() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $aaaalo = aaaaae(array( "mute=1" => array( "phrase" => get_phrase("mute_member") ) )); 
    $mute = intval(getvar("mute")); 
    $lift = intval(getvar("lift")); 
    if( $lift ) 
    { 
        $mutedMember = $TSUE["TSUE_Database"]->query_result("SELECT w.*, m.membername, mm.membername AS mutedBy FROM tsue_member_mutes w LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (w.muted_by=mm.memberid) WHERE w.memberid=" . $TSUE["TSUE_Database"]->escape($lift)); 
        if( !$mutedMember ) 
        { 
            return errormessage(get_phrase("member_not_found")); 
        } 
 
        $TSUE["TSUE_Database"]->delete("tsue_member_mutes", "memberid=" . $TSUE["TSUE_Database"]->escape($lift)); 
        $BuildQuery = array( "muted" => 0 ); 
        $TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $mutedMember["memberid"]); 
        alert_member($mutedMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "mutes", 0, "mute_lifted"); 
        logadminaction(get_phrase("mute_has_been_lifted", $mutedMember["membername"], $TSUE["TSUE_Member"]["membername"])); 
        $HTML .= successmessage(get_phrase("message_saved")); 
        handlerebuildcaches(false); 
    } 
 
    if( $mute ) 
    { 
        $muteMember = array( "membername" => "", "memberid" => "", "muted_by" => $TSUE["TSUE_Member"]["memberid"], "mute_date" => TIMENOW, "end_date" => 0, "notes" => "" ); 
        if( isset($_POST["muteMember"]) ) 
        { 
            $muteMember = array_merge($muteMember, $_POST["muteMember"]); 
            if( !$muteMember["membername"] ) 
            { 
                $formErrors[] = get_phrase("member_not_found"); 
            } 
            else 
            { 
                $checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($muteMember["membername"])); 
                if( !$checkMember ) 
                { 
                    $formErrors[] = get_phrase("member_not_found"); 
                } 
                else 
                { 
                    $muteMember["memberid"] = $checkMember["memberid"]; 
                    $aaaalp = $muteMember["membername"]; 
                    unset($muteMember["membername"]); 
                } 
 
            } 
 
            $mutetype = getvar("mutetype", array(  ), false); 
            if( empty($mutetype) ) 
            { 
                $formErrors[] = get_phrase("message_required_fields_error"); 
            } 
            else 
            { 
                $mutetype = array_map("intval", $mutetype); 
                if( empty($mutetype) ) 
                { 
                    $formErrors[] = get_phrase("message_required_fields_error"); 
                } 
 
            } 
 
            $mutetype = implode("", $mutetype); 
            if( $muteMember["end_date"] ) 
            { 
                $end_date = list($day, $month, $year) = tsue_explode("/", $muteMember["end_date"]); 
                $end_date = strtotime((string) $year . "/" . $month . "/" . $day); 
                if( !checkdate($month, $day, $year) || $end_date <= TIMENOW ) 
                { 
                    $formErrors[] = get_phrase("mute_invalid_date"); 
                } 
 
            } 
 
            if( !isset($formErrors) ) 
            { 
                if( isset($end_date) ) 
                { 
                    $muteMember["end_date"] = $end_date; 
                } 
                else 
                { 
                    $muteMember["end_date"] = 0; 
                } 
 
                $TSUE["TSUE_Database"]->replace("tsue_member_mutes", $muteMember); 
                $BuildQuery = array( "muted" => $mutetype ); 
                $TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $muteMember["memberid"]); 
                alert_member($muteMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "mutes", 0, "mute_member"); 
                logadminaction(get_phrase("member_has_been_muted", $aaaalp, $TSUE["TSUE_Member"]["membername"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                handlerebuildcaches(false); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $inputbox = inputbox("muteMember[membername]", (isset($muteMember["membername"]) ? $muteMember["membername"] : $aaaalp), "text", NULL, false, true); 
            $formContents = aaaaan(get_phrase("your_name"), $inputbox); 
            $inputbox = inputbox("muteMember[notes]", $muteMember["notes"]); 
            $formContents .= aaaaan(get_phrase("mute_reason"), $inputbox, get_phrase("mute_reason_alt")); 
            $inputbox = inputbox("muteMember[end_date]", $muteMember["end_date"], "text texthalf", get_phrase("mute_length_alt"), true); 
            $formContents .= aaaaan(get_phrase("mute_length"), $inputbox, get_phrase("mute_length_alt")); 
            $inputbox = aaaalq(); 
            $formContents .= aaaaan(get_phrase("mute_type"), $inputbox); 
            $HTML .= aaaabg($formContents); 
            return $HTML; 
        } 
 
    } 
 
    $mutedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as mutedMembersCount FROM tsue_member_mutes"); 
    if( !$mutedMembersCount["mutedMembersCount"] ) 
    { 
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_muted_members") ) )); 
        return createtable(get_phrase("mute_reason_alt") . " (" . $aaaalo . ")", $tableContents); 
    } 
 
    $Pagination = pagination($mutedMembersCount["mutedMembersCount"]); 
    $mutedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, mm.membername AS mutedBy, p.muted FROM tsue_member_mutes b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.muted_by=mm.memberid) LEFT JOIN tsue_member_profile p ON (b.memberid=p.memberid) " . $Pagination["0"]); 
    while( $mutedMember = $TSUE["TSUE_Database"]->fetch_assoc($mutedMembers) ) 
    { 
        $listMutes = get_phrase("mute_type") . ": " . listmutes($mutedMember["muted"], false); 
        $notes = get_phrase("mute_reason") . ": " . (($mutedMember["notes"] ? strip_tags($mutedMember["notes"]) : "..")); 
        $mute_date = get_phrase("mute_started", convert_relative_time($mutedMember["mute_date"])); 
        $end_date = get_phrase("mute_end_date") . ": " . (($mutedMember["end_date"] && TIMENOW < $mutedMember["end_date"] ? convert_time($mutedMember["end_date"], "d/m/Y") : get_phrase("mutes_end_date_never"))); 
        $muted_by = get_phrase("muted_by") . ": " . $mutedMember["mutedBy"]; 
        $aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $mutedMember["memberid"] => array( "phrase" => $mutedMember["membername"] ) )); 
        $aaaalr = aaaaae(array( "lift=" . $mutedMember["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("lift_mute")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
        $tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $mute_date . " -- " . $end_date . " -- " . $muted_by . " -- " . $notes . " -- " . $listMutes . "</span>" ), array( "width" => "10%", "text" => $aaaalr ) )); 
    } 
    $HTML .= createtable(get_phrase("member_manager_muted_members_alt") . " (" . $aaaalo . ")", $tableContents, 2, $Pagination["1"]); 
    return $HTML; 
} 
 
function aaaalq() 
{ 
    return "
	<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">
		<tr>
			<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"1\" id=\"mute_in_comments\" /></td>
			<td><label for=\"mute_in_comments\">" . get_phrase("mute_in_comments") . "</label></td>
		</tr>
		<tr>
			<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"2\" id=\"mute_in_forums\" /></td>
			<td><label for=\"mute_in_forums\">" . get_phrase("mute_in_forums") . "</label></td>
		</tr>
		<tr>
			<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"3\" id=\"mute_in_shoutbox\" /></td>
			<td><label for=\"mute_in_shoutbox\">" . get_phrase("mute_in_shoutbox") . "</label></td>
		</tr>
		<tr>
			<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"4\" id=\"mute_in_pm\" /></td>
			<td><label for=\"mute_in_pm\">" . get_phrase("mute_in_pm") . "</label></td>
		</tr>
	</table>"; 
} 
 
function managepmmembers() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $pmMembers = array( "sender" => $TSUE["TSUE_Member"]["membername"], "subject" => "", "reply" => "", "joindate" => "", "lastactivity" => "", "membergroup" => array(  ) ); 
    if( isset($_POST["pmMembers"]) ) 
    { 
        $pmMembers = $_POST["pmMembers"]; 
        if( !isset($pmMembers["membergroup"]) ) 
        { 
            $pmMembers["membergroup"] = array(  ); 
        } 
 
        foreach( array( "sender", "subject", "reply" ) as $required ) 
        { 
            if( !isset($pmMembers[$required]) || empty($pmMembers[$required]) ) 
            { 
                $errorDetected = true; 
            } 
 
        } 
        if( isset($errorDetected) ) 
        { 
            $formErrors[] = get_phrase("message_required_fields_error"); 
        } 
        else 
        { 
            $Sender = $TSUE["TSUE_Database"]->query_result("SELECT m.memberid, m.membergroupid, m.gender, g.groupstyle FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE m.membername = " . $TSUE["TSUE_Database"]->escape($pmMembers["sender"])); 
            if( !$Sender ) 
            { 
                $formErrors[] = get_phrase("member_not_found"); 
            } 
 
        } 
 
        if( isset($formErrors) ) 
        { 
            $HTML .= errormessage(implode("<br />", $formErrors)); 
        } 
        else 
        { 
            $Where = ""; 
            $searchCriteria = array(  ); 
            if( $pmMembers["joindate"] ) 
            { 
                $joindate = list($day, $month, $year) = tsue_explode("/", $pmMembers["joindate"]); 
                $joindate = strtotime((string) $year . "/" . $month . "/" . $day); 
                $searchCriteria[] = "m.joindate > " . $joindate; 
            } 
 
            if( $pmMembers["lastactivity"] ) 
            { 
                $lastactivity = list($day, $month, $year) = tsue_explode("/", $pmMembers["lastactivity"]); 
                $lastactivity = strtotime((string) $year . "/" . $month . "/" . $day); 
                $searchCriteria[] = "m.lastactivity > " . $lastactivity; 
            } 
 
            if( !empty($pmMembers["membergroup"]) ) 
            { 
                $searchCriteria[] = "m.membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $pmMembers["membergroup"])) . ")"; 
            } 
 
            $WHERE = ""; 
            if( !empty($searchCriteria) ) 
            { 
                $WHERE = " WHERE " . implode(" AND ", $searchCriteria); 
            } 
 
            $Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, g.groupstyle, p.uploaded FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_privacy privacy USING(memberid)" . $WHERE . " ORDER BY membername ASC"); 
            if( !($totalMembers = $TSUE["TSUE_Database"]->num_rows($Members)) ) 
            { 
                $HTML .= errormessage(get_phrase("no_members_matched")); 
            } 
            else 
            { 
                while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) ) 
                { 
                    sendpm($pmMembers["subject"], $Sender["memberid"], $Member["memberid"], $pmMembers["reply"]); 
                } 
                $HTML .= successmessage(get_phrase("pm_members_pm_sent", number_format($totalMembers))); 
            } 
 
        } 
 
    } 
 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("sender"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[sender]", $pmMembers["sender"], "text texthalf", NULL, false, true) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("messages_subject"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[subject]", $pmMembers["subject"]) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("messages_message"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => textarea("pmMembers[reply]", $pmMembers["reply"], true) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("global_search_criteria"), "colspan" => 2 ) ), "tableContentTDHeader"); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_joindate"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[joindate]", $pmMembers["joindate"], "text texthalf", NULL, true) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_lastactivity"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[lastactivity]", $pmMembers["lastactivity"], "text texthalf", NULL, true) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_membergroup"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => aaaaaw("pmMembers[membergroup][]", $pmMembers["membergroup"], 3) ) )); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => aaaabm(get_phrase("button_send"), get_phrase("button_reset")) ) )); 
    $HTML .= aaaabn(createtable(get_phrase("member_manager_pm_members_alt"), $tableContents, 2)) . "
	<script type=\"text/javascript\">
		\$(\"#simpleForm\").submit(function(e)
		{
			TSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("sending_pm") . "', false, false);
		});
	</script>"; 
    return $HTML; 
} 
 
function managepromotions() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $aaaaam = ""; 
    $aaaals = aaaaae(array( "list_active_promotions=1" => array( "phrase" => get_phrase("promotions_list_active_promotions") ) )); 
    $aaaalt = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_a_new_promotion") ) )); 
    $list_active_promotions = intval(getvar("list_active_promotions")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $enable_disable = intval(getvar("enable_disable")); 
    $delete = intval(getvar("delete")); 
    if( $list_active_promotions ) 
    { 
        addbreadcrumb(array( get_phrase("promotions_list_active_promotions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;list_active_promotions=1" )); 
        $aaaalu = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as promotionCount FROM tsue_member_promotions"); 
        $Pagination = pagination($aaaalu["promotionCount"], "list_active_promotions=1"); 
        if( $aaaalu && $aaaalu["promotionCount"] ) 
        { 
            $aaaalv = $TSUE["TSUE_Database"]->query("SELECT p.*, m.membername, g.groupname, g.groupstyle, gg.groupname AS prevGroupname, gg.groupstyle AS prevGroupstyle FROM tsue_member_promotions p INNER JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g ON(m.membergroupid=g.membergroupid) LEFT JOIN tsue_membergroups gg ON(p.beforeMembergroupid=gg.membergroupid) " . $Pagination["0"]); 
            $tableContents = aaaaag(array( array( "width" => "15%", "text" => get_phrase("upgrade_membername") ), array( "width" => "15%", "text" => get_phrase("promotions_previous_membergroup") ), array( "width" => "15%", "text" => get_phrase("upgrade_item_start_date") ) ), NULL, "tableContentTDHeader"); 
            while( $Promotion = $TSUE["TSUE_Database"]->fetch_assoc($aaaalv) ) 
            { 
                $Promotion["date"] = convert_relative_time($Promotion["date"]); 
                $tableContents .= aaaaag(array( array( "width" => "40%", "text" => aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Promotion["memberid"] => array( "phrase" => getmembername($Promotion["membername"], $Promotion["groupstyle"]) ) )) . " <span class=\"smallPassiveTextBlock\">" . aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Promotion["memberid"] => array( "phrase" => getmembername($Promotion["groupname"], $Promotion["groupstyle"]) ) )) . "</span>" ), array( "width" => "40%", "text" => getmembername($Promotion["prevGroupname"], $Promotion["prevGroupstyle"]) ), array( "width" => "20%", "text" => $Promotion["date"] ) )); 
            } 
            $HTML .= createtable(get_phrase("promotions_list_active_promotions"), $tableContents, 3, $Pagination["1"]); 
            return $HTML; 
        } 
 
        return errormessage(get_phrase("promotions_no_active_promotion")); 
    } 
 
    if( $enable_disable ) 
    { 
        $BuildQuery = array( "promotionSystemActive" => array( "escape" => 0, "value" => "IF(promotionSystemActive>0,0,1)" ) ); 
        $Promotion = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_promotions WHERE pid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
        if( $Promotion ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_auto_promotions", $BuildQuery, "pid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            logadminaction(get_phrase("promotion_x_has_been_updated", $Promotion["title"] . " (" . $enable_disable . ")")); 
            $HTML .= successmessage(get_phrase("message_saved")); 
        } 
 
    } 
 
    if( $delete ) 
    { 
        $Promotion = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_promotions WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Promotion ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_auto_promotions", "pid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            logadminaction(get_phrase("promotion_x_has_been_deleted", $Promotion["title"] . " (" . $delete . ")")); 
        } 
 
    } 
 
    if( $edit || $new ) 
    { 
        $Promotion = array( "title" => "", "promotionSystemActive" => 0, "checkForMembergroupid" => 0, "promoteMembergroupid" => 0, "minDaysRegistered" => 0, "minUpload" => 0, "minRatio" => 0, "minPosts" => 0 ); 
        if( $edit ) 
        { 
            $Promotion = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_auto_promotions WHERE pid = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Promotion ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
        } 
 
        if( isset($_POST["Promotion"]) ) 
        { 
            $Promotion = $_POST["Promotion"]; 
            if( !$Promotion["title"] ) 
            { 
                $formErrors[] = get_phrase("please_enter_a_valid_title"); 
            } 
 
            if( !$Promotion["checkForMembergroupid"] || !$Promotion["promoteMembergroupid"] ) 
            { 
                $formErrors[] = get_phrase("select_promotion_membergroups_to_apply"); 
            } 
            else 
            { 
                if( $Promotion["checkForMembergroupid"] == $Promotion["promoteMembergroupid"] ) 
                { 
                    $formErrors[] = get_phrase("select_promotion_membergroups_to_apply"); 
                } 
 
            } 
 
            if( !$Promotion["minDaysRegistered"] && !$Promotion["minUpload"] && !$Promotion["minRatio"] && !$Promotion["minPosts"] ) 
            { 
                $formErrors[] = get_phrase("enter_at_least_one_promotion_rule"); 
            } 
 
            if( !isset($formErrors) ) 
            { 
                $buildQuery = array( "title" => $Promotion["title"], "promotionSystemActive" => $Promotion["promotionSystemActive"], "checkForMembergroupid" => $Promotion["checkForMembergroupid"], "promoteMembergroupid" => $Promotion["promoteMembergroupid"], "minDaysRegistered" => $Promotion["minDaysRegistered"], "minUpload" => $Promotion["minUpload"], "minRatio" => $Promotion["minRatio"], "minPosts" => $Promotion["minPosts"] ); 
                if( $edit ) 
                { 
                    $TSUE["TSUE_Database"]->update("tsue_auto_promotions", $buildQuery, "pid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $TSUE["TSUE_Database"]->insert("tsue_auto_promotions", $buildQuery); 
                    $edit = $TSUE["TSUE_Database"]->insert_id(); 
                } 
 
                logadminaction(get_phrase("promotion_x_has_been_updated", $Promotion["title"] . " (" . $edit . ")")); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $inputbox = radioyesno("Promotion[promotionSystemActive]", intval($Promotion["promotionSystemActive"])); 
            $formContents = aaaaan(get_phrase("promotions_system_active"), $inputbox); 
            $inputbox = inputbox("Promotion[title]", $Promotion["title"], "text"); 
            $formContents .= aaaaan(get_phrase("promotion_title"), $inputbox); 
            $Usergroups = aaaabf("Promotion[checkForMembergroupid]", $Promotion["checkForMembergroupid"], true); 
            $formContents .= aaaaan(get_phrase("promotion_checkfor_membergroupid"), $Usergroups, get_phrase("promotion_checkfor_membergroupid_alt")); 
            $Usergroups = aaaabf("Promotion[promoteMembergroupid]", $Promotion["promoteMembergroupid"], true); 
            $formContents .= aaaaan(get_phrase("promotion_promoteMembergroupid"), $Usergroups, get_phrase("promotion_promoteMembergroupid_alt")); 
            $inputbox = inputbox("Promotion[minDaysRegistered]", $Promotion["minDaysRegistered"], "text texttiny"); 
            $formContents .= aaaaan(get_phrase("promotion_minDaysRegistered"), $inputbox, get_phrase("promotion_minDaysRegistered_alt")); 
            $inputbox = inputbox("Promotion[minUpload]", $Promotion["minUpload"], "text texttiny", "GB"); 
            $formContents .= aaaaan(get_phrase("promotion_minUpload"), $inputbox, get_phrase("promotion_minUpload_alt")); 
            $inputbox = inputbox("Promotion[minRatio]", $Promotion["minRatio"], "text texttiny"); 
            $formContents .= aaaaan(get_phrase("promotion_minRatio"), $inputbox, get_phrase("promotion_minRatio_alt")); 
            $inputbox = inputbox("Promotion[minPosts]", $Promotion["minPosts"], "text texttiny"); 
            $formContents .= aaaaan(get_phrase("promotion_minPosts"), $inputbox, get_phrase("promotion_minPosts_alt")); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    $Promotions = $TSUE["TSUE_Database"]->query("SELECT p.*, g.groupname, g.groupstyle, gg.groupname as groupname2, gg.groupstyle as groupstyle2 FROM tsue_auto_promotions p LEFT JOIN tsue_membergroups g ON (p.checkForMembergroupid=g.membergroupid) LEFT JOIN tsue_membergroups gg ON (p.promoteMembergroupid=gg.membergroupid) ORDER BY p.promotionSystemActive DESC, p.title ASC"); 
    if( !$TSUE["TSUE_Database"]->num_rows($Promotions) ) 
    { 
        return errormessage(get_phrase("no_promotion_found", "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1")); 
    } 
 
    $tableContents = ""; 
    while( $Promotion = $TSUE["TSUE_Database"]->fetch_assoc($Promotions) ) 
    { 
        $linkClass = (!$Promotion["promotionSystemActive"] ? "linkDisabled" : ""); 
        $aaaalw = aaaaae(array( "edit=" . $Promotion["pid"] => array( "phrase" => $Promotion["title"], "class" => $linkClass ) )); 
        $aaaalx = aaaaae(array( "delete=" . $Promotion["pid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
        if( $Promotion["promotionSystemActive"] ) 
        { 
            $aaaaly = aaaaae(array( "enable_disable=" . $Promotion["pid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
        } 
        else 
        { 
            $aaaaly = aaaaae(array( "enable_disable=" . $Promotion["pid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
        } 
 
        $aaaalz = getmembername($Promotion["groupname"], $Promotion["groupstyle"]) . " => " . getmembername($Promotion["groupname2"], $Promotion["groupstyle2"]); 
        $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaalw . "<span class=\"smallPassiveText\">(" . $aaaalz . ")</span>" ), array( "width" => "20%", "text" => $aaaaly . $aaaalx, "align" => "right" ) )); 
    } 
    $HTML .= createtable(get_phrase("promotions"), $tableContents, 2, $aaaals . " - " . $aaaalt); 
    return $HTML; 
} 
 
function manageduplicateips() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $counter = $TSUE["TSUE_Database"]->query("
		SELECT ipaddress, count(*) as tot 
		FROM tsue_members
		GROUP BY ipaddress 
		HAVING tot > 1 
		ORDER BY ipaddress"); 
    if( !$TSUE["TSUE_Database"]->num_rows($counter) ) 
    { 
        return errormessage(get_phrase("message_nothing_found")); 
    } 
 
    $x = ""; 
    while( $ipaddress = $TSUE["TSUE_Database"]->fetch_assoc($counter) ) 
    { 
        $ipaddress["ipaddress"] = preg_replace("/[^0-9-\.]/u", "-", trim($ipaddress["ipaddress"])); 
        if( $ipaddress["ipaddress"] != "" ) 
        { 
            $x .= "'" . $ipaddress["ipaddress"] . "',"; 
        } 
 
    } 
    $x .= "'XXX'"; 
    $Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, m.joindate, m.lastactivity, m.ipaddress, g.groupstyle, p.uploaded, p.downloaded, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_privacy privacy USING(memberid) LEFT JOIN tsue_member_bans b USING(memberid) WHERE m.ipaddress IN (" . $x . ") ORDER BY m.ipaddress"); 
    $TSUE["do"] = "All Members"; 
    return aaaaaj($Members); 
} 
 
function aaaaak() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $keywords = trim(getvar("keywords")); 
    $searchType = trim(getvar("searchType")); 
    $fixAll = intval(getvar("fixAll")); 
    $WHERE = ""; 
    if( !in_array($searchType, array( "membername", "torrentname" )) ) 
    { 
        $searchType = "membername"; 
    } 
 
    if( $keywords && $searchType ) 
    { 
        switch( $searchType ) 
        { 
            case "membername": 
                $WHERE = " AND m.membername = " . $TSUE["TSUE_Database"]->escape($keywords); 
                break; 
            case "torrentname": 
                $WHERE = " AND t.name LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'"; 
                break; 
        } 
    } 
 
    $orderBy["fieldname"] = "m.memberid"; 
    $orderBy["type"] = "DESC"; 
    if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) ) 
    { 
        $allowedFieldNames = array( "m.membername", "t.name", "t.size", "p.total_uploaded", "p.active", "p.upload_speed", "p.total_downloaded", "p.download_speed" ); 
        $allowedTypes = array( "DESC", "ASC" ); 
        if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) ) 
        { 
            $orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"]; 
            $orderBy["type"] = $_REQUEST["orderBy"]["type"]; 
        } 
 
    } 
 
    if( getsetting("xbt", "active") ) 
    { 
        $peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, t.size, t.options, m.membername, m.email, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE); 
    } 
    else 
    { 
        $peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, t.size, t.options, m.membername, m.email, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE); 
    } 
 
    $tableContents .= aaaaag(array( array( "width" => "18%", "text" => get_phrase("your_name") ), array( "width" => "29%", "text" => get_phrase("torrent_name") . "/" . get_phrase("torrents_size") ), array( "width" => "15%", "text" => get_phrase("torrents_peer_downloaded") ), array( "width" => "15%", "text" => get_phrase("torrents_peer_uploaded") ), array( "width" => "16%", "text" => get_phrase("torrent_hitrun_ratio") ), array( "width" => "7%", "text" => get_phrase("stats_ratio") ) ), "tableContentTR", "tableContentTDHeader"); 
    if( !$peerCount ) 
    { 
        $Pagination["1"] = ""; 
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_results_found"), "colspan" => 6 ) )); 
    } 
    else 
    { 
        if( $fixAll ) 
        { 
            if( getsetting("xbt", "active") ) 
            { 
                $Peers = $TSUE["TSUE_Database"]->query("SELECT fid, uid FROM xbt_files_users WHERE isWarned=1"); 
                while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) ) 
                { 
                    aaaama($Peer["fid"], $Peer["uid"]); 
                } 
            } 
            else 
            { 
                $Peers = $TSUE["TSUE_Database"]->query("SELECT pid, tid, memberid FROM tsue_torrents_peers WHERE isWarned=1"); 
                while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) ) 
                { 
                    aaaamb($Peer["pid"], $Peer["memberid"], $Peer["tid"]); 
                } 
            } 
 
        } 
 
        if( isset($_POST["fixRatios"]) && is_array($_POST["fixRatios"]) && !empty($_POST["fixRatios"]) ) 
        { 
            if( getsetting("xbt", "active") ) 
            { 
                foreach( $_POST["fixRatios"] as $array ) 
                { 
                    list($fid, $uid) = tsue_explode("|", $array); 
                    aaaama($fid, $uid); 
                } 
            } 
            else 
            { 
                foreach( $_POST["fixRatios"] as $array ) 
                { 
                    list($pid, $memberid, $tid) = tsue_explode("|", $array); 
                    aaaamb($pid, $memberid, $tid); 
                } 
            } 
 
        } 
 
        $Pagination = pagination($peerCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&amp;orderBy[type]=" . $orderBy["type"] . (($keywords ? "&amp;keywords=" . urlencode($keywords) . "&amp;searchType=" . $searchType : ""))); 
        if( getsetting("xbt", "active") ) 
        { 
            $aaaalb["fieldname"] = str_replace(array( "p.total_uploaded", "p.upload_speed", "p.total_downloaded", "p.download_speed" ), array( "p.uploaded", "p.up_rate", "p.downloaded", "p.down_rate" ), $orderBy["fieldname"]); 
            $Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.fid, p.uid, p.uploaded as total_uploaded, p.downloaded as total_downloaded, p.up_rate as upload_speed, p.down_rate as download_speed, p.active, t.tid, t.name, t.size, t.options, m.memberid, m.membername, m.email, m.joindate, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE . " ORDER BY " . $aaaalb["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]); 
        } 
        else 
        { 
            $Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.*, t.name, t.size, t.options, m.membername, m.email, m.joindate, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]); 
        } 
 
        while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) ) 
        { 
            $torrentOptions = unserialize($Peer["options"]); 
            $torrentName = strip_tags($Peer["name"]); 
            $aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Peer["memberid"] => array( "phrase" => getmembername($Peer["membername"], $Peer["groupstyle"]) ) )); 
            $tableContents .= aaaaag(array( array( "text" => $aaaakb . "<div class=\"verySmall\">" . get_phrase("memberinfo_membersince", convert_time($Peer["joindate"], "d-m-Y")) . "</div>" ), array( "text" => aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Peer["tid"], substr($torrentName, 0, 30), $torrentName) . "<div class=\"verySmall\">" . friendly_size($Peer["size"]) . "</div>" ), array( "text" => friendly_size($Peer["total_downloaded"]) . "<br />" . friendly_size($Peer["download_speed"]) . "/s" ), array( "text" => friendly_size($Peer["total_uploaded"]) . "<br />" . friendly_size($Peer["upload_speed"]) . "/s" ), array( "text" => (isset($torrentOptions["hitRunRatio"]) ? 0 + $torrentOptions["hitRunRatio"] : 0) ), array( "text" => "<label>" . member_ratio($Peer["total_uploaded"], $Peer["size"]) . "<div><input type=\"checkbox\" name=\"fixRatios[]\" value=\"" . ((getsetting("xbt", "active") ? $Peer["fid"] . "|" . $Peer["uid"] : $Peer["pid"] . "|" . $Peer["memberid"] . "|" . $Peer["tid"])) . "\" /></div></label>" ) ), ($Peer["active"] ? "" : "greyBackground")); 
        } 
    } 
 
    $selectBox = "
	<select name=\"searchType\" class=\"selectNoWidth\">
		<option value=\"membername\"" . (($searchType == "membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>
		<option value=\"torrentname\"" . (($searchType == "torrentname" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>
	</select>"; 
    if( $peerCount ) 
    { 
        $searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) )); 
        $HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array(  ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />"; 
    } 
 
    if( !$peerCount ) 
    { 
        $fixRatios = ""; 
    } 
    else 
    { 
        $fixRatios = aaaaag(array( array( "colspan" => 6, "text" => aaaabm(get_phrase("fix_remove_hit_run")), "align" => "right" ) )); 
    } 
 
    $aaaamc = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&fixAll=1" => array( "phrase" => get_phrase("remove_all_hit_run_warnings") ) )); 
    $HTML .= aaaabn(createtable(get_phrase("hit_and_runners"), $tableContents . $fixRatios, 6, $aaaamc . $Pagination["1"])); 
    if( $peerCount ) 
    { 
        $HTML .= "
		<div style=\"margin-top: 10px;\">
			<span style=\"float: left; margin-right: 8px; padding: 6px 10px; font-size: 11px; color: #000;\" class=\"greyBackground\">" . get_phrase("inactive_peer") . "</span>
			" . aaaabn("
			" . get_phrase("torrents_sort_by") . "
			<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">
				<option value=\"p.active\"" . (($orderBy["fieldname"] == "p.active" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_active") . "</option>
				<option value=\"m.membername\"" . (($orderBy["fieldname"] == "m.membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>
				<option value=\"t.name\"" . (($orderBy["fieldname"] == "t.name" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>
				<option value=\"t.size\"" . (($orderBy["fieldname"] == "t.size" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_size") . "</option>
				<option value=\"p.total_uploaded\"" . (($orderBy["fieldname"] == "p.total_uploaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_uploaded") . "</option>			
				<option value=\"p.upload_speed\"" . (($orderBy["fieldname"] == "p.upload_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_uploaded") . "</option>
				<option value=\"p.total_downloaded\"" . (($orderBy["fieldname"] == "p.total_downloaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_downloaded") . "</option>			
				<option value=\"p.download_speed\"" . (($orderBy["fieldname"] == "p.download_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_downloaded") . "</option>
			</select>
			<select name=\"orderBy[type]\" class=\"selectNoWidth\">
				<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>
				<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>
			</select>
			<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "
		</div>"; 
    } 
 
    return $HTML; 
} 
 
function aaaamb($pid = 0, $memberid = 0, $tid = 0) 
{ 
    global $TSUE; 
    if( $pid && $memberid && $tid ) 
    { 
        $Torrent = $TSUE["TSUE_Database"]->query_result("SELECT size FROM tsue_torrents WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid)); 
        if( $Torrent && $Torrent["size"] ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_torrents_peers", array( "isWarned" => 0, "total_uploaded" => array( "escape" => 0, "value" => "IF(total_downloaded>0 && total_uploaded<" . $Torrent["size"] . "," . $Torrent["size"] . ",total_uploaded)" ) ), "pid=" . $TSUE["TSUE_Database"]->escape($pid)); 
            $TSUE["TSUE_Database"]->update("tsue_member_profile", array( "hitRuns" => array( "escape" => 0, "value" => "IF(hitRuns>0,hitRuns-1,0)" ) ), "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
        } 
 
    } 
 
} 
 
function aaaama($fid = 0, $uid = 0) 
{ 
    global $TSUE; 
    if( $fid && $uid ) 
    { 
        $Torrent = $TSUE["TSUE_Database"]->query_result("SELECT size FROM tsue_torrents WHERE tid = " . $TSUE["TSUE_Database"]->escape($fid)); 
        if( $Torrent && $Torrent["size"] ) 
        { 
            $TSUE["TSUE_Database"]->update("xbt_files_users", array( "isWarned" => 0, "uploaded" => array( "escape" => 0, "value" => "IF(downloaded>0 && uploaded<" . $Torrent["size"] . "," . $Torrent["size"] . ",uploaded)" ) ), "fid=" . $TSUE["TSUE_Database"]->escape($fid) . " AND uid=" . $TSUE["TSUE_Database"]->escape($uid)); 
            $TSUE["TSUE_Database"]->update("tsue_member_profile", array( "hitRuns" => array( "escape" => 0, "value" => "IF(hitRuns>0,hitRuns-1,0)" ) ), "memberid=" . $TSUE["TSUE_Database"]->escape($uid)); 
        } 
 
    } 
 
} 
 
function managetestpermissions() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $membername = ""; 
    if( isset($_POST["membername"]) ) 
    { 
        $checkMember = $TSUE["TSUE_Database"]->query_result("SELECT membername FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($_POST["membername"])); 
        if( !$checkMember ) 
        { 
            return errormessage(get_phrase("member_not_found")); 
        } 
 
        cookie_set("testPermissions", $_POST["membername"]); 
        header("Location: " . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]); 
        exit(); 
    } 
 
    $aaaaam = ""; 
    $inputbox = inputbox("membername", $membername, "text texthalf", get_phrase("test_permissions_input"), false, true); 
    $formContents = aaaaan(get_phrase("test_permissions"), $inputbox, get_phrase("test_permissions_info")); 
    $HTML .= aaaabg($formContents, $aaaaam); 
    return $HTML; 
} 
 
function manageadministrators() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $editPerm = intval(getvar("editPerm")); 
    $new = intval(getvar("new")); 
    $delete = intval(getvar("delete")); 
    if( $delete ) 
    { 
        $Member = $TSUE["TSUE_Database"]->query_result("SELECT p.*, m.membername, g.groupname, g.groupstyle FROM tsue_staffcp_permissions p LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.memberid=" . $TSUE["TSUE_Database"]->escape($delete)); 
        if( !$Member ) 
        { 
            return errormessage(get_phrase("member_not_found")); 
        } 
 
        $TSUE["TSUE_Database"]->delete("tsue_staffcp_permissions", "memberid=" . $TSUE["TSUE_Database"]->escape($delete)); 
        $Phrase = get_phrase("x_admin_perms_deleted", $Member["membername"] . " (" . $Member["memberid"] . ")"); 
        logadminaction($Phrase); 
        handlerebuildcaches(false); 
        handleprune(false); 
        return successmessage($Phrase); 
    } 
 
    if( $new ) 
    { 
        addbreadcrumb(array( get_phrase("create_new_administrator") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;&new=1" )); 
        return aaaamd(); 
    } 
 
    if( $editPerm ) 
    { 
        $Member = $TSUE["TSUE_Database"]->query_result("SELECT p.*, m.membername, m.membergroupid, g.groupname, g.groupstyle, g.permissions as groupPermissions FROM tsue_staffcp_permissions p LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.memberid=" . $TSUE["TSUE_Database"]->escape($editPerm)); 
        if( !$Member ) 
        { 
            return errormessage(get_phrase("member_not_found")); 
        } 
 
        addbreadcrumb(array( getmembername($Member["membername"], $Member["groupstyle"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;&editPerm=" . $editPerm )); 
        $Permissions = unserialize($Member["permissions"]); 
        return aaaame($Permissions, $Member); 
    } 
 
    $Members = $TSUE["TSUE_Database"]->query("SELECT p.memberid, m.membername, g.groupname, g.groupstyle FROM tsue_staffcp_permissions p LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid)"); 
    while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) ) 
    { 
        $membername = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&editPerm=" . $Member["memberid"] => array( "phrase" => getmembername($Member["membername"], $Member["groupstyle"]) ) )); 
        $deleteLink = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&delete=" . $Member["memberid"] => array( "phrase" => get_phrase("button_delete") ) )); 
        $tableContents .= aaaaag(array( array( "width" => "85%", "text" => $membername . " <span class=\"smallPassiveText\">" . $Member["groupname"] . " [" . $deleteLink . "]</span>" ), array( "width" => "15%", "text" => "", "align" => "right" ) )); 
    } 
    $HTML .= createtable(get_phrase("administrators"), $tableContents, 2, aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" => array( "phrase" => get_phrase("create_new_administrator") ) ))); 
    return $HTML; 
} 
 
function aaaamd() 
{ 
    global $TSUE; 
    $staffCPAvailableActions = aaaamf(); 
    if( ispost() ) 
    { 
        $membername = (isset($_POST["membername"]) ? $_POST["membername"] : ""); 
        if( !$membername ) 
        { 
            return errormessage(get_phrase("member_not_found")); 
        } 
 
        $Member = $TSUE["TSUE_Database"]->query_result("SELECT m.memberid, m.membername, m.membergroupid, g.permissions FROM tsue_members m INNER JOIN tsue_membergroups g USING(membergroupid) WHERE m.membername = " . $TSUE["TSUE_Database"]->escape($membername)); 
        if( !$Member ) 
        { 
            return errormessage(get_phrase("member_not_found")); 
        } 
 
        $memberPermissions = unserialize($Member["permissions"]); 
        if( !isset($memberPermissions["canlogin_admincp"]) || !$memberPermissions["canlogin_admincp"] ) 
        { 
            return errormessage(get_phrase("insufficient_permission", TSUE_ADMINCP_URL . "?action=Member Manager&amp;do=Membergroups&amp;edit=" . $Member["membergroupid"] . "#administratorpermissions")); 
        } 
 
        $newPerms = array(  ); 
        if( isset($_POST["permissions"]) && $_POST["permissions"] ) 
        { 
            foreach( $_POST["permissions"] as $Action ) 
            { 
                $newPerms[$Action] = 1; 
            } 
        } 
 
        $staffCPAvailableActions = array_merge($staffCPAvailableActions, $newPerms); 
        $TSUE["TSUE_Database"]->replace("tsue_staffcp_permissions", array( "memberid" => $Member["memberid"], "permissions" => serialize($staffCPAvailableActions) )); 
        $Phrase = get_phrase("x_admin_perms_updated", $Member["membername"] . " (" . $Member["memberid"] . ")"); 
        logadminaction($Phrase); 
        handlerebuildcaches(false); 
        handleprune(false); 
        return successmessage($Phrase); 
    } 
    else 
    { 
        $Checkboxes = "
	<div>" . get_phrase("your_name") . ":<br />" . inputbox("membername", "", "text texthalf", get_phrase("administrator_tip"), false, true) . "</div>
	<ul class=\"adminPerms\">"; 
        ksort($staffCPAvailableActions); 
        foreach( $staffCPAvailableActions as $Action => $Perm ) 
        { 
            $Checkboxes .= "
		<li><label><input type=\"checkbox\" name=\"permissions[]\" value=\"" . $Action . "\"" . (($Perm ? " checked=\"checked\"" : "")) . " /> " . $Action . "</label></li>"; 
        } 
        $Checkboxes .= "
	<div class=\"clear\"></div>
	</ul>
	" . aaaabm(get_phrase("create_new_administrator"), get_phrase("button_reset")); 
        $tableContents = aaaaag(array( array( "width" => "100%", "text" => $Checkboxes ) )); 
        $aaaaam = array( "new" => 1 ); 
        $aaaamg = "<input type=\"checkbox\" name=\"checkALL\" value=\"permissions[]\" />"; 
        return aaaabn(createtable(get_phrase("administrators_alt"), $tableContents, 1, $aaaamg), $aaaaam); 
    } 
 
} 
 
function aaaame($Permissions, $Member) 
{ 
    global $TSUE; 
    $staffCPAvailableActions = aaaamf(); 
    if( ispost() ) 
    { 
        $memberPermissions = unserialize($Member["groupPermissions"]); 
        if( !isset($memberPermissions["canlogin_admincp"]) || !$memberPermissions["canlogin_admincp"] ) 
        { 
            return errormessage(get_phrase("insufficient_permission", TSUE_ADMINCP_URL . "?action=Member Manager&amp;do=Membergroups&amp;edit=" . $Member["membergroupid"] . "#administratorpermissions")); 
        } 
 
        $newPerms = array(  ); 
        if( isset($_POST["permissions"]) && $_POST["permissions"] ) 
        { 
            foreach( $_POST["permissions"] as $Action ) 
            { 
                $newPerms[$Action] = 1; 
            } 
        } 
 
        $staffCPAvailableActions = array_merge($staffCPAvailableActions, $newPerms); 
        $TSUE["TSUE_Database"]->replace("tsue_staffcp_permissions", array( "memberid" => $Member["memberid"], "permissions" => serialize($staffCPAvailableActions) )); 
        $Phrase = get_phrase("x_admin_perms_updated", $Member["membername"] . " (" . $Member["memberid"] . ")"); 
        logadminaction($Phrase); 
        handlerebuildcaches(false); 
        handleprune(false); 
        return successmessage($Phrase); 
    } 
    else 
    { 
        $staffCPAvailableActions = array_merge($staffCPAvailableActions, $Permissions); 
        $Checkboxes = "
	<ul class=\"adminPerms\">"; 
        ksort($staffCPAvailableActions); 
        foreach( $staffCPAvailableActions as $Action => $Perm ) 
        { 
            $Checkboxes .= "
		<li><label><input type=\"checkbox\" name=\"permissions[]\" value=\"" . $Action . "\"" . (($Perm ? " checked=\"checked\"" : "")) . " /> " . $Action . "</label></li>"; 
        } 
        $Checkboxes .= "
	<div class=\"clear\"></div>
	</ul>
	" . aaaabm(get_phrase("button_save"), get_phrase("button_reset")); 
        $tableContents = aaaaag(array( array( "width" => "100%", "text" => $Checkboxes ) )); 
        $aaaaam = array( "editPerm" => $Member["memberid"] ); 
        $aaaamg = "<input type=\"checkbox\" name=\"checkALL\" value=\"permissions[]\" />"; 
        return aaaabn(createtable(get_phrase("administrators_alt"), $tableContents, 1, $aaaamg), $aaaaam); 
    } 
 
} 
 
function aaaamf() 
{ 
    return array( "Options" => 0, "Pages" => 0, "Polls" => 0, "News" => 0, "FAQ" => 0, "Torrent Categories" => 0, "Market" => 0, "API Manager" => 0, "Cron Entries" => 0, "Rebuild Caches" => 0, "Logs" => 0, "Server" => 0, "Notes" => 0, "Statistics" => 0, "Read PM" => 0, "Database" => 0, "Announcements" => 0, "Torrents" => 0, "Add-ons" => 0, "TSUE Store" => 0, "Recent Comments" => 0, "Torrent Genres" => 0, "Advertisements" => 0, "Shoutbox Channels" => 0, "Plugin Manager" => 0, "Forum Manager" => 0, "Appearance" => 0, "All Members" => 0, "Awaiting Approval" => 0, "Banned Members" => 0, "Warned Members" => 0, "Membergroups" => 0, "Email Members" => 0, "Search Members" => 0, "Peers" => 0, "Account Upgrades" => 0, "Muted Members" => 0, "PM Members" => 0, "Promotions" => 0, "Duplicate Ips" => 0, "Hit and Runners" => 0, "Test Permissions" => 0, "Administrators" => 0, "Gift" => 0, "Mass Invite" => 0, "Awards" => 0, "Auto Warned Members" => 0, "Uploader Activity" => 0, "First Line Support" => 0, "Spam Cleaner" => 0, "Prune" => 0, "Smilies" => 0, "Country Flags" => 0, "Attachment Browser" => 0, "Downloads" => 0, "Permissions" => 0, "Cleanup" => 0 ); 
} 
 
function managegift() 
{ 
    global $TSUE; 
    $formErrors = ""; 
    $Gift = array( "membernames" => "", "membergroups" => array(  ), "gift_amount" => "", "gift_type" => "", "send_pm" => "" ); 
    if( ispost() ) 
    { 
        $Gift = array_merge($Gift, $_POST["Gift"]); 
        $Gift["gift_amount"] = 0 + $Gift["gift_amount"]; 
        $Gift["gift_type"] = (in_array($Gift["gift_type"], array( "gift_upload", "gift_invite", "gift_point" )) ? $Gift["gift_type"] : ""); 
        $Gift["send_pm"] = 0 + $Gift["send_pm"]; 
        if( !$Gift["membernames"] && !$Gift["membergroups"] || !$Gift["gift_amount"] || !$Gift["gift_type"] ) 
        { 
            $formErrors[] = get_phrase("message_required_fields_error"); 
        } 
        else 
        { 
            if( $Gift["membernames"] ) 
            { 
                $membernames = tsue_explode("-", trim($Gift["membernames"])); 
                foreach( $membernames as $membername ) 
                { 
                    if( !is_valid_string($membername) ) 
                    { 
                        $formErrors[] = "(" . html_clean($membername) . ") " . get_phrase("invalid_membername"); 
                    } 
 
                } 
                if( !$formErrors && $membernames ) 
                { 
                    foreach( $membernames as $membername ) 
                    { 
                        $checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername=" . $TSUE["TSUE_Database"]->escape($membername) . " LIMIT 1"); 
                        if( !$checkMember ) 
                        { 
                            $formErrors[] = "(" . html_clean($membername) . ") " . get_phrase("member_not_found"); 
                        } 
 
                    } 
                    if( !$formErrors ) 
                    { 
                        $WHERE = "membername IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $membernames)) . ")"; 
                    } 
 
                } 
 
            } 
            else 
            { 
                if( $Gift["membergroups"] ) 
                { 
                    foreach( $Gift["membergroups"] as $membergroup ) 
                    { 
                        $membergroup = intval($membergroup); 
                        if( !is_int($membergroup) ) 
                        { 
                            $formErrors[] = "(" . html_clean($membergroup) . ") " . get_phrase("invalid_membergroup"); 
                        } 
 
                    } 
                    if( !$formErrors ) 
                    { 
                        foreach( $Gift["membergroups"] as $membergroup ) 
                        { 
                            $checkGroup = $TSUE["TSUE_Database"]->query_result("SELECT groupname FROM tsue_membergroups WHERE membergroupid=" . $TSUE["TSUE_Database"]->escape($membergroup) . " LIMIT 1"); 
                            if( !$checkGroup ) 
                            { 
                                $formErrors[] = "(" . html_clean($membergroup) . ") " . get_phrase("invalid_membergroup"); 
                            } 
 
                        } 
                        if( !$formErrors ) 
                        { 
                            $WHERE = "membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $Gift["membergroups"])) . ")"; 
                        } 
 
                    } 
 
                } 
 
            } 
 
        } 
 
    } 
 
    if( $formErrors ) 
    { 
        $formErrors = errormessage(implode("<br />", $formErrors)); 
    } 
    else 
    { 
        if( isset($WHERE) && ispost() ) 
        { 
            $getMembers = $TSUE["TSUE_Database"]->query("SELECT memberid, membername FROM tsue_members WHERE " . $WHERE); 
            if( !$TSUE["TSUE_Database"]->num_rows($getMembers) ) 
            { 
                return errormessage(get_phrase("message_nothing_found")); 
            } 
 
            $Members = $aaaamh = array(  ); 
            while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($getMembers) ) 
            { 
                $Members[] = $Member["memberid"]; 
                $aaaamh[] = $Member["membername"]; 
            } 
            switch( $Gift["gift_type"] ) 
            { 
                case "gift_upload": 
                    $aaaami = array( "uploaded" => array( "escape" => 0, "value" => "uploaded + " . $Gift["gift_amount"] ) ); 
                    break; 
                case "gift_invite": 
                    $aaaami = array( "invites_left" => array( "escape" => 0, "value" => "invites_left + " . $Gift["gift_amount"] ) ); 
                    break; 
                case "gift_point": 
                    $aaaami = array( "points" => array( "escape" => 0, "value" => "points + " . $Gift["gift_amount"] ) ); 
            } 
            if( isset($aaaami) ) 
            { 
                $TSUE["TSUE_Database"]->update("tsue_member_profile", $aaaami, "memberid IN (" . implode(",", $Members) . ")"); 
            } 
 
            $aaaamj = ($Gift["gift_type"] == "gift_upload" ? friendly_size($Gift["gift_amount"]) : $Gift["gift_amount"]); 
            $aaaamk = get_phrase($Gift["gift_type"]); 
            $Phrase = get_phrase("gift_sent", $aaaamj, $aaaamk, implode("-", array_map("html_clean", $aaaamh))); 
            if( $Gift["send_pm"] ) 
            { 
                $count = 0; 
                foreach( $Members as $Memberid ) 
                { 
                    $Membername = $aaaamh[$count]; 
                    $reply = get_phrase("gift_message", $Membername, $aaaamj, $aaaamk, getmembername($TSUE["TSUE_Member"]["membername"], $TSUE["TSUE_Member"]["groupstyle"])); 
                    sendpm(get_phrase("gift"), $TSUE["TSUE_Member"]["memberid"], $Memberid, nl2br($reply)); 
                    $count++; 
                } 
            } 
 
            logadminaction($Phrase); 
            return successmessage($Phrase); 
        } 
 
    } 
 
    $inputBox = inputbox("Gift[membernames]", $Gift["membernames"], "text", get_phrase("gift_membernames_hint")); 
    $tableContents = aaaaag(array( array( "width" => "20%", "text" => get_phrase("gift_membernames") ), array( "width" => "80%", "text" => $inputBox ) )); 
    $inputBox = aaaaaw("Gift[membergroups][]", $Gift["membergroups"], 2); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("member_manager_membergroups"), "extra" => " style=\"vertical-align: top;\"" ), array( "width" => "80%", "text" => $inputBox ) )); 
    $inputBox = inputbox("Gift[gift_amount]", $Gift["gift_amount"], "text texttiny", "", false, false, getimage("buttons/calculator.png", get_phrase("calculator"), "calculator")); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("gift_amount") ), array( "width" => "80%", "text" => $inputBox ) )); 
    $aaaaao = array( "gift_upload" => get_phrase("gift_upload"), "gift_invite" => get_phrase("gift_invite"), "gift_point" => get_phrase("gift_point") ); 
    $selectBox = selectbox("Gift[gift_type]", $Gift["gift_type"], $aaaaao, "select smallSelect"); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("gift_type") ), array( "width" => "80%", "text" => $selectBox ) )); 
    $aaaaao = array( get_phrase("option_no"), get_phrase("option_yes") ); 
    $selectBox = selectbox("Gift[send_pm]", $Gift["send_pm"], $aaaaao, "select smallSelect"); 
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("messages_send_message") ), array( "width" => "80%", "text" => $selectBox . " <span class=\"smallPassiveText\">" . get_phrase("send_message_alt") . "</span>" ) )); 
    $inputBox = aaaabm(get_phrase("gift_alt"), get_phrase("button_reset")); 
    $tableContents .= aaaaag(array( array( "width" => "20%" ), array( "width" => "80%", "text" => $inputBox ) )); 
    return $formErrors . aaaabn(createtable(get_phrase("gift_alt"), $tableContents, 2)); 
} 
 
function managemassinvite() 
{ 
    global $TSUE; 
    $formErrors = ""; 
    $Amount = 5; 
    if( ispost() ) 
    { 
        $Amount = intval(getvar("Amount")); 
        if( !$Amount ) 
        { 
            $formErrors[] = get_phrase("message_required_fields_error"); 
        } 
        else 
        { 
            $aaaaml = array(  ); 
            for( $i = 0; $i < $Amount; $i++ ) 
            { 
                $aaaaml[$i] = generate_random_string(32); 
                $BuildQuery = array( "hash" => $aaaaml[$i], "sender_memberid" => $TSUE["TSUE_Member"]["memberid"], "send_date" => TIMENOW, "email" => "", "name" => "", "status" => "pending" ); 
                $TSUE["TSUE_Database"]->insert("tsue_invites", $BuildQuery); 
                if( !$TSUE["TSUE_Database"]->affected_rows() ) 
                { 
                    unset($aaaaml[$i]); 
                    $i -= 1; 
                } 
 
            } 
            $Phrase = get_phrase("total_x_invites_has_been_generated", count($aaaaml)); 
            logadminaction($Phrase); 
            $HTML = $Phrase . "<hr />"; 
            foreach( $aaaaml as $count => $hash ) 
            { 
                $HTML .= "<div style=\"padding: 5px 0;\">" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/?p=signup&pid=16&hash=" . $hash . "</div>"; 
            } 
            return $HTML; 
        } 
 
    } 
 
    if( $formErrors ) 
    { 
        $formErrors = errormessage(implode("<br />", $formErrors)); 
    } 
 
    $inputBox = inputbox("Amount", $Amount, "text texttiny"); 
    $tableContents = aaaaag(array( array( "width" => "20%", "text" => get_phrase("market_item_amount") ), array( "width" => "80%", "text" => $inputBox ) )); 
    $inputBox = aaaabm(get_phrase("mass_invite_alt"), get_phrase("button_reset")); 
    $tableContents .= aaaaag(array( array( "width" => "20%" ), array( "width" => "80%", "text" => $inputBox ) )); 
    return $formErrors . aaaabn(createtable(get_phrase("mass_invite"), $tableContents, 2)); 
} 
 
function manageawards() 
{ 
    global $TSUE; 
    $defaultTheme = aaaaff(); 
    $aaaamm = ROOTPATH . "styles/" . $defaultTheme . "/awards/"; 
    $HTML = ""; 
    $aaaamn = aaaaae(array( "new=1" => array( "phrase" => get_phrase("awards_create_new") ) )); 
    $aaaamo = aaaaae(array( "awarded_members=1" => array( "phrase" => get_phrase("awards_awarded_members") ) )); 
    $aaaamp = aaaaae(array( "award_member=1" => array( "phrase" => get_phrase("awards_award_member") ) )); 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    $awarded_members = intval(getvar("awarded_members")); 
    $delete_member_award = intval(getvar("delete_member_award")); 
    $award_member = intval(getvar("award_member")); 
    if( $delete_member_award ) 
    { 
        $Award = $TSUE["TSUE_Database"]->query_result("SELECT a.id, a.reason, a.date, aw.award_title, aw.award_image, m.memberid as awardedMemberid, m.membername as awardedMembername, g.groupstyle as awardedGroupstyle, mm.memberid as givenbyMemberid, mm.membername as givenbyMembername, gg.groupstyle as givenbyGroupstyle FROM tsue_awards_members a LEFT JOIN tsue_awards aw USING(award_id) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON(m.membergroupid=g.membergroupid) LEFT JOIN tsue_members mm ON(a.givenby=mm.memberid) LEFT JOIN tsue_membergroups gg ON(mm.membergroupid=gg.membergroupid) WHERE a.id = " . $TSUE["TSUE_Database"]->escape($delete_member_award)); 
        if( $Award ) 
        { 
            $awardedMembername = getmembername($Award["awardedMembername"], $Award["awardedGroupstyle"]); 
            $aaaamq = getmembername($Award["givenbyMembername"], $Award["givenbyGroupstyle"]); 
            $TSUE["TSUE_Database"]->delete("tsue_awards_members", "id = " . $TSUE["TSUE_Database"]->escape($delete_member_award)); 
            logadminaction(get_phrase("member_award_x_has_been_deleted", $awardedMembername, $Award["award_title"] . " (" . $delete_member_award . ")", $aaaamq)); 
            handlerebuildcaches(false); 
        } 
 
    } 
 
    if( $awarded_members ) 
    { 
        addbreadcrumb(array( get_phrase("awards_awarded_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;awarded_members=1" )); 
        $Count = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as Count FROM tsue_awards_members"); 
        if( $Count && $Count["Count"] ) 
        { 
            $Pagination = pagination($Count["Count"], "awarded_members=1"); 
            $tableContents = ""; 
            $Members = $TSUE["TSUE_Database"]->query("SELECT a.id, a.reason, a.date, aw.award_title, aw.award_image, m.memberid as awardedMemberid, m.membername as awardedMembername, g.groupstyle as awardedGroupstyle, mm.memberid as givenbyMemberid, mm.membername as givenbyMembername, gg.groupstyle as givenbyGroupstyle FROM tsue_awards_members a LEFT JOIN tsue_awards aw USING(award_id) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON(m.membergroupid=g.membergroupid) LEFT JOIN tsue_members mm ON(a.givenby=mm.memberid) LEFT JOIN tsue_membergroups gg ON(mm.membergroupid=gg.membergroupid) ORDER BY a.date DESC " . $Pagination["0"]); 
            while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) ) 
            { 
                $deleteLink = aaaaae(array( "awarded_members=1&delete_member_award=" . $Member["id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
                $awardedMembername = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Member["awardedMemberid"] => array( "phrase" => getmembername($Member["awardedMembername"], $Member["awardedGroupstyle"]) ) )); 
                $aaaamq = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Member["givenbyMemberid"] => array( "phrase" => getmembername($Member["givenbyMembername"], $Member["givenbyGroupstyle"]) ) )); 
                $award_details = get_phrase("award_details", $aaaamq, strip_tags($Member["reason"]), convert_relative_time($Member["date"])); 
                $tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Member["award_image"] . "\" alt=\"" . $Member["award_title"] . "\" title=\"" . $Member["award_title"] . "\" /> " . $awardedMembername . " - " . $Member["award_title"] . "<span class=\"smallPassiveText\">" . $award_details . "</span>" ), array( "width" => "15%", "text" => $deleteLink ) )); 
            } 
            return createtable(get_phrase("awards_awarded_members") . " (" . number_format($Count["Count"]) . ")", $tableContents, 2, $Pagination["1"]); 
        } 
 
        return errormessage(get_phrase("message_nothing_found")); 
    } 
 
    if( $edit || $new ) 
    { 
        $Award = array( "award_title" => "", "award_image" => "" ); 
        $aaaaam = ""; 
        if( $edit ) 
        { 
            $Award = $TSUE["TSUE_Database"]->query_result("SELECT award_title, award_image FROM tsue_awards WHERE award_id = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Award ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Award["award_title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        } 
        else 
        { 
            addbreadcrumb(array( get_phrase("awards_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
        } 
 
        if( isset($_POST["Award"]) ) 
        { 
            $Award = $_POST["Award"]; 
            if( !isset($Award["award_image"]) ) 
            { 
                $Award["award_image"] = ""; 
            } 
 
            if( !$Award["award_title"] ) 
            { 
                $formErrors[] = get_phrase("please_enter_a_valid_title"); 
            } 
 
            if( !$Award["award_image"] || !file_exists($aaaamm . $Award["award_image"]) ) 
            { 
                $formErrors[] = get_phrase("please_select_a_valid_image"); 
            } 
 
            if( !isset($formErrors) ) 
            { 
                $buildQuery = array( "award_title" => $Award["award_title"], "award_image" => $Award["award_image"] ); 
                if( $edit ) 
                { 
                    $TSUE["TSUE_Database"]->update("tsue_awards", $buildQuery, "award_id=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $TSUE["TSUE_Database"]->insert("tsue_awards", $buildQuery); 
                } 
 
                logadminaction(get_phrase("award_x_has_been_updated", $Award["award_title"])); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                handlerebuildcaches(false); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $inputbox = inputbox("Award[award_title]", $Award["award_title"]); 
            $formContents = aaaaan(get_phrase("award_title"), $inputbox); 
            $options = "
			<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">
				<tr>"; 
            $Count = 0; 
            $aaaamr = scandir($aaaamm); 
            foreach( $aaaamr as $Image ) 
            { 
                if( in_array(file_extension($Image), array( "png", "jpg", "gif", "jpeg" )) ) 
                { 
                    if( $Count % 20 == 0 ) 
                    { 
                        $options .= "</tr><tr>"; 
                    } 
 
                    $options .= "
					<td>
						<label style=\"margin: 5px;\">
							<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Image . "\" alt=\"\" title=\"\" /> <input type=\"radio\" name=\"Award[award_image]\" value=\"" . $Image . "\"" . (($Award["award_image"] == $Image ? " checked=\"checked\"" : "")) . " />
						</label>
					</td>"; 
                    $Count++; 
                } 
 
            } 
            $options .= "
				</tr>
			</table>"; 
            $formContents .= aaaaan(get_phrase("award_image"), $options, get_phrase("awards_image_path")); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    if( $delete ) 
    { 
        $Award = $TSUE["TSUE_Database"]->query_result("SELECT award_title FROM tsue_awards WHERE award_id = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Award ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_awards", "award_id = " . $TSUE["TSUE_Database"]->escape($delete)); 
            $TSUE["TSUE_Database"]->delete("tsue_awards_members", "award_id = " . $TSUE["TSUE_Database"]->escape($delete)); 
            logadminaction(get_phrase("award_x_has_been_deleted", $Award["award_title"] . " (" . $delete . ")")); 
            handlerebuildcaches(false); 
        } 
 
    } 
 
    if( $award_member ) 
    { 
        addbreadcrumb(array( get_phrase("awards_award_member") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;award_member=1" )); 
        $awardMember = array( "award_id" => "", "memberid" => "", "reason" => "", "givenby" => $TSUE["TSUE_Member"]["memberid"], "date" => TIMENOW ); 
        $aaaams = ""; 
        if( isset($_POST["awardMember"]) ) 
        { 
            $awardMember = array_merge($awardMember, $_POST["awardMember"]); 
            if( !$awardMember["award_id"] ) 
            { 
                $formErrors[] = get_phrase("awards_please_select_a_valid_award_type"); 
            } 
            else 
            { 
                $checkAward = $TSUE["TSUE_Database"]->query_result("SELECT award_title, award_image FROM tsue_awards WHERE award_id = " . $TSUE["TSUE_Database"]->escape($awardMember["award_id"])); 
                if( !$checkAward ) 
                { 
                    $formErrors[] = get_phrase("awards_please_select_a_valid_award_type"); 
                } 
 
            } 
 
            if( !$awardMember["membername"] ) 
            { 
                $formErrors[] = get_phrase("member_not_found"); 
            } 
            else 
            { 
                $checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($awardMember["membername"])); 
                if( !$checkMember ) 
                { 
                    $formErrors[] = get_phrase("member_not_found"); 
                } 
                else 
                { 
                    $awardMember["memberid"] = $checkMember["memberid"]; 
                    $aaaams = $awardMember["membername"]; 
                    unset($awardMember["membername"]); 
                } 
 
            } 
 
            if( !$awardMember["reason"] ) 
            { 
                $formErrors[] = get_phrase("awards_please_enter_a_valid_award_reason"); 
            } 
 
            if( !isset($formErrors) ) 
            { 
                $TSUE["TSUE_Database"]->insert("tsue_awards_members", $awardMember); 
                $subject = get_phrase("you_got_a_new_award_subject"); 
                $reply = get_phrase("you_got_a_new_award_message", $aaaams, getmembername($TSUE["TSUE_Member"]["membername"], $TSUE["TSUE_Member"]["groupstyle"]), "[img]" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $checkAward["award_image"] . "[/img] " . $checkAward["award_title"], strip_tags($awardMember["reason"])); 
                sendpm($subject, $TSUE["TSUE_Member"]["memberid"], $awardMember["memberid"], nl2br($reply)); 
                logadminaction(get_phrase("awards_member_got_an_alert", $aaaams, $checkAward["award_title"], $TSUE["TSUE_Member"]["membername"], strip_tags($awardMember["reason"]))); 
                $HTML .= successmessage(get_phrase("message_saved")); 
                handlerebuildcaches(false); 
                handleprune(false); 
                $updateDone = true; 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $options = "
			<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">
				<tr>"; 
            $Count = 0; 
            for( $Awards = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_awards ORDER BY award_title ASC"); $Award = $TSUE["TSUE_Database"]->fetch_assoc($Awards); $Count++ ) 
            { 
                if( $Count % 20 == 0 ) 
                { 
                    $options .= "</tr><tr>"; 
                } 
 
                $options .= "
				<td>
					<label style=\"margin: 5px;\">
						<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Award["award_image"] . "\" alt=\"" . $Award["award_title"] . "\" title=\"" . $Award["award_title"] . "\" /> <input type=\"radio\" name=\"awardMember[award_id]\" value=\"" . $Award["award_id"] . "\"" . (($awardMember["award_id"] == $Award["award_id"] ? " checked=\"checked\"" : "")) . " />
					</label>
				</td>"; 
            } 
            $options .= "
				</tr>
			</table>"; 
            $formContents = aaaaan(get_phrase("awards_award_type"), $options); 
            $inputbox = inputbox("awardMember[membername]", (isset($awardMember["membername"]) ? $awardMember["membername"] : $aaaams), "text", NULL, false, true); 
            $formContents .= aaaaan(get_phrase("your_name"), $inputbox); 
            $inputbox = inputbox("awardMember[reason]", $awardMember["reason"]); 
            $formContents .= aaaaan(get_phrase("awards_award_reason"), $inputbox); 
            $HTML .= aaaabg($formContents); 
            return $HTML; 
        } 
 
    } 
 
    $Awards = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_awards ORDER BY award_title ASC"); 
    if( !$TSUE["TSUE_Database"]->num_rows($Awards) ) 
    { 
        $tableContents = errormessage(get_phrase("message_nothing_found")); 
    } 
    else 
    { 
        $tableContents = ""; 
        while( $Award = $TSUE["TSUE_Database"]->fetch_assoc($Awards) ) 
        { 
            $EditLink = aaaaae(array( "edit=" . $Award["award_id"] => array( "phrase" => $Award["award_title"] ) )); 
            $DeleteLink = aaaaae(array( "delete=" . $Award["award_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Award["award_image"] . "\" alt=\"" . $Award["award_title"] . "\" title=\"" . $Award["award_title"] . "\" /> " . $EditLink . "<span class=\"smallPassiveText\"></span>" ), array( "width" => "15%", "align" => "right", "text" => $DeleteLink ) )); 
        } 
    } 
 
    $HTML .= createtable(get_phrase("awards_alt"), $tableContents, 2, $aaaamn . " - " . $aaaamo . " - " . $aaaamp); 
    return $HTML; 
} 
 
function manageautowarnedmembers() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $lift = intval(getvar("lift")); 
    if( $lift ) 
    { 
        $warnedMember = $TSUE["TSUE_Database"]->query_result("SELECT w.*, m.membername FROM tsue_auto_warning w LEFT JOIN tsue_members m USING(memberid) WHERE w.memberid=" . $TSUE["TSUE_Database"]->escape($lift)); 
        if( !$warnedMember ) 
        { 
            return errormessage(get_phrase("member_not_found")); 
        } 
 
        $TSUE["TSUE_Database"]->delete("tsue_auto_warning", "memberid=" . $TSUE["TSUE_Database"]->escape($lift)); 
        logadminaction(get_phrase("warned_auto_warn_has_been_lifted", $warnedMember["membername"], $TSUE["TSUE_Member"]["membername"])); 
        $HTML .= successmessage(get_phrase("message_saved")); 
        handlerebuildcaches(false); 
    } 
 
    $warnedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as warnedMembersCount FROM tsue_auto_warning"); 
    if( !$warnedMembersCount["warnedMembersCount"] ) 
    { 
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("warned_no_warned_members") ) )); 
        return createtable(get_phrase("member_manager_auto_warned_members_alt"), $tableContents); 
    } 
 
    $Pagination = pagination($warnedMembersCount["warnedMembersCount"]); 
    $warnedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, p.downloaded, p.uploaded FROM tsue_auto_warning b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_member_profile p USING(memberid) " . $Pagination["0"]); 
    while( $warnedMember = $TSUE["TSUE_Database"]->fetch_assoc($warnedMembers) ) 
    { 
        $aaaakj = aaaaae(array( "lift=" . $warnedMember["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("warned_lift_warn")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
        $ratioFixDate = get_phrase("will_be_banned_on", convert_time($warnedMember["warned"] + $TSUE["TSUE_Settings"]->settings["auto_warning"]["warn_length"] * 24 * 60 * 60)); 
        $warn_date = get_phrase("warned_warn_started", convert_relative_time($warnedMember["warned"])); 
        $aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $warnedMember["memberid"] => array( "phrase" => $warnedMember["membername"] ) )); 
        $ratio = get_phrase("stats_ratio") . ": " . member_ratio($warnedMember["uploaded"], $warnedMember["downloaded"]); 
        $tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $warn_date . " -- " . $ratio . " -- " . $ratioFixDate . "</span>" ), array( "width" => "10%", "text" => $aaaakj ) )); 
    } 
    $HTML .= createtable(get_phrase("member_manager_auto_warned_members_alt"), $tableContents, 2, $Pagination["1"]); 
    return $HTML; 
} 
 
function manageuploaderactivity() 
{ 
    global $TSUE; 
    $uGroups = getvar("membergroups", array(  ), false); 
    if( $uGroups ) 
    { 
        $aaaamt = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $uGroups)); 
        $Uploaders = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.joindate, m.lastactivity, m.gender, p.uploaded, p.downloaded, p.points, g.groupname, g.groupstyle, COUNT(t.tid) as totalTorrents, SUM(t.leechers) AS totalLeechers, SUM(t.seeders) AS totalSeeders, MAX(t.added) as lastUpload, COUNT(peer.active) as activeSeeds FROM tsue_members m LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_torrents t ON(m.memberid=t.owner) LEFT JOIN " . ((getsetting("xbt", "active") ? "xbt_files_users peer ON (peer.uid=m.memberid && peer.active=1 && peer.left = 0)" : "tsue_torrents_peers peer ON (peer.memberid=m.memberid && peer.active=0 && peer.left=0)")) . " WHERE g.membergroupid IN (0," . $aaaamt . ") GROUP BY m.memberid ORDER BY lastUpload ASC"); 
        if( !($aaaamu = $TSUE["TSUE_Database"]->num_rows($Uploaders)) ) 
        { 
            return errormessage(get_phrase("message_nothing_found")); 
        } 
 
        $List = "
			<div class=\"success\">" . get_phrase("total_x_ul_found", number_format($aaaamu)) . "</div>"; 
        while( $Uploader = $TSUE["TSUE_Database"]->fetch_assoc($Uploaders) ) 
        { 
            $lastUpload = get_phrase("last_upload", ($Uploader["lastUpload"] ? convert_relative_time($Uploader["lastUpload"]) : "--")); 
            if( !$Uploader["lastUpload"] || $Uploader["lastUpload"] < TIMENOW - 15 * 24 * 60 * 60 ) 
            { 
                $lastUpload = "<span style=\"color: red;\">" . $lastUpload . "</span>"; 
            } 
 
            $Avatar = get_member_avatar($Uploader["memberid"], $Uploader["gender"]); 
            $Membername = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Uploader["memberid"] => array( "phrase" => $Uploader["membername"], "class" => "standartAClass" ) )); 
            $List .= "
				<div style=\"float: left; margin: 5px; padding: 5px; position: relative; width: 390px; border: 1px solid #ddd;\">
					<div style=\"float: left;\">
						<img src=\"" . $Avatar . "\" alt=\"\" />
						<div style=\"padding-top: 5px; text-align: center;\">" . aaaaaf("?p=profile&pid=18&memberid=" . $Uploader["memberid"], getimage("buttons/examine.png", get_phrase("memberinfo_title", $Uploader["membername"]))) . "</div>
					</div>
					<div style=\"float: left; margin-left: 5px; font-size: 11px; font-family:Tahoma, Geneva, sans-serif;\">
						" . $Membername . " (" . getmembername($Uploader["groupname"], $Uploader["groupstyle"]) . ")<br />
						" . get_phrase("memberinfo_membersince", convert_relative_time($Uploader["joindate"])) . "<br />
						" . get_phrase("memberinfo_lastactivity", convert_relative_time($Uploader["lastactivity"])) . "<br />
						" . $lastUpload . "<br />
						<b>" . get_phrase("stats_uploaded") . ":</b> " . friendly_size($Uploader["uploaded"]) . "<br />
						<b>" . get_phrase("stats_downloaded") . ":</b> " . friendly_size($Uploader["downloaded"]) . "<br />
						" . get_phrase("uploaded_torrents", number_format($Uploader["totalTorrents"])) . "<br />
						" . get_phrase("active_seeds", number_format($Uploader["activeSeeds"])) . "<br />
						" . get_phrase("total_peers_on_up_torrents", number_format($Uploader["totalLeechers"] + $Uploader["totalSeeders"]), number_format($Uploader["totalSeeders"]), number_format($Uploader["totalLeechers"])) . "
					</div>
				</div>"; 
        } 
        $List .= "
			<div style=\"clear: both;\"></div>"; 
        return $List; 
    } 
 
    $Membergroups = aaaaaw("membergroups[]", $uGroups); 
    $formContents = aaaaan(get_phrase("select_mg_to_view_ua"), $Membergroups); 
    return aaaabg($formContents); 
} 
 
function managefirstlinesupport() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $new = intval(getvar("new")); 
    $edit = intval(getvar("edit")); 
    $delete = intval(getvar("delete")); 
    $enable_disable = intval(getvar("enable_disable")); 
    if( $enable_disable ) 
    { 
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) ); 
        $FLS = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_first_line_support WHERE sid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
        if( $FLS ) 
        { 
            $TSUE["TSUE_Database"]->update("tsue_first_line_support", $BuildQuery, "sid = " . $TSUE["TSUE_Database"]->escape($enable_disable)); 
            $Phrase = get_phrase("fls_x_has_been_updated", $FLS["title"] . " (" . $enable_disable . ")"); 
            logadminaction($Phrase); 
            $HTML .= successmessage($Phrase); 
            handlerebuildcaches(false); 
        } 
 
    } 
 
    if( $delete ) 
    { 
        $FLS = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_first_line_support WHERE sid = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $FLS ) 
        { 
            $TSUE["TSUE_Database"]->delete("tsue_first_line_support", "sid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            $Phrase = get_phrase("fls_x_has_been_deleted", $FLS["title"] . " (" . $delete . ")"); 
            logadminaction($Phrase); 
            $HTML .= successmessage($Phrase); 
            handlerebuildcaches(false); 
        } 
 
    } 
 
    if( $edit || $new ) 
    { 
        $FLS = array( "title" => "", "description" => "", "members" => "", "active" => 1 ); 
        $aaaaam = ""; 
        if( $edit ) 
        { 
            $FLS = $TSUE["TSUE_Database"]->query_result("SELECT title,description,members,active FROM tsue_first_line_support WHERE sid = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$FLS ) 
            { 
                return errormessage(get_phrase("message_content_error")); 
            } 
 
            $aaaaam = array( "edit" => $edit ); 
            if( $FLS["members"] && substr($FLS["members"], -2) != ", " ) 
            { 
                $FLS["members"] = $FLS["members"] . ", "; 
            } 
 
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $FLS["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
        } 
        else 
        { 
            addbreadcrumb(array( get_phrase("create_fls_team") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" )); 
        } 
 
        if( isset($_POST["FLS"]) ) 
        { 
            $FLS = $_POST["FLS"]; 
            if( !$FLS["title"] ) 
            { 
                $formErrors[] = get_phrase("please_enter_a_valid_title"); 
            } 
 
            if( !$FLS["description"] ) 
            { 
                $formErrors[] = get_phrase("valid_description_required"); 
            } 
 
            if( !$FLS["members"] ) 
            { 
                $formErrors[] = get_phrase("fls_invalid_members"); 
            } 
            else 
            { 
                $aaaamv = array(  ); 
                $aaaamw = tsue_explode(",", trim(preg_replace("/\s+/", "", $FLS["members"]))); 
                if( $aaaamw ) 
                { 
                    foreach( $aaaamw as $member ) 
                    { 
                        $member = trim($member); 
                        if( !in_array($member, $aaaamv) && $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($member)) ) 
                        { 
                            $aaaamv[] = $member; 
                        } 
 
                    } 
                } 
 
                if( !$aaaamv ) 
                { 
                    $formErrors[] = get_phrase("fls_invalid_members"); 
                } 
                else 
                { 
                    $FLS["members"] = implode(", ", $aaaamv); 
                } 
 
            } 
 
            if( !isset($formErrors) ) 
            { 
                $buildQuery = array( "title" => $FLS["title"], "description" => $FLS["description"], "members" => $FLS["members"], "active" => $FLS["active"] ); 
                if( $edit ) 
                { 
                    $Phrase = get_phrase("fls_x_has_been_updated", $FLS["title"] . " (" . $edit . ")"); 
                    $TSUE["TSUE_Database"]->update("tsue_first_line_support", $buildQuery, "sid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $Phrase = get_phrase("fls_x_has_been_created", $FLS["title"]); 
                    $TSUE["TSUE_Database"]->insert("tsue_first_line_support", $buildQuery); 
                } 
 
                logadminaction($Phrase); 
                $HTML .= successmessage($Phrase); 
                $updateDone = true; 
                handlerebuildcaches(false); 
            } 
            else 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
 
        } 
 
        if( !isset($updateDone) ) 
        { 
            $radioButtons = radioyesno("FLS[active]", $FLS["active"]); 
            $formContents = aaaaan(get_phrase("fls_active"), $radioButtons); 
            $inputbox = inputbox("FLS[title]", $FLS["title"]); 
            $formContents .= aaaaan(get_phrase("fls_title"), $inputbox); 
            $textarea = textarea("FLS[description]", $FLS["description"], true); 
            $formContents .= aaaaan(get_phrase("fls_description"), $textarea); 
            $inputbox = inputbox("FLS[members]", $FLS["members"], "text", "", false, true, "", "autoCompleteMultiple"); 
            $formContents .= aaaaan(get_phrase("fls_members"), $inputbox, get_phrase("fls_members_alt")); 
            $HTML .= aaaabg($formContents, $aaaaam); 
            return $HTML; 
        } 
 
    } 
 
    $FLS = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_first_line_support ORDER BY active DESC, title ASC"); 
    if( $TSUE["TSUE_Database"]->num_rows($FLS) ) 
    { 
        while( $Team = $TSUE["TSUE_Database"]->fetch_assoc($FLS) ) 
        { 
            $linkClass = (!$Team["active"] ? "linkDisabled" : ""); 
            $aaaamx = aaaaae(array( "delete=" . $Team["sid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
            $aaaamy = aaaaae(array( "edit=" . $Team["sid"] => array( "phrase" => $Team["title"], "class" => $linkClass ) )); 
            if( $Team["active"] ) 
            { 
                $aaaamz = aaaaae(array( "enable_disable=" . $Team["sid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) )); 
            } 
            else 
            { 
                $aaaamz = aaaaae(array( "enable_disable=" . $Team["sid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) )); 
            } 
 
            $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaamy . "<span class=\"smallPassiveText\">" . strip_tags($Team["description"]) . "</span>" ), array( "width" => "20%", "text" => $aaaamz . $aaaamx, "align" => "right" ) )); 
        } 
    } 
    else 
    { 
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_fls_team_yet"), "colspan" => "2" ) )); 
    } 
 
    $aaaana = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" => array( "phrase" => get_phrase("create_fls_team") ) )); 
    $HTML .= aaaabn(createtable(get_phrase("first_line_support_alt"), $tableContents, 2, $aaaana)); 
    return $HTML; 
} 
 
function managespamcleaner() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $spam_membername = trim(getvar("spam_membername")); 
    if( $spam_membername && ispost() ) 
    { 
        $aaaamv = array(  ); 
        $aaaamw = tsue_explode(",", trim(preg_replace("/\s+/", "", $spam_membername))); 
        if( $aaaamw ) 
        { 
            foreach( $aaaamw as $member ) 
            { 
                $member = trim($member); 
                if( !isset($aaaamv[$member]) && ($checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($member))) ) 
                { 
                    $aaaamv[$member] = 0 + $checkMember["memberid"]; 
                } 
 
            } 
        } 
 
        if( !$aaaamv ) 
        { 
            return errormessage(get_phrase("please_enter_at_least_one_valid_member")); 
        } 
 
        $membernames = array(  ); 
        $memberids = array(  ); 
        foreach( $aaaamv as $membername => $memberid ) 
        { 
            $membernames[] = $membername; 
            $memberids[] = $memberid; 
        } 
        $memberids = implode(", ", $memberids); 
        $affectedRows = 0; 
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_announcements", "memberid IN (" . $memberids . ")"); 
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_comments", "memberid IN (" . $memberids . ")"); 
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_comments_replies", "memberid IN (" . $memberids . ")"); 
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_forums_thread_subscribe", "memberid IN (" . $memberids . ")"); 
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_messages_master", "owner_memberid IN (" . $memberids . ")"); 
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_messages_replies", "memberid IN (" . $memberids . ")"); 
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_reports", "reported_by_memberid IN (" . $memberids . ")"); 
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_reports_comments", "memberid IN (" . $memberids . ")"); 
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_requests", "memberid IN (" . $memberids . ")"); 
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_shoutbox", "memberid IN (" . $memberids . ")"); 
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_staff_messages", "memberid IN (" . $memberids . ")"); 
        $Posts = $TSUE["TSUE_Database"]->query("SELECT p.postid,p.threadid,p.memberid, t.memberid as threadOwner, f.forumid FROM tsue_forums_posts p LEFT JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_forums f ON (t.forumid=f.forumid) WHERE p.memberid IN (" . $memberids . ")"); 
        if( $TSUE["TSUE_Database"]->num_rows($Posts) ) 
        { 
            while( $Post = $TSUE["TSUE_Database"]->fetch_assoc($Posts) ) 
            { 
                deletepost($Post["postid"], $Post["memberid"]); 
                $threadHasStillPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE p.threadid = " . $TSUE["TSUE_Database"]->escape($Post["threadid"]) . " ORDER BY p.post_date DESC"); 
                if( !$threadHasStillPosts ) 
                { 
                    deletethread($Post["threadid"], $Post["forumid"], $Post["threadOwner"]); 
                } 
                else 
                { 
                    $findLastPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.forumid = " . $TSUE["TSUE_Database"]->escape($Post["forumid"]) . " ORDER BY p.post_date DESC"); 
                    $last_post_info = serialize(array( "lastpostdate" => $findLastPosts["post_date"], "lastposter" => $findLastPosts["membername"], "lastposterid" => $findLastPosts["memberid"] )); 
                    $BuildQuery = array( "replycount" => array( "escape" => 0, "value" => "IF(replycount > 0, replycount - 1, 0)" ), "last_post_info" => $last_post_info, "last_post_threadid" => ($findLastPosts["threadid"] ? $findLastPosts["threadid"] : 0) ); 
                    $TSUE["TSUE_Database"]->update("tsue_forums", $BuildQuery, "forumid = " . $TSUE["TSUE_Database"]->escape($Post["forumid"])); 
                    $BuildQuery = array( "reply_count" => array( "escape" => 0, "value" => "IF(reply_count > 0, reply_count - 1, 0)" ), "last_post_info" => $last_post_info, "last_post_date" => $findLastPosts["post_date"] ); 
                    $TSUE["TSUE_Database"]->update("tsue_forums_threads", $BuildQuery, "threadid = " . $TSUE["TSUE_Database"]->escape($Post["threadid"])); 
                } 
 
            } 
        } 
 
        $Threads = $TSUE["TSUE_Database"]->query("SELECT threadid,forumid,memberid FROM tsue_forums_threads WHERE memberid IN (" . $memberids . ")"); 
        if( $TSUE["TSUE_Database"]->num_rows($Threads) ) 
        { 
            while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) ) 
            { 
                $posts = $TSUE["TSUE_Database"]->query("SELECT postid, memberid FROM tsue_forums_posts WHERE threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"])); 
                if( $TSUE["TSUE_Database"]->num_rows($posts) ) 
                { 
                    while( $post = $TSUE["TSUE_Database"]->fetch_assoc($posts) ) 
                    { 
                        deletepost($post["postid"], $post["memberid"]); 
                    } 
                } 
 
                deletethread($Thread["threadid"], $Thread["forumid"], $Thread["memberid"]); 
            } 
        } 
 
        $Phrase = get_phrase("spam_content_cleaned_for_x", implode(", ", $membernames)); 
        logadminaction($Phrase); 
        $HTML .= successmessage($Phrase . " | <a href=\"?action=Forum Manager&amp;do=Rebuild Counters\">" . get_phrase("rebuild_counters_alt") . "</a>"); 
        handleprune(false); 
        handlerebuildcaches(false); 
    } 
 
    $inputbox = inputbox("spam_membername", $spam_membername, "text", "", false, true, "", "autoCompleteMultiple"); 
    $formContents = aaaaan(get_phrase("spam_membername"), $inputbox, get_phrase("spam_membername_alt")); 
    $HTML .= aaaabg($formContents, "", "", "spam_cleaner_alt"); 
    return $HTML; 
} 
 
function deletepost($postid, $memberid) 
{ 
    global $TSUE; 
    if( !$TSUE["TSUE_Database"]->delete("tsue_forums_posts", "postid = " . $TSUE["TSUE_Database"]->escape($postid)) ) 
    { 
        return NULL; 
    } 
 
    updatememberpoints($TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_replies"], $memberid, false); 
    profileupdate($memberid, array( "total_posts" => array( "escape" => 0, "value" => "IF(total_posts > 0, total_posts-1, 0)" ) )); 
    $Attachments = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type = 'posts' AND content_id = " . $TSUE["TSUE_Database"]->escape($postid)); 
    if( $TSUE["TSUE_Database"]->num_rows($Attachments) ) 
    { 
        while( $Attachment = $TSUE["TSUE_Database"]->fetch_assoc($Attachments) ) 
        { 
            $filename = DATAPATH . "posts/" . $Attachment["filename"]; 
            if( is_file($filename) ) 
            { 
                @unlink($filename); 
            } 
 
        } 
        $TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type = 'posts' AND content_id = " . $TSUE["TSUE_Database"]->escape($postid)); 
    } 
 
    $TSUE["TSUE_Database"]->delete("tsue_liked_content", "content_type = 'thread_posts' AND content_id = " . $TSUE["TSUE_Database"]->escape($postid)); 
} 
 
function deletethread($threadid, $forumid, $threadOwner = 0) 
{ 
    global $TSUE; 
    $TSUE["TSUE_Database"]->delete("tsue_forums_threads", "threadid = " . $TSUE["TSUE_Database"]->escape($threadid)); 
    $TSUE["TSUE_Database"]->delete("tsue_forums_thread_subscribe", "threadid = " . $TSUE["TSUE_Database"]->escape($threadid)); 
    $TSUE["TSUE_Database"]->delete("tsue_poll", "threadid=" . $TSUE["TSUE_Database"]->escape($threadid) . " AND createdinThread = 1"); 
    $TSUE["TSUE_Database"]->update("tsue_poll", array( "threadid" => 0 ), "threadid=" . $TSUE["TSUE_Database"]->escape($threadid)); 
    updatememberpoints($TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_thread"], $threadOwner, false); 
    $last_post_info = ""; 
    $findLastPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.forumid = " . $TSUE["TSUE_Database"]->escape($forumid) . " ORDER BY p.post_date DESC"); 
    if( $findLastPosts ) 
    { 
        $last_post_info = serialize(array( "lastpostdate" => $findLastPosts["post_date"], "lastposter" => $findLastPosts["membername"], "lastposterid" => $findLastPosts["memberid"] )); 
    } 
 
    $BuildQuery = array( "replycount" => array( "escape" => 0, "value" => "IF(replycount > 0, replycount - 1, 0)" ), "threadcount" => array( "escape" => 0, "value" => "IF(threadcount > 0, threadcount - 1, 0)" ), "last_post_info" => $last_post_info, "last_post_threadid" => ($findLastPosts["threadid"] ? $findLastPosts["threadid"] : 0) ); 
    $TSUE["TSUE_Database"]->update("tsue_forums", $BuildQuery, "forumid = " . $TSUE["TSUE_Database"]->escape($forumid)); 
} 
 
function handleprune($return = true) 
{ 
    global $TSUE; 
    checkdemomode(); 
    $TSUE["TSUE_Database"]->truncate("tsue_file_caches"); 
    $cacheFolder = DATAPATH . "cache/"; 
    if( !is_dir($cacheFolder) || !is_writable($cacheFolder) ) 
    { 
        return errormessage(get_phrase("file_manager_prune_no_cache_folder")); 
    } 
 
    $cacheFiles = scandir($cacheFolder); 
    if( count($cacheFiles) <= 2 ) 
    { 
        return false; 
    } 
 
    foreach( $cacheFiles as $cacheFile ) 
    { 
        $_ext = file_extension($cacheFile); 
        if( in_array($_ext, array( "tsue", "gz", "js", "gif", "jpg", "png", "jpeg", "zip", "srv" )) ) 
        { 
            @unlink($cacheFolder . $cacheFile); 
        } 
 
    } 
    if( $return ) 
    { 
        $HTML = get_phrase("file_manager_prune_cache_pruned"); 
        logadminaction($HTML); 
        return successmessage($HTML); 
    } 
 
} 
 
function handlesmilies() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $aaaanb = DATAPATH . "smilies/"; 
    $aaaanc = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/smilies/"; 
    $allowedFiles = array( "gif", "jpg", "png" ); 
    if( !is_dir($aaaanb) || !is_writable($aaaanb) ) 
    { 
        return errormessage(get_phrase("file_manager_smilies_no_smilies_folder")); 
    } 
 
    $cacheFiles = array(  ); 
    foreach( $TSUE["TSUE_Settings"]->settings["dialog_smilies_cache"] as $Smilie ) 
    { 
        $cacheFiles[] = $Smilie["smilie_file"]; 
    } 
    $aaaand = array(  ); 
    $scanFiles = scandir($aaaanb); 
    foreach( $scanFiles as $sFile ) 
    { 
        $fEXT = file_extension($sFile); 
        if( in_array($fEXT, $allowedFiles) && !in_array($sFile, $cacheFiles) ) 
        { 
            $title = $text = str_replace("." . $fEXT, "", $sFile); 
            $text = ":" . $text . ":"; 
            $aaaand[] = $sFile; 
            $buildQuery = array( "smilie_title" => $title, "smilie_text" => $text, "smilie_file" => $sFile ); 
            $TSUE["TSUE_Database"]->insert("tsue_smilies", $buildQuery); 
        } 
 
    } 
    if( $aaaand ) 
    { 
        handlerebuildcaches(false); 
        handleprune(false); 
    } 
 
    $upload = intval(getvar("upload")); 
    $edit = intval(getvar("edit")); 
    if( $upload || $edit ) 
    { 
        checkdemomode(); 
        $Smilie = array( "smilie_title" => "", "smilie_text" => "" ); 
        if( $edit ) 
        { 
            $Smilie = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_smilies WHERE smilie_id = " . $TSUE["TSUE_Database"]->escape($edit)); 
            if( !$Smilie ) 
            { 
                return errormessage(get_phrase("message_not_found")); 
            } 
 
            $aaaane = $Smilie["smilie_text"]; 
            $aaaanf = $Smilie["smilie_file"]; 
        } 
 
        if( ispost() ) 
        { 
            $Smilie = $_POST["Smilie"]; 
            $aaaang = $_FILES["smilie_file"]; 
            $aaaang["name"] = safe_names($aaaang["name"]); 
            if( $aaaang["name"] || !$edit ) 
            { 
                if( !$aaaang["size"] || $aaaang["error"] ) 
                { 
                    $formErrors[] = get_phrase("upload_error3"); 
                } 
                else 
                { 
                    if( !in_array(file_extension($aaaang["name"]), $allowedFiles) ) 
                    { 
                        $formErrors[] = get_phrase("upload_error6", implode(",", $allowedFiles)); 
                    } 
                    else 
                    { 
                        if( is_file($aaaanb . $aaaang["name"]) ) 
                        { 
                            $formErrors[] = get_phrase("upload_error7"); 
                        } 
                        else 
                        { 
                            if( !move_uploaded_file($aaaang["tmp_name"], $aaaanb . $aaaang["name"]) ) 
                            { 
                                $formErrors[] = get_phrase("upload_error8"); 
                            } 
                            else 
                            { 
                                $aaaanh = true; 
                            } 
 
                        } 
 
                    } 
 
                } 
 
            } 
 
            if( $edit && !isset($aaaanh) ) 
            { 
                $aaaang["name"] = $aaaanf; 
            } 
 
            if( !$Smilie["smilie_title"] ) 
            { 
                $formErrors[] = get_phrase("please_enter_a_valid_title"); 
            } 
 
            if( !$Smilie["smilie_text"] ) 
            { 
                $formErrors[] = get_phrase("please_enter_valid_smilie_text"); 
            } 
            else 
            { 
                $checkText = $TSUE["TSUE_Database"]->query_result("SELECT smilie_title FROM tsue_smilies WHERE smilie_text = " . $TSUE["TSUE_Database"]->escape($Smilie["smilie_text"])); 
                if( $checkText && ($edit && $aaaane != $Smilie["smilie_text"] || !$edit) ) 
                { 
                    $formErrors[] = get_phrase("smilie_text_to_replace_must_be_unique", html_clean($Smilie["smilie_text"])); 
                } 
 
            } 
 
            if( isset($formErrors) ) 
            { 
                if( is_file($aaaanb . $aaaang["name"]) ) 
                { 
                    unlink($aaaanb . $aaaang["name"]); 
                } 
 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
            else 
            { 
                $buildQuery = array( "smilie_title" => $Smilie["smilie_title"], "smilie_text" => $Smilie["smilie_text"], "smilie_file" => $aaaang["name"] ); 
                if( $edit ) 
                { 
                    if( isset($aaaanh) ) 
                    { 
                        unlink($aaaanb . $aaaanf); 
                    } 
 
                    $TSUE["TSUE_Database"]->update("tsue_smilies", $buildQuery, "smilie_id=" . $TSUE["TSUE_Database"]->escape($edit)); 
                } 
                else 
                { 
                    $TSUE["TSUE_Database"]->insert("tsue_smilies", $buildQuery); 
                } 
 
                $HTML .= successmessage(get_phrase("file_manager_smilies_uploaded", $aaaang["name"])); 
                logadminaction(get_phrase("file_manager_smilies_uploaded", $aaaang["name"])); 
                handlerebuildcaches(false); 
                $uploadDone = true; 
            } 
 
        } 
 
        if( !isset($uploadDone) ) 
        { 
            if( $edit && is_file($aaaanb . $Smilie["smilie_file"]) ) 
            { 
                addbreadcrumb(array( get_phrase("button_edit") . " <img src=\"" . $aaaanc . $Smilie["smilie_file"] . "\" alt=\"\" title=\"\" border=\"0\" style=\"vertical-align: middle; border: 0;\" />" => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit )); 
            } 
            else 
            { 
                if( $upload ) 
                { 
                    addbreadcrumb(array( get_phrase("file_manager_smilies_upload") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;upload=1" )); 
                } 
 
            } 
 
            $inputbox = inputbox("Smilie[smilie_title]", $Smilie["smilie_title"]); 
            $formContents = aaaaan(get_phrase("smilie_title"), $inputbox); 
            $inputbox = inputbox("Smilie[smilie_text]", $Smilie["smilie_text"]); 
            $formContents .= aaaaan(get_phrase("smilie_text_to_replace"), $inputbox, get_phrase("smilie_text_to_replace_hint")); 
            $aaaacr = aaaacs("smilie_file"); 
            $formContents .= aaaaan(get_phrase("file_manager_smilies_select_smilie_to_upload"), $aaaacr); 
            $HTML .= aaaabg($formContents); 
            return $HTML; 
        } 
 
    } 
 
    if( !$tableContents ) 
    { 
        $delete = intval(getvar("delete")); 
        if( $delete ) 
        { 
            checkdemomode(); 
            $Smilie = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_smilies WHERE smilie_id = " . $TSUE["TSUE_Database"]->escape($delete)); 
            if( $Smilie ) 
            { 
                if( is_file($aaaanb . $Smilie["smilie_file"]) ) 
                { 
                    @unlink($aaaanb . $Smilie["smilie_file"]); 
                } 
 
                $TSUE["TSUE_Database"]->delete("tsue_smilies", "smilie_id = " . $TSUE["TSUE_Database"]->escape($delete)); 
                $HTML = successmessage(get_phrase("file_manager_smilies_deleted", $Smilie["smilie_title"] . " (" . $delete . ")")); 
                handlerebuildcaches(false); 
                logadminaction(get_phrase("file_manager_smilies_deleted", $Smilie["smilie_title"] . " (" . $delete . ")")); 
            } 
            else 
            { 
                $HTML .= errormessage(get_phrase("message_content_error")); 
            } 
 
        } 
 
        $Smilies = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_smilies ORDER BY smilie_title"); 
        if( !$TSUE["TSUE_Database"]->num_rows($Smilies) ) 
        { 
            return errormessage(get_phrase("message_nothing_found")); 
        } 
 
        while( $Smilie = $TSUE["TSUE_Database"]->fetch_assoc($Smilies) ) 
        { 
            if( in_array(file_extension($Smilie["smilie_file"]), $allowedFiles) ) 
            { 
                $aaaani = aaaaae(array( "delete=" . $Smilie["smilie_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
                $aaaanj = aaaaae(array( "edit=" . $Smilie["smilie_id"] => array( "phrase" => getimage("buttons/options.png", get_phrase("button_edit")) ) )); 
                $tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<img src=\"" . $aaaanc . $Smilie["smilie_file"] . "\" alt=\"\" title=\"\" border=\"0\" /> <span class=\"smallPassiveText\">" . $Smilie["smilie_title"] . "  &nbsp; <b>" . $Smilie["smilie_text"] . "</b> &nbsp; " . $Smilie["smilie_file"] . "</span>" ), array( "width" => "15%", "align" => "center", "text" => $aaaanj . " " . $aaaani ) )); 
            } 
 
        } 
    } 
 
    $aaaank = aaaaae(array( "upload=1" => array( "phrase" => get_phrase("file_manager_smilies_upload") ) )); 
    $HTML .= createtable(get_phrase("file_manager_smilies_alt"), $tableContents, 2, $aaaank); 
    return $HTML; 
} 
 
function handlecountryflags() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $aaaanl = DATAPATH . "countryFlags/"; 
    $aaaanm = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/countryFlags/"; 
    if( !is_dir($aaaanl) || !is_writable($aaaanl) ) 
    { 
        return errormessage(get_phrase("file_manager_country_flags_no_flag_folder")); 
    } 
 
    $upload = intval(getvar("upload")); 
    if( $upload ) 
    { 
        checkdemomode(); 
        if( isset($_FILES["flag"]) ) 
        { 
            $flag = $_FILES["flag"]; 
            if( !$flag["size"] || $flag["error"] ) 
            { 
                $formErrors[] = get_phrase("upload_error3"); 
            } 
 
            if( !in_array(file_extension($flag["name"]), array( "gif", "jpg", "png", "jpeg" )) ) 
            { 
                $formErrors[] = get_phrase("upload_error6", "gif, jpg, png"); 
            } 
 
            if( is_file($aaaanl . $flag["name"]) ) 
            { 
                $formErrors[] = get_phrase("upload_error7"); 
            } 
 
            if( !isset($formErrors) && !move_uploaded_file($flag["tmp_name"], $aaaanl . $flag["name"]) ) 
            { 
                $formErrors[] = get_phrase("upload_error8"); 
            } 
 
            if( isset($formErrors) ) 
            { 
                $HTML .= errormessage(implode("<br />", $formErrors)); 
            } 
            else 
            { 
                $HTML .= successmessage(get_phrase("file_manager_country_flags_uploaded", $flag["name"])); 
                logadminaction(get_phrase("file_manager_country_flags_uploaded", $flag["name"])); 
                handlerebuildcaches(false); 
                handleprune(false); 
                $uploadDone = true; 
            } 
 
        } 
 
        if( !isset($uploadDone) ) 
        { 
            $uploadForm = aaaabn(get_phrase("file_manager_country_flagss_select_flag_to_upload") . ": " . ((DEMO_MODE ? "--File upload is disabled in demo mode--" : "<input type=\"file\" name=\"flag\" />")) . " " . aaaabm(get_phrase("button_upload"), get_phrase("button_reset"))); 
            $tableContents = aaaaag(array( array( "width" => "99%", "text" => $uploadForm ), array( "width" => "1%", "text" => NULL ) )); 
        } 
 
    } 
 
    if( !$tableContents ) 
    { 
        $delete = trim(base64_decode(getvar("delete"))); 
        if( $delete ) 
        { 
            checkdemomode(); 
            if( in_array(file_extension($delete), array( "gif", "jpg", "png", "jpeg" )) && is_file($aaaanl . $delete) ) 
            { 
                @unlink($aaaanl . $delete); 
                $HTML = successmessage(get_phrase("file_manager_country_flags_deleted", $delete)); 
                handlerebuildcaches(false); 
                handleprune(false); 
                logadminaction(get_phrase("file_manager_country_flags_deleted", $delete)); 
            } 
            else 
            { 
                $HTML .= errormessage(get_phrase("message_content_error")); 
            } 
 
        } 
 
        $aaaann = array(  ); 
        $flags = scandir($aaaanl); 
        foreach( $flags as $flag ) 
        { 
            if( in_array(file_extension($flag), array( "gif", "jpg", "png", "jpeg" )) ) 
            { 
                $aaaano = aaaaae(array( "delete=" . base64_encode($flag) => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
                $tableContents .= aaaaag(array( array( "width" => "90%", "text" => "<img src=\"" . $aaaanm . $flag . "\" alt=\"\" title=\"\" border=\"0\" /> <span class=\"smallPassiveText\">" . $flag . " -- " . friendly_size(filesize($aaaanl . $flag)) . "</span>" ), array( "width" => "10%", "text" => $aaaano ) )); 
            } 
 
        } 
    } 
 
    $aaaanp = aaaaae(array( "upload=1" => array( "phrase" => get_phrase("file_manager_country_flags_upload") ) )); 
    $HTML .= createtable(get_phrase("file_manager_country_flags_alt"), $tableContents, 2, $aaaanp); 
    return $HTML; 
} 
 
function handleattachments() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $tableContents = ""; 
    $delete = intval(getvar("delete")); 
    $keywords = trim(getvar("keywords")); 
    $WHERE = ""; 
    if( $delete ) 
    { 
        $Attachment = $TSUE["TSUE_Database"]->query_result("SELECT filename FROM tsue_attachments WHERE content_type = 'posts' AND associated = 1 AND attachment_id = " . $TSUE["TSUE_Database"]->escape($delete)); 
        if( $Attachment ) 
        { 
            checkdemomode(); 
            $filename = DATAPATH . "posts/" . $Attachment["filename"]; 
            if( is_file($filename) ) 
            { 
                @unlink($filename); 
            } 
 
            $TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type = 'posts' AND associated = 1 AND attachment_id = " . $TSUE["TSUE_Database"]->escape($delete)); 
            $phrase = get_phrase("attachment_has_been_deleted", $Attachment["filename"]); 
            $HTML .= successmessage($phrase); 
            handlerebuildcaches(false); 
            logadminaction($phrase); 
        } 
 
    } 
 
    $searchType = trim(getvar("searchType")); 
    if( !in_array($searchType, array( "membername", "filename" )) ) 
    { 
        $searchType = "filename"; 
    } 
 
    if( $keywords && $searchType ) 
    { 
        switch( $searchType ) 
        { 
            case "membername": 
                $WHERE = " AND m.membername = " . $TSUE["TSUE_Database"]->escape($keywords); 
                break; 
            case "filename": 
                $WHERE = " AND a.filename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'"; 
                break; 
        } 
    } 
 
    $orderBy["fieldname"] = "a.upload_date"; 
    $orderBy["type"] = "DESC"; 
    if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) ) 
    { 
        $allowedFieldNames = array( "m.membername", "a.filename", "a.upload_date", "a.view_count", "a.filesize" ); 
        $allowedTypes = array( "DESC", "ASC" ); 
        if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) ) 
        { 
            $orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"]; 
            $orderBy["type"] = $_REQUEST["orderBy"]["type"]; 
        } 
 
    } 
 
    $Attachments = $TSUE["TSUE_Database"]->query("SELECT a.attachment_id, p.threadid, t.forumid, m.membername, g.groupstyle FROM tsue_attachments a LEFT JOIN tsue_forums_posts p ON(a.content_id=p.postid) LEFT JOIN tsue_forums_threads t ON(p.threadid=t.threadid) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) WHERE a.content_type = 'posts' AND a.associated = 1" . $WHERE); 
    $attachmentCount = $TSUE["TSUE_Database"]->num_rows($Attachments); 
    if( !$attachmentCount ) 
    { 
        return errormessage(get_phrase("message_nothing_found")); 
    } 
 
    $Pagination = pagination($attachmentCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&amp;orderBy[type]=" . $orderBy["type"] . (($keywords ? "&amp;keywords=" . urlencode($keywords) . "&amp;searchType=" . $searchType : ""))); 
    $Attachments = $TSUE["TSUE_Database"]->query("SELECT a.*, p.threadid, t.forumid, m.membername, g.groupstyle FROM tsue_attachments a LEFT JOIN tsue_forums_posts p ON(a.content_id=p.postid) LEFT JOIN tsue_forums_threads t ON(p.threadid=t.threadid) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) WHERE a.content_type = 'posts' AND a.associated = 1" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]); 
    while( $Attachment = $TSUE["TSUE_Database"]->fetch_assoc($Attachments) ) 
    { 
        $Attachment["filename"] = strip_tags($Attachment["filename"]); 
        $pageNumber = findpagenumber("SELECT 1 FROM tsue_forums_posts WHERE postid <= " . $TSUE["TSUE_Database"]->escape($Attachment["content_id"]) . " AND threadid = " . $TSUE["TSUE_Database"]->escape($Attachment["threadid"]), $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_posts_perpage"]); 
        $aaaanq = aaaaaf("?p=forums&pid=11&fid=" . $Attachment["forumid"] . "&tid=" . $Attachment["threadid"] . "&page=" . $pageNumber . "#show_post_" . $Attachment["content_id"], $Attachment["filename"]); 
        $membername = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Attachment["memberid"] => array( "phrase" => getmembername($Attachment["membername"], $Attachment["groupstyle"]) ) )); 
        $upload_date = convert_relative_time($Attachment["upload_date"]); 
        $view_count = number_format($Attachment["view_count"]); 
        $filesize = friendly_size($Attachment["filesize"]); 
        $aaaanr = aaaaae(array( "delete=" . $Attachment["attachment_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
        $tableContents .= aaaaag(array( array( "width" => "85%", "text" => "
											<div class=\"floatLeft\">" . file_icon($Attachment["filename"]) . "</div>
											<div class=\"floatLeft\">
												" . $aaaanq . "<br />
												<span class=\"smallPassiveTextBlock\">" . $membername . ", " . $upload_date . " | " . $filesize . " | " . $view_count . " " . get_phrase("forums_attached_files_views") . "</span>
											</div>" ), array( "width" => "15%", "text" => $aaaanr, "align" => "right" ) )); 
    } 
    $selectBox = "
	<select name=\"searchType\" class=\"selectNoWidth\">
		<option value=\"membername\"" . (($searchType == "membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>
		<option value=\"filename\"" . (($searchType == "filename" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_filename") . "</option>
	</select>"; 
    $searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) )); 
    $HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array(  ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />"; 
    $HTML .= createtable(get_phrase("attachments"), $tableContents, 2, $Pagination["1"]); 
    $HTML .= "
	<div style=\"float: right; margin-top: 10px;\">
		" . aaaabn("
		" . get_phrase("torrents_sort_by") . "
		<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">
			<option value=\"m.membername\"" . (($orderBy["fieldname"] == "m.membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>
			<option value=\"a.filename\"" . (($orderBy["fieldname"] == "a.filename" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_filename") . "</option>
			<option value=\"a.upload_date\"" . (($orderBy["fieldname"] == "a.upload_date" ? " selected=\"selected\"" : "")) . ">" . get_phrase("table_list_date") . "</option>
			<option value=\"a.view_count\"" . (($orderBy["fieldname"] == "a.view_count" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_views") . "</option>
			<option value=\"a.filesize\"" . (($orderBy["fieldname"] == "a.filesize" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_filesize") . "</option>
		</select>
		<select name=\"orderBy[type]\" class=\"selectNoWidth\">
			<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>
			<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>
		</select>
		<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "
	</div>"; 
    return $HTML; 
} 
 
function handledownloads() 
{ 
    global $TSUE; 
    $HTML = ""; 
    $aaaacl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("torrent_categories_new_category") ) )); 
    $tableContents = ""; 
    $delete = intval(getvar("delete")); 
    $edit = intval(getvar("edit")); 
    $new = intval(getvar("new")); 
    if( isset($_POST["sort"]) ) 
    { 
        foreach( $_POST["sort"] as $Cid => $Sort ) 
        { 
            $Cid = intval($Cid); 
            $Sort = intval($Sort); 
            $TSUE["TSUE_Database"]->update("tsue_downloads_categories", array( "sort" => $Sort ), "cid=" . $TSUE["TSUE_Database"]->escape($Cid)); 
        } 
        handleprune(false); 
        header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]); 
        exit(); 
    } 
    else 
    { 
        if( $delete ) 
        { 
            $Category = $TSUE["TSUE_Database"]->query_result("SELECT cname FROM tsue_downloads_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete)); 
            if( $Category ) 
            { 
                $TSUE["TSUE_Database"]->delete("tsue_downloads_categories", "cid = " . $TSUE["TSUE_Database"]->escape($delete)); 
                $Files = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_downloads WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete)); 
                if( $TSUE["TSUE_Database"]->num_rows($Files) ) 
                { 
                    while( $File = $TSUE["TSUE_Database"]->fetch_assoc($Files) ) 
                    { 
                        deletefile($File["filename"]); 
                    } 
                } 
 
                $TSUE["TSUE_Database"]->delete("tsue_downloads", "cid=" . $TSUE["TSUE_Database"]->escape($delete)); 
                logadminaction(get_phrase("download_category_x_has_been_deleted", $Category["cname"] . " (" . $delete . ")")); 
                handlerebuildcaches(false); 
                handleprune(false); 
            } 
 
        } 
 
        if( $edit || $new ) 
        { 
            $Category = array( "cname" => "", "cdescription" => "", "sort" => 0, "cviewpermissions" => array(  ), "cdownloadpermissions" => array(  ) ); 
            $aaaaam = ""; 
            if( $edit ) 
            { 
                $Category = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_downloads_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit)); 
                if( !$Category ) 
                { 
                    return errormessage(get_phrase("message_content_error")); 
                } 
 
                $aaaaam = array( "edit" => $edit ); 
                $Category["cviewpermissions"] = tsue_explode(",", $Category["cviewpermissions"]); 
                $Category["cdownloadpermissions"] = tsue_explode(",", $Category["cdownloadpermissions"]); 
            } 
 
            if( isset($_POST["Category"]) ) 
            { 
                $Category = $_POST["Category"]; 
                if( !isset($Category["cviewpermissions"]) ) 
                { 
                    $Category["cviewpermissions"] = array(  ); 
                } 
 
                if( !isset($Category["cdownloadpermissions"]) ) 
                { 
                    $Category["cdownloadpermissions"] = array(  ); 
                } 
 
                if( !$Category["cname"] ) 
                { 
                    $formErrors[] = get_phrase("message_required_fields_error"); 
                } 
 
                if( !isset($formErrors) ) 
                { 
                    $buildQuery = array( "cname" => $Category["cname"], "cdescription" => $Category["cdescription"], "sort" => intval($Category["sort"]), "cviewpermissions" => implode(",", $Category["cviewpermissions"]), "cdownloadpermissions" => implode(",", $Category["cdownloadpermissions"]) ); 
                    if( $edit ) 
                    { 
                        $TSUE["TSUE_Database"]->update("tsue_downloads_categories", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit)); 
                    } 
                    else 
                    { 
                        $TSUE["TSUE_Database"]->insert("tsue_downloads_categories", $buildQuery); 
                        $edit = $TSUE["TSUE_Database"]->insert_id(); 
                    } 
 
                    logadminaction(get_phrase("download_category_x_has_been_updated", $Category["cname"] . " (" . $edit . ")")); 
                    $HTML .= successmessage(get_phrase("message_saved")); 
                    handlerebuildcaches(false); 
                    handleprune(false); 
                    $updateDone = true; 
                } 
                else 
                { 
                    $HTML .= errormessage(implode("<br />", $formErrors)); 
                } 
 
            } 
 
            if( !isset($updateDone) ) 
            { 
                $inputbox = inputbox("Category[cname]", $Category["cname"], "text texthalf"); 
                $formContents = aaaaan(get_phrase("torrent_categories_category_name"), $inputbox); 
                $inputbox = inputbox("Category[cdescription]", $Category["cdescription"], "text"); 
                $formContents .= aaaaan(get_phrase("category_description"), $inputbox); 
                $inputbox = inputbox("Category[sort]", $Category["sort"], "text textVeryTiny"); 
                $formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox); 
                $aaaabe = aaaaaw("Category[cviewpermissions][]", $Category["cviewpermissions"]); 
                $formContents .= aaaaan(get_phrase("global_view_permissions"), $aaaabe, "", "optionsInOverlay", "", checkallcheckbox("Category[cviewpermissions][]")); 
                $aaaabe = aaaaaw("Category[cdownloadpermissions][]", $Category["cdownloadpermissions"]); 
                $formContents .= aaaaan(get_phrase("global_download_permissions"), $aaaabe, "", "optionsInOverlay", "", checkallcheckbox("Category[cdownloadpermissions][]")); 
                $HTML .= aaaabg($formContents, $aaaaam); 
                return $HTML; 
            } 
 
        } 
 
        $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_downloads_categories ORDER BY `sort` ASC"); 
        if( !$TSUE["TSUE_Database"]->num_rows($Categories) ) 
        { 
            $tableContents = errormessage(get_phrase("no_results_found")); 
        } 
        else 
        { 
            $tableContents = ""; 
            while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) ) 
            { 
                $tableContents .= aaaans($Category); 
            } 
            $tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) )); 
        } 
 
        $HTML .= aaaabn(createtable(get_phrase("dm_title"), $tableContents, 3, $aaaacl)); 
        return $HTML; 
    } 
 
} 
 
function deletefile($filename = "") 
{ 
    checkdemomode(); 
    if( !$filename ) 
    { 
        return false; 
    } 
 
    $filePath = DATAPATH . "downloads/files/" . $filename; 
    if( file_exists($filePath) ) 
    { 
        @unlink($filePath); 
    } 
 
} 
 
function aaaans($Category) 
{ 
    global $TSUE; 
    $aaaacv = aaaaae(array( "edit=" . $Category["cid"] => array( "phrase" => $Category["cname"] ) )); 
    $aaaacw = aaaaae(array( "delete=" . $Category["cid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )); 
    $tableContents = aaaaag(array( array( "width" => "65%", "text" => $aaaacv . " <span class=\"smallPassiveText\">" . $Category["cdescription"] . "</span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaacw, "align" => "right" ) )); 
    return $tableContents; 
} 
 
 
function handlepermissions() 
{ 
    global $TSUE; 
    checkdemomode(); 
    $HTML = ""; 
    $tableContents = ""; 
    clearstatcache(); 
    foreach( aaaant() as $Directory ) 
    { 
        if( $Directory != "." && $Directory != ".." && is_dir(DATAPATH . $Directory) ) 
        { 
            $color = (is_writable(DATAPATH . $Directory) ? "green" : "red"); 
            $tableContents .= aaaaag(array( array( "width" => "80%", "text" => DATAPATH . $Directory ), array( "width" => "20%", "align" => "right", "text" => "<span style=\"color: " . $color . "\">" . substr(sprintf("%o", fileperms(DATAPATH . $Directory)), -4) . "</span>" ) )); 
        } 
 
    } 
    $HTML .= createtable(get_phrase("permissions_alt"), $tableContents, 2); 
    return $HTML; 
} 
 
function handlecleanup() 
{ 
    global $TSUE; 
    return "
	
	<div class=\"ajaxLoaderDiv\">
		<div style=\"font-size: 11px; margin-bottom: 10px;\">
			" . get_phrase("before_cleanup") . ": <span id=\"currentDirSize\">" . getimage("ajax/fb_ajax-loader.gif", "null", "middle") . "</span> | " . get_phrase("after_cleanup") . ": <span id=\"afterDirSize\">" . getimage("ajax/fb_ajax-loader.gif", "null", "middle") . "</span>
		</div>
		<div id=\"cleanupRunning\">
			" . getimage("ajax/ajax-loader.gif", NULL, "middle") . "
			" . get_phrase("loading") . "
		</div>
	</div>
	
	<script type=\"text/javascript\">
		var directories = [\"avatars\", \"countryFlags\", \"downloads\", \"gallery\", \"languageFlags\", \"posts\", \"smilies\", \"subTitles\", \"torrents\"];
		var current = 0;
		var total = directories.length;

		\$.ajax
		({
			type: \"POST\",
			data: \"isAjax=1&action=getDirectorySize\",
			success: function(response)
			{
				\$(\"#currentDirSize\").html(response);
				startCleanup();
			}
		});
		
		function startCleanup()
		{
			\$(\"#cleanupRunning\").html('" . getimage("ajax/fb_ajax-loader.gif", "null", "middle") . " " . get_phrase("cleaning") . " <b>'+directories[current]);

			\$.ajax
			({
				type: \"POST\",
				data: \"isAjax=1&action=doCleanup&dir=\"+directories[current],
				success: function(response)
				{
					if(response)
					{
						\$(\"#cleanupRunning\").html(response);
					}
					else
					{
						current++;
						if(directories[current])
						{
							startCleanup();
						}
						else
						{
							\$.ajax
							({
								type: \"POST\",
								data: \"isAjax=1&action=getDirectorySize\",
								success: function(response)
								{
									\$(\"#afterDirSize\").html(response);
									\$(\"#cleanupRunning\").html('<div class=\"success\">" . get_phrase("operation_completed") . "</div>');
								}
							});							
						}
					}
				}
			});
		}
	</script>"; 
} 
 
function file_icon($Filename) 
{ 
    global $TSUE; 
    $Extension = file_extension($Filename); 
    $iconPath = "styles/" . aaaaff() . "/extensions/"; 
    if( file_exists(ROOTPATH . $iconPath . $Extension . ".png") ) 
    { 
        return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $iconPath . $Extension . ".png\" class=\"middle\" border=\"0\" title=\"" . $Extension . "\" />"; 
    } 
 
    return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $iconPath . "default.png\" class=\"middle\" border=\"0\" title=\"" . $Extension . "\" />"; 
} 
 
function findpagenumber($Query = "", $perPage = 0) 
{ 
    global $TSUE; 
    if( !$Query || !$perPage ) 
    { 
        return 0; 
    } 
 
    $totalRows = $TSUE["TSUE_Database"]->row_count($Query); 
    if( $totalRows <= $perPage ) 
    { 
        return 0; 
    } 
 
    return ceil($totalRows / $perPage); 
} 
 
function aaaakq($array, $remove) 
{ 
    $rebuild = array(  ); 
    foreach( $array as $a ) 
    { 
        if( $a != $remove ) 
        { 
            $rebuild[] = $a; 
        } 
 
    } 
    return $rebuild; 
} 
 
function aaaahb() 
{ 
    $Permissions = array( "defaultForumPermissions" => array( "canview_forum" => 1, "canupload" => 0, "candownload" => 1, "canview_thread_list" => 1, "canview_thread_posts" => 1, "canreply_threads" => 1, "canpost_new_thread" => 1, "candelete_posts" => 0, "candelete_own_posts" => 0, "canedit_posts" => 0, "canedit_own_posts" => 1, "canmanage_locked_threads" => 0, "candelete_threads" => 0, "canmove_threads" => 0, "canedit_threads" => 0, "canedit_own_threads" => 1, "cansubscribe_to_threads" => 1, "canpost_polls" => 1, "candelete_own_polls" => 0, "canedit_own_polls" => 1, "canlock_threads" => 0, "cansticky_threads" => 0, "candelete_polls" => 0, "canedit_polls" => 0 ), "adminForumPermissions" => array( "canview_forum" => 1, "canupload" => 1, "candownload" => 1, "canview_thread_list" => 1, "canview_thread_posts" => 1, "canreply_threads" => 1, "canpost_new_thread" => 1, "candelete_posts" => 1, "candelete_own_posts" => 1, "canedit_posts" => 1, "canedit_own_posts" => 1, "canmanage_locked_threads" => 1, "candelete_threads" => 1, "canmove_threads" => 1, "canedit_threads" => 1, "canedit_own_threads" => 1, "cansubscribe_to_threads" => 1, "canpost_polls" => 1, "candelete_own_polls" => 1, "canedit_own_polls" => 1, "canlock_threads" => 1, "cansticky_threads" => 1, "candelete_polls" => 1, "canedit_polls" => 1 ) ); 
    return $Permissions; 
} 
 
function aaaaaa() 
{ 
    @date_default_timezone_set("GMT"); 
    define("TIMESTART", microtime(true)); 
    define("TIMENOW", time()); 
    define("REALPATH", str_replace("\", "/", realpath(".")) . "/"); 
    define("ROOTPATH", str_replace("\", "/", realpath("./../")) . "/"); 
    define("DATAPATH", ROOTPATH . "data/"); 
    define("JSPATH", ROOTPATH . "js/"); 
    define("LIBRARYPATH", ROOTPATH . "library/"); 
    define("STYLEPATH", ROOTPATH . "styles/"); 
    define("CLIPATH", (DEMO_MODE ? "cli/" : ROOTPATH . "cli/")); 
    @error_reporting(30719); 
    @ini_set("display_errors", "On"); 
    @set_error_handler("TSUEAdmin_ErrorHandler"); 
    if( function_exists("get_magic_quotes_gpc") && get_magic_quotes_gpc() ) 
    { 
        undomagicquotes($_GET); 
        undomagicquotes($_POST); 
        undomagicquotes($_COOKIE); 
        undomagicquotes($_REQUEST); 
    } 
 
    if( function_exists("get_magic_quotes_runtime") && get_magic_quotes_runtime() ) 
    { 
        @set_magic_quotes_runtime(false); 
    } 
 
    @ini_set("memory_limit", "256M"); 
    @set_time_limit(0); 
    @ignore_user_abort(true); 
    @ini_set("pcre.backtrack_limit", -1); 
    @ini_set("output_buffering", false); 
    while( ob_get_level() ) 
    { 
        @ob_end_clean(); 
    } 
    define("SAFEMODE", (@ini_get("safe_mode") == 1 || strtolower(@ini_get("safe_mode")) == "on" ? true : false)); 
    define("IN_ADMIN_PANEL", true); 
    define("MEMBER_IP", getclientip()); 
    define("IS_AJAX", (isset($_POST["isAjax"]) && $_POST["isAjax"] == 1 ? true : false)); 
    define("TSUE_ADMINCP_URL", aaaaac()); 
    define("TSUE_URL", "T29wcw=="); 
    define("TSUE_URL2", "T29wcw=="); 
    define("TSUE_URL3", "T29wcw=="); 
    define("U", (!empty($_SERVER["SERVER_NAME"]) ? fixurl($_SERVER["SERVER_NAME"]) : (!empty($_SERVER["HTTP_HOST"]) ? fixurl($_SERVER["HTTP_HOST"]) : ""))); 
    define("I", getserverip()); 
    define("V", "2.2"); 
} 
 
function TSUEAdmin_ErrorHandler($errno, $errstr, $errfile, $errline) 
{ 
    $Message = "
------------------------------------------
" . date("d-m-Y H:i:s") . "
[" . $errno . "] " . $errstr . "
PHP Error on line " . number_format($errline) . " in file " . $errfile . "
" . PHP_VERSION . " " . PHP_OS . "
------------------------------------------"; 
    @file_put_contents(DATAPATH . "errors/admincp.php.log", $Message, FILE_APPEND); 
} 
 
function getserverip() 
{ 
    $ipFile = DATAPATH . "cache/ip.srv"; 
    if( isset($_SERVER["SERVER_ADDR"]) && !empty($_SERVER["SERVER_ADDR"]) && is_valid_ip($_SERVER["SERVER_ADDR"]) ) 
    { 
        $ip = $_SERVER["SERVER_ADDR"]; 
    } 
    else 
    { 
        if( isset($_SERVER["LOCAL_ADDR"]) && !empty($_SERVER["LOCAL_ADDR"]) && is_valid_ip($_SERVER["LOCAL_ADDR"]) ) 
        { 
            $ip = $_SERVER["LOCAL_ADDR"]; 
        } 
        else 
        { 
            if( file_exists($ipFile) && TIMENOW < filemtime($ipFile) + 1800 ) 
            { 
                $ip = file_get_contents($ipFile); 
            } 
            else 
            { 
                if( function_exists("curl_init") && ($ch = curl_init()) ) 
                { 
                    curl_setopt($ch, CURLOPT_URL, base64_decode(TSUE_URL3)); 
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
                    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); 
                    curl_setopt($ch, CURLOPT_HEADER, 0); 
                    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"); 
                    $ip = curl_exec($ch); 
                    curl_close($ch); 
                    if( is_writable(DATAPATH . "cache/") ) 
                    { 
                        @file_put_contents($ipFile, $ip); 
                    } 
 
                } 
 
            } 
 
        } 
 
    } 
 
    if( is_valid_ip($ip) ) 
    { 
        return $ip; 
    } 
 
    if( file_exists($ipFile) ) 
    { 
        @unlink($ipFile); 
    } 
 
} 
 
function is_valid_ip($ip) 
{ 
    return $ip != "127.0.0.1" && $ip != "::1" && filter_var($ip, FILTER_VALIDATE_IP); 
} 
 
function aaaanu($error) 
{ 
    _sendheaders(errormessage($error)); 
} 
 
function fixurl($url = "") 
{ 
    return strtolower(str_replace(array( "http://", "https://", "www.", "http://www.", "https://www." ), "", $url)); 
} 
 
function checkallcheckbox($checkboxName) 
{ 
    return "<input type=\"checkbox\" name=\"checkAllCheckbox\" id=\"checkAllCheckbox\" data=\"" . $checkboxName . "\" />"; 
} 
 
function encodestring($String = "", $AnahtarKelime = "T29wcw==") 
{ 
    $AnahtarKelime = base64_decode($AnahtarKelime); 
    $result = ""; 
    for( $i = 0; $i < strlen($String); $i++ ) 
    { 
        $char = substr($String, $i, 1); 
        $keychar = substr($AnahtarKelime, $i % strlen($AnahtarKelime) - 1, 1); 
        $char = chr(ord($char) + ord($keychar)); 
        $result .= $char; 
    } 
    return urlencode(base64_encode($result)); 
} 
 
function decodestring($String = "", $AnahtarKelime = "T29wcw==") 
{ 
    $AnahtarKelime = base64_decode($AnahtarKelime); 
    $String = urldecode($String); 
    $result = ""; 
    $String = urldecode(base64_decode($String)); 
    for( $i = 0; $i < strlen($String); $i++ ) 
    { 
        $char = substr($String, $i, 1); 
        $keychar = substr($AnahtarKelime, $i % strlen($AnahtarKelime) - 1, 1); 
        $char = chr(ord($char) - ord($keychar)); 
        $result .= $char; 
    } 
    return $result; 
} 
 
function compare_key($installkey = "") 
{ 
    return strlen($installkey) === 36 && preg_match(str_replace("#", "[0-9,A-F]", "{########-####-####-####-############}"), $installkey); 
} 
 
function is_valid_url($url = "") 
{ 
    return (!empty($url) && !preg_match("#^[a-z0-9-\.]+\$#", $url) ? false : true); 
} 
 
function getrealpath($Path = ".") 
{ 
    $Path = realpath($Path); 
    if( substr($Path, -1) != DIRECTORY_SEPARATOR ) 
    { 
        $Path .= DIRECTORY_SEPARATOR; 
    } 
 
    $_SERVER["SCRIPT_NAME"] = realpath(trim($_SERVER["SCRIPT_NAME"])); 
    return realpath(trim($Path . $_SERVER["SCRIPT_NAME"])); 
} 
 
function aaaanv($type = 0, $tryAgain = false) 
{ 
    $serverResponse = ""; 
    if( function_exists("curl_init") && ($ch = curl_init()) ) 
    { 
        curl_setopt($ch, CURLOPT_URL, ($tryAgain ? decodestring(TSUE_URL2) : decodestring(TSUE_URL))); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); 
        curl_setopt($ch, CURLOPT_HEADER, 0); 
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"); 
        curl_setopt($ch, CURLOPT_REFERER, U); 
        curl_setopt($ch, CURLOPT_POST, 1); 
        curl_setopt($ch, CURLOPT_POSTFIELDS, "t=" . $type . "&u=" . encodestring(U) . "&i=" . encodestring(I) . "&v=" . V . "&dr=" . encodestring(getrealpath())); 
        $serverResponse = curl_exec($ch); 
        curl_close($ch); 
        if( $serverResponse ) 
        { 
            $serverResponse = decodestring($serverResponse); 
        } 
        else 
        { 
            if( !$tryAgain ) 
            { 
                return aaaanv($type, true); 
            } 
 
        } 
 
    } 
 
    return $serverResponse; 
} 
 
function aaaanw() 
{ 
    echo str_repeat(" ", 256); 
    if( ob_get_length() ) 
    { 
        @ob_flush(); 
        @flush(); 
        @ob_end_flush(); 
    } 
 
    @ob_start(); 
} 
 
function fetchurl($URL = "") 
{ 
    $serverResponse = ""; 
    if( $URL && function_exists("curl_init") && ($ch = curl_init()) ) 
    { 
        curl_setopt($ch, CURLOPT_URL, $URL); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); 
        curl_setopt($ch, CURLOPT_HEADER, 0); 
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
        $serverResponse = curl_exec($ch); 
        curl_close($ch); 
    } 
 
    return $serverResponse; 
} 
 
function aaaaab() 
{ 
    global $TSUE; 
    @ini_set("session.gc_maxlifetime", 900); 
    @session_name("tsueadmincp"); 
    @session_cache_expire(900); 
    @session_start(); 
    if( @file_exists($_SERVER["DOCUMENT_ROOT"] . "/tsue/l.php") ) 
    { 
        aaaanu("Critical Security Error."); 
    } 
 
    if( !(isset($_GET["forceLicenseCheck"]) && $_GET["forceLicenseCheck"] == "true") ) 
    { 
        $aaaanx = getsetting("data", "cache"); 
        if( $aaaanx ) 
        { 
            $aaaanx = @unserialize(@decodestring($aaaanx)); 
            if( $aaaanx && is_array($aaaanx) && count($aaaanx) === 4 && is_valid_url($aaaanx["domain"]) && is_valid_url(U) && $aaaanx["domain"] === U && $aaaanx["ip"] === I && $aaaanx["version"] === V ) 
            { 
                $days = 259200; 
                if( $aaaanx["time"] && TIMENOW < $aaaanx["time"] + $days ) 
                { 
                    if( isset($_GET["licenseDebug"]) && $_GET["licenseDebug"] == "true" ) 
                    { 
                        echo "
						<table style=\"padding: 5px; margin: 5px auto; border: 1px solid #ccc;\">
							<tr>
								<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Domain:</td>
								<td style=\"border-bottom: 1px solid #ccc;\">" . $aaaanx["domain"] . " (" . U . ")</td>
							</tr>
							
							<tr>
								<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">IP:</td>
								<td style=\"border-bottom: 1px solid #ccc;\">" . $aaaanx["ip"] . " (" . I . ")</td>
							</tr>

							<tr>
								<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Version:</td>
								<td style=\"border-bottom: 1px solid #ccc;\">" . $aaaanx["version"] . " (" . V . ")</td>
							</tr>
							
							<tr>
								<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Last Check:</td>
								<td style=\"border-bottom: 1px solid #ccc;\">" . date("d-m-Y h:i:s", $aaaanx["time"]) . "</td>
							</tr>
							
							<tr>
								<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Next Check:</td>
								<td style=\"border-bottom: 1px solid #ccc;\">" . date("d-m-Y h:i:s", $aaaanx["time"] + $days) . "</td>
							</tr>
							
						</table>"; 
                        exit(); 
                    } 
 
                    return true; 
                } 
 
            } 
 
        } 
 
    } 
 
    $TSUE["TSUE_Database"]->delete("tsue_settings", "settingname = 'data'"); 
    $serverResponse = aaaanv(3); 
    if( !$serverResponse ) 
    { 
        aaaanu("Could not connect to server."); 
    } 
 
    if( !preg_match("#\[domain\](.*)\[\/domain\]#", $serverResponse, $domain) ) 
    { 
        aaaanu($serverResponse); 
    } 
 
    $domain = (isset($domain["1"]) ? $domain["1"] : ""); 
    if( !is_valid_url($domain) || !is_valid_url(U) || $domain != U ) 
    { 
        aaaanu("Invalid Domain."); 
    } 
 
    aaaany($domain); 
} 
 
function aaaany($domain) 
{ 
    $serverResponse = array( "domain" => $domain, "ip" => I, "time" => TIMENOW, "version" => V ); 
    updatesettings("data", array( "cache" => encodestring(serialize($serverResponse)) )); 
} 
 
function getbanreason($memberid) 
{ 
    global $TSUE; 
    $bannedUser = $TSUE["TSUE_Database"]->query_result("SELECT end_date, reason FROM tsue_member_bans WHERE memberid = " . $TSUE["TSUE_Database"]->escape($memberid)); 
    if( !$bannedUser ) 
    { 
        return get_phrase("permission_denied_banned"); 
    } 
 
    if( $bannedUser["reason"] ) 
    { 
        $message = get_phrase("permission_denied_banned_reason", $bannedUser["reason"]); 
    } 
    else 
    { 
        $message = get_phrase("permission_denied_banned"); 
    } 
 
    if( TIMENOW < $bannedUser["end_date"] ) 
    { 
        $message .= " " . get_phrase("permission_denied_banned_until", convert_time($bannedUser["end_date"])); 
    } 
 
    return $message; 
} 
 
function checkadmin() 
{ 
    global $TSUE; 
    $isLogged = false; 
    if( $TSUE["action"] == "logout" ) 
    { 
        $_SESSION["skipGlobalWarnings"] = ""; 
        $_SESSION["load-addon"] = $_SESSION["skipGlobalWarnings"]; 
        $_SESSION["U"] = $_SESSION["load-addon"]; 
        setcookie("TSUEAdmin", "", TIMENOW - 3600); 
        header("Location: ?action=Dashboard"); 
        exit(); 
    } 
 
    $isPost = ispost(); 
    if( $isPost && isset($_POST["adminLogin"]) ) 
    { 
        $membername = (isset($_POST["membername"]) ? trim($_POST["membername"]) : ""); 
        $password = (isset($_POST["password"]) ? md5($_POST["password"]) : ""); 
        $languageid = (isset($_POST["languageid"]) ? intval($_POST["languageid"]) : 1); 
        $time = TIMENOW; 
    } 
    else 
    { 
        if( isset($_COOKIE["TSUEAdmin"]) ) 
        { 
            list($membername, $password, $languageid, $time) = @tsue_explode("-", @base64_decode($_COOKIE["TSUEAdmin"])); 
        } 
 
    } 
 
    if( isset($membername) && $membername && isset($password) && $password && strlen($password) == 32 && isset($languageid) && $languageid && isset($time) && $time ) 
    { 
        if( TIMENOW < $time + getsetting("global_settings", "admincp_session_timeout", 5) * 60 ) 
        { 
            $adminQuery = $TSUE["TSUE_Database"]->query_result("SELECT m.memberid, m.membergroupid, m.membername, m.password, m.lastactivity, m.timezone, m.dst, g.groupstyle, g.permissions, b.memberid as isBanned FROM tsue_members m INNER JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_bans b ON(m.memberid=b.memberid) WHERE m.membername = " . $TSUE["TSUE_Database"]->escape($membername)); 
            if( $adminQuery ) 
            { 
                if( $password === $adminQuery["password"] ) 
                { 
                    $TSUE["TSUE_Member"] = $adminQuery; 
                    $TSUE["TSUE_Member"]["adminCPLastLogin"] = $time; 
                    unset($TSUE["TSUE_Member"]["password"]); 
                    $TSUE["TSUE_Member"]["permissions"] = unserialize($adminQuery["permissions"]); 
                    $Language = $TSUE["TSUE_Database"]->query_result("SELECT charset, date_format, time_format, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid) . " AND active = 1"); 
                    if( $Language ) 
                    { 
                        $TSUE["TSUE_Language"]["charset"] = strtolower($Language["charset"]); 
                        $TSUE["TSUE_Language"]["date_format"] = $Language["date_format"]; 
                        $TSUE["TSUE_Language"]["time_format"] = $Language["time_format"]; 
                        $TSUE["TSUE_Language"]["phrase"] = unserialize($Language["phrase_global"]); 
                    } 
 
                    if( $adminQuery["isBanned"] ) 
                    { 
                        exit( getbanreason($adminQuery["memberid"]) ); 
                    } 
 
                    if( $TSUE["TSUE_Member"]["timezone"] === "" ) 
                    { 
                        $TSUE["TSUE_Member"]["timezone"] = $TSUE["TSUE_Settings"]->settings["global_settings"]["d_timezone"]; 
                    } 
 
                    $aPermissions = $TSUE["TSUE_Database"]->query_result("SELECT permissions FROM tsue_staffcp_permissions WHERE memberid = " . $TSUE["TSUE_Member"]["memberid"]); 
                    if( !$aPermissions ) 
                    { 
                        printoutput(errormessage(get_phrase("permission_denied"))); 
                    } 
 
                    $aaaanz = false; 
                    $aPermissions = unserialize($aPermissions["permissions"]); 
                    if( $aPermissions ) 
                    { 
                        foreach( $aPermissions as $permName => $aaaaoa ) 
                        { 
                            if( $aaaaoa ) 
                            { 
                                $aaaanz = true; 
                                break; 
                            } 
 
                        } 
                    } 
 
                    if( !$aaaanz ) 
                    { 
                        printoutput(errormessage(get_phrase("permission_denied"))); 
                    } 
 
                    $TSUE["TSUE_Member"]["aPermissions"] = $aPermissions; 
                    if( has_permission("canlogin_admincp", $TSUE["TSUE_Member"]["permissions"]) ) 
                    { 
                        $isLogged = true; 
                        $cookieValue = $adminQuery["membername"] . "-" . $password . "-" . $languageid . "-" . TIMENOW; 
                        setcookie("TSUEAdmin", base64_encode($cookieValue)); 
                        if( !DEMO_MODE ) 
                        { 
                            if( $TSUE["TSUE_Settings"]->settings["global_settings"]["website_timeout"] * 60 < TIMENOW - $TSUE["TSUE_Member"]["lastactivity"] ) 
                            { 
                                $updateAccount = "lastvisit = lastactivity, lastactivity = " . TIMENOW; 
                            } 
                            else 
                            { 
                                $updateAccount = "lastactivity = " . TIMENOW; 
                            } 
 
                            $TSUE["TSUE_Database"]->query("UPDATE tsue_members SET " . $updateAccount . " WHERE memberid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Member"]["memberid"])); 
                            $Build_Query = array( "memberid" => $TSUE["TSUE_Member"]["memberid"], "ipaddress" => MEMBER_IP, "location" => "admincp", "browser" => strip_tags($_SERVER["HTTP_USER_AGENT"]), "date" => TIMENOW ); 
                            $TSUE["TSUE_Database"]->replace("tsue_session", $Build_Query); 
                        } 
 
                    } 
 
                } 
                else 
                { 
                    if( !DEMO_MODE ) 
                    { 
                        logadminaction("Failed Login Attempt to Admin CP! #--# IP: " . MEMBER_IP . " / Membername: " . $membername . " #--#"); 
                    } 
 
                } 
 
            } 
 
        } 
        else 
        { 
            $sessionExpired = true; 
        } 
 
    } 
 
    if( !$isLogged && IS_AJAX == true ) 
    { 
        $errorPhrase = errormessage("You must be logged-in to do that."); 
        if( $TSUE["action"] == "autoComplete" ) 
        { 
            _sendheaders(json_encode(array( $errorPhrase )), "application/json"); 
        } 
        else 
        { 
            _sendheaders($errorPhrase); 
        } 
 
    } 
 
    if( !$isLogged ) 
    { 
        setcookie("TSUEAdmin", "", TIMENOW - 3600); 
        $content = "
		<span class=\"loginIPlogged\">IP Logged: <b>" . MEMBER_IP . "</b></span>

		" . ((isset($sessionExpired) ? "
		<span class=\"loginFailed\">
			<span>Your login session has been expired.</span>
			Please re-login.
		</span>" : ($isPost ? "
		<span class=\"loginFailed\">
			<span>Login Failed. Please Try Again.</span>
			Your IP has been logged and admins notified of this failed login attempt.
		</span>" : "
		<span class=\"loginWelcome\">
			<span>Welcome Back</span>
			Please enter your login details below to authenticate.
		</span>"))) . "

		" . aaaabn("
		<table id=\"adminlogin\" cellpadding=\"2\" cellspacing=\"0\" border=\"0\">
			<tr>
				<td>Membername:</td>
				<td>Password:</td>
				<td>Language:</td>
				<td>&nbsp;</td>
			</tr>
			<tr>
				<td><input type=\"text\" class=\"atext\" name=\"membername\" value=\"\" /></td>
				<td><input type=\"password\" class=\"atext\" name=\"password\" value=\"\" /></td>
				<td>" . get_languages() . "</td>
				<td><input type=\"submit\" class=\"button submit\" value=\"Log in\" name=\"adminLogin\" /></td>
			</tr>
		</table>"); 
        printoutput($content, true); 
    } 
 
} 
 
function printoutput($content, $isLogin = false) 
{ 
    global $TSUE; 
    global $Warnings; 
    if( !isset($TSUE["TSUE_Member"]["memberid"]) || !$TSUE["TSUE_Member"]["memberid"] ) 
    { 
        $isLogin = true; 
    } 
 
    if( IS_AJAX == true ) 
    { 
        _sendheaders($content); 
    } 
 
    $globalTitle = ($isLogin ? "TSUE - Admin Control Panel Login" : "TSUE Admin Control Panel" . ((!empty($TSUE["breadcrumb"]) && count($TSUE["breadcrumb"]) ? " - " . @strip_tags($TSUE["breadcrumb"][@count($TSUE["breadcrumb"]) - 1]) : ""))); 
    $aaaaob = ""; 
    if( DEMO_MODE ) 
    { 
        $aaaaob = "
		<div id=\"demoMode\">Warning! Demo Mode is activated. Same features are disabled within Demo Mode.</div>"; 
    } 
 
    $aaaaoc = ""; 
    if( !empty($Warnings) && !isset($_SESSION["skipGlobalWarnings"]) ) 
    { 
        $aaaaoc = "
		<div id=\"globalWarnings\">
			<div class=\"closeWarning\"></div>
			" . implode("<hr />", $Warnings) . "
		</div>"; 
        unset($Warnings); 
    } 
 
    _sendheaders("
	<!DOCTYPE html>
	<html id=\"TSUE\" lang=\"en-us\">
		<head>
			<noscript><meta http-equiv=refresh content=\"0; URL=" . TSUE_ADMINCP_URL . "?noscript=1\" /></noscript>
			<title>" . $globalTitle . "</title>
			<meta http-equiv=\"Content-Type\" content=\"text/html; charset=" . ((isset($TSUE["TSUE_Language"]["charset"]) ? $TSUE["TSUE_Language"]["charset"] : "UTF-8")) . "\" />
			
			<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/style.php?load=members\" />
			<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/jquery-ui.css\" />
			<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/jquery-linedtextarea.css\" />
			<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/fancybox.css\" />

			" . loadstyle("members.css") . "
			
			<script type=\"text/javascript\">
				var TSUEPhrases =
				{
					" . (($isLogin ? "" : "
					months: \"" . get_phrase("dateinput_months") . "\",
					shortMonths: \"" . get_phrase("dateinput_shortMonths") . "\",
					days: \"" . get_phrase("dateinput_days") . "\",
					shortDays: \"" . get_phrase("dateinput_shortDays") . "\"")) . "
				};
			</script>
			
			<script type=\"text/javascript\" src=\"./../js/tsue/jquery.js\"></script>
            
			" . (($isLogin ? "" : "
			<script type=\"text/javascript\" src=\"./js/jquery-ui.min.js\"></script>
			<script type=\"text/javascript\" src=\"./js/jquery-linedtextarea.js\"></script>
			<script type=\"text/javascript\" src=\"./../js/tiny_mce/tiny_mce.js\"></script>")) . "
		</head>

		<body" . (($isLogin ? "" : " onbeforeunload=\"TSUEAdmin.showLoader();\"")) . ">
			<div id=\"loading\">" . getimage("overlay/loading.gif") . " " . (($isLogin ? "Please wait, loading..." : get_phrase("loading"))) . "</div>

			" . $aaaaoc . "
			" . $aaaaob . "

			<div id=\"header\">
			" . (($isLogin ? "" : "
				<div id=\"searchBox\">
					<input type=\"text\" id=\"autoCompleteSearchInAdminCP\" value=\"" . get_phrase("keywords") . "\" />
				</div>

				<div class=\"last_login\">" . get_phrase("logged_your_last_login_was", convert_relative_time($TSUE["TSUE_Member"]["adminCPLastLogin"])) . " --</div>

				<div rel=\"dropDownMenu\" class=\"dropDownMenu help\">
					<span>" . get_phrase("help") . "</span>
					<div id=\"dropDownMenu\">
						<a href=\"\" id=\"checkUpdates\">" . get_phrase("check_for_updates") . "</a>
						<a href=\"\" id=\"about\">" . get_phrase("about") . "</a>
					</div>
				</div>
				<div class=\"menu\">
					" . aaaaae(array( "?action=Dashboard" => array( "phrase" => getimage("menu_icons/home.png") . " " . get_phrase("menu_dashboard"), "class" => ($TSUE["action"] == "Dashboard" ? "active" : "") ), "?action=Plugin Manager" => array( "phrase" => getimage("menu_icons/plugin.png") . " " . get_phrase("menu_plugin_manager"), "class" => ($TSUE["action"] == "Plugin Manager" ? "active" : "") ), "?action=Forum Manager" => array( "phrase" => getimage("menu_icons/forums.png") . " " . get_phrase("menu_forum_manager"), "class" => ($TSUE["action"] == "Forum Manager" ? "active" : "") ), "?action=Appearance" => array( "phrase" => getimage("menu_icons/theme.png") . " " . get_phrase("dashboard_options_appearance"), "class" => ($TSUE["action"] == "Appearance" ? "active" : "") ), "?action=Member Manager" => array( "phrase" => getimage("menu_icons/member_manager.png") . " " . get_phrase("menu_member_manager"), "class" => ($TSUE["action"] == "Member Manager" ? "active" : "") ), "?action=File Manager" => array( "phrase" => getimage("menu_icons/file.png") . " " . get_phrase("menu_file_manager"), "class" => ($TSUE["action"] == "File Manager" ? "active" : "") ) )) . "
				</div>")) . "
			</div>

			<div id=\"container\">
				<div class=\"content\">
					" . (($isLogin ? "" : "
					<span class=\"logout\">
						<a href=\"../\" target=\"_blank\">" . get_phrase("view_website") . "</a> | 
						<a href=\"?action=logout\">" . get_phrase("logged_logout") . "</a>
					</span>")) . "
					" . createbreadcrumb() . "
					<div id=\"mainText\">" . $content . "</div>
					<div style=\"clear: both;\"></div>
				</div>
			</div>

			<div id=\"footer\">&nbsp;</div>
			<div id=\"copyright\">
                /*" . ((!$isLogin ? "<div class=\"debug dotted-bottom-gray\">Memory Usage: " . friendly_size(memory_get_usage()) . " -- Query Count: " . $TSUE["TSUE_Database"]->querycount . " -- Page Loaded in " . round(microtime(true) - TIMESTART, 4) . " seconds.</div>" : "")) . "
                				
            </div>

			" . (($isLogin ? "
			<script type=\"text/javascript\">
				\$(document).ready(function(){\$('input[name=\"membername\"]').focus()});
			</script>" : "
			<script type=\"text/javascript\">
				var \$openedDropDownMenu, \$noLoader = false, Overlay = \"\";

				\$(document).click(function()
				{
					if(\$openedDropDownMenu)
					{
						\$('.dropDownClose').remove();
						\$openedDropDownMenu.hide();
					}
				});
				
				var TSUEAdmin =
				{
					init: function()
					{
						" . (($TSUE["action"] == "Dashboard" && $TSUE["do"] == "Options" ? "TSUEAdmin.optionGroups();" : "")) . "
						TSUEAdmin.clickableOptionBoxes();
						TSUEAdmin.initTipsy();
						TSUEAdmin.checkAll();
						TSUEAdmin.initDateInputBoxes();
                        TSUEAdmin.initAutoComplete();
						TSUEAdmin.calculator();
						TSUEAdmin.initTinyMCE(\"tinyMCE\");
						TSUEAdmin.initDropDownMenu();
						TSUEAdmin.initHelp();
						TSUEAdmin.initTextareaLines();
						TSUEAdmin.disableSpellChecks();
						TSUEAdmin.initializeFancyBOX();
						TSUEAdmin.scrollInfoBoxes();

						\$(document).ajaxStart(function()
						{
							TSUEAdmin.showLoader();
							\$(\"input,textarea,select\").attr(\"disabled\", true);
						})
						.ajaxComplete(function()
						{
							TSUEAdmin.hideLoader();
							\$(\"input,textarea,select\").attr(\"disabled\", false);
							TSUEAdmin.checkAll();
							TSUEAdmin.initDateInputBoxes();
                            TSUEAdmin.initAutoComplete();
							TSUEAdmin.initializeFancyBOX();
							setTimeout(function(){TSUEAdmin.initTinyMCE(\"tinyMCEAjax\")}, 1000);
							//setTimeout(function(){\$(\".success,.error,.info\").fadeOut(\"slow\")}, 3000);
						});

						if(\$(\"#globalWarnings\").length)
						{
							\$(\"#globalWarnings .closeWarning\").click(function(e)
							{
								e.preventDefault();
								
								\$.ajax
								({
									type: \"POST\",
									data: \"isAjax=1&action=closeGlobalWarning\",
									success: function()
									{
										\$(\"#globalWarnings\").fadeOut(\"slow\");
									}
								});

								return false;
							});
						};
					},

					scrollInfoBoxes: function()
					{
						\$(window).scroll(function()
						{
							\$(\"#scrolling\").remove();
							if(\$(window).scrollTop() > 1)
							{
								\$('<div id=\"scrolling\" style=\"position: fixed; right: 15px; bottom: 25px; padding: 0; cursor: pointer; z-index: 1000; display: none;\"><img src=\"./images/buttons/up.png\" alt=\"\" title=\"\" /></div>').prependTo(\"body\").click(function(e)
								{
									e.preventDefault();
									\$(\"html, body\").animate({ scrollTop: 0 }, \"slow\", \"easeOutBounce\");
									return false;
								}).fadeIn(\"slow\");
							}
						});
					},

					setCookie: function(c_name,value,exdays)
					{
						var exdate=new Date();
						exdate.setDate(exdate.getDate() + exdays);
						var c_value=escape(value) + ((exdays==null) ? \"\" : \"; expires=\"+exdate.toUTCString());
						document.cookie=c_name + \"=\" + c_value;
					},

					initializeFancyBOX: function()
					{
						\$('[rel=\"fancybox\"],#fancybox').fancybox({\"type\":\"image\",\"openEffect\":\"elastic\",\"closeEffect\":\"elastic\"});
					},

					disableSpellChecks: function()
					{
						\$(\".templateTextarea\").attr(\"spellcheck\", false);
					},

					initTextareaLines: function()
					{
						\$(\".templateTextarea\").linedtextarea();
					},

					initHelp: function()
					{
						\$(\"#about\").click(function(e)
						{
							e.preventDefault();

							\$noLoader = true;

							TSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "', false, false);
							
							\$.ajax
							({
								type: \"POST\",
								data: \"isAjax=1&action=about\",
								success: function(result)
								{
									\$noLoader = false;
									\$(\".overlay_text\").html(result);
								}
							});

							return false;
						});

						\$(\"#checkUpdates\").click(function(e)
						{
							e.preventDefault();

							\$noLoader = true;

							TSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "', false, false);
							
							\$.ajax
							({
								type: \"POST\",
								data: \"isAjax=1&action=checkUpdates\",
								success: function(result)
								{
									\$noLoader = false;
									\$(\".overlay_text\").html(result);
								}
							});

							return false;
						});
					},

					initTinyMCE: function(elementName)
					{
						tinyMCE.init
						({
							mode: \"exact\",
							elements: elementName,
							theme: \"advanced\",
							skin : \"default\",
							plugins : \"advhr,advimage,advlink,advlist,autolink,autoresize,contextmenu,fullscreen,inlinepopups,insertdatetime,layer,lists,media,nonbreaking,noneditable,paste,preview,print,save,searchreplace,style,tabfocus,table,visualchars\",
							 theme_advanced_buttons1 : \"newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect,|,forecolor,backcolor\",
							theme_advanced_buttons2 : \"cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,code,|,insertdate,inserttime,preview\",
							theme_advanced_buttons3 : \"tablecontrols,|,hr,removeformat,visualaid,|,charmap,emotions,iespell,media,advhr,|,print,|,fullscreen\",
							theme_advanced_toolbar_location : \"top\",
							theme_advanced_toolbar_align : \"left\",
							theme_advanced_statusbar_location : \"bottom\",
							theme_advanced_resizing : true,

							convert_urls:true,
							relative_urls:false,
							remove_script_host:false,
						});
					},

					initDropDownMenu: function()
					{
						\$('[rel=\"dropDownMenu\"]').click('click', function(e)
						{
							e.preventDefault();

							if(\$openedDropDownMenu)
							{
								\$('.dropDownClose').remove();
								\$openedDropDownMenu.hide();
							}

							var \$findMenu = \$(this).children('#dropDownMenu');
							\$openedDropDownMenu = \$findMenu;

							\$findMenu.find(\"a\").click(function()
							{
								var \$location = \$(this).attr(\"href\");
								if(\$location)
								{
									window.location = \$location;
									return;
								};
							});
							
							if(\$findMenu.is(':visible'))
							{
								\$findMenu.fadeOut(\"slow\");
							}
							else
							{
								\$findMenu.fadeIn(\"slow\");
								\$('<div class=\"dropDownClose\"><a class=\"clickable small staffLink\" href=\"javascript:void(0);\">" . get_phrase("button_cancel") . "</a></div>').appendTo(\$findMenu).click(function(e)
								{
									e.preventDefault();
									\$('.dropDownClose').remove();
									\$findMenu.fadeOut(\"slow\");
									return false;
								});
							}
							
							return false;
						});
					},

					clickableOptionBoxes: function()
					{
						\$(document).on(\"click\", \".option_box\", function(e)
						{
							e.preventDefault();
							window.location=\"?action=" . $TSUE["action"] . "&do=\"+\$(this).attr(\"rel\");
							return false;
						});
					},

					//Use Ajax for Dashboard > Options -> Options Groups.. Such as Website Active, IP Ban etc..
					optionGroups: function()
					{
						//Clicked on Options Group such as Options -> Website Active
						\$(document).on(\"click\", \".optionGroup\", function(e)
						{
							e.preventDefault();
							var optionsREL = \$(this).attr(\"rel\"),
							buildQuery = \"isAjax=1&\"+optionsREL,
							optionGroup = \$(this);

							\$.ajax
							({
								type: \"POST\",
								data: buildQuery,
								success: function(result)
								{
									TSUEAdmin.dialog(result, false, true);
									TSUEAdmin.initTipsy();
									\$(\"#overlay_form\").submit(function(e)//Does this have a form which was submitted?
									{
										var \$thisForm = \$(this);

										//Ajax Response has form which has been submitted. Lets handle it.
										e.preventDefault();
										var \$form = \$(this),
										buildQuery = \"isAjax=1&\"+optionsREL+\"&\"+\$form.serialize();

										if(\$(\"#tinyMCEAjax\").length)
										{
											tinyMCE.triggerSave();
											buildQuery += \"&\"+\$(\"#tinyMCEAjax\").attr(\"name\")+\"=\"+encodeURIComponent(tinyMCE.activeEditor.getContent());
										}

										\$.ajax
										({
											type: \"POST\",
											data: buildQuery,
											success: function(result)
											{
												if(result)
												{
													//Results Contains New Data, Lets show it in overlay.
													if(result.match(/-UPDATE_HTML-/))
													{
														result = result.split(\"~\");//0:-UPDATE_HTML- , 1: divID, 2: HTML
														\$(result[1]).html(result[2]);
													}
													else
													{
														\$(\".overlay_text .success, .overlay_text .error\").remove();
														\$(result).prependTo(\".overlay_text\");
														var \$submitButton = \$thisForm.find('input[type=\"submit\"]');
														\$(result).insertBefore(\$submitButton);
														\$(\".overlay_text\").animate({scrollTop: 0}, \"slow\");
													}
												}
											}
										});
									});

									\$(document).on(\"click\",\"#checkHitRunOptions\",function(e)
									{
										e.preventDefault();
										
										var \$div = \$(\".checkHitRunOptions\");

										var \$options = \$(\"#overlay_form\").serialize();
										
										\$div.html('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "');
										\$.ajax
										({
											type: \"POST\",
											data: \"isAjax=1&action=checkHitRunOptions&\"+\$options,
											success: function(result)
											{
												\$div.html(result);
											}
										});
										
										return false;
									});
								}
							});
							return false;
						});
					},

					//Use Tipsy for rel:initTipsy and Images.
					initTipsy: function()
					{
						\$('[rel=\"initTipsy\"],img[title!=\"\"]').tipsy({trigger: \"hover\", gravity: \"s\", html: true});// nw | n | ne | w | e | sw | s | se
					},

					//Calendar for input:date
					initDateInputBoxes: function()
					{
						\$.tools.dateinput.localize(\"tsue\", {months: TSUEPhrases[\"months\"], shortMonths: TSUEPhrases[\"shortMonths\"], days: TSUEPhrases[\"days\"], shortDays: TSUEPhrases[\"shortDays\"]});
						\$('input[type=\"date\"]').dateinput({lang: \"tsue\", format: \"dd/mm/yyyy\", selectors: true, yearRange: [-80, 5]}).attr(\"autocomplete\", \"off\");
					},

                    //Autocomplete
                    initAutoComplete: function()
                    {
						\$(function()
						{
							function split( val )
							{
								return val.split( /,\s*/ );
							}

							function extractLast( term )
							{
								return split( term ).pop();
							}

							var cache = {}, lastXhr;

							if(\$(\"#autoCompleteMultiple\").length)
							{
								\$(\"#autoCompleteMultiple\").
								// don't navigate away from the field on tab when selecting an item
								bind( \"keydown\", function( event )
								{
									if ( event.keyCode === \$.ui.keyCode.TAB && \$( this ).data( \"ui-Autocomplete\" ).menu.active )
									{
										event.preventDefault();
									}
								})
								.autocomplete
								({
									source: function( request, response )
									{
										\$.ajax
										({
											type: \"POST\",
											url: \"index.php\",
											dataType: \"json\",
											data: \"isAjax=1&action=autoComplete&do=searchMember&keyword=\"+extractLast(request.term),
											success: function(serverResponse, status, xhr)
											{
												response( serverResponse );
											}
										});
									},
									search: function()
									{
										// custom minLength
										var term = extractLast( this.value );
										if ( term.length < 2 )
										{
											return false;
										}
									},
									focus: function()
									{
										// prevent value inserted on focus
										return false;
									},
									select: function( event, ui )
									{
										var terms = split( this.value );
										// remove the current input
										terms.pop();
										// add the selected item
										terms.push( ui.item.value );
										// add placeholder to get the comma-and-space at the end
										terms.push( \"\" );
										this.value = terms.join( \", \" );
										return false;
									}
								});
							}

							if(\$(\"#autoComplete\").length)
							{
								\$(\"#autoComplete\").autocomplete//For Member Search
								({
									minLength: 2,
									source: function( request, response )
									{
										var term = request.term;
										if( term in cache )
										{
											response( cache[ term ] );
											return;
										}

										lastXhr = \$.ajax
										({
											type: \"POST\",
											url: \"index.php\",
											dataType: \"json\",
											data: \"isAjax=1&action=autoComplete&do=searchMember&keyword=\"+term,
											success: function(serverResponse, status, xhr)
											{
												cache[ term ] = serverResponse;
												if( xhr === lastXhr )
												{
													response( serverResponse );
												}
											}
										});
									}
								});
							}

							if(\$(\"#autoCompleteSearchInAdminCP\").length)
							{
								\$(\"#autoCompleteSearchInAdminCP\").autocomplete//For Search in Admin CP
								({
									delay: 500,
									minLength: 2,
									source: function( request, response )
									{
										\$.ajax
										({
											type: \"POST\",
											url: \"index.php\",
											dataType: \"json\",
											data: \"isAjax=1&action=autoComplete&do=searchINAdminCP&keyword=\"+request.term,
											success: function(serverResponse, status, xhr)
											{
												response( serverResponse );
											}
										});
									},
									select: function( event, ui)
									{
										if(ui.item.url)
										{
											window.open(ui.item.url, \"_blank\");
											return false;
										}
										else
										{
											return false;
										}
									}
								}).click(function()
								{
									var \$this = \$(this);
									if(\$this.val() == \"" . get_phrase("keywords") . "\")
									{
										\$this.val(\"\");
									}
								}).data(\"ui-Autocomplete\")._renderItem = function (ul, item)
								{
									return \$(\"<li></li>\")
									.data(\"item.autocomplete\", item)
									.append(\$(\"<a></a>\").html(item.label))
									.appendTo(ul);
								};
							}
						});
                    },

					//Set YES-NO and Check ALL
					checkAll: function()
					{
						\$(document).on(\"click\", \"#checkAllCheckbox\", function(e)
						{
							var \$this = \$(this), \$cName = \$this.attr(\"data\"), \$isChecked = \$this.is(\":checked\");							
							\$('input[name=\"'+\$cName+'\"]').attr(\"checked\", \$isChecked);
						});

						\$(document).on(\"click\", \"#setALLYes\", function(e)
						{
							e.preventDefault();
							\$(\"input:radio[rel='\"+\$(this).attr(\"rel\")+\"']\").filter(\"[value='1']\").attr(\"checked\", true);
							return false;
						});

						\$(document).on(\"click\", \"#setALLNo\", function(e)
						{
							e.preventDefault();
							\$(\"input:radio[rel='\"+\$(this).attr(\"rel\")+\"']\").filter(\"[value='0']\").attr(\"checked\", true);
							return false;
						});

						\$(document).on(\"click\", 'input[name=\"checkALL\"]', function(e)
						{
							var \$inputNames = \$(this).attr(\"value\");
							var \$checked_status = \$(this).attr(\"checked\");
							\$('input[name=\"'+\$inputNames+'\"]').attr(\"checked\", (\$checked_status ? \$checked_status : false));
						});
					},

					//Auto Resize Dialog Height.
					initMainContentHeight: function()
					{
						var containerContent = \$(\".content\"),
						containerContentHeight = \$(containerContent).height(),
						windowHeight = \$(window).height()-180,
						buttonExpand = \"" . (($isLogin ? "" : get_phrase("button_expand"))) . "\";
						if(containerContentHeight > windowHeight)
						{
							\$(containerContent).animate({maxHeight: windowHeight+\"px\"}).css({overflow: \"hidden\"});
							\$('<div id=\"toggleText\">'+buttonExpand+'</div>').appendTo(\$(containerContent)).click(function()
							{
								\$(containerContent).animate({maxHeight: containerContentHeight+\"px\"});
								\$(this).remove();
							});
						}
					},

					//Show Loader While Ajax loading.
					showLoader: function()
					{
						if(!\$noLoader)
						{
							\$(\"#loading\").show();
						}
					},

					//Hide Loader After Ajax completed.
					hideLoader: function()
					{
						\$(\"#loading\").hide();
					},

					//Confirmation.
					confirmAction: function(cMessage)
					{
						return confirm(cMessage);
					},

					calculator: function()
					{
						\$(document).on(\"click\", \".calculator\", function(e)
						{
							e.preventDefault();
							\$.ajax
							({
								type: \"POST\",
								url: \"calculator.html\",
								success: function(calculatorHTML)
								{
									TSUEAdmin.dialog(calculatorHTML);
									\$(\"#calculator\").submit(function(e)
									{
										e.preventDefault();

										var \$amount = parseInt(\$('input[name=\"amount\"]', this).val());
										var \$amount_type = \$('select[name=\"amount_type\"]', this).val();

										if(\$amount && \$amount_type)
										{
											var \$convertedAmount = 0;

											switch(\$amount_type)
											{
												case \"MB\":
													\$convertedAmount = \$amount * 1024 * 1024;
												break;

												case \"GB\":
													\$convertedAmount = \$amount * 1024 * 1024 * 1024;
												break;
											}

											\$(\"#convertedAmount\").html(\$amount+\" \"+\$amount_type+\" equal to \"+\$convertedAmount+\" Bytes\");
										}

										return false;
									});
								}
							});
							return false;
						});
					},

					//Dialog Function
					dialog: function(result, _closeOnClick, _closeOnEsc)
					{
						if(\$(\".apple_overlay\").length)
						{
							\$(\".apple_overlay\").empty().remove();
						}

						Overlay = \$('<div class=\"apple_overlay\"><div class=\"overlay_text\">'+result+'</div></div>').prependTo(\"body\").overlay
						({
							load: true, closeOnClick: (_closeOnClick ? true : false), closeOnEsc: (_closeOnEsc ? true : false), top: 20,
							mask:{color: \"#ccc\", loadSpeed: 200, opacity: 0.8},
							onClose: function()
							{
								TSUEAdmin.closeDialog();
							},
							onLoad: function()
							{
								var \$overlayHeight = \$(\".overlay_text\").outerHeight(), \$overlayWidth = \$(\".apple_overlay\").outerWidth(), \$windowHeight = \$(window).height(), \$windowWidth = \$(window).width();
								if(\$overlayHeight+100 > \$windowHeight)
								{
									\$(\".overlay_text\").css({height: \$windowHeight-100});
								}
								if(\$overlayWidth+35 > \$windowWidth)
								{
									\$(\".apple_overlay\").css({width: \$windowWidth-35});
								}
								TSUEAdmin.resizeOverlay();
							},
							api:true
						});
					},

					resizeOverlay: function()
					{
						//var top = (\$(window).height() / 2) - (\$(\".apple_overlay\").outerHeight() / 2);
						var left = (\$(window).width() / 2) - (\$(\".apple_overlay\").outerWidth() / 2);
						//\$(\".apple_overlay\").css(\"top\", top);
						\$(\".apple_overlay\").css(\"left\", left);
					},

					closeDialog: function()
					{
						//Remove Tinymce
						\$inline_editor = \$(\"body\").find('textarea[id=\"tinyMCEAjax\"]');
						if(\$inline_editor.length)
						{
							tinyMCE.execCommand(\"mceFocus\", false, \"tinyMCEAjax\");
							tinyMCE.execCommand(\"mceRemoveControl\", false, \"tinyMCEAjax\");
							\$inline_editor.html(\"\").remove();
						}

						//Remove Overlay Div
						\$(document).find(\".apple_overlay\").each(function()
						{
							\$(this).empty().remove();
						});

						//Close Overlay
						Overlay.close();
					}
				};

				\$(document).ready(function(){TSUEAdmin.init();});
				\$(window).resize(function(){TSUEAdmin.resizeOverlay();});
			</script>")) . "

		</body>
	</html>"); 
} 
 
function _sendheaders($Content, $ContentType = "text/html", $UseCharset = true) 
{ 
    global $TSUE; 
    ob_start(); 
    $Content = gzipcontentifsupported($Content); 
    if( $UseCharset ) 
    { 
        $UseCharset = "; charset=" . ((isset($TSUE["TSUE_Language"]["charset"]) ? $TSUE["TSUE_Language"]["charset"] : "UTF-8")); 
    } 
    else 
    { 
        $UseCharset = ""; 
    } 
 
    header("X-Powered-By: TSUE " . V); 
    header("Cache-Control: no-cache, must-revalidate"); 
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); 
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
    header("Content-Length: " . strlen($Content)); 
    header("Content-Type: " . $ContentType . $UseCharset); 
    exit( $Content ); 
} 
 
function gzipcontentifsupported($Content) 
{ 
    if( @ini_get("zlib.output_compression") ) 
    { 
        return $Content; 
    } 
 
    if( !function_exists("gzencode") || empty($_SERVER["HTTP_ACCEPT_ENCODING"]) ) 
    { 
        return $Content; 
    } 
 
    if( !is_string($Content) ) 
    { 
        return $Content; 
    } 
 
    if( strpos($_SERVER["HTTP_ACCEPT_ENCODING"], "gzip") !== false ) 
    { 
        header("Content-Encoding: gzip"); 
        header("Vary: Accept-Encoding"); 
        $Content = gzencode($Content, 9, FORCE_GZIP); 
    } 
 
    return $Content; 
} 
 
function aaaaac() 
{ 
    $port = (isset($_SERVER["SERVER_PORT"]) && $_SERVER["SERVER_PORT"] ? intval($_SERVER["SERVER_PORT"]) : 0); 
    $port = (in_array($port, array( 80, 443 )) ? "" : ":" . $port); 
    $scheme = (":443" == $port || isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] && $_SERVER["HTTPS"] != "off" ? "https://" : "http://"); 
    $host = fetch_server_value("HTTP_HOST"); 
    $name = fetch_server_value("SERVER_NAME"); 
    $host = (substr_count($name, ".") < substr_count($host, ".") ? $host : $name); 
    if( !($scriptpath = fetch_server_value("PATH_INFO")) && !($scriptpath = fetch_server_value("REDIRECT_URL")) && !($scriptpath = fetch_server_value("URL")) && !($scriptpath = fetch_server_value("PHP_SELF")) ) 
    { 
        $scriptpath = fetch_server_value("SCRIPT_NAME"); 
    } 
 
    $url = $scheme . $host . "/" . str_replace("index.php", "", ltrim($scriptpath, "/\")); 
    return $url; 
} 
 
function fetch_server_value($name) 
{ 
    if( isset($_SERVER[$name]) && $_SERVER[$name] ) 
    { 
        return $_SERVER[$name]; 
    } 
 
    if( isset($_ENV[$name]) && $_ENV[$name] ) 
    { 
        return $_ENV[$name]; 
    } 
 
    return false; 
} 
 
function addbreadcrumb($breadcrumbs) 
{ 
    global $TSUE; 
    foreach( $breadcrumbs as $_title => $_link ) 
    { 
        $TSUE["breadcrumb"][] = "
		<span class=\"crust\" itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">
			<a href=\"" . $_link . "\" class=\"crumb\" rel=\"up\" itemprop=\"url\"><span itemprop=\"title\">" . $_title . "</span></a>
			<span class=\"arrow\"><span></span></span>
		</span>"; 
    } 
} 
 
function createbreadcrumb() 
{ 
    global $TSUE; 
    $breadcrumbs = implode("
", $TSUE["breadcrumb"]); 
    if( !$breadcrumbs ) 
    { 
        return ""; 
    } 
 
    $breadcrumb = "
	<div class=\"breadBoxTop\">
		<nav>
			<fieldset class=\"breadcrumb\">
				<span class=\"crumbs\">
					" . $breadcrumbs . "
				</span>
			</fieldset>
		</nav>
	</div>"; 
    return $breadcrumb; 
} 
 
function errormessage($msg) 
{ 
    return "<div class=\"error\">" . $msg . "</div>"; 
} 
 
function successmessage($msg) 
{ 
    return "<div class=\"success\">" . $msg . "</div>"; 
} 
 
function has_permission($What, $Permissions = "") 
{ 
    return (isset($Permissions[$What]) ? $Permissions[$What] : false); 
} 
 
function aaaaad($checkFor) 
{ 
    global $TSUE; 
    $tsue_staffcp_permissions = $TSUE["TSUE_Database"]->query_result("SELECT permissions FROM tsue_staffcp_permissions WHERE memberid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Member"]["memberid"])); 
    if( !$tsue_staffcp_permissions ) 
    { 
        $error = true; 
    } 
    else 
    { 
        if( !($tsue_staffcp_permissions = unserialize($tsue_staffcp_permissions["permissions"])) ) 
        { 
            $error = true; 
        } 
        else 
        { 
            if( !isset($tsue_staffcp_permissions[$checkFor]) || isset($tsue_staffcp_permissions[$checkFor]) && !$tsue_staffcp_permissions[$checkFor] ) 
            { 
                $error = true; 
            } 
 
        } 
 
    } 
 
    if( isset($error) && $error ) 
    { 
        printoutput(errormessage(get_phrase("permission_denied"))); 
    } 
 
} 
 
function checkdemomode() 
{ 
    if( DEMO_MODE ) 
    { 
        printoutput(errormessage("This function is disabled within demo mode.")); 
    } 
 
} 
 
function undomagicquotes(&$array, $depth = 0) 
{ 
    if( 10 < $depth || !is_array($array) ) 
    { 
        return NULL; 
    } 
 
    foreach( $array as $key => $value ) 
    { 
        if( is_array($value) ) 
        { 
            undomagicquotes($array[$key], $depth + 1); 
        } 
        else 
        { 
            $array[$key] = stripslashes($value); 
        } 
 
        if( is_string($key) ) 
        { 
            $new_key = stripslashes($key); 
            if( $new_key != $key ) 
            { 
                $array[$new_key] = $array[$key]; 
                unset($array[$key]); 
            } 
 
        } 
 
    } 
} 
 
function profileupdate($memberid, $buildQuery) 
{ 
    global $TSUE; 
    return $TSUE["TSUE_Database"]->update("tsue_member_profile", $buildQuery, "memberid=" . $TSUE["TSUE_Database"]->escape($memberid), false); 
} 
 
function updatememberpoints($addPoint, $memberid, $Increase = true) 
{ 
    if( $addPoint ) 
    { 
        if( $Increase ) 
        { 
            $points = array( "escape" => 0, "value" => "points + " . $addPoint ); 
        } 
        else 
        { 
            $points = array( "escape" => 0, "value" => "IF(points > " . $addPoint . ", points-" . $addPoint . ", 0)" ); 
        } 
 
        return profileupdate($memberid, array( "points" => $points )); 
    } 
 
} 
 
function ispost() 
{ 
    return strtoupper($_SERVER["REQUEST_METHOD"]) == "POST"; 
} 
 
function getvar($valueName, $defaultValue = "", $cleanValue = true) 
{ 
    $searchValue = (isset($_POST[$valueName]) && !empty($_POST[$valueName]) ? $_POST[$valueName] : (isset($_GET[$valueName]) && !empty($_GET[$valueName]) ? $_GET[$valueName] : $defaultValue)); 
    return ($cleanValue ? html_clean($searchValue) : $searchValue); 
} 
 
function file_extension($filename) 
{ 
    return substr(strrchr($filename, "."), 1); 
} 
 
function getsetting($setting = "", $value = "", $defaultValue = "") 
{ 
    global $TSUE; 
    return (isset($TSUE["TSUE_Settings"]->settings[$setting][$value]) ? $TSUE["TSUE_Settings"]->settings[$setting][$value] : $defaultValue); 
} 
 
function get_phrase() 
{ 
    global $TSUE; 
    $args = func_get_args(); 
    $args[0] = preg_replace("#\{([0-9]+)\}#sU", "%\1\$s", $TSUE["TSUE_Language"]["phrase"][$args[0]]); 
    $numargs = sizeof($args); 
    if( $numargs == 1 && is_array($args[0]) ) 
    { 
        return construct_phrase_from_array($args[0]); 
    } 
 
    if( $numargs == 2 && is_string($args[0]) && is_array($args[1]) ) 
    { 
        array_unshift($args[1], $args[0]); 
        return construct_phrase_from_array($args[1]); 
    } 
 
    return construct_phrase_from_array($args); 
} 
 
function construct_phrase_from_array($phrase_array) 
{ 
    $numargs = sizeof($phrase_array); 
    if( $numargs < 2 ) 
    { 
        return $phrase_array[0]; 
    } 
 
    $phrase = @call_user_func_array("sprintf", $phrase_array); 
    if( $phrase !== false ) 
    { 
        return $phrase; 
    } 
 
    for( $i = $numargs; $i < 10; $i++ ) 
    { 
        $phrase_array[(string) $i] = "[ARG:" . $i . " UNDEFINED]"; 
    } 
    if( $phrase = @call_user_func_array("sprintf", $phrase_array) ) 
    { 
        return $phrase; 
    } 
 
    return $phrase_array[0]; 
} 
 
function convert_time($timestamp, $format = "") 
{ 
    global $TSUE; 
    if( !$format ) 
    { 
        $format = $TSUE["TSUE_Language"]["date_format"] . " " . $TSUE["TSUE_Language"]["time_format"]; 
    } 
 
    return gmdate($format, $timestamp + 3600 * ($TSUE["TSUE_Member"]["timezone"] + $TSUE["TSUE_Member"]["dst"])); 
} 
 
function convert_relative_time($timestamp = 0) 
{ 
    global $TSUE; 
    $interval = TIMENOW - $timestamp; 
    if( $interval < 0 ) 
    { 
        return convert_time($timestamp); 
    } 
 
    $aaaaod = array( "today" => convert_time(TIMENOW, "n-j-Y"), "yesterday" => convert_time(TIMENOW - 86400, "n-j-Y"), "week" => convert_time(TIMENOW - 86400 * 6, "n-j-Y") ); 
    $MTimeStamp = convert_time($timestamp, "n-j-Y"); 
    if( $MTimeStamp == $aaaaod["today"] ) 
    { 
        return get_phrase("relative_today_at_x", convert_time($timestamp, $TSUE["TSUE_Language"]["time_format"])); 
    } 
 
    if( $MTimeStamp == $aaaaod["yesterday"] ) 
    { 
        return get_phrase("relative_yesterday_at_x", convert_time($timestamp, $TSUE["TSUE_Language"]["time_format"])); 
    } 
 
    if( $aaaaod["week"] <= $MTimeStamp ) 
    { 
        $dayName = get_phrase("day_" . convert_time($timestamp, "N")); 
        $Time = convert_time($timestamp, $TSUE["TSUE_Language"]["time_format"]); 
        return get_phrase("relative_day_x_at_time_y", $dayName, $Time); 
    } 
 
    return convert_time($timestamp); 
} 
 
function secondstohours($seconds) 
{ 
    $lang = tsue_explode(",", get_phrase("all_in_one_pretty_time")); 
    $hours = floor($seconds / 3600); 
    $minutes = floor(($seconds / 60) % 60); 
    $hoursPhrase = (1 < $hours ? $lang["9"] : $lang["8"]); 
    $minutesPhrase = (1 < $minutes ? $lang["11"] : $lang["10"]); 
    return (string) $hours . " " . $hoursPhrase . " " . $minutes . " " . $minutesPhrase; 
} 
 
function aaaadj($stamp = 0) 
{ 
    $ysecs = 365 * 24 * 60 * 60; 
    $mosecs = 31 * 24 * 60 * 60; 
    $wsecs = 7 * 24 * 60 * 60; 
    $dsecs = 24 * 60 * 60; 
    $hsecs = 60 * 60; 
    $msecs = 60; 
    $years = floor($stamp / $ysecs); 
    $stamp %= $ysecs; 
    $months = floor($stamp / $mosecs); 
    $stamp %= $mosecs; 
    $weeks = floor($stamp / $wsecs); 
    $stamp %= $wsecs; 
    $days = floor($stamp / $dsecs); 
    $stamp %= $dsecs; 
    $hours = floor($stamp / $hsecs); 
    $stamp %= $hsecs; 
    $minutes = floor($stamp / $msecs); 
    $stamp %= $msecs; 
    $seconds = $stamp; 
    return array( "years" => $years, "months" => $months, "weeks" => $weeks, "days" => $days, "hours" => $hours, "minutes" => $minutes ); 
} 
 
function getmembername($membername = "", $groupstyle = "") 
{ 
    return str_replace("{membername}", $membername, $groupstyle); 
} 
 
function explodesearchkeywords($Match = "", $Against = "", $fullTextSearch = true) 
{ 
    global $TSUE; 
    if( $fullTextSearch ) 
    { 
        return "MATCH (" . $Match . ") AGAINST ('" . $TSUE["TSUE_Database"]->escape_no_quotes($Against) . "' IN BOOLEAN MODE)"; 
    } 
 
    return (string) $Match . " LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Against) . "%'"; 
} 
 
function deletetorrent($tid = 0) 
{ 
    global $TSUE; 
    checkdemomode(); 
    if( !$tid ) 
    { 
        return false; 
    } 
 
    $attachments = $TSUE["TSUE_Database"]->query("SELECT content_type, filename FROM tsue_attachments WHERE content_type IN ('torrent_images', 'torrent_files', 'torrent_screenshots') AND content_id = " . $TSUE["TSUE_Database"]->escape($tid)); 
    if( $TSUE["TSUE_Database"]->num_rows($attachments) ) 
    { 
        while( $attachment = $TSUE["TSUE_Database"]->fetch_assoc($attachments) ) 
        { 
            if( $attachment["content_type"] == "torrent_files" || $attachment["content_type"] == "nfo" ) 
            { 
                $file = DATAPATH . "torrents/" . $attachment["content_type"] . "/" . $attachment["filename"]; 
                if( is_file($file) ) 
                { 
                    @unlink($file); 
                } 
 
            } 
            else 
            { 
                deleteimages($attachment["filename"]); 
            } 
 
        } 
        $TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type IN ('torrent_images', 'torrent_files','torrent_screenshots') AND content_id = " . $TSUE["TSUE_Database"]->escape($tid)); 
    } 
 
    aaaaex($tid); 
    $TSUE["TSUE_Database"]->delete("tsue_bookmarks", "tid = " . $TSUE["TSUE_Database"]->escape($tid)); 
    $TSUE["TSUE_Database"]->delete("tsue_comments", "content_type = 'torrent_comments' AND content_id = " . $TSUE["TSUE_Database"]->escape($tid)); 
    $TSUE["TSUE_Database"]->delete("tsue_comments_replies", "content_type = 'torrent_comments' AND content_id = " . $TSUE["TSUE_Database"]->escape($tid)); 
    $TSUE["TSUE_Database"]->delete("tsue_liked_content", "content_type = 'torrent' AND content_id = " . $TSUE["TSUE_Database"]->escape($tid)); 
    $TSUE["TSUE_Database"]->delete("tsue_torrents_peers", "tid = " . $TSUE["TSUE_Database"]->escape($tid)); 
    $TSUE["TSUE_Database"]->delete("xbt_files_users", "fid = " . $TSUE["TSUE_Database"]->escape($tid)); 
    if( getsetting("xbt", "active") ) 
    { 
        $TSUE["TSUE_Database"]->update("tsue_torrents", array( "flags" => "1" ), "tid = " . $TSUE["TSUE_Database"]->escape($tid)); 
    } 
    else 
    { 
        $TSUE["TSUE_Database"]->delete("tsue_torrents", "tid = " . $TSUE["TSUE_Database"]->escape($tid)); 
    } 
 
    handleprune(false); 
    return true; 
} 
 
function aaaaex($tid) 
{ 
    global $TSUE; 
    checkdemomode(); 
    if( is_array($tid) ) 
    { 
        foreach( $tid as $t ) 
        { 
            aaaaex($t); 
        } 
        return NULL; 
    } 
    else 
    { 
        $IMDB = $TSUE["TSUE_Database"]->query_result("SELECT content FROM tsue_imdb WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid)); 
        if( $IMDB ) 
        { 
            $IMDBContent = unserialize($IMDB["content"]); 
            if( $IMDBContent["title_id"] && is_file(DATAPATH . "torrents/imdb/" . $IMDBContent["title_id"] . ".jpg") ) 
            { 
                @unlink(DATAPATH . "torrents/imdb/" . $IMDBContent["title_id"] . ".jpg"); 
            } 
 
        } 
 
        $TSUE["TSUE_Database"]->delete("tsue_imdb", "tid = " . $TSUE["TSUE_Database"]->escape($tid)); 
    } 
 
} 
 
function deleteimages($filename) 
{ 
    checkdemomode(); 
    foreach( array( "l", "m", "s" ) as $torrentImageFolder ) 
    { 
        $_filePath = DATAPATH . "torrents/torrent_images/" . $torrentImageFolder . "/" . $filename; 
        if( is_file($_filePath) ) 
        { 
            @unlink($_filePath); 
        } 
 
    } 
} 
 
function deletemember($memberid = 0) 
{ 
    global $TSUE; 
    checkdemomode(); 
    if( !$memberid ) 
    { 
        return NULL; 
    } 
 
    $TSUE["TSUE_Database"]->delete("tsue_comments", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_comments_replies", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_invites", "sender_memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR receiver_memberid = " . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_liked_content", "like_memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_members", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_member_alerts", "alerted_memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_member_bans", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_member_confirmation", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_member_follow", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR follow_memberid = " . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_member_mutes", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_member_privacy", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_member_profile", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_member_profile_visitors", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR visitorid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_member_promotions", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_member_upgrades_promotions", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_member_upgrades_purchases", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_member_warns", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_messages_master", "owner_memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR receiver_memberid = " . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_messages_replies", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_requests", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_shoutbox", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_torrents_peers", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("tsue_uploader_applications", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
    $TSUE["TSUE_Database"]->delete("xbt_files_users", "uid=" . $TSUE["TSUE_Database"]->escape($memberid)); 
} 
 
function is_member_of($groupname) 
{ 
    switch( strtolower($groupname) ) 
    { 
        case "banned": 
            $GroupID = 8; 
            break; 
        case "awaitingmoderation": 
            $GroupID = 4; 
            break; 
        case "awaitingemailconfirmation": 
            $GroupID = 3; 
            break; 
        case "registeredusers": 
            $GroupID = 2; 
            break; 
        case "unregistered": 
            $GroupID = 1; 
    } 
    return (isset($GroupID) ? $GroupID : 0); 
} 
 
function optionbox($rel, $optionTitle, $span, $checkMainPerm = "") 
{ 
    global $TSUE; 
    $oClass = ""; 
    $checkPerm = ($checkMainPerm ? $checkMainPerm : $rel); 
    if( !isset($TSUE["TSUE_Member"]["aPermissions"][$checkPerm]) || !$TSUE["TSUE_Member"]["aPermissions"][$checkPerm] ) 
    { 
        return ""; 
    } 
 
    $do = $rel; 
    if( strstr($rel, "/") !== false ) 
    { 
        list($do, $rel) = tsue_explode("/", $rel); 
        $do = $do . "&" . $rel . "=1"; 
    } 
 
    return "
	<div class=\"option_box" . $oClass . "\" rel=\"" . $do . "\">
		" . getimage("options/" . str_replace(" ", "", strtolower($rel)) . ".png", $optionTitle) . " " . $optionTitle . "
		<span>" . $span . "</span>
	</div>"; 
} 
 
function foldersize($path) 
{ 
    $total_size = 0; 
    $files = scandir($path); 
    $cleanPath = rtrim($path, "/") . "/"; 
    foreach( $files as $t ) 
    { 
        if( $t != "." && $t != ".." ) 
        { 
            $currentFile = $cleanPath . $t; 
            if( is_dir($currentFile) ) 
            { 
                $size = foldersize($currentFile); 
                $total_size += $size; 
            } 
            else 
            { 
                $size = filesize($currentFile); 
                $total_size += $size; 
            } 
 
        } 
 
    } 
    return $total_size; 
} 
 
function friendly_size($bytes = 0, $useName = true, $precision = 2) 
{ 
    global $TSUE; 
    if( !$bytes ) 
    { 
        return 0; 
    } 
 
    $kilobyte = 1024; 
    $megabyte = $kilobyte * 1024; 
    $gigabyte = $megabyte * 1024; 
    $terabyte = $gigabyte * 1024; 
    $filesizename = @tsue_explode(",", "Bytes,KB,MB,GB,TB,PB,EB,ZB,YB"); 
    if( 0 < $bytes && $bytes < $kilobyte ) 
    { 
        return $bytes . (($useName ? " " . $filesizename["0"] : "")); 
    } 
 
    if( $kilobyte <= $bytes && $bytes < $megabyte ) 
    { 
        return round($bytes / $kilobyte, $precision) . (($useName ? " " . $filesizename["1"] : "")); 
    } 
 
    if( $megabyte <= $bytes && $bytes < $gigabyte ) 
    { 
        return round($bytes / $megabyte, $precision) . (($useName ? " " . $filesizename["2"] : "")); 
    } 
 
    if( $gigabyte <= $bytes && $bytes < $terabyte ) 
    { 
        return round($bytes / $gigabyte, $precision) . (($useName ? " " . $filesizename["3"] : "")); 
    } 
 
    if( $terabyte <= $bytes ) 
    { 
        return round($bytes / $terabyte, $precision) . (($useName ? " " . $filesizename["4"] : "")); 
    } 
 
    return html_clean($bytes); 
} 
 
function logadminaction($log, $type = 2) 
{ 
    global $TSUE; 
    if( DEMO_MODE ) 
    { 
        return NULL; 
    } 
 
    $buildQuery = array( "memberid" => (isset($TSUE["TSUE_Member"]["memberid"]) ? $TSUE["TSUE_Member"]["memberid"] : 0), "membername" => (isset($TSUE["TSUE_Member"]["membername"]) ? $TSUE["TSUE_Member"]["membername"] : ""), "date" => TIMENOW, "type" => $type, "log" => $log ); 
    $TSUE["TSUE_Database"]->insert("tsue_logs", $buildQuery); 
} 
 
function aaaaal() 
{ 
    if( isset($_POST["option_name"]) && !empty($_POST["option_name"]) ) 
    { 
        logadminaction(get_phrase("log_x_has_been_saved", trim($_POST["option_name"]))); 
    } 
 
} 
 
function html_clean($text = "") 
{ 
    return (trim($text) != "" ? htmlspecialchars($text, ENT_QUOTES) : ""); 
} 
 
function html_declean($text) 
{ 
    return str_replace(array( "&lt;", "&gt;", "&quot;", "&amp;" ), array( "<", ">", "\"", "&" ), $text); 
} 
 
function safe_names($string = "", $delimer = "-") 
{ 
    if( ctype_digit($string) || !$string ) 
    { 
        return $string; 
    } 
 
    $string = preg_replace("#[^a-zA-Z0-9\.\" . $delimer . "]#", $delimer, $string); 
    $string = preg_replace("#\" . $delimer . "\" . $delimer . "+#", $delimer, $string); 
    return trim($string); 
} 
 
function is_valid_string($string) 
{ 
    return (!preg_match("#^[a-zA-Z0-9]+\$#", $string) ? false : true); 
} 
 
function removewhitespaces($text) 
{ 
    return trim(preg_replace("/\s+/", " ", $text)); 
} 
 
function aaaaio($phrase) 
{ 
    return (!preg_match("#^[a-zA-Z0-9_]+\$#", $phrase) ? false : true); 
} 
 
function is_valid_email($email) 
{ 
    return !isemailbanned($email) && filter_var($email, FILTER_VALIDATE_EMAIL); 
} 
 
function isemailbanned($email) 
{ 
    global $TSUE; 
    if( !empty($TSUE["TSUE_Settings"]->settings["banned_emails_cache"]) ) 
    { 
        foreach( $TSUE["TSUE_Settings"]->settings["banned_emails_cache"] as $bannedEmail ) 
        { 
            $bannedEmail = str_replace("\*", "(.*)", preg_quote($bannedEmail, "/")); 
            if( preg_match("/^" . $bannedEmail . "\$/", $email) ) 
            { 
                return true; 
            } 
 
        } 
    } 
 
    return false; 
} 
 
function fetch_timezones($offset = "all") 
{ 
    $timezones = array( "-12" => get_phrase("timezone_gmt_minus_1200"), "-11" => get_phrase("timezone_gmt_minus_1100"), "-10" => get_phrase("timezone_gmt_minus_1000"), "-9" => get_phrase("timezone_gmt_minus_0900"), "-8" => get_phrase("timezone_gmt_minus_0800"), "-7" => get_phrase("timezone_gmt_minus_0700"), "-6" => get_phrase("timezone_gmt_minus_0600"), "-5" => get_phrase("timezone_gmt_minus_0500"), "-4.5" => get_phrase("timezone_gmt_minus_0430"), "-4" => get_phrase("timezone_gmt_minus_0400"), "-3.5" => get_phrase("timezone_gmt_minus_0330"), "-3" => get_phrase("timezone_gmt_minus_0300"), "-2" => get_phrase("timezone_gmt_minus_0200"), "-1" => get_phrase("timezone_gmt_minus_0100"), "0" => get_phrase("timezone_gmt_plus_0000"), "1" => get_phrase("timezone_gmt_plus_0100"), "2" => get_phrase("timezone_gmt_plus_0200"), "3" => get_phrase("timezone_gmt_plus_0300"), "3.5" => get_phrase("timezone_gmt_plus_0330"), "4" => get_phrase("timezone_gmt_plus_0400"), "4.5" => get_phrase("timezone_gmt_plus_0430"), "5" => get_phrase("timezone_gmt_plus_0500"), "5.5" => get_phrase("timezone_gmt_plus_0530"), "5.75" => get_phrase("timezone_gmt_plus_0545"), "6" => get_phrase("timezone_gmt_plus_0600"), "6.5" => get_phrase("timezone_gmt_plus_0630"), "7" => get_phrase("timezone_gmt_plus_0700"), "8" => get_phrase("timezone_gmt_plus_0800"), "9" => get_phrase("timezone_gmt_plus_0900"), "9.5" => get_phrase("timezone_gmt_plus_0930"), "10" => get_phrase("timezone_gmt_plus_1000"), "11" => get_phrase("timezone_gmt_plus_1100"), "12" => get_phrase("timezone_gmt_plus_1200") ); 
    if( $offset === "all" ) 
    { 
        return $timezones; 
    } 
 
    return $timezones[(string) $offset]; 
} 
 
function createtabs($tabs = array(  ), $EXTRA = "") 
{ 
    $DIV = ""; 
    $LI = ""; 
    $tabCount = 1; 
    foreach( $tabs as $phrase => $content ) 
    { 
        $tabName = "tabs-" . $tabCount; 
        $LI .= "<li><a href=\"#" . $tabName . "\">" . $phrase . "</a></li>"; 
        $DIV .= "<div id=\"" . $tabName . "\"><p>" . $content . "</p></div>"; 
        $tabCount++; 
    } 
    return "
	<div id=\"tabs\">
		<ul>
			" . $LI . "
		</ul>
		" . $DIV . "
	</div>
	<script type=\"text/javascript\">
		\$( \"#tabs\" ).tabs({ history: true });
	</script>
	"; 
} 
 
function aaaaoe($id, $items) 
{ 
    return "
     <script type=\"text/javascript\">
        \$(\"#" . $id . "\").sortable({items: \"" . $items . "\", cursor: \"move\", revert: true, forcePlaceholderSize: true, placeholder: \"ui-state-highlight\"});
    </script>"; 
} 
 
function generatepasskey($length = 30) 
{ 
    $passkey = ""; 
    for( $i = 0; $i < $length; $i++ ) 
    { 
        $passkey .= chr(rand(33, 126)); 
    } 
    return sha1($passkey); 
} 
 
function getserver($key = NULL, $default = NULL) 
{ 
    if( NULL === $key ) 
    { 
        return $_SERVER; 
    } 
 
    return (isset($_SERVER[$key]) ? $_SERVER[$key] : $default); 
} 
 
function getclientip($checkProxy = true) 
{ 
    if( $checkProxy && getserver("HTTP_CLIENT_IP") != NULL ) 
    { 
        $ip = getserver("HTTP_CLIENT_IP"); 
    } 
    else 
    { 
        if( $checkProxy && getserver("HTTP_X_FORWARDED_FOR") != NULL ) 
        { 
            $ip = getserver("HTTP_X_FORWARDED_FOR"); 
        } 
        else 
        { 
            $ip = getserver("REMOTE_ADDR"); 
        } 
 
    } 
 
    return strip_tags($ip); 
} 
 
function banip($ip) 
{ 
    $ip = preg_replace("/\.+\$/", "", $ip); 
    if( !preg_match("/^\d+(\.\d+){0,2}(\.\d+|\.\*)?\$/", $ip) ) 
    { 
        return false; 
    } 
 
    if( substr($ip, -2) == ".*" ) 
    { 
        $ip = substr($ip, 0, -2); 
    } 
 
    $aaaaof = array(  ); 
    $aaaaog = array(  ); 
    $ipParts = tsue_explode(".", $ip); 
    foreach( $ipParts as $part ) 
    { 
        if( $part < 0 || 255 < $part ) 
        { 
            return false; 
        } 
 
        $aaaaof[] = $part; 
        $aaaaog[] = $part; 
    } 
    while( count($aaaaof) < 4 ) 
    { 
        $aaaaof[] = 0; 
        $aaaaog[] = 255; 
    } 
    $aaaaoh = $ipParts[0]; 
    $startLong = sprintf("%u", ip2long(implode(".", $aaaaof))); 
    $aaaaoi = sprintf("%u", ip2long(implode(".", $aaaaog))); 
    if( count($ipParts) < 4 ) 
    { 
        $aaaaoj = implode(".", $ipParts) . ".*"; 
    } 
    else 
    { 
        $aaaaoj = $ip; 
    } 
 
    return array( $aaaaoj, $aaaaoh, $startLong, $aaaaoi ); 
} 
 
function getbannedips($submitButtons = true) 
{ 
    global $TSUE; 
    $DIV = "<div id=\"bannedIPaddresses\">"; 
    $bannedIPs = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ip_match WHERE match_type = 'banned'"); 
    if( $TSUE["TSUE_Database"]->num_rows($bannedIPs) ) 
    { 
        while( $bannedIP = $TSUE["TSUE_Database"]->fetch_assoc($bannedIPs) ) 
        { 
            $DIV .= "<label id=\"" . md5($bannedIP["ip"]) . "\"><input type=\"checkbox\" name=\"removeip[]\" value=\"" . $bannedIP["ip"] . "\" /> " . $bannedIP["ip"] . "</label>"; 
        } 
        if( $submitButtons ) 
        { 
            $DIV .= "<div class=\"submitPadding\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("dashboard_options_ipban_delete") . "\" /> </div>"; 
        } 
 
    } 
    else 
    { 
        $DIV .= get_phrase("dashboard_options_ipban_no_ip"); 
    } 
 
    $DIV .= "</div>"; 
    return $DIV; 
} 
 
function banemail($email) 
{ 
    if( $email == "*" || $email === "" ) 
    { 
        return get_phrase("dashboard_options_emailban_invalid_email"); 
    } 
 
    if( strpos($email, "*") === false ) 
    { 
        if( strpos($email, "@") === false ) 
        { 
            $email = "*" . $email; 
        } 
 
        if( strpos($email, ".") === false ) 
        { 
            $email .= "*"; 
        } 
 
    } 
 
    if( $email[0] == "@" ) 
    { 
        $email = "*" . $email; 
    } 
 
    $lastChar = substr($email, -1); 
    if( $lastChar == "." || $lastChar == "@" ) 
    { 
        $email .= "*"; 
    } 
 
    $atPos = strpos($email, "@"); 
    if( $atPos !== false && strpos($email, ".", $atPos) === false && strpos($email, "*", $atPos) === false ) 
    { 
        $email .= "*"; 
    } 
 
    if( $email == "*@*" || $email == "*.*" ) 
    { 
        return get_phrase("dashboard_options_emailban_invalid_email2"); 
    } 
 
    $email = preg_replace("/\*{2,}/", "*", $email); 
    return array( $email ); 
} 
 
function aaaaar($submitButtons = true) 
{ 
    global $TSUE; 
    $DIV = "<div id=\"bannedEmailaddresses\">"; 
    $aaaadq = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_email ORDER BY 'banned_email'"); 
    if( $TSUE["TSUE_Database"]->num_rows($aaaadq) ) 
    { 
        while( $bannedEmail = $TSUE["TSUE_Database"]->fetch_assoc($aaaadq) ) 
        { 
            $DIV .= "<label id=\"" . md5($bannedEmail["banned_email"]) . "\"><input type=\"checkbox\" name=\"removeemail[]\" value=\"" . $bannedEmail["banned_email"] . "\" /> " . $bannedEmail["banned_email"] . "</label>"; 
        } 
        if( $submitButtons ) 
        { 
            $DIV .= "<div class=\"submitPadding\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("dashboard_options_emailban_delete") . "\" /> </div>"; 
        } 
 
    } 
    else 
    { 
        $DIV .= get_phrase("dashboard_options_emailban_no_email"); 
    } 
 
    $DIV .= "</div>"; 
    return $DIV; 
} 
 
function getbannedcountries($submitButtons = true) 
{ 
    global $TSUE; 
    $DIV = "<div id=\"bannedCountries\">"; 
    $aaaadp = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_country ORDER BY 'country'"); 
    if( $TSUE["TSUE_Database"]->num_rows($aaaadp) ) 
    { 
        while( $aaaaok = $TSUE["TSUE_Database"]->fetch_assoc($aaaadp) ) 
        { 
            $DIV .= "<label id=\"" . md5($aaaaok["country"]) . "\"><input type=\"checkbox\" name=\"removecountry[]\" value=\"" . $aaaaok["country"] . "\" /> " . $aaaaok["country"] . "</label>"; 
        } 
        if( $submitButtons ) 
        { 
            $DIV .= "<div class=\"submitPadding\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("delete_selected_countries") . "\" /> </div>"; 
        } 
 
    } 
    else 
    { 
        $DIV .= get_phrase("no_countries_banned"); 
    } 
 
    $DIV .= "</div>"; 
    return $DIV; 
} 
 
function aaaaau() 
{ 
    global $TSUE; 
    $formContents = "<div id=\"buildCensoringHTML\">"; 
    $inputbox = inputbox("censoring_censor_character", getsetting("censor_cache", "censoring_censor_character"), "text texttiny"); 
    $formContents .= aaaaan(get_phrase("dashboard_options_censoring_censor_character"), $inputbox, get_phrase("dashboard_options_censoring_censor_character_alt")); 
    $formContents .= aaaaan(get_phrase("dashboard_options_censoring_words_to_censor"), aaaaol(), get_phrase("dashboard_options_censoring_words_to_censor_alt")); 
    $formContents .= "</div>"; 
    return $formContents; 
} 
 
function aaaaom($censorWords = array(  )) 
{ 
    global $TSUE; 
    static $censorCount = 0; 
    $inputBox = "
	<div class=\"comboBox\">
		<label>" . get_phrase("dashboard_options_censoring_word_or_phrase") . " <input name=\"options[censorWords][" . $censorCount . "][word]\" value=\"" . ((isset($censorWords["word"]) ? $censorWords["word"] : "")) . "\" type=\"text\" class=\"text texttiny\" /></label>
	</div>
	<div class=\"comboBox\">
		<label>" . get_phrase("dashboard_options_censoring_replacement") . " <input name=\"options[censorWords][" . $censorCount . "][replace]\" value=\"" . ((isset($censorWords["replace"]) ? $censorWords["replace"] : "")) . "\" type=\"text\" class=\"text texttiny\" /></label>
	</div>
	<div class=\"comboBox\">
		<label>" . get_phrase("dashboard_options_censoring_match_exact_word") . " <input name=\"options[censorWords][" . $censorCount . "][exact]\" value=\"1\"" . ((isset($censorWords["exact"]) && $censorWords["exact"] == 1 ? " checked=\"checked\"" : "")) . " type=\"checkbox\" /></label>
	</div>
	<div class=\"clear\"></div>"; 
    $censorCount++; 
    return $inputBox; 
} 
 
function aaaaol() 
{ 
    global $TSUE; 
    $censorCache = array(  ); 
    $DIV = "<div id=\"censoredWords\">"; 
    if( $TSUE["TSUE_Settings"]->settings["censor_cache"] ) 
    { 
        if( !empty($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["exact"]) ) 
        { 
            foreach( $TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["exact"] as $word => $replace ) 
            { 
                $DIV .= aaaaom(array( "word" => $word, "replace" => (is_string($replace) ? $replace : ""), "exact" => 1 )); 
            } 
        } 
 
        if( !empty($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["any"]) ) 
        { 
            foreach( $TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["any"] as $word => $replace ) 
            { 
                $DIV .= aaaaom(array( "word" => $word, "replace" => (is_string($replace) ? $replace : "") )); 
            } 
        } 
 
    } 
 
    $DIV .= aaaaom(); 
    $DIV .= "</div>"; 
    return $DIV; 
} 
 
function aaaaat(array &$words) 
{ 
    $output = array( "exact" => array(  ), "any" => array(  ) ); 
    foreach( $words as $word ) 
    { 
        if( !isset($word["word"]) || strval($word["word"]) === "" ) 
        { 
            continue; 
        } 
 
        $writePosition = (!empty($word["exact"]) ? "exact" : "any"); 
        if( isset($word["replace"]) && strval($word["replace"]) !== "" ) 
        { 
            $output[$writePosition][strval($word["word"])] = strval($word["replace"]); 
        } 
        else 
        { 
            $output[$writePosition][strval($word["word"])] = strlen($word["word"]); 
        } 
 
    } 
    if( !$output["exact"] ) 
    { 
        unset($output["exact"]); 
    } 
 
    if( !$output["any"] ) 
    { 
        unset($output["any"]); 
    } 
 
    $words = $output; 
    return true; 
} 
 
function aaaabn($formContents = "", $hiddenInputBoxes = array(  ), $action = "", $script = "", $id = "simpleForm") 
{ 
    $aaaaam = ""; 
    if( !empty($hiddenInputBoxes) ) 
    { 
        foreach( $hiddenInputBoxes as $name => $value ) 
        { 
            $aaaaam .= "<input type=\"hidden\" name=\"" . $name . "\" value=\"" . $value . "\" />"; 
        } 
    } 
 
    $HTML = "
	<form method=\"post\" action=\"" . $action . "\" id=\"" . $id . "\" enctype=\"multipart/form-data\">
		" . $aaaaam . "
		" . $formContents . "
	</form>" . $script; 
    return $HTML; 
} 
 
function aaaabg($formContents = "", $hiddenInputBoxes = array(  ), $extra = "", $buttonPhrase = "button_save", $Scirpt = "") 
{ 
    $aaaaam = ""; 
    if( !empty($hiddenInputBoxes) ) 
    { 
        foreach( $hiddenInputBoxes as $name => $value ) 
        { 
            $aaaaam .= "<input type=\"hidden\" name=\"" . $name . "\" value=\"" . $value . "\" />"; 
        } 
    } 
 
    $HTML = "
	<form method=\"post\" action=\"\" id=\"overlay_form\" enctype=\"multipart/form-data\">
		<input type=\"hidden\" name=\"save_options\" value=\"yes\" />
		" . $aaaaam . "
		" . $formContents . "
		<div>
            " . aaaabm(get_phrase($buttonPhrase), get_phrase("button_reset")) . "
			" . $extra . "
		</div>
	</form>" . $Scirpt; 
    return $HTML; 
} 
 
function aaaaan($optionTitle, $formOptions, $spanContent = "", $divID = "optionsInOverlay", $class = "", $spanRight = "", $rel = "", $nextToFormOptions = "", $Scirpt = "") 
{ 
    $aaaaon = preg_replace("#[^a-z]#", "", strtolower($optionTitle)); 
    $HTML = "
	<div id=\"" . $divID . "\"" . (($class ? " class=\"" . $class . "\"" : "")) . (($rel ? " rel=\"" . $rel . "\"" : "")) . ">
		<div class=\"optionTitle\" id=\"" . $aaaaon . "\">" . (($spanRight ? "
			<div class=\"floatRight\">" . $spanRight . "</div>" : "")) . "
			" . $optionTitle . "
			<div class=\"clear\"></div>
		</div>
		" . $formOptions . $nextToFormOptions . "
		<div class=\"spanContent\">" . $spanContent . "</div>
	</div>" . $Scirpt; 
    return $HTML; 
} 
 
function aaaabm($submitValue, $resetValue = "") 
{ 
    return "
    <input type=\"submit\" class=\"submit\" value=\"" . $submitValue . "\" />
    " . (($resetValue ? "<input type=\"reset\" class=\"submit\" value=\"" . $resetValue . "\" />" : "")); 
} 
 
function aaaaap() 
{ 
    global $TSUE; 
    $Themes = $TSUE["TSUE_Database"]->query("SELECT themeid, themename FROM tsue_themes WHERE active = 1"); 
    $aaaadr = array(  ); 
    while( $Theme = $TSUE["TSUE_Database"]->fetch_assoc($Themes) ) 
    { 
        $aaaadr += array( $Theme["themeid"] => ucfirst($Theme["themename"]) ); 
    } 
    return $aaaadr; 
} 
 
function aaaaaq() 
{ 
    global $TSUE; 
    $Languages = $TSUE["TSUE_Database"]->query("SELECT languageid, title FROM tsue_languages WHERE active = 1"); 
    $languageCache = array(  ); 
    while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) ) 
    { 
        $languageCache += array( $Language["languageid"] => ucfirst($Language["title"]) ); 
    } 
    return $languageCache; 
} 
 
function getcountryflag($flag) 
{ 
    global $TSUE; 
    $aaaaoo = DATAPATH . "countryFlags/"; 
    foreach( array( "png", "jpg", "gif", "jpeg" ) as $ext ) 
    { 
        if( is_file($aaaaoo . $flag . "." . $ext) ) 
        { 
            return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/countryFlags/" . $flag . "." . $ext . "\" alt=\"" . $flag . "\" title=\"" . $flag . "\" border=\"0\" />"; 
        } 
 
    } 
} 
 
function zip($source, $destination) 
{ 
    if( !extension_loaded("zip") || !file_exists($source) ) 
    { 
        return false; 
    } 
 
    $zip = new ZipArchive(); 
    if( !$zip->open($destination, ZIPARCHIVE::CREATE) ) 
    { 
        return false; 
    } 
 
    $source = str_replace("\", "/", realpath($source)); 
    if( is_dir($source) === true ) 
    { 
        $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST); 
        foreach( $files as $file ) 
        { 
            $file = str_replace("\", "/", $file); 
            if( in_array(substr($file, strrpos($file, "/") + 1), array( ".", ".." )) ) 
            { 
                continue; 
            } 
 
            if( is_dir($file) === true ) 
            { 
                $zip->addEmptyDir(str_replace($source . "/", "", $file . "/")); 
            } 
            else 
            { 
                if( is_file($file) === true ) 
                { 
                    $zip->addFromString(str_replace($source . "/", "", $file), file_get_contents($file)); 
                } 
 
            } 
 
        } 
    } 
    else 
    { 
        if( is_file($source) === true ) 
        { 
            $zip->addFromString(basename($source), file_get_contents($source)); 
        } 
 
    } 
 
    return $zip->close(); 
} 
 
function aaaabd($filename = "", $runALL = false) 
{ 
    global $TSUE; 
    $TSUE["TSUE_Database"]->update("tsue_cron", array( "nextrun" => TIMENOW ), ($runALL ? "" : "filename = " . $TSUE["TSUE_Database"]->escape($filename))); 
} 
 
function copy_directory($source, $destination) 
{ 
    if( is_dir($source) ) 
    { 
        if( !is_dir($destination) ) 
        { 
            mkdir($destination); 
        } 
 
        $directory = dir($source); 
        while( false !== ($readdirectory = $directory->read()) ) 
        { 
            if( $readdirectory == "." || $readdirectory == ".." ) 
            { 
                continue; 
            } 
 
            $PathDir = $source . "/" . $readdirectory; 
            if( is_dir($PathDir) ) 
            { 
                copy_directory($PathDir, $destination . "/" . $readdirectory); 
                continue; 
            } 
 
            copy($PathDir, $destination . "/" . $readdirectory); 
        } 
        $directory->close(); 
    } 
    else 
    { 
        copy($source, $destination); 
    } 
 
    return true; 
} 
 
function rrmdir($dir) 
{ 
    foreach( glob($dir . "/*") as $file ) 
    { 
        if( is_dir($file) ) 
        { 
            rrmdir($file); 
        } 
        else 
        { 
            unlink($file); 
        } 
 
    } 
    rmdir($dir); 
} 
 
function aaaahq($string = "") 
{ 
    return str_replace(array( ">", "<" ), array( "&gt;", "&lt;" ), $string); 
} 
 
function aaaaho($string = "") 
{ 
    return str_replace(array( "&gt;", "&lt;" ), array( ">", "<" ), $string); 
} 
 
function listmutes($muted) 
{ 
    $mutes = array(  ); 
    if( strstr($muted, "1") !== false ) 
    { 
        $mutes[] = get_phrase("muted_in_comments"); 
    } 
 
    if( strstr($muted, "2") !== false ) 
    { 
        $mutes[] = get_phrase("muted_in_forums"); 
    } 
 
    if( strstr($muted, "3") !== false ) 
    { 
        $mutes[] = get_phrase("muted_in_shoutbox"); 
    } 
 
    if( strstr($muted, "4") !== false ) 
    { 
        $mutes[] = get_phrase("muted_in_pm"); 
    } 
 
    return implode(" - ", $mutes); 
} 
 
function get_member_avatar($memberid = 0, $gender = "", $size = "s") 
{ 
    global $TSUE; 
    $ValidAvatarExtensions = array( "jpg", "gif", "png", "jpeg" ); 
    foreach( $ValidAvatarExtensions as $AvatarExtension ) 
    { 
        if( is_file(DATAPATH . "avatars/" . $size . "/" . $memberid . "." . $AvatarExtension) ) 
        { 
            return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/avatars/" . $size . "/" . $memberid . "." . $AvatarExtension . "?" . TIMENOW; 
        } 
 
    } 
    $themeName = aaaaff(); 
    if( $gender && file_exists(ROOTPATH . "styles/" . $themeName . "/avatars/avatar_" . $gender . "_" . $size . ".png") ) 
    { 
        return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $themeName . "/avatars/avatar_" . $gender . "_" . $size . ".png?" . TIMENOW; 
    } 
 
    return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $themeName . "/avatars/avatar_" . $size . ".png?" . TIMENOW; 
} 
 
function get_languages() 
{ 
    global $TSUE; 
    $Languages = $TSUE["TSUE_Database"]->query("SELECT languageid, title FROM tsue_languages WHERE active = 1"); 
    $Selectbox = "<select name=\"languageid\" class=\"selectbox\">"; 
    while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) ) 
    { 
        $Selectbox .= "<option value=\"" . $Language["languageid"] . "\">" . ucfirst($Language["title"]) . "</option>"; 
    } 
    $Selectbox .= "</select>"; 
    return $Selectbox; 
} 
 
function aaaabk($name, $checkedArray = array(  )) 
{ 
    global $TSUE; 
    static $id = 1; 
    $List = "
	<ul id=\"sortable_" . $id . "\" class=\"ui-sorttable\">"; 
    $count = 0; 
    if( !empty($checkedArray) && $checkedArray["0"] != "" ) 
    { 
        $aaaamt = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $checkedArray)); 
        $Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, name FROM tsue_plugins WHERE pluginid IN (" . $aaaamt . ") ORDER BY FIELD(pluginid," . $aaaamt . ")"); 
        $List .= createpluginlist($Plugins, $name, $checkedArray); 
        $aaaaop = $TSUE["TSUE_Database"]->query("SELECT pluginid, name FROM tsue_plugins WHERE pluginid NOT IN (" . $aaaamt . ")"); 
        $List .= createpluginlist($aaaaop, $name, $checkedArray); 
    } 
    else 
    { 
        $Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, name FROM tsue_plugins"); 
        $List .= createpluginlist($Plugins, $name, $checkedArray); 
    } 
 
    $List .= "</ul>
	<div style=\"clear: both;\"></div>
    " . aaaaoe("sortable_" . $id, "li"); 
    $id++; 
    return $List; 
} 
 
function createpluginlist($Plugins, $name, $checkedArray) 
{ 
    global $TSUE; 
    $List = ""; 
    while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) ) 
    { 
        $List .= "
        <li class=\"ui-state-default\">
            <label><input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $Plugin["pluginid"] . "\"" . ((in_array($Plugin["pluginid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $Plugin["name"] . "</label>
        </li>"; 
    } 
    return $List; 
} 
 
function aaaabi($name, $checked = 0, $pageID = 0) 
{ 
    global $TSUE; 
    $List = "
    <select name=\"" . $name . "\" class=\"select\">
        <option value=\"0\"></option>"; 
    $Pages = $TSUE["TSUE_Database"]->query("SELECT pageid, name FROM tsue_pages WHERE pageid != " . $pageID . " AND parentid=0 ORDER BY sort ASC"); 
    while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) ) 
    { 
        $List .= "
        <option value=\"" . $Page["pageid"] . "\"" . (($checked == $Page["pageid"] ? " selected=\"selected\"" : "")) . ">" . $Page["name"] . "</option>"; 
    } 
    $List .= "
    </select>"; 
    return $List; 
} 
 
function torrentcategoriesinbutboxes($name, $type = "radio", $selectedCategories = array(  )) 
{ 
    global $TSUE; 
    $aaaact = array(  ); 
    $aaaafx = array(  ); 
    $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC"); 
    while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) ) 
    { 
        if( $Category["pid"] ) 
        { 
            $aaaact[$Category["pid"]][] = $Category; 
        } 
        else 
        { 
            $aaaafx[] = $Category; 
        } 
 
    } 
    $torrentCategories = "
	<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
		<tr>"; 
    $Count = 0; 
    $maxPerRow = 4; 
    foreach( $aaaafx as $Category ) 
    { 
        if( $Count % $maxPerRow == 0 ) 
        { 
            $torrentCategories .= "
			</tr><tr>"; 
        } 
 
        $Count++; 
        $subCategoryList = ""; 
        if( isset($aaaact[$Category["cid"]]) ) 
        { 
            foreach( $aaaact[$Category["cid"]] as $subCategory ) 
            { 
                $checked = ""; 
                if( isset($_POST[$name][$subCategory["cid"]]) || in_array($subCategory["cid"], $selectedCategories) ) 
                { 
                    $checked = " checked=\"checked\""; 
                } 
 
                $subCategoryList .= "
				<div style=\"margin-left: 20px;\" class=\"forumSub\">
					<label><input type=\"" . $type . "\" name=\"" . $name . "\" value=\"" . $subCategory["cid"] . "\"" . $checked . " /> " . $subCategory["cname"] . "</label>
				</div>"; 
            } 
        } 
 
        $checked = ""; 
        if( isset($_POST[$name][$Category["cid"]]) || in_array($Category["cid"], $selectedCategories) ) 
        { 
            $checked = " checked=\"checked\""; 
        } 
 
        $torrentCategories .= "
			<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">
				<label><input type=\"" . $type . "\" name=\"" . $name . "\" value=\"" . $Category["cid"] . "\"" . $checked . " /> " . $Category["cname"] . "</label>
				" . $subCategoryList . "
			</td>"; 
    } 
    $torrentCategories .= "
		</tr>
	</table>"; 
    return $torrentCategories; 
} 
 
function aaaacq($name, $checked = 0, $cid = 0) 
{ 
    global $TSUE; 
    $List = "
    <select name=\"" . $name . "\" class=\"select\">
        <option value=\"0\"></option>"; 
    $Categories = $TSUE["TSUE_Database"]->query("SELECT cid, cname FROM tsue_torrents_categories WHERE cid != " . $cid . " AND pid = 0 ORDER BY sort ASC"); 
    while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) ) 
    { 
        $List .= "
        <option value=\"" . $Category["cid"] . "\"" . (($checked == $Category["cid"] ? " selected=\"selected\"" : "")) . ">" . $Category["cname"] . "</option>"; 
    } 
    $List .= "
    </select>"; 
    return $List; 
} 
 
function aaaaax($name, $checked = 0) 
{ 
    global $TSUE; 
    $List = "
    <select name=\"" . $name . "\" class=\"select\">
        <option value=\"0\"></option>"; 
    $Categories = $TSUE["TSUE_Database"]->query("SELECT cid, cname FROM tsue_torrents_categories ORDER BY pid ASC, sort ASC"); 
    while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) ) 
    { 
        $List .= "
        <option value=\"" . $Category["cid"] . "\"" . (($checked == $Category["cid"] ? " selected=\"selected\"" : "")) . ">" . $Category["cname"] . "</option>"; 
    } 
    $List .= "
    </select>"; 
    return $List; 
} 
 
function aaaagv($name, $checked = 0, $forumID = 0) 
{ 
    global $TSUE; 
    $forumCategories = $subForums = array(  ); 
    $List = "
    <select name=\"" . $name . "\" class=\"select\">
        <option value=\"-1\"></option>"; 
    $Forums = $TSUE["TSUE_Database"]->query("SELECT forumid, parentid, title FROM tsue_forums WHERE forumid != " . $forumID . " ORDER BY displayorder ASC"); 
    if( $TSUE["TSUE_Database"]->num_rows($Forums) ) 
    { 
        while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) ) 
        { 
            if( $Forum["parentid"] == -1 ) 
            { 
                $forumCategories[] = $Forum; 
            } 
            else 
            { 
                $subForums[$Forum["parentid"]][] = $Forum; 
            } 
 
        } 
        foreach( $forumCategories as $forumCategory ) 
        { 
            $List .= "
				<option value=\"" . $forumCategory["forumid"] . "\"" . (($checked == $forumCategory["forumid"] ? " selected=\"selected\"" : "")) . ">" . $forumCategory["title"] . "</option>"; 
            if( isset($subForums[$forumCategory["forumid"]]) ) 
            { 
                foreach( $subForums[$forumCategory["forumid"]] as $forum ) 
                { 
                    $List .= "
						<option value=\"" . $forum["forumid"] . "\"" . (($checked == $forum["forumid"] ? " selected=\"selected\"" : "")) . ">&nbsp;&nbsp;|--" . $forum["title"] . "</option>"; 
                } 
            } 
 
        } 
    } 
 
    $List .= "
    </select>"; 
    return $List; 
} 
 
function aaaakp($skip = 0) 
{ 
    global $TSUE; 
    $cache = array(  ); 
    $membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid FROM tsue_membergroups"); 
    while( $m = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) ) 
    { 
        if( $m["membergroupid"] != $skip ) 
        { 
            $cache[] = $m["membergroupid"]; 
        } 
 
    } 
    return $cache; 
} 
 
function aaaabf($name, $selected = 0, $emptyOption = false, $emptyText = "") 
{ 
    global $TSUE; 
    $List = "<select name=\"" . $name . "\" class=\"select\">"; 
    if( $emptyOption ) 
    { 
        $List .= "<option value=\"\"" . (($selected == 0 ? " selected=\"selected\"" : "")) . ">" . $emptyText . "</option>"; 
    } 
 
    $memberGroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname FROM tsue_membergroups"); 
    while( $memberGroup = $TSUE["TSUE_Database"]->fetch_assoc($memberGroups) ) 
    { 
        $List .= "
        <option value=\"" . $memberGroup["membergroupid"] . "\"" . (($selected == $memberGroup["membergroupid"] ? " selected=\"selected\"" : "")) . ">" . $memberGroup["groupname"] . "</option>"; 
    } 
    $List .= "</select>"; 
    return $List; 
} 
 
function aaaaaw($name, $checkedArray = array(  ), $maxPerRow = 4) 
{ 
    global $TSUE; 
    $List = "
    <table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
        <tr>"; 
    $count = 0; 
    for( $Usergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups"); $Usergroup = $TSUE["TSUE_Database"]->fetch_assoc($Usergroups); $count++ ) 
    { 
        if( $count % $maxPerRow == 0 ) 
        { 
            $List .= "</tr><tr>"; 
        } 
 
        $groupname = getmembername($Usergroup["groupname"], $Usergroup["groupstyle"]); 
        $List .= "
        <td>
            <label>
                <input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $Usergroup["membergroupid"] . "\"" . ((is_array($checkedArray) && in_array($Usergroup["membergroupid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $groupname . "
            </label>
        </td>"; 
    } 
    $List .= "
        </tr>
    </table>"; 
    return $List; 
} 
 
function aaaabc($name, $checkedArray = array(  ), $maxPerRow = 4) 
{ 
    global $TSUE; 
    $Forums = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums ORDER BY displayorder ASC"); 
    if( !$TSUE["TSUE_Database"]->num_rows($Forums) ) 
    { 
        return get_phrase("no_results_found"); 
    } 
 
    $forumCategories = $subForums = array(  ); 
    while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) ) 
    { 
        if( $Forum["parentid"] == -1 ) 
        { 
            $forumCategories[] = $Forum; 
        } 
        else 
        { 
            $subForums[$Forum["parentid"]][] = $Forum; 
        } 
 
    } 
    $List = "
		<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">
			<tr>"; 
    $Count = 0; 
    foreach( $forumCategories as $Forum ) 
    { 
        if( $Count % $maxPerRow == 0 ) 
        { 
            $List .= "
				</tr><tr>"; 
        } 
 
        $Count++; 
        $aaaaoq = ""; 
        if( isset($subForums[$Forum["forumid"]]) ) 
        { 
            foreach( $subForums[$Forum["forumid"]] as $subForum ) 
            { 
                $aaaaoq .= aaaaor($subForum, $name, $checkedArray); 
                if( isset($subForums[$subForum["forumid"]]) ) 
                { 
                    foreach( $subForums[$subForum["forumid"]] as $deepSubForum ) 
                    { 
                        $aaaaoq .= aaaaos($deepSubForum, $name, $checkedArray); 
                    } 
                } 
 
            } 
        } 
 
        $List .= "
				<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">
					<label>
						<input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $Forum["forumid"] . "\"" . ((is_array($checkedArray) && in_array($Forum["forumid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $Forum["title"] . "
					</label>
					" . $aaaaoq . "
				</td>"; 
    } 
    $List .= "
			</tr>
		</table>"; 
    return $List; 
} 
 
function aaaaor($subForum, $name, $checkedArray = array(  )) 
{ 
    $List = "
	<div style=\"margin-left: 20px;\" class=\"forumSub\">
		<label>
			<input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $subForum["forumid"] . "\"" . ((is_array($checkedArray) && in_array($subForum["forumid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $subForum["title"] . "
		</label>
	</div>"; 
    return $List; 
} 
 
function aaaaos($deepSubForum, $name, $checkedArray = array(  )) 
{ 
    $List = "
	<div style=\"margin-left: 40px;\" class=\"forumDeepSub\">
		<label>
			<input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $deepSubForum["forumid"] . "\"" . ((is_array($checkedArray) && in_array($deepSubForum["forumid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $deepSubForum["title"] . "
		</label>
	</div>"; 
    return $List; 
} 
 
function currencycodes() 
{ 
    global $TSUE; 
    $optionArray = array(  ); 
    $Codes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_currency_codes ORDER BY code ASC"); 
    while( $Code = $TSUE["TSUE_Database"]->fetch_assoc($Codes) ) 
    { 
        $optionArray[$Code["code"]] = $Code["code"] . " - " . $Code["currency"]; 
    } 
    return $optionArray; 
} 
 
function textarea($name, $value, $useTinymce = false, $class = "textarea") 
{ 
    $HTML = "
	<textarea name=\"" . $name . "\" id=\"" . (($useTinymce ? "tinyMCE" : "ta_" . $name)) . "\" class=\"" . $class . "\">" . (($useTinymce ? $value : html_clean($value))) . "</textarea>"; 
    return $HTML; 
} 
 
function aaaaay($name, $value, $useTinymce = false, $class = "textarea") 
{ 
    $HTML = "
	<textarea name=\"" . $name . "\" id=\"" . (($useTinymce ? "tinyMCEAjax" : "ta_" . $name)) . "\" class=\"" . $class . "\">" . (($useTinymce ? $value : html_clean($value))) . "</textarea>"; 
    return $HTML; 
} 
 
function radioyesno($name, $value, $title = array(  ), $REL = "") 
{ 
    $HTML = "
	<label for=\"ynrb_" . $name . "_1\">
		<input type=\"radio\" name=\"" . $name . "\" id=\"ynrb_" . $name . "_1\"" . (($REL ? " rel=\"" . $REL . "\"" : "")) . " value=\"1\"" . (($value == 1 ? " checked=\"checked\"" : "")) . " />  " . ((isset($title["1"]) ? $title["1"] : get_phrase("option_yes"))) . "
	</label>
	<label for=\"ynrb_" . $name . "_0\">
		<input type=\"radio\" name=\"" . $name . "\" id=\"ynrb_" . $name . "_0\"" . (($REL ? " rel=\"" . $REL . "\"" : "")) . " value=\"0\"" . (($value == 0 ? " checked=\"checked\"" : "")) . " />  " . ((isset($title["0"]) ? $title["0"] : get_phrase("option_no"))) . "
	</label>"; 
    return $HTML; 
} 
 
function aaaakz($name, $value, $Checked, $title, $REL = "") 
{ 
    $HTML = "
	<label for=\"ynrb_" . $name . "_" . $value . "\">
		<input type=\"radio\" name=\"" . $name . "\" id=\"ynrb_" . $name . "_" . $value . "\"" . (($REL ? " rel=\"" . $REL . "\"" : "")) . " value=\"" . $value . "\"" . (($Checked ? " checked=\"checked\"" : "")) . " /> " . $title . "
	</label>"; 
    return $HTML; 
} 
 
function inputbox($name, $value, $class = "text", $hint = "", $isDate = false, $isAutoComplete = false, $extra = "", $autoCompleteTag = "autoComplete") 
{ 
    $HTML = "
	<input type=\"" . (($isDate ? "date" : "text")) . "\" class=\"" . $class . "\" name=\"" . $name . "\" id=\"" . (($isAutoComplete ? $autoCompleteTag : "ib_" . $name)) . "\" value=\"" . $value . "\"" . (($hint ? " rel=\"initTipsy\" title=\"" . $hint . "\"" : "")) . " /> " . $extra; 
    return $HTML; 
} 
 
function aaaacs($name, $hint = "") 
{ 
    return (DEMO_MODE ? "--File upload is disabled in demo mode--" : "<input type=\"file\" name=\"" . $name . "\" id=\"ib_" . $name . "\" />" . (($hint ? " <span class=\"smallPassiveText\">" . $hint . "</span>" : ""))); 
} 
 
function selectbox($name, $value, $optionArray = array(  ), $class = "select", $script = "", $strtolowerCheck = false) 
{ 
    $options = ""; 
    foreach( $optionArray as $optionValue => $optionTitle ) 
    { 
        $options .= "<option value=\"" . $optionValue . "\"" . (($optionValue == $value ? " selected=\"selected\"" : ($strtolowerCheck ? (strtolower($optionValue) == strtolower($value) ? " selected=\"selected\"" : "") : ""))) . ">" . $optionTitle . "</option>"; 
    } 
    $HTML = "
	<select name=\"" . $name . "\" id=\"" . $name . "\" class=\"" . $class . "\">
		" . $options . "
	</select>" . $script; 
    return $HTML; 
} 
 
function createtable($headMessage, $tableContents, $TDCount = 0, $spanRight = "") 
{ 
    $TABLE = "
	<table border=\"0\" cellpadding=\"0\" width=\"100%\" cellspacing=\"0\" class=\"table\">
		<tbody>
			<tr>
				<td class=\"tableHeader\" colspan=\"" . $TDCount . "\">
					" . (($spanRight ? "<span class=\"floatRight\">" . $spanRight . "</span>" : "")) . $headMessage . "
				</td>
			</tr>
			" . $tableContents . "
		</tbody>
	</table>"; 
    return $TABLE; 
} 
 
function aaaaag($contentArray, $trClass = "tableContentTR", $tdClass = "tableContentTD") 
{ 
    $TABLE = "
			<tr class=\"" . $trClass . "\">"; 
    foreach( $contentArray as $Content ) 
    { 
        $TABLE .= "
				<td class=\"" . $tdClass . "\"" . ((isset($Content["width"]) && $Content["width"] ? " width=\"" . $Content["width"] . "\"" : "")) . ((isset($Content["colspan"]) ? " colspan=\"" . $Content["colspan"] . "\"" : "")) . ((isset($Content["align"]) ? " align=\"" . $Content["align"] . "\"" : "")) . ((isset($Content["valign"]) ? " valign=\"" . $Content["valign"] . "\"" : "")) . ((isset($Content["extra"]) ? $Content["extra"] : "")) . ">" . ((isset($Content["text"]) ? $Content["text"] : "")) . "</td>"; 
    } 
    $TABLE .= "
			</tr>"; 
    return $TABLE; 
} 
 
function getimage($Image, $alt = "", $class = "", $width = "", $height = "") 
{ 
    global $TSUE; 
    return "<img src=\"./images/" . $Image . "\" alt=\"" . $alt . "\" title=\"" . $alt . "\" border=\"0\" class=\"" . $class . "\"" . (($width ? " width=\"" . $width . "\"" : "")) . (($height ? " height=\"" . $height . "\"" : "")) . " />"; 
} 
 
function aaaaky($title) 
{ 
    return getimage("status/help.png", $title, "helpImage"); 
} 
 
function aaaaaf($Query, $Text, $Title = "") 
{ 
    global $TSUE; 
    return "<a href=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $Query . "\" target=\"_blank\"" . (($Title ? " title=\"" . $Title . "\"" : "")) . ">" . $Text . "</a>"; 
} 
 
function aaaaae($Queries) 
{ 
    global $TSUE; 
    $Links = ""; 
    $Page = intval(getvar("page")); 
    foreach( $Queries as $Query => $Text ) 
    { 
        $aaaaot = (isset($Text["confirmation"]) && $Text["confirmation"] ? " onclick=\"return TSUEAdmin.confirmAction('" . str_replace("'", "\'", $Text["confirmation"]) . "');\"" : ""); 
        $linkClass = (isset($Text["class"]) ? " class=\"" . $Text["class"] . "\"" : ""); 
        $REL = (isset($Text["rel"]) ? " rel=\"" . $Text["rel"] . "\"" : ""); 
        $Links .= "<a href=\"" . ((strstr($Query, "?action") !== false ? $Query : "?action=" . $TSUE["action"] . (($TSUE["do"] ? "&amp;do=" . $TSUE["do"] : "")) . "&amp;" . $Query . (($Page ? "&amp;page=" . $Page : "")))) . "\" target=\"" . ((isset($Text["target"]) ? $Text["target"] : "_self")) . "\"" . $aaaaot . $linkClass . $REL . ">" . $Text["phrase"] . "</a>"; 
    } 
    return $Links; 
} 
 
function loadstyle($style) 
{ 
    global $TSUE; 
    $find = array( "{website_url}", "{themename}" ); 
    $replace = array( $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"], aaaaff() ); 
    $Row = $TSUE["TSUE_Database"]->query_result("SELECT css FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"]) . " AND stylename = " . $TSUE["TSUE_Database"]->escape($style)); 
    if( $Row ) 
    { 
        return "
		<style type=\"text/css\">
			" . str_replace($find, $replace, $Row["css"]) . "
		</style>"; 
    } 
 
} 
 
function friendlypeerid($peer_id = "") 
{ 
    $peer_id = trim($peer_id, "-"); 
    $peer_id = preg_replace("#[^a-zA-Z0-9\-]#", "", $peer_id); 
    $peer_id = explode("-", $peer_id); 
    return $peer_id["0"]; 
} 
 
function pagination($total_rows = 0, $targetpage = "", $adjacents = 3, $forceItemsPerPage = false, $isArray = false, $deviceTag = "") 
{ 
    global $TSUE; 
    $perpage = ($forceItemsPerPage ? $forceItemsPerPage : $TSUE["items_perpage"]); 
    if( $total_rows < 1 || $perpage < 1 ) 
    { 
        return array( "LIMIT 0, " . $total_rows, "" ); 
    } 
 
    $targetpage = "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;" . (($targetpage ? $targetpage . "&amp;" : "")); 
    $lastpage = ceil($total_rows / $perpage); 
    if( $isArray ) 
    { 
        $lastpage--; 
    } 
 
    if( $lastpage <= 1 ) 
    { 
        return array( "LIMIT 0, " . $total_rows, "" ); 
    } 
 
    $page = intval(getvar("page")); 
    if( $lastpage < $page ) 
    { 
        $page = $lastpage; 
    } 
 
    if( $page ) 
    { 
        $start = ($page - 1) * $perpage; 
    } 
    else 
    { 
        $start = 0; 
    } 
 
    if( $page == 0 ) 
    { 
        $page = 1; 
    } 
 
    $prev = $page - 1; 
    $next = $page + 1; 
    $lpm1 = $lastpage - 1; 
    $pagination = ""; 
    if( 1 < $lastpage ) 
    { 
        $pagination .= "<div class=\"pagination\"><ul>"; 
        if( 1 < $page ) 
        { 
            $pagination .= "<li><a href=\"" . $targetpage . "page=" . $prev . $deviceTag . "\">&laquo;</a></li>"; 
        } 
 
        if( $lastpage < 7 + $adjacents * 2 ) 
        { 
            for( $counter = 1; $counter <= $lastpage; $counter++ ) 
            { 
                if( $counter == $page ) 
                { 
                    $pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>"; 
                } 
                else 
                { 
                    $pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>"; 
                } 
 
            } 
        } 
        else 
        { 
            if( 5 + $adjacents * 2 < $lastpage ) 
            { 
                if( $page < 1 + $adjacents * 2 ) 
                { 
                    for( $counter = 1; $counter < 4 + $adjacents * 2; $counter++ ) 
                    { 
                        if( $counter == $page ) 
                        { 
                            $pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>"; 
                        } 
                        else 
                        { 
                            $pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>"; 
                        } 
 
                    } 
                    $pagination .= "<li>...</li>"; 
                    $pagination .= "<li><a href=\"" . $targetpage . "page=" . $lpm1 . $deviceTag . "\">" . $lpm1 . "</a></li>"; 
                    $pagination .= "<li><a href=\"" . $targetpage . "page=" . $lastpage . $deviceTag . "\">" . $lastpage . "</a></li>"; 
                } 
                else 
                { 
                    if( $page < $lastpage - $adjacents * 2 && $adjacents * 2 < $page ) 
                    { 
                        $pagination .= "<li><a href=\"" . $targetpage . "page=1" . $deviceTag . "\">1</a></li>"; 
                        $pagination .= "<li><a href=\"" . $targetpage . "page=2" . $deviceTag . "\">2</a></li>"; 
                        $pagination .= "<li>...</li>"; 
                        for( $counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++ ) 
                        { 
                            if( $counter == $page ) 
                            { 
                                $pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>"; 
                            } 
                            else 
                            { 
                                $pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>"; 
                            } 
 
                        } 
                        $pagination .= "<li>...</li>"; 
                        $pagination .= "<li><a href=\"" . $targetpage . "page=" . $lpm1 . $deviceTag . "\">" . $lpm1 . "</a></li>"; 
                        $pagination .= "<li><a href=\"" . $targetpage . "page=" . $lastpage . $deviceTag . "\">" . $lastpage . "</a></li>"; 
                    } 
                    else 
                    { 
                        $pagination .= "<li><a href=\"" . $targetpage . "page=1" . $deviceTag . "\">1</a></li>"; 
                        $pagination .= "<li><a href=\"" . $targetpage . "page=2" . $deviceTag . "\">2</a></li>"; 
                        $pagination .= "<li>...</li>"; 
                        for( $counter = $lastpage - (2 + $adjacents * 2); $counter <= $lastpage; $counter++ ) 
                        { 
                            if( $counter == $page ) 
                            { 
                                $pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>"; 
                            } 
                            else 
                            { 
                                $pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>"; 
                            } 
 
                        } 
                    } 
 
                } 
 
            } 
 
        } 
 
        if( $page < $counter - 1 ) 
        { 
            $pagination .= "<li><a href=\"" . $targetpage . "page=" . $next . $deviceTag . "\">&raquo;</a></li>"; 
        } 
 
        $pagination .= "<li><a href=\"" . $targetpage . "\" id=\"setGlobalPerPage\"><img src=\"./images/buttons/options.png\" alt=\"" . get_phrase("set_limit_the_number_of_items_to_show") . "\" title=\"" . get_phrase("set_limit_the_number_of_items_to_show") . "\" height=\"14\" /></a></li>"; 
        $script = "
		<script type=\"text/javascript\">
			\$(\"#setGlobalPerPage\").click(function(e)
			{
				e.preventDefault();

				if(\$('form[name=\"setGlobalPerPageForm\"]').length)
				{
					return false;
				}

				var \$ppLink = \$(this), \$targetURL = \$ppLink.attr(\"href\");
				if(\$targetURL)
				{
					TSUEAdmin.dialog('<form method=\"post\" name=\"setGlobalPerPageForm\">" . get_phrase("the_global_perpage_pagination_limit", $TSUE["items_perpage"]) . " <input type=\"text\" class=\"text textVeryTiny\" name=\"newperpage\" /> <input type=\"submit\" class=\"submit\" value=\"" . get_phrase("button_save") . "\" /></form>');
					\$('form[name=\"setGlobalPerPageForm\"]').submit(function(e)
					{
						e.preventDefault();

						var \$newperpage = parseInt(\$('input[name=\"newperpage\"]', \$(this)).val());
						
						if(\$newperpage)
						{
							TSUEAdmin.setCookie(\"newperpage\", \$newperpage)
							window.location = \$targetURL+\"&newperpage=\"+\$newperpage;
						}
						
						return false;
					});
				}

				return false;
			});
		</script>"; 
        $pagination .= "</ul></div>" . $script . "
"; 
        return array( "LIMIT " . $start . ", " . $perpage, $pagination ); 
    } 
 
    return array( "LIMIT 0, " . $total_rows, "" ); 
} 
 
function updatesettings($settingname, $settingvalues) 
{ 
    global $TSUE; 
    $BuildQuery = array( "settingname" => $settingname, "settingvalues" => serialize($settingvalues) ); 
    $TSUE["TSUE_Database"]->delete("tsue_settings", "settingname = " . $TSUE["TSUE_Database"]->escape($settingname)); 
    $TSUE["TSUE_Database"]->insert("tsue_settings", $BuildQuery); 
    $TSUE["TSUE_Settings"] = new TSUE_Settings(); 
} 
 
function generate_random_string($length = 7, $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz234567890") 
{ 
    $chars_length = strlen($chars) - 1; 
    $string = $chars[rand(0, $chars_length)]; 
    $i = 1; 
    while( $i < $length ) 
    { 
        $r = $chars[rand(0, $chars_length)]; 
        if( $r != $string[$i - 1] ) 
        { 
            $string .= $r; 
        } 
 
        $i = strlen($string); 
    } 
    return $string; 
} 
 
function cookie_set($name = "", $value = "", $expires = 0) 
{ 
    global $TSUE; 
    setcookie($name, $value, $expires, $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_path"], $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_domain"]); 
} 
 
function sendpm($subject, $owner_memberid, $receiver_memberid, $reply) 
{ 
    global $TSUE; 
    $BuildQuery = array( "subject" => $subject, "owner_memberid" => $owner_memberid, "receiver_memberid" => $receiver_memberid, "message_date" => TIMENOW, "is_unread" => 1, "viaAdminCP" => 1 ); 
    if( $TSUE["TSUE_Database"]->insert("tsue_messages_master", $BuildQuery) ) 
    { 
        $message_id = $TSUE["TSUE_Database"]->insert_id(); 
        if( $message_id ) 
        { 
            $BuildQuery = array( "message_id" => $message_id, "memberid" => $owner_memberid, "reply_date" => TIMENOW, "reply" => $reply ); 
            if( $TSUE["TSUE_Database"]->insert("tsue_messages_replies", $BuildQuery) ) 
            { 
                $TSUE["TSUE_Database"]->update("tsue_members", array( "unread_messages" => array( "escape" => 0, "value" => "unread_messages + 1" ) ), "memberid = " . $TSUE["TSUE_Database"]->escape($receiver_memberid)); 
                return $message_id; 
            } 
 
        } 
 
    } 
 
    return false; 
} 
 
function sent_mail($to, $toname = "", $subject, $message, $from = "", $fromname = "", $nl2br = 1) 
{ 
    global $TSUE; 
    $from = ($from ? $from : $TSUE["TSUE_Settings"]->settings["global_settings"]["website_sendmail_from"]); 
    $fromname = ($fromname ? $fromname : $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"]); 
    if( $nl2br ) 
    { 
        $message = nl2br($message); 
    } 
 
    if( $TSUE["TSUE_Settings"]->settings["global_settings"]["mail_type"] == 1 ) 
    { 
        $TSUEMAIL = new TSUESMTP(); 
        $TSUEMAIL->start($to, $toname, $subject, $message, $from, $fromname); 
        return $TSUEMAIL->send(); 
    } 
 
    $mid = generate_random_string(32); 
    $name = $_SERVER["SERVER_NAME"]; 
    $headers = "To: " . $toname . " <" . $to . ">" . PHP_EOL; 
    $headers .= "From: " . $fromname . " <" . $from . ">" . PHP_EOL; 
    $headers .= "Reply-To: " . $fromname . " <" . $from . ">" . PHP_EOL; 
    $headers .= "Return-Path: " . $fromname . " <" . $from . ">" . PHP_EOL; 
    $headers .= "Message-ID: <" . $mid . " thesystem@" . $name . ">" . PHP_EOL; 
    $headers .= "X-Mailer: PHP v" . phpversion() . PHP_EOL; 
    $headers .= "Content-Transfer-Encoding: 8bit" . PHP_EOL; 
    $headers .= "X-Sender: TSUE PHP-Mailer" . PHP_EOL; 
    $headers .= "MIME-Version: 1.0" . PHP_EOL; 
    $headers .= "Content-type: text/html; charset=" . $TSUE["TSUE_Language"]["charset"] . PHP_EOL; 
    @ini_set("sendmail_from", $from); 
    return @mail($to, $subject, $message, $headers, ($TSUE["TSUE_Settings"]->settings["global_settings"]["use_f_parameter"] ? "-f " . $from : "")); 
} 
 
function alert_member($alerted_memberid, $memberid, $membername, $content_type, $content_id, $action, $Extra = 0) 
{ 
    global $TSUE; 
    $BuildQuery = array( "alerted_memberid" => $alerted_memberid, "memberid" => $memberid, "membername" => $membername, "content_type" => $content_type, "content_id" => $content_id, "action" => $action, "event_date" => TIMENOW, "extra" => $Extra ); 
    if( $TSUE["TSUE_Database"]->insert("tsue_member_alerts", $BuildQuery) ) 
    { 
        $TSUE["TSUE_Database"]->query("UPDATE tsue_members SET unread_alerts = unread_alerts + 1 WHERE memberid = " . $TSUE["TSUE_Database"]->escape($alerted_memberid)); 
    } 
 
} 
 
function aaaajk($languageID) 
{ 
    global $TSUE; 
    return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/languageFlags/" . $languageID . ".png?p=" . TIMENOW . "\" alt=\"\" title=\"\" border=\"0\" />"; 
} 
 
function downloadfile($fullPath = "", $fileName = "", $contents = "") 
{ 
    if( headers_sent() ) 
    { 
        exit( "Critical Error: Headers already sent!" ); 
    } 
 
    if( ini_get("zlib.output_compression") ) 
    { 
        ini_set("zlib.output_compression", "Off"); 
    } 
 
    if( !$contents && !is_file($fullPath) ) 
    { 
        exit( get_phrase("message_content_error") ); 
    } 
 
    if( $fileName && $contents ) 
    { 
        $filesize = strlen($contents); 
        $extension = file_extension($fileName); 
    } 
    else 
    { 
        if( $fullPath && $fileName && file_exists($fullPath) ) 
        { 
            $filesize = filesize($fullPath); 
            $path_parts = pathinfo($fullPath); 
            $extension = strtolower($path_parts["extension"]); 
        } 
        else 
        { 
            exit( get_phrase("message_content_error") ); 
        } 
 
    } 
 
    $imageTypes = array( "gif" => "image/gif", "jpg" => "image/jpeg", "jpeg" => "image/jpeg", "jpe" => "image/jpeg", "png" => "image/png" ); 
    if( in_array($extension, array_keys($imageTypes)) ) 
    { 
        setheader("Content-type", $imageTypes[$extension], true); 
        setdownloadfilename($fileName, true); 
    } 
    else 
    { 
        setheader("Content-type", "unknown/unknown", true); 
        setdownloadfilename($fileName); 
    } 
 
    setheader("ETag", TIMENOW, true); 
    setheader("Content-Length", $filesize, true); 
    if( $fullPath ) 
    { 
        readfile($fullPath); 
    } 
    else 
    { 
        echo $contents; 
        exit(); 
    } 
 
} 
 
function setdownloadfilename($fileName, $inline = false) 
{ 
    setheader("Content-Disposition", (($inline ? "inline" : "attachment")) . "; filename=\"" . str_replace("\"", "", $fileName) . "\"", true); 
} 
 
function setheader($name, $value, $replace = true) 
{ 
    $value = str_replace(array( "
", "
" ), array( "\r", "\n" ), $value); 
    header($name . ": " . $value, $replace); 
} 
 
function get_torrent_category_image($cid = "") 
{ 
    global $TSUE; 
    $ValidTorrentCategoryExtensions = array( "jpg", "gif", "png", "jpeg" ); 
    foreach( $ValidTorrentCategoryExtensions as $TorrentCategoryExtension ) 
    { 
        if( is_file(DATAPATH . "torrents/category_images/" . $cid . "." . $TorrentCategoryExtension) ) 
        { 
            return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/category_images/" . $cid . "." . $TorrentCategoryExtension; 
        } 
 
    } 
} 
 
function aaaaff() 
{ 
    global $TSUE; 
    $Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"])); 
    return $Theme["themename"]; 
} 
 
function member_ratio($up = 0, $down = 0, $noHTML = false) 
{ 
    $ratio = 0; 
    if( 0 < $down ) 
    { 
        $ratio = number_format($up / $down, 2); 
    } 
 
    if( $noHTML ) 
    { 
        return $ratio; 
    } 
 
    $aaaaou = ($ratio ? ($ratio < 1 ? "ratioBad" : "ratioGood") : "ratioNull"); 
    return "<span class=\"" . $aaaaou . "\">" . $ratio . "</span>"; 
} 
 
function tsue_explode($pattern = ",", $subject = "") 
{ 
    return preg_split("#[" . $pattern . "]+#", $subject, -1, PREG_SPLIT_NO_EMPTY); 
} 
 
function posttotwitter($message = "", $maxLength = 140) 
{ 
    $consumerKey = getsetting("global_settings", "consumerKey"); 
    $consumerSecret = getsetting("global_settings", "consumerSecret"); 
    $accessToken = getsetting("global_settings", "accessToken"); 
    $accessTokenSecret = getsetting("global_settings", "accessTokenSecret"); 
    if( !$consumerKey || !$consumerSecret || !$accessToken || !$accessTokenSecret ) 
    { 
        return errormessage(get_phrase("please_setup_twitter_api_options_first")); 
    } 
 
    $cacert = DATAPATH . "cache/cacert.pem"; 
    if( !file_exists($cacert) || filemtime($cacert) < TIMENOW - 86400 ) 
    { 
        file_put_contents($cacert, file_get_contents("http://curl.haxx.se/ca/cacert.pem")); 
    } 
 
    $tmhOAuth = new tmhOAuth(array( "consumer_key" => $consumerKey, "consumer_secret" => $consumerSecret, "user_token" => $accessToken, "user_secret" => $accessTokenSecret, "curl_cainfo" => $cacert, "curl_capath" => DATAPATH . "cache/" )); 
    $message = strip_tags($message); 
    if( $maxLength < strlen($message) ) 
    { 
        $message = substr($message, 0, $maxLength - 4) . " ..."; 
    } 
 
    $params = array( "status" => $message ); 
    $response = $tmhOAuth->user_request(array( "method" => "POST", "url" => $tmhOAuth->url("1.1/statuses/update"), "params" => $params, "multipart" => false )); 
    return successmessage(get_phrase("tweet_has_been_sent")) . "<div style=\"border: 1px solid #ccc; padding: 3px; overflow: auto;\"><pre>HTTP STATUS CODE: " . print_r($response, true) . "</pre></div>"; 
} 
 
function _obfuscated_000D2C2C2F061A04342C40313D230A0D1B293B33250B21_($value = "") 
{ 
    return inputbox("Poll[options][]", $value); 
} 
 
 
function _obfuscated_000D2909313106102D1E321B0B3E3035311A221B3E3938_($offset) 
{ 
    return sprintf("%s%02d:%02d", (0 <= $offset ? "+" : "-"), abs($offset / 3600), abs($offset % 3600)); 
} 
 
function aaaant() 
{ 
    return array( "announceLog/", "avatars/l/", "avatars/m/", "avatars/s/", "backups/", "cache/", "countryFlags/", "downloads/files/", "downloads/previews/", "errors/", "gallery/l/", "gallery/s/", "languageFlags/", "posts/", "smilies/", "subTitles/", "torrents/auto_uploader/", "torrents/category_images/", "torrents/imdb/", "torrents/nfo/", "torrents/torrent_files/", "torrents/torrent_genres/", "torrents/torrent_images/l/", "torrents/torrent_images/m/", "torrents/torrent_images/s/" ); 
} 
 
function yearselectbox() 
{ 
    global $TSUE; 
    global $setYear; 
    global $chartType; 
    $nowYear = convert_time(TIMENOW, "Y"); 
    $minYear = $nowYear - 15; 
    $options = ""; 
    for( $i = $minYear; $i <= $nowYear; $i++ ) 
    { 
        $options .= "<option value=\"" . $i . "\"" . (($setYear == $i ? " selected=\"selected\"" : "")) . ">" . $i . "</option>"; 
    } 
    return "
		<div id=\"yearSelector\">
			<form method=\"get\" id=\"yearForm\">
				<select name=\"year\">
					<optgroup label=\"" . get_phrase("dashboard_cron_entries_years") . "\">
						" . $options . "
					</optgroup>
				</select>
			</form>
		</div>"; 
} 
 
function primetimemembers($Year = 0) 
{ 
    global $TSUE; 
    $nowYear = convert_time(TIMENOW, "Y"); 
    if( !$Year || $nowYear < $Year ) 
    { 
        $Year = $nowYear; 
    } 
 
    $aaaadyu = array(  ); 
    $Members = $TSUE["TSUE_Database"]->query("SELECT lastactivity,lastvisit FROM tsue_members ORDER BY lastactivity ASC"); 
    while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) ) 
    { 
        $aaaadyu[] = array( "lastactivity" => ($Member["lastactivity"] ? $Member["lastactivity"] : $Member["lastvisit"]) ); 
    } 
    $Hours = array(  ); 
    foreach( $aaaadyu as $Member ) 
    { 
        $tlmhytu = convert_time($Member["lastactivity"], "Y"); 
        if( $Year == $tlmhytu ) 
        { 
            $date = convert_time($Member["lastactivity"], "H"); 
            if( isset($Hours[$date]) ) 
            { 
                $Hours[$date]++; 
            } 
            else 
            { 
                $Hours[$date] = 1; 
            } 
 
        } 
 
    } 
    unset($aaaadyu); 
    $buildScript = "data.addColumn(\"string\", \"Time\");
		data.addRows(" . count($Hours) . ");" . PHP_EOL; 
    $i = 0; 
    foreach( $Hours as $Hour => $Count ) 
    { 
        if( strlen($Hour) == 1 ) 
        { 
            $Hour = "0" . $Hour; 
        } 
 
        $Hour = $Hour . ":00"; 
        $buildScript .= "data.addColumn('number', '" . $Hour . "');" . PHP_EOL; 
        $buildScript .= "data.setValue(" . $i . ", 0, '" . $Hour . "');" . PHP_EOL; 
        $buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL; 
        $i++; 
    } 
    unset($Hours); 
    unset($i); 
    return array( "buildScript" => $buildScript, "title" => get_phrase("stats_most_active"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" ); 
} 
 
function primetimeregistrations($Year = 0) 
{ 
    global $TSUE; 
    $nowYear = convert_time(TIMENOW, "Y"); 
    if( !$Year || $nowYear < $Year ) 
    { 
        $Year = $nowYear; 
    } 
 
    $aaaadyu = array(  ); 
    $Members = $TSUE["TSUE_Database"]->query("SELECT joindate FROM tsue_members ORDER BY joindate ASC"); 
    while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) ) 
    { 
        $aaaadyu[] = array( "joindate" => $Member["joindate"] ); 
    } 
    $Months = array(  ); 
    foreach( $aaaadyu as $Member ) 
    { 
        $tvbhytu = convert_time($Member["joindate"], "Y"); 
        if( $Year == $tvbhytu ) 
        { 
            $date = convert_time($Member["joindate"], "F"); 
            if( isset($Months[$date]) ) 
            { 
                $Months[$date]++; 
            } 
            else 
            { 
                $Months[$date] = 1; 
            } 
 
        } 
 
    } 
    unset($aaaadyu); 
    $buildScript = "data.addColumn(\"string\", \"Month\");
		data.addRows(" . count($Months) . ");" . PHP_EOL; 
    $i = 0; 
    foreach( $Months as $Month => $Count ) 
    { 
        $buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL; 
        $buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL; 
        $buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL; 
        $i++; 
    } 
    unset($Months); 
    unset($i); 
    return array( "buildScript" => $buildScript, "title" => get_phrase("stats_registrations"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" ); 
} 
 
function primetimethreads($Year = 0) 
{ 
    global $TSUE; 
    $nowYear = convert_time(TIMENOW, "Y"); 
    if( !$Year || $nowYear < $Year ) 
    { 
        $Year = $nowYear; 
    } 
 
    $tyuhyg = array(  ); 
    $Threads = $TSUE["TSUE_Database"]->query("SELECT post_date  FROM tsue_forums_threads ORDER BY post_date ASC"); 
    while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) ) 
    { 
        $tyuhyg[] = array( "post_date" => $Thread["post_date"] ); 
    } 
    $Months = array(  ); 
    foreach( $tyuhyg as $Thread ) 
    { 
        $postYear = convert_time($Thread["post_date"], "Y"); 
        if( $Year == $postYear ) 
        { 
            $date = convert_time($Thread["post_date"], "F"); 
            if( isset($Months[$date]) ) 
            { 
                $Months[$date]++; 
            } 
            else 
            { 
                $Months[$date] = 1; 
            } 
 
        } 
 
    } 
    unset($tyuhyg); 
    $buildScript = "data.addColumn(\"string\", \"Month\");
		data.addRows(" . count($Months) . ");" . PHP_EOL; 
    $i = 0; 
    foreach( $Months as $Month => $Count ) 
    { 
        $buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL; 
        $buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL; 
        $buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL; 
        $i++; 
    } 
    unset($Months); 
    unset($i); 
    return array( "buildScript" => $buildScript, "title" => get_phrase("stats_threads"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" ); 
} 
 
function primetimeposts($Year = 0) 
{ 
    global $TSUE; 
    $nowYear = convert_time(TIMENOW, "Y"); 
    if( !$Year || $nowYear < $Year ) 
    { 
        $Year = $nowYear; 
    } 
 
    $postsCache = array(  ); 
    $Posts = $TSUE["TSUE_Database"]->query("SELECT post_date  FROM tsue_forums_posts ORDER BY post_date ASC"); 
    while( $Post = $TSUE["TSUE_Database"]->fetch_assoc($Posts) ) 
    { 
        $postsCache[] = array( "post_date" => $Post["post_date"] ); 
    } 
    $Months = array(  ); 
    foreach( $postsCache as $Post ) 
    { 
        $postYear = convert_time($Post["post_date"], "Y"); 
        if( $Year == $postYear ) 
        { 
            $date = convert_time($Post["post_date"], "F"); 
            if( isset($Months[$date]) ) 
            { 
                $Months[$date]++; 
            } 
            else 
            { 
                $Months[$date] = 1; 
            } 
 
        } 
 
    } 
    unset($postsCache); 
    $buildScript = "data.addColumn(\"string\", \"Month\");
		data.addRows(" . count($Months) . ");" . PHP_EOL; 
    $i = 0; 
    foreach( $Months as $Month => $Count ) 
    { 
        $buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL; 
        $buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL; 
        $buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL; 
        $i++; 
    } 
    unset($Months); 
    unset($i); 
    return array( "buildScript" => $buildScript, "title" => get_phrase("stats_posts"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" ); 
} 
 
function primetimetorrents($Year = 0) 
{ 
    global $TSUE; 
    $nowYear = convert_time(TIMENOW, "Y"); 
    if( !$Year || $nowYear < $Year ) 
    { 
        $Year = $nowYear; 
    } 
 
    $tymhygr = array(  ); 
    $Torrents = $TSUE["TSUE_Database"]->query("SELECT added  FROM tsue_torrents ORDER BY added ASC"); 
    while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) ) 
    { 
        $tymhygr[] = array( "added" => $Torrent["added"] ); 
    } 
    $Months = array(  ); 
    foreach( $tymhygr as $Torrent ) 
    { 
        $tlmhygr = convert_time($Torrent["added"], "Y"); 
        if( $Year == $tlmhygr ) 
        { 
            $date = convert_time($Torrent["added"], "F"); 
            if( isset($Months[$date]) ) 
            { 
                $Months[$date]++; 
            } 
            else 
            { 
                $Months[$date] = 1; 
            } 
 
        } 
 
    } 
    unset($tymhygr); 
    $buildScript = "data.addColumn(\"string\", \"Month\");
		data.addRows(" . count($Months) . ");" . PHP_EOL; 
    $i = 0; 
    foreach( $Months as $Month => $Count ) 
    { 
        $buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL; 
        $buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL; 
        $buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL; 
        $i++; 
    } 
    unset($Months); 
    unset($i); 
    return array( "buildScript" => $buildScript, "title" => get_phrase("stats_torrents"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" ); 
} 
 

Did this file decode correctly?

Original Code

<?php
define("DEMO_MODE", false);
if( isset($_GET["noscript"]) )
{
    exit( "<div style=\"border: 3px solid red; text-align: center; font-size: 18px; font-weight: bold; padding: 10px; width: 600px; height: 65px; margin: 100px auto; font-family: 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 1.7;\">Your Browser does not support JavaScript, or it is disabled.<br/>To run this application, you must enable JavaScript!!</div>" );
}

aaaaaa();
$TSUE = array(  );
$TSUE["breadcrumb"] = array(  );
$TSUE["action"] = getvar("action");
$TSUE["do"] = getvar("do");
$TSUE["option"] = getvar("option");
$TSUE["items_perpage"] = 15;
$TSUE["array_items_perpage"] = 40;
$TSUE["TSUE_Database"] = new TSUE_Database();
$TSUE["TSUE_Settings"] = new TSUE_Settings();
$Warnings = array(  );
/*if( !DEMO_MODE )
{
    aaaaab();
}*/

checkadmin();
if( isset($_GET["newperpage"]) )
{
    $newperpage = intval(getvar("newperpage"));
    if( $newperpage )
    {
        $TSUE["items_perpage"] = $newperpage;
    }

    unset($newperpage);
}
else
{
    if( isset($_COOKIE["newperpage"]) )
    {
        $newperpage = intval($_COOKIE["newperpage"]);
        if( $newperpage )
        {
            $TSUE["items_perpage"] = $newperpage;
        }

        unset($newperpage);
    }

}

if( !DEMO_MODE && !IS_AJAX && substr(aaaaac(), 0, 12) != substr($TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"], 0, 12) && !headers_sent() )
{
    $websiteURL = parse_url($TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]);
    if( isset($websiteURL["path"]) && !empty($websiteURL["path"]) )
    {
        $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] = str_replace($websiteURL["path"], "", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]);
    }

    echo "\r\n\t<!DOCTYPE html>\r\n\t<html id=\"TSUE\" lang=\"en-us\">\r\n\t\t<head>\r\n\t\t\t<noscript><meta http-equiv=refresh content=\"6; URL=" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . $_SERVER["REQUEST_URI"] . "\" /></noscript>\r\n\t\t\t<title>Fatal Error</title>\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\tsetTimeout(function()\r\n\t\t\t\t{\r\n\t\t\t\t\twindow.location=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . $_SERVER["REQUEST_URI"] . "\";\r\n\t\t\t\t}, 3000);\r\n\t\t\t</script>\r\n\t\t</head>\r\n\t\t<body>\r\n\t\t\t<div style=\"border: 3px solid red; text-align: center; font-size: 18px; font-weight: bold; padding: 10px; width: 600px; margin: 100px auto; font-family: 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 1.7;\">You are being redirected to correct url...</div>\r\n\t\t</body>\r\n\t</html>";
    exit();
}

$outputContent = "";
if( !IS_AJAX )
{
    $MySQLVariables = $TSUE["TSUE_Database"]->query("SHOW VARIABLES WHERE Variable_Name IN (\"ft_min_word_len\", \"max_allowed_packet\")");
    if( $TSUE["TSUE_Database"]->num_rows($MySQLVariables) )
    {
        while( $V = $TSUE["TSUE_Database"]->fetch_assoc($MySQLVariables) )
        {
            if( $V["Variable_name"] == "max_allowed_packet" && $V["Value"] < 20 * 1024 * 1024 )
            {
                $Warnings[] = "MySQL <b>max_allowed_packet</b> is " . friendly_size($V["Value"]) . " on this server.<br />You need to increase this variable at least 20MB.";
            }

            if( $V["Variable_name"] == "ft_min_word_len" && 3 < $V["Value"] )
            {
                $Warnings[] = "MySQL <b>ft_min_word_len</b> is " . $V["Value"] . " on this server.<br />Please decrease this value to 3 .";
            }

        }
    }

}

if( !IS_AJAX && !$TSUE["action"] )
{
    addbreadcrumb(array( get_phrase("logged_welcome_back", $TSUE["TSUE_Member"]["membername"]) => TSUE_ADMINCP_URL ));
    $Today = TIMENOW - 86400;
    $totalRegisteredMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_members");
    $todayRegisteredMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_members WHERE joindate >= " . $Today);
    $membersAwaitingApproval = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_members WHERE membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")");
    $mutedMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_member_profile WHERE muted = 1");
    $bannedMembers = $TSUE["TSUE_Database"]->row_count("SELECT memberid FROM tsue_member_bans");
    $warnedMembers = $TSUE["TSUE_Database"]->row_count("SELECT warnid FROM tsue_member_warns");
    $todayCreatedThreads = $TSUE["TSUE_Database"]->row_count("SELECT threadid FROM tsue_forums_threads WHERE post_date >= " . $Today);
    $todayPostedReplies = $TSUE["TSUE_Database"]->row_count("SELECT postid FROM tsue_forums_posts WHERE post_date >= " . $Today);
    $todayPostedComments = $TSUE["TSUE_Database"]->row_count("SELECT comment_id FROM tsue_comments WHERE post_date >= " . $Today);
    $todayLikedContents = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE like_id FROM tsue_liked_content WHERE like_date >= " . $Today);
    $todayPostedReports = $TSUE["TSUE_Database"]->row_count("SELECT report_id FROM tsue_reports WHERE first_report_date >= " . $Today);
    $todayPostedRequests = $TSUE["TSUE_Database"]->row_count("SELECT rid FROM tsue_requests WHERE added >= " . $Today);
    $totalUploadedTorrents = $TSUE["TSUE_Database"]->row_count("SELECT tid FROM tsue_torrents");
    $todayUploadedTorrents = $TSUE["TSUE_Database"]->row_count("SELECT tid FROM tsue_torrents WHERE added >= " . $Today);
    $torrentsAwaitingSeed = $TSUE["TSUE_Database"]->row_count("SELECT tid FROM tsue_torrents WHERE seeders = 0");
    if( getsetting("xbt", "active") )
    {
        $Seeders = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE fid FROM xbt_files_users WHERE active = 1 AND `left` = 0");
        $Leechers = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE fid FROM xbt_files_users WHERE active = 1 AND `left` > 0");
    }
    else
    {
        $Seeders = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE pid FROM tsue_torrents_peers WHERE active = 1 AND `left` = 0");
        $Leechers = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE pid FROM tsue_torrents_peers WHERE active = 1 AND `left` > 0");
    }

    $totalPeers = $Seeders + $Leechers;
    $outputContent = "\r\n\t<div style=\"margin-left: 5px; text-align: center;\">\r\n\t\t<div style=\"float: left; width: 250px; height: 140px; padding: 5px; margin: 5px; font-size: 11px;background: #F5F5F5;border: 1px solid #DDDDDD;border-radius: 5px; -webkit-border-radius:  5px; -moz-border-radius:  5px; -khtml-border-radius:  5px;overflow: hidden;zoom: 1;\">\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Total Registered Members: <a href=\"?action=Member Manager&do=All Members\">" . number_format($totalRegisteredMembers) . "</a></div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Registered Members: " . number_format($todayRegisteredMembers) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Members Awaiting Approval: <a href=\"?action=Member Manager&do=Awaiting Approval\">" . number_format($membersAwaitingApproval) . "</a></div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Muted Members: <a href=\"?action=Member Manager&do=Muted Members\">" . number_format($mutedMembers) . "</a></div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Banned Members: <a href=\"?action=Member Manager&do=Banned Members\">" . number_format($bannedMembers) . "</a></div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Warned Members: <a href=\"?action=Member Manager&do=Warned Members\">" . number_format($warnedMembers) . "</a></div>\r\n\t\t</div>\r\n\t\t\r\n\t\t<div style=\"float: left; width: 250px; height: 140px; padding: 5px; margin: 5px; font-size: 11px;background: #F5F5F5;border: 1px solid #DDDDDD;border-radius: 5px; -webkit-border-radius:  5px; -moz-border-radius:  5px; -khtml-border-radius:  5px;overflow: hidden;zoom: 1;\">\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Created Threads: " . number_format($todayCreatedThreads) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Replies: " . number_format($todayPostedReplies) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Comments: " . number_format($todayPostedComments) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Liked Contents: " . number_format($todayLikedContents) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Reports: " . number_format($todayPostedReports) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Posted Requests: " . number_format($todayPostedRequests) . "</div>\r\n\t\t</div>\r\n\r\n\t\t<div style=\"float: left; width: 250px; height: 140px; padding: 5px; margin: 5px; font-size: 11px;background: #F5F5F5;border: 1px solid #DDDDDD;border-radius: 5px; -webkit-border-radius:  5px; -moz-border-radius:  5px; -khtml-border-radius:  5px;overflow: hidden;zoom: 1;\">\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Total Uploaded Torrents: " . number_format($totalUploadedTorrents) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Today Uploaded Torrents: " . number_format($todayUploadedTorrents) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Torrents Awaiting Seed: " . number_format($torrentsAwaitingSeed) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Total Peers" . ((getsetting("xbt", "active") ? " (XBT)" : "")) . ": " . number_format($totalPeers) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Seeders: " . number_format($Seeders) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\">Leechers: " . number_format($Leechers) . "</div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\"></div>\r\n\t\t\t<div style=\"padding: 3px 0; margin-bottom: 3px;\"></div>\r\n\t\t</div>\r\n\t</div>\r\n\t\r\n\t<div style=\"clear: both;\"></div>\r\n\r\n\t<div id=\"tsue_news\">\r\n\t\t<img src=\"images/ajax/fb_ajax-loader.gif\" alt=\"\" title=\"\" class=\"ajaxLoader\" /> " . get_phrase("loading") . "\r\n\t</div>\r\n\t<br />\r\n\t\r\n\t<script type=\"text/javascript\">\r\n\t\t\$(document).ready(function()\r\n\t\t{\r\n\t\t\t\$.ajax\r\n\t\t\t({\r\n\t\t\t\turl: \"index.php\",\r\n\t\t\t\tdata: \"isAjax=1&action=tsue_news\",\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\tsuccess: function(response)\r\n\t\t\t\t{\r\n\t\t\t\t\t\$(\"#tsue_news\").css({\"text-align\": \"left\"}).html('<span style=\"float: right;\" id=\"showAllRecentNews\" class=\"submit\">Show All Recent News</span>'+response).find(\"div.dottedBottom\").each(function(i)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(i > 0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(this).css({\"display\":\"none\"});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\$(\"#showAllRecentNews\").click(function(e)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(\"div.dottedBottom\").fadeIn(300);\r\n\t\t\t\t\t\t\$(this).remove();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t</script>";
}

if( $TSUE["action"] == "server-status" )
{
    checkdemomode();
    aaaaad("Server");
    if( $TSUE["do"] == "update" )
    {
        $serverIP = getserverip();
        $Ports = array( "HTTP" => getsetting("server", "http_port", 80), "HTTPS" => getsetting("server", "https_port", 443), "SSH" => getsetting("server", "ssh_port", 22), "FTP" => getsetting("server", "ftp_port", 21), "POP3" => getsetting("server", "pop3_port", 110) );
        if( array_search("", $Ports) !== false )
        {
            exit( errormessage(get_phrase("please_setup_your_server_first")) );
        }

        $Status = array(  );
        foreach( $Ports as $Type => $Port )
        {
            if( $Port )
            {
                $fp = @fsockopen($serverIP, $Port, $errno, $errstr, 7);
                if( $fp )
                {
                    $Status[$Type] = "up";
                }
                else
                {
                    $Status[$Type] = "down";
                }

            }

        }
        $Rows = "";
        foreach( $Status as $rowName => $Row )
        {
            $Rows .= "\r\n\t\t\t<td><img src=\"images/status/" . $Row . ".png\" alt=\"\" title=\"\" /></td>";
        }
        if( getsetting("xbt", "active") )
        {
            $fp = @fsockopen($serverIP, 2710, $errno, $errstr, 7);
            $Rows .= "\r\n\t\t\t<td><img src=\"images/status/" . (($fp ? "up" : "down")) . ".png\" alt=\"\" title=\"\" /></td>";
        }

        $HTML = "\r\n\t\t<table cellpadding=\"0\" cellspacing=\"0\" class=\"table\">\r\n\t\t\t<tr>\r\n\t\t\t\t<th>Server</th>\r\n\t\t\t\t<th>HTTP</th>\r\n\t\t\t\t<th>HTTPS</th>\r\n\t\t\t\t<th>SSH</th>\r\n\t\t\t\t<th>FTP</th>\r\n\t\t\t\t<th>POP3</th>\r\n\t\t\t\t" . ((getsetting("xbt", "active") ? "\r\n\t\t\t\t<th>XBT</th>" : "")) . "\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td>" . U . " (" . $serverIP . ")</td>\r\n\t\t\t\t" . $Rows . "\r\n\t\t\t</tr>\r\n\t\t</table>";
        echo $HTML;
        exit();
    }
    else
    {
        echo "\r\n\t<!DOCTYPE html>\r\n\t<html id=\"TSUE\" lang=\"en-us\">\r\n\t\t<head>\r\n\t\t\t<noscript><meta http-equiv=refresh content=\"0; URL=" . TSUE_ADMINCP_URL . "?noscript=1\" /></noscript>\r\n\t\t\t<title>Server Status</title>\r\n\t\t\t<link rel=\"stylesheet\" type=\"text/css\" href=\"css/serverStatus.css\" />\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\tvar TSUEPhrases = [];\r\n\t\t\t</script>\r\n\t\t\t<script type=\"text/javascript\" src=\"./../js/tsue/jquery.js\"></script>\r\n\t\t</head>\r\n\t\t<body>\r\n\t\t\t<div class=\"form\">" . get_phrase("server_status_table_msg") . "</div>\r\n\t\t\t<div id=\"serverStatus\" class=\"form\">\r\n\t\t\t\t<img src=\"images/ajax/fb_ajax-loader.gif\" alt=\"\" title=\"\" class=\"ajaxLoader\" />" . get_phrase("loading") . "\r\n\t\t\t</div>\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\t\$(window).load(function()\r\n\t\t\t\t{\r\n\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t({\r\n\t\t\t\t\t\turl: \"index.php\",\r\n\t\t\t\t\t\tdata: \"action=server-status&do=update\",\r\n\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\tsuccess: function(response)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(\"#serverStatus\").html(response);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t</script>\r\n\t\t</body>\r\n\t</html>";
        exit();
    }

}
else
{
    if( $TSUE["action"] == "php-info" )
    {
        checkdemomode();
        aaaaad("Server");
        phpinfo();
        exit();
    }

    if( $TSUE["action"] == "irc-debug" )
    {
        checkdemomode();
        aaaaad("Options");
        $TSUE_IRCBot = new TSUE_IRCBot("debug");
        echo $TSUE_IRCBot->Debug();
        exit();
    }

    if( $TSUE["action"] == "closeGlobalWarning" && IS_AJAX )
    {
        $_SESSION["skipGlobalWarnings"] = TIMENOW;
        exit();
    }

    if( $TSUE["action"] == "getDirectorySize" && IS_AJAX )
    {
        $validDirs = array( "avatars", "countryFlags", "downloads", "gallery", "languageFlags", "posts", "smilies", "subTitles", "torrents" );
        $totalSize = 0;
        foreach( $validDirs as $dir )
        {
            $totalSize += foldersize(DATAPATH . $dir);
        }
        $totalSize = friendly_size($totalSize);
        exit( $totalSize );
    }
    else
    {
        if( $TSUE["action"] == "doCleanup" && IS_AJAX )
        {
            aaaaad("Cleanup");
            $dir = trim(getvar("dir"));
            if( $dir )
            {
                $validDirs = array( "avatars", "countryFlags", "downloads", "gallery", "languageFlags", "posts", "smilies", "subTitles", "torrents" );
                $skipFiles = array( ".", "..", "index.html", ".htaccess" );
                if( in_array($dir, $validDirs) )
                {
                    $fullPath = DATAPATH . $dir . "/";
                    if( is_dir($fullPath) )
                    {
                        switch( $dir )
                        {
                            case "avatars":
                                $Result = $TSUE["TSUE_Database"]->query("SELECT memberid FROM tsue_members ORDER BY memberid ASC");
                                $Memberids = array(  );
                                if( $TSUE["TSUE_Database"]->num_rows($Result) )
                                {
                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
                                    {
                                        $Memberids[] = $Row["memberid"];
                                    }
                                }

                                foreach( array( "l/", "m/", "s/" ) as $subDir )
                                {
                                    if( is_dir($fullPath . $subDir) )
                                    {
                                        $Avatars = scandir($fullPath . $subDir);
                                        if( $Avatars )
                                        {
                                            foreach( $Avatars as $Avatar )
                                            {
                                                $ext = strtolower(file_extension($Avatar));
                                                if( in_array($ext, array( "jpg", "jpeg", "gif", "png" )) )
                                                {
                                                    $memberid = str_replace(array( ".jpg", ".jpeg", ".gif", ".png" ), "", $Avatar);
                                                    if( !in_array($memberid, $Memberids) )
                                                    {
                                                        @unlink($fullPath . $subDir . $Avatar);
                                                    }

                                                }
                                                else
                                                {
                                                    if( !in_array($Avatar, $skipFiles) )
                                                    {
                                                        @unlink($fullPath . $subDir . $Avatar);
                                                    }

                                                }

                                            }
                                        }

                                    }

                                }
                                break;
                            case "countryFlags":
                                $Flags = scandir($fullPath);
                                if( $Flags )
                                {
                                    foreach( $Flags as $Flag )
                                    {
                                        $ext = strtolower(file_extension($Flag));
                                        if( !in_array($ext, array( "gif", "jpg", "png", "jpeg" )) && !in_array($Flag, $skipFiles) )
                                        {
                                            @unlink($fullPath . $Flag);
                                        }

                                    }
                                }

                                break;
                            case "downloads":
                                $Result = $TSUE["TSUE_Database"]->query("SELECT filename, preview FROM tsue_downloads");
                                $Filenames = $Previews = array(  );
                                if( $TSUE["TSUE_Database"]->num_rows($Result) )
                                {
                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
                                    {
                                        if( $Row["filename"] )
                                        {
                                            $Filenames[] = $Row["filename"];
                                        }

                                        if( $Row["preview"] )
                                        {
                                            $Previews[] = $Row["preview"];
                                        }

                                    }
                                }

                                foreach( array( "files/", "previews/" ) as $subDir )
                                {
                                    if( is_dir($fullPath . $subDir) )
                                    {
                                        $Files = scandir($fullPath . $subDir);
                                        if( $Files )
                                        {
                                            foreach( $Files as $File )
                                            {
                                                if( !in_array($File, $Filenames) && !in_array($File, $Previews) && !in_array($File, $skipFiles) )
                                                {
                                                    @unlink($fullPath . $subDir . $File);
                                                }

                                            }
                                        }

                                    }

                                }
                                break;
                            case "gallery":
                                $Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type IN(\"image_gallery_public\", \"image_gallery_private\") AND associated = 1");
                                $Filenames = array(  );
                                if( $TSUE["TSUE_Database"]->num_rows($Result) )
                                {
                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
                                    {
                                        $Filenames[] = $Row["filename"];
                                    }
                                }

                                foreach( array( "l/", "s/" ) as $subDir )
                                {
                                    if( is_dir($fullPath . $subDir) )
                                    {
                                        $Files = scandir($fullPath . $subDir);
                                        if( $Files )
                                        {
                                            foreach( $Files as $File )
                                            {
                                                if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
                                                {
                                                    @unlink($fullPath . $subDir . $File);
                                                }

                                            }
                                        }

                                    }

                                }
                                break;
                            case "languageFlags":
                                $Result = $TSUE["TSUE_Database"]->query("SELECT languageid FROM tsue_languages ORDER BY languageid ASC");
                                $Languageids = array(  );
                                if( $TSUE["TSUE_Database"]->num_rows($Result) )
                                {
                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
                                    {
                                        $Languageids[] = $Row["languageid"];
                                    }
                                }

                                $Flags = scandir($fullPath);
                                if( $Flags )
                                {
                                    foreach( $Flags as $Flag )
                                    {
                                        $ext = strtolower(file_extension($Flag));
                                        if( in_array($ext, array( "gif", "jpg", "png" )) )
                                        {
                                            $languageid = str_replace(array( ".gif", ".jpg", ".png" ), "", $Flag);
                                            if( !in_array($languageid, $Languageids) )
                                            {
                                                @unlink($fullPath . $Flag);
                                            }

                                        }
                                        else
                                        {
                                            if( !in_array($Flag, $skipFiles) )
                                            {
                                                @unlink($fullPath . $Flag);
                                            }

                                        }

                                    }
                                }

                                break;
                            case "posts":
                                $Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type = \"posts\" AND associated = 1");
                                $Filenames = array(  );
                                if( $TSUE["TSUE_Database"]->num_rows($Result) )
                                {
                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
                                    {
                                        $Filenames[] = $Row["filename"];
                                    }
                                }

                                $Files = scandir($fullPath);
                                if( $Files )
                                {
                                    foreach( $Files as $File )
                                    {
                                        if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
                                        {
                                            @unlink($fullPath . $File);
                                        }

                                    }
                                }

                                break;
                            case "smilies":
                                $Smilies = scandir($fullPath);
                                if( $Smilies )
                                {
                                    foreach( $Smilies as $S )
                                    {
                                        $ext = strtolower(file_extension($S));
                                        if( !in_array($ext, array( "gif", "jpg", "png" )) && !in_array($S, $skipFiles) )
                                        {
                                            @unlink($fullPath . $S);
                                        }

                                    }
                                }

                                break;
                            case "subTitles":
                                $Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_subtitles");
                                $Filenames = array(  );
                                if( $TSUE["TSUE_Database"]->num_rows($Result) )
                                {
                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
                                    {
                                        if( $Row["filename"] )
                                        {
                                            $Filenames[] = $Row["filename"];
                                        }

                                    }
                                }

                                $Files = scandir($fullPath);
                                if( $Files )
                                {
                                    foreach( $Files as $File )
                                    {
                                        if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
                                        {
                                            @unlink($fullPath . $File);
                                        }

                                    }
                                }

                                break;
                            case "torrents":
                                $subDirs = array( "category_images/", "imdb/", "nfo/", "torrent_files/", "torrent_genres/", "torrent_images/" );
                                foreach( $subDirs as $subDir )
                                {
                                    if( is_dir($fullPath . $subDir) )
                                    {
                                        switch( $subDir )
                                        {
                                            case "category_images/":
                                                $Result = $TSUE["TSUE_Database"]->query("SELECT cid FROM tsue_torrents_categories ORDER BY cid ASC");
                                                $Cids = array(  );
                                                if( $TSUE["TSUE_Database"]->num_rows($Result) )
                                                {
                                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
                                                    {
                                                        $Cids[] = $Row["cid"];
                                                    }
                                                }

                                                $categoryImages = scandir($fullPath . $subDir);
                                                if( $categoryImages )
                                                {
                                                    foreach( $categoryImages as $categoryImage )
                                                    {
                                                        $ext = strtolower(file_extension($categoryImage));
                                                        if( in_array($ext, array( "png", "gif", "jpg", "jpeg" )) )
                                                        {
                                                            $cid = str_replace(array( ".png", ".gif", ".jpg", ".jpeg" ), "", $categoryImage);
                                                            if( !in_array($cid, $Cids) )
                                                            {
                                                                @unlink($fullPath . $subDir . $categoryImage);
                                                            }

                                                        }
                                                        else
                                                        {
                                                            if( !in_array($categoryImage, $skipFiles) )
                                                            {
                                                                @unlink($fullPath . $subDir . $categoryImage);
                                                            }

                                                        }

                                                    }
                                                }

                                                break;
                                            case "imdb/":
                                                $Result = $TSUE["TSUE_Database"]->query("SELECT content FROM tsue_imdb");
                                                $Filenames = array(  );
                                                if( $TSUE["TSUE_Database"]->num_rows($Result) )
                                                {
                                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
                                                    {
                                                        if( $Row["content"] )
                                                        {
                                                            $Row["content"] = @unserialize($Row["content"]);
                                                            if( $Row["content"] && isset($Row["content"]["title_id"]) && $Row["content"]["title_id"] )
                                                            {
                                                                $Filenames[] = $Row["content"]["title_id"] . ".jpg";
                                                            }

                                                        }

                                                    }
                                                }

                                                $Files = scandir($fullPath . $subDir);
                                                if( $Files )
                                                {
                                                    foreach( $Files as $File )
                                                    {
                                                        if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
                                                        {
                                                            @unlink($fullPath . $subDir . $File);
                                                        }

                                                    }
                                                }

                                                break;
                                            case "nfo/":
                                                $Files = scandir($fullPath . $subDir);
                                                if( $Files )
                                                {
                                                    foreach( $Files as $File )
                                                    {
                                                        if( !in_array($File, $skipFiles) )
                                                        {
                                                            @unlink($fullPath . $subDir . $File);
                                                        }

                                                    }
                                                }

                                                break;
                                            case "torrent_files/":
                                                $Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type = \"torrent_files\" AND associated = 1");
                                                $Filenames = array(  );
                                                if( $TSUE["TSUE_Database"]->num_rows($Result) )
                                                {
                                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
                                                    {
                                                        $Filenames[] = $Row["filename"];
                                                    }
                                                }

                                                $Files = scandir($fullPath . $subDir);
                                                if( $Files )
                                                {
                                                    foreach( $Files as $File )
                                                    {
                                                        if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
                                                        {
                                                            @unlink($fullPath . $subDir . $File);
                                                        }

                                                    }
                                                }

                                                break;
                                            case "torrent_genres/":
                                                $Result = $TSUE["TSUE_Database"]->query("SELECT gicon FROM tsue_torrents_genres");
                                                $Filenames = array(  );
                                                if( $TSUE["TSUE_Database"]->num_rows($Result) )
                                                {
                                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
                                                    {
                                                        if( $Row["gicon"] )
                                                        {
                                                            $Filenames[] = $Row["gicon"];
                                                        }

                                                    }
                                                }

                                                $Files = scandir($fullPath . $subDir);
                                                if( $Files )
                                                {
                                                    foreach( $Files as $File )
                                                    {
                                                        if( !in_array($File, $Filenames) && !in_array($File, $skipFiles) )
                                                        {
                                                            @unlink($fullPath . $subDir . $File);
                                                        }

                                                    }
                                                }

                                                break;
                                            case "torrent_images/":
                                                $Result = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type IN (\"torrent_images\", \"torrent_screenshots\") AND associated = 1");
                                                $Filenames = array(  );
                                                if( $TSUE["TSUE_Database"]->num_rows($Result) )
                                                {
                                                    while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Result) )
                                                    {
                                                        $Filenames[] = $Row["filename"];
                                                    }
                                                }

                                                foreach( array( "l/", "m/", "s/" ) as $deepSubDir )
                                                {
                                                    if( is_dir($fullPath . $subDir . $deepSubDir) )
                                                    {
                                                        $Files = scandir($fullPath . $subDir . $deepSubDir);
                                                        if( $Files )
                                                        {
                                                            foreach( $Files as $File )
                                                            {
                                                                $ext = strtolower(file_extension($File));
                                                                if( !in_array($ext, array( "png", "gif", "jpg", "jpeg" )) && !in_array($File, $skipFiles) )
                                                                {
                                                                    @unlink($fullPath . $subDir . $deepSubDir . $File);
                                                                }

                                                            }
                                                        }

                                                    }

                                                }
                                                break;
                                        }
                                    }

                                }
                                break;
                        }
                    }

                }

            }

            exit();
        }

        if( $TSUE["action"] == "checkHitRunOptions" && IS_AJAX )
        {
            if( isset($_POST["HITRUN"]) )
            {
                $Options = $_POST["HITRUN"];
                $XBT = $TSUE["TSUE_Settings"]->settings["xbt"]["active"];
                $Rules = array(  );
                if( $XBT )
                {
                    if( isset($Options["dayTolerance"]) && $Options["dayTolerance"] )
                    {
                        $Rules[] = "p.mtime < " . (TIMENOW - $Options["dayTolerance"] * 24 * 60 * 60);
                    }

                    if( isset($Options["announceLimit"]) && $Options["announceLimit"] )
                    {
                        $Rules[] = "p.announced < " . $Options["announceLimit"];
                    }

                    if( isset($Options["skipMembergroups"]) && !empty($Options["skipMembergroups"]) )
                    {
                        $Rules[] = "m.membergroupid NOT IN (" . implode(",", array_map("intval", $Options["skipMembergroups"])) . ")";
                    }

                    $Rules[] = "p.active = 0";
                    $Rules[] = "p.left = 0";
                    $Rules[] = "p.isWarned = 0";
                    $Rules[] = "p.downloaded > 0";
                    $WHERE = implode(" AND ", $Rules);
                    $Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.uploaded as total_uploaded, p.mtime as last_updated, p.announced, t.tid, t.name, t.size, t.options, m.memberid, m.membername, g.groupname, g.groupstyle FROM xbt_files_users p INNER JOIN tsue_torrents t ON (p.fid=t.tid) INNER JOIN tsue_members m ON (p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE " . $WHERE);
                }
                else
                {
                    if( isset($Options["skipMembergroups"]) && !empty($Options["skipMembergroups"]) )
                    {
                        $Rules[] = "m.membergroupid NOT IN (" . implode(",", array_map("intval", $Options["skipMembergroups"])) . ")";
                    }

                    $WHERE = "";
                    if( $Rules )
                    {
                        $WHERE = " WHERE " . implode(" AND ", $Rules);
                    }

                    $Peers = $TSUE["TSUE_Database"]->query("\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT SQL_NO_CACHE\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUM(p.total_uploaded) AS total_uploaded, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMAX(p.last_updated) AS last_updated, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUM(p.announced) AS announced, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMAX(p.active) AS active, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMAX(p.left) AS `left`, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMAX(p.isWarned) AS isWarned, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUM(p.total_downloaded) AS total_downloaded, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tt.tid, t.name, t.size, t.options, m.memberid, m.membername, g.groupname, g.groupstyle \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM tsue_torrents_peers p \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN tsue_torrents t USING(tid) \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN tsue_members m USING(memberid) \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tLEFT JOIN tsue_membergroups g USING(membergroupid)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" . $WHERE . " \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tGROUP BY p.tid, p.memberid \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tORDER BY p.last_updated DESC\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t");
                }

                $Data = "<div class=\"error\">" . get_phrase("no_results_found") . " " . get_phrase("check_hitrun_options") . "</div>";
                if( $TSUE["TSUE_Database"]->num_rows($Peers) )
                {
                    $Data = "\r\n\t\t<div style=\"max-height: 100px; overflow: auto; width: 100%;\">\r\n\t\t\t<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" class=\"table\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td class=\"tableContentTDHeader\">" . get_phrase("torrents_peer_membername") . "</td>\r\n\t\t\t\t\t<td class=\"tableContentTDHeader\">Torrent</td>\r\n\t\t\t\t\t<td class=\"tableContentTDHeader\">" . get_phrase("torrents_peer_last_updated") . "</td>\r\n\t\t\t\t\t<td class=\"tableContentTDHeader\">" . get_phrase("torrents_peer_announced") . "</td>\r\n\t\t\t\t\t<td class=\"tableContentTDHeader\">" . get_phrase("promotion_minRatio") . "</td>\r\n\t\t\t\t\t<td class=\"tableContentTDHeader\">" . get_phrase("ratio") . "</td>\r\n\t\t\t\t</tr>";
                    while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) )
                    {
                        $torrentOptions = unserialize($Peer["options"]);
                        if( isset($torrentOptions["hitRunRatio"]) && $torrentOptions["hitRunRatio"] )
                        {
                            $passed = false;
                            if( $XBT )
                            {
                                $torrentOptions["hitRunRatio"] = 0 + $torrentOptions["hitRunRatio"];
                                if( member_ratio($Peer["total_uploaded"], $Peer["size"], true) < $torrentOptions["hitRunRatio"] )
                                {
                                    $passed = false;
                                }
                                else
                                {
                                    $passed = true;
                                }

                            }
                            else
                            {
                                if( isset($Options["dayTolerance"]) && $Options["dayTolerance"] && TIMENOW - $Options["dayTolerance"] * 86400 < $Peer["last_updated"] )
                                {
                                    $passed = true;
                                }
                                else
                                {
                                    if( isset($Options["announceLimit"]) && $Options["announceLimit"] && $Options["announceLimit"] <= $Peer["announced"] )
                                    {
                                        $passed = true;
                                    }
                                    else
                                    {
                                        if( $Peer["active"] )
                                        {
                                            $passed = true;
                                        }
                                        else
                                        {
                                            if( $Peer["left"] )
                                            {
                                                $passed = true;
                                            }
                                            else
                                            {
                                                if( $Peer["isWarned"] )
                                                {
                                                    $passed = true;
                                                }
                                                else
                                                {
                                                    if( !$Peer["total_downloaded"] )
                                                    {
                                                        $passed = true;
                                                    }

                                                }

                                            }

                                        }

                                    }

                                }

                                if( !$passed )
                                {
                                    $torrentOptions["hitRunRatio"] = 0 + $torrentOptions["hitRunRatio"];
                                    if( member_ratio($Peer["total_uploaded"], $Peer["size"], true) < $torrentOptions["hitRunRatio"] )
                                    {
                                        $passed = false;
                                    }
                                    else
                                    {
                                        $passed = true;
                                    }

                                }

                            }

                            if( !$passed )
                            {
                                $datediff = TIMENOW - $Peer["last_updated"];
                                $days = floor($datediff / (60 * 60 * 24));
                                $days = get_phrase("x_days_ago", $days);
                                $Data .= "\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td class=\"tableContentTD\">" . aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Peer["memberid"] => array( "target" => "_blank", "phrase" => getmembername($Peer["membername"], $Peer["groupstyle"]) ) )) . "</td>\r\n\t\t\t\t\t\t<td class=\"tableContentTD\">" . aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Peer["tid"], strip_tags($Peer["name"])) . "</td>\r\n\t\t\t\t\t\t<td class=\"tableContentTD\">" . convert_time($Peer["last_updated"]) . " (<span style=\"font-size: 10px; color: #ccc;\">" . $days . "</span>)</td>\r\n\t\t\t\t\t\t<td class=\"tableContentTD\">" . number_format($Peer["announced"]) . "</td>\r\n\t\t\t\t\t\t<td class=\"tableContentTD\">" . $torrentOptions["hitRunRatio"] . "</td>\r\n\t\t\t\t\t\t<td class=\"tableContentTD\">" . member_ratio($Peer["total_uploaded"], $Peer["size"]) . "</td>\r\n\t\t\t\t\t</tr>";
                            }

                        }

                    }
                    $Data .= "\r\n\t\t\t</table>\r\n\t\t</div>\r\n\t\t<br />" . get_phrase("check_hitrun_options");
                }

                exit( $Data );
            }

            exit();
        }

        if( $TSUE["action"] == "tsue_news" && IS_AJAX )
        {
            $tsueNewsURL = "oops";
            $HTML = fetchurl($tsueNewsURL);
            exit( $HTML );
        }

        if( $TSUE["action"] == "checkAddonUpdates" && IS_AJAX )
        {
            aaaaad("TSUE Store");
            if( !function_exists("simplexml_load_file") )
            {
                exit( "TSUE Add-on system requires the PHP function <code>simplexml_load_file()</code>.<br />Your server has this disabled. Please ask your hosting company to enable <code>simplexml_load_file</code>." );
            }

            $fetchAddonsURL = "oops";
            $Addons = fetchurl($fetchAddonsURL);
            if( !$Addons )
            {
                exit( get_phrase("failed_to_open_x", "addons") );
            }

            $installedAddons = $TSUE["TSUE_Database"]->query("SELECT filename, title, version_string, version_id FROM tsue_admincp_addons WHERE active = 1");
            if( $TSUE["TSUE_Database"]->num_rows($installedAddons) )
            {
                $installedAddonsCache = array(  );
                while( $A = $TSUE["TSUE_Database"]->fetch_assoc($installedAddons) )
                {
                    $installedAddonsCache["'" . $A["filename"] . "'"] = $A;
                }
                $tableContents = aaaaag(array( array( "width" => "67%", "text" => "Title" ), array( "width" => "15%", "text" => "Installed Version" ), array( "width" => "18%", "text" => "Newest Version" ) ), "tableContentTR", "tableContentTDHeader");
                foreach( $Addons->addon as $Addon )
                {
                    if( isset($installedAddonsCache["'" . $Addon->filename . "'"]) )
                    {
                        $workWidth = $installedAddonsCache["'" . $Addon->filename . "'"];
                        if( $workWidth["version_id"] < $Addon->version_id )
                        {
                            $Addon->version_string = "<span style=\"font-weight: bold; font-size: 14px;\">v" . $Addon->version_string . "</span>";
                        }
                        else
                        {
                            $Addon->version_string = "v" . $Addon->version_string;
                        }

                        $tableContents .= aaaaag(array( array( "width" => "67%", "text" => $Addon->title ), array( "width" => "15%", "text" => "v" . $workWidth["version_string"] ), array( "width" => "18%", "text" => $Addon->version_string ) ));
                    }

                }
                $HTML = createtable(get_phrase("check_updates"), $tableContents);
                exit( $HTML );
            }
            else
            {
                exit( "<div class=\"error\">" . get_phrase("there_is_no_any_addon_installed_yet") . "</div>" );
            }

        }
        else
        {
            if( $TSUE["action"] == "getTSUEAddons" && IS_AJAX )
            {
                aaaaad("TSUE Store");
                if( !function_exists("simplexml_load_file") )
                {
                    exit( "TSUE Add-on system requires the PHP function <code>simplexml_load_file()</code>.<br />Your server has this disabled. Please ask your hosting company to enable <code>simplexml_load_file</code>." );
                }

                $fetchAddonsURL = "oops";
                $Addons = fetchurl($fetchAddonsURL);

                if( !$Addons )
                {
                    exit( get_phrase("failed_to_open_x", "addons") );
                }

                $listAddons = "";
                foreach( $Addons->addon as $Addon )
                {
                    if( $Addon->discount != "0.00" )
                    {
                        $Addon->price = "<s>" . $Addon->price . "</s> <span style=\"font-size: 13px;\">\$" . $Addon->discount . "</span>";
                    }

                    $listAddons .= "<br />";
                }
                exit( $listAddons );
            }
            else
            {
                if( $TSUE["action"] == "reset_passkey" && IS_AJAX )
                {
                    checkdemomode();
                    aaaaad("All Members");
                    $memberid = intval(getvar("memberid"));
                    if( $memberid )
                    {
                        $passkey = generatepasskey();
                        $TSUE["TSUE_Database"]->update("tsue_members", array( "passkey" => $passkey ), "memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
                        $TSUE["TSUE_Database"]->update("tsue_member_profile", array( "torrent_pass" => substr($passkey, 0, 32) ), "memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
                        exit( $passkey );
                    }

                }

                if( $TSUE["action"] == "fixTorrentHash" && IS_AJAX )
                {
                    checkdemomode();
                    aaaaad("Torrents");
                    $tid = intval(getvar("tid"));
                    if( $tid )
                    {
                        $Torrent = $TSUE["TSUE_Database"]->query_result("SELECT t.name, a.filename FROM tsue_torrents t LEFT JOIN tsue_attachments a ON (a.content_type='torrent_files' AND a.content_id=t.tid) WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid));
                        if( $Torrent )
                        {
                            $T = new Torrent();
                            if( $Torrent["filename"] )
                            {
                                $TorrentFile = DATAPATH . "torrents/torrent_files/" . $Torrent["filename"];
                                if( is_file($TorrentFile) )
                                {
                                    $T->load(file_get_contents($TorrentFile));
                                    $info_hash = $T->getHash();
                                    $TSUE["TSUE_Database"]->update("tsue_torrents", array( "info_hash" => $info_hash ), "tid=" . $TSUE["TSUE_Database"]->escape($tid));
                                    _sendheaders(strip_tags($Torrent["name"]) . "~~~" . bin2hex($info_hash));
                                }
                                else
                                {
                                    _sendheaders(strip_tags($Torrent["name"]) . "~~~n/a");
                                }

                            }

                        }

                    }

                }

                if( $TSUE["action"] == "resetIMDB" && IS_AJAX )
                {
                    checkdemomode();
                    aaaaad("Torrents");
                    $tid = intval(getvar("tid"));
                    if( $tid )
                    {
                        $Torrent = $TSUE["TSUE_Database"]->query_result("SELECT name, options FROM tsue_torrents  WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid));
                        if( $Torrent )
                        {
                            $torrentName = strip_tags($Torrent["name"]);
                            $Options = unserialize($Torrent["options"]);
                            if( $Options["imdb"] )
                            {
                                $IMDB = new IMDB($Options["imdb"]);
                                if( 2 < count($IMDB->movieInfo) )
                                {
                                    $BuildQuery = array( "tid" => $tid, "content" => serialize($IMDB->movieInfo) );
                                    $TSUE["TSUE_Database"]->replace("tsue_imdb", $BuildQuery);
                                    $IMDB->posterPath = DATAPATH . "torrents/imdb/";
                                    $IMDB->savePoster($IMDB->movieInfo["poster"]);
                                    _sendheaders(strip_tags($Options["imdb"]) . "~~~" . $torrentName);
                                }

                            }
                            else
                            {
                                exit( "no_imdb~~~" . $torrentName );
                            }

                        }

                    }

                }

                if( $TSUE["action"] == "autoComplete" && IS_AJAX )
                {
                    $keyword = getvar("keyword");
                    if( !$keyword )
                    {
                        exit();
                    }

                    switch( $TSUE["do"] )
                    {
                        case "searchMember":
                            $memberList = array(  );
                            $Members = $TSUE["TSUE_Database"]->query("SELECT membername FROM tsue_members WHERE membername LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY membername ASC");
                            if( !$TSUE["TSUE_Database"]->num_rows($Members) )
                            {
                                exit();
                            }

                            while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
                            {
                                $memberList[] = $Member["membername"];
                            }
                            _sendheaders(json_encode($memberList), "application/json");
                            break;
                        case "searchINAdminCP":
                            $Result = array(  );
                            $Templates = $TSUE["TSUE_Database"]->query("SELECT template.templateid, template.themeid, template.templatename, theme.themename FROM tsue_templates template INNER JOIN tsue_themes theme USING(themeid) WHERE template.templatename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' OR template.template LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY template.themeid ASC, template.templatename ASC");
                            if( $TSUE["TSUE_Database"]->num_rows($Templates) )
                            {
                                $Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Templates</div>" );
                                while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($Templates) )
                                {
                                    $Result[] = array( "url" => TSUE_ADMINCP_URL . "?action=Appearance&do=Themes&themeid=" . $Template["themeid"] . "&type=manageTemplates&editTemplate=" . $Template["templateid"], "label" => "<b>Theme:</b> " . $Template["themename"] . " | <b>Template:</b> " . $Template["templatename"] );
                                }
                            }

                            $Styles = $TSUE["TSUE_Database"]->query("SELECT style.styleid, style.stylename, style.themeid, theme.themename FROM tsue_styles style INNER JOIN tsue_themes theme USING(themeid) WHERE style.stylename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' OR style.css LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY style.themeid ASC, style.stylename ASC");
                            if( $TSUE["TSUE_Database"]->num_rows($Styles) )
                            {
                                $Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Styles</div>" );
                                while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($Styles) )
                                {
                                    $Result[] = array( "url" => TSUE_ADMINCP_URL . "?action=Appearance&do=Themes&themeid=" . $Style["themeid"] . "&type=manageStyles&editStyle=" . $Style["styleid"], "label" => "<b>Theme:</b> " . $Style["themename"] . " | <b>Style:</b> " . $Style["stylename"] );
                                }
                            }

                            $Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, g.groupstyle FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE m.membername LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keyword) . "%' ORDER BY m.membername ASC");
                            if( $TSUE["TSUE_Database"]->num_rows($Members) )
                            {
                                $Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Members</div>" );
                                while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
                                {
                                    $Result[] = array( "url" => TSUE_ADMINCP_URL . "?action=Member Manager&do=All Members&edit=" . $Member["memberid"], "label" => getmembername($Member["membername"], $Member["groupstyle"]) );
                                }
                            }

                            $LangFound = array(  );
                            $Languages = $TSUE["TSUE_Database"]->query("SELECT languageid, title, phrase_global FROM tsue_languages");
                            while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) )
                            {
                                $phraseGlobal = unserialize($Language["phrase_global"]);
                                foreach( $phraseGlobal as $Name => $Phrase )
                                {
                                    if( strpos(strtolower($Phrase), strtolower($keyword)) !== false || strpos(strtolower($Name), strtolower($keyword)) !== false )
                                    {
                                        $LangFound[] = array( "url" => TSUE_ADMINCP_URL . "?action=Appearance&do=Languages&type=editPhrase&languageid=" . $Language["languageid"] . "&text=" . $Name, "label" => "<b>" . $Language["title"] . ":</b> " . $Name );
                                    }

                                }
                            }
                            if( $LangFound )
                            {
                                $Result[] = array( "label" => "<div id=\"suggestHeader\">Found in Languages</div>" );
                                $Result = array_merge($Result, $LangFound);
                                unset($LangFound);
                            }

                            if( !$Result )
                            {
                                $Result = array( get_phrase("message_nothing_found") );
                            }

                            _sendheaders(json_encode($Result), "application/json");
                    }
                }

                if( $TSUE["action"] == "torrentCategoriesInbutboxes" && IS_AJAX )
                {
                    _sendheaders(torrentcategoriesinbutboxes(getvar("name")));
                }

                if( $TSUE["action"] == "searchInTorrentsShowCatz" && IS_AJAX )
                {
                    _sendheaders(torrentcategoriesinbutboxes("categories[]", "checkbox", tsue_explode(",", getvar("categories"))));
                }

                if( $TSUE["action"] == "rebuildForumCounters" && IS_AJAX )
                {
                    aaaaad("Forum Manager");
                    $Forums = $TSUE["TSUE_Database"]->query("SELECT forumid, parentid FROM tsue_forums");
                    if( !$TSUE["TSUE_Database"]->num_rows($Forums) )
                    {
                        exit( errormessage(get_phrase("forums_no_registered_forum_yet")) );
                    }

                    while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) )
                    {
                        $Threads = $TSUE["TSUE_Database"]->query("SELECT threadid FROM tsue_forums_threads WHERE forumid = " . $TSUE["TSUE_Database"]->escape($Forum["forumid"]));
                        $threadCount = $TSUE["TSUE_Database"]->num_rows($Threads);
                        $replyCount = -1;
                        if( $threadCount )
                        {
                            while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) )
                            {
                                $Post = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(postid) AS replycount FROM tsue_forums_posts WHERE threadid=" . $TSUE["TSUE_Database"]->escape($Thread["threadid"]));
                                if( $Post["replycount"] )
                                {
                                    $replyCount += $Post["replycount"];
                                }

                            }
                        }

                        if( $replyCount == -1 )
                        {
                            $replyCount = 0;
                        }

                        $last_post_info = "";
                        $last_post_threadid = 0;
                        $lastPostData = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.forumid = " . $TSUE["TSUE_Database"]->escape($Forum["forumid"]) . " ORDER BY p.post_date DESC LIMIT 1");
                        if( $lastPostData )
                        {
                            $last_post_info = serialize(array( "lastpostdate" => $lastPostData["post_date"], "lastposter" => $lastPostData["membername"], "lastposterid" => $lastPostData["memberid"] ));
                            $last_post_threadid = $lastPostData["threadid"];
                        }

                        $buildQuery = array( "replycount" => $replyCount, "threadcount" => $threadCount, "last_post_info" => $last_post_info, "last_post_threadid" => $last_post_threadid );
                        $TSUE["TSUE_Database"]->update("tsue_forums", $buildQuery, "forumid = " . $TSUE["TSUE_Database"]->escape($Forum["forumid"]));
                    }
                    $Threads = $TSUE["TSUE_Database"]->query("SELECT threadid FROM tsue_forums_threads");
                    if( $TSUE["TSUE_Database"]->num_rows($Threads) )
                    {
                        while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) )
                        {
                            $last_post_info = "";
                            $last_post_threadid = 0;
                            $last_post_date = 0;
                            $findLastPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"]) . " ORDER BY p.post_date DESC LIMIT 1");
                            if( $findLastPosts )
                            {
                                $last_post_info = serialize(array( "lastpostdate" => $findLastPosts["post_date"], "lastposter" => $findLastPosts["membername"], "lastposterid" => $findLastPosts["memberid"] ));
                                $last_post_threadid = $findLastPosts["threadid"];
                                $last_post_date = $findLastPosts["post_date"];
                            }

                            $reply_count = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as replyCount FROM tsue_forums_posts WHERE threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"]));
                            $reply_count = $reply_count["replyCount"] - 1;
                            $buildQuery = array( "reply_count" => $reply_count, "last_post_info" => $last_post_info, "last_post_date" => $last_post_date );
                            $TSUE["TSUE_Database"]->update("tsue_forums_threads", $buildQuery, "threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"]));
                        }
                    }

                    exit( successmessage("(" . number_format($TSUE["TSUE_Database"]->querycount) . ") " . get_phrase("forum_counters_has_been_updated")) );
                }

                if( $TSUE["action"] == "about" && IS_AJAX )
                {
                    exit( "\r\n\t<hr />\r\n\t<b>RevolutioN WorlD " . V . "</b><br />\r\n\r\n\tCopyright &copy; " . date("Y") . "<hr />" );
                }

                if( $TSUE["action"] == "checkUpdates" && IS_AJAX )
                {
                    $URL = "oops";
                    $recentVersion = fetchurl($URL);
                    $currentVersion = V;
                    if( $recentVersion < $currentVersion )
                    {
                        $Result = "<div class=\"error\">oops</div>";
                    }
                    else
                    {
                        if( $currentVersion < $recentVersion )
                        {
                            $Result = "<div class=\"error\">A new version, " . $recentVersion . " is available to download!</div\">";
                        }
                        else
                        {
                            $Result = "<div class=\"success\">You are using version " . $currentVersion . "<br />Congratulations, this is the very latest version!</div>";
                        }

                    }

                    exit( $Result );
                }

                if( $TSUE["action"] == "Dashboard" )
                {
                    addbreadcrumb(array( get_phrase("menu_dashboard") => TSUE_ADMINCP_URL . "?action=Dashboard" ));
                    if( !$TSUE["do"] )
                    {
                        $outputContent .= optionbox("Options", get_phrase("dashboard_options"), get_phrase("dashboard_options_alt"));
                        $outputContent .= optionbox("Pages", get_phrase("dashboard_pages"), get_phrase("dashboard_pages_alt"));
                        $outputContent .= optionbox("Polls", get_phrase("dashboard_polls"), get_phrase("dashboard_polls_alt"));
                        $outputContent .= optionbox("News", get_phrase("dashboard_news"), get_phrase("dashboard_news_alt"));
                        $outputContent .= optionbox("FAQ", get_phrase("dashboard_faq"), get_phrase("dashboard_faq_alt"));
                        $outputContent .= optionbox("Torrent Categories", get_phrase("dashboard_torrent_categories"), get_phrase("dashboard_torrent_categories_alt"));
                        $outputContent .= optionbox("Market", get_phrase("dashboard_market"), get_phrase("dashboard_market_alt"));
                        $outputContent .= optionbox("API Manager", get_phrase("dashboard_api_manager"), get_phrase("dashboard_api_manager_alt"));
                        $outputContent .= optionbox("Cron Entries", get_phrase("dashboard_cron_entries"), get_phrase("dashboard_cron_entries_alt"));
                        $outputContent .= optionbox("Rebuild Caches", get_phrase("dashboard_cache_rebuild_caches"), get_phrase("dashboard_cache_rebuild_caches_alt"));
                        $outputContent .= optionbox("Logs", get_phrase("dashboard_logs"), get_phrase("dashboard_logs_alt"));
                        $outputContent .= optionbox("Server", get_phrase("dashboard_server"), get_phrase("dashboard_server_alt"));
                        $outputContent .= optionbox("Notes", get_phrase("dashboard_notes"), get_phrase("dashboard_notes_alt"));
                        $outputContent .= optionbox("Statistics", get_phrase("dashboard_statistics"), get_phrase("dashboard_statistics_alt"));
                        $outputContent .= optionbox("Read PM", get_phrase("dashboard_readpm"), get_phrase("dashboard_readpm_alt"));
                        $outputContent .= optionbox("Database", get_phrase("database"), get_phrase("database_alt"));
                        $outputContent .= optionbox("Announcements", get_phrase("dashboard_announcements"), get_phrase("dashboard_announcements_alt"));
                        $outputContent .= optionbox("Torrents", get_phrase("navigation_torrents"), get_phrase("dashboard_torrents_alt"));
                        $outputContent .= optionbox("Add-ons", get_phrase("addons"), get_phrase("addons_alt"));
                        $outputContent .= optionbox("TSUE Store", get_phrase("tsue_store"), get_phrase("tsue_store_alt"));
                        $outputContent .= optionbox("Recent Comments", get_phrase("recent_comments"), get_phrase("recent_comments_alt"));
                        $outputContent .= optionbox("Torrent Genres", get_phrase("torrent_genres"), get_phrase("torrent_genres_alt"));
                        $outputContent .= optionbox("Advertisements", get_phrase("dashboard_ads"), get_phrase("dashboard_ads_alt"));
                        $outputContent .= optionbox("Shoutbox Channels", get_phrase("shoutbox_channels"), get_phrase("shoutbox_channels_alt"));
                    }
                    else
                    {
                        aaaaad($TSUE["do"]);
                        switch( $TSUE["do"] )
                        {
                            case "Options":
                                addbreadcrumb(array( get_phrase("dashboard_options") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handleoptions();
                                break;
                            case "Pages":
                                addbreadcrumb(array( get_phrase("dashboard_pages") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlepages();
                                break;
                            case "Polls":
                                addbreadcrumb(array( get_phrase("dashboard_polls") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlepolls();
                                break;
                            case "News":
                                addbreadcrumb(array( get_phrase("dashboard_news") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlenews();
                                break;
                            case "FAQ":
                                addbreadcrumb(array( get_phrase("dashboard_faq") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlefaq();
                                break;
                            case "Torrent Categories":
                                addbreadcrumb(array( get_phrase("dashboard_torrent_categories_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handletorrentcategories();
                                break;
                            case "Market":
                                addbreadcrumb(array( get_phrase("dashboard_market") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlemarket();
                                break;
                            case "API Manager":
                                addbreadcrumb(array( get_phrase("dashboard_api_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handleapimanager();
                                break;
                            case "Cron Entries":
                                addbreadcrumb(array( get_phrase("dashboard_cron_entries") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlecronentries();
                                break;
                            case "Rebuild Caches":
                                addbreadcrumb(array( get_phrase("dashboard_cache_rebuild_caches") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlerebuildcaches(true);
                                break;
                            case "Logs":
                                addbreadcrumb(array( get_phrase("dashboard_logs") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlelogs();
                                break;
                            case "Server":
                                addbreadcrumb(array( get_phrase("dashboard_server") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handleserver();
                                break;
                            case "Notes":
                                addbreadcrumb(array( get_phrase("dashboard_notes") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlenotes();
                                break;
                            case "Statistics":
                                addbreadcrumb(array( get_phrase("dashboard_statistics") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlestatistics();
                                break;
                            case "Read PM":
                                addbreadcrumb(array( get_phrase("dashboard_readpm_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlereadpm();
                                break;
                            case "Database":
                                addbreadcrumb(array( get_phrase("database_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handledatabase();
                                break;
                            case "Announcements":
                                addbreadcrumb(array( get_phrase("dashboard_announcements") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handleannouncements();
                                break;
                            case "Torrents":
                                addbreadcrumb(array( get_phrase("dashboard_torrents_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handletorrents();
                                break;
                            case "Add-ons":
                                addbreadcrumb(array( get_phrase("addons") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handleaddons();
                                break;
                            case "TSUE Store":
                                header("Location: " . TSUE_ADMINCP_URL . "?action=Dashboard&do=Add-ons&TSUEAddonStore=1");
                                exit();
                            case "Recent Comments":
                                addbreadcrumb(array( get_phrase("recent_comments") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlerecentcomments();
                                break;
                            case "Torrent Genres":
                                addbreadcrumb(array( get_phrase("torrent_genres") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handletorrentgenres();
                                break;
                            case "Advertisements":
                                addbreadcrumb(array( get_phrase("dashboard_ads") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handleadvertisements();
                                break;
                            case "Shoutbox Channels":
                                addbreadcrumb(array( get_phrase("shoutbox_channels") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handleshoutboxchannels();
                        }
                    }

                }

                if( $TSUE["action"] == "Plugin Manager" )
                {
                    aaaaad($TSUE["action"]);
                    addbreadcrumb(array( get_phrase("menu_plugin_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] ));
                    $outputContent .= aaaaah();
                }

                if( $TSUE["action"] == "Forum Manager" )
                {
                    aaaaad($TSUE["action"]);
                    addbreadcrumb(array( get_phrase("menu_forum_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] ));
                    if( !$TSUE["do"] )
                    {
                        $outputContent .= optionbox("Manage Forums", get_phrase("manage_forums"), get_phrase("manage_forums_alt"), $TSUE["action"]);
                        $outputContent .= optionbox("Thread Prefixes", get_phrase("thread_prefixes"), get_phrase("thread_prefixes"), $TSUE["action"]);
                        $outputContent .= optionbox("Quick Forum Permissions", get_phrase("permissions"), get_phrase("quick_forum_permissions"), $TSUE["action"]);
                        $outputContent .= optionbox("Rebuild Counters", get_phrase("rebuild_counters"), get_phrase("rebuild_counters_alt"), $TSUE["action"]);
                    }
                    else
                    {
                        switch( $TSUE["do"] )
                        {
                            case "Manage Forums":
                                addbreadcrumb(array( get_phrase("manage_forums_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handleforums();
                                break;
                            case "Quick Forum Permissions":
                                addbreadcrumb(array( get_phrase("quick_forum_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= aaaaai();
                                break;
                            case "Thread Prefixes":
                                addbreadcrumb(array( get_phrase("thread_prefixes") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= threadprefixes();
                                break;
                            case "Rebuild Counters":
                                addbreadcrumb(array( get_phrase("rebuild_counters") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= rebuildforumcounters();
                        }
                    }

                }

                if( $TSUE["action"] == "Appearance" )
                {
                    aaaaad($TSUE["action"]);
                    addbreadcrumb(array( get_phrase("dashboard_options_appearance") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] ));
                    if( !$TSUE["do"] )
                    {
                        $outputContent .= optionbox("Themes", get_phrase("theme_manager_themes"), get_phrase("theme_manager_themes_alt"), $TSUE["action"]);
                        $outputContent .= optionbox("Languages", get_phrase("theme_manager_languages"), get_phrase("theme_manager_languages_alt"), $TSUE["action"]);
                        $outputContent .= optionbox("Upload Torrent", get_phrase("navigation_upload_torrent"), get_phrase("add_extra_fields"), $TSUE["action"]);
                        $outputContent .= optionbox("Auto Description", get_phrase("auto_description"), get_phrase("auto_description_alt"), $TSUE["action"]);
                    }
                    else
                    {
                        switch( $TSUE["do"] )
                        {
                            case "Themes":
                                addbreadcrumb(array( get_phrase("theme_manager_themes") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlethemes();
                                break;
                            case "Languages":
                                addbreadcrumb(array( get_phrase("theme_manager_languages") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlelanguages();
                                break;
                            case "Upload Torrent":
                                addbreadcrumb(array( get_phrase("navigation_upload_torrent") . " | " . get_phrase("add_extra_fields") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handleuploadtorrent();
                                break;
                            case "Auto Description":
                                addbreadcrumb(array( get_phrase("auto_description") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handleautodescription();
                        }
                    }

                }

                if( $TSUE["action"] == "Member Manager" )
                {
                    addbreadcrumb(array( get_phrase("menu_member_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] ));
                    if( !$TSUE["do"] )
                    {
                        $outputContent .= optionbox("All Members", get_phrase("member_manager_list_all_members"), get_phrase("member_manager_list_all_members_alt"));
                        $outputContent .= optionbox("Awaiting Approval", get_phrase("member_manager_awaiting_approval"), get_phrase("member_manager_awaiting_approval_alt"));
                        $outputContent .= optionbox("Banned Members", get_phrase("member_manager_banned_members"), get_phrase("member_manager_banned_members_alt"));
                        $outputContent .= optionbox("Warned Members", get_phrase("member_manager_warned_members"), get_phrase("member_manager_warned_members_alt"));
                        $outputContent .= optionbox("Membergroups", get_phrase("member_manager_membergroups"), get_phrase("member_manager_membergroups_alt"));
                        $outputContent .= optionbox("Email Members", get_phrase("member_manager_email_members"), get_phrase("member_manager_email_members_alt"));
                        $outputContent .= optionbox("Search Members", get_phrase("member_manager_search_members"), get_phrase("member_manager_search_members_alt"));
                        $outputContent .= optionbox("Peers", get_phrase("member_manager_peers"), get_phrase("member_manager_peers_alt"));
                        $outputContent .= optionbox("Account Upgrades", get_phrase("upgrade_account_upgrades"), get_phrase("upgrade_account_upgrades_alt"));
                        $outputContent .= optionbox("Muted Members", get_phrase("member_manager_muted_members"), get_phrase("member_manager_muted_members_alt"));
                        $outputContent .= optionbox("PM Members", get_phrase("member_manager_pm_members"), get_phrase("member_manager_pm_members_alt"));
                        $outputContent .= optionbox("Promotions", get_phrase("promotions"), get_phrase("promotions_alt"));
                        $outputContent .= optionbox("Duplicate Ips", get_phrase("duplicate_ips"), get_phrase("duplicate_ips_alt"));
                        $outputContent .= optionbox("Hit and Runners", get_phrase("hit_and_runners"), get_phrase("stats_hitrun_warns"));
                        $outputContent .= optionbox("Test Permissions", get_phrase("test_permissions"), get_phrase("test_permissions_alt"));
                        $outputContent .= optionbox("Administrators", get_phrase("administrators"), get_phrase("administrators_alt"));
                        $outputContent .= optionbox("Gift", get_phrase("gift"), get_phrase("gift_alt"));
                        $outputContent .= optionbox("Mass Invite", get_phrase("mass_invite"), get_phrase("mass_invite_alt"));
                        $outputContent .= optionbox("Awards", get_phrase("awards"), get_phrase("awards_alt"));
                        $outputContent .= optionbox("Auto Warned Members", get_phrase("member_manager_auto_warned_members"), get_phrase("member_manager_auto_warned_members_alt"));
                        $outputContent .= optionbox("Uploader Activity", get_phrase("uploader_activity"), get_phrase("uploader_activity_alt"));
                        $outputContent .= optionbox("First Line Support", get_phrase("first_line_support"), get_phrase("first_line_support_alt"));
                        $outputContent .= optionbox("Spam Cleaner", get_phrase("spam_cleaner"), get_phrase("spam_cleaner_alt"));
                    }
                    else
                    {
                        aaaaad($TSUE["do"]);
                        switch( $TSUE["do"] )
                        {
                            case "All Members":
                                addbreadcrumb(array( get_phrase("member_manager_list_all_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= aaaaaj();
                                break;
                            case "Awaiting Approval":
                                addbreadcrumb(array( get_phrase("member_manager_awaiting_approval") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= manageawaitingapproval();
                                break;
                            case "Banned Members":
                                addbreadcrumb(array( get_phrase("member_manager_banned_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= managebannedmembers();
                                break;
                            case "Warned Members":
                                addbreadcrumb(array( get_phrase("member_manager_warned_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= managewarnedmembers();
                                break;
                            case "Membergroups":
                                addbreadcrumb(array( get_phrase("member_manager_membergroups") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= managemembergroups();
                                break;
                            case "Email Members":
                                addbreadcrumb(array( get_phrase("member_manager_email_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= manageemailmembers();
                                break;
                            case "Search Members":
                                addbreadcrumb(array( get_phrase("member_manager_search_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= managesearchmembers();
                                break;
                            case "Peers":
                                addbreadcrumb(array( get_phrase("member_manager_peers") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= managepeers();
                                break;
                            case "Account Upgrades":
                                addbreadcrumb(array( get_phrase("upgrade_account_upgrades_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= manageaccountupgrades();
                                break;
                            case "Muted Members":
                                addbreadcrumb(array( get_phrase("member_manager_muted_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= managemutedmembers();
                                break;
                            case "PM Members":
                                addbreadcrumb(array( get_phrase("member_manager_pm_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= managepmmembers();
                                break;
                            case "Promotions":
                                addbreadcrumb(array( get_phrase("promotions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= managepromotions();
                                break;
                            case "Duplicate Ips":
                                addbreadcrumb(array( get_phrase("duplicate_ips") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= manageduplicateips();
                                break;
                            case "Hit and Runners":
                                addbreadcrumb(array( get_phrase("hit_and_runners") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= aaaaak();
                                break;
                            case "Test Permissions":
                                addbreadcrumb(array( get_phrase("test_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= managetestpermissions();
                                break;
                            case "Administrators":
                                addbreadcrumb(array( get_phrase("administrators_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= manageadministrators();
                                break;
                            case "Gift":
                                addbreadcrumb(array( get_phrase("gift") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= managegift();
                                break;
                            case "Mass Invite":
                                addbreadcrumb(array( get_phrase("mass_invite") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= managemassinvite();
                                break;
                            case "Awards":
                                addbreadcrumb(array( get_phrase("awards") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= manageawards();
                                break;
                            case "Auto Warned Members":
                                addbreadcrumb(array( get_phrase("member_manager_auto_warned_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= manageautowarnedmembers();
                                break;
                            case "Uploader Activity":
                                addbreadcrumb(array( get_phrase("uploader_activity") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= manageuploaderactivity();
                                break;
                            case "First Line Support":
                                addbreadcrumb(array( get_phrase("first_line_support") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= managefirstlinesupport();
                                break;
                            case "Spam Cleaner":
                                addbreadcrumb(array( get_phrase("spam_cleaner") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= managespamcleaner();
                        }
                    }

                }

                if( $TSUE["action"] == "File Manager" )
                {
                    addbreadcrumb(array( get_phrase("menu_file_manager") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] ));
                    if( !$TSUE["do"] )
                    {
                        $outputContent .= optionbox("Prune", get_phrase("file_manager_prune_cache"), get_phrase("file_manager_prune_cache_alt"));
                        $outputContent .= optionbox("Smilies", get_phrase("file_manager_smilies"), get_phrase("file_manager_smilies_alt"));
                        $outputContent .= optionbox("Country Flags", get_phrase("file_manager_country_flags"), get_phrase("file_manager_country_flags_alt"));
                        $outputContent .= optionbox("Attachment Browser", get_phrase("attachments"), get_phrase("attachment_browser"));
                        $outputContent .= optionbox("Downloads", get_phrase("dm_title"), get_phrase("dm_title_alt"));
                        $outputContent .= optionbox("Permissions", get_phrase("permissions"), get_phrase("permissions_alt"));
                        $outputContent .= optionbox("Cleanup", get_phrase("cleanup"), get_phrase("cleanup_alt"));
                    }
                    else
                    {
                        aaaaad($TSUE["do"]);
                        switch( $TSUE["do"] )
                        {
                            case "Prune":
                                addbreadcrumb(array( get_phrase("file_manager_prune_cache") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handleprune();
                                break;
                            case "Smilies":
                                addbreadcrumb(array( get_phrase("file_manager_smilies") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlesmilies();
                                break;
                            case "Country Flags":
                                addbreadcrumb(array( get_phrase("file_manager_country_flags") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlecountryflags();
                                break;
                            case "Attachment Browser":
                                addbreadcrumb(array( get_phrase("attachment_browser") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handleattachments();
                                break;
                            case "Downloads":
                                addbreadcrumb(array( get_phrase("dm_title") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handledownloads();
                                break;
                            case "Permissions":
                                addbreadcrumb(array( get_phrase("permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlepermissions();
                                break;
                            case "Cleanup":
                                addbreadcrumb(array( get_phrase("cleanup") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] ));
                                $outputContent .= handlecleanup();
                        }
                    }

                }

                printoutput($outputContent);
            }

        }

    }

}


class TSUE_Settings
{
    public $settings = array(  );

    public function TSUE_Settings()
    {
        global $TSUE;
        $fetchSettings = $TSUE["TSUE_Database"]->query("SELECT settingname, settingvalues FROM tsue_settings ORDER BY settingname");
        if( $TSUE["TSUE_Database"]->num_rows($fetchSettings) )
        {
            while( $Setting = $TSUE["TSUE_Database"]->fetch_assoc($fetchSettings) )
            {
                $this->settings[$Setting["settingname"]] = unserialize($Setting["settingvalues"]);
            }
        }

    }

}


class TSUE_Database
{
    public $querycount = 0;
    public $query = NULL;
    public $query_cache = array(  );
    public $shutdown_queries = array(  );
    public $error = NULL;
    public $connection = NULL;
    public $locked = false;

    public function TSUE_Database()
    {
        if( !is_file(LIBRARYPATH . "config/database_config.php") )
        {
            exit( "<h1>Fatal Error: The database configuration file does not exists.</h1>" );
        }

        require(LIBRARYPATH . "config/database_config.php");
        if( !($this->connection = mysqli_init()) )
        {
            $this->error = "mysqli_init failed!";
            $this->halt();
        }

        if( !defined("MYSQL_HOST") || !defined("MYSQL_USER") || !defined("MYSQL_PASS") || !defined("MYSQL_DB") || !defined("MYSQL_PORT") || !defined("MYSQL_SOCKET") )
        {
            exit( "<h1>Fatal Error: Invalid variables in the database configuration file.</h1>" );
        }

        if( !mysqli_real_connect($this->connection, MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DB, MYSQL_PORT, MYSQL_SOCKET) )
        {
            $this->error = "MySQLi connection error!";
            $this->halt();
        }

        if( MYSQL_CHARSET != "" )
        {
            if( function_exists("mysqli_set_charset") )
            {
                mysqli_set_charset($this->connection, MYSQL_CHARSET);
                return NULL;
            }

            $this->execute_query("SET NAMES " . MYSQL_CHARSET);
        }

    }

    public function execute_query($query, $buffered = true)
    {
        $this->querycount++;
        $this->query = $query;
        $this->query_cache[] = $query;
        if( $queryresult = mysqli_query($this->connection, $this->query, ($buffered ? MYSQLI_STORE_RESULT : MYSQLI_USE_RESULT)) )
        {
            return $queryresult;
        }

        $this->error = mysqli_error($this->connection);
        $this->halt();
    }

    public function query($query, $buffered = true)
    {
        return $this->execute_query($query, $buffered);
    }

    public function replace($table, $buildQuery, $isShutDownQuery = false)
    {
        checkdemomode();
        $Query = array(  );
        foreach( $buildQuery as $field => $value )
        {
            $Query[] = "`" . $field . "` = " . $this->escape($value);
        }
        $SET = implode(",", $Query);
        if( $isShutDownQuery )
        {
            return $this->shutdown_query("REPLACE INTO `" . $table . "` SET " . $SET);
        }

        return $this->query("REPLACE INTO `" . $table . "` SET " . $SET);
    }

    public function insert($table, $buildQuery, $isShutDownQuery = false, $EXTRA = "", $IGNORE = "")
    {
        checkdemomode();
        $Query = array(  );
        foreach( $buildQuery as $field => $value )
        {
            $Query[] = "`" . $field . "` = " . $this->escape($value);
        }
        $SET = implode(",", $Query);
        if( $isShutDownQuery )
        {
            return $this->shutdown_query("INSERT" . (($IGNORE ? " IGNORE" : "")) . " INTO `" . $table . "` SET " . $SET . $EXTRA);
        }

        return $this->query("INSERT" . (($IGNORE ? " IGNORE" : "")) . " INTO `" . $table . "` SET " . $SET . $EXTRA);
    }

    public function update($table, $buildQuery, $where = "", $isShutDownQuery = false)
    {
        checkdemomode();
        $Query = array(  );
        foreach( $buildQuery as $field => $value )
        {
            if( is_array($value) )
            {
                if( $value["escape"] == 0 )
                {
                    $Query[] = "`" . $field . "` = " . $value["value"];
                }
                else
                {
                    $Query[] = "`" . $field . "` = " . $this->escape($value["value"]);
                }

            }
            else
            {
                $Query[] = "`" . $field . "` = " . $this->escape($value);
            }

        }
        $SET = implode(",", $Query);
        if( $isShutDownQuery )
        {
            return $this->shutdown_query("UPDATE `" . $table . "` SET " . $SET . (($where ? " WHERE " . $where : "")));
        }

        return $this->query("UPDATE `" . $table . "` SET " . $SET . (($where ? " WHERE " . $where : "")));
    }

    public function delete($table, $WHERE = "")
    {
        checkdemomode();
        $this->execute_query("DELETE FROM " . $table . (($WHERE ? " WHERE " . $WHERE : "")));
        return $this->affected_rows();
    }

    public function truncate($table)
    {
        checkdemomode();
        return $this->execute_query("TRUNCATE TABLE `" . $table . "`");
    }

    public function query_result($query, $buffered = true)
    {
        $returnarray = false;
        $queryresult = $this->execute_query($query, $buffered);
        if( $this->num_rows($queryresult) )
        {
            $returnarray = $this->fetch_assoc($queryresult);
            $this->free($queryresult);
        }

        return $returnarray;
    }

    public function row_count($query, $buffered = true)
    {
        return $this->num_rows($this->execute_query($query, $buffered));
    }

    public function exec_shutdown_queries()
    {
        if( $this->shutdown_queries && count($this->shutdown_queries) )
        {
            foreach( $this->shutdown_queries as $query )
            {
                $this->execute_query($query);
            }
        }

    }

    public function shutdown_query($query)
    {
        $this->shutdown_queries[] = $query;
    }

    public function lock_tables($tablelist = "")
    {
        if( !empty($tablelist) && is_array($tablelist) )
        {
            $sql = "";
            foreach( $tablelist as $name => $type )
            {
                $sql .= ((!empty($sql) ? ", " : "")) . $name . " " . $type;
            }
            $this->query("LOCK TABLES " . $sql);
            $this->locked = true;
        }

    }

    public function unlock_tables()
    {
        if( $this->locked )
        {
            $this->query("UNLOCK TABLES");
            $this->locked = false;
        }

    }

    public function affected_rows()
    {
        return mysqli_affected_rows($this->connection);
    }

    public function insert_id()
    {
        return mysqli_insert_id($this->connection);
    }

    public function fetch_assoc($query)
    {
        return mysqli_fetch_array($query, MYSQLI_ASSOC);
    }

    public function fetch_row($query)
    {
        return mysqli_fetch_row($query);
    }

    public function fetch_fields($query)
    {
        return mysqli_fetch_fields($query);
    }

    public function num_rows($query)
    {
        return mysqli_num_rows($query);
    }

    public function free($query)
    {
        mysqli_free_result($query);
    }

    public function escape($string)
    {
        return "'" . mysqli_real_escape_string($this->connection, $string) . "'";
    }

    public function escape_no_quotes($string)
    {
        return mysqli_real_escape_string($this->connection, $string);
    }

    public function field_exists($table, $column)
    {
        return $this->row_count("SHOW columns FROM  `" . $table . "` WHERE Field = " . $this->escape($column));
    }

    public function halt()
    {
        _sendheaders("<h1>Database Error!</h1> Please try again later or contact an <b>Administrator</b>.<br />(<b>" . mysqli_errno($this->connection) . "</b>)" . $this->error . "<hr>" . $this->query);
    }

    public function close()
    {
        mysqli_close($this->connection);
    }

}


class TSUESMTP
{
    public $smtpSocket = NULL;
    public $smtpReturn = 0;
    public $secure = "";
    public $toemail = "";
    public $toname = "";
    public $subject = "";
    public $message = "";
    public $headers = "";
    public $fromemail = "";
    public $delimiter = "\r\n";
    public $Settings = array(  );

    public function TSUESMTP()
    {
        global $TSUE;
        $this->secure = ($TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_secure"] == 1 ? "tls" : "none");
    }

    public function start($toemail, $toname = "", $subject, $message, $from, $fromname)
    {
        global $TSUE;
        $toemail = $this->fetch_first_line($toemail);
        if( empty($toemail) )
        {
            return false;
        }

        $delimiter =& $this->delimiter;
        $toemail = $this->dounhtmlspecialchars($toemail);
        $subject = $this->fetch_first_line($subject);
        $message = preg_replace("#(\r\n|\r|\n)#s", $delimiter, trim($message));
        if( (strtolower($TSUE["TSUE_Language"]["charset"]) == "iso-8859-1" || $TSUE["TSUE_Language"]["charset"] == "") && preg_match("/&[a-z0-9#]+;/i", $message) )
        {
            $message = utf8_encode($message);
            $subject = utf8_encode($subject);
            $encoding = "UTF-8";
            $unicode_decode = true;
        }
        else
        {
            $encoding = $TSUE["TSUE_Language"]["charset"];
            $unicode_decode = false;
        }

        $message = $this->dounhtmlspecialchars($message, $unicode_decode);
        $subject = $this->encode_email_header($this->dounhtmlspecialchars($subject, $unicode_decode), $encoding, false, false);
        $from = $this->fetch_first_line($from);
        $mailfromname = ($fromname ? $this->fetch_first_line($fromname) : $from);
        if( $unicode_decode == true )
        {
            $mailfromname = utf8_encode($mailfromname);
        }

        $mailfromname = $this->encode_email_header($this->dounhtmlspecialchars($mailfromname, $unicode_decode), $encoding);
        if( !isset($headers) )
        {
            $headers = "";
        }

        $headers .= "From: " . $mailfromname . " <" . $from . ">" . $delimiter;
        $headers .= "Return-Path: " . $from . $delimiter;
        $headers .= "Message-ID: <" . gmdate("YmdHis") . "." . substr(md5($message . microtime()), 0, 12) . "@" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . ">" . $delimiter;
        $headers .= "MIME-Version: 1.0" . $delimiter;
        $headers .= "Content-Type: text/html" . (($encoding ? "; charset=\"" . $encoding . "\"" : "")) . $delimiter;
        $headers .= "Content-Transfer-Encoding: 8bit" . $delimiter;
        $headers .= "X-Priority: 3" . $delimiter;
        $headers .= "X-Mailer: TSUE Mail via PHP" . $delimiter;
        $headers .= "X-Sender: TSUE PHP-Mailer" . $delimiter;
        $headers .= "Date: " . date("r") . $delimiter;
        $this->toemail = $toemail;
        $this->toname = $toname;
        $this->subject = $subject;
        $this->message = $message;
        $this->headers = $headers;
        $this->fromemail = $from;
    }

    public function sendMessage($msg, $expectedResult = false)
    {
        if( $msg !== false && !empty($msg) )
        {
            fputs($this->smtpSocket, $msg . "\r\n");
        }

        if( $expectedResult !== false )
        {
            $result = "";
            while( $line = @fgets($this->smtpSocket, 1024) )
            {
                $result .= $line;
                if( preg_match("#^(\\d{3}) #", $line, $matches) )
                {
                    break;
                }

            }
            $this->smtpReturn = intval((isset($matches["1"]) ? $matches["1"] : 0));
            return $this->smtpReturn == $expectedResult;
        }

        return true;
    }

    public function errorMessage($msg)
    {
        global $TSUE;
        if( $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_debug"] == "1" )
        {
            logadminaction($msg);
        }

        return false;
    }

    public function sendHello()
    {
        global $TSUE;
        if( !$this->smtpSocket )
        {
            return false;
        }

        if( !$this->sendMessage("EHLO " . $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"], 250) && !$this->sendMessage("HELO " . $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"], 250) )
        {
            return false;
        }

        return true;
    }

    public function send()
    {
        global $TSUE;
        if( !$this->toemail )
        {
            return false;
        }

        $this->smtpSocket = fsockopen((($this->secure == "ssl" ? "ssl://" : "tcp://")) . $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"], $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_port"], $errno, $errstr, 30);
        if( $this->smtpSocket )
        {
            if( !$this->sendMessage(false, 220) )
            {
                return $this->errorMessage($this->smtpReturn . " Unexpected response when connecting to SMTP server");
            }

            if( !$this->sendHello() )
            {
                return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during handshake");
            }

            if( $this->secure == "tls" && function_exists("stream_socket_enable_crypto") )
            {
                if( $this->sendMessage("STARTTLS", 220) && !stream_socket_enable_crypto($this->smtpSocket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT) )
                {
                    return $this->errorMessage("Unable to negotitate TLS handshake.");
                }

                $this->sendHello();
            }

            if( $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_user"] && $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_pass"] && $this->sendMessage("AUTH LOGIN", 334) && (!$this->sendMessage(base64_encode($TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_user"]), 334) || !$this->sendMessage(base64_encode($TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_pass"]), 235)) )
            {
                return $this->errorMessage($this->smtpReturn . " Authorization to the SMTP server failed");
            }

            if( !$this->sendMessage("MAIL FROM:<" . $this->fromemail . ">", 250) )
            {
                return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during FROM address transmission");
            }

            $addresses = tsue_explode(",", $this->toemail);
            foreach( $addresses as $address )
            {
                if( !$this->sendMessage("RCPT TO:<" . trim($address) . ">", 250) )
                {
                    return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during TO address transmission");
                }

            }
            if( $this->sendMessage("DATA", 354) )
            {
                $this->sendMessage("Date: " . gmdate("r"), false);
                $this->sendMessage("To: " . $this->toemail, false);
                $this->sendMessage(trim($this->headers), false);
                $this->sendMessage("Subject: " . $this->subject, false);
                $this->sendMessage("\r\n", false);
                $this->message = preg_replace("#^\\." . $this->delimiter . "#m", ".." . $this->delimiter, $this->message);
                $this->sendMessage($this->message, false);
                if( !$this->sendMessage(".", 250) )
                {
                    return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server when ending transmission");
                }

                $this->sendMessage("QUIT", 221);
                fclose($this->smtpSocket);
                return true;
            }

            return $this->errorMessage($this->smtpReturn . " Unexpected response from SMTP server during data transmission");
        }
        else
        {
            return $this->errorMessage("Unable to connect to SMTP server");
        }

    }

    public function fetch_first_line($text)
    {
        $text = preg_replace("/(\r\n|\r|\n)/s", "\r\n", trim($text));
        $pos = strpos($text, "\r\n");
        if( $pos !== false )
        {
            return substr($text, 0, $pos);
        }

        return $text;
    }

    public function dounhtmlspecialchars($text, $doUniCode = false)
    {
        if( $doUniCode )
        {
            $text = preg_replace("/&#([0-9]+);/esiU", "convert_int_to_utf8('\\1')", $text);
        }

        return str_replace(array( "&lt;", "&gt;", "&quot;", "&amp;" ), array( "<", ">", "\"", "&" ), $text);
    }

    public function encode_email_header($text, $charset = "utf-8", $force_encode = false, $quoted_string = true)
    {
        $text = trim($text);
        if( !$charset )
        {
            return $text;
        }

        if( $force_encode == true )
        {
            $qp_encode = true;
        }
        else
        {
            $qp_encode = false;
            for( $i = 0; $i < strlen($text); $i++ )
            {
                if( 127 < ord($text[$i]) )
                {
                    $qp_encode = true;
                    break;
                }

            }
        }

        if( $qp_encode == true )
        {
            $outtext = preg_replace("#([^a-zA-Z0-9!*+\\-/ ])#e", "'=' . strtoupper(dechex(ord(str_replace('\\\"', '\"', '\\1'))))", $text);
            $outtext = str_replace(" ", "_", $outtext);
            $outtext = "=?" . $charset . "?q?" . $outtext . "?=";
            return $outtext;
        }

        if( $quoted_string )
        {
            $text = str_replace(array( "\"", "(", ")" ), array( "\\\"", "\\(", "\\)" ), $text);
            return "\"" . $text . "\"";
        }

        return preg_replace("#(\\r\\n|\\n|\\r)+#", " ", $text);
    }

}


class TSUE_Parser
{
    public $valid_elements = "<p><span><img><a><strong><b><em><ul><li><ol><br>";
    private $buildCensorArray = NULL;

    public function TSUE_Parser()
    {
    }

    public function removeP($text = "")
    {
        if( substr($text, 0, 13) == "<p>&nbsp;</p>" )
        {
            $text = substr_replace($text, "", 0, 13);
        }

        if( substr($text, 0, 7) == "<p></p>" )
        {
            $text = substr_replace($text, "", 0, 7);
        }

        if( substr($text, 0, 8) == "<p> </p>" )
        {
            $text = substr_replace($text, "", 0, 8);
        }

        return $text;
    }

    public function clearTinymceP($text = "")
    {
        $text = $this->removeP($text);
        if( substr($text, 0, 3) == "<p>" && substr($text, -4) == "</p>" )
        {
            $text = substr_replace($text, "", 0, 3);
            $text = substr_replace($text, "", -4);
        }

        return $text;
    }

    public function parse($text = "")
    {
        global $TSUE;
        $text = trim($text);
        $text = $this->clearTinymceP($text);
        $text = $this->censorString($text);
        if( strlen($text) <= 2 )
        {
            return $text;
        }

        preg_match_all("#\\[(code|php)\\](.*?)\\[/\\1\\](\r\n?|\n?)#si", $text, $code_matches, PREG_SET_ORDER);
        $text = preg_replace("#\\[(code|php)\\](.*?)\\[/\\1\\](\r\n?|\n?)#si", "~~~TSUE_CODE~~~", $text);
        $text = strip_tags($text, $this->valid_elements);
        $text = $TSUE["TSUE_Security"]->xss_clean($text);
        $pattern = array( "#\\[quote=(.*?)\\](.*?)\\[\\/quote\\]#esi", "#\\[quote\\](.*?)\\[\\/quote\\]#esi", "#\\[youtube\\](.*?)\\[\\/youtube\\]#esi", "#\\[nfo\\](.*?)\\[\\/nfo\\]#esi", "#\\[spoiler\\](.*?)\\[\\/spoiler\\]#esi" );
        $replace = array( "\$this->parseQuotesWithName('\$1','\$2')", "\$this->parseQuotes('\$1')", "\$this->parseYoutube('\$1')", "\$this->parseNFO('\$1')", "\$this->parseSpoiler('\$1')" );
        while( preg_match($pattern[0], $text) || preg_match($pattern[1], $text) || preg_match($pattern[2], $text) || preg_match($pattern[3], $text) || preg_match($pattern[4], $text) )
        {
            $text = preg_replace($pattern, $replace, $text);
        }
        if( $code_matches && count($code_matches) )
        {
            foreach( $code_matches as $match )
            {
                $match["2"] = trim(strip_tags($match["2"]));
                switch( strtolower($match["1"]) )
                {
                    case "php":
                        $CodeTitle = get_phrase("tinymce_php_code");
                        $match["2"] = html_declean($match["2"]);
                        $CodeContent = $this->PHPCode($match["2"]);
                        $CodeMD5 = md5($CodeTitle . $CodeContent);
                        break;
                    default:
                        $CodeTitle = get_phrase("tinymce_code");
                        $CodeContent = html_clean($match["2"]);
                        $CodeMD5 = md5($CodeTitle . $CodeContent);
                        break;
                }
                $codeOutput = "\r\n\t\t\t\t<div class=\"CodeBlock\" id=\"" . $CodeMD5 . "\">\r\n\t\t\t\t\t<div class=\"title\">\r\n\t\t\t\t\t\t<span id=\"expand_button\" class=\"clickable\" md5=\"" . $CodeMD5 . "\">" . get_phrase("button_expand") . "</span>\r\n\t\t\t\t\t\t" . $CodeTitle . ":\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<pre><code>" . $CodeContent . "</code></pre>\r\n\t\t\t\t</div>";
                $codeOutput = str_replace(array( "<code><code>", "</code></code>" ), array( "<code>", "</code>" ), $codeOutput);
                $text = preg_replace("#~~~TSUE_CODE~~~?#", $codeOutput, $text, 1);
            }
        }

        return trim($text);
    }

    public function parseQuotesWithName($QuoteDetails = "", $CodeQuoteContent = "")
    {
        global $TSUE;
        if( !$CodeQuoteContent )
        {
            return NULL;
        }

        $explode = @tsue_explode("|", @trim($QuoteDetails));
        $MemberName = $PostID = "";
        if( isset($explode["0"]) )
        {
            $MemberName = trim(str_replace("\\\"", "\"", $explode["0"]));
        }

        if( isset($explode["1"]) )
        {
            $PostID = intval($explode["1"]);
        }

        $CodeQuoteContent = trim(str_replace("\\\"", "\"", $CodeQuoteContent));
        $MemberName = get_phrase("member_x_said", ucfirst($MemberName));
        $quoteOutput = "\r\n\t\t<div class=\"CodeBlockQuote\">\r\n\t\t\t<div class=\"title\">\r\n\t\t\t\t" . $MemberName . " <a href=\"#\" rel=\"autoScroller\" name=\"" . $PostID . "\">&#8593;</a>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"quotecontent\">" . $CodeQuoteContent . "</div>\r\n\t\t</div>";
        return $quoteOutput;
    }

    public function parseQuotes($CodeQuoteContent = "")
    {
        global $TSUE;
        if( !$CodeQuoteContent )
        {
            return NULL;
        }

        $CodeQuoteContent = trim(str_replace("\\\"", "\"", $CodeQuoteContent));
        return "\r\n\t\t<div class=\"CodeBlockQuote\">\r\n\t\t\t<div class=\"quotecontent\">" . $CodeQuoteContent . "</div>\r\n\t\t</div>";
    }

    public function parseYoutube($videoTag = "")
    {
        global $TSUE;
        $youtube = "";
        if( $videoTag )
        {
            $youtube = "<object width=\"500\" height=\"314\"><param name=\"movie\" value=\"http://www.youtube.com/v/" . $videoTag . "?version=3&amp;hd=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/" . $videoTag . "?version=3&amp;hd=1\" type=\"application/x-shockwave-flash\" width=\"500\" height=\"314\" allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed></object>";
        }

        return $youtube;
    }

    public function parseNFO($nfoTag = "")
    {
        global $TSUE;
        $nfo = "";
        if( $nfoTag )
        {
            $nfo = "<pre class=\"nfo\">" . $nfoTag . "</pre>";
        }

        return $nfo;
    }

    public function parseSpoiler($spoilerTag = "")
    {
        global $TSUE;
        $spoiler = "";
        if( $spoilerTag )
        {
            $spoiler = "\r\n\t\t\t<div id=\"spoiler\">\r\n\t\t\t\t<div class=\"spoiler_tag\">" . $spoilerTag . "</div>\r\n\t\t\t</div>";
        }

        return $spoiler;
    }

    public function PHPCode($content = "")
    {
        if( strpos($content, "<?") == false )
        {
            $tagAdded = true;
            $content = "<?php\n" . $content;
        }
        else
        {
            $tagAdded = false;
        }

        $content = highlight_string($content, true);
        if( $tagAdded )
        {
            $content = preg_replace("#&lt;\\?php<br\\s*/?>#", "", $content, 1);
        }

        return trim($content);
    }

    public function censorString($string)
    {
        global $TSUE;
        if( !isset($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]) )
        {
            return $string;
        }

        if( !isset($TSUE["TSUE_Settings"]->settings["censor_cache"]["censoring_censor_character"]) )
        {
            $TSUE["TSUE_Settings"]->settings["censor_cache"]["censoring_censor_character"] = "";
        }

        if( !$this->buildCensorArray )
        {
            $this->buildCensorArray = $this->buildCensorArray($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"], $TSUE["TSUE_Settings"]->settings["censor_cache"]["censoring_censor_character"]);
        }

        if( !empty($this->buildCensorArray["exact"]) )
        {
            $string = preg_replace(array_keys($this->buildCensorArray["exact"]), $this->buildCensorArray["exact"], $string);
        }

        if( !empty($this->buildCensorArray["any"]) )
        {
            $string = str_ireplace(array_keys($this->buildCensorArray["any"]), $this->buildCensorArray["any"], $string);
        }

        return $string;
    }

    public function buildCensorArray(array $words, $censorString)
    {
        $censorCache = array(  );
        if( !empty($words["exact"]) )
        {
            $exact = array(  );
            foreach( $words["exact"] as $word => $replace )
            {
                $search = "#(?<=\\W|^)(" . preg_quote($word, "#") . ")(?=\\W|\$)#i";
                if( is_int($replace) )
                {
                    $exact[$search] = str_repeat($censorString, $replace);
                }
                else
                {
                    $exact[$search] = $replace;
                }

            }
            $censorCache["exact"] = $exact;
        }

        if( !empty($words["any"]) )
        {
            $any = array(  );
            foreach( $words["any"] as $word => $replace )
            {
                if( is_int($replace) )
                {
                    $any[$word] = str_repeat($censorString, $replace);
                }
                else
                {
                    $any[$word] = $replace;
                }

            }
            $censorCache["any"] = $any;
        }

        return $censorCache;
    }

}


class TSUE_Security
{
    protected $_xss_hash = "";
    protected $charset = "UTF-8";
    protected $_never_allowed_str = array( "document.cookie" => "[removed]", "document.write" => "[removed]", ".parentNode" => "[removed]", ".innerHTML" => "[removed]", "window.location" => "[removed]", "-moz-binding" => "[removed]", "<!--" => "&lt;!--", "-->" => "--&gt;", "<![CDATA[" => "&lt;![CDATA[" );
    protected $_never_allowed_regex = array( "javascript\\s*:" => "[removed]", "expression\\s*(\\(|&\\#40;)" => "[removed]", "vbscript\\s*:" => "[removed]", "Redirect\\s+302" => "[removed]" );

    public function xss_clean($str, $is_image = false)
    {
        if( is_array($str) )
        {
            while( list($key) = each($str) )
            {
                $str[$key] = $this->xss_clean($str[$key]);
            }
            return $str;
        }

        $str = $this->remove_invisible_characters($str);
        $str = $this->_validate_entities($str);
        $str = rawurldecode($str);
        $str = preg_replace_callback("/[a-z]+=([\\'\"]).*?\\1/si", array( $this, "_convert_attribute" ), $str);
        $str = preg_replace_callback("/<\\w+.*?(?=>|<|\$)/si", array( $this, "_decode_entity" ), $str);
        $str = $this->remove_invisible_characters($str);
        if( strpos($str, "\t") !== false )
        {
            $str = str_replace("\t", " ", $str);
        }

        $converted_string = $str;
        $str = $this->_do_never_allowed($str);
        if( $is_image === true )
        {
            $str = preg_replace("/<\\?(php)/i", "&lt;?\\1", $str);
        }
        else
        {
            $str = str_replace(array( "<?", "?" . ">" ), array( "&lt;?", "?&gt;" ), $str);
        }

        $words = array( "javascript", "expression", "vbscript", "script", "applet", "alert", "document", "write", "cookie", "window" );
        foreach( $words as $word )
        {
            $temp = "";
            $i = 0;
            for( $wordlen = strlen($word); $i < $wordlen; $i++ )
            {
                $temp .= substr($word, $i, 1) . "\\s*";
            }
            $str = preg_replace_callback("#(" . substr($temp, 0, -3) . ")(\\W)#is", array( $this, "_compact_exploded_words" ), $str);
        }
        do
        {
            $original = $str;
            if( preg_match("/<a/i", $str) )
            {
                $str = preg_replace_callback("#<a\\s+([^>]*?)(>|\$)#si", array( $this, "_js_link_removal" ), $str);
            }

            if( preg_match("/<img/i", $str) )
            {
                $str = preg_replace_callback("#<img\\s+([^>]*?)(\\s?/?>|\$)#si", array( $this, "_js_img_removal" ), $str);
            }

            if( preg_match("/script/i", $str) || preg_match("/xss/i", $str) )
            {
                $str = preg_replace("#<(/*)(script|xss)(.*?)\\>#si", "[removed]", $str);
            }

        }
        while( $original != $str );
        unset($original);
        $str = $this->_remove_evil_attributes($str, $is_image);
        $naughty = "alert|applet|audio|basefont|base|behavior|bgsound|blink|body|embed|expression|form|frameset|frame|head|html|ilayer|iframe|input|isindex|layer|link|meta|object|plaintext|style|script|textarea|title|video|xml|xss";
        $str = preg_replace_callback("#<(/*\\s*)(" . $naughty . ")([^><]*)([><]*)#is", array( $this, "_sanitize_naughty_html" ), $str);
        $str = preg_replace("#(alert|cmd|passthru|eval|exec|expression|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(\\s*)\\((.*?)\\)#si", "\\1\\2&#40;\\3&#41;", $str);
        $str = $this->_do_never_allowed($str);
        if( $is_image === true )
        {
            return ($str == $converted_string ? true : false);
        }

        return $str;
    }

    public function xss_hash()
    {
        if( $this->_xss_hash == "" )
        {
            mt_srand();
            $this->_xss_hash = md5(TIMENOW + mt_rand(0, 1999999999));
        }

        return $this->_xss_hash;
    }

    public function entity_decode($str, $charset = "UTF-8")
    {
        if( stristr($str, "&") === false )
        {
            return $str;
        }

        if( function_exists("html_entity_decode") && strtolower($charset) != "utf-8" )
        {
            $str = html_entity_decode($str, ENT_COMPAT, $charset);
            $str = preg_replace("~&#x(0*[0-9a-f]{2,5})~ei", "chr(hexdec(\"\\1\"))", $str);
            return preg_replace("~&#([0-9]{2,4})~e", "chr(\\1)", $str);
        }

        $str = preg_replace("~&#x(0*[0-9a-f]{2,5});{0,1}~ei", "chr(hexdec(\"\\1\"))", $str);
        $str = preg_replace("~&#([0-9]{2,4});{0,1}~e", "chr(\\1)", $str);
        if( stristr($str, "&") === false )
        {
            $str = strtr($str, array_flip(get_html_translation_table(HTML_ENTITIES)));
        }

        return $str;
    }

    public function sanitize_filename($str, $relative_path = false)
    {
        $bad = array( "../", "<!--", "-->", "<", ">", "'", "\"", "&", "\$", "#", "{", "}", "[", "]", "=", ";", "?", "%20", "%22", "%3c", "%253c", "%3e", "%0e", "%28", "%29", "%2528", "%26", "%24", "%3f", "%3b", "%3d" );
        if( !$relative_path )
        {
            $bad[] = "./";
            $bad[] = "/";
        }

        $str = remove_invisible_characters($str, false);
        return stripslashes(str_replace($bad, "", $str));
    }

    protected function _compact_exploded_words($matches)
    {
        return preg_replace("/\\s+/s", "", $matches[1]) . $matches[2];
    }

    protected function _remove_evil_attributes($str, $is_image)
    {
        $evil_attributes = array( "on\\w*", "xmlns" );
        if( $is_image === true )
        {
            unset($evil_attributes[array_search("xmlns", $evil_attributes)]);
        }

        do
        {
            $str = preg_replace("#<(/?[^><]+?)([^A-Za-z\\-])(" . implode("|", $evil_attributes) . ")(\\s*=\\s*)([\"][^>]*?[\"]|[\\'][^>]*?[\\']|[^>]*?)([\\s><])([><]*)#i", "<\$1\$6", $str, -1, $count);
        }
        while( $count );
        return $str;
    }

    protected function _sanitize_naughty_html($matches)
    {
        $str = "&lt;" . $matches[1] . $matches[2] . $matches[3];
        $str .= str_replace(array( ">", "<" ), array( "&gt;", "&lt;" ), $matches[4]);
        return $str;
    }

    protected function _js_link_removal($match)
    {
        $attributes = $this->_filter_attributes(str_replace(array( "<", ">" ), "", $match[1]));
        return str_replace($match[1], preg_replace("#href=.*?(alert\\(|alert&\\#40;|javascript\\:|livescript\\:|mocha\\:|charset\\=|window\\.|document\\.|\\.cookie|<script|<xss|base64\\s*,)#si", "", $attributes), $match[0]);
    }

    protected function _js_img_removal($match)
    {
        $attributes = $this->_filter_attributes(str_replace(array( "<", ">" ), "", $match[1]));
        return str_replace($match[1], preg_replace("#src=.*?(alert\\(|alert&\\#40;|javascript\\:|livescript\\:|mocha\\:|charset\\=|window\\.|document\\.|\\.cookie|<script|<xss|base64\\s*,)#si", "", $attributes), $match[0]);
    }

    protected function _convert_attribute($match)
    {
        return str_replace(array( ">", "<", "\\" ), array( "&gt;", "&lt;", "\\\\" ), $match[0]);
    }

    protected function _filter_attributes($str)
    {
        $out = "";
        if( preg_match_all("#\\s*[a-z\\-]+\\s*=\\s*(\\042|\\047)([^\\1]*?)\\1#is", $str, $matches) )
        {
            foreach( $matches[0] as $match )
            {
                $out .= preg_replace("#/\\*.*?\\*/#s", "", $match);
            }
        }

        return $out;
    }

    protected function _decode_entity($match)
    {
        return $this->entity_decode($match[0], strtoupper($this->charset));
    }

    protected function _validate_entities($str)
    {
        $str = preg_replace("|\\&([a-z\\_0-9\\-]+)\\=([a-z\\_0-9\\-]+)|i", $this->xss_hash() . "\\1=\\2", $str);
        $str = preg_replace("#(&\\#?[0-9a-z]{2,})([\\x00-\\x20])*;?#i", "\\1;\\2", $str);
        $str = preg_replace("#(&\\#x?)([0-9A-F]+);?#i", "\\1\\2;", $str);
        $str = str_replace($this->xss_hash(), "&", $str);
        return $str;
    }

    protected function _do_never_allowed($str)
    {
        foreach( $this->_never_allowed_str as $key => $val )
        {
            $str = str_replace($key, $val, $str);
        }
        foreach( $this->_never_allowed_regex as $key => $val )
        {
            $str = preg_replace("#" . $key . "#i", $val, $str);
        }
        return $str;
    }

    protected function remove_invisible_characters($str, $url_encoded = true)
    {
        $non_displayables = array(  );
        if( $url_encoded )
        {
            $non_displayables[] = "/%0[0-8bcef]/";
            $non_displayables[] = "/%1[0-9a-f]/";
        }

        $non_displayables[] = "/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F]+/S";
        do
        {
            $str = preg_replace($non_displayables, "", $str, -1, $count);
        }
        while( $count );
        return $str;
    }

}


class TSUE_IRCBot
{
    public $fp = NULL;
    public $debug = array(  );
    public $connected = false;
    public $font = array( "[c]" => "\x03", "[n]" => "\x0F", "[b]" => "\x02", "[u]" => "\x1F", "[r]" => "\x16" );

    public function TSUE_IRCBot($msg)
    {
        global $TSUE;
        $this->fp = fsockopen($TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"], $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPort"], $errno, $errstr, 5);
        if( !$this->fp )
        {
            $this->debug[] = "Unable to connect to IRC Server at " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"] . ":" . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPort"] . " (" . $errno . ") " . $errstr;
            return false;
        }

        if( $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"][0] != "#" )
        {
            $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"] = "#" . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"];
        }

        $this->debug[] = "Connected to: " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"];
        $this->connected = true;
        $this->sendCMD("PASS " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPass"]);
        $this->sendCMD("NICK " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircNick"]);
        $this->sendCMD("USER " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircNick"] . " TSUE IRC BOT");
        while( !feof($this->fp) )
        {
            $data = str_replace(array( "\n", "\r" ), "", fgets($this->fp, 1024));
            $this->debug[] = "[RECEIVE] " . $data;
            $exData = tsue_explode(" ", $data);
            if( isset($exData["0"]) && $exData["0"] == "PING" )
            {
                $this->sendCMD("PONG " . $exData[1]);
            }
            else
            {
                if( isset($exData["1"]) && $exData["1"] == "376" )
                {
                    $this->sendCMD("JOIN " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"]);
                }
                else
                {
                    if( isset($exData["1"]) && $exData["1"] == "366" )
                    {
                        $this->sendCMD("PRIVMSG " . $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"] . " [b][c]4,0" . $msg);
                        $this->Disconnect();
                        return NULL;
                    }

                }

            }

        }
        if( $this->connected )
        {
            $this->Disconnect();
        }

    }

    public function sendCMD($cmd)
    {
        @fputs($this->fp, @strtr($cmd, $this->font) . "\n\r");
        $this->debug[] = "[SEND] " . $cmd;
    }

    public function Disconnect()
    {
        $this->sendCMD("QUIT :USING TSUE IRC BOT");
        @fclose($this->fp);
    }

    public function Debug()
    {
        return ($this->debug ? implode("<br />", $this->debug) : false);
    }

}


class Torrent
{
    private $torrent = NULL;
    private $info = NULL;
    public $error = NULL;

    public function load(&$data)
    {
        $this->torrent = BEncode::decode($data);
        if( $this->torrent->get_type() == "error" )
        {
            $this->error = $this->torrent->get_plain();
            return false;
        }

        if( $this->torrent->get_type() != "dictionary" )
        {
            $this->error = "The file was not a valid torrent file.";
            return false;
        }

        $this->info = $this->torrent->get_value("info");
        if( !$this->info )
        {
            $this->error = "Could not find info dictionary.";
            return false;
        }

        return true;
    }

    public function getWhatever($Whatever)
    {
        return ($this->torrent->get_value($Whatever) ? $this->torrent->get_value($Whatever)->get_plain() : NULL);
    }

    public function getComment()
    {
        return ($this->torrent->get_value("comment") ? $this->torrent->get_value("comment")->get_plain() : NULL);
    }

    public function getCreationDate()
    {
        return ($this->torrent->get_value("creation date") ? $this->torrent->get_value("creation date")->get_plain() : NULL);
    }

    public function getCreatedBy()
    {
        return ($this->torrent->get_value("created by") ? $this->torrent->get_value("created by")->get_plain() : NULL);
    }

    public function getName()
    {
        return $this->info->get_value("name")->get_plain();
    }

    public function getPieceLength()
    {
        return $this->info->get_value("piece length")->get_plain();
    }

    public function getPieces()
    {
        return $this->info->get_value("pieces")->get_plain();
    }

    public function getPrivate()
    {
        if( $this->info->get_value("private") )
        {
            return $this->info->get_value("private")->get_plain();
        }

        return -1;
    }

    public function getFiles()
    {
        $filelist = array(  );
        $length = $this->info->get_value("length");
        if( $length )
        {
            $file = new Torrent_File();
            $file->name = $this->info->get_value("name")->get_plain();
            $file->length = $this->info->get_value("length")->get_plain();
            array_push($filelist, $file);
        }
        else
        {
            if( $this->info->get_value("files") )
            {
                $files = $this->info->get_value("files")->get_plain();
                while( list($key, $value) = each($files) )
                {
                    $file = new Torrent_File();
                    $path = $value->get_value("path")->get_plain();
                    while( list($key, $value2) = each($path) )
                    {
                        $file->name .= "/" . $value2->get_plain();
                    }
                    $file->name = ltrim($file->name, "/");
                    $file->length = $value->get_value("length")->get_plain();
                    array_push($filelist, $file);
                }
            }

        }

        return $filelist;
    }

    public function getTrackers()
    {
        $trackerlist = array(  );
        if( $this->torrent->get_value("announce-list") )
        {
            $trackers = $this->torrent->get_value("announce-list")->get_plain();
            while( list($key, $value) = each($trackers) )
            {
                if( is_array($value->get_plain()) )
                {
                    while( list($key, $value2) = each($value) )
                    {
                        while( list($key, $value3) = each($value2) )
                        {
                            array_push($trackerlist, $value3->get_plain());
                        }
                    }
                }
                else
                {
                    array_push($trackerlist, $value->get_plain());
                }

            }
        }
        else
        {
            if( $this->torrent->get_value("announce") )
            {
                array_push($trackerlist, $this->torrent->get_value("announce")->get_plain());
            }

        }

        return $trackerlist;
    }

    public function addTracker($tracker_url)
    {
        $trackers = $this->getTrackers();
        $trackers[] = $tracker_url;
        $this->setTrackers($trackers);
    }

    public function removeWhatever($Whatever)
    {
        if( $this->torrent->get_value($Whatever) )
        {
            $this->torrent->remove($Whatever);
        }

    }

    public function setTrackers($trackerlist)
    {
        if( 1 <= count($trackerlist) )
        {
            $this->torrent->remove("announce-list");
            $string = new BEncode_String($trackerlist[0]);
            $this->torrent->set("announce", $string);
        }

        if( 1 < count($trackerlist) )
        {
            $list = new BEncode_List();
            while( list($key, $value) = each($trackerlist) )
            {
                $list2 = new BEncode_List();
                $string = new BEncode_String($value);
                $list2->add($string);
                $list->add($list2);
            }
            $this->torrent->set("announce-list", $list);
        }

    }

    public function setFiles($filelist)
    {
        $length = $this->info->get_value("length");
        if( $length )
        {
            $filelist[0] = str_replace("\\", "/", $filelist[0]);
            $string = new BEncode_String($filelist[0]);
            $this->info->set("name", $string);
        }
        else
        {
            if( $this->info->get_value("files") )
            {
                $files = $this->info->get_value("files")->get_plain();
                for( $i = 0; $i < count($files); $i++ )
                {
                    $file_parts = split("/", $filelist[$i]);
                    $path = new BEncode_List();
                    foreach( $file_parts as $part )
                    {
                        $string = new BEncode_String($part);
                        $path->add($string);
                    }
                    $files[$i]->set("path", $path);
                }
            }

        }

    }

    public function setComment($value)
    {
        $type = "comment";
        $key = $this->torrent->get_value($type);
        if( $value == "" )
        {
            $this->torrent->remove($type);
        }
        else
        {
            if( $key )
            {
                $key->set($value);
            }
            else
            {
                $string = new BEncode_String($value);
                $this->torrent->set($type, $string);
            }

        }

    }

    public function setCreatedBy($value)
    {
        $type = "created by";
        $key = $this->torrent->get_value($type);
        if( $value == "" )
        {
            $this->torrent->remove($type);
        }
        else
        {
            if( $key )
            {
                $key->set($value);
            }
            else
            {
                $string = new BEncode_String($value);
                $this->torrent->set($type, $string);
            }

        }

    }

    public function setSource($value)
    {
        $type = "source";
        $key = $this->torrent->get_value($type);
        if( $value == "" )
        {
            $this->torrent->remove($type);
        }
        else
        {
            if( $key )
            {
                $key->set($value);
            }
            else
            {
                $string = new BEncode_String($value);
                $this->torrent->set($type, $string);
            }

        }

    }

    public function setCreationDate($value)
    {
        $type = "creation date";
        $key = $this->torrent->get_value($type);
        if( $value == "" )
        {
            $this->torrent->remove($type);
        }
        else
        {
            if( $key )
            {
                $key->set($value);
            }
            else
            {
                $int = new BEncode_Int($value);
                $this->torrent->set($type, $int);
            }

        }

    }

    public function setPrivate($value)
    {
        if( $value == -1 )
        {
            $this->info->remove("private");
        }
        else
        {
            $int = new BEncode_Int($value);
            $this->info->set("private", $int);
        }

    }

    public function bencode()
    {
        return $this->torrent->encode();
    }

    public function getHash()
    {
        return pack("H*", sha1($this->info->encode()));
    }

    public function getSize()
    {
        $size = 0;
        $IncludedFiles = $this->getFiles();
        foreach( $IncludedFiles as $File )
        {
            $size += $File->length;
        }
        return $size;
    }

}


class Torrent_File
{
    public $name = NULL;
    public $length = NULL;

}


class BEncode
{
    public static function &decode(&$raw, &$offset = 0)
    {
        if( strlen($raw) <= $offset )
        {
            return new BEncode_Error("Decoder exceeded max length.");
        }

        $char = $raw[$offset];
        switch( $char )
        {
            case "i":
                $int = new BEncode_Int();
                $int->decode($raw, $offset);
                return $int;
            case "d":
                $dict = new BEncode_Dictionary();
                if( $check = $dict->decode($raw, $offset) )
                {
                    return $check;
                }

                return $dict;
            case "l":
                $list = new BEncode_List();
                $list->decode($raw, $offset);
                return $list;
            case "e":
                $AvoidPHPWarning = new BEncode_End();
                return $AvoidPHPWarning;
            case "0":
            case is_numeric($char):
                $str = new BEncode_String();
                $str->decode($raw, $offset);
                return $str;
        }
        return new BEncode_Error("Decoder encountered unknown char '" . $char . "' at offset " . $offset . ".");
    }

}


class BEncode_End
{
    public function get_type()
    {
        return "end";
    }

}


class BEncode_Error
{
    private $error = NULL;

    public function BEncode_Error($error)
    {
        $this->error = $error;
    }

    public function get_plain()
    {
        return $this->error;
    }

    public function get_type()
    {
        return "error";
    }

}


class BEncode_Int
{
    private $value = NULL;

    public function BEncode_Int($value = NULL)
    {
        $this->value = $value;
    }

    public function decode(&$raw, &$offset)
    {
        $end = strpos($raw, "e", $offset);
        $this->value = substr($raw, ++$offset, $end - $offset);
        $offset += $end - $offset;
    }

    public function get_plain()
    {
        return $this->value;
    }

    public function get_type()
    {
        return "int";
    }

    public function encode()
    {
        return "i" . $this->value . "e";
    }

    public function set($value)
    {
        $this->value = $value;
    }

}


class BEncode_Dictionary
{
    public $value = array(  );

    public function decode(&$raw, &$offset)
    {
        $dictionary = array(  );
        while( true )
        {
            $name = BEncode::decode($raw, ++$offset);
            if( $name->get_type() == "end" )
            {
                break;
            }

            if( $name->get_type() == "error" )
            {
                return $name;
            }

            if( $name->get_type() != "string" )
            {
                return new BEncode_Error("Key name in dictionary was not a string.");
            }

            $value = BEncode::decode($raw, ++$offset);
            if( $value->get_type() == "error" )
            {
                return $value;
            }

            $dictionary[$name->get_plain()] = $value;
        }
        $this->value = $dictionary;
    }

    public function get_value($key)
    {
        if( isset($this->value[$key]) )
        {
            return $this->value[$key];
        }

    }

    public function encode()
    {
        $this->sort();
        $encoded = "d";
        while( list($key, $value) = each($this->value) )
        {
            $bstr = new BEncode_String();
            $bstr->set($key);
            $encoded .= $bstr->encode();
            $encoded .= $value->encode();
        }
        $encoded .= "e";
        return $encoded;
    }

    public function get_type()
    {
        return "dictionary";
    }

    public function remove($key)
    {
        unset($this->value[$key]);
    }

    public function set($key, $value)
    {
        $this->value[$key] = $value;
    }

    private function sort()
    {
        ksort($this->value);
    }

    public function count()
    {
        return count($this->value);
    }

}


class BEncode_List
{
    private $value = array(  );

    public function add($bval)
    {
        array_push($this->value, $bval);
    }

    public function decode(&$raw, &$offset)
    {
        $list = array(  );
        while( true )
        {
            $value = BEncode::decode($raw, ++$offset);
            if( $value->get_type() == "end" )
            {
                break;
            }

            if( $value->get_type() == "error" )
            {
                return $value;
            }

            array_push($list, $value);
        }
        $this->value = $list;
    }

    public function encode()
    {
        $encoded = "l";
        for( $i = 0; $i < count($this->value); $i++ )
        {
            $encoded .= $this->value[$i]->encode();
        }
        $encoded .= "e";
        return $encoded;
    }

    public function get_plain()
    {
        return $this->value;
    }

    public function get_type()
    {
        return "list";
    }

}


class BEncode_String
{
    private $value = NULL;

    public function BEncode_String($value = NULL)
    {
        $this->value = $value;
    }

    public function decode(&$raw, &$offset)
    {
        $end = strpos($raw, ":", $offset);
        $len = substr($raw, $offset, $end - $offset);
        $offset += $len + $end - $offset;
        $end++;
        $this->value = substr($raw, $end, $len);
    }

    public function get_plain()
    {
        return $this->value;
    }

    public function get_type()
    {
        return "string";
    }

    public function encode()
    {
        $len = strlen($this->value);
        return (string) $len . ":" . $this->value;
    }

    public function set($value)
    {
        $this->value = $value;
    }

}


class IMDB
{
    public $movieInfo = array(  );
    public $posterPath = "";

    public function IMDB($movieKeyword)
    {
        $imdbUrl = $this->getIMDbUrlFromGoogle($movieKeyword);
        $html = ($imdbUrl ? $this->geturl($imdbUrl) : false);
        if( stripos($html, "<meta name=\"application-name\" content=\"IMDb\" />") !== false )
        {
            $this->scrapMovieInfo($html);
            $this->movieInfo["imdb_url"] = $imdbUrl;
        }
        else
        {
            $this->movieInfo["error"] = "No Title found on IMDb!";
        }

    }

    public function getIMDbUrlFromGoogle($title)
    {
        $url = "http://www.google.com/search?q=site:imdb.com+" . rawurlencode($title);
        $html = $this->geturl($url);
        $imdburls = $this->match_all("/<a.*?href=\".*?(http:\\/\\/www\\.imdb.com\\/title\\/tt.*?\\/).*?\".*?>.*?<\\/a>/ms", $html, 1);
        return ($imdburls ? $imdburls[0] : false);
    }

    public function scrapMovieInfo($html)
    {
        $this->movieInfo["title_id"] = $this->match("/<link rel=\"canonical\" href=\"http:\\/\\/www.imdb.com\\/title\\/(tt[0-9]+)\\/\" \\/>/ms", $html, 1);
        $this->movieInfo["title"] = trim($this->match("/<title>(.*?) \\(.*?<\\/title>/ms", $html, 1));
        $this->movieInfo["year"] = trim($this->match("/<title>.*?\\(.*?([0-9][0-9][0-9][0-9]).*?\\).*?<\\/title>/ms", $html, 1));
        $this->movieInfo["rating"] = $this->match("/itemprop=\"ratingValue\">([0-9].[0-9])<\\/span>/ms", $html, 1);
        $this->movieInfo["genres"] = array(  );
        foreach( $this->match_all("/<a.*?>(.*?)<\\/a>/ms", $this->match("/Genre.?:(.*?)(<\\/div>|See more)/ms", $html, 1), 1) as $m )
        {
            array_push($this->movieInfo["genres"], $m);
        }
        $this->movieInfo["directors"] = array(  );
        foreach( $this->match_all("/<a.*?>(.*?)<\\/a>/ms", $this->match("/Director.?:(.*?)(<\\/div>|>.?and )/ms", $html, 1), 1) as $m )
        {
            array_push($this->movieInfo["directors"], $m);
        }
        $this->movieInfo["writers"] = array(  );
        foreach( $this->match_all("/<a.*?>(.*?)<\\/a>/ms", $this->match("/Writer.?:(.*?)(<\\/div>|>.?and )/ms", $html, 1), 1) as $m )
        {
            array_push($this->movieInfo["writers"], $m);
        }
        $this->movieInfo["stars"] = array(  );
        foreach( $this->match_all("/<a.*?>(.*?)<\\/a>/ms", $this->match("/Stars:(.*?)<\\/div>/ms", $html, 1), 1) as $m )
        {
            array_push($this->movieInfo["stars"], $m);
        }
        $this->movieInfo["cast"] = array(  );
        foreach( $this->match_all("/<td class=\"name\">(.*?)<\\/td>/ms", $html, 1) as $m )
        {
            array_push($this->movieInfo["cast"], trim(strip_tags($m)));
        }
        $this->movieInfo["mpaa_rating"] = $this->match("/infobar\">.<img.*?alt=\"(.*?)\".*?>/ms", $html, 1);
        if( $this->movieInfo["title_id"] != "" )
        {
            $releaseinfoHtml = $this->geturl("http://www.imdb.com/title/" . $this->movieInfo["title_id"] . "/releaseinfo");
            $this->movieInfo["also_known_as"] = $this->getAkaTitles($releaseinfoHtml, $usa_title);
            $this->movieInfo["usa_title"] = $usa_title;
            $this->movieInfo["release_date"] = $this->match("/Release Date:<\\/h4>.*?([0-9][0-9]? (January|February|March|April|May|June|July|August|September|October|November|December) (19|20)[0-9][0-9]).*?(\\(|<span)/ms", $html, 1);
            $this->movieInfo["release_dates"] = $this->getReleaseDates($releaseinfoHtml);
        }

        $this->movieInfo["plot"] = trim(strip_tags($this->match("/<p itemprop=\"description\">(.*?)<\\/p>/ms", $html, 1)));
        $this->movieInfo["poster"] = $this->match("/img_primary\">.*?<img src=\"(.*?)\".*?<\\/td>/ms", $html, 1);
        $this->movieInfo["poster_large"] = "";
        $this->movieInfo["poster_small"] = "";
        if( $this->movieInfo["poster"] != "" && strrpos($this->movieInfo["poster"], "nopicture") === false && strrpos($this->movieInfo["poster"], "ad.doubleclick") === false )
        {
            $this->movieInfo["poster_large"] = substr($this->movieInfo["poster"], 0, strrpos($this->movieInfo["poster"], "_V1.")) . "_V1._SY500.jpg";
            $this->movieInfo["poster_small"] = substr($this->movieInfo["poster"], 0, strrpos($this->movieInfo["poster"], "_V1.")) . "_V1._SY150.jpg";
        }
        else
        {
            $this->movieInfo["poster"] = "";
        }

        $this->movieInfo["runtime"] = trim($this->match("/Runtime:<\\/h4>.*?([0-9]+) min.*?<\\/div>/ms", $html, 1));
        if( $this->movieInfo["runtime"] == "" )
        {
            $this->movieInfo["runtime"] = trim($this->match("/infobar.*?([0-9]+) min.*?<\\/div>/ms", $html, 1));
        }

        $this->movieInfo["top_250"] = trim($this->match("/Top 250 #([0-9]+)</ms", $html, 1));
        $this->movieInfo["oscars"] = trim($this->match("/Won ([0-9]+) Oscars./ms", $html, 1));
        $this->movieInfo["storyline"] = trim(strip_tags($this->match("/Storyline<\\/h2>(.*?)(<em|<\\/p>|<span)/ms", $html, 1)));
        $this->movieInfo["tagline"] = trim(strip_tags($this->match("/Tagline.?:<\\/h4>(.*?)(<span|<\\/div)/ms", $html, 1)));
        $this->movieInfo["votes"] = $this->match("/<span itemprop=\"ratingCount\">(.*?)<\\/span>/ms", $html, 1);
        if( $this->movieInfo["title_id"] != "" )
        {
            $this->movieInfo["media_images"] = $this->getMediaImages($this->movieInfo["title_id"]);
        }

    }

    public function getReleaseDates($html)
    {
        $releaseDates = array(  );
        foreach( $this->match_all("/<tr>(.*?)<\\/tr>/ms", $this->match("/Date<\\/th><\\/tr>(.*?)<\\/table>/ms", $html, 1), 1) as $r )
        {
            $country = trim(strip_tags($this->match("/<td><b>(.*?)<\\/b><\\/td>/ms", $r, 1)));
            $date = trim(strip_tags($this->match("/<td align=\"right\">(.*?)<\\/td>/ms", $r, 1)));
            array_push($releaseDates, $country . " = " . $date);
        }
        return $releaseDates;
    }

    public function getAkaTitles($html, &$usa_title)
    {
        $akaTitles = array(  );
        foreach( $this->match_all("/<tr>(.*?)<\\/tr>/msi", $this->match("/Also Known As(.*?)<\\/table>/ms", $html, 1), 1) as $m )
        {
            $akaTitleMatch = $this->match_all("/<td>(.*?)<\\/td>/ms", $m, 1);
            $akaTitle = trim($akaTitleMatch[0]);
            $akaCountry = trim($akaTitleMatch[1]);
            array_push($akaTitles, $akaTitle . " = " . $akaCountry);
            if( $akaCountry != "" && strrpos(strtolower($akaCountry), "usa") !== false )
            {
                $usa_title = $akaTitle;
            }

        }
        return $akaTitles;
    }

    public function getMediaImages($titleId)
    {
        $url = "http://www.imdb.com/title/" . $titleId . "/mediaindex";
        $html = $this->geturl($url);
        $media = array(  );
        $media = array_merge($media, $this->scanMediaImages($html));
        foreach( $this->match_all("/<a href=\"\\?page=(.*?)\">/ms", $this->match("/<span style=\"padding: 0 1em;\">(.*?)<\\/span>/ms", $html, 1), 1) as $p )
        {
            $html = $this->geturl($url . "?page=" . $p);
            $media = array_merge($media, $this->scanMediaImages($html));
        }
        return $media;
    }

    public function scanMediaImages($html)
    {
        $pics = array(  );
        foreach( $this->match_all("/src=\"(.*?)\"/ms", $this->match("/<div class=\"thumb_list\" style=\"font-size: 0px;\">(.*?)<\\/div>/ms", $html, 1), 1) as $i )
        {
            $i = substr($i, 0, strrpos($i, "_V1.")) . "_V1._SY500.jpg";
            array_push($pics, $i);
        }
        return $pics;
    }

    public function geturl($url)
    {
        $html = "";
        if( function_exists("curl_init") && ($ch = curl_init()) )
        {
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
            $html = curl_exec($ch);
            curl_close($ch);
        }

        return $html;
    }

    public function match_all($regex, $str, $i = 0)
    {
        if( preg_match_all($regex, $str, $matches) === false )
        {
            return false;
        }

        return $matches[$i];
    }

    public function match($regex, $str, $i = 0)
    {
        if( preg_match($regex, $str, $match) == 1 )
        {
            return $match[$i];
        }

        return false;
    }

    public function savePoster($JPGURL)
    {
        $JPG = $this->geturl($JPGURL);
        if( $JPG )
        {
            return file_put_contents($this->posterPath . $this->movieInfo["title_id"] . ".jpg", $JPG);
        }

    }

}


class tmhOAuth
{
    public $response = array(  );

    const VERSION = "0.8.3";

    public function __construct($config = array(  ))
    {
        $this->buffer = NULL;
        $this->reconfigure($config);
        $this->reset_request_settings();
        $this->set_user_agent();
    }

    public function reconfigure($config = array(  ))
    {
        $this->config = array_merge(array( "user_agent" => "", "host" => "api.twitter.com", "consumer_key" => "", "consumer_secret" => "", "token" => "", "secret" => "", "bearer" => "", "oauth_version" => "1.0", "oauth_signature_method" => "HMAC-SHA1", "curl_http_version" => CURL_HTTP_VERSION_1_1, "curl_connecttimeout" => 30, "curl_timeout" => 10, "curl_ssl_verifyhost" => 2, "curl_ssl_verifypeer" => true, "use_ssl" => true, "curl_cainfo" => __DIR__ . DIRECTORY_SEPARATOR . "cacert.pem", "curl_capath" => __DIR__, "curl_followlocation" => false, "curl_proxy" => false, "curl_proxyuserpwd" => false, "curl_encoding" => "", "is_streaming" => false, "streaming_eol" => "\r\n", "streaming_metrics_interval" => 10, "as_header" => true, "force_nonce" => false, "force_timestamp" => false ), $config);
    }

    private function reset_request_settings($options = array(  ))
    {
        $this->request_settings = array( "params" => array(  ), "headers" => array(  ), "with_user" => true, "multipart" => false );
        if( !empty($options) )
        {
            $this->request_settings = array_merge($this->request_settings, $options);
        }

    }

    private function set_user_agent()
    {
        if( !empty($this->config["user_agent"]) )
        {
            return NULL;
        }

        $ssl = ($this->config["curl_ssl_verifyhost"] && $this->config["curl_ssl_verifypeer"] && $this->config["use_ssl"] ? "+" : "-");
        $ua = "tmhOAuth " . self::VERSION . $ssl . "SSL - //github.com/themattharris/tmhOAuth";
        $this->config["user_agent"] = $ua;
    }

    private function nonce($length = 12, $include_time = true)
    {
        if( $this->config["force_nonce"] === false )
        {
            $prefix = ($include_time ? microtime() : "");
            return md5(substr($prefix . uniqid(), 0, $length));
        }

        return $this->config["force_nonce"];
    }

    private function timestamp()
    {
        if( $this->config["force_timestamp"] === false )
        {
            $time = time();
        }
        else
        {
            $time = $this->config["force_timestamp"];
        }

        return (string) $time;
    }

    private function safe_encode($data)
    {
        if( is_array($data) )
        {
            return array_map(array( $this, "safe_encode" ), $data);
        }

        if( is_scalar($data) )
        {
            return str_ireplace(array( "+", "%7E" ), array( " ", "~" ), rawurlencode($data));
        }

        return "";
    }

    private function safe_decode($data)
    {
        if( is_array($data) )
        {
            return array_map(array( $this, "safe_decode" ), $data);
        }

        if( is_scalar($data) )
        {
            return rawurldecode($data);
        }

        return "";
    }

    private function prepare_oauth1_params()
    {
        $defaults = array( "oauth_nonce" => $this->nonce(), "oauth_timestamp" => $this->timestamp(), "oauth_version" => $this->config["oauth_version"], "oauth_consumer_key" => $this->config["consumer_key"], "oauth_signature_method" => $this->config["oauth_signature_method"] );
        if( $oauth_token = $this->token() )
        {
            $defaults["oauth_token"] = $oauth_token;
        }

        $this->request_settings["oauth1_params"] = array(  );
        foreach( $defaults as $k => $v )
        {
            $this->request_settings["oauth1_params"][$this->safe_encode($k)] = $this->safe_encode($v);
        }
    }

    private function token()
    {
        if( $this->request_settings["with_user"] )
        {
            if( isset($this->config["token"]) && !empty($this->config["token"]) )
            {
                return $this->config["token"];
            }

            if( isset($this->config["user_token"]) )
            {
                return $this->config["user_token"];
            }

        }

        return "";
    }

    private function secret()
    {
        if( $this->request_settings["with_user"] )
        {
            if( isset($this->config["secret"]) && !empty($this->config["secret"]) )
            {
                return $this->config["secret"];
            }

            if( isset($this->config["user_secret"]) )
            {
                return $this->config["user_secret"];
            }

        }

        return "";
    }

    public function extract_params($body)
    {
        $kvs = explode("&", $body);
        $decoded = array(  );
        foreach( $kvs as $kv )
        {
            $kv = explode("=", $kv, 2);
            $kv[0] = $this->safe_decode($kv[0]);
            $kv[1] = $this->safe_decode($kv[1]);
            $decoded[$kv[0]] = $kv[1];
        }
        return $decoded;
    }

    private function prepare_method()
    {
        $this->request_settings["method"] = strtoupper($this->request_settings["method"]);
    }

    private function prepare_url()
    {
        $parts = parse_url($this->request_settings["url"]);
        $port = (isset($parts["port"]) ? $parts["port"] : false);
        $scheme = $parts["scheme"];
        $host = $parts["host"];
        $path = (isset($parts["path"]) ? $parts["path"] : false);
        $port or $port = ($scheme == 'https') ? '443' : '80';
        if( $scheme == "https" && $port != "443" || $scheme == "http" && $port != "80" )
{
    $host = (string) $host . ":" . $port;
}

        $this->request_settings["url"] = strtolower((string) $scheme . "://" . $host);
        $this->request_settings["url"] .= $path;
    }

    private function multipart_escape($value)
    {
        if( !$this->request_settings["multipart"] || strpos($value, "@") !== 0 )
        {
            return $value;
        }

        list($file) = explode(";", substr($value, 1), 2);
        if( file_exists($file) )
        {
            return $value;
        }

        return " " . $value;
    }

    private function prepare_params()
    {
        $doing_oauth1 = false;
        $this->request_settings["prepared_params"] = array(  );
        $prepared =& $this->request_settings["prepared_params"];
        $prepared_pairs = array(  );
        $prepared_pairs_with_oauth = array(  );
        if( isset($this->request_settings["oauth1_params"]) )
        {
            $oauth1 =& $this->request_settings["oauth1_params"];
            $doing_oauth1 = true;
            $params = array_merge($oauth1, $this->request_settings["params"]);
            unset($params["oauth_signature"]);
            $oauth1 = array(  );
        }
        else
        {
            $params = $this->request_settings["params"];
        }

        uksort($params, "strcmp");
        foreach( $params as $k => $v )
        {
            $k = ($this->request_settings["multipart"] ? $k : $this->safe_encode($k));
            if( is_array($v) )
            {
                $v = implode(",", $v);
            }

            $v = ($this->request_settings["multipart"] ? $this->multipart_escape($v) : $this->safe_encode($v));
            if( $doing_oauth1 )
            {
                if( strpos($k, "oauth") === 0 || !$this->request_settings["multipart"] )
                {
                    $prepared_pairs_with_oauth[] = (string) $k . "=" . $v;
                }

                if( strpos($k, "oauth") === 0 )
                {
                    $oauth1[$k] = $v;
                    continue;
                }

            }

            $prepared[$k] = $v;
            $prepared_pairs[] = (string) $k . "=" . $v;
        }
        if( $doing_oauth1 )
        {
            $this->request_settings["basestring_params"] = implode("&", $prepared_pairs_with_oauth);
        }

        if( !empty($prepared_pairs) )
        {
            $content = implode("&", $prepared_pairs);
            switch( $this->request_settings["method"] )
            {
                case "POST":
                    $this->request_settings["postfields"] = ($this->request_settings["multipart"] ? $prepared : $content);
                    break;
                default:
                    $this->request_settings["querystring"] = $content;
                    break;
            }
        }

    }

    private function prepare_signing_key()
    {
        $left = $this->safe_encode($this->config["consumer_secret"]);
        $right = $this->safe_encode($this->secret());
        $this->request_settings["signing_key"] = $left . "&" . $right;
    }

    private function prepare_base_string()
    {
        $url = $this->request_settings["url"];
        if( !empty($this->request_settings["headers"]["Host"]) )
        {
            $url = str_ireplace($this->config["host"], $this->request_settings["headers"]["Host"], $url);
        }

        $base = array( $this->request_settings["method"], $url, $this->request_settings["basestring_params"] );
        $this->request_settings["basestring"] = implode("&", $this->safe_encode($base));
    }

    private function prepare_oauth_signature()
    {
        $this->request_settings["oauth1_params"]["oauth_signature"] = $this->safe_encode(base64_encode(hash_hmac("sha1", $this->request_settings["basestring"], $this->request_settings["signing_key"], true)));
    }

    private function prepare_auth_header()
    {
        if( !$this->config["as_header"] )
        {
            return NULL;
        }

        if( isset($this->request_settings["oauth1_params"]) )
        {
            uksort($this->request_settings["oauth1_params"], "strcmp");
            $encoded_quoted_pairs = array(  );
            foreach( $this->request_settings["oauth1_params"] as $k => $v )
            {
                $encoded_quoted_pairs[] = (string) $k . "=\"" . $v . "\"";
            }
            $header = "OAuth " . implode(", ", $encoded_quoted_pairs);
        }
        else
        {
            if( !empty($this->config["bearer"]) )
            {
                $header = "Bearer " . $this->config["bearer"];
            }

        }

        if( isset($header) )
        {
            $this->request_settings["headers"]["Authorization"] = $header;
        }

    }

    public function bearer_token_credentials()
    {
        $credentials = implode(":", array( $this->safe_encode($this->config["consumer_key"]), $this->safe_encode($this->config["consumer_secret"]) ));
        return base64_encode($credentials);
    }

    public function request($method, $url, $params = array(  ), $useauth = true, $multipart = false, $headers = array(  ))
    {
        $options = array( "method" => $method, "url" => $url, "params" => $params, "with_user" => true, "multipart" => $multipart, "headers" => $headers );
        $options = array_merge($this->default_options(), $options);
        if( $useauth )
        {
            return $this->user_request($options);
        }

        return $this->unauthenticated_request($options);
    }

    public function apponly_request($options = array(  ))
    {
        $options = array_merge($this->default_options(), $options, array( "with_user" => false ));
        $this->reset_request_settings($options);
        if( $options["without_bearer"] )
        {
            return $this->oauth1_request();
        }

        $this->prepare_method();
        $this->prepare_url();
        $this->prepare_params();
        $this->prepare_auth_header();
        return $this->curlit();
    }

    public function user_request($options = array(  ))
    {
        $options = array_merge($this->default_options(), $options, array( "with_user" => true ));
        $this->reset_request_settings($options);
        return $this->oauth1_request();
    }

    public function unauthenticated_request($options = array(  ))
    {
        $options = array_merge($this->default_options(), $options, array( "with_user" => false ));
        $this->reset_request_settings($options);
        $this->prepare_method();
        $this->prepare_url();
        $this->prepare_params();
        return $this->curlit();
    }

    private function oauth1_request()
    {
        $this->prepare_oauth1_params();
        $this->prepare_method();
        $this->prepare_url();
        $this->prepare_params();
        $this->prepare_base_string();
        $this->prepare_signing_key();
        $this->prepare_oauth_signature();
        $this->prepare_auth_header();
        return $this->curlit();
    }

    private function default_options()
    {
        return array( "method" => "GET", "params" => array(  ), "with_user" => true, "multipart" => false, "headers" => array(  ), "without_bearer" => false );
    }

    public function streaming_request($method, $url, $params = array(  ), $callback = "")
    {
        if( !empty($callback) )
        {
            if( !is_callable($callback) )
            {
                return false;
            }

            $this->config["streaming_callback"] = $callback;
        }

        $this->metrics["start"] = time();
        $this->metrics["interval_start"] = $this->metrics["start"];
        $this->metrics["messages"] = 0;
        $this->metrics["last_messages"] = 0;
        $this->metrics["bytes"] = 0;
        $this->metrics["last_bytes"] = 0;
        $this->config["is_streaming"] = true;
        $this->request($method, $url, $params);
    }

    private function update_metrics()
    {
        $now = time();
        if( $now < $this->metrics["interval_start"] + $this->config["streaming_metrics_interval"] )
        {
            return NULL;
        }

        $this->metrics["mps"] = round(($this->metrics["messages"] - $this->metrics["last_messages"]) / $this->config["streaming_metrics_interval"], 2);
        $this->metrics["bps"] = round(($this->metrics["bytes"] - $this->metrics["last_bytes"]) / $this->config["streaming_metrics_interval"], 2);
        $this->metrics["last_bytes"] = $this->metrics["bytes"];
        $this->metrics["last_messages"] = $this->metrics["messages"];
        $this->metrics["interval_start"] = $now;
        return $this->metrics;
    }

    public function url($request, $extension = "json")
    {
        $request = preg_replace("\$([^:])//+\$", "\$1/", $request);
        if( stripos($request, "http") === 0 || stripos($request, "//") === 0 )
        {
            return $request;
        }

        $extension = (0 < strlen($extension) ? "." . $extension : "");
        $proto = ($this->config["use_ssl"] ? "https:/" : "http:/");
        $request = ltrim($request, "/");
        $pos = strlen($request) - strlen($extension);
        if( substr($request, $pos) === $extension )
        {
            $request = substr_replace($request, "", $pos);
        }

        return implode("/", array( $proto, $this->config["host"], $request . $extension ));
    }

    public function transformText($text, $mode = "encode")
    {
        return $this->{"safe_" . $mode}($text);
    }

    private function curlHeader($ch, $header)
    {
        $this->response["raw"] .= $header;
        list($key, $value) = array_pad(explode(":", $header, 2), 2, NULL);
        $key = trim($key);
        $value = trim($value);
        if( !isset($this->response["headers"][$key]) )
        {
            $this->response["headers"][$key] = $value;
        }
        else
        {
            if( !is_array($this->response["headers"][$key]) )
            {
                $this->response["headers"][$key] = array( $this->response["headers"][$key] );
            }

            $this->response["headers"][$key][] = $value;
        }

        return strlen($header);
    }

    private function curlWrite($ch, $data)
    {
        $l = strlen($data);
        if( strpos($data, $this->config["streaming_eol"]) === false )
        {
            $this->buffer .= $data;
            return $l;
        }

        $buffered = explode($this->config["streaming_eol"], $data);
        $content = $this->buffer . $buffered[0];
        $this->metrics["messages"]++;
        $this->metrics["bytes"] += strlen($content);
        if( !is_callable($this->config["streaming_callback"]) )
        {
            return 0;
        }

        $metrics = $this->update_metrics();
        $stop = call_user_func($this->config["streaming_callback"], $content, strlen($content), $metrics);
        $this->buffer = $buffered[1];
        if( $stop )
        {
            return 0;
        }

        return $l;
    }

    private function curlit()
    {
        $this->response = array( "raw" => "" );
        $c = curl_init();
        switch( $this->request_settings["method"] )
        {
            case "GET":
                if( isset($this->request_settings["querystring"]) )
                {
                    $this->request_settings["url"] = $this->request_settings["url"] . "?" . $this->request_settings["querystring"];
                }

                break;
            case "POST":
                curl_setopt($c, CURLOPT_POST, true);
                if( isset($this->request_settings["postfields"]) )
                {
                    $postfields = $this->request_settings["postfields"];
                }
                else
                {
                    $postfields = array(  );
                }

                curl_setopt($c, CURLOPT_POSTFIELDS, $postfields);
                break;
            default:
                if( isset($this->request_settings["postfields"]) )
                {
                    curl_setopt($c, CURLOPT_CUSTOMREQUEST, $this->request_settings["postfields"]);
                }

        }
        curl_setopt_array($c, array( CURLOPT_HTTP_VERSION => $this->config["curl_http_version"], CURLOPT_USERAGENT => $this->config["user_agent"], CURLOPT_CONNECTTIMEOUT => $this->config["curl_connecttimeout"], CURLOPT_TIMEOUT => $this->config["curl_timeout"], CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => $this->config["curl_ssl_verifypeer"], CURLOPT_SSL_VERIFYHOST => $this->config["curl_ssl_verifyhost"], CURLOPT_FOLLOWLOCATION => $this->config["curl_followlocation"], CURLOPT_PROXY => $this->config["curl_proxy"], CURLOPT_ENCODING => $this->config["curl_encoding"], CURLOPT_URL => $this->request_settings["url"], CURLOPT_HEADERFUNCTION => array( $this, "curlHeader" ), CURLOPT_HEADER => false, CURLINFO_HEADER_OUT => true ));
        if( $this->config["curl_cainfo"] !== false )
        {
            curl_setopt($c, CURLOPT_CAINFO, $this->config["curl_cainfo"]);
        }

        if( $this->config["curl_capath"] !== false )
        {
            curl_setopt($c, CURLOPT_CAPATH, $this->config["curl_capath"]);
        }

        if( $this->config["curl_proxyuserpwd"] !== false )
        {
            curl_setopt($c, CURLOPT_PROXYUSERPWD, $this->config["curl_proxyuserpwd"]);
        }

        if( $this->config["is_streaming"] )
        {
            $this->response["content-length"] = 0;
            curl_setopt($c, CURLOPT_TIMEOUT, 0);
            curl_setopt($c, CURLOPT_WRITEFUNCTION, array( $this, "curlWrite" ));
        }

        if( !empty($this->request_settings["headers"]) )
        {
            foreach( $this->request_settings["headers"] as $k => $v )
            {
                $headers[] = trim($k . ": " . $v);
            }
            curl_setopt($c, CURLOPT_HTTPHEADER, $headers);
        }

        if( isset($this->config["block"]) && true === $this->config["block"] )
        {
            return 0;
        }

        $response = curl_exec($c);
        $code = curl_getinfo($c, CURLINFO_HTTP_CODE);
        $info = curl_getinfo($c);
        $error = curl_error($c);
        $errno = curl_errno($c);
        curl_close($c);
        $this->response["code"] = $code;
        $this->response["response"] = $response;
        $this->response["info"] = $info;
        $this->response["error"] = $error;
        $this->response["errno"] = $errno;
        if( !isset($this->response["raw"]) )
        {
            $this->response["raw"] = "";
        }

        $this->response["raw"] .= $response;
        return $code;
    }

}

function handleoptions()
{
    global $TSUE;
    $HTML = "";
    if( $TSUE["option"] )
    {
        if( isset($_POST["settings"]) && isset($_POST["save_options"]) )
        {
            $HTML = successmessage(get_phrase("message_saved"));
            if( isset($_POST["settings"]["website_url"]) && substr($_POST["settings"]["website_url"], -1) == "/" )
            {
                $_POST["settings"]["website_url"] = rtrim($_POST["settings"]["website_url"], "/");
            }

            updatesettings("global_settings", array_merge($TSUE["TSUE_Settings"]->settings["global_settings"], $_POST["settings"]));
            aaaaal();
            handlerebuildcaches(false);
            handleprune(false);
        }
        else
        {
            $HTML = "";
            $aaaaam = "";
            switch( $TSUE["option"] )
            {
                case "website_active":
                    $radioButtons = radioyesno("settings[website_active]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_active"]);
                    $formContents = aaaaan(get_phrase("dashboard_options_website_active"), $radioButtons, get_phrase("dashboard_options_website_active_alt"));
                    $textarea = textarea("settings[website_active_reason]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_active_reason"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_website_active_reason"), $textarea, get_phrase("dashboard_options_website_active_reason_alt"));
                    $radioButtons = radioyesno("settings[tsue_debug_mode]", $TSUE["TSUE_Settings"]->settings["global_settings"]["tsue_debug_mode"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_debug_mode"), $radioButtons, get_phrase("dashboard_options_debug_mode_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_website_active") );
                    break;
                case "basic_website_information":
                    $inputbox = inputbox("settings[website_url]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]);
                    $formContents = aaaaan(get_phrase("dashboard_options_website_url"), $inputbox, get_phrase("dashboard_options_website_url_alt"));
                    $inputbox = inputbox("settings[website_title]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_website_title"), $inputbox, get_phrase("dashboard_options_website_title_alt"));
                    $inputbox = inputbox("settings[website_description]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_description"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_website_description"), $inputbox, get_phrase("dashboard_options_website_description_alt"));
                    $inputbox = inputbox("settings[website_email]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_email"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_website_email"), $inputbox, get_phrase("dashboard_options_website_email_alt"));
                    $inputbox = inputbox("settings[donate_goal]", $TSUE["TSUE_Settings"]->settings["global_settings"]["donate_goal"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_donate_goal"), $inputbox, get_phrase("dashboard_options_donate_goal_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_basic_website_information") );
                    break;
                case "email_options":
                    $inputbox = inputbox("settings[website_sendmail_from]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_sendmail_from"]);
                    $formContents = aaaaan(get_phrase("dashboard_options_website_sendmail_from"), $inputbox, get_phrase("dashboard_options_website_sendmail_from_alt"));
                    $radioButtons = radioyesno("settings[use_f_parameter]", $TSUE["TSUE_Settings"]->settings["global_settings"]["use_f_parameter"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type_use_f_parameter"), $radioButtons, get_phrase("dashboard_options_mail_type_use_f_parameter_alt"));
                    $radioButtons = radioyesno("settings[mail_type]", $TSUE["TSUE_Settings"]->settings["global_settings"]["mail_type"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type"), $radioButtons, get_phrase("dashboard_options_mail_type_alt"));
                    $inputbox = inputbox("settings[smtp_host]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_host"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_host"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_host_alt"));
                    $inputbox = inputbox("settings[smtp_port]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_port"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_port"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_port_alt"));
                    $inputbox = inputbox("settings[smtp_user]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_user"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_user"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_user_alt"));
                    $inputbox = inputbox("settings[smtp_pass]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_pass"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_pass"), $inputbox, get_phrase("dashboard_options_mail_type_smtp_pass_alt"));
                    $radioButtons = radioyesno("settings[smtp_secure]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_secure"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_secure"), $radioButtons, get_phrase("dashboard_options_mail_type_smtp_secure_alt"));
                    $radioButtons = radioyesno("settings[smtp_debug]", $TSUE["TSUE_Settings"]->settings["global_settings"]["smtp_debug"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_mail_type_smtp_debug"), $radioButtons, get_phrase("dashboard_options_mail_type_smtp_debug_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_email_options") );
                    break;
                case "member_registration":
                    $aaaaao = array( get_phrase("dashboard_options_website_allow_signup_0"), get_phrase("dashboard_options_website_allow_signup_1"), get_phrase("dashboard_options_website_allow_signup_2"), get_phrase("dashboard_options_website_allow_signup_3"), get_phrase("dashboard_options_website_allow_signup_4") );
                    $selectbox = selectbox("settings[website_allow_signup]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_allow_signup"], $aaaaao);
                    $formContents = aaaaan(get_phrase("dashboard_options_website_allow_signup"), $selectbox, get_phrase("dashboard_options_website_allow_signup_alt"));
                    $aaaaao = array( get_phrase("dashboard_options_website_new_signup_verification_0"), get_phrase("dashboard_options_website_new_signup_verification_1"), get_phrase("dashboard_options_website_new_signup_verification_2") );
                    $selectbox = selectbox("settings[website_new_signup_verification]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_new_signup_verification"], $aaaaao);
                    $formContents .= aaaaan(get_phrase("dashboard_options_website_new_signup_verification"), $selectbox, get_phrase("dashboard_options_website_new_signup_verification_alt"));
                    $inputbox = inputbox("settings[max_members_limit]", getsetting("global_settings", "max_members_limit", 0), "text");
                    $formContents .= aaaaan(get_phrase("max_members_limit"), $inputbox, get_phrase("max_members_limit_alt"));
                    $inputbox = inputbox("settings[membername_match_regular_expression]", getsetting("global_settings", "membername_match_regular_expression", "^[a-zA-Z0-9]+\$"), "text");
                    $formContents .= aaaaan(get_phrase("membername_match_regular_expression"), $inputbox, get_phrase("membername_match_regular_expression_alt"));
                    $radioButtons = radioyesno("settings[force_member_to_agree_to_the_terms_of_service_and_rules]", getsetting("global_settings", "force_member_to_agree_to_the_terms_of_service_and_rules"));
                    $formContents .= aaaaan(get_phrase("force_member_to_agree_to_the_terms_of_service_and_rules"), $radioButtons, get_phrase("force_member_to_agree_to_the_terms_of_service_and_rules_alt"));
                    $textarea = textarea("settings[member_name_illegal_member_names]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_illegal_member_names"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_member_name_illegal_member_names"), $textarea, get_phrase("dashboard_options_member_name_illegal_member_names_alt"));
                    $inputbox = inputbox("settings[member_name_min_char]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_min_char"], "text texthalf");
                    $inputbox .= inputbox("settings[member_name_max_char]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_max_char"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_member_name_length_limit"), $inputbox, get_phrase("dashboard_options_member_name_length_limit_alt"));
                    $inputbox = inputbox("settings[member_password_min_char]", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"], "text");
                    $formContents .= aaaaan(get_phrase("dashboard_options_member_password_min_char"), $inputbox, get_phrase("dashboard_options_member_password_min_char_alt"));
                    $aaaaao = fetch_timezones();
                    $selectbox = selectbox("settings[d_timezone]", $TSUE["TSUE_Settings"]->settings["global_settings"]["d_timezone"], $aaaaao);
                    $formContents .= aaaaan(get_phrase("dashboard_options_d_timezone"), $selectbox, get_phrase("dashboard_options_d_timezone_alt"));
                    $inputbox = inputbox("settings[default_uploaded]", getsetting("global_settings", "default_uploaded"), "text texthalf", "GB");
                    $formContents .= aaaaan(get_phrase("stats_uploaded"), $inputbox, get_phrase("default_uploaded_alt"));
                    $inputbox = inputbox("settings[default_points]", getsetting("global_settings", "default_points"), "text texthalf");
                    $formContents .= aaaaan(get_phrase("stats_points"), $inputbox, get_phrase("default_points_alt"));
                    $inputbox = inputbox("settings[default_invites]", getsetting("global_settings", "default_invites"), "text texthalf");
                    $formContents .= aaaaan(get_phrase("stats_total_invites"), $inputbox, get_phrase("default_invites_alt"));
                    $radioButtons = radioyesno("settings[prevent_multiple_account]", getsetting("global_settings", "prevent_multiple_account"));
                    $formContents .= aaaaan(get_phrase("prevent_multiple_account_registration"), $radioButtons, get_phrase("prevent_multiple_account_registration_alt"));
                    $welcome_pm_text = get_phrase("welcome_pm_text", "?action=Appearance&do=Languages&type=editPhrase&languageid=1&text=new_member_welcome_pm_body", "?action=Appearance&do=Languages&type=editPhrase&languageid=1&text=new_member_welcome_pm_subject");
                    $radioButtons = radioyesno("settings[send_welcome_pm]", getsetting("global_settings", "send_welcome_pm"));
                    $formContents .= aaaaan(get_phrase("send_welcome_pm"), $radioButtons, get_phrase("send_welcome_pm_alt") . " " . $welcome_pm_text);
                    $inputbox = inputbox("settings[send_welcome_pm_owner]", getsetting("global_settings", "send_welcome_pm_owner"), "text texthalf");
                    $formContents .= aaaaan(get_phrase("send_welcome_pm_owner"), $inputbox);
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_member_registration") );
                    break;
                case "appearance":
                    $aaaaao = aaaaap();
                    $selectbox = selectbox("settings[d_themeid]", $TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"], $aaaaao);
                    $formContents = aaaaan(get_phrase("dashboard_options_d_themeid"), $selectbox, get_phrase("dashboard_options_d_themeid_alt"));
                    $aaaaao = aaaaaq();
                    $selectbox = selectbox("settings[d_languageid]", $TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"], $aaaaao);
                    $formContents .= aaaaan(get_phrase("dashboard_options_d_languageid"), $selectbox, get_phrase("dashboard_options_d_languageid_alt"));
                    $radioButtons = radioyesno("settings[torrent_catz_always_visible]", getsetting("global_settings", "torrent_catz_always_visible"));
                    $formContents .= aaaaan(get_phrase("torrent_catz_always_visible"), $radioButtons, get_phrase("torrent_catz_always_visible_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_appearance") );
                    break;
                case "cookies":
                    $inputbox = inputbox("settings[website_timeout]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_timeout"], "text texthalf");
                    $formContents = aaaaan(get_phrase("dashboard_options_website_timeout"), $inputbox, get_phrase("dashboard_options_website_timeout_alt"));
                    $inputbox = inputbox("settings[cookie_path]", $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_path"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_cookie_path"), $inputbox, get_phrase("dashboard_options_cookie_path_alt"));
                    $inputbox = inputbox("settings[cookie_domain]", $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_domain"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_cookie_domain"), $inputbox, get_phrase("dashboard_options_cookie_domain_alt"));
                    $inputbox = inputbox("settings[gzip_compression_level]", $TSUE["TSUE_Settings"]->settings["global_settings"]["gzip_compression_level"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_gzip_compression_level"), $inputbox, get_phrase("dashboard_options_gzip_compression_level_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_cookies") );
                    break;
                case "announce":
                    $inputbox = inputbox("settings[announce_url]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_url"], "text");
                    $formContents = aaaaan(get_phrase("dashboard_options_announce_url"), $inputbox, get_phrase("dashboard_options_announce_url_alt"));
                    $inputbox = inputbox("settings[announce_interval]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_interval"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_announce_interval"), $inputbox, get_phrase("dashboard_options_announce_interval_alt"));
                    $aaaaao = array( get_phrase("dashboard_options_announce_check_peerid_0"), get_phrase("dashboard_options_announce_check_peerid_1"), get_phrase("dashboard_options_announce_check_peerid_2") );
                    $selectbox = selectbox("settings[announce_check_peerid]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_check_peerid"], $aaaaao);
                    $formContents .= aaaaan(get_phrase("dashboard_options_announce_check_peerid"), $selectbox, get_phrase("dashboard_options_announce_check_peerid_alt"));
                    $textarea = textarea("settings[announce_check_peerlist]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_check_peerlist"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_announce_check_peerlist"), $textarea, get_phrase("dashboard_options_announce_check_peerlist_alt"));
                    $radioButtons = radioyesno("settings[announce_check_ip]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_check_ip"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_announce_check_ip"), $radioButtons, get_phrase("dashboard_options_announce_check_ip_alt"));
                    $radioButtons = radioyesno("settings[announce_private_torrents_only]", $TSUE["TSUE_Settings"]->settings["global_settings"]["announce_private_torrents_only"]);
                    $formContents .= aaaaan(get_phrase("dashboard_options_announce_private_torrents_only") . " (" . get_phrase("dashboard_options_announce_private_torrents_only_alt2") . ")", $radioButtons, get_phrase("dashboard_options_announce_private_torrents_only_alt"));
                    $radioButtons = radioyesno("settings[announce_add_announce_url]", getsetting("global_settings", "announce_add_announce_url"));
                    $formContents .= aaaaan(get_phrase("announce_add_announce_url"), $radioButtons, get_phrase("announce_add_announce_url_alt"));
                    $radioButtons = radioyesno("settings[show_announce_url]", getsetting("global_settings", "show_announce_url"));
                    $formContents .= aaaaan(get_phrase("show_announce_url"), $radioButtons, get_phrase("show_announce_url_alt"));
                    $radioButtons = radioyesno("settings[announce_check_slots]", getsetting("global_settings", "announce_check_slots"));
                    $formContents .= aaaaan(get_phrase("announce_check_slots"), $radioButtons, get_phrase("announce_check_slots_alt"));
                    $radioButtons = radioyesno("settings[announce_bump_inactive_torrents]", getsetting("global_settings", "announce_bump_inactive_torrents"));
                    $formContents .= aaaaan(get_phrase("bump_inactive_torrents"), $radioButtons, get_phrase("bump_inactive_torrents_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_announce") );
                    break;
                case "ipban":
                    if( isset($_POST["save_options"]) )
                    {
                        if( isset($_POST["removeip"]) )
                        {
                            if( is_array($_POST["removeip"]) )
                            {
                                $ip = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $_POST["removeip"]));
                                $TSUE["TSUE_Database"]->delete("tsue_ip_match", "ip IN (" . $ip . ") AND match_type = 'banned'");
                                $outputMessage = "-UPDATE_HTML-~#bannedIPaddresses~" . successmessage(get_phrase("message_saved")) . getbannedips();
                            }

                        }
                        else
                        {
                            $ip = (isset($_POST["ip"]) ? trim($_POST["ip"]) : false);
                            if( $ip )
                            {
                                $banIp = banip($ip);
                                if( !is_array($banIp) )
                                {
                                    $HTML = errormessage(get_phrase("dashboard_options_ipban_invalid_ip"));
                                }
                                else
                                {
                                    $BuildQuery = array( "ip" => $banIp["0"], "first_octet" => $banIp["1"], "start_range" => $banIp["2"], "end_range" => $banIp["3"] );
                                    $TSUE["TSUE_Database"]->replace("tsue_ip_match", $BuildQuery);
                                    $outputMessage = "-UPDATE_HTML-~#bannedIPaddresses~" . successmessage(get_phrase("message_saved")) . getbannedips();
                                }

                            }

                        }

                        handlerebuildcaches(false);
                        aaaaal();
                        if( isset($outputMessage) )
                        {
                            _sendheaders($outputMessage);
                        }

                        exit();
                    }

                    $formContents = aaaaan(get_phrase("dashboard_options_ipban_span"), getbannedips(), "", "optionsInOverlay", "dashboard_options_ipban");
                    $inputbox = inputbox("ip", "", "text");
                    $formContents .= aaaaan(get_phrase("dashboard_options_ipban_ip"), $inputbox, get_phrase("dashboard_options_ipban_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_ipban") );
                    break;
                case "emailban":
                    if( isset($_POST["save_options"]) )
                    {
                        if( isset($_POST["removeemail"]) )
                        {
                            if( is_array($_POST["removeemail"]) )
                            {
                                $email = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $_POST["removeemail"]));
                                $TSUE["TSUE_Database"]->delete("tsue_ban_email", "banned_email IN (" . $email . ")");
                                $outputMessage = "-UPDATE_HTML-~#bannedEmailaddresses~" . successmessage(get_phrase("message_saved")) . aaaaar();
                            }

                        }
                        else
                        {
                            $email = (isset($_POST["email"]) ? trim($_POST["email"]) : false);
                            if( $email )
                            {
                                $banEmail = banemail($email);
                                if( !is_array($banEmail) )
                                {
                                    $HTML = errormessage($banEmail);
                                }
                                else
                                {
                                    $BuildQuery = array( "banned_email" => $banEmail["0"] );
                                    $TSUE["TSUE_Database"]->replace("tsue_ban_email", $BuildQuery);
                                    $outputMessage = "-UPDATE_HTML-~#bannedEmailaddresses~" . successmessage(get_phrase("message_saved")) . aaaaar();
                                }

                            }

                        }

                        handlerebuildcaches(false);
                        aaaaal();
                        if( isset($outputMessage) )
                        {
                            _sendheaders($outputMessage);
                        }

                        exit();
                    }

                    $formContents = aaaaan(get_phrase("dashboard_options_emailban_span"), aaaaar(), "", "optionsInOverlay", "dashboard_options_emailban");
                    $inputbox = inputbox("email", "", "text");
                    $formContents .= aaaaan(get_phrase("dashboard_options_emailban_email"), $inputbox, get_phrase("dashboard_options_emailban_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_emailban") );
                    break;
                case "countryban":
                    if( isset($_POST["save_options"]) )
                    {
                        if( isset($_POST["removecountry"]) )
                        {
                            if( is_array($_POST["removecountry"]) )
                            {
                                $countries = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $_POST["removecountry"]));
                                $TSUE["TSUE_Database"]->delete("tsue_ban_country", "country IN (" . $countries . ")");
                                $outputMessage = "-UPDATE_HTML-~#bannedCountries~" . successmessage(get_phrase("message_saved")) . getbannedcountries();
                            }

                        }
                        else
                        {
                            $country = (isset($_POST["country"]) ? trim(strtolower($_POST["country"])) : "");
                            $aaaaas = strlen($country);
                            if( 2 <= $aaaaas )
                            {
                                $BuildQuery = array( "country" => ($aaaaas == 2 ? strtoupper($country) : ucfirst($country)) );
                                $TSUE["TSUE_Database"]->replace("tsue_ban_country", $BuildQuery);
                                $outputMessage = "-UPDATE_HTML-~#bannedCountries~" . successmessage(get_phrase("message_saved")) . getbannedcountries();
                            }

                        }

                        handlerebuildcaches(false);
                        aaaaal();
                        if( isset($outputMessage) )
                        {
                            _sendheaders($outputMessage);
                        }

                        exit();
                    }

                    $formContents = "<h2>This feature uses <a href=\"http://www.maxmind.com/app/javascript\" target=\"_blank\">GeoIP from MaxMind</a>.</h2>";
                    $formContents .= aaaaan(get_phrase("dashboard_options_countryban_span"), getbannedcountries(), "", "optionsInOverlay", "dashboard_options_countryban");
                    $inputbox = inputbox("country", "", "text");
                    $formContents .= aaaaan(get_phrase("country_to_ban"), $inputbox, get_phrase("country_to_ban_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_countryban") );
                    break;
                case "censoring":
                    if( isset($_POST["save_options"]) )
                    {
                        $words = $_POST["options"]["censorWords"];
                        aaaaat($words);
                        updatesettings("censor_cache", array( "censoring_censor_character" => trim($_POST["censoring_censor_character"]), "censorWords" => $words ));
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = "-UPDATE_HTML-~#buildCensoringHTML~" . successmessage(get_phrase("message_saved")) . aaaaau();
                        aaaaal();
                        if( isset($outputMessage) )
                        {
                            _sendheaders($outputMessage);
                        }

                        exit();
                    }

                    $formContents = aaaaau();
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_censoring") );
                    break;
                case "seo":
                    $radioButtons = radioyesno("settings[social_media_buttons]", $TSUE["TSUE_Settings"]->settings["global_settings"]["social_media_buttons"]);
                    $formContents = aaaaan(get_phrase("dashboard_options_seo_enable_social_media"), $radioButtons, get_phrase("dashboard_options_seo_enable_social_media_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_seo") );
                    break;
                case "limitations":
                    $inputbox = inputbox("settings[reseed_request_flood_limit]", $TSUE["TSUE_Settings"]->settings["global_settings"]["reseed_request_flood_limit"], "text");
                    $formContents = aaaaan(get_phrase("dashboard_options_limitations_reseed_request_flood_limit"), $inputbox, get_phrase("dashboard_options_limitations_reseed_request_flood_limit_alt"));
                    $inputbox = inputbox("settings[website_torrents_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_torrents_perpage"], "text");
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_torrents_perpage"), $inputbox, get_phrase("dashboard_options_limitations_torrents_perpage_alt"));
                    $inputbox = inputbox("settings[website_rss_perpage]", getsetting("global_settings", "website_rss_perpage", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_torrents_perpage"]), "text");
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_rss_perpage"), $inputbox, get_phrase("dashboard_options_limitations_rss_perpage_alt"));
                    $inputbox = inputbox("settings[website_comments_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_comments_perpage"], "text");
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_comments_perpage"), $inputbox, get_phrase("dashboard_options_limitations_comments_perpage_alt"));
                    $inputbox = inputbox("settings[website_messages_perpage]", getsetting("global_settings", "website_messages_perpage", 15), "text");
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_messages_perpage"), $inputbox, get_phrase("dashboard_options_limitations_messages_perpage_alt"));
                    $inputbox = inputbox("settings[website_members_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_members_perpage"], "text");
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_members_perpage"), $inputbox, get_phrase("dashboard_options_limitations_members_perpage_alt"));
                    $inputbox = inputbox("settings[forums_threads_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_threads_perpage"], "text");
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_threads_perpage"), $inputbox, get_phrase("dashboard_options_limitations_threads_perpage_alt"));
                    $inputbox = inputbox("settings[forums_posts_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_posts_perpage"], "text");
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_posts_perpage"), $inputbox, get_phrase("dashboard_options_limitations_posts_perpage_alt"));
                    $inputbox = inputbox("settings[subtitles_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_perpage"], "text");
                    $formContents .= aaaaan(get_phrase("subtitles_perpage"), $inputbox, get_phrase("subtitles_perpage_alt"));
                    $inputbox = inputbox("settings[requests_perpage]", $TSUE["TSUE_Settings"]->settings["global_settings"]["requests_perpage"], "text");
                    $formContents .= aaaaan(get_phrase("requests_per_page"), $inputbox, get_phrase("requests_per_page_alt"));
                    $inputbox = inputbox("settings[comment_post_min_char_length]", $TSUE["TSUE_Settings"]->settings["global_settings"]["comment_post_min_char_length"], "text texthalf");
                    $inputbox .= inputbox("settings[comment_post_max_char_length]", $TSUE["TSUE_Settings"]->settings["global_settings"]["comment_post_max_char_length"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_comments_length_limit"), $inputbox, get_phrase("dashboard_options_limitations_comments_length_limit_alt"));
                    $inputbox = inputbox("settings[forums_max_thread_title_limit]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_max_thread_title_limit"], "text");
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_threads_max_title_limit"), $inputbox, get_phrase("dashboard_options_limitations_threads_max_title_limit_alt"));
                    $inputbox = inputbox("settings[forums_min_post_length]", $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_min_post_length"], "text");
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_posts_min_limit"), $inputbox, get_phrase("dashboard_options_limitations_posts_min_limit_alt"));
                    $inputbox = inputbox("settings[website_resize_images_max_width]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_resize_images_max_width"], "text texthalf");
                    $inputbox .= inputbox("settings[website_resize_images_max_height]", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_resize_images_max_height"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_scale_images"), $inputbox, get_phrase("dashboard_options_limitations_scale_images_alt"));
                    $inputbox = inputbox("settings[allowed_file_types]", $TSUE["TSUE_Settings"]->settings["global_settings"]["allowed_file_types"], "text");
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_allowed_file_types"), $inputbox, get_phrase("dashboard_options_limitations_allowed_file_types_alt"));
                    $inputbox = inputbox("settings[max_file_size]", $TSUE["TSUE_Settings"]->settings["global_settings"]["max_file_size"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_max_file_size"), $inputbox . " " . friendly_size($TSUE["TSUE_Settings"]->settings["global_settings"]["max_file_size"]), get_phrase("dashboard_options_limitations_max_file_size_alt"));
                    $inputbox = inputbox("settings[torrent_category_row_limit]", getsetting("global_settings", "torrent_category_row_limit", 3), "text texthalf");
                    $formContents .= aaaaan(get_phrase("torrent_categories_row_limit"), $inputbox, get_phrase("torrent_categories_row_limit_alt"));
                    $inputbox = inputbox("settings[request_torrent_chars_limit]", getsetting("global_settings", "request_torrent_chars_limit", 255), "text texthalf");
                    $formContents .= aaaaan(get_phrase("request_torrent_chars_limit"), $inputbox, get_phrase("request_torrent_chars_limit_alt"));
                    $inputbox = inputbox("settings[upcoming_releases_perpage]", getsetting("global_settings", "upcoming_releases_perpage", 10), "text");
                    $formContents .= aaaaan(get_phrase("upcoming_releases_perpage"), $inputbox, get_phrase("upcoming_releases_perpage_alt"));
                    $inputbox = inputbox("settings[upcoming_releases_chars_limit]", getsetting("global_settings", "upcoming_releases_chars_limit", 255), "text texthalf");
                    $formContents .= aaaaan(get_phrase("upcoming_releases_chars_limit"), $inputbox, get_phrase("upcoming_releases_chars_limit_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_limitations") );
                    break;
                case "member_alerts":
                    $inputbox = inputbox("settings[alerts_popup_expiry_hours]", $TSUE["TSUE_Settings"]->settings["global_settings"]["alerts_popup_expiry_hours"], "text");
                    $formContents = aaaaan(get_phrase("dashboard_options_member_alerts_expirity_hours"), $inputbox, get_phrase("dashboard_options_member_alerts_expirity_hours_alt"));
                    $inputbox = inputbox("settings[alerts_popup_expiry_days]", $TSUE["TSUE_Settings"]->settings["global_settings"]["alerts_popup_expiry_days"], "text");
                    $formContents .= aaaaan(get_phrase("dashboard_options_member_alerts_expirity_days"), $inputbox, get_phrase("dashboard_options_member_alerts_expirity_days_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_member_alerts") );
                    break;
                case "cleanup":
                    $inputbox = inputbox("settings[peers_prune_in_day]", $TSUE["TSUE_Settings"]->settings["global_settings"]["peers_prune_in_day"], "text");
                    $formContents = aaaaan(get_phrase("dashboard_options_cleanup_prune_snatch_list"), $inputbox, get_phrase("dashboard_options_cleanup_prune_snatch_list_alt") . " " . get_phrase("leave_empty_to_skip_this"));
                    $inputbox = inputbox("settings[shouts_prune_in_day]", $TSUE["TSUE_Settings"]->settings["global_settings"]["shouts_prune_in_day"], "text");
                    $formContents .= aaaaan(get_phrase("dashboard_options_cleanup_prune_shouts"), $inputbox, get_phrase("dashboard_options_cleanup_prune_shouts_alt") . " " . get_phrase("leave_empty_to_skip_this"));
                    $inputbox = inputbox("settings[days_retain_posted_request]", getsetting("global_settings", "days_retain_posted_request"), "text");
                    $formContents .= aaaaan(get_phrase("days_retain_posted_request"), $inputbox, get_phrase("days_retain_posted_request_alt") . " " . get_phrase("leave_empty_to_skip_this"));
                    $inputbox = inputbox("settings[days_retain_dead_torrents]", getsetting("global_settings", "days_retain_dead_torrents"), "text");
                    $formContents .= aaaaan(get_phrase("days_retain_dead_torrents"), $inputbox, get_phrase("days_retain_dead_torrents_alt") . " " . get_phrase("leave_empty_to_skip_this"));
                    $inputbox = inputbox("settings[days_retain_unused_invites]", getsetting("global_settings", "days_retain_unused_invites"), "text");
                    $formContents .= aaaaan(get_phrase("days_retain_unused_invites"), $inputbox, get_phrase("days_retain_unused_invites_alt") . " " . get_phrase("leave_empty_to_skip_this"));
                    $inputbox = inputbox("settings[days_retain_posted_upcoming_releases]", getsetting("global_settings", "days_retain_posted_upcoming_releases", 5), "text");
                    $formContents .= aaaaan(get_phrase("days_retain_posted_upcoming_releases"), $inputbox, get_phrase("days_retain_posted_upcoming_releases_alt") . " " . get_phrase("leave_empty_to_skip_this"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_cleanup") );
                    break;
                case "points":
                    $inputbox = inputbox("settings[points_seed]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_seed"], "text texthalf");
                    $formContents = aaaaan(get_phrase("dashboard_options_points_seed"), $inputbox, get_phrase("dashboard_options_points_seed_alt"));
                    $inputbox = inputbox("settings[points_seed_al]", intval(getsetting("global_settings", "points_seed_al", 0)), "text texthalf");
                    $formContents .= aaaaan(get_phrase("points_seed_al"), $inputbox, get_phrase("points_seed_al_alt") . " " . get_phrase("leave_empty_to_skip_this"));
                    $inputbox = inputbox("settings[points_seed_min_gb]", getsetting("global_settings", "points_seed_min_gb", 0), "text texthalf", "GB");
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_seed_min_gb"), $inputbox, get_phrase("dashboard_options_points_seed_min_gb_alt") . " " . get_phrase("leave_empty_to_skip_this"));
                    $inputbox = inputbox("settings[points_x2_for_big_torrents]", getsetting("global_settings", "points_x2_for_big_torrents", 0), "text texthalf", "GB");
                    $formContents .= aaaaan(get_phrase("x2_for_big_torrents"), $inputbox, get_phrase("x2_for_big_torrents_alt") . " " . get_phrase("leave_empty_to_skip_this"));
                    $inputbox = inputbox("settings[points_torrent_upload]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_torrent_upload"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_torrent_upload"), $inputbox, get_phrase("dashboard_options_points_torrent_upload_alt"));
                    $inputbox = inputbox("settings[points_post_comment]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_post_comment"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_post_comment"), $inputbox, get_phrase("dashboard_options_points_post_comment_alt"));
                    $inputbox = inputbox("settings[points_new_thread]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_thread"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_new_thread"), $inputbox, get_phrase("dashboard_options_points_new_thread_alt"));
                    $inputbox = inputbox("settings[points_new_replies]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_replies"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_new_replies"), $inputbox, get_phrase("dashboard_options_points_new_replies_alt"));
                    $aaaaao = array( 1 => get_phrase("points_likes_type_1"), 2 => get_phrase("points_likes_type_2"), 3 => get_phrase("points_likes_type_3") );
                    $selectbox = selectbox("settings[points_likes_type]", getsetting("global_settings", "points_likes_type", 2), $aaaaao, "selectNoWidth");
                    $inputbox = inputbox("settings[points_likes]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_likes"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_likes"), $inputbox, get_phrase("dashboard_options_points_likes_alt"), "optionsInOverlay", "", "", "", $selectbox);
                    $inputbox = inputbox("settings[points_poll]", $TSUE["TSUE_Settings"]->settings["global_settings"]["points_poll"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_poll"), $inputbox, get_phrase("dashboard_options_points_poll_alt"));
                    $inputbox = inputbox("settings[points_fill_request]", getsetting("global_settings", "points_fill_request", 0), "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_points_fill_request"), $inputbox, get_phrase("dashboard_options_points_fill_request_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_points") );
                    break;
                case "subtitles":
                    $inputbox = inputbox("settings[subtitles_allowed_file_types]", $TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_allowed_file_types"], "text texthalf");
                    $formContents = aaaaan(get_phrase("dashboard_options_subtitles_allowed_file_types"), $inputbox, get_phrase("dashboard_options_subtitles_allowed_file_types_alt"));
                    $inputbox = inputbox("settings[subtitles_max_file_size]", $TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_max_file_size"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("subtitles_max_file_size"), $inputbox . " " . friendly_size($TSUE["TSUE_Settings"]->settings["global_settings"]["subtitles_max_file_size"]), get_phrase("subtitles_max_file_size_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_subtitles") );
                    break;
                case "security":
                    $radioButtons = radioyesno("settings[website_use_strike_system]", getsetting("global_settings", "website_use_strike_system", 0));
                    $formContents = aaaaan(get_phrase("dashboard_options_limitations_use_strike_system"), $radioButtons, get_phrase("dashboard_options_limitations_use_strike_system_alt"));
                    $inputbox = inputbox("settings[limit_of_login_strikes]", getsetting("global_settings", "limit_of_login_strikes", 5), "text texthalf");
                    $formContents .= aaaaan(get_phrase("limit_of_login_strikes"), $inputbox, get_phrase("limit_of_login_strikes_alt"));
                    $radioButtons = radioyesno("settings[security_enable_captcha]", getsetting("global_settings", "security_enable_captcha", 0));
                    $formContents .= aaaaan(get_phrase("security_enable_captcha"), $radioButtons, get_phrase("security_enable_captcha_alt"));
                    $inputbox = inputbox("settings[admincp_session_timeout]", getsetting("global_settings", "admincp_session_timeout", 5), "text texthalf");
                    $formContents .= aaaaan(get_phrase("admincp_session_timeout"), $inputbox, get_phrase("admincp_session_timeout_alt"));
                    $radioButtons = radioyesno("settings[security_ip_history]", getsetting("global_settings", "security_ip_history", 0));
                    $formContents .= aaaaan(get_phrase("security_ip_history"), $radioButtons, get_phrase("security_ip_history_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_security") );
                    break;
                case "hitrun":
                    if( isset($_POST["save_options"]) )
                    {
                        $hitrun_settings["active"] = (isset($_POST["HITRUN"]["active"]) && $_POST["HITRUN"]["active"] == 1 ? 1 : 0);
                        $hitrun_settings["dayTolerance"] = (isset($_POST["HITRUN"]["dayTolerance"]) && $_POST["HITRUN"]["dayTolerance"] ? intval($_POST["HITRUN"]["dayTolerance"]) : 0);
                        $hitrun_settings["maxWarns"] = (isset($_POST["HITRUN"]["maxWarns"]) && $_POST["HITRUN"]["maxWarns"] ? intval($_POST["HITRUN"]["maxWarns"]) : 0);
                        $hitrun_settings["defaultRatio"] = (isset($_POST["HITRUN"]["defaultRatio"]) && $_POST["HITRUN"]["defaultRatio"] ? 0 + $_POST["HITRUN"]["defaultRatio"] : 0);
                        $hitrun_settings["skipMembergroups"] = (isset($_POST["HITRUN"]["skipMembergroups"]) && is_array($_POST["HITRUN"]["skipMembergroups"]) && 0 < count($_POST["HITRUN"]["skipMembergroups"]) ? implode(",", array_map("intval", $_POST["HITRUN"]["skipMembergroups"])) : "");
                        $hitrun_settings["announceLimit"] = (isset($_POST["HITRUN"]["announceLimit"]) && $_POST["HITRUN"]["announceLimit"] ? intval($_POST["HITRUN"]["announceLimit"]) : 0);
                        updatesettings("hitrun_settings", $hitrun_settings);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        _sendheaders($outputMessage);
                    }

                    $formContents = "\r\n\t\t\t\t\t<div style=\"margin-bottom: 5px; font-size: 13px;\" class=\"checkHitRunOptions\">" . get_phrase("check_hitrun_options") . "</div>";
                    $radioButtons = radioyesno("HITRUN[active]", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["active"]);
                    $formContents .= aaaaan(get_phrase("hitrun_active"), $radioButtons, get_phrase("hitrun_active_alt"));
                    $inputbox = inputbox("HITRUN[dayTolerance]", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["dayTolerance"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("hitrun_daytolerance"), $inputbox, get_phrase("hitrun_daytolerance_alt"));
                    $announceInterval = (getsetting("xbt", "active") ? getsetting("xbt", "announce_interval") : getsetting("global_settings", "announce_interval"));
                    $aaaaav = getsetting("hitrun_settings", "announceLimit");
                    $totalSeconds = $announceInterval * $aaaaav;
                    $secondsToHours = secondstohours($totalSeconds);
                    $inputbox = inputbox("HITRUN[announceLimit]", getsetting("hitrun_settings", "announceLimit"), "text texthalf");
                    $formContents .= aaaaan(get_phrase("hitrun_announcelimit"), $inputbox, get_phrase("hitrun_announcelimit_alt") . "<br>" . get_phrase("hitrun_announcelimit_alt2", $announceInterval, $aaaaav, $totalSeconds, $secondsToHours));
                    $inputbox = inputbox("HITRUN[maxWarns]", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["maxWarns"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("max_hitruns"), $inputbox, get_phrase("max_hitruns_alt"));
                    $inputbox = inputbox("HITRUN[defaultRatio]", getsetting("hitrun_settings", "defaultRatio", 0), "text texthalf");
                    $formContents .= aaaaan(get_phrase("default_hitrun_ratio"), $inputbox, get_phrase("default_hitrun_ratio_alt"));
                    $Usergroups = aaaaaw("HITRUN[skipMembergroups][]", ($TSUE["TSUE_Settings"]->settings["hitrun_settings"]["skipMembergroups"] ? tsue_explode(",", $TSUE["TSUE_Settings"]->settings["hitrun_settings"]["skipMembergroups"]) : array(  )));
                    $formContents .= aaaaan(get_phrase("hitrun_skip_membergroups"), $Usergroups, get_phrase("hitrun_skip_membergroups_alt"));
                    $aaaaam = array( "option_name" => get_phrase("dashboard_options_hitrun") );
                    break;
                case "auto_uploader":
                    if( isset($_POST["save_options"]) )
                    {
                        $auto_uploader["active"] = (isset($_POST["AUTOUPLOADER"]["active"]) && $_POST["AUTOUPLOADER"]["active"] == 1 ? 1 : 0);
                        $auto_uploader["category"] = (isset($_POST["AUTOUPLOADER"]["category"]) ? intval($_POST["AUTOUPLOADER"]["category"]) : 0);
                        $auto_uploader["path"] = (isset($_POST["AUTOUPLOADER"]["path"]) ? $_POST["AUTOUPLOADER"]["path"] : "");
                        $auto_uploader["owner"] = (isset($_POST["AUTOUPLOADER"]["owner"]) ? $_POST["AUTOUPLOADER"]["owner"] : "");
                        $auto_uploader["description"] = (isset($_POST["AUTOUPLOADER"]["description"]) ? $_POST["AUTOUPLOADER"]["description"] : "");
                        if( $auto_uploader["owner"] )
                        {
                            $getMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($auto_uploader["owner"]));
                            if( $getMember )
                            {
                                $auto_uploader["owner"] = $getMember["memberid"];
                            }
                            else
                            {
                                $auto_uploader["owner"] = "";
                            }

                        }

                        updatesettings("auto_uploader", $auto_uploader);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        _sendheaders($outputMessage);
                    }

                    $formContents = "<h2>" . get_phrase("import_torrents", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/auto_uploader.php") . "</h2>";
                    $radioButtons = radioyesno("AUTOUPLOADER[active]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["active"]);
                    $formContents .= aaaaan(get_phrase("auto_uploader_active"), $radioButtons, get_phrase("auto_uploader_active_alt"));
                    $Categories = aaaaax("AUTOUPLOADER[category]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["category"]);
                    $formContents .= aaaaan(get_phrase("auto_uploader_category"), $Categories, get_phrase("auto_uploader_category_alt"));
                    $inputbox = inputbox("AUTOUPLOADER[path]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["path"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("auto_uploader_path"), $inputbox, get_phrase("auto_uploader_path_alt"));
                    if( $TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"] )
                    {
                        $getMember = $TSUE["TSUE_Database"]->query_result("SELECT membername FROM tsue_members WHERE memberid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"]));
                        if( $getMember )
                        {
                            $TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"] = $getMember["membername"];
                        }
                        else
                        {
                            $TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"] = "";
                        }

                    }

                    $inputbox = inputbox("AUTOUPLOADER[owner]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["owner"], "text texthalf", NULL, false, true);
                    $formContents .= aaaaan(get_phrase("auto_uploader_owner"), $inputbox, get_phrase("auto_uploader_owner_alt"));
                    $textarea = aaaaay("AUTOUPLOADER[description]", $TSUE["TSUE_Settings"]->settings["auto_uploader"]["description"], true);
                    $formContents .= aaaaan(get_phrase("auto_uploader_description"), $textarea, get_phrase("auto_uploader_description_alt"));
                    $aaaaam = array( "option_name" => get_phrase("auto_uploader") );
                    break;
                case "downloads":
                    if( isset($_POST["save_options"]) )
                    {
                        $downloads["online"] = (isset($_POST["DOWNLOADS"]["online"]) && $_POST["DOWNLOADS"]["online"] == 1 ? 1 : 0);
                        $downloads["offline_message"] = (isset($_POST["DOWNLOADS"]["offline_message"]) ? $_POST["DOWNLOADS"]["offline_message"] : "");
                        $downloads["offline_access"] = (isset($_POST["DOWNLOADS"]["offline_access"]) && is_array($_POST["DOWNLOADS"]["offline_access"]) && 0 < count($_POST["DOWNLOADS"]["offline_access"]) ? implode(",", array_map("intval", $_POST["DOWNLOADS"]["offline_access"])) : "");
                        $downloads["max_filesize"] = (isset($_POST["DOWNLOADS"]["max_filesize"]) ? 0 + $_POST["DOWNLOADS"]["max_filesize"] : 0);
                        $downloads["allowed_file_types"] = (isset($_POST["DOWNLOADS"]["allowed_file_types"]) ? trim($_POST["DOWNLOADS"]["allowed_file_types"]) : "");
                        $downloads["files_perpage"] = (isset($_POST["DOWNLOADS"]["files_perpage"]) ? 0 + $_POST["DOWNLOADS"]["files_perpage"] : 0);
                        updatesettings("downloads", $downloads);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        _sendheaders($outputMessage);
                    }

                    $radioButtons = radioyesno("DOWNLOADS[online]", $TSUE["TSUE_Settings"]->settings["downloads"]["online"]);
                    $formContents = aaaaan(get_phrase("dm_online"), $radioButtons, "");
                    $textarea = textarea("DOWNLOADS[offline_message]", $TSUE["TSUE_Settings"]->settings["downloads"]["offline_message"]);
                    $formContents .= aaaaan(get_phrase("dm_offline_message"), $textarea, get_phrase("dm_offline_message_alt"));
                    $Usergroups = aaaaaw("DOWNLOADS[offline_access][]", ($TSUE["TSUE_Settings"]->settings["downloads"]["offline_access"] ? tsue_explode(",", $TSUE["TSUE_Settings"]->settings["downloads"]["offline_access"]) : array(  )));
                    $formContents .= aaaaan(get_phrase("offline_access"), $Usergroups, get_phrase("offline_access_alt"));
                    $inputbox = inputbox("DOWNLOADS[max_filesize]", $TSUE["TSUE_Settings"]->settings["downloads"]["max_filesize"], "text texthalf", friendly_size($TSUE["TSUE_Settings"]->settings["downloads"]["max_filesize"]), false, false, get_phrase("set_to_0_for_no_limit"));
                    $formContents .= aaaaan(get_phrase("dm_max_filesize"), $inputbox, "");
                    $inputbox = inputbox("DOWNLOADS[allowed_file_types]", $TSUE["TSUE_Settings"]->settings["downloads"]["allowed_file_types"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_allowed_file_types"), $inputbox, "");
                    $inputbox = inputbox("DOWNLOADS[files_perpage]", $TSUE["TSUE_Settings"]->settings["downloads"]["files_perpage"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("limitations_files_perpage"), $inputbox, "");
                    $aaaaam = array( "option_name" => get_phrase("dm_title") );
                    break;
                case "ircbot":
                    if( isset($_POST["save_options"]) )
                    {
                        $ircbot["active"] = (isset($_POST["ircbot"]["active"]) && $_POST["ircbot"]["active"] == 1 ? 1 : 0);
                        $ircbot["ircServer"] = (isset($_POST["ircbot"]["ircServer"]) ? $_POST["ircbot"]["ircServer"] : "");
                        $ircbot["ircPort"] = (isset($_POST["ircbot"]["ircPort"]) ? $_POST["ircbot"]["ircPort"] : "");
                        $ircbot["ircChannel"] = (isset($_POST["ircbot"]["ircChannel"]) ? $_POST["ircbot"]["ircChannel"] : "");
                        $ircbot["ircNick"] = (isset($_POST["ircbot"]["ircNick"]) ? $_POST["ircbot"]["ircNick"] : "");
                        $ircbot["ircPass"] = (isset($_POST["ircbot"]["ircPass"]) ? $_POST["ircbot"]["ircPass"] : "");
                        updatesettings("ircbot", $ircbot);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        _sendheaders($outputMessage);
                    }

                    $radioButtons = radioyesno("ircbot[active]", $TSUE["TSUE_Settings"]->settings["ircbot"]["active"]);
                    $formContents = aaaaan(get_phrase("ircbot_active"), $radioButtons, "", "optionsInOverlay", "", "<a href=\"?action=irc-debug\" target=\"blank\">" . get_phrase("dashboard_options_debug_mode") . "</a>");
                    $inputbox = inputbox("ircbot[ircServer]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircServer"]);
                    $formContents .= aaaaan(get_phrase("ircbot_ircserver"), $inputbox, "");
                    $inputbox = inputbox("ircbot[ircPort]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPort"]);
                    $formContents .= aaaaan(get_phrase("ircbot_ircserverport"), $inputbox, "");
                    $inputbox = inputbox("ircbot[ircChannel]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircChannel"]);
                    $formContents .= aaaaan(get_phrase("ircbot_ircchannel"), $inputbox, "");
                    $inputbox = inputbox("ircbot[ircNick]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircNick"]);
                    $formContents .= aaaaan(get_phrase("ircbot_ircNick"), $inputbox, "");
                    $inputbox = inputbox("ircbot[ircPass]", $TSUE["TSUE_Settings"]->settings["ircbot"]["ircPass"], "text", get_phrase("irc_bot_pass_tip"));
                    $formContents .= aaaaan(get_phrase("ircbot_ircPass"), $inputbox, "");
                    $aaaaam = array( "option_name" => get_phrase("ircbot") );
                    break;
                case "xbt":
                    $deny_from_clients = "";
                    $aaaaaz = $TSUE["TSUE_Database"]->query("SELECT peer_id FROM xbt_deny_from_clients");
                    if( $TSUE["TSUE_Database"]->num_rows($aaaaaz) )
                    {
                        while( $aaaaba = $TSUE["TSUE_Database"]->fetch_assoc($aaaaaz) )
                        {
                            $deny_from_clients .= $aaaaba["peer_id"] . "\n";
                        }
                    }

                    $deny_from_hosts = "";
                    $aaaabb = $TSUE["TSUE_Database"]->query("SELECT begin FROM xbt_deny_from_hosts");
                    if( $TSUE["TSUE_Database"]->num_rows($aaaabb) )
                    {
                        while( $Ip = $TSUE["TSUE_Database"]->fetch_assoc($aaaabb) )
                        {
                            $deny_from_hosts .= trim(long2ip($Ip["begin"])) . "\n";
                        }
                    }

                    if( isset($_POST["save_options"]) )
                    {
                        $xbt["active"] = (isset($_POST["xbt"]["active"]) && $_POST["xbt"]["active"] == 1 ? 1 : 0);
                        $xbt["debug"] = (isset($_POST["xbt"]["debug"]) && $_POST["xbt"]["debug"] == 1 ? 1 : 0);
                        $xbt["announce_url"] = (isset($_POST["xbt"]["announce_url"]) ? $_POST["xbt"]["announce_url"] : "");
                        $xbt["announce_interval"] = (isset($_POST["xbt"]["announce_interval"]) ? 0 + $_POST["xbt"]["announce_interval"] : "");
                        $xbt["offline_message"] = (isset($_POST["xbt"]["offline_message"]) ? $_POST["xbt"]["offline_message"] : "");
                        $xbt["redirect_url"] = (isset($_POST["xbt"]["redirect_url"]) ? $_POST["xbt"]["redirect_url"] : "");
                        $buildQuery = array( "debug" => $xbt["debug"], "offline_message" => $xbt["offline_message"], "redirect_url" => $xbt["redirect_url"], "announce_interval" => $xbt["announce_interval"] );
                        foreach( $buildQuery as $_name => $_value )
                        {
                            $TSUE["TSUE_Database"]->update("xbt_config", array( "value" => trim($_value) ), "name=" . $TSUE["TSUE_Database"]->escape($_name));
                        }
                        $TSUE["TSUE_Database"]->delete("xbt_deny_from_clients");
                        if( isset($_POST["xbt"]["deny_from_clients"]) && $_POST["xbt"]["deny_from_clients"] )
                        {
                            $deny_from_clients = preg_split("/\\r?\\n/", $_POST["xbt"]["deny_from_clients"], -1, PREG_SPLIT_NO_EMPTY);
                            if( $deny_from_clients )
                            {
                                foreach( $deny_from_clients as $peer_id )
                                {
                                    $TSUE["TSUE_Database"]->replace("xbt_deny_from_clients", array( "peer_id" => $peer_id ));
                                }
                            }

                        }

                        $TSUE["TSUE_Database"]->delete("xbt_deny_from_hosts");
                        if( isset($_POST["xbt"]["deny_from_hosts"]) && $_POST["xbt"]["deny_from_hosts"] )
                        {
                            $deny_from_hosts = preg_split("/\\r?\\n/", $_POST["xbt"]["deny_from_hosts"], -1, PREG_SPLIT_NO_EMPTY);
                            if( $deny_from_hosts )
                            {
                                foreach( $deny_from_hosts as $ip )
                                {
                                    $ip = trim(ip2long($ip));
                                    $TSUE["TSUE_Database"]->replace("xbt_deny_from_hosts", array( "begin" => $ip, "end" => $ip ));
                                }
                            }

                        }

                        updatesettings("xbt", $xbt);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        _sendheaders($outputMessage);
                    }

                    $radioButtons = radioyesno("xbt[active]", getsetting("xbt", "active"));
                    $formContents = aaaaan(get_phrase("xbt_active"), $radioButtons, "");
                    $radioButtons = radioyesno("xbt[debug]", getsetting("xbt", "debug"));
                    $formContents .= aaaaan(get_phrase("xbt_debug"), $radioButtons, get_phrase("xbt_debug_alt"));
                    $inputbox = inputbox("xbt[announce_url]", getsetting("xbt", "announce_url"));
                    $formContents .= aaaaan(get_phrase("xbt_announce_url"), $inputbox, "http://tracker:port");
                    $inputbox = inputbox("xbt[announce_interval]", getsetting("xbt", "announce_interval"));
                    $formContents .= aaaaan(get_phrase("xbt_announce_interval"), $inputbox, get_phrase("xbt_announce_interval_alt"));
                    $inputbox = inputbox("xbt[offline_message]", getsetting("xbt", "offline_message"));
                    $formContents .= aaaaan(get_phrase("xbt_offline_message"), $inputbox, get_phrase("xbt_offline_message_alt"));
                    $inputbox = inputbox("xbt[redirect_url]", getsetting("xbt", "redirect_url"));
                    $formContents .= aaaaan(get_phrase("xbt_redirect_url"), $inputbox, get_phrase("xbt_redirect_url_alt"));
                    $textarea = textarea("xbt[deny_from_clients]", $deny_from_clients);
                    $formContents .= aaaaan(get_phrase("xbt_deny_from_clients"), $textarea, get_phrase("xbt_deny_from_clients_alt"));
                    $textarea = textarea("xbt[deny_from_hosts]", $deny_from_hosts);
                    $formContents .= aaaaan(get_phrase("xbt_deny_from_hosts"), $textarea, get_phrase("xbt_deny_from_hosts_alt"));
                    $aaaaam = array( "option_name" => "xbt" );
                    break;
                case "gallery":
                    if( isset($_POST["save_options"]) )
                    {
                        $gallery["online"] = (isset($_POST["GALLERY"]["online"]) && $_POST["GALLERY"]["online"] == 1 ? 1 : 0);
                        $gallery["offline_message"] = (isset($_POST["GALLERY"]["offline_message"]) ? $_POST["GALLERY"]["offline_message"] : "");
                        $gallery["offline_access"] = (isset($_POST["GALLERY"]["offline_access"]) && is_array($_POST["GALLERY"]["offline_access"]) && 0 < count($_POST["GALLERY"]["offline_access"]) ? implode(",", array_map("intval", $_POST["GALLERY"]["offline_access"])) : "");
                        $gallery["max_filesize"] = (isset($_POST["GALLERY"]["max_filesize"]) ? 0 + $_POST["GALLERY"]["max_filesize"] : 0);
                        $gallery["allowed_file_types"] = (isset($_POST["GALLERY"]["allowed_file_types"]) ? trim($_POST["GALLERY"]["allowed_file_types"]) : "");
                        $gallery["files_perpage"] = (isset($_POST["GALLERY"]["files_perpage"]) ? 0 + $_POST["GALLERY"]["files_perpage"] : 0);
                        updatesettings("gallery", $gallery);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        _sendheaders($outputMessage);
                    }

                    $radioButtons = radioyesno("GALLERY[online]", $TSUE["TSUE_Settings"]->settings["gallery"]["online"]);
                    $formContents = aaaaan(get_phrase("image_gallery_online"), $radioButtons, "");
                    $textarea = textarea("GALLERY[offline_message]", $TSUE["TSUE_Settings"]->settings["gallery"]["offline_message"]);
                    $formContents .= aaaaan(get_phrase("dm_offline_message"), $textarea, get_phrase("image_gallery_offline_alt"));
                    $Usergroups = aaaaaw("GALLERY[offline_access][]", ($TSUE["TSUE_Settings"]->settings["gallery"]["offline_access"] ? tsue_explode(",", $TSUE["TSUE_Settings"]->settings["gallery"]["offline_access"]) : array(  )));
                    $formContents .= aaaaan(get_phrase("offline_access"), $Usergroups, get_phrase("image_gallery_offline_access_alt"));
                    $inputbox = inputbox("GALLERY[max_filesize]", $TSUE["TSUE_Settings"]->settings["gallery"]["max_filesize"], "text texthalf", friendly_size($TSUE["TSUE_Settings"]->settings["gallery"]["max_filesize"]), false, false, get_phrase("set_to_0_for_no_limit"));
                    $formContents .= aaaaan(get_phrase("dm_max_filesize"), $inputbox, "");
                    $inputbox = inputbox("GALLERY[allowed_file_types]", $TSUE["TSUE_Settings"]->settings["gallery"]["allowed_file_types"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("dashboard_options_limitations_allowed_file_types"), $inputbox, "");
                    $inputbox = inputbox("GALLERY[files_perpage]", $TSUE["TSUE_Settings"]->settings["gallery"]["files_perpage"], "text texthalf");
                    $formContents .= aaaaan(get_phrase("limitations_gallery_images_perpage"), $inputbox, "");
                    $aaaaam = array( "option_name" => get_phrase("image_gallery") );
                    break;
                case "auto_warning":
                    if( isset($_POST["save_options"]) )
                    {
                        $auto_warning["active"] = (isset($_POST["auto_warning"]["active"]) && $_POST["auto_warning"]["active"] == 1 ? 1 : 0);
                        $auto_warning["min_ratio"] = (isset($_POST["auto_warning"]["min_ratio"]) && $_POST["auto_warning"]["min_ratio"] ? trim($_POST["auto_warning"]["min_ratio"]) : 0);
                        $auto_warning["warn_length"] = (isset($_POST["auto_warning"]["warn_length"]) && $_POST["auto_warning"]["warn_length"] ? intval($_POST["auto_warning"]["warn_length"]) : 0);
                        $auto_warning["skipMembergroups"] = (isset($_POST["auto_warning"]["skipMembergroups"]) && is_array($_POST["auto_warning"]["skipMembergroups"]) && 0 < count($_POST["auto_warning"]["skipMembergroups"]) ? implode(",", array_map("intval", $_POST["auto_warning"]["skipMembergroups"])) : "");
                        updatesettings("auto_warning", $auto_warning);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        _sendheaders($outputMessage);
                    }

                    $radioButtons = radioyesno("auto_warning[active]", getsetting("auto_warning", "active"));
                    $formContents = aaaaan(get_phrase("auto_warning_active"), $radioButtons, get_phrase("auto_warning_active_alt"));
                    $inputBox = inputbox("auto_warning[min_ratio]", getsetting("auto_warning", "min_ratio"));
                    $formContents .= aaaaan(get_phrase("auto_warning_min_ratio"), $inputBox, "");
                    $inputBox = inputbox("auto_warning[warn_length]", getsetting("auto_warning", "warn_length"));
                    $formContents .= aaaaan(get_phrase("auto_warning_warn_length"), $inputBox, "");
                    $Usergroups = aaaaaw("auto_warning[skipMembergroups][]", tsue_explode(",", getsetting("auto_warning", "skipMembergroups")));
                    $formContents .= aaaaan(get_phrase("auto_warning_skip_membergroups"), $Usergroups, get_phrase("auto_warning_skip_membergroups_alt"));
                    $aaaaam = array( "option_name" => get_phrase("auto_warning_System") );
                    break;
                case "shoutbox_announcements":
                    if( isset($_POST["save_options"]) )
                    {
                        $shoutbox["announce_new_torrents"] = (isset($_POST["shoutbox"]["announce_new_torrents"]) && $_POST["shoutbox"]["announce_new_torrents"] == 1 ? 1 : 0);
                        $shoutbox["announce_new_torrent_comments"] = (isset($_POST["shoutbox"]["announce_new_torrent_comments"]) && $_POST["shoutbox"]["announce_new_torrent_comments"] == 1 ? 1 : 0);
                        $shoutbox["announce_new_torrent_categories"] = (isset($_POST["announce_new_torrent_categories"]) && $_POST["announce_new_torrent_categories"] ? implode(",", $_POST["announce_new_torrent_categories"]) : "");
                        $shoutbox["announce_new_members"] = (isset($_POST["shoutbox"]["announce_new_members"]) && $_POST["shoutbox"]["announce_new_members"] == 1 ? 1 : 0);
                        $shoutbox["announce_new_threads"] = (isset($_POST["shoutbox"]["announce_new_threads"]) && $_POST["shoutbox"]["announce_new_threads"] == 1 ? 1 : 0);
                        $shoutbox["announce_new_replies"] = (isset($_POST["shoutbox"]["announce_new_replies"]) && $_POST["shoutbox"]["announce_new_replies"] == 1 ? 1 : 0);
                        $shoutbox["announce_new_threads_skip_forums"] = (isset($_POST["announce_new_threads_skip_forums"]) && $_POST["announce_new_threads_skip_forums"] ? implode(",", $_POST["announce_new_threads_skip_forums"]) : "");
                        $shoutbox["notifications"] = (isset($_POST["shoutbox"]["notifications"]) ? trim($_POST["shoutbox"]["notifications"]) : "");
                        updatesettings("shoutbox", $shoutbox);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        _sendheaders($outputMessage);
                    }

                    $formContents = get_phrase("click_here_to_modify_shoutbox_timeouts", "?action=Plugin Manager&options=3") . "<br /><br />";
                    $radioButtons = radioyesno("shoutbox[announce_new_torrents]", getsetting("shoutbox", "announce_new_torrents"));
                    $formContents .= aaaaan(get_phrase("announce_new_torrents"), $radioButtons, "");
                    $radioButtons = radioyesno("shoutbox[announce_new_torrent_comments]", getsetting("shoutbox", "announce_new_torrent_comments"));
                    $formContents .= aaaaan(get_phrase("announce_new_torrent_comments"), $radioButtons, "");
                    $announce_new_torrent_categories = tsue_explode(",", getsetting("shoutbox", "announce_new_torrent_categories"));
                    $radioButtons = torrentcategoriesinbutboxes("announce_new_torrent_categories[]", "checkbox", $announce_new_torrent_categories);
                    $formContents .= aaaaan(get_phrase("announce_new_torrent_categories"), $radioButtons, "");
                    $radioButtons = radioyesno("shoutbox[announce_new_members]", getsetting("shoutbox", "announce_new_members"));
                    $formContents .= aaaaan(get_phrase("announce_new_members"), $radioButtons, "");
                    $radioButtons = radioyesno("shoutbox[announce_new_threads]", getsetting("shoutbox", "announce_new_threads"));
                    $formContents .= aaaaan(get_phrase("announce_new_threads"), $radioButtons, "");
                    $radioButtons = radioyesno("shoutbox[announce_new_replies]", getsetting("shoutbox", "announce_new_replies"));
                    $formContents .= aaaaan(get_phrase("announce_new_replies"), $radioButtons, "");
                    $Forums = aaaabc("announce_new_threads_skip_forums[]", explode(",", getsetting("shoutbox", "announce_new_threads_skip_forums")));
                    $formContents .= aaaaan(get_phrase("announce_new_threads_skip_forums"), $Forums, "");
                    $textarea = aaaaay("shoutbox[notifications]", getsetting("shoutbox", "notifications"), true);
                    $formContents .= aaaaan(get_phrase("shoutbox_notifications"), $textarea);
                    $aaaaam = array( "option_name" => get_phrase("shoutbox_announcements") );
                    break;
                case "manage_inactive_members":
                    if( isset($_POST["save_options"]) )
                    {
                        $inactive_members["active"] = (isset($_POST["inactive_members"]["active"]) && $_POST["inactive_members"]["active"] == 1 ? 1 : 0);
                        $inactive_members["grace_period"] = (isset($_POST["inactive_members"]["grace_period"]) ? intval($_POST["inactive_members"]["grace_period"]) : 0);
                        $inactive_members["max_email"] = (isset($_POST["inactive_members"]["max_email"]) ? intval($_POST["inactive_members"]["max_email"]) : 0);
                        $inactive_members["prune_members"] = (isset($_POST["inactive_members"]["prune_members"]) ? intval($_POST["inactive_members"]["prune_members"]) : 0);
                        $inactive_members["membergroups"] = (isset($_POST["inactive_members"]["membergroups"]) && $_POST["inactive_members"]["membergroups"] ? implode(",", $_POST["inactive_members"]["membergroups"]) : "");
                        updatesettings("inactive_members", $inactive_members);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        _sendheaders($outputMessage);
                    }

                    $radioButtons = radioyesno("inactive_members[active]", getsetting("inactive_members", "active"));
                    $formContents = aaaaan(get_phrase("inactive_members_active"), $radioButtons, get_phrase("inactive_members_active_alt"));
                    $inputBox = inputbox("inactive_members[grace_period]", getsetting("inactive_members", "grace_period"));
                    $formContents .= aaaaan(get_phrase("inactivity_grace_period"), $inputBox, get_phrase("inactivity_grace_period_alt"));
                    $inputBox = inputbox("inactive_members[max_email]", getsetting("inactive_members", "max_email"));
                    $formContents .= aaaaan(get_phrase("inactivity_max_email_to_send"), $inputBox, get_phrase("inactivity_max_email_to_send_alt"));
                    $inputBox = inputbox("inactive_members[prune_members]", getsetting("inactive_members", "prune_members"));
                    $formContents .= aaaaan(get_phrase("inactivity_prune_members"), $inputBox, get_phrase("inactivity_prune_members_alt"));
                    $Usergroups = aaaaaw("inactive_members[membergroups][]", tsue_explode(",", getsetting("inactive_members", "membergroups")));
                    $formContents .= aaaaan(get_phrase("inactivity_membergroups"), $Usergroups, get_phrase("inactivity_membergroups_alt"));
                    $aaaaam = array( "option_name" => get_phrase("manage_inactive_members") );
                    break;
                case "happy_hours":
                    if( isset($_POST["save_options"]) )
                    {
                        $happy_hours["active"] = (isset($_POST["happy_hours"]["active"]) && $_POST["happy_hours"]["active"] == 1 ? 1 : 0);
                        $happy_hours["start_date"] = (isset($_POST["happy_hours"]["start_date"]) ? $_POST["happy_hours"]["start_date"] : "");
                        $happy_hours["end_date"] = (isset($_POST["happy_hours"]["end_date"]) ? $_POST["happy_hours"]["end_date"] : "");
                        $happy_hours["freeleech"] = (isset($_POST["happy_hours"]["freeleech"]) && $_POST["happy_hours"]["freeleech"] == 1 ? 1 : 0);
                        $happy_hours["doubleupload"] = (isset($_POST["happy_hours"]["doubleupload"]) && $_POST["happy_hours"]["doubleupload"] == 1 ? 1 : 0);
                        if( $happy_hours["start_date"] )
                        {
                            $happy_hours["start_date"] = str_replace("/", "-", $happy_hours["start_date"]);
                            $happy_hours["start_date"] = strtotime($happy_hours["start_date"]);
                        }

                        if( $happy_hours["end_date"] )
                        {
                            $happy_hours["end_date"] = str_replace("/", "-", $happy_hours["end_date"]);
                            $happy_hours["end_date"] = strtotime($happy_hours["end_date"]);
                        }

                        updatesettings("happy_hours", $happy_hours);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        aaaabd("expired.php");
                        _sendheaders($outputMessage);
                    }

                    $start_date = getsetting("happy_hours", "start_date");
                    if( $start_date )
                    {
                        $start_date = date("d/m/Y", $start_date);
                    }

                    $end_date = getsetting("happy_hours", "end_date");
                    if( $end_date )
                    {
                        $end_date = date("d/m/Y", $end_date);
                    }

                    $formContents = "";
                    $radioButtons = radioyesno("happy_hours[active]", getsetting("happy_hours", "active"));
                    $formContents .= aaaaan(get_phrase("happy_hours_active"), $radioButtons);
                    $inputBox = inputbox("happy_hours[start_date]", $start_date, "text", "", true);
                    $formContents .= aaaaan(get_phrase("happy_hours_start_date"), $inputBox);
                    $inputBox = inputbox("happy_hours[end_date]", $end_date, "text", "", true);
                    $formContents .= aaaaan(get_phrase("happy_hours_end_date"), $inputBox);
                    $aaaabe = "\r\n\t\t\t\t\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td><input type=\"checkbox\" name=\"happy_hours[freeleech]\" value=\"1\" id=\"type_1\"" . ((getsetting("happy_hours", "freeleech") ? " checked=\"checked\"" : "")) . " /></td>\r\n\t\t\t\t\t\t\t<td><label for=\"type_1\">" . get_phrase("happy_hours_freeleech") . "</label></td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td><input type=\"checkbox\" name=\"happy_hours[doubleupload]\" value=\"1\" id=\"type_2\"" . ((getsetting("happy_hours", "doubleupload") ? " checked=\"checked\"" : "")) . " /></td>\r\n\t\t\t\t\t\t\t<td><label for=\"type_2\">" . get_phrase("happy_hours_double_upload") . "</label></td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</table>";
                    $formContents .= aaaaan(get_phrase("happy_hours_type"), $aaaabe);
                    $aaaaam = array( "option_name" => get_phrase("happy_hours") );
                    break;
                case "social_media":
                    $formContents = "<div class=\"soptionTitle\">" . get_phrase("facebook_api_alt") . "</div>";
                    $inputbox = inputbox("settings[facebook_app_id]", $TSUE["TSUE_Settings"]->settings["global_settings"]["facebook_app_id"], "text");
                    $formContents .= aaaaan(get_phrase("facebook_app_id"), $inputbox, get_phrase("facebook_app_id_alt"));
                    $inputbox = inputbox("settings[facebook_app_secret]", $TSUE["TSUE_Settings"]->settings["global_settings"]["facebook_app_secret"], "text");
                    $formContents .= aaaaan(get_phrase("facebook_app_secret"), $inputbox, get_phrase("facebook_app_secret_alt"));
                    $formContents .= "\r\n\t\t\t\t\t<div class=\"soptionTitle\">\r\n\t\t\t\t\t\t" . get_phrase("twitter_api_alt") . "\r\n\t\t\t\t\t\t<span class=\"smallPassiveTextBlock\">" . get_phrase("twitter_api_tip") . "</span>\r\n\t\t\t\t\t</div>";
                    $inputbox = inputbox("settings[consumerKey]", getsetting("global_settings", "consumerKey"), "text");
                    $formContents .= aaaaan(get_phrase("consumer_key"), $inputbox);
                    $inputbox = inputbox("settings[consumerSecret]", getsetting("global_settings", "consumerSecret"), "text");
                    $formContents .= aaaaan(get_phrase("consumer_secret"), $inputbox);
                    $inputbox = inputbox("settings[accessToken]", getsetting("global_settings", "accessToken"), "text");
                    $formContents .= aaaaan(get_phrase("access_token"), $inputbox);
                    $inputbox = inputbox("settings[accessTokenSecret]", getsetting("global_settings", "accessTokenSecret"), "text");
                    $formContents .= aaaaan(get_phrase("access_token_secret"), $inputbox);
                    $aaaaam = array( "option_name" => get_phrase("social_media") );
                    break;
                case "server":
                    if( isset($_POST["save_options"]) )
                    {
                        $server["http_port"] = (isset($_POST["server"]["http_port"]) ? 0 + $_POST["server"]["http_port"] : "");
                        $server["https_port"] = (isset($_POST["server"]["https_port"]) ? 0 + $_POST["server"]["https_port"] : "");
                        $server["ssh_port"] = (isset($_POST["server"]["ssh_port"]) ? 0 + $_POST["server"]["ssh_port"] : "");
                        $server["ftp_port"] = (isset($_POST["server"]["ftp_port"]) ? 0 + $_POST["server"]["ftp_port"] : "");
                        $server["pop3_port"] = (isset($_POST["server"]["pop3_port"]) ? 0 + $_POST["server"]["pop3_port"] : "");
                        updatesettings("server", $server);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        _sendheaders($outputMessage);
                    }

                    $formContents = "<div class=\"soptionTitle\"><a href=\"?action=server-status\" target=\"_blank\">" . get_phrase("server_status") . "</a></div>";
                    $inputbox = inputbox("server[http_port]", getsetting("server", "http_port", 80), "text");
                    $formContents .= aaaaan(get_phrase("http_port"), $inputbox);
                    $inputbox = inputbox("server[https_port]", getsetting("server", "https_port", 443), "text");
                    $formContents .= aaaaan(get_phrase("https_port"), $inputbox);
                    $inputbox = inputbox("server[ssh_port]", getsetting("server", "ssh_port", 22), "text");
                    $formContents .= aaaaan(get_phrase("ssh_port"), $inputbox);
                    $inputbox = inputbox("server[ftp_port]", getsetting("server", "ftp_port", 21), "text");
                    $formContents .= aaaaan(get_phrase("ftp_port"), $inputbox);
                    $inputbox = inputbox("server[pop3_port]", getsetting("server", "pop3_port", 110), "text");
                    $formContents .= aaaaan(get_phrase("pop3_port"), $inputbox);
                    $aaaaam = array( "option_name" => get_phrase("server") );
                    break;
                case "sls":
                    $radioButtons = radioyesno("settings[sls_active]", getsetting("global_settings", "sls_active"));
                    $formContents = aaaaan(get_phrase("sls_active"), $radioButtons);
                    $radioButtons = radioyesno("settings[sls_show_signup_link]", getsetting("global_settings", "sls_show_signup_link"));
                    $formContents .= aaaaan(get_phrase("sls_show_signup_link"), $radioButtons);
                    $radioButtons = radioyesno("settings[sls_show_fp_link]", getsetting("global_settings", "sls_show_fp_link"));
                    $formContents .= aaaaan(get_phrase("sls_show_fp_link"), $radioButtons);
                    $radioButtons = radioyesno("settings[sls_show_recent_torrents]", getsetting("global_settings", "sls_show_recent_torrents"));
                    $formContents .= aaaaan(get_phrase("sls_show_recent_torrents"), $radioButtons);
                    $aaaaam = array( "option_name" => get_phrase("sls") );
                    break;
                case "uploader_inactivity":
                    if( isset($_POST["save_options"]) )
                    {
                        $uploader_inactivity["membergroups"] = (isset($_POST["uploader_inactivity"]["membergroups"]) && $_POST["uploader_inactivity"]["membergroups"] ? implode(",", $_POST["uploader_inactivity"]["membergroups"]) : "");
                        $uploader_inactivity["demote_to"] = (isset($_POST["uploader_inactivity"]["demote_to"]) ? 0 + $_POST["uploader_inactivity"]["demote_to"] : "");
                        $uploader_inactivity["criterias_torrents"] = (isset($_POST["uploader_inactivity"]["criterias_torrents"]) ? 0 + $_POST["uploader_inactivity"]["criterias_torrents"] : "");
                        $uploader_inactivity["criterias_days"] = (isset($_POST["uploader_inactivity"]["criterias_days"]) ? 0 + $_POST["uploader_inactivity"]["criterias_days"] : "");
                        updatesettings("uploader_inactivity", $uploader_inactivity);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        _sendheaders($outputMessage);
                    }

                    $formContents = "<h2>" . get_phrase("demote_inactive_uploaders_cron") . "</h2>";
                    $Usergroups = aaaaaw("uploader_inactivity[membergroups][]", explode(",", getsetting("uploader_inactivity", "membergroups")));
                    $formContents .= aaaaan(get_phrase("inactivity_membergroups"), $Usergroups, get_phrase("inactivity_membergroups_alt"));
                    $Usergroups = aaaabf("uploader_inactivity[demote_to]", getsetting("uploader_inactivity", "demote_to"), true, "");
                    $formContents .= aaaaan(get_phrase("select_membergroup"), $Usergroups, get_phrase("uploader_inactivity_demote_to"));
                    $Criterias = "\r\n\t\t\t\t\t<div style=\"margin-top: 5px;\">\r\n\t\t\t\t\t\t" . get_phrase("query_criterias_for_demotion", "<input type=\"text\" name=\"uploader_inactivity[criterias_torrents]\" value=\"" . getsetting("uploader_inactivity", "criterias_torrents") . "\" class=\"text textVeryTiny\" />", "<input type=\"text\" name=\"uploader_inactivity[criterias_days]\" value=\"" . getsetting("uploader_inactivity", "criterias_days") . "\" class=\"text textVeryTiny\" />") . "\r\n\t\t\t\t\t</div>";
                    $formContents .= aaaaan(get_phrase("criterias_for_demotion"), $Criterias, "");
                    $aaaaam = array( "option_name" => get_phrase("uploader_inactivity") );
                    break;
                case "automatic_invites":
                    if( isset($_POST["save_options"]) )
                    {
                        $automatic_invites["membergroups"] = (isset($_POST["automatic_invites"]["membergroups"]) && $_POST["automatic_invites"]["membergroups"] ? implode(",", $_POST["automatic_invites"]["membergroups"]) : "");
                        $automatic_invites["amount"] = (isset($_POST["automatic_invites"]["amount"]) ? intval($_POST["automatic_invites"]["amount"]) : "");
                        updatesettings("automatic_invites", $automatic_invites);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        _sendheaders($outputMessage);
                    }

                    $formContents = "<h2>" . get_phrase("automatic_invites_cron") . "</h2>";
                    $Usergroups = aaaaaw("automatic_invites[membergroups][]", explode(",", getsetting("automatic_invites", "membergroups")));
                    $formContents .= aaaaan(get_phrase("inactivity_membergroups"), $Usergroups, get_phrase("automatic_invites_membergroups"));
                    $inputbox = inputbox("automatic_invites[amount]", getsetting("automatic_invites", "amount", 0), "text");
                    $formContents .= aaaaan(get_phrase("automatic_invites_amount"), $inputbox);
                    $aaaaam = array( "option_name" => get_phrase("automatic_invites") );
                    break;
                case "magnet_links":
                    if( isset($_POST["save_options"]) )
                    {
                        $magnet_links["active"] = (isset($_POST["magnet_links"]["active"]) ? intval($_POST["magnet_links"]["active"]) : 0);
                        updatesettings("magnet_links", $magnet_links);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        _sendheaders($outputMessage);
                    }

                    $radioButtons = radioyesno("magnet_links[active]", getsetting("magnet_links", "active"));
                    $formContents = aaaaan(get_phrase("magnet_links_active"), $radioButtons, nl2br(get_phrase("magnet_links_active_alt")));
                    $aaaaam = array( "option_name" => get_phrase("magnet_links") );
                    break;
                case "auto_alert":
                    if( isset($_POST["save_options"]) )
                    {
                        $auto_alert["admins"] = (isset($_POST["auto_alert"]["admins"]) ? $_POST["auto_alert"]["admins"] : "");
                        $auto_alert["words"] = (isset($_POST["auto_alert"]["words"]) ? $_POST["auto_alert"]["words"] : "");
                        updatesettings("auto_alert", $auto_alert);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        _sendheaders($outputMessage);
                    }

                    $inputbox = inputbox("auto_alert[admins]", getsetting("auto_alert", "admins"), "text", "", false, true, "", "autoCompleteMultiple");
                    $formContents = aaaaan(get_phrase("auto_alert_admins"), $inputbox, get_phrase("auto_alert_admins_alt"));
                    $inputbox = aaaaay("auto_alert[words]", getsetting("auto_alert", "words"));
                    $formContents .= aaaaan(get_phrase("auto_alert_words"), $inputbox, get_phrase("auto_alert_words_alt"));
                    $aaaaam = array( "option_name" => get_phrase("auto_alert") );
                    break;
                case "search_system":
                    if( isset($_POST["save_options"]) )
                    {
                        $search_system["method"] = (isset($_POST["search_system"]["method"]) && $_POST["search_system"]["method"] == 2 ? 2 : 1);
                        updatesettings("search_system", $search_system);
                        $TSUE["TSUE_Settings"] = new TSUE_Settings();
                        $outputMessage = successmessage(get_phrase("message_saved"));
                        aaaaal();
                        _sendheaders($outputMessage);
                    }

                    $aaaaao = array( 1 => get_phrase("search_method_1"), 2 => get_phrase("search_method_2") );
                    $selectbox = selectbox("search_system[method]", getsetting("search_system", "method", 1), $aaaaao);
                    $formContents = aaaaan(get_phrase("search_system"), $selectbox, get_phrase("search_system_alert"));
                    $aaaaam = array( "option_name" => get_phrase("search_system") );
            }
            if( isset($formContents) )
            {
                $HTML .= aaaabg($formContents, $aaaaam);
            }

        }

    }
    else
    {
        $HTML = "\r\n\t\t<div id=\"options\">\r\n\t\t\t<div class=\"head\">" . get_phrase("dashboard_options_alt") . "</div>\r\n\t\t\t<div class=\"optionsScroll\">\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=website_active\">" . get_phrase("dashboard_options_website_active") . " <span>" . get_phrase("dashboard_options_website_active_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=basic_website_information\">" . get_phrase("dashboard_options_basic_website_information") . " <span></span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=email_options\">" . get_phrase("dashboard_options_email_options") . " <span></span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=member_registration\">" . get_phrase("dashboard_options_member_registration") . " <span></span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=appearance\">" . get_phrase("dashboard_options_appearance") . " <span>" . get_phrase("dashboard_options_appearance_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=cookies\">" . get_phrase("dashboard_options_cookies") . " <span></span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=announce\">" . get_phrase("dashboard_options_announce") . " <span>" . get_phrase("dashboard_options_announce_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=ipban\">" . get_phrase("dashboard_options_ipban") . " <span>" . get_phrase("dashboard_options_ipban_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=emailban\">" . get_phrase("dashboard_options_emailban") . " <span>" . get_phrase("dashboard_options_emailban_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=countryban\">" . get_phrase("dashboard_options_countryban") . " <span>" . get_phrase("dashboard_options_countryban_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=censoring\">" . get_phrase("dashboard_options_censoring") . " <span>" . get_phrase("dashboard_options_censoring_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=seo\">" . get_phrase("dashboard_options_seo") . " <span>" . get_phrase("dashboard_options_seo_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=limitations\">" . get_phrase("dashboard_options_limitations") . " <span></span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=member_alerts\">" . get_phrase("dashboard_options_member_alerts") . " <span>" . get_phrase("dashboard_options_member_alerts_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=cleanup\">" . get_phrase("dashboard_options_cleanup") . " <span>" . get_phrase("dashboard_options_cleanup_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=points\">" . get_phrase("dashboard_options_points") . " <span>" . get_phrase("dashboard_options_points_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=subtitles\">" . get_phrase("dashboard_options_subtitles") . " \r\n\t\t\t\t<span></span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=security\">" . get_phrase("dashboard_options_security") . " \r\n\t\t\t\t<span>" . get_phrase("dashboard_options_security_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=hitrun\">" . get_phrase("dashboard_options_hitrun") . " \r\n\t\t\t\t<span>" . get_phrase("dashboard_options_hitrun_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=auto_uploader\">" . get_phrase("auto_uploader") . " \r\n\t\t\t\t<span>" . get_phrase("auto_uploader_span") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=downloads\">" . get_phrase("dm_title") . " \r\n\t\t\t\t<span>" . get_phrase("dm_title_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=ircbot\">" . get_phrase("ircbot") . "\r\n\t\t\t\t<span>" . get_phrase("ircbot_title") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=xbt\">XBT\r\n\t\t\t\t<span>" . get_phrase("xbt_title") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=gallery\">" . get_phrase("image_gallery") . "</div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=auto_warning\">" . get_phrase("auto_warning_System") . "\r\n\t\t\t\t<span>" . get_phrase("auto_warning_System_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=shoutbox_announcements\">" . get_phrase("shoutbox_announcements") . "\r\n\t\t\t\t<span>" . get_phrase("shoutbox_announcements_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=manage_inactive_members\">" . get_phrase("manage_inactive_members") . "\r\n\t\t\t\t<span>" . get_phrase("manage_inactive_members_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=happy_hours\">" . get_phrase("happy_hours") . "\r\n\t\t\t\t<span>" . get_phrase("happy_hours_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=social_media\">" . get_phrase("social_media") . "\r\n\t\t\t\t<span>" . get_phrase("social_media_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=server\">" . get_phrase("server") . "\r\n\t\t\t\t<span>" . get_phrase("server_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=sls\">" . get_phrase("sls") . "\r\n\t\t\t\t<span>" . get_phrase("sls_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=uploader_inactivity\">" . get_phrase("uploader_inactivity") . "\r\n\t\t\t\t<span>" . get_phrase("uploader_inactivity_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=automatic_invites\">" . get_phrase("automatic_invites") . "\r\n\t\t\t\t<span>" . get_phrase("automatic_invites_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=magnet_links\">" . get_phrase("magnet_links") . "\r\n\t\t\t\t<span>" . get_phrase("magnet_links_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=auto_alert\">" . get_phrase("auto_alert") . "\r\n\t\t\t\t<span>" . get_phrase("auto_alert_alt") . "</span></div>\r\n\t\t\t\t<div class=\"optionGroup\" rel=\"action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&option=search_system\">" . get_phrase("search_system") . "\r\n\t\t\t\t<span>" . get_phrase("search_system_alt") . "</span></div>\r\n\t\t\t</div>\r\n\t\t</div>";
    }

    return $HTML;
}

function handlepages()
{
    global $TSUE;
    $HTML = "";
    $aaaabh = aaaaae(array( "new=1" => array( "phrase" => get_phrase("pages_create_new") ) ));
    $enable_disable = intval(getvar("enable_disable"));
    $showinmenu = intval(getvar("showinmenu"));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    if( isset($_POST["sort"]) )
    {
        foreach( $_POST["sort"] as $pageID => $Sort )
        {
            $pageID = intval($pageID);
            $Sort = intval($Sort);
            $TSUE["TSUE_Database"]->update("tsue_pages", array( "sort" => $Sort ), "pageid=" . $TSUE["TSUE_Database"]->escape($pageID));
        }
        logadminaction(get_phrase("pages_all_pages_updated"));
        handlerebuildcaches(false);
        handleprune(false);
        header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
        exit();
    }
    else
    {
        if( $edit || $new )
        {
            $Page = array( "pageid" => 0, "parentid" => 0, "name" => "", "phrase" => "", "internal_link" => "", "external_link" => "", "sort" => 0, "active" => 0, "plugins_left" => array(  ), "plugins_right" => array(  ), "showinmenu" => 0, "viewpermissions" => array(  ) );
            $aaaaam = "";
            if( $edit )
            {
                $Page = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($edit));
                if( !$Page )
                {
                    return errormessage(get_phrase("message_content_error"));
                }

                $Page["plugins_left"] = tsue_explode(",", $Page["plugins_left"]);
                $Page["plugins_right"] = tsue_explode(",", $Page["plugins_right"]);
                $Page["viewpermissions"] = tsue_explode(",", $Page["viewpermissions"]);
                $aaaaam = array( "edit" => $edit );
                addbreadcrumb(array( get_phrase("button_edit") . ": " . $Page["name"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
            }
            else
            {
                addbreadcrumb(array( get_phrase("pages_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
            }

            if( isset($_POST["Page"]) )
            {
                $Page = $_POST["Page"];
                if( !$Page["name"] )
                {
                    $formErrors[] = get_phrase("pages_page_name_error");
                }

                if( !$Page["phrase"] || !isset($TSUE["TSUE_Language"]["phrase"][$Page["phrase"]]) )
                {
                    $formErrors[] = get_phrase("pages_page_phrase_error");
                }

                if( !$Page["internal_link"] && !$Page["external_link"] )
                {
                    $Page["internal_link"] = "#";
                }

                if( !isset($Page["plugins_left"]) )
                {
                    $Page["plugins_left"] = array(  );
                }

                if( !isset($Page["plugins_right"]) )
                {
                    $Page["plugins_right"] = array(  );
                }

                if( !isset($Page["viewpermissions"]) )
                {
                    $Page["viewpermissions"] = array(  );
                }

                if( !isset($formErrors) )
                {
                    $buildQuery = array( "parentid" => $Page["parentid"], "name" => $Page["name"], "phrase" => $Page["phrase"], "internal_link" => $Page["internal_link"], "external_link" => $Page["external_link"], "sort" => ($Page["sort"] ? $Page["sort"] : 0), "active" => ($Page["active"] ? $Page["active"] : 0), "plugins_left" => implode(",", $Page["plugins_left"]), "plugins_right" => implode(",", $Page["plugins_right"]), "showinmenu" => ($Page["showinmenu"] ? $Page["showinmenu"] : 0), "viewpermissions" => implode(",", $Page["viewpermissions"]) );
                    if( $edit )
                    {
                        $Page["pageid"] = $edit;
                        $TSUE["TSUE_Database"]->update("tsue_pages", $buildQuery, "pageid=" . $TSUE["TSUE_Database"]->escape($edit));
                    }
                    else
                    {
                        $TSUE["TSUE_Database"]->insert("tsue_pages", $buildQuery);
                        $Page["pageid"] = $TSUE["TSUE_Database"]->insert_id();
                    }

                    logadminaction(get_phrase("pages_page_updated", $Page["name"] . " (" . $Page["pageid"] . ")"));
                    $HTML .= successmessage(get_phrase("message_saved"));
                    $updateDone = true;
                    handlerebuildcaches(false);
                    handleprune(false);
                }
                else
                {
                    $HTML .= errormessage(implode("<br />", $formErrors));
                }

            }

            if( !isset($updateDone) )
            {
                $radioButtons = radioyesno("Page[active]", $Page["active"]);
                $formContents = aaaaan(get_phrase("pages_page_active"), $radioButtons);
                $radioButtons = radioyesno("Page[showinmenu]", $Page["showinmenu"]);
                $formContents .= aaaaan(get_phrase("pages_showinmenu_1"), $radioButtons);
                $inputbox = inputbox("Page[name]", $Page["name"]);
                $formContents .= aaaaan(get_phrase("pages_page_name"), $inputbox);
                $inputbox = inputbox("Page[phrase]", $Page["phrase"]);
                $formContents .= aaaaan(get_phrase("pages_page_phrase"), $inputbox, get_phrase("pages_page_phrase_alt"));
                $inputbox = inputbox("Page[internal_link]", $Page["internal_link"]);
                $formContents .= aaaaan(get_phrase("pages_page_internal_link"), $inputbox, get_phrase("pages_page_internal_link_alt") . "<br /><strong>" . get_phrase("pages_page_internal_link_alt2") . "</strong>");
                $inputbox = inputbox("Page[external_link]", $Page["external_link"]);
                $formContents .= aaaaan(get_phrase("pages_page_external_link"), $inputbox, get_phrase("pages_page_external_link_alt"));
                $inputbox = inputbox("Page[sort]", $Page["sort"], "sortFirst");
                $formContents .= aaaaan(get_phrase("global_sort"), $inputbox);
                $parentPages = aaaabi("Page[parentid]", $Page["parentid"], (isset($Page["pageid"]) ? $Page["pageid"] : 0));
                $formContents .= aaaaan(get_phrase("pages_parent_page"), $parentPages, get_phrase("pages_parent_page_alt"));
                $aaaabj = aaaabk("Page[plugins_left][]", $Page["plugins_left"]);
                $formContents .= aaaaan(get_phrase("pages_plugins_left"), $aaaabj, get_phrase("pages_plugins_left_alt"));
                $aaaabl = aaaabk("Page[plugins_right][]", $Page["plugins_right"]);
                $formContents .= aaaaan(get_phrase("pages_plugins_right"), $aaaabl, get_phrase("pages_plugins_left_alt"));
                $Usergroups = aaaaaw("Page[viewpermissions][]", $Page["viewpermissions"]);
                $formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all"));
                $HTML .= aaaabg($formContents, $aaaaam);
                return $HTML;
            }

        }

        if( $enable_disable )
        {
            $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
            $Page = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            if( $Page )
            {
                $TSUE["TSUE_Database"]->update("tsue_pages", $BuildQuery, "pageid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
                logadminaction(get_phrase("pages_page_updated", $Page["name"] . " (" . $enable_disable . ")"));
                handlerebuildcaches(false);
                handleprune(false);
            }

        }

        if( $showinmenu )
        {
            $BuildQuery = array( "showinmenu" => array( "escape" => 0, "value" => "IF(showinmenu>0,0,1)" ) );
            $Page = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($showinmenu));
            if( $Page )
            {
                $TSUE["TSUE_Database"]->update("tsue_pages", $BuildQuery, "pageid = " . $TSUE["TSUE_Database"]->escape($showinmenu));
                logadminaction(get_phrase("pages_page_updated", $Page["name"] . " (" . $showinmenu . ")"));
                handlerebuildcaches(false);
                handleprune(false);
            }

        }

        if( $delete )
        {
            $Page = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_pages WHERE pageid = " . $TSUE["TSUE_Database"]->escape($delete));
            if( $Page )
            {
                $TSUE["TSUE_Database"]->delete("tsue_pages", "pageid = " . $TSUE["TSUE_Database"]->escape($delete));
                $TSUE["TSUE_Database"]->delete("tsue_pages", "parentid = " . $TSUE["TSUE_Database"]->escape($delete));
                logadminaction(get_phrase("pages_page_deleted", $Page["name"] . " (" . $delete . ")"));
                handlerebuildcaches(false);
                handleprune(false);
            }

        }

        $subPagesCache = array(  );
        $subPages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_pages WHERE parentid != 0 ORDER BY sort ASC");
        if( $TSUE["TSUE_Database"]->num_Rows($subPages) )
        {
            while( $subPage = $TSUE["TSUE_Database"]->fetch_assoc($subPages) )
            {
                $subPagesCache[$subPage["parentid"]][] = $subPage;
            }
        }

        $Pages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_pages WHERE parentid = 0 ORDER BY active DESC, sort ASC");
        if( !$TSUE["TSUE_Database"]->num_rows($Pages) )
        {
            $tableContents = errormessage(get_phrase("no_results_found"));
        }
        else
        {
            $tableContents = "";
            while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) )
            {
                $tableContents .= buildpagelist($Page);
                if( isset($subPagesCache[$Page["pageid"]]) )
                {
                    foreach( $subPagesCache[$Page["pageid"]] as $subPage )
                    {
                        $tableContents .= buildpagelist($subPage, true);
                    }
                }

            }
            $tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
        }

        $HTML .= aaaabn(createtable(get_phrase("dashboard_pages_alt"), $tableContents, 3, $aaaabh));
        return $HTML;
    }

}

function buildpagelist($Page, $isSubPage = false)
{
    global $TSUE;
    $linkClass = (!$Page["active"] ? "linkDisabled" : "");
    $pageEditLink = aaaaae(array( "edit=" . $Page["pageid"] => array( "phrase" => $Page["name"], "class" => $linkClass ) ));
    $aaaabo = aaaaae(array( "delete=" . $Page["pageid"] => array( "phrase" => getimage("buttons/delete" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") . ((!$isSubPage ? get_phrase("pages_page_delete_warning") : "")) ) ));
    if( $Page["active"] )
    {
        $aaaabp = aaaaae(array( "enable_disable=" . $Page["pageid"] => array( "phrase" => getimage("buttons/disable" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("button_disable")) ) ));
    }
    else
    {
        $aaaabp = aaaaae(array( "enable_disable=" . $Page["pageid"] => array( "phrase" => getimage("buttons/enable" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("button_enable")) ) ));
    }

    if( $Page["showinmenu"] )
    {
        $aaaabq = aaaaae(array( "showinmenu=" . $Page["pageid"] => array( "phrase" => getimage("buttons/hide" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("pages_showinmenu_0")) ) ));
    }
    else
    {
        $aaaabq = aaaaae(array( "showinmenu=" . $Page["pageid"] => array( "phrase" => getimage("buttons/show" . (($isSubPage ? "_s" : "")) . ".png", get_phrase("pages_showinmenu_1")) ) ));
    }

    $pageLink = "\r\n\t<span style=\"padding-left: 9px;\">\r\n\t\t<a href=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $Page["internal_link"] . "&amp;pid=" . $Page["pageid"] . "\" target=\"_blank\" style=\"color: #ccc; font-weight: normal; font-size: 10px;\">" . $Page["internal_link"] . "&amp;pid=" . $Page["pageid"] . "</a>\r\n\t</span>";
    if( $isSubPage )
    {
        $tableContents = aaaaag(array( array( "width" => "75%", "text" => "&nbsp;&nbsp;<span class=\"smallPassiveText\">-- " . $pageEditLink . "</span>" . $pageLink ), array( "width" => "5%", "text" => inputbox("sort[" . $Page["pageid"] . "]", $Page["sort"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "20%", "text" => $aaaabp . $aaaabq . $aaaabo, "align" => "right" ) ));
    }
    else
    {
        $tableContents = aaaaag(array( array( "width" => "65%", "text" => $pageEditLink . $pageLink ), array( "width" => "10%", "text" => inputbox("sort[" . $Page["pageid"] . "]", $Page["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaabp . $aaaabq . $aaaabo, "align" => "right" ) ));
    }

    return $tableContents;
}


function handlepolls()
{
    global $TSUE;
    $HTML = "";
    $aaaabr = aaaaae(array( "new=1" => array( "phrase" => get_phrase("poll_create_new") ) ));
    $enable_disable = intval(getvar("enable_disable"));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    if( $enable_disable )
    {
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
        $Poll = $TSUE["TSUE_Database"]->query_result("SELECT question FROM tsue_poll WHERE pid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
        if( $Poll )
        {
            $TSUE["TSUE_Database"]->update("tsue_poll", $BuildQuery, "pid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            logadminaction(get_phrase("poll_x_has_been_updated", $Poll["question"] . " (" . $enable_disable . ")"));
        }

    }

    if( $delete )
    {
        $Poll = $TSUE["TSUE_Database"]->query_result("SELECT question FROM tsue_poll WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Poll )
        {
            $TSUE["TSUE_Database"]->delete("tsue_poll", "pid = " . $TSUE["TSUE_Database"]->escape($delete));
            logadminaction(get_phrase("poll_x_has_been_deleted", $Poll["question"] . " (" . $delete . ")"));
        }

    }

    if( $edit || $new )
    {
        $Poll = array( "active" => 1, "question" => "", "options" => array(  ), "votes" => "", "voters" => "", "multiple" => 0, "closeDaysAfter" => 0, "closed" => 0, "threadid" => 0, "createdinThread" => 0 );
        $aaaaam = "";
        $pollOptionList = "";
        $totalOptions = 5;
        for( $i = 0; $i < $totalOptions; $i++ )
        {
            $pollOptionList .= (aaaabs);
        }
        if( $edit )
        {
            $Poll = $TSUE["TSUE_Database"]->query_result("SELECT active, question, options, votes, voters, multiple, closeDaysAfter, closed, threadid FROM tsue_poll WHERE pid = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Poll )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
            $pollOptions = tsue_explode("~", $Poll["options"]);
            $_pollOptionList = "";
            foreach( $pollOptions as $pollOption )
            {
                $_pollOptionList .= aaaabs($pollOption);
                $totalOptions++;
            }
            $pollOptionList = $_pollOptionList . $pollOptionList;
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Poll["question"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        }
        else
        {
            addbreadcrumb(array( get_phrase("poll_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
        }

        if( isset($_POST["Poll"]) )
        {
            $Poll = array_merge($Poll, $_POST["Poll"]);
            if( !$Poll["question"] )
            {
                $formErrors[] = get_phrase("poll_error_no_question");
            }

            if( !$Poll["options"] || count($Poll["options"]) < 2 )
            {
                $formErrors[] = get_phrase("poll_error_no_options");
            }
            else
            {
                $Options = array(  );
                foreach( $Poll["options"] as $Option )
                {
                    $Option = trim($Option);
                    if( !empty($Option) )
                    {
                        $Options[] = $Option;
                    }

                }
                if( !$Options || count($Options) < 2 )
                {
                    $formErrors[] = get_phrase("poll_error_no_options");
                }
                else
                {
                    $Poll["options"] = $Options;
                }

            }

            if( $Poll["threadid"] )
            {
                $aaaabt = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_forums_threads WHERE threadid = " . $TSUE["TSUE_Database"]->escape($Poll["threadid"]));
                if( !$aaaabt )
                {
                    $formErrors[] = get_phrase("message_content_error");
                }

            }

            if( !isset($formErrors) )
            {
                $buildQuery = array( "active" => $Poll["active"], "question" => $Poll["question"], "options" => implode("~", $Poll["options"]), "votes" => $Poll["votes"], "voters" => $Poll["voters"], "multiple" => $Poll["multiple"], "closeDaysAfter" => $Poll["closeDaysAfter"], "closed" => $Poll["closed"], "threadid" => $Poll["threadid"], "createdinThread" => 0 );
                if( $edit )
                {
                    $TSUE["TSUE_Database"]->update("tsue_poll", $buildQuery, "pid=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $buildQuery["date"] = TIMENOW;
                    $TSUE["TSUE_Database"]->insert("tsue_poll", $buildQuery);
                }

                logadminaction(get_phrase("poll_x_has_been_updated", $Poll["question"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $radioButtons = radioyesno("Poll[active]", $Poll["active"]);
            $formContents = aaaaan(get_phrase("poll_active"), $radioButtons);
            $radioButtons = radioyesno("Poll[closed]", $Poll["closed"]);
            $formContents .= aaaaan(get_phrase("poll_is_closed"), $radioButtons, get_phrase("poll_is_closed_alt"));
            $inputbox = inputbox("Poll[closeDaysAfter]", $Poll["closeDaysAfter"]);
            $formContents .= aaaaan(get_phrase("poll_close_days_after"), $inputbox, get_phrase("poll_close_days_after_alt"));
            $radioButtons = radioyesno("Poll[multiple]", $Poll["multiple"]);
            $formContents .= aaaaan(get_phrase("poll_multiple"), $radioButtons, get_phrase("poll_multiple_alt"));
            $inputbox = inputbox("Poll[threadid]", $Poll["threadid"]);
            $formContents .= aaaaan(get_phrase("discuss_threadid"), $inputbox, get_phrase("discuss_threadid_alt"));
            $inputbox = inputbox("Poll[question]", $Poll["question"]);
            $formContents .= aaaaan(get_phrase("poll_question"), $inputbox);
            $formContents .= aaaaan(get_phrase("poll_options"), $pollOptionList, "", "optionsInOverlay", "", getimage("status/bullet_toggle_plus.png", get_phrase("button_add_more_fields"), "pointer middle"), "pollOptions");
            $Script = "\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\tvar totalOptions = " . $totalOptions . ";\r\n\t\t\t\t\$(\"#polloptions img\").click(function(e)\r\n\t\t\t\t{\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\ttotalOptions++;\r\n\r\n\t\t\t\t\t\$('<input type=\"text\" class=\"text\" name=\"Poll[options][]\" id=\"ib_Poll[options][]\" value=\"\" style=\"display: none;\" />').appendTo('div[rel=\"pollOptions\"]').fadeIn(\"slow\");\r\n\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t</script>";
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML . $Script;
        }

    }

    $Polls = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_poll WHERE createdinThread = 0 ORDER BY active DESC, date DESC");
    if( !$TSUE["TSUE_Database"]->num_rows($Polls) )
    {
        $tableContents = errormessage(get_phrase("poll_no_poll_yet"));
    }
    else
    {
        $tableContents = "";
        while( $Poll = $TSUE["TSUE_Database"]->fetch_assoc($Polls) )
        {
            $linkClass = (!$Poll["active"] ? "linkDisabled" : "");
            $aaaabu = aaaaae(array( "edit=" . $Poll["pid"] => array( "phrase" => $Poll["question"], "class" => $linkClass ) ));
            $aaaabv = aaaaae(array( "delete=" . $Poll["pid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            if( $Poll["active"] )
            {
                $aaaabw = aaaaae(array( "enable_disable=" . $Poll["pid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
            }
            else
            {
                $aaaabw = aaaaae(array( "enable_disable=" . $Poll["pid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
            }

            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaabu . " <span class=\"smallPassiveText\">(" . implode(" - ", tsue_explode("~", $Poll["options"])) . ") / " . get_phrase("poll_created", convert_relative_time($Poll["date"])) . " / " . get_phrase("poll_voters", count(tsue_explode("~", $Poll["voters"]))) . "</span>" ), array( "width" => "15%", "text" => $aaaabw . $aaaabv, "align" => "right" ) ));
        }
    }

    $HTML .= createtable(get_phrase("dashboard_polls"), $tableContents, 2, $aaaabr);
    return $HTML;
}

function handlenews()
{
    global $TSUE;
    $HTML = "";
    $aaaabx = aaaaae(array( "new=1" => array( "phrase" => get_phrase("news_create_new") ) ));
    $enable_disable = intval(getvar("enable_disable"));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $tweet = intval(getvar("tweet"));
    if( $enable_disable )
    {
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
        $News = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
        if( $News )
        {
            $TSUE["TSUE_Database"]->update("tsue_news", $BuildQuery, "nid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            logadminaction(get_phrase("news_x_has_been_updated", $News["title"] . " (" . $enable_disable . ")"));
            handlerebuildcaches(false);
        }

    }

    if( $delete )
    {
        $News = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $News )
        {
            $TSUE["TSUE_Database"]->delete("tsue_news", "nid = " . $TSUE["TSUE_Database"]->escape($delete));
            logadminaction(get_phrase("news_x_has_been_deleted", $News["title"] . " (" . $delete . ")"));
            handlerebuildcaches(false);
        }

    }

    if( $edit || $new )
    {
        $News = array( "active" => 1, "title" => "", "content" => "" );
        $aaaaam = "";
        if( $edit )
        {
            $News = $TSUE["TSUE_Database"]->query_result("SELECT active,title,content FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$News )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $News["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        }
        else
        {
            addbreadcrumb(array( get_phrase("news_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
        }

        if( isset($_POST["News"]) )
        {
            $News = $_POST["News"];
            if( !$News["title"] )
            {
                $formErrors[] = get_phrase("news_error_no_title");
            }

            if( !$News["content"] )
            {
                $formErrors[] = get_phrase("news_error_no_content");
            }

            if( !isset($formErrors) )
            {
                $buildQuery = array( "active" => $News["active"], "title" => $News["title"], "content" => $News["content"] );
                if( $edit )
                {
                    $TSUE["TSUE_Database"]->update("tsue_news", $buildQuery, "nid=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $buildQuery["memberid"] = $TSUE["TSUE_Member"]["memberid"];
                    $buildQuery["date"] = TIMENOW;
                    $TSUE["TSUE_Database"]->insert("tsue_news", $buildQuery);
                }

                logadminaction(get_phrase("news_x_has_been_updated", $News["title"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                $updateDone = true;
                handlerebuildcaches(false);
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $radioButtons = radioyesno("News[active]", $News["active"]);
            $formContents = aaaaan(get_phrase("news_active"), $radioButtons);
            $inputbox = inputbox("News[title]", $News["title"]);
            $formContents .= aaaaan(get_phrase("news_news_title"), $inputbox);
            $textarea = textarea("News[content]", $News["content"], true);
            $formContents .= aaaaan(get_phrase("news_content"), $textarea);
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    if( $tweet )
    {
        $News = $TSUE["TSUE_Database"]->query_result("SELECT content FROM tsue_news WHERE nid = " . $TSUE["TSUE_Database"]->escape($tweet));
        if( $News )
        {
            $HTML .= posttotwitter($News["content"], 120);
        }

    }

    $AllNews = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_news ORDER BY active DESC, date DESC");
    if( !$TSUE["TSUE_Database"]->num_rows($AllNews) )
    {
        $tableContents = errormessage(get_phrase("news_no_news_yet"));
    }
    else
    {
        $tableContents = "";
        while( $News = $TSUE["TSUE_Database"]->fetch_assoc($AllNews) )
        {
            $linkClass = (!$News["active"] ? "linkDisabled" : "");
            $aaaaby = aaaaae(array( "edit=" . $News["nid"] => array( "phrase" => $News["title"], "class" => $linkClass ) ));
            $aaaabz = aaaaae(array( "delete=" . $News["nid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            $aaaaca = aaaaae(array( "tweet=" . $News["nid"] => array( "phrase" => getimage("buttons/twitter.png", "Tweet") ) ));
            if( $News["active"] )
            {
                $aaaacb = aaaaae(array( "enable_disable=" . $News["nid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
            }
            else
            {
                $aaaacb = aaaaae(array( "enable_disable=" . $News["nid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
            }

            $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaaby . " <span class=\"smallPassiveText\">" . get_phrase("news_created", convert_relative_time($News["date"])) . "</span>" ), array( "width" => "20%", "text" => $aaaaca . $aaaacb . $aaaabz, "align" => "right" ) ));
        }
    }

    $HTML .= createtable(get_phrase("dashboard_news"), $tableContents, 2, $aaaabx);
    return $HTML;
}

function handlefaq()
{
    global $TSUE;
    $cid = intval(getvar("cid"));
    $type = trim(getvar("type"));
    $fid = intval(getvar("fid"));
    $HTML = "";
    if( $type == "deleteCategory" && $cid )
    {
        $FAQCategory = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_faq_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid));
        if( $FAQCategory )
        {
            $TSUE["TSUE_Database"]->delete("tsue_faq_categories", "cid = " . $TSUE["TSUE_Database"]->escape($cid));
            $TSUE["TSUE_Database"]->delete("tsue_faq", "cid = " . $TSUE["TSUE_Database"]->escape($cid));
            logadminaction(get_phrase("faq_category_has_been_deleted", $FAQCategory["name"] . " (" . $cid . ")"));
        }

    }

    if( $type == "addCategory" || $type == "editCategory" )
    {
        if( $type == "editCategory" )
        {
            $FAQCategory = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_faq_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid));
            if( !$FAQCategory )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            addbreadcrumb(array( get_phrase("faq_edit_category") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;cid=" . $cid . "&amp;type=" . $type ));
            $aaaaam = array( "cid" => $cid );
        }
        else
        {
            $FAQCategory = array( "name" => "", "sort" => "", "active" => 1 );
            addbreadcrumb(array( get_phrase("faq_create_new_category") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;type=" . $type ));
            $aaaaam = "";
        }

        if( isset($_POST["FAQCategory"]) )
        {
            $FAQCategory = $_POST["FAQCategory"];
            if( !$FAQCategory["name"] )
            {
                $formErrors[] = get_phrase("faq_category_name_error");
            }

            if( !isset($formErrors) )
            {
                $buildQuery = array( "name" => $FAQCategory["name"], "sort" => $FAQCategory["sort"], "active" => $FAQCategory["active"] );
                if( $type == "editCategory" )
                {
                    $TSUE["TSUE_Database"]->update("tsue_faq_categories", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($cid));
                }
                else
                {
                    $TSUE["TSUE_Database"]->insert("tsue_faq_categories", $buildQuery);
                    $cid = $TSUE["TSUE_Database"]->insert_id();
                }

                logadminaction(get_phrase("faq_category_has_been_updated", $FAQCategory["name"] . " (" . $cid . ")"));
                $HTML .= successmessage(get_phrase("message_saved"));
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $radioButtons = radioyesno("FAQCategory[active]", $FAQCategory["active"]);
            $formContents = aaaaan(get_phrase("faq_category_active"), $radioButtons);
            $inputbox = inputbox("FAQCategory[name]", $FAQCategory["name"]);
            $formContents .= aaaaan(get_phrase("faq_category_name"), $inputbox);
            $inputbox = inputbox("FAQCategory[sort]", $FAQCategory["sort"], "text textVeryTiny");
            $formContents .= aaaaan(get_phrase("faq_category_displayorder"), $inputbox);
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    if( $type == "deleteItem" && $fid && $cid )
    {
        $FAQItem = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_faq WHERE fid = " . $TSUE["TSUE_Database"]->escape($fid) . " AND cid = " . $TSUE["TSUE_Database"]->escape($cid));
        if( $FAQItem )
        {
            $TSUE["TSUE_Database"]->delete("tsue_faq", "fid = " . $TSUE["TSUE_Database"]->escape($fid));
            logadminaction(get_phrase("faq_item_has_been_deleted", $FAQItem["title"] . " (" . $fid . ")"));
        }

    }

    if( ($type == "addItem" || $type == "editItem") && $cid )
    {
        $FAQCategory = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_faq_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid));
        if( !$FAQCategory )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        addbreadcrumb(array( get_phrase(($type == "editItem" ? "faq_edit_item" : "faq_add_item")) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;cid=" . $cid . "&amp;type=" . $type ));
        $FAQItem = array( "cid" => $cid, "title" => "", "content" => "", "sort" => "", "active" => 1 );
        $aaaaam = "";
        if( $type == "editItem" )
        {
            $FAQItem = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_faq WHERE fid = " . $TSUE["TSUE_Database"]->escape($fid));
            if( !$FAQItem )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "fid" => $fid );
        }

        if( isset($_POST["FAQItem"]) )
        {
            $FAQItem = $_POST["FAQItem"];
            if( !$FAQItem["title"] )
            {
                $formErrors[] = get_phrase("faq_title_error");
            }

            if( !$FAQItem["content"] )
            {
                $formErrors[] = get_phrase("faq_content_error");
            }

            if( !isset($formErrors) )
            {
                $buildQuery = array( "cid" => $cid, "title" => $FAQItem["title"], "content" => $FAQItem["content"], "sort" => $FAQItem["sort"], "active" => $FAQItem["active"] );
                if( $type == "editItem" )
                {
                    $TSUE["TSUE_Database"]->update("tsue_faq", $buildQuery, "fid=" . $TSUE["TSUE_Database"]->escape($fid));
                }
                else
                {
                    $TSUE["TSUE_Database"]->insert("tsue_faq", $buildQuery);
                    $fid = $TSUE["TSUE_Database"]->insert_id();
                }

                logadminaction(get_phrase("faq_item_has_been_updated", $FAQItem["title"] . " (" . $fid . ")"));
                $HTML .= successmessage(get_phrase("message_saved"));
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $radioButtons = radioyesno("FAQItem[active]", $FAQItem["active"]);
            $formContents = aaaaan(get_phrase("faq_item_active"), $radioButtons);
            $inputbox = inputbox("FAQItem[title]", $FAQItem["title"]);
            $formContents .= aaaaan(get_phrase("faq_item_title"), $inputbox);
            $textarea = textarea("FAQItem[content]", $FAQItem["content"], true);
            $formContents .= aaaaan(get_phrase("faq_item_content"), $textarea);
            $inputbox = inputbox("FAQItem[sort]", $FAQItem["sort"], "text textVeryTiny");
            $formContents .= aaaaan(get_phrase("faq_item_displayorder"), $inputbox);
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    $aaaacc = array(  );
    $aaaacd = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_faq ORDER BY cid ASC");
    while( $FAQItem = $TSUE["TSUE_Database"]->fetch_assoc($aaaacd) )
    {
        $aaaace = aaaaae(array( "cid=" . $FAQItem["cid"] . "&fid=" . $FAQItem["fid"] . "&type=editItem" => array( "phrase" => get_phrase("button_edit") ) ));
        $aaaacf = aaaaae(array( "cid=" . $FAQItem["cid"] . "&fid=" . $FAQItem["fid"] . "&type=deleteItem" => array( "phrase" => get_phrase("button_delete"), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
        $linkClass = (!$FAQItem["active"] ? "linkDisabled" : "");
        $aaaacc[$FAQItem["cid"]][] = "\r\n\t\t<li>[" . $aaaace . "] [" . $aaaacf . "] <span class=\"" . $linkClass . "\">" . $FAQItem["title"] . "</span></li>";
    }
    $aaaacg = "";
    $FAQCategories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_faq_categories ORDER BY cid ASC");
    while( $FAQCategory = $TSUE["TSUE_Database"]->fetch_assoc($FAQCategories) )
    {
        $items = "";
        if( isset($aaaacc[$FAQCategory["cid"]]) )
        {
            $items .= "<ul>";
            foreach( $aaaacc[$FAQCategory["cid"]] as $cid => $li )
            {
                $items .= $li;
            }
            $items .= "</ul>";
        }

        $aaaach = aaaaae(array( "cid=" . $FAQCategory["cid"] . "&type=editCategory" => array( "phrase" => get_phrase("button_edit") ) ));
        $aaaaci = aaaaae(array( "cid=" . $FAQCategory["cid"] . "&type=addItem" => array( "phrase" => get_phrase("faq_add_item") ) ));
        $aaaacj = aaaaae(array( "cid=" . $FAQCategory["cid"] . "&type=deleteCategory" => array( "phrase" => get_phrase("button_delete"), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
        $linkClass = (!$FAQCategory["active"] ? "linkDisabled" : "");
        $aaaacg .= "\r\n\t\t<li>[" . $aaaaci . "] [" . $aaaach . "] [" . $aaaacj . "] <span class=\"" . $linkClass . "\"><b>" . $FAQCategory["name"] . "</b></span> " . $items . "</li>";
    }
    $aaaack = aaaaae(array( "type=addCategory" => array( "phrase" => get_phrase("faq_create_new_category") ) ));
    return createtable(get_phrase("dashboard_faq_alt"), "\r\n\t<tr>\r\n\t\t<td>\r\n\t\t\t<ul style=\"line-height: 2;\">\r\n\t\t\t\t" . $aaaacg . "\r\n\t\t\t</ul>\r\n\t\t</td>\r\n\t</tr>", 1, $aaaack);
}

function handletorrentcategories()
{
    global $TSUE;
    $HTML = "";
    $aaaacl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("torrent_categories_new_category") ) ));
    $tableContents = "";
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $cid = intval(getvar("cid"));
    $set = trim(getvar("set"));
    $confirm = intval(getvar("confirm"));
    if( isset($_POST["sort"]) )
    {
        foreach( $_POST["sort"] as $Cid => $Sort )
        {
            $Cid = intval($Cid);
            $Sort = intval($Sort);
            $TSUE["TSUE_Database"]->update("tsue_torrents_categories", array( "sort" => $Sort ), "cid=" . $TSUE["TSUE_Database"]->escape($Cid));
        }
        handleprune(false);
        header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
        exit();
    }
    else
    {
        if( $set && $cid )
        {
            $Category = $TSUE["TSUE_Database"]->query_result("SELECT cname FROM tsue_torrents_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($cid));
            if( !$Category )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            if( $set == "delete" )
            {
                $Phrase = "delete_all_torrents_in_this_category";
            }
            else
            {
                $Phrase = "set_all_torrents_" . $set . "_in_this_category";
            }

            if( !isset($TSUE["TSUE_Language"]["phrase"][$Phrase]) )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $Phrase = $TSUE["TSUE_Language"]["phrase"][$Phrase] . ": " . $Category["cname"];
            if( !$confirm )
            {
                return errormessage("\r\n\t\t\t" . $Phrase . "\r\n\t\t\t<p>" . get_phrase("are_you_sure_that_you_want_to_perform_this_action") . "</p>\r\n\t\t\t<p>" . aaaaae(array( "set=" . $set . "&cid=" . $cid . "&confirm=1" => array( "class" => "submit", "phrase" => get_phrase("button_apply") ) )) . "</p>");
            }

            logadminaction($Phrase);
            handlerebuildcaches(false);
            handleprune(false);
            switch( $set )
            {
                case "free":
                case "non_free":
                    aaaacm(array( "download_multiplier" => ($set == "free" ? 0 : 1) ), $cid);
                    break;
                case "double_upload":
                case "non_double_upload":
                    aaaacm(array( "upload_multiplier" => ($set == "double_upload" ? 2 : 1) ), $cid);
                    break;
                case "sticky":
                case "un_sticky":
                    $TSUE["TSUE_Database"]->update("tsue_torrents", array( "sticky" => ($set == "sticky" ? 1 : 0) ), "cid=" . $TSUE["TSUE_Database"]->escape($cid));
                    break;
                case "anonymouse":
                case "non_anonymouse":
                    aaaacm(array( "anonymouse" => ($set == "anonymouse" ? 1 : 0) ), $cid);
                    break;
                case "record_stats":
                case "non_record_stats":
                    aaaacm(array( "record_stats" => ($set == "record_stats" ? 1 : 0) ), $cid);
                    break;
                case "delete":
                    $Torrents = $TSUE["TSUE_Database"]->query("SELECT tid FROM tsue_torrents WHERE cid = " . $cid);
                    if( $TSUE["TSUE_Database"]->num_rows($Torrents) )
                    {
                        while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
                        {
                            deletetorrent($Torrent["tid"]);
                        }
                    }

                    break;
            }
        }

        if( $delete )
        {
            checkdemomode();
            $Category = $TSUE["TSUE_Database"]->query_result("SELECT pid, cname FROM tsue_torrents_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete));
            if( $Category )
            {
                $TSUE["TSUE_Database"]->delete("tsue_torrents_categories", "cid = " . $TSUE["TSUE_Database"]->escape($delete));
                foreach( array( "png", "gif", "jpg", "jpeg" ) as $extension )
                {
                    $categoryImage = DATAPATH . "torrents/category_images/" . $delete . "." . $extension;
                    if( file_exists($categoryImage) )
                    {
                        @unlink($categoryImage);
                    }

                }
                if( !$Category["pid"] )
                {
                    $subCategories = $TSUE["TSUE_Database"]->query("SELECT cid FROM tsue_torrents_categories WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete));
                    if( $TSUE["TSUE_Database"]->num_rows($subCategories) )
                    {
                        while( $subCategory = $TSUE["TSUE_Database"]->fetch_assoc($subCategories) )
                        {
                            foreach( array( "png", "gif", "jpg", "jpeg" ) as $extension )
                            {
                                $categoryImage = DATAPATH . "torrents/category_images/" . $subCategory["cid"] . "." . $extension;
                                if( file_exists($categoryImage) )
                                {
                                    @unlink($categoryImage);
                                }

                            }
                        }
                        $TSUE["TSUE_Database"]->delete("tsue_torrents_categories", "pid = " . $TSUE["TSUE_Database"]->escape($delete));
                    }

                }

                logadminaction(get_phrase("torrent_categories_category_has_been_deleted", $Category["cname"] . " (" . $delete . ")"));
                handlerebuildcaches(false);
                handleprune(false);
            }

        }

        if( $edit || $new )
        {
            $Category = array( "pid" => 0, "sort" => "", "cname" => "", "cviewpermissions" => array(  ), "cdownloadpermissions" => array(  ) );
            $aaaaam = "";
            if( $edit )
            {
                $Category = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_torrents_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit));
                if( !$Category )
                {
                    return errormessage(get_phrase("message_content_error"));
                }

                $aaaaam = array( "edit" => $edit );
                $Category["cviewpermissions"] = tsue_explode(",", $Category["cviewpermissions"]);
                $Category["cdownloadpermissions"] = tsue_explode(",", $Category["cdownloadpermissions"]);
                addbreadcrumb(array( get_phrase("button_edit") . ": " . $Category["cname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
            }
            else
            {
                addbreadcrumb(array( get_phrase("torrent_categories_new_category") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
            }

            if( isset($_POST["Category"]) )
            {
                checkdemomode();
                $Category = $_POST["Category"];
                $categoryImage = $_FILES["categoryImage"];
                if( !isset($Category["cviewpermissions"]) )
                {
                    $Category["cviewpermissions"] = array(  );
                }

                if( !isset($Category["cdownloadpermissions"]) )
                {
                    $Category["cdownloadpermissions"] = array(  );
                }

                if( !$Category["cname"] )
                {
                    $formErrors[] = get_phrase("message_required_fields_error");
                }

                if( $categoryImage && $categoryImage["tmp_name"] )
                {
                    if( !is_uploaded_file($categoryImage["tmp_name"]) )
                    {
                        $flagError[] = get_phrase("upload_error3");
                    }
                    else
                    {
                        if( !$categoryImage["name"] || !$categoryImage["type"] || !$categoryImage["tmp_name"] || $categoryImage["error"] || !$categoryImage["size"] )
                        {
                            $flagError[] = get_phrase("upload_error3");
                        }
                        else
                        {
                            if( !in_array(file_extension($categoryImage["name"]), array( "png", "gif", "jpg", "jpeg" )) )
                            {
                                $flagError[] = get_phrase("upload_error6", "png,gif,jpg");
                            }
                            else
                            {
                                $aaaacn = file_extension($categoryImage["name"]);
                                $newFlag = $categoryImage["tmp_name"];
                            }

                        }

                    }

                }

                if( isset($flagError) )
                {
                    $formErrors = (isset($formErrors) ? array_merge($formErrors, $flagError) : $flagError);
                    unset($flagError);
                }

                if( !isset($formErrors) )
                {
                    $buildQuery = array( "cname" => $Category["cname"], "pid" => $Category["pid"], "sort" => $Category["sort"], "cviewpermissions" => implode(",", $Category["cviewpermissions"]), "cdownloadpermissions" => implode(",", $Category["cdownloadpermissions"]) );
                    if( $edit )
                    {
                        $TSUE["TSUE_Database"]->update("tsue_torrents_categories", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit));
                        $flagID = $edit;
                    }
                    else
                    {
                        $TSUE["TSUE_Database"]->insert("tsue_torrents_categories", $buildQuery);
                        $flagID = $TSUE["TSUE_Database"]->insert_id();
                    }

                    if( isset($newFlag) && $flagID )
                    {
                        foreach( array( "png", "gif", "jpg", "jpeg" ) as $checkExtension )
                        {
                            $aaaaco = DATAPATH . "torrents/category_images/" . $flagID . "." . $checkExtension;
                            if( file_exists($aaaaco) )
                            {
                                @unlink($aaaaco);
                            }

                        }
                        $aaaacp = DATAPATH . "torrents/category_images/" . $flagID . "." . $aaaacn;
                        @move_uploaded_file($newFlag, $aaaacp);
                    }

                    logadminaction(get_phrase("torrent_categories_category_has_been_updated", $Category["cname"] . " (" . $flagID . ")"));
                    $HTML .= successmessage(get_phrase("message_saved"));
                    handlerebuildcaches(false);
                    handleprune(false);
                    $updateDone = true;
                }
                else
                {
                    $HTML .= errormessage(implode("<br />", $formErrors));
                }

            }

            if( !isset($updateDone) )
            {
                $inputbox = inputbox("Category[cname]", $Category["cname"], "text texthalf");
                $formContents = aaaaan(get_phrase("torrent_categories_category_name"), $inputbox);
                $selectbox = aaaacq("Category[pid]", $Category["pid"], (isset($Category["cid"]) ? $Category["cid"] : 0));
                $formContents .= aaaaan(get_phrase("global_parent_category"), $selectbox);
                $inputbox = inputbox("Category[sort]", $Category["sort"], "text textVeryTiny");
                $formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox);
                $aaaacr = aaaacs("categoryImage");
                $formContents .= aaaaan(get_phrase("torrent_categories_category_image"), $aaaacr, ($edit ? get_phrase("global_leave_empty_keep_current_one") : ""));
                $aaaabe = aaaaaw("Category[cviewpermissions][]", $Category["cviewpermissions"]);
                $formContents .= aaaaan(get_phrase("global_view_permissions"), $aaaabe);
                $aaaabe = aaaaaw("Category[cdownloadpermissions][]", $Category["cdownloadpermissions"]);
                $formContents .= aaaaan(get_phrase("global_download_permissions"), $aaaabe);
                $HTML .= aaaabg($formContents, $aaaaam);
                return $HTML;
            }

        }

        $aaaact = array(  );
        $subCategories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories WHERE pid > 0 ORDER BY `sort` ASC");
        if( $TSUE["TSUE_Database"]->num_Rows($subCategories) )
        {
            while( $subCategory = $TSUE["TSUE_Database"]->fetch_assoc($subCategories) )
            {
                $aaaact[$subCategory["pid"]][] = $subCategory;
            }
        }

        $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories WHERE pid = 0 ORDER BY `sort` ASC");
        if( !$TSUE["TSUE_Database"]->num_rows($Categories) )
        {
            $tableContents = errormessage(get_phrase("no_results_found"));
        }
        else
        {
            $tableContents = "";
            while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
            {
                $tableContents .= aaaacu($Category);
                if( isset($aaaact[$Category["cid"]]) )
                {
                    foreach( $aaaact[$Category["cid"]] as $subCategory )
                    {
                        $tableContents .= aaaacu($subCategory, true);
                    }
                }

            }
            $tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
        }

        $HTML .= aaaabn(createtable(get_phrase("dashboard_torrent_categories_alt"), $tableContents, 3, $aaaacl));
        return $HTML;
    }

}

function aaaacm($Option, $Cid)
{
    global $TSUE;
    $Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,options FROM tsue_torrents WHERE cid = " . $Cid);
    if( $TSUE["TSUE_Database"]->num_rows($Torrents) )
    {
        while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
        {
            $buildQuery = array(  );
            $buildQuery["options"] = serialize(array_merge(unserialize($Torrent["options"]), $Option));
            $buildQuery["flags"] = 2;
            if( array_key_exists("upload_multiplier", $Option) )
            {
                $buildQuery["upload_multiplier"] = $Option["upload_multiplier"];
            }
            else
            {
                if( array_key_exists("download_multiplier", $Option) )
                {
                    $buildQuery["download_multiplier"] = $Option["download_multiplier"];
                }

            }

            $TSUE["TSUE_Database"]->update("tsue_torrents", $buildQuery, "tid=" . $TSUE["TSUE_Database"]->escape($Torrent["tid"]));
        }
    }

}

function aaaacu($Category, $isSubCategory = false)
{
    global $TSUE;
    $aaaacv = aaaaae(array( "edit=" . $Category["cid"] => array( "phrase" => $Category["cname"] ) ));
    $aaaacw = aaaaae(array( "delete=" . $Category["cid"] => array( "phrase" => getimage("buttons/delete" . (($isSubCategory ? "_s" : "")) . ".png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") . ((!$isSubCategory ? get_phrase("torrent_categories_category_delete_warning") : "")) ) ));
    $categoryImage = get_torrent_category_image($Category["cid"]);
    if( $categoryImage )
    {
        $categoryImage = "<img src=\"" . $categoryImage . "\" alt=\"" . $Category["cname"] . "\" title=\"" . $Category["cname"] . "\" border=\"0\"" . (($isSubCategory ? " width=\"30\" height=\"30\" style=\"margin-left: 30px;\"" : "")) . " />";
    }

    $Options = "\r\n\t<div rel=\"dropDownMenu\" class=\"dropDownMenu\">\r\n\t\t<span class=\"smallPassiveText\">[Options]</span>\r\n\t\t<div id=\"dropDownMenu\">\r\n\t\t\t" . aaaaae(array( "set=free&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_free_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=non_free&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_free_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=double_upload&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_double_upload_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=non_double_upload&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_double_upload_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=sticky&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_sticky_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=un_sticky&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_un_sticky_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=anonymouse&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_anonymouse_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=non_anonymouse&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_anonymouse_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=record_stats&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_record_stats_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=non_record_stats&cid=" . $Category["cid"] => array( "phrase" => get_phrase("set_all_torrents_non_record_stats_in_this_category") ) )) . "\r\n\t\t\t" . aaaaae(array( "set=delete&cid=" . $Category["cid"] => array( "phrase" => get_phrase("delete_all_torrents_in_this_category") ) )) . "\r\n\t\t</div>\r\n\t</div>";
    if( $isSubCategory )
    {
        $tableContents = aaaaag(array( array( "width" => "75%", "text" => "&nbsp;&nbsp;" . $categoryImage . " <span class=\"smallPassiveText\">-- " . $aaaacv . "</span>" . $Options ), array( "width" => "5%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "20%", "text" => $aaaacw, "align" => "right" ) ));
    }
    else
    {
        $tableContents = aaaaag(array( array( "width" => "65%", "text" => $categoryImage . " " . $aaaacv . $Options ), array( "width" => "10%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaacw, "align" => "right" ) ));
    }

    return $tableContents;
}

function handlemarket()
{
    global $TSUE;
    $HTML = "";
    $aaaacx = aaaaae(array( "new=1" => array( "phrase" => get_phrase("market_create_new") ) ));
    $enable_disable = intval(getvar("enable_disable"));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    if( $enable_disable )
    {
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
        $Market = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_market WHERE itemid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
        if( $Market )
        {
            $TSUE["TSUE_Database"]->update("tsue_market", $BuildQuery, "itemid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            logadminaction(get_phrase("market_item_x_updated", $Market["title"] . " (" . $enable_disable . ")"));
        }

    }

    if( $delete )
    {
        $Market = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_market WHERE itemid = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Market )
        {
            $TSUE["TSUE_Database"]->delete("tsue_market", "itemid = " . $TSUE["TSUE_Database"]->escape($delete));
            logadminaction(get_phrase("market_item_x_deleted", $Market["title"] . " (" . $delete . ")"));
        }

    }

    if( $edit || $new )
    {
        $Market = array( "title" => "", "description" => "", "required_points" => 0, "item_type" => "", "amount" => "", "active" => 1, "permissions" => array(  ) );
        $aaaaam = "";
        if( $edit )
        {
            $Market = $TSUE["TSUE_Database"]->query_result("SELECT title,description,required_points,item_type,amount,active,permissions FROM tsue_market WHERE itemid = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Market )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
            $Market["permissions"] = tsue_explode(",", $Market["permissions"]);
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Market["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        }
        else
        {
            addbreadcrumb(array( get_phrase("market_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
        }

        if( isset($_POST["Market"]) )
        {
            $Market = $_POST["Market"];
            if( !$Market["title"] )
            {
                $formErrors[] = get_phrase("market_title_error");
            }

            if( !$Market["item_type"] )
            {
                $formErrors[] = get_phrase("market_item_type_error");
            }

            if( !$Market["amount"] && in_array($Market["item_type"], array( "invites_left", "uploaded", "gift", "hitrun" )) )
            {
                $formErrors[] = get_phrase("market_item_amount_error");
            }

            if( !isset($Market["permissions"]) )
            {
                $Market["permissions"] = array(  );
            }

            if( !isset($formErrors) )
            {
                $buildQuery = array( "title" => $Market["title"], "description" => $Market["description"], "required_points" => $Market["required_points"], "item_type" => $Market["item_type"], "amount" => $Market["amount"], "active" => $Market["active"], "permissions" => implode(",", $Market["permissions"]) );
                if( $edit )
                {
                    $TSUE["TSUE_Database"]->update("tsue_market", $buildQuery, "itemid=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $TSUE["TSUE_Database"]->insert("tsue_market", $buildQuery);
                }

                logadminaction(get_phrase("market_item_x_updated", $Market["title"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $radioButtons = radioyesno("Market[active]", $Market["active"]);
            $formContents = aaaaan(get_phrase("market_item_active"), $radioButtons);
            $inputbox = inputbox("Market[title]", $Market["title"]);
            $formContents .= aaaaan(get_phrase("market_item_title"), $inputbox);
            $textarea = textarea("Market[description]", $Market["description"], true);
            $formContents .= aaaaan(get_phrase("market_item_description"), $textarea);
            $inputbox = inputbox("Market[required_points]", $Market["required_points"]);
            $formContents .= aaaaan(get_phrase("market_required_points"), $inputbox);
            $selectbox = selectbox("Market[item_type]", $Market["item_type"], array( "invites_left" => get_phrase("market_item_type_invites_left"), "custom_title" => get_phrase("market_item_type_custom_title"), "uploaded" => get_phrase("market_item_type_uploaded"), "gift" => get_phrase("market_item_type_gift"), "hitrun" => get_phrase("market_item_type_hitrun"), "change_membername" => get_phrase("change_membername") ));
            $formContents .= aaaaan(get_phrase("market_item_type"), $selectbox);
            $inputbox = inputbox("Market[amount]", $Market["amount"], "text texttiny", "", false, false, getimage("buttons/calculator.png", get_phrase("calculator"), "calculator"));
            $formContents .= aaaaan(get_phrase("market_item_amount"), $inputbox);
            $Usergroups = aaaaaw("Market[permissions][]", $Market["permissions"]);
            $formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all"));
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    $AllItems = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_market ORDER BY active DESC, required_points ASC");
    if( !$TSUE["TSUE_Database"]->num_rows($AllItems) )
    {
        $tableContents = errormessage(get_phrase("market_item_no_item_yet"));
    }
    else
    {
        $tableContents = "";
        while( $Market = $TSUE["TSUE_Database"]->fetch_assoc($AllItems) )
        {
            $linkClass = (!$Market["active"] ? "linkDisabled" : "");
            $aaaacy = aaaaae(array( "edit=" . $Market["itemid"] => array( "phrase" => $Market["title"], "class" => $linkClass ) ));
            $aaaacz = aaaaae(array( "delete=" . $Market["itemid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            if( $Market["active"] )
            {
                $aaaada = aaaaae(array( "enable_disable=" . $Market["itemid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
            }
            else
            {
                $aaaada = aaaaae(array( "enable_disable=" . $Market["itemid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
            }

            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaacy . " <span class=\"smallPassiveText\">" . get_phrase("market_required_points") . ": " . $Market["required_points"] . "</span>" ), array( "width" => "15%", "text" => $aaaada . $aaaacz, "align" => "right" ) ));
        }
    }

    $HTML .= createtable(get_phrase("dashboard_market_alt"), $tableContents, 2, $aaaacx);
    return $HTML;
}

function handleapimanager()
{
    global $TSUE;
    $HTML = "";
    $enable_disable = intval(getvar("enable_disable"));
    $edit = intval(getvar("edit"));
    $logs = intval(getvar("logs"));
    if( $logs )
    {
        $API = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades_api WHERE api_id = " . $TSUE["TSUE_Database"]->escape($logs));
        if( !$API )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        addbreadcrumb(array( $API["title"] . ": " . get_phrase("logs", $TSUE["TSUE_Member"]["membername"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;logs=" . $logs ));
        $getLogs = $TSUE["TSUE_Database"]->query("SELECT t.amount, t.currency, t.dateline, t.full_log, p.hash, p.completed, p.memberid, u.upgrade_title, u.upgrade_length_type, u.upgrade_length, m.membername, g.groupname, g.groupstyle FROM tsue_member_upgrades_transaction t LEFT JOIN tsue_member_upgrades_purchases p USING(history_id) LEFT JOIN tsue_member_upgrades u ON (p.upgrade_id=u.upgrade_id) LEFT JOIN tsue_members m ON(p.memberid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE t.api_id = " . $TSUE["TSUE_Database"]->escape($logs) . " AND full_log != '' AND completed = 0 ORDER BY t.dateline DESC");
        if( !$TSUE["TSUE_Database"]->num_rows($getLogs) )
        {
            return errormessage(get_phrase("message_nothing_found"));
        }

        $List = "";
        while( $Log = $TSUE["TSUE_Database"]->fetch_assoc($getLogs) )
        {
            if( $Log["upgrade_length_type"] == "lifetime" )
            {
                $Log["upgrade_length"] = "";
                $Log["upgrade_length_type"] = get_phrase("upgrade_lifetime");
            }
            else
            {
                if( $Log["upgrade_length_type"] )
                {
                    $Log["upgrade_length_type"] = get_phrase("upgrade_" . $Log["upgrade_length_type"] . ((1 < $Log["upgrade_length"] ? "s" : "")));
                }

            }

            if( $Log["amount"] )
            {
                $upradePrice = get_phrase("upgrade_price", $Log["amount"], strtoupper($Log["currency"]), $Log["upgrade_length"], $Log["upgrade_length_type"]);
            }
            else
            {
                $upradePrice = "[N/A]";
            }

            $List .= "\r\n\t\t\t<div class=\"apiLogs\">\r\n\t\t\t\t<span style=\"float: right;\">#" . $Log["hash"] . "</span>\r\n\t\t\t\t" . $Log["upgrade_title"] . " <span class=\"smallPassiveText\">" . $upradePrice . "</span><br />\r\n\t\t\t\t<b>" . get_phrase("upgrade_membername") . ":</b> " . aaaaaf("?p=profile&pid=18&memberid=" . $Log["memberid"], getmembername($Log["membername"], $Log["groupstyle"])) . "<br />\r\n\t\t\t\t<b>" . get_phrase("torrents_peer_last_updated") . ":</b> " . convert_relative_time($Log["dateline"]) . "<br />\r\n\t\t\t\t<b>" . get_phrase("logs") . ":</b> " . $Log["full_log"] . "\r\n\t\t\t</div>\r\n\t\t\t<br />";
        }
        return $List;
    }

    if( $edit )
    {
        $API = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades_api WHERE api_id = " . $TSUE["TSUE_Database"]->escape($edit));
        if( !$API )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        addbreadcrumb(array( $API["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        $aaaaam = array( "edit" => $edit );
        $APISettings = ($API["settings"] ? unserialize($API["settings"]) : false);
        if( !$APISettings )
        {
            if( $API["classname"] == "coinbase" )
            {
                $APISettings = array( "secret_key" => "", "api_key" => "", "payment_inform_emails" => "", "payment_pm_owner" => "" );
            }
            else
            {
                $APISettings = array( "business" => "", "demo_mode" => 0, "payment_inform_emails" => "", "payment_pm_owner" => "" );
            }

        }

        if( isset($_POST["APISettings"]) )
        {
            $APISettings = $_POST["APISettings"];
            if( !isset($formErrors) )
            {
                $buildQuery = array( "settings" => serialize($APISettings) );
                $TSUE["TSUE_Database"]->update("tsue_member_upgrades_api", $buildQuery, "api_id=" . $TSUE["TSUE_Database"]->escape($edit));
                logadminaction(get_phrase("upgrade_api_has_been_updated", $API["title"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                handlerebuildcaches(false);
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            if( $API["classname"] == "coinbase" )
            {
                $inputbox = inputbox("APISettings[secret_key]", $APISettings["secret_key"]);
                $formContents = aaaaan(get_phrase("upgrade_api_secret_key"), $inputbox, get_phrase("upgrade_api_secret_key_alt"));
                $inputbox = inputbox("APISettings[api_key]", $APISettings["api_key"]);
                $formContents .= aaaaan(get_phrase("upgrade_api_api_key"), $inputbox, get_phrase("upgrade_api_api_key_alt"));
            }
            else
            {
                $inputbox = inputbox("APISettings[business]", $APISettings["business"]);
                $formContents = aaaaan(get_phrase("upgrade_api_business"), $inputbox, get_phrase("upgrade_api_business_alt", $API["title"]));
                $radioButtons = radioyesno("APISettings[demo_mode]", $APISettings["demo_mode"]);
                $formContents .= aaaaan(get_phrase("upgrade_api_demo_mode"), $radioButtons);
            }

            $inputbox = inputbox("APISettings[payment_inform_emails]", $APISettings["payment_inform_emails"]);
            $formContents .= aaaaan(get_phrase("upgrade_api_email_notification"), $inputbox, get_phrase("upgrade_api_email_notification_alt"));
            $inputbox = inputbox("APISettings[payment_pm_owner]", $APISettings["payment_pm_owner"], "text textVeryTiny");
            $formContents .= aaaaan(get_phrase("upgrade_api_pm_notification_owner"), $inputbox, get_phrase("upgrade_api_pm_notification_owner_alt"));
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    if( $enable_disable )
    {
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
        $API = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_member_upgrades_api WHERE api_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
        if( $API )
        {
            $TSUE["TSUE_Database"]->update("tsue_member_upgrades_api", $BuildQuery, "api_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            logadminaction(get_phrase("upgrade_api_has_been_updated", $API["title"] . " (" . $enable_disable . ")"));
            handlerebuildcaches(false);
        }

    }

    $apiList = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_member_upgrades_api ORDER BY active DESC, title ASC");
    if( !$TSUE["TSUE_Database"]->num_rows($apiList) )
    {
        $tableContents = errormessage(get_phrase("upgrade_no_api"));
    }
    else
    {
        $tableContents = "";
        while( $API = $TSUE["TSUE_Database"]->fetch_assoc($apiList) )
        {
            $Image = array( "src" => "images/payment_api/" . $API["classname"] . ".png", "alt" => $API["title"], "title" => $API["title"], "class" => "middle", "id" => "", "rel" => "" );
            $Image = aaaadb($Image);
            $linkClass = (!$API["active"] ? "linkDisabled" : "");
            $aaaadc = aaaaae(array( "edit=" . $API["api_id"] => array( "phrase" => $API["title"], "class" => $linkClass ) ));
            $aaaadd = aaaaae(array( "logs=" . $API["api_id"] => array( "phrase" => getimage("buttons/examine.png", get_phrase("logs")) ) ));
            if( $API["active"] )
            {
                $aaaade = aaaaae(array( "enable_disable=" . $API["api_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
            }
            else
            {
                $aaaade = aaaaae(array( "enable_disable=" . $API["api_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
            }

            $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $Image . " " . $aaaadc . "<span class=\"smallPassiveText\">" . get_phrase("upgrade_api_supported_currency") . ": " . $API["currency"] . "</span>" ), array( "width" => "20%", "text" => $aaaadd . $aaaade, "align" => "right" ) ));
        }
    }

    $HTML .= createtable(get_phrase("dashboard_api_manager_alt"), $tableContents, 2);
    return $HTML;
}

function handlecronentries()
{
    global $TSUE;
    $HTML = "";
    $aaaadf = aaaaae(array( "new=1" => array( "phrase" => get_phrase("dashboard_cron_entries_create_new") ) ));
    $enable_disable = intval(getvar("enable_disable"));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $run = intval(getvar("run"));
    if( $run )
    {
        $BuildQuery = array( "nextrun" => TIMENOW );
        $Cron = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($run));
        if( $Cron )
        {
            $TSUE["TSUE_Database"]->update("tsue_cron", $BuildQuery, "cid = " . $TSUE["TSUE_Database"]->escape($run));
            logadminaction(get_phrase("dashboard_cron_entries_cron_updated", $Cron["title"] . " (" . $run . ")"));
            $HTML .= successmessage(get_phrase("message_saved"));
        }

    }

    if( $edit || $new )
    {
        $Cron = array( "title" => "", "nextrun" => TIMENOW, "minutes" => 0, "filename" => "", "function" => "", "active" => 0 );
        $aaaaam = "";
        if( $edit )
        {
            $Cron = $TSUE["TSUE_Database"]->query_result("SELECT title,nextrun,minutes,filename,function,active FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Cron )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Cron["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        }
        else
        {
            addbreadcrumb(array( get_phrase("dashboard_cron_entries_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
        }

        if( isset($_POST["Cron"]) )
        {
            $Cron = $_POST["Cron"];
            $aaaadg = array( "years" => 365 * 24 * 60 * 60, "months" => 31 * 24 * 60 * 60, "weeks" => 7 * 24 * 60 * 60, "days" => 24 * 60 * 60, "hours" => 60 * 60, "minutes" => 60 );
            $Cron["minutes"] = 0;
            foreach( array( "years", "months", "weeks", "days", "hours", "minutes" ) as $aaaadh )
            {
                if( isset($_POST["Cron"][$aaaadh]) && $_POST["Cron"][$aaaadh] && isset($aaaadg[$aaaadh]) )
                {
                    $Cron["minutes"] += intval($_POST["Cron"][$aaaadh]) * $aaaadg[$aaaadh];
                }

            }
            if( !$Cron["title"] )
            {
                $formErrors[] = get_phrase("dashboard_cron_entries_cron_title_error");
            }

            if( !$Cron["filename"] || !is_file(LIBRARYPATH . "cron/" . $Cron["filename"]) )
            {
                $formErrors[] = get_phrase("dashboard_cron_entries_cron_file_error");
            }

            if( !$Cron["function"] )
            {
                $formErrors[] = get_phrase("dashboard_cron_entries_cron_function_error");
            }

            if( !$Cron["minutes"] )
            {
                $formErrors[] = get_phrase("dashboard_cron_entries_cron_run_period_error");
            }

            if( !isset($formErrors) )
            {
                $buildQuery = array( "title" => $Cron["title"], "nextrun" => TIMENOW + $Cron["minutes"], "minutes" => $Cron["minutes"], "filename" => $Cron["filename"], "function" => $Cron["function"], "active" => $Cron["active"] );
                if( $edit )
                {
                    unset($buildQuery["nextrun"]);
                    $TSUE["TSUE_Database"]->update("tsue_cron", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $TSUE["TSUE_Database"]->insert("tsue_cron", $buildQuery);
                }

                logadminaction(get_phrase("dashboard_cron_entries_cron_updated", $Cron["title"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $radioButtons = radioyesno("Cron[active]", $Cron["active"]);
            $formContents = aaaaan(get_phrase("dashboard_cron_entries_active"), $radioButtons);
            $inputbox = inputbox("Cron[title]", $Cron["title"]);
            $formContents .= aaaaan(get_phrase("dashboard_cron_entries_title"), $inputbox);
            $inputbox = inputbox("Cron[filename]", $Cron["filename"]);
            $formContents .= aaaaan(get_phrase("dashboard_cron_entries_filename"), $inputbox, get_phrase("global_file_path", (DEMO_MODE ? "" : LIBRARYPATH . "cron/")));
            $inputbox = inputbox("Cron[function]", $Cron["function"]);
            $formContents .= aaaaan(get_phrase("dashboard_cron_entries_function"), $inputbox);
            $aaaadi = aaaadj($Cron["minutes"]);
            $inputbox = inputbox("Cron[years]", $aaaadi["years"], "text textVeryTiny", get_phrase("dashboard_cron_entries_years"));
            $inputbox .= inputbox("Cron[months]", $aaaadi["months"], "text textVeryTiny", get_phrase("dashboard_cron_entries_months"));
            $inputbox .= inputbox("Cron[weeks]", $aaaadi["weeks"], "text textVeryTiny", get_phrase("dashboard_cron_entries_weeks"));
            $inputbox .= inputbox("Cron[days]", $aaaadi["days"], "text textVeryTiny", get_phrase("dashboard_cron_entries_days"));
            $inputbox .= inputbox("Cron[hours]", $aaaadi["hours"], "text textVeryTiny", get_phrase("dashboard_cron_entries_hours"));
            $inputbox .= inputbox("Cron[minutes]", $aaaadi["minutes"], "text textVeryTiny", get_phrase("dashboard_cron_entries_minutes"));
            $formContents .= aaaaan(get_phrase("dashboard_cron_entries_run_period"), $inputbox);
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    if( $enable_disable )
    {
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
        $Cron = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
        if( $Cron )
        {
            $TSUE["TSUE_Database"]->update("tsue_cron", $BuildQuery, "cid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            logadminaction(get_phrase("dashboard_cron_entries_cron_updated", $Cron["title"] . " (" . $enable_disable . ")"));
        }

    }

    if( $delete )
    {
        $Cron = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_cron WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Cron )
        {
            $TSUE["TSUE_Database"]->delete("tsue_cron", "cid = " . $TSUE["TSUE_Database"]->escape($delete));
            logadminaction(get_phrase("dashboard_cron_entries_cron_deleted", $Cron["title"] . " (" . $delete . ")"));
        }

    }

    $aaaadk = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_cron ORDER BY active DESC, filename ASC");
    if( !$TSUE["TSUE_Database"]->num_rows($aaaadk) )
    {
        $tableContents = errormessage(get_phrase("dashboard_cron_entries_no_cron"));
    }
    else
    {
        $tableContents = "";
        while( $Cron = $TSUE["TSUE_Database"]->fetch_assoc($aaaadk) )
        {
            $loadTime = get_phrase("load_time", round($Cron["loadTime"], 4));
            $queryCount = get_phrase("query_count", number_format($Cron["queryCount"]));
            $nextRun = get_phrase("dashboard_cron_entries_next_run", convert_relative_time($Cron["nextrun"]));
            $linkClass = (!$Cron["active"] ? "linkDisabled" : "");
            $aaaadl = aaaaae(array( "run=" . $Cron["cid"] => array( "phrase" => getimage("buttons/refresh.png", get_phrase("dashboard_cron_entries_run_cron")) ) ));
            $aaaadm = aaaaae(array( "edit=" . $Cron["cid"] => array( "phrase" => $Cron["title"], "class" => $linkClass ) ));
            $aaaadn = aaaaae(array( "delete=" . $Cron["cid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            if( $Cron["active"] )
            {
                $aaaado = aaaaae(array( "enable_disable=" . $Cron["cid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
            }
            else
            {
                $aaaado = aaaaae(array( "enable_disable=" . $Cron["cid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
            }

            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaadm . " <span class=\"smallPassiveText\">" . $nextRun . " | " . $queryCount . " | " . $loadTime . "</span>" ), array( "width" => "15%", "text" => $aaaado . $aaaadl . $aaaadn, "align" => "right" ) ));
        }
    }

    $HTML .= createtable(get_phrase("dashboard_cron_entries"), $tableContents, 2, $aaaadf);
    return $HTML;
}

function handlerebuildcaches($logANDreturn = true)
{
    global $TSUE;
    $content = "";
    $cacheContents = array(  );
    $Announcement = $TSUE["TSUE_Database"]->query_result("SELECT a.*, m.membername FROM tsue_announcements a LEFT JOIN tsue_members m USING(memberid) WHERE a.active = 1 ORDER BY a.date DESC LIMIT 1");
    if( $Announcement )
    {
        $cacheContents["active_announcements_cache"] = array( "aid" => $Announcement["aid"], "memberid" => $Announcement["memberid"], "date" => $Announcement["date"], "title" => $Announcement["title"], "content" => $Announcement["content"] );
    }
    else
    {
        $cacheContents["active_announcements_cache"] = array(  );
    }

    $News = $TSUE["TSUE_Database"]->query("SELECT n.*, m.membername FROM tsue_news n LEFT JOIN tsue_members m USING(memberid) WHERE n.active = 1 ORDER BY n.date DESC");
    if( $TSUE["TSUE_Database"]->num_rows($News) )
    {
        while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($News) )
        {
            $cacheContents["active_news_cache"][] = array( "nid" => $nItem["nid"], "memberid" => $nItem["memberid"], "date" => $nItem["date"], "title" => $nItem["title"], "content" => $nItem["content"] );
        }
    }
    else
    {
        $cacheContents["active_news_cache"] = array(  );
    }

    $aaaadp = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_country ORDER BY 'country'");
    if( $TSUE["TSUE_Database"]->num_rows($aaaadp) )
    {
        while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($aaaadp) )
        {
            $cacheContents["banned_countries_cache"][] = $nItem["country"];
        }
    }
    else
    {
        $cacheContents["banned_countries_cache"] = array(  );
    }

    $aaaadq = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_email ORDER BY 'banned_email'");
    if( $TSUE["TSUE_Database"]->num_rows($aaaadq) )
    {
        while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($aaaadq) )
        {
            $cacheContents["banned_emails_cache"][] = $nItem["banned_email"];
        }
    }
    else
    {
        $cacheContents["banned_emails_cache"] = array(  );
    }

    $bannedIPs = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ip_match WHERE match_type = 'banned'");
    if( $TSUE["TSUE_Database"]->num_rows($bannedIPs) )
    {
        while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($bannedIPs) )
        {
            $cacheContents["banned_ips_cache"][$nItem["first_octet"]][] = array( $nItem["start_range"], $nItem["end_range"] );
        }
    }
    else
    {
        $cacheContents["banned_ips_cache"] = array(  );
    }

    $Smilies = $TSUE["TSUE_Database"]->query("SELECT smilie_text, smilie_title, smilie_file FROM tsue_smilies");
    if( $TSUE["TSUE_Database"]->num_rows($Smilies) )
    {
        while( $Smilie = $TSUE["TSUE_Database"]->fetch_assoc($Smilies) )
        {
            $cacheContents["dialog_smilies_cache"][] = $Smilie;
        }
    }
    else
    {
        $cacheContents["dialog_smilies_cache"] = array(  );
    }

    $permissions = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums_permissions ORDER BY forumid ASC");
    if( $TSUE["TSUE_Database"]->num_rows($permissions) )
    {
        while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($permissions) )
        {
            $cacheContents["forums_permissions_cache"][] = array( "forumid" => $nItem["forumid"], "membergroupid" => $nItem["membergroupid"], "permissions" => $nItem["permissions"] );
        }
    }
    else
    {
        $cacheContents["forums_permissions_cache"] = array(  );
    }

    $prefixes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums_thread_prefixes ORDER BY pname ASC");
    if( $TSUE["TSUE_Database"]->num_rows($prefixes) )
    {
        while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($prefixes) )
        {
            $cacheContents["forums_thread_prefixes"][] = array( "pid" => $nItem["pid"], "pname" => $nItem["pname"], "cssname" => $nItem["cssname"], "viewpermissions" => $nItem["viewpermissions"] );
        }
    }
    else
    {
        $cacheContents["forums_thread_prefixes"] = array(  );
    }

    $Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, name, filename, contents, viewpermissions, pluginOptions FROM tsue_plugins WHERE `active` = 1");
    if( $TSUE["TSUE_Database"]->num_rows($Plugins) )
    {
        while( $nItem = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
        {
            $cacheContents["tsue_plugins_cache"][] = $nItem;
        }
    }
    else
    {
        $cacheContents["tsue_plugins_cache"] = array(  );
    }

    $Genres = $TSUE["TSUE_Database"]->query("SELECT gid, gname, gicon, categories FROM tsue_torrents_genres WHERE active = 1 ORDER BY gname ASC");
    if( $TSUE["TSUE_Database"]->num_rows($Genres) )
    {
        while( $Genre = $TSUE["TSUE_Database"]->fetch_assoc($Genres) )
        {
            $cacheContents["tsue_torrents_genres_cache"][] = $Genre;
        }
    }
    else
    {
        $cacheContents["tsue_torrents_genres_cache"] = array(  );
    }

    $Themes = $TSUE["TSUE_Database"]->query("SELECT themeid FROM tsue_themes WHERE active = 1");
    if( $TSUE["TSUE_Database"]->num_rows($Themes) )
    {
        while( $Theme = $TSUE["TSUE_Database"]->fetch_assoc($Themes) )
        {
            $aaaadr[] = $Theme["themeid"];
        }
        $TSUE["TSUE_Settings"]->settings["global_settings"]["available_themes"] = implode(",", $aaaadr);
    }

    $Languages = $TSUE["TSUE_Database"]->query("SELECT languageid FROM tsue_languages WHERE active = 1");
    if( $TSUE["TSUE_Database"]->num_rows($Languages) )
    {
        while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) )
        {
            $languageCache[] = $Language["languageid"];
        }
        $TSUE["TSUE_Settings"]->settings["global_settings"]["available_languages"] = implode(",", $languageCache);
    }

    updatesettings("global_settings", $TSUE["TSUE_Settings"]->settings["global_settings"]);
    $tableContents = "";
    if( !empty($cacheContents) )
    {
        foreach( $cacheContents as $settingname => $settingvalues )
        {
            updatesettings($settingname, $settingvalues);
            $tableContents .= aaaaag(array( array( "width" => "90%", "text" => $settingname ), array( "width" => "10%", "text" => getimage("status/success-24.png") ) ));
        }
    }

    if( !$logANDreturn )
    {
        return NULL;
    }

    logadminaction(get_phrase("log_cache_all_caches_has_been_updated"));
    $HTML = createtable(get_phrase("dashboard_cache_rebuild_caches"), $tableContents, 2);
    return $HTML;
}

function aaaady($Pagination, $Type, $WHERE)
{
    global $TSUE;
    $tabNames = array( 1 => "tabs-1", 2 => "tabs-2", 3 => "tabs-3" );
    $tableContents = aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_name") ), array( "width" => "20%", "text" => get_phrase("table_list_date") ), array( "width" => "50%", "text" => get_phrase("table_list_log") ), array( "width" => "10%", "text" => get_phrase("global_action") ) ), NULL, "tableContentTDHeader");
    $Logs = $TSUE["TSUE_Database"]->query("SELECT l.*, m.lastactivity, mg.groupname, mg.groupstyle FROM tsue_logs l LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups mg USING(membergroupid) WHERE type = " . intval($Type) . $WHERE . " ORDER BY l.logid DESC " . $Pagination["0"]);
    while( $Log = $TSUE["TSUE_Database"]->fetch_assoc($Logs) )
    {
        $extraText = "";
        if( $Type == 3 )
        {
            $logText = tsue_explode("~~~", $Log["log"]);
            $Log["log"] = print_r(unserialize($logText["1"]), true);
            $extraText = "<div class=\"accountUpdated\">" . $logText["0"] . "</div>";
            unset($logText);
        }

        $tableContents .= aaaaag(array( array( "width" => "20%", "valign" => "top", "text" => aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Log["memberid"] => array( "phrase" => getmembername($Log["membername"], $Log["groupstyle"]) ) )) ), array( "width" => "20%", "valign" => "top", "text" => convert_relative_time($Log["date"]) ), array( "width" => "50%", "valign" => "top", "text" => $extraText . strip_tags($Log["log"]) ), array( "width" => "10%", "valign" => "top", "text" => aaaaae(array( "delete=" . $Log["logid"] . "#" . $tabNames[$Log["type"]] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) )) ) ));
    }
    return $tableContents;
}

function handlelogs()
{
    global $TSUE;
    $HTML = "";
    $WHERE = "";
    $adminLogs = "";
    $aaaads = "";
    $keywords = trim(getvar("keywords"));
    $prune = intval(getvar("prune"));
    $aaaadt = "";
    $aaaadu = DATAPATH . "errors/";
    $aaaadv = intval(getvar("delete"));
    if( $aaaadv && $TSUE["TSUE_Database"]->delete("tsue_logs", "logid=" . $TSUE["TSUE_Database"]->escape($aaaadv)) )
    {
        $HTML .= successmessage(get_phrase("message_content_has_been_deleted"));
    }

    if( $prune && !DEMO_MODE )
    {
        if( $prune == 4 )
        {
            $Files = scandir($aaaadu);
            if( $Files )
            {
                foreach( $Files as $phpErrorLogFile )
                {
                    if( file_extension($phpErrorLogFile) == "log" )
                    {
                        @unlink($aaaadu . $phpErrorLogFile);
                    }

                }
                $aaaadt = successmessage(get_phrase("message_content_has_been_deleted"));
            }

        }
        else
        {
            if( $TSUE["TSUE_Database"]->delete("tsue_logs", "type=" . $TSUE["TSUE_Database"]->escape($prune)) )
            {
                $aaaadt = successmessage(get_phrase("message_content_has_been_deleted"));
            }

        }

    }

    if( $keywords )
    {
        $WHERE = " AND log LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'";
    }

    $aaaadw = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as logCount FROM tsue_logs WHERE type = 2" . $WHERE);
    if( $aaaadw["logCount"] )
    {
        $aaaadx = pagination($aaaadw["logCount"], ($keywords ? "keywords=" . htmlspecialchars($keywords) : ""), 3, false, false, "#tabs-2");
        $tableContents = aaaady($aaaadx, 2, $WHERE);
        $adminLogs = createtable(get_phrase("logs_admin_logs"), $tableContents, 4, $aaaadx["1"]);
    }
    else
    {
        $adminLogs = get_phrase("no_results_found");
    }

    $aaaadz = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as logCount FROM tsue_logs WHERE type = 1" . $WHERE);
    if( $aaaadz["logCount"] )
    {
        $aaaaea = pagination($aaaadz["logCount"], ($keywords ? "keywords=" . htmlspecialchars($keywords) : ""), 3, false, false, "#website-logs");
        $tableContents = aaaady($aaaaea, 1, $WHERE);
        $aaaads = createtable(get_phrase("logs_website_logs"), $tableContents, 4, $aaaaea["1"]);
    }
    else
    {
        $aaaads = get_phrase("no_results_found");
    }

    $aaaaeb = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as logCount FROM tsue_logs WHERE type = 3" . $WHERE);
    if( $aaaaeb["logCount"] )
    {
        $aaaaec = pagination($aaaaeb["logCount"], ($keywords ? "keywords=" . htmlspecialchars($keywords) : ""), 3, false, false, "#member-manager");
        $tableContents = aaaady($aaaaec, 3, $WHERE);
        $aaaaed = createtable(get_phrase("menu_member_manager"), $tableContents, 4, $aaaaec["1"]);
    }
    else
    {
        $aaaaed = get_phrase("no_results_found");
    }

    $aaaaee = "";
    if( !DEMO_MODE )
    {
        $phpErrorLogFile = trim(urldecode(getvar("phpErrorLogFile")));
        if( $phpErrorLogFile && file_extension($phpErrorLogFile) == "log" && is_file($aaaadu . $phpErrorLogFile) )
        {
            $aaaaee .= "\r\n\t\t\t<h5>" . $aaaadu . $phpErrorLogFile . "</h5>\r\n\t\t\t<div class=\"phpErrorLog\">\r\n\t\t\t\t" . nl2br(file_get_contents($aaaadu . $phpErrorLogFile)) . "\r\n\t\t\t</div>";
        }

    }

    $deletePhpErrorLogFile = trim(urldecode(getvar("deletePhpErrorLogFile")));
    if( $deletePhpErrorLogFile && file_extension($deletePhpErrorLogFile) == "log" && is_file($aaaadu . $deletePhpErrorLogFile) )
    {
        checkdemomode();
        unlink($aaaadu . $deletePhpErrorLogFile);
    }

    if( !DEMO_MODE )
    {
        $aaaaef = scandir($aaaadu);
        if( $aaaaef && 4 < count($aaaaef) )
        {
            $aaaaee .= "\r\n\t\t\t<ul class=\"phpErrorLogs\">";
            foreach( $aaaaef as $FILE )
            {
                if( file_extension($FILE) == "log" )
                {
                    $aaaaee .= "\r\n\t\t\t\t\t<li>[<a href=\"?action=Dashboard&do=Logs&deletePhpErrorLogFile=" . urlencode($FILE) . "#tabs-4\">x</a>] <a href=\"?action=Dashboard&do=Logs&phpErrorLogFile=" . urlencode($FILE) . "#tabs-4\">" . $FILE . " (" . friendly_size(filesize($aaaadu . $FILE)) . ")</a></li>";
                }

            }
            $aaaaee .= "\r\n\t\t\t</ul>";
        }
        else
        {
            if( !$aaaaee )
            {
                $aaaaee = get_phrase("message_nothing_found");
            }

        }

    }
    else
    {
        $aaaaee = get_phrase("message_nothing_found");
    }

    $searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
    $searchForm = aaaabn(createtable(get_phrase("search_logs"), $searchForm), array(  ), "?action=Dashboard&do=Logs#tabs-5");
    $aaaaeg = "\r\n\t<a href=\"?action=Dashboard&do=Logs&prune=1#tabs-6\">" . get_phrase("prune_logs_website") . "</a> \r\n\t| \r\n\t<a href=\"?action=Dashboard&do=Logs&prune=2#tabs-6\">" . get_phrase("prune_logs_administrator") . "</a>\r\n\t| \r\n\t<a href=\"?action=Dashboard&do=Logs&prune=3#tabs-6\">" . get_phrase("prune_member_manager_logs") . "</a>\r\n\t| \r\n\t<a href=\"?action=Dashboard&do=Logs&prune=4#tabs-6\">" . get_phrase("prune_php_logs") . "</a>";
    return createtabs(array( get_phrase("logs_website_logs") => $aaaads, get_phrase("logs_admin_logs") => $adminLogs, get_phrase("menu_member_manager") => $aaaaed, "PHP" => $aaaaee, get_phrase("search_logs") => $searchForm, get_phrase("prune_logs") => $aaaadt . $aaaaeg ));
}


function handleserver()
{
    global $TSUE;
    checkdemomode();
    $mysqlVersion = $TSUE["TSUE_Database"]->query_result("SELECT VERSION() AS version");
    $serverinfo = (SAFEMODE ? "<br />Safe Mode" : "");
    $serverinfo .= (ini_get("file_uploads") == 0 || strtolower(ini_get("file_uploads")) == "off" ? "<br />File Uploads: Disabled" : "");
    $aaaaeh = friendly_size(foldersize(ROOTPATH));
    $aaaaei = 0;
    $Tables = $TSUE["TSUE_Database"]->query("SHOW TABLE STATUS");
    while( $Table = $TSUE["TSUE_Database"]->fetch_assoc($Tables) )
    {
        $aaaaei += $Table["Data_length"] + $Table["Index_length"];
    }
    $offset = timezone_offset_get(new DateTimeZone("GMT"), new DateTime());
    $serverTime = date("d-m-Y h:i:s") . " " . date_default_timezone_get() . " " . fetch_timezones($offset);
    $Variables = array(  );
    $MySQLVariables = $TSUE["TSUE_Database"]->query("SHOW VARIABLES WHERE Variable_Name IN (\"ft_max_word_len\", \"ft_min_word_len\", \"max_allowed_packet\", \"max_connections\")");
    while( $V = $TSUE["TSUE_Database"]->fetch_assoc($MySQLVariables) )
    {
        if( $V["Variable_name"] == "max_allowed_packet" )
        {
            $V["Value"] = friendly_size($V["Value"]);
        }

        $Variables[] = $V["Variable_name"] . ": " . $V["Value"];
    }
    $serverDetails = array( "Server Type" => PHP_OS, "Server Software" => php_uname(), "Server Time" => $serverTime, "PHP Version" => phpversion(), "PHP Memory Limit" => friendly_size(ini_get("memory_limit")), "PHP Max Post Size" => ini_get("post_max_size"), "PHP Max Upload Size" => ini_get("upload_max_filesize"), "MySQL Version" => (($mysqlVersion ? $mysqlVersion["version"] : "N/A")) . " (" . implode(" - ", $Variables) . ")", "System Load Average(s)" => loadaverage(), "PHPInfo" => "<a href=\"?action=php-info\" target=\"_blank\">Click here to view</a>", "Server Status" => "<a href=\"?action=server-status\" target=\"_blank\">Click here to view</a>", "TSUE Folder Size" => $aaaaeh, "TSUE Database Size" => friendly_size($aaaaei) );
    $tableContents = "";
    foreach( $serverDetails as $text => $val )
    {
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => "<b>" . $text . ":</b> " . $val ) ));
    }
    $HTML = createtable(get_phrase("dashboard_server_alt"), $tableContents, 1);
    return $HTML;
}

function loadaverage()
{
    if( strtoupper(substr(PHP_OS, 0, 3)) === "WIN" && class_exists("COM") )
    {
        $wmi = new COM("Winmgmts://");
        $server = $wmi->execquery("SELECT LoadPercentage FROM Win32_Processor");
        $cpu_num = 0;
        $load_total = 0;
        foreach( $server as $cpu )
        {
            $cpu_num++;
            $load_total += $cpu->loadpercentage;
        }
        return (int) round($load_total / $cpu_num);
    }
    else
    {
        if( function_exists("sys_getloadavg") )
        {
            return implode(" - ", sys_getloadavg());
        }

        return "-";
    }

}

function handlenotes()
{
    global $TSUE;
    $HTML = "";
    if( isset($_POST["notes"]) )
    {
        $buildQuery = array( "noteType" => "admin", "notes" => trim($_POST["notes"]), "updated" => TIMENOW, "updater" => $TSUE["TSUE_Member"]["memberid"] );
        $TSUE["TSUE_Database"]->replace("tsue_notes", $buildQuery);
        logadminaction(get_phrase("notes_has_been_updated"));
        $HTML .= successmessage(get_phrase("message_saved"));
    }

    $Notes = $TSUE["TSUE_Database"]->query_result("SELECT notes FROM tsue_notes WHERE noteType = 'admin'");
    if( !$Notes["notes"] )
    {
        $Notes["notes"] = "";
    }

    $tableContents = aaaaag(array( array( "width" => "100%", "text" => textarea("notes", $Notes["notes"], true, "templateTextareaTinyMCE"), "align" => "left" ) ));
    $tableContents .= aaaaag(array( array( "width" => "100%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left" ) ));
    $HTML .= aaaabn(createtable(get_phrase("dashboard_notes_alt"), $tableContents));
    return $HTML;
}


function handlestatistics()
{
    global $TSUE;
    global $postsCache;
    global $setYear;
    global $chartType;
    $chartType = (isset($_GET["s"]) ? strip_tags(trim($_GET["s"])) : "primetimeMembers");
    $setYear = (isset($_GET["year"]) && $_GET["year"] ? intval($_GET["year"]) : convert_time(TIMENOW, "Y"));
    $prepareStats = "";
    $HTML = "\r\n\t<div id=\"chart_buttons\">\r\n\t\t" . yearselectbox() . "\r\n\t\t<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;s=primetimeMembers\"" . ((!$chartType || $chartType == "primetimeMembers" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_most_active") . "</a> \r\n\t\t<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;s=primetimeRegistrations\"" . (($chartType == "primetimeRegistrations" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_registrations") . "</a>\r\n\t\t<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;s=primetimeThreads\"" . (($chartType == "primetimeThreads" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_threads") . "</a>\r\n\t\t<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;s=primetimePosts\"" . (($chartType == "primetimePosts" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_posts") . "</a>\r\n\t\t<a href=\"" . TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;s=primetimeTorrents\"" . (($chartType == "primetimeTorrents" ? " class=\"active\"" : "")) . ">" . get_phrase("stats_torrents") . "</a>\r\n\t</div>";
    switch( $chartType )
    {
        case "primetimeMembers":
            $prepareStats = primetimemembers($setYear);
            break;
        case "primetimeRegistrations":
            $prepareStats = primetimeregistrations($setYear);
            break;
        case "primetimeThreads":
            $prepareStats = primetimethreads($setYear);
            break;
        case "primetimePosts":
            $prepareStats = primetimeposts($setYear);
            break;
        case "primetimeTorrents":
            $prepareStats = primetimetorrents($setYear);
            break;
    }
    if( $prepareStats )
    {
        $HTML .= "\r\n\t\t<div id=\"chart_div\">\r\n\t\t\t<div id=\"chart_notice\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "</div>\r\n\t\t</div>\r\n\r\n\t\t<script type=\"text/javascript\" src=\"http://www.google.com/jsapi\"></script>\r\n\t\t<script type=\"text/javascript\">\r\n\t\t\tgoogle.load(\"visualization\", \"1\", {\"packages\":[\"corechart\"]});\r\n\t\t\tgoogle.setOnLoadCallback(drawChart);\r\n\r\n\t\t\tfunction drawChart()\r\n\t\t\t{\r\n\t\t\t\tvar data = new google.visualization.DataTable();\r\n\t\t\t\t" . $prepareStats["buildScript"] . "\r\n\t\t\t\tvar options = {chartArea:{top:\"" . $prepareStats["top"] . "\"}, \"width\":\"" . $prepareStats["width"] . "\", height:\"" . $prepareStats["height"] . "\", legend:\"" . $prepareStats["legend"] . "\"};\r\n\t\t\t\tvar chart = new google.visualization.PieChart(document.getElementById(\"chart_div\"));\r\n\t\t\t\tchart.draw(data, options);\r\n\t\t\t}\r\n\r\n\t\t\t\$('select[name=\"year\"]').change(function()\r\n\t\t\t{\r\n\t\t\t\tvar \$setYear = parseInt(\$(this).val());\r\n\t\t\t\tif(\$setYear)\r\n\t\t\t\t{\r\n\t\t\t\t\twindow.location = \"?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&s=" . $chartType . "&year=\"+\$setYear;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t</script>";
    }

    return $HTML;
}

function handlereadpm()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $keywords = trim(getvar("keywords"));
    $WHERE = "";
    $message_id = intval(getvar("message_id"));
    if( $message_id )
    {
        $aaaaek = $TSUE["TSUE_Database"]->query_result("SELECT message.*, m.membername as owner, g.groupstyle as ownergroup, mm.membername as receiver, gg.groupstyle as receivergroup FROM tsue_messages_master message LEFT JOIN tsue_members m ON(message.owner_memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) LEFT JOIN tsue_members mm ON(message.receiver_memberid=mm.memberid) LEFT JOIN tsue_membergroups gg ON (gg.membergroupid=mm.membergroupid) WHERE message_id = " . $TSUE["TSUE_Database"]->escape($message_id) . " AND (message.owner_deleted = 0 OR message.receiver_deleted=0)");
        if( !$aaaaek )
        {
            return errormessage(get_phrase("message_nothing_found"));
        }

        addbreadcrumb(array( get_phrase("dashboard_readpm") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;message_id=" . $message_id ));
        $TSUE["TSUE_Security"] = new TSUE_Security();
        $TSUE["TSUE_Parser"] = new TSUE_Parser();
        $aaaael = "";
        $Replies = $TSUE["TSUE_Database"]->query("SELECT r.*, m.membername, g.groupstyle FROM tsue_messages_replies r LEFT JOIN tsue_members m ON(r.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) WHERE message_id = " . $TSUE["TSUE_Database"]->escape($message_id) . " ORDER BY reply_date ASC");
        while( $Reply = $TSUE["TSUE_Database"]->fetch_assoc($Replies) )
        {
            $sender = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Reply["memberid"] => array( "phrase" => getmembername($Reply["membername"], $Reply["groupstyle"]) ) ));
            $reply_date = convert_relative_time($Reply["reply_date"]);
            $message = $TSUE["TSUE_Parser"]->parse($Reply["reply"]);
            $aaaael .= "\r\n\t\t\t<div style=\"float: left; margin-bottom: 10px; border: 1px solid #ccc; width: 100%;\">\r\n\t\t\t\t<div style=\"padding: 5px;\">\r\n\t\t\t\t\t<span style=\"float: right;\">" . $sender . " | " . $reply_date . "</span>\r\n\t\t\t\t\t" . $message . "\r\n\t\t\t\t</div>\r\n\t\t\t</div>";
        }
        return $aaaael;
    }

    $searchType = trim(getvar("searchType"));
    if( !in_array($searchType, array( "subject", "owner", "receiver" )) )
    {
        $searchType = "subject";
    }

    if( $keywords && $searchType )
    {
        switch( $searchType )
        {
            case "subject":
                $WHERE = " AND message.subject LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'";
                break;
            case "owner":
                $searchMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($keywords));
                $WHERE = " AND message.owner_memberid = " . $searchMember["memberid"];
                break;
            case "receiver":
                $searchMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($keywords));
                $WHERE = " AND message.receiver_memberid = " . $searchMember["memberid"];
                break;
        }
    }

    $orderBy["fieldname"] = "message.message_date";
    $orderBy["type"] = "DESC";
    if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) )
    {
        $allowedFieldNames = array( "message.owner_memberid", "message.receiver_memberid", "message.subject", "message.message_date" );
        $allowedTypes = array( "DESC", "ASC" );
        if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) )
        {
            $orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"];
            $orderBy["type"] = $_REQUEST["orderBy"]["type"];
        }

    }

    if( isset($_POST["deleteMessages"]) && $_POST["deleteMessages"] )
    {
        $deleteMessages = implode(",", array_map("intval", $_POST["deleteMessages"]));
        $TSUE["TSUE_Database"]->delete("tsue_messages_master", "message_id IN (" . $deleteMessages . ")");
        $TSUE["TSUE_Database"]->delete("tsue_messages_replies", "message_id IN (" . $deleteMessages . ")");
        $Phrase = get_phrase("messages_deleted") . " (" . $deleteMessages . ")";
        logadminaction($Phrase);
        $HTML .= successmessage($Phrase);
    }

    $aaaaem = $TSUE["TSUE_Database"]->query("SELECT message.*, m.membername as owner, g.groupstyle as ownergroup, mm.membername as receiver, gg.groupstyle as receivergroup FROM tsue_messages_master message LEFT JOIN tsue_members m ON(message.owner_memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) LEFT JOIN tsue_members mm ON(message.receiver_memberid=mm.memberid) LEFT JOIN tsue_membergroups gg ON (gg.membergroupid=mm.membergroupid) WHERE (message.owner_deleted = 0 OR message.receiver_deleted=0)" . $WHERE);
    $messageCount = $TSUE["TSUE_Database"]->num_rows($aaaaem);
    if( !$messageCount )
    {
        return errormessage(get_phrase("message_nothing_found"));
    }

    $Pagination = pagination($messageCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&amp;orderBy[type]=" . $orderBy["type"] . (($keywords ? "&amp;keywords=" . urlencode($keywords) . "&amp;searchType=" . $searchType : "")));
    $aaaaem = $TSUE["TSUE_Database"]->query("SELECT message.*, m.membername as owner, g.groupstyle as ownergroup, mm.membername as receiver, gg.groupstyle as receivergroup FROM tsue_messages_master message LEFT JOIN tsue_members m ON(message.owner_memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) LEFT JOIN tsue_members mm ON(message.receiver_memberid=mm.memberid) LEFT JOIN tsue_membergroups gg ON (gg.membergroupid=mm.membergroupid) WHERE (message.owner_deleted = 0 OR message.receiver_deleted=0)" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
    while( $Message = $TSUE["TSUE_Database"]->fetch_assoc($aaaaem) )
    {
        $owner = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Message["owner_memberid"] => array( "phrase" => getmembername($Message["owner"], $Message["ownergroup"]) ) ));
        $receiver = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Message["receiver_memberid"] => array( "phrase" => getmembername($Message["receiver"], $Message["receivergroup"]) ) ));
        $message_date = convert_relative_time($Message["message_date"]);
        $messageLink = aaaaae(array( "message_id=" . $Message["message_id"] => array( "phrase" => strip_tags($Message["subject"]) ) ));
        $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $messageLink . "<br /><span class=\"smallPassiveTextBlock\">" . $message_date . ", " . $owner . " ---> " . $receiver . "</span>" ), array( "width" => "20%", "text" => "<input type=\"checkbox\" name=\"deleteMessages[]\" value=\"" . $Message["message_id"] . "\" />", "align" => "right" ) ));
    }
    $tableContents .= aaaaag(array( array( "width" => "100%", "colspan" => 2, "align" => "right", "text" => "<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("messages_delete") . "\" /> &nbsp;&nbsp; <input type=\"checkbox\" name=\"checkALL\" value=\"deleteMessages[]\" />" ) ));
    $selectBox = "\r\n\t<select name=\"searchType\" class=\"selectNoWidth\">\r\n\t\t<option value=\"subject\"" . (($searchType == "subject" ? " selected=\"selected\"" : "")) . ">" . get_phrase("messages_subject") . "</option>\r\n\t\t<option value=\"owner\"" . (($searchType == "owner" ? " selected=\"selected\"" : "")) . ">" . get_phrase("sender") . "</option>\r\n\t\t<option value=\"receiver\"" . (($searchType == "receiver" ? " selected=\"selected\"" : "")) . ">" . get_phrase("receiver") . "</option>\r\n\t</select>";
    $searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
    $HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array(  ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />";
    $HTML .= aaaabn(createtable(get_phrase("dashboard_readpm_alt"), $tableContents, 2, $Pagination["1"]));
    $HTML .= "\r\n\t<div style=\"float: right; margin-top: 10px;\">\r\n\t\t" . aaaabn("\r\n\t\t" . get_phrase("torrents_sort_by") . "\r\n\t\t<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">\r\n\t\t\t<option value=\"message.owner_memberid\"" . (($orderBy["fieldname"] == "message.owner_memberid" ? " selected=\"selected\"" : "")) . ">" . get_phrase("sender") . "</option>\r\n\t\t\t<option value=\"message.receiver_memberid\"" . (($orderBy["fieldname"] == "message.receiver_memberid" ? " selected=\"selected\"" : "")) . ">" . get_phrase("receiver") . "</option>\r\n\t\t\t<option value=\"message.subject\"" . (($orderBy["fieldname"] == "message.subject" ? " selected=\"selected\"" : "")) . ">" . get_phrase("messages_subject") . "</option>\r\n\t\t\t<option value=\"message.message_date\"" . (($orderBy["fieldname"] == "message.message_date" ? " selected=\"selected\"" : "")) . ">" . get_phrase("date_added") . "</option>\r\n\t\t</select>\r\n\t\t<select name=\"orderBy[type]\" class=\"selectNoWidth\">\r\n\t\t\t<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>\r\n\t\t\t<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>\r\n\t\t</select>\r\n\t\t<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "\r\n\t</div>";
    return $HTML;
}

function handledatabase()
{
    global $TSUE;
    $SQL = intval(getvar("SQL"));
    $AutomaticQuery = intval(getvar("AutomaticQuery"));
    $Tables = intval(getvar("Tables"));
    $DatabaseBackup = intval(getvar("DatabaseBackup"));
    if( $SQL )
    {
        addbreadcrumb(array( get_phrase("database_sql_alt") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;SQL=1" ));
        return aaaaen();
    }

    if( $AutomaticQuery )
    {
        addbreadcrumb(array( get_phrase("auto_query") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;AutomaticQuery=1" ));
        return aaaaeo();
    }

    if( $Tables )
    {
        addbreadcrumb(array( get_phrase("database_tables") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;Tables=1" ));
        return aaaaep();
    }

    if( $DatabaseBackup )
    {
        addbreadcrumb(array( get_phrase("database_backup") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;DatabaseBackup=1" ));
        $backupDir = DATAPATH . "backups/";
        if( isset($_GET["sqlFile"]) && !empty($_GET["sqlFile"]) && substr($_GET["sqlFile"], -7) === ".sql.gz" && is_file($backupDir . $_GET["sqlFile"]) )
        {
            $fullPath = $backupDir . $_GET["sqlFile"];
            $fileSize = filesize($fullPath);
            if( headers_sent() )
            {
                exit( "Critical Error: Headers already sent!" );
            }

            if( ini_get("zlib.output_compression") )
            {
                ini_set("zlib.output_compression", "Off");
            }

            $download_rate = 4096;
            setheader("Content-type", "application/octet-stream", true);
            setheader("ETag", TIMENOW, true);
            setheader("Content-Length", $fileSize, true);
            setdownloadfilename($_GET["sqlFile"]);
            if( $localFile = fopen($fullPath, "rb") )
            {
                while( !feof($localFile) )
                {
                    if( connection_status() != CONNECTION_NORMAL )
                    {
                        break;
                    }

                    echo fread($localFile, round($download_rate * 1024));
                    @flush();
                    sleep(1);
                }
                fclose($localFile);
                unlink($fullPath);
                exit();
            }

        }

        if( strtoupper($_SERVER["REQUEST_METHOD"]) == "POST" )
        {
            $sqlFiles = (isset($_POST["sqlFiles"]) ? $_POST["sqlFiles"] : "");
            if( is_array($sqlFiles) && !empty($sqlFiles) )
            {
                foreach( $sqlFiles as $sqlFile )
                {
                    if( substr($sqlFile, -7) === ".sql.gz" && is_file($backupDir . $sqlFile) )
                    {
                        unlink($backupDir . $sqlFile);
                        logadminaction(get_phrase("sql_x_deleted", $sqlFile));
                    }

                }
            }

        }

        $totalSize = 0;
        $sqlFiles = scandir($backupDir);
        $fileCache = array(  );
        foreach( $sqlFiles as $sqlFile )
        {
            if( substr($sqlFile, -7) === ".sql.gz" )
            {
                $fileSize = filesize($backupDir . $sqlFile);
                $totalSize += $fileSize;
                $fileCache[] = array( "filename" => $sqlFile, "filesize" => $fileSize, "filectime" => filectime($backupDir . $sqlFile) );
            }

        }
        $HTML = "";
        if( $fileCache )
        {
            $HTML .= "\r\n\t\t\t<form method=\"post\">\r\n\t\t\t<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . get_phrase("forums_attached_files_filename") . "</th>\r\n\t\t\t\t\t<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . get_phrase("forums_attached_files_filesize") . "</th>\r\n\t\t\t\t\t<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . get_phrase("date_added") . "</th>\r\n\t\t\t\t\t<th style=\"text-align: center; padding: 5px; background: #ddd;\"><input type=\"checkbox\" name=\"checkALL\" value=\"sqlFiles[]\" /></th>\r\n\t\t\t\t</tr>";
            foreach( $fileCache as $File )
            {
                $HTML .= "\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: left; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\"><a href=\"?action=Dashboard&do=Database&DatabaseBackup=1&sqlFile=" . urlencode($File["filename"]) . "\">" . $File["filename"] . "</a></td>\r\n\t\t\t\t\t<td style=\"text-align: left; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\">" . friendly_size($File["filesize"]) . "</td>\r\n\t\t\t\t\t<td style=\"text-align: left; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\">" . convert_time($File["filectime"], "d-m-Y h:i") . "</td>\r\n\t\t\t\t\t<td style=\"text-align: center; font-weight: normal; font-size: 12px; background: #f6f8fa; padding: 3px 5px;\"><input type=\"checkbox\" name=\"sqlFiles[]\" value=\"" . $File["filename"] . "\" /></th>\r\n\t\t\t\t</tr>";
            }
            $HTML .= "\r\n\t\t\t<tr>\r\n\t\t\t\t<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\"></th>\r\n\t\t\t\t<th style=\"text-align: left; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\">" . friendly_size($totalSize) . "</th>\r\n\t\t\t\t<th style=\"text-align: right; font-weight: bold; font-size: 13px; background: #ddd; padding: 5px;\" colspan=\"2\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("button_delete") . "\" /></td>\r\n\t\t\t</tr>";
            $HTML .= "\r\n\t\t\t</table>\r\n\t\t\t</form><br />";
        }

        return "\r\n\t\t" . $HTML . "\r\n\t\t<div style=\"padding: 10px; border: 1px solid #ddd; line-height: 1.6\">\r\n\t\t\t<div style=\"font-weight: bold; font-size: 14px;\">Automated MySQL Backup using CRON via shell.</div>\r\n\t\t\t<div style=\"color: #999; font-size: 12px;\">This script allows you to automatically make a backup of your TSUE database using cron job.</div>\r\n\t\t\t<div style=\"margin-top: 10px;\"><input type=\"text\" style=\"padding: 3px; border: 1px solid #ddd; font-size: 11px; color: red; width: 98%;\" value='php -q \"" . CLIPATH . "backupDatabase.php\"' /></div>\r\n\r\n\t\t\t<div style=\"margin: 10px; padding: 5px; background: #f6f8fa;\">\r\n\t\t\t\t" . nl2br("<b>cPanel</b>\r\n\t\t\t\tClick on the Cron Job icon in your control panel and select the Once A Day option from the Common Settings dropdown menu. Then paste the cron command into the Command field.\r\n\r\n\t\t\t\t<b>DirectAdmin</b>\r\n\t\t\t\tThe command for DirectAdmin is generally the same as above, however, you need to reference the full path to the php binary.\r\n\r\n\t\t\t\tThis can be /usr/bin/php, /usr/bin/home/php or /usr/local/bin/php but this is dependent on the server setup and you should check with your Server Administrator for the full path to the php binary.\r\n\r\n\t\t\t\tAn example command to run is:\r\n\t\t\t\t/usr/bin/php -q \"" . CLIPATH . "backupDatabase.php\"\r\n\t\t\t\t/usr/local/bin/php -q \"" . CLIPATH . "backupDatabase.php\"\r\n\r\n\t\t\t\t<b>Plesk</b>\r\n\t\t\t\tYou can specify the php command using the following on Linux Plesk:\r\n\t\t\t\tenv php -q \"" . CLIPATH . "backupDatabase.php\"\r\n\r\n\t\t\t\t<b>SSH (via crontab -e)</b>\r\n\t\t\t\t@daily php -q \"" . CLIPATH . "backupDatabase.php\"") . "\r\n\t\t\t</div>\r\n\t\t</div>";
    }
    else
    {
        $aaaaeq = optionbox("Database/SQL", get_phrase("database_sql"), get_phrase("database_sql_alt"), "Database");
        $aaaaeq .= optionbox("Database/AutomaticQuery", get_phrase("auto_query"), get_phrase("auto_query_alt"), "Database");
        $aaaaeq .= optionbox("Database/Tables", get_phrase("database_tables"), get_phrase("database_tables_alt"), "Database");
        $aaaaeq .= optionbox("Database/DatabaseBackup", get_phrase("database_backup"), get_phrase("database_backup_alt"), "Database");
        return $aaaaeq;
    }

}

function aaaaen()
{
    global $TSUE;
    $HTML = "";
    $Query = trim(getvar("Query"));
    if( ispost() && $Query )
    {
        checkdemomode();
        $TSUE["TSUE_Database"]->query($Query);
        $HTML .= successmessage(get_phrase("your_sql_query_has_been_executed"));
    }

    $textarea = textarea("Query", $Query);
    $formContents = aaaaan(get_phrase("database_sql_alt"), $textarea);
    $HTML .= aaaabg($formContents, array(  ), "", "database_sql_alt");
    return $HTML;
}

function aaaaeo()
{
    global $TSUE;
    $HTML = "";
    $queryID = trim(getvar("queryID"));
    $confirmed = trim(getvar("confirmed"));
    $affectedRows = 0;
    if( ispost() && $queryID )
    {
        if( $confirmed != "true" )
        {
            $hiddenInputBoxes = array( "AutomaticQuery" => 1, "queryID" => $queryID, "confirmed" => "true" );
            $formContents = errormessage("\r\n\t\t\t" . get_phrase("auto_query_" . $queryID) . "\r\n\t\t\t<p>" . get_phrase("are_you_sure_that_you_want_to_perform_this_action") . "</p>\r\n\t\t\t<p><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("button_apply") . "\" /></p>");
            return aaaabn($formContents, $hiddenInputBoxes);
        }

        $Queries = array( 1 => "ALTER TABLE `tsue_member_profile` CHANGE `torrentStyle` `torrentStyle` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '2' COMMENT 'Torrent List Style. 1: Modern 2: Classic';~UPDATE `tsue_member_profile` SET torrentStyle = 2;", 2 => "ALTER TABLE `tsue_member_profile` CHANGE `torrentStyle` `torrentStyle` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Torrent List Style. 1: Modern 2: Classic';~UPDATE `tsue_member_profile` SET torrentStyle = 1;", 3 => "UPDATE tsue_member_profile SET invites_left = 0;", 4 => "UPDATE tsue_member_profile SET uploaded = 0;", 5 => "UPDATE tsue_member_profile SET downloaded = 0;", 6 => "UPDATE tsue_member_profile SET hitRuns = 0;", 7 => "UPDATE tsue_member_profile SET total_warns = 0;", 8 => "UPDATE tsue_member_profile SET muted = 0;", 9 => "UPDATE tsue_member_profile SET points = 0;", 10 => "UPDATE tsue_members SET languageid = " . $TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"], 11 => "UPDATE tsue_members SET themeid = " . $TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"], 12 => "DELETE FROM tsue_messages_master;~DELETE FROM tsue_messages_replies;~UPDATE tsue_members SET unread_messages=0;", 13 => "DELETE FROM tsue_member_alerts;~UPDATE tsue_members SET unread_alerts=0;" );
        if( isset($Queries[$queryID]) )
        {
            checkdemomode();
            $Query = tsue_explode("~", $Queries[$queryID]);
            if( $Query )
            {
                foreach( $Query as $SQL )
                {
                    $TSUE["TSUE_Database"]->query($SQL);
                    $affectedRows += $TSUE["TSUE_Database"]->affected_rows();
                }
                $HTML .= successmessage(get_phrase("your_sql_query_has_been_executed") . " - " . get_phrase("affected_rows", $affectedRows));
            }

        }
        else
        {
            $HTML .= errormessage(get_phrase("message_content_error"));
        }

    }

    $optionArray = array( "", get_phrase("auto_query_1"), get_phrase("auto_query_2"), get_phrase("auto_query_3"), get_phrase("auto_query_4"), get_phrase("auto_query_5"), get_phrase("auto_query_6"), get_phrase("auto_query_7"), get_phrase("auto_query_8"), get_phrase("auto_query_9"), get_phrase("auto_query_10"), get_phrase("auto_query_11"), get_phrase("auto_query_12"), get_phrase("auto_query_13") );
    $selectbox = selectbox("queryID", $queryID, $optionArray);
    $formContents = aaaaan(get_phrase("auto_query"), $selectbox, get_phrase("auto_query_tip"));
    $HTML .= aaaabg($formContents, array(  ), "", "button_apply");
    return $HTML;
}

function aaaaep()
{
    global $TSUE;
    checkdemomode();
    $HTML = "";
    $tableContents = "";
    $requestedTables = getvar("requestedTables");
    $dl = getvar("dl");
    if( $dl )
    {
        $fullPath = DATAPATH . "cache/" . $dl;
        if( !file_exists($fullPath) )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        $fileSize = filesize($fullPath);
        if( headers_sent() )
        {
            exit( "Critical Error: Headers already sent!" );
        }

        if( ini_get("zlib.output_compression") )
        {
            ini_set("zlib.output_compression", "Off");
        }

        $download_rate = 4096;
        setheader("Content-type", "application/octet-stream", true);
        setheader("ETag", TIMENOW, true);
        setheader("Content-Length", $fileSize, true);
        setdownloadfilename($dl);
        if( $localFile = fopen($fullPath, "rb") )
        {
            while( !feof($localFile) )
            {
                if( connection_status() != CONNECTION_NORMAL )
                {
                    break;
                }

                echo fread($localFile, round($download_rate * 1024));
                @flush();
                sleep(1);
            }
            fclose($localFile);
            unlink($fullPath);
            exit();
        }

        return errormessage(get_phrase("message_content_error"));
    }

    if( IS_AJAX && $requestedTables && ($requestedTables = tsue_explode(",", $requestedTables)) )
    {
        $time = convert_time(TIMENOW, "dS F Y \\a\\t H:i");
        $mysqlversion = $TSUE["TSUE_Database"]->query_result("SELECT VERSION() AS version");
        $backupSQL = "-- -------------------------------------------\n-- TSUE Database Backup\n-- Generated: " . $time . "\n-- PHP Version: " . phpversion() . "\n-- MySQL Version: " . $mysqlversion["version"] . "\n-- TSUE Version: " . V . "\n-- -------------------------------------------\n";
        foreach( $requestedTables as $Table )
        {
            if( preg_match("#^[a-zA-Z_]+\$#", $Table) )
            {
                $backupSQL .= "\n-- ----------------------------------------------------------------------\n";
                $backupSQL .= "-- Table structure for table `" . $Table . "`";
                $backupSQL .= "\n-- ----------------------------------------------------------------------\n";
                $Query = $TSUE["TSUE_Database"]->query_result("SHOW CREATE TABLE `" . $Table . "`");
                $backupSQL .= $Query["Create Table"] . ";\n\n";
                $backupSQL .= "\n-- ----------------------------------------------------------------------\n";
                $backupSQL .= "-- Dumping data for table `" . $Table . "`";
                $backupSQL .= "\n-- ----------------------------------------------------------------------\n";
                $Fields = array(  );
                $rowTypes = array(  );
                $Rows = $TSUE["TSUE_Database"]->query("SHOW COLUMNS FROM " . $Table);
                while( $Row = $TSUE["TSUE_Database"]->fetch_assoc($Rows) )
                {
                    $Fields[] = "`" . $Row["Field"] . "`";
                    $rowTypes[] = $Row["Type"];
                }
                $Datas = $TSUE["TSUE_Database"]->query("SELECT * FROM " . $Table);
                if( $TSUE["TSUE_Database"]->num_rows($Datas) )
                {
                    while( $Data = $TSUE["TSUE_Database"]->fetch_row($Datas) )
                    {
                        foreach( $Data as $j => $k )
                        {
                            if( preg_match("#binary|blob#isU", strtolower($rowTypes[$j])) )
                            {
                                $Data[$j] = (!$k ? "''" : "0x" . bin2hex($k));
                            }
                            else
                            {
                                $Data[$j] = $TSUE["TSUE_Database"]->escape($k);
                            }

                        }
                        $backupSQL .= "INSERT INTO " . $Table . " (" . implode(",", $Fields) . ") VALUES (" . implode(",", $Data) . ");\n";
                    }
                }

            }

        }
        $fileName = "tsue_db_backup_" . TIMENOW . ".sql";
        if( function_exists("gzopen") )
        {
            $fileName .= ".gz";
            $fp = gzopen(DATAPATH . "cache/" . $fileName, "w9");
            gzwrite($fp, $backupSQL);
        }
        else
        {
            $fp = fopen(DATAPATH . "cache/" . $fileName . ".sql", "w");
            fwrite($fp, $backupSQL);
        }

        exit( get_phrase("your_backup_is_ready", "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&Tables=1&dl=" . $fileName) );
    }
    else
    {
        $Phrases = array( "Name" => get_phrase("database_table"), "Engine" => get_phrase("database_engine"), "Rows" => get_phrase("database_rows"), "Data_length" => get_phrase("database_data_length"), "Index_length" => get_phrase("database_index"), "Collation" => get_phrase("database_collation") );
        $tableContents .= aaaaag(array( array( "width" => "25%", "text" => $Phrases["Name"] ), array( "width" => "13%", "text" => $Phrases["Engine"] ), array( "width" => "10%", "text" => $Phrases["Rows"] ), array( "width" => "13%", "text" => $Phrases["Data_length"] ), array( "width" => "12%", "text" => $Phrases["Index_length"] ), array( "width" => "20%", "text" => $Phrases["Collation"] ), array( "width" => "5%", "text" => "<input type=\"checkbox\" name=\"checkALL\" value=\"requestedTables[]\" />" ) ), "tableContentTR", "tableContentTDHeader");
        $totalSize = 0;
        $Tables = $TSUE["TSUE_Database"]->query("SHOW TABLE STATUS");
        while( $Table = $TSUE["TSUE_Database"]->fetch_assoc($Tables) )
        {
            $totalSize += $Table["Data_length"] + $Table["Index_length"];
            $tableContents .= aaaaag(array( array( "width" => "25%", "text" => $Table["Name"] ), array( "width" => "13%", "text" => $Table["Engine"] ), array( "width" => "10%", "text" => number_format($Table["Rows"]) ), array( "width" => "13%", "text" => ($Table["Data_length"] ? friendly_size($Table["Data_length"]) : "0") ), array( "width" => "12%", "text" => ($Table["Index_length"] ? friendly_size($Table["Index_length"]) : "0") ), array( "width" => "20%", "text" => $Table["Collation"] ), array( "width" => "5%", "text" => "<input type=\"checkbox\" name=\"requestedTables[]\" value=\"" . $Table["Name"] . "\"" . (($requestedTables && in_array($Table["Name"], $requestedTables) ? " checked=\"checked\"" : "")) . " />" ) ), "", "tableContentTD small");
        }
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => "<span style=\"margin-right: 40px;\">" . get_phrase("database_size", "<b>" . friendly_size($totalSize) . "</b>") . "</span> " . aaaabm(get_phrase("database_backup_selected_tables")), "align" => "right", "colspan" => 7 ) ));
        $script = "\r\n\t<script type=\"text/javascript\">\r\n\t\t\$(\"#simpleForm\").submit(function(e)\r\n\t\t{\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tvar \$requestedTables = new Array();\r\n\t\t\tvar \$rCount=0;\r\n\t\t\t\r\n\t\t\t\$searchCheckboxes = \$('input[name=\"requestedTables[]\"]', this).each(function()\r\n\t\t\t{\r\n\t\t\t\tif(\$(this).is(\":checked\"))\r\n\t\t\t\t{\r\n\t\t\t\t\t\$requestedTables[\$rCount] = \$(this).val();\r\n\t\t\t\t\t\$rCount++;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif(!\$rCount)\r\n\t\t\t{\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t\$(\"#mainText\").html('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("backup_is_being_generated") . "');\r\n\r\n\t\t\tbuildQuery = \"isAjax=1&action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&Tables=1&requestedTables=\"+\$requestedTables.join(\",\");\r\n\t\t\t\$.ajax\r\n\t\t\t({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\tdata: buildQuery,\r\n\t\t\t\tbeforeSend: function()\r\n\t\t\t\t{\r\n\t\t\t\t\tTSUEAdmin.hideLoader();\r\n\t\t\t\t},\r\n\t\t\t\tsuccess: function(result)\r\n\t\t\t\t{\r\n\t\t\t\t\t\$(\"#mainText\").html(result);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn false;\r\n\t\t})\r\n\t</script>";
        $HTML .= aaaabn(createtable(get_phrase("database_tables_alt"), $tableContents, 7), array(  ), "", $script);
        return $HTML;
    }

}

function handleannouncements()
{
    global $TSUE;
    $HTML = "";
    $aaaaer = aaaaae(array( "new=1" => array( "phrase" => get_phrase("announcement_create_new") ) ));
    $enable_disable = intval(getvar("enable_disable"));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $tweet = intval(getvar("tweet"));
    if( $enable_disable )
    {
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
        $Announcement = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
        if( $Announcement )
        {
            $TSUE["TSUE_Database"]->update("tsue_announcements", $BuildQuery, "aid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            logadminaction(get_phrase("announcement_x_has_been_updated", $Announcement["title"] . " (" . $enable_disable . ")"));
            handlerebuildcaches(false);
        }

    }

    if( $delete )
    {
        $Announcement = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Announcement )
        {
            $TSUE["TSUE_Database"]->delete("tsue_announcements", "aid = " . $TSUE["TSUE_Database"]->escape($delete));
            logadminaction(get_phrase("announcement_x_has_been_deleted", $Announcement["title"] . " (" . $delete . ")"));
            handlerebuildcaches(false);
        }

    }

    if( $edit || $new )
    {
        $Announcement = array( "active" => 1, "title" => "", "content" => "", "reset" => 0 );
        $aaaaam = "";
        if( $edit )
        {
            $Announcement = $TSUE["TSUE_Database"]->query_result("SELECT active,title,content FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Announcement )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
            $Announcement["reset"] = (isset($_POST["Announcement"]["reset"]) ? intval($_POST["Announcement"]["reset"]) : 0);
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Announcement["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        }
        else
        {
            addbreadcrumb(array( get_phrase("announcement_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
        }

        if( isset($_POST["Announcement"]) )
        {
            $Announcement = $_POST["Announcement"];
            if( !$Announcement["title"] )
            {
                $formErrors[] = get_phrase("news_error_no_title");
            }

            if( !$Announcement["content"] )
            {
                $formErrors[] = get_phrase("news_error_no_content");
            }

            if( !isset($formErrors) )
            {
                $buildQuery = array( "active" => $Announcement["active"], "title" => $Announcement["title"], "content" => $Announcement["content"] );
                if( $edit )
                {
                    if( $Announcement["reset"] )
                    {
                        $buildQuery["date"] = TIMENOW;
                    }

                    $TSUE["TSUE_Database"]->update("tsue_announcements", $buildQuery, "aid=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $buildQuery["memberid"] = $TSUE["TSUE_Member"]["memberid"];
                    $buildQuery["date"] = TIMENOW;
                    $TSUE["TSUE_Database"]->insert("tsue_announcements", $buildQuery);
                }

                logadminaction(get_phrase("announcement_x_has_been_updated", $Announcement["title"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                $updateDone = true;
                handlerebuildcaches(false);
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $radioButtons = radioyesno("Announcement[active]", $Announcement["active"]);
            $formContents = aaaaan(get_phrase("announcement_active"), $radioButtons);
            if( $edit )
            {
                $radioButtons = radioyesno("Announcement[reset]", $Announcement["reset"]);
                $formContents .= aaaaan(get_phrase("reset_announcement"), $radioButtons, get_phrase("reset_announcement_alt"));
            }

            $inputbox = inputbox("Announcement[title]", $Announcement["title"]);
            $formContents .= aaaaan(get_phrase("announcement_title"), $inputbox);
            $textarea = textarea("Announcement[content]", $Announcement["content"], true);
            $formContents .= aaaaan(get_phrase("announcement_content"), $textarea);
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    if( $tweet )
    {
        $Announcement = $TSUE["TSUE_Database"]->query_result("SELECT content FROM tsue_announcements WHERE aid = " . $TSUE["TSUE_Database"]->escape($tweet));
        if( $Announcement )
        {
            $HTML .= posttotwitter($Announcement["content"], 120);
        }

    }

    $Announcements = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_announcements ORDER BY active DESC, date DESC");
    if( !$TSUE["TSUE_Database"]->num_rows($Announcements) )
    {
        $tableContents = errormessage(get_phrase("announcements_no_announcement_yet"));
    }
    else
    {
        $tableContents = "";
        while( $Announcement = $TSUE["TSUE_Database"]->fetch_assoc($Announcements) )
        {
            $linkClass = (!$Announcement["active"] ? "linkDisabled" : "");
            $aaaaes = aaaaae(array( "edit=" . $Announcement["aid"] => array( "phrase" => $Announcement["title"], "class" => $linkClass ) ));
            $aaaaet = aaaaae(array( "delete=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            $aaaaca = aaaaae(array( "tweet=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/twitter.png", "Tweet") ) ));
            if( $Announcement["active"] )
            {
                $aaaaeu = aaaaae(array( "enable_disable=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
            }
            else
            {
                $aaaaeu = aaaaae(array( "enable_disable=" . $Announcement["aid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
            }

            $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaaes . " <span class=\"smallPassiveText\">" . get_phrase("news_created", convert_relative_time($Announcement["date"])) . "</span>" ), array( "width" => "20%", "text" => $aaaaca . $aaaaeu . $aaaaet, "align" => "right" ) ));
        }
    }

    $HTML .= createtable(get_phrase("dashboard_announcements"), $tableContents, 2, $aaaaer);
    return $HTML;
}

function handletorrents()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $manageTorrents = getvar("manageTorrents", false, false);
    $torrentAction = getvar("torrentAction");
    $hit_run_ratio = getvar("hit_run_ratio");
    $new_category = intval(getvar("new_category"));
    $upload_multiplier = getvar("upload_multiplier");
    $download_multiplier = getvar("download_multiplier");
    $tags = getvar("tags");
    $searchType = trim(getvar("searchType"));
    $keywords = trim(getvar("keywords"));
    $categories = getvar("categories", false, false);
    $sortOptions = getvar("sortOptions", false, false);
    $showOnly = getvar("showOnly");
    $WHERE = "";
    $aaaaev = "";
    $pagerConditions = array(  );
    $orderBY = " ORDER BY t.sticky DESC, t.added DESC";
    $SelectedSortBy["added"] = " selected=\"selected\"";
    $SelectedSortBy["times_completed"] = "";
    $SelectedSortBy["size"] = $SelectedSortBy["times_completed"];
    $SelectedSortBy["leechers"] = $SelectedSortBy["size"];
    $SelectedSortBy["seeders"] = $SelectedSortBy["leechers"];
    $SelectedOrderBy["desc"] = " selected=\"selected\"";
    $SelectedOrderBy["asc"] = "";
    if( !empty($sortOptions) && is_array($sortOptions) && count($sortOptions) == 2 )
    {
        $availableSortBY = array( "added", "seeders", "leechers", "size", "times_completed" );
        $availableOrderBy = array( "asc", "desc" );
        if( !empty($sortOptions["sortBy"]) && !empty($sortOptions["sortOrder"]) && in_array($sortOptions["sortOrder"], $availableOrderBy) && in_array($sortOptions["sortBy"], $availableSortBY) )
        {
            $SelectedSortBy[$sortOptions["sortBy"]] = " selected=\"selected\"";
            $SelectedOrderBy[$sortOptions["sortOrder"]] = " selected=\"selected\"";
            $orderBY = " ORDER BY t." . $sortOptions["sortBy"] . " " . strtoupper($sortOptions["sortOrder"]);
            $pagerConditions[] = "sortOptions[sortBy]=" . $sortOptions["sortBy"];
            $pagerConditions[] = "sortOptions[sortOrder]=" . $sortOptions["sortOrder"];
        }

    }

    if( !$showOnly || !in_array($showOnly, array( "anonymouse", "record_stats", "upload_multiplier", "download_multiplier", "nuked", "hitRunRatio", "external", "dead", "sticky", "torrents_has_no_imdb", "silver_torrents", "x2_torrents" )) )
    {
        $showOnly = "";
    }

    if( ispost() && $torrentAction && $manageTorrents )
    {
        $tids = array_map("intval", $manageTorrents);
        $escaped = "tid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $tids)) . ")";
        switch( $torrentAction )
        {
            case "free":
                aaaaew("download_multiplier", $escaped, 1, 0, 1);
                $Phrase = get_phrase("set_free_non_free");
                break;
            case "double":
                aaaaew("upload_multiplier", $escaped, 2, 1, 2);
                $Phrase = get_phrase("set_double_non_double");
                break;
            case "sticky":
                $TSUE["TSUE_Database"]->update("tsue_torrents", array( "sticky" => array( "escape" => 0, "value" => "IF(sticky>0,0,1)" ) ), $escaped);
                $Phrase = get_phrase("set_sticky_un_sticky");
                break;
            case "anonymouse":
                aaaaew("anonymouse", $escaped, 1, 0, 1);
                $Phrase = get_phrase("set_anonymouse_non_anonymouse");
                break;
            case "record_stats":
                aaaaew("record_stats", $escaped, 1, 0, 1);
                $Phrase = get_phrase("set_record_stats_non_record_stats");
                break;
            case "reset_hit_run":
                aaaaew("hitRunRatio", $escaped, "", "", "", "!=");
                $Phrase = get_phrase("reset_hit_and_run_ratio");
                break;
            case "set_hit_run":
                aaaaew("hitRunRatio", $escaped, $hit_run_ratio, $hit_run_ratio, $hit_run_ratio, "!=");
                $Phrase = get_phrase("set_hit_and_run_ratio");
                break;
            case "reset_tags":
                $TSUE["TSUE_Database"]->update("tsue_torrents", array( "tags" => "" ), $escaped);
                $Phrase = get_phrase("reset_tags");
                break;
            case "set_tags":
                if( $tags )
                {
                    $tags = tsue_explode(",", cleartags(strip_tags(trim($tags))));
                    if( $tags )
                    {
                        $safeTags = array(  );
                        foreach( $tags as $tag )
                        {
                            $tag = trim(strip_tags($tag));
                            if( 2 < strlen($tag) )
                            {
                                $tag = ucfirst(strtolower($tag));
                                if( !in_array($tag, $safeTags) && $tag )
                                {
                                    $safeTags[] = $tag;
                                    $TSUE["TSUE_Database"]->replace("tsue_tags", array( "tag" => $tag ));
                                }

                            }

                        }
                        $tags = implode(",", $safeTags);
                        unset($safeTags);
                    }
                    else
                    {
                        $tags = "";
                    }

                    if( $tags )
                    {
                        $TSUE["TSUE_Database"]->update("tsue_torrents", array( "tags" => $tags ), $escaped);
                    }

                }

                $Phrase = get_phrase("set_tags");
                break;
            case "move_torrents":
                if( $new_category )
                {
                    $TSUE["TSUE_Database"]->update("tsue_torrents", array( "cid" => $new_category ), $escaped);
                    $Phrase = get_phrase("move_to_another_category");
                }

                break;
            case "remove_imdb":
                aaaaex($tids);
                $Phrase = get_phrase("remove_imdb");
                break;
            case "set_multipliers":
                $Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,options FROM tsue_torrents WHERE " . $escaped);
                if( $TSUE["TSUE_Database"]->num_rows($Torrents) )
                {
                    while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
                    {
                        $torrentOptions = unserialize($Torrent["options"]);
                        $torrentOptions["upload_multiplier"] = $upload_multiplier;
                        $torrentOptions["download_multiplier"] = $download_multiplier;
                        $buildQuery = array( "options" => serialize($torrentOptions), "flags" => 2, "upload_multiplier" => $upload_multiplier, "download_multiplier" => $download_multiplier );
                        $TSUE["TSUE_Database"]->update("tsue_torrents", $buildQuery, "tid=" . $TSUE["TSUE_Database"]->escape($Torrent["tid"]));
                    }
                }

                $Phrase = get_phrase("set_multipliers");
                break;
            case "delete_torrents":
                $Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,name FROM tsue_torrents WHERE " . $escaped);
                if( $TSUE["TSUE_Database"]->num_rows($Torrents) )
                {
                    while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
                    {
                        deletetorrent($Torrent["tid"]);
                    }
                }

                $Phrase = get_phrase("delete_selected_torrents");
                break;
        }
        if( isset($Phrase) && $tids )
        {
            $tids = implode(" ,", $tids);
            $Phrase = get_phrase("dashboard_torrents_alt") . " -> " . get_phrase("select_an_action_to_apply") . " -> " . $Phrase . " -> " . $tids;
            logadminaction($Phrase);
            $HTML .= successmessage(get_phrase("message_saved"));
        }

    }

    if( $keywords )
    {
        $pagerConditions[] = "keywords=" . html_clean($keywords);
        $pagerConditions[] = "searchType=" . html_clean($searchType);
        switch( $searchType )
        {
            case "name":
                $whereConditions[] = explodesearchkeywords("t.name", $keywords);
                break;
            case "description":
                $whereConditions[] = explodesearchkeywords("t.description", $keywords);
                break;
            case "uploader":
                if( !is_valid_string($keywords) )
                {
                    return errormessage(get_phrase("no_results_found"));
                }

                $whereConditions[] = "m.membername=" . $TSUE["TSUE_Database"]->escape($keywords);
                break;
            case "both":
            case "default":
                $whereConditions[] = explodesearchkeywords("t.name,t.description", $keywords);
                break;
        }
    }

    if( $categories )
    {
        if( !is_array($categories) )
        {
            $categories = tsue_explode(",", $categories);
        }

        $categories = array_map("intval", $categories);
        $categories = implode(",", $categories);
        $pagerConditions[] = "categories=" . $categories;
        $whereConditions[] = "t.cid IN (" . $categories . ")";
    }

    if( isset($whereConditions) )
    {
        $WHERE = " WHERE " . implode(" AND ", $whereConditions);
    }

    if( !empty($pagerConditions) )
    {
        $aaaaev = implode("&", $pagerConditions);
    }

    $totalTorrents = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE t.tid, m.membername FROM tsue_torrents t LEFT JOIN tsue_members m ON(t.owner=m.memberid)" . $WHERE);
    if( !$totalTorrents )
    {
        return errormessage(get_phrase("message_nothing_found"));
    }

    if( $showOnly )
    {
        $Pagination["1"] = "";
        $Pagination["0"] = $Pagination["1"];
    }
    else
    {
        $Pagination = pagination($totalTorrents, $aaaaev);
    }

    $aaaaey = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE t.*, m.membername, g.groupname, g.groupstyle, c.cname, c.cviewpermissions, c.cdownloadpermissions, cc.cname as parentCategoryName, a.filename, i.content as IMDBContent FROM tsue_torrents t LEFT JOIN tsue_members m on (t.owner=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_torrents_categories c ON(t.cid=c.cid) LEFT JOIN tsue_torrents_categories cc ON(c.pid=cc.cid) LEFT JOIN tsue_attachments a ON (a.content_type='torrent_images' AND a.content_id=t.tid) LEFT JOIN tsue_imdb i USING(tid)" . $WHERE . " GROUP BY t.tid " . $orderBY . " " . $Pagination["0"]);
    $tableContents .= aaaaag(array( array( "width" => "45%", "text" => get_phrase("torrent_name") ), array( "width" => "25%", "text" => get_phrase("torrent_categories_category_name") ), array( "width" => "25%", "text" => get_phrase("torrents_seeders") . "/" . get_phrase("torrents_leechers") . "/" . get_phrase("torrents_times_completed") ), array( "width" => "5%", "text" => "<input type=\"checkbox\" name=\"checkALL\" value=\"manageTorrents[]\" />" ) ), "tableContentTR", "tableContentTDHeader");
    if( $showOnly )
    {
        $aaaaez = array(  );
        while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($aaaaey) )
        {
            $torrentOptions = unserialize($Torrent["options"]);
            if( isset($torrentOptions[$showOnly]) || in_array($showOnly, array( "external", "dead", "sticky", "torrents_has_no_imdb", "silver_torrents", "x2_torrents" )) )
            {
                switch( $showOnly )
                {
                    case "anonymouse":
                        if( $torrentOptions[$showOnly] )
                        {
                            $aaaaez[] = $Torrent;
                        }

                        break;
                    case "record_stats":
                        if( !$torrentOptions[$showOnly] || !$torrentOptions["download_multiplier"] )
                        {
                            $aaaaez[] = $Torrent;
                        }

                        break;
                    case "upload_multiplier":
                        if( $torrentOptions[$showOnly] != "1" )
                        {
                            $aaaaez[] = $Torrent;
                        }

                        break;
                    case "download_multiplier":
                        if( $torrentOptions[$showOnly] != "1" )
                        {
                            $aaaaez[] = $Torrent;
                        }

                        break;
                    case "nuked":
                        if( $torrentOptions[$showOnly] )
                        {
                            $aaaaez[] = $Torrent;
                        }

                        break;
                    case "hitRunRatio":
                        if( $torrentOptions[$showOnly] )
                        {
                            $aaaaez[] = $Torrent;
                        }

                        break;
                    case "external":
                        if( $Torrent["external"] )
                        {
                            $aaaaez[] = $Torrent;
                        }

                        break;
                    case "dead":
                        if( !$Torrent["seeders"] )
                        {
                            $aaaaez[] = $Torrent;
                        }

                        break;
                    case "sticky":
                        if( $Torrent["sticky"] )
                        {
                            $aaaaez[] = $Torrent;
                        }

                        break;
                    case "torrents_has_no_imdb":
                        if( !$Torrent["IMDBContent"] )
                        {
                            $aaaaez[] = $Torrent;
                        }

                        break;
                    case "silver_torrents":
                        if( $torrentOptions["download_multiplier"] == "0.5" )
                        {
                            $aaaaez[] = $Torrent;
                        }

                        break;
                    case "x2_torrents":
                        if( $torrentOptions["upload_multiplier"] == "2" )
                        {
                            $aaaaez[] = $Torrent;
                        }

                        break;
                }
            }

        }
        if( !empty($aaaaez) )
        {
            foreach( $aaaaez as $Torrent )
            {
                $tableContents .= aaaafa($Torrent, $manageTorrents);
            }
        }

    }
    else
    {
        while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($aaaaey) )
        {
            $tableContents .= aaaafa($Torrent, $manageTorrents);
        }
    }

    $selectBox = "\r\n\t<select name=\"searchType\" class=\"selectNoWidth\">\r\n\t\t<option value=\"name\"" . (($searchType == "name" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_name") . "</option>\r\n\t\t<option value=\"description\"" . (($searchType == "description" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_description") . "</option>\r\n\t\t<option value=\"both\"" . (($searchType == "both" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_both") . "</option>\r\n\t\t<option value=\"owner\"" . (($searchType == "owner" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_search_by_uploader") . "</option>\r\n\t</select>";
    $searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texttiny") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) . " <input type=\"button\" id=\"categories\" name=\"categories\" value=\"" . get_phrase("categories") . "\" class=\"submit\" />" ) ));
    $script = "\r\n\t<script type=\"text/javascript\">\r\n\t\t\$('input[name=\"categories\"]').click(function(e)\r\n\t\t{\r\n\t\t\te.preventDefault();\r\n\t\t\t\r\n\t\t\t\$this = \$(this);\r\n\r\n\t\t\t\$(\"#categoryList\").remove();\r\n\r\n\t\t\t\$.ajax\r\n\t\t\t({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\tdata: \"isAjax=1&action=searchInTorrentsShowCatz&categories=" . $categories . "\",\r\n\t\t\t\tsuccess: function(result)\r\n\t\t\t\t{\r\n\t\t\t\t\t\$('<div id=\"categoryList\">'+result+'</div>').insertAfter(\$this);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\treturn false;\r\n\t\t});\r\n\t</script>";
    $HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array(  ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"], $script, "searchForm") . "<br />";
    $selectBox = "\r\n\t<input type=\"hidden\" name=\"hit_run_ratio\" value=\"\" />\r\n\t<input type=\"hidden\" name=\"new_category\" value=\"\" />\r\n\t<input type=\"hidden\" name=\"upload_multiplier\" value=\"\" />\r\n\t<input type=\"hidden\" name=\"download_multiplier\" value=\"\" />\r\n\t<input type=\"hidden\" name=\"tags\" value=\"\" />\r\n\r\n\t<select name=\"torrentAction\" class=\"selectNoWidth\">\r\n\t\t<option value=\"\"></option>\r\n\t\t<option value=\"free\">" . get_phrase("set_free_non_free") . "</option>\r\n\t\t<option value=\"double\">" . get_phrase("set_double_non_double") . "</option>\r\n\t\t<option value=\"sticky\">" . get_phrase("set_sticky_un_sticky") . "</option>\r\n\t\t<option value=\"anonymouse\">" . get_phrase("set_anonymouse_non_anonymouse") . "</option>\r\n\t\t<option value=\"record_stats\">" . get_phrase("set_record_stats_non_record_stats") . "</option>\r\n\t\t<option value=\"fix_info_hashes\">" . get_phrase("fix_info_hashes") . "</option>\r\n\t\t<option value=\"reset_hit_run\">" . get_phrase("reset_hit_and_run_ratio") . "</option>\r\n\t\t<option value=\"set_hit_run\">" . get_phrase("set_hit_and_run_ratio") . "</option>\r\n\t\t<option value=\"reset_tags\">" . get_phrase("reset_tags") . "</option>\r\n\t\t<option value=\"set_tags\">" . get_phrase("set_tags") . "</option>\r\n\t\t<option value=\"move_torrents\">" . get_phrase("move_to_another_category") . "</option>\r\n\t\t<option value=\"remove_imdb\">" . get_phrase("remove_imdb") . "</option>\r\n\t\t<option value=\"reset_imdb\">" . get_phrase("reset_imdb") . "</option>\r\n\t\t<option value=\"set_multipliers\">" . get_phrase("set_multipliers") . "</option>\r\n\t\t<option value=\"delete_torrents\">" . get_phrase("delete_selected_torrents") . "</option>\r\n\t</select>";
    $script = "\r\n\t<script type=\"text/javascript\">\r\n\t\tvar \$simpleForm = \$('#simpleForm');\r\n\r\n\t\t\$simpleForm.on(\"submit\", function(e)\r\n\t\t{\r\n\t\t\tvar \$tids = new Array(), \$torrentAction = \$('select[name=\"torrentAction\"]').val();\r\n\t\t\t\r\n\t\t\t\$('input[name=\"manageTorrents[]\"]:checked').each(function()\r\n\t\t\t{\r\n\t\t\t\t\$tids.push(\$(this).val());\r\n\t\t\t});\r\n\r\n\t\t\tvar \$total = \$tids.length;\r\n\r\n\t\t\t\r\n\t\t\tif(!\$total || !\$torrentAction)\r\n\t\t\t{\r\n\t\t\t\talert(\"" . get_phrase("message_required_fields_error") . "\");\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tif(\$torrentAction == \"fix_info_hashes\" || \$torrentAction == \"reset_imdb\")\r\n\t\t\t\t{\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\$noLoader = true;\r\n\r\n\t\t\t\t\tif(\$torrentAction == \"fix_info_hashes\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tTSUEAdmin.dialog('<h2>" . get_phrase("fix_info_hashes") . "</h2><div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "</div>', false, false);\r\n\t\t\t\t\t\t\$(\$tids).each(function(index, element)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\thandleFixTorrentHashResult(element, \$total, index+1);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(\$torrentAction == \"reset_imdb\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tTSUEAdmin.dialog('<h2>" . get_phrase("reset_imdb") . "</h2><div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("torrent_upload_step_2") . "</div>', false, false);\r\n\t\t\t\t\t\t\$(\$tids).each(function(index, element)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\thandleResetIMDB(element, \$total, index+1);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\telse if(\$torrentAction == \"delete_torrents\")\r\n\t\t\t\t{\r\n\t\t\t\t\treturn confirm(\"" . get_phrase("are_you_sure_that_you_want_to_perform_this_action") . "\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tfunction endTorrentAction()\r\n\t\t{\r\n\t\t\t\$(\"#ajax-loader\").remove();\r\n\t\t\t\$('<div class=\"successStay\">" . get_phrase("operation_completed") . "</div>').prependTo(\".overlay_text\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfunction handleResetIMDB(tid, total, count)\r\n\t\t{\r\n\t\t\tif(tid)\r\n\t\t\t{\r\n\t\t\t\t\$.ajax\r\n\t\t\t\t({\r\n\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\tdata: \"isAjax=1&action=resetIMDB&tid=\"+tid,\r\n\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tresult = result.split(\"~~~\");\r\n\t\t\t\t\t\tvar imdbURL = result[0], torrentName = result[1];\r\n\r\n\t\t\t\t\t\tif(imdbURL == \"no_imdb\")\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('<div class=\"torrentFixed\">" . getimage("status/warning-24.png") . " ('+torrentName+') " . get_phrase("no_imdb") . "</div>').appendTo('.overlay_text');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('<div class=\"torrentFixed\">" . getimage("status/success-24.png") . " '+torrentName+' ('+imdbURL+')</div>').appendTo('.overlay_text');\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\$(\"#ajax-loader\").remove();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(count == total)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tendTorrentAction();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('<div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("torrent_upload_step_2") . "</div>').appendTo(\".overlay_text\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction handleFixTorrentHashResult(tid, total, count)\r\n\t\t{\r\n\t\t\tif(tid)\r\n\t\t\t{\r\n\t\t\t\t\$.ajax\r\n\t\t\t\t({\r\n\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\tdata: \"isAjax=1&action=fixTorrentHash&tid=\"+tid,\r\n\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tresult = result.split(\"~~~\");\r\n\t\t\t\t\t\tvar torrentName = result[0], infoHash = result[1];\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\$('<div class=\"torrentFixed\">" . getimage("status/success-24.png") . " '+torrentName+' ('+infoHash+')</div>').appendTo('.overlay_text');\r\n\t\t\t\t\t\t\$(\"#ajax-loader\").remove();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(count == total)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tendTorrentAction();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('<div id=\"ajax-loader\">" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "</div>').appendTo(\".overlay_text\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\$('select[name=\"torrentAction\"]').change(function()\r\n\t\t{\r\n\t\t\tvar \$selectBox = \$(this), \$torrentAction = \$selectBox.val();\r\n\t\t\tswitch(\$torrentAction)\r\n\t\t\t{\r\n\t\t\t\tcase \"set_hit_run\":\r\n\t\t\t\t\tvar \$setHitRun = '<form name=\"set_hit_run_form\" method=\"post\" action=\"\">" . get_phrase("set_hit_and_run_ratio") . ": <input type=\"text\" name=\"hit_run_value\" value=\"\" class=\"text texttiny\" /> <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /></form>';\r\n\t\t\t\t\t\r\n\t\t\t\t\tTSUEAdmin.dialog(\$setHitRun, false, true);\r\n\t\t\t\t\t\r\n\t\t\t\t\t\$('form[name=\"set_hit_run_form\"]').submit(function(e)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\$(\"#hitRunError\").remove();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar \$hitRunForm = \$(this), \$hitRunValue = \$('input[name=\"hit_run_value\"]', \$hitRunForm).val();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(!\$hitRunValue)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('<div id=\"hitRunError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$hitRunForm);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('input[name=\"hit_run_ratio\"]').val(\$hitRunValue);\r\n\t\t\t\t\t\t\t\$(\"#hitRunError\").remove();\r\n\t\t\t\t\t\t\tTSUEAdmin.closeDialog();\r\n\t\t\t\t\t\t\t\$simpleForm.submit();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"move_torrents\":\r\n\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t({\r\n\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\tdata: \"isAjax=1&action=torrentCategoriesInbutboxes&name=category_id\",\r\n\t\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar \$moveTorrent = '<h2>" . get_phrase("move_to_another_category") . "</h2><form name=\"move_torrent_form\" method=\"post\" action=\"\">'+result+' <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /></form>';\r\n\t\t\t\t\t\t\tTSUEAdmin.dialog(\$moveTorrent, false, true);\r\n\r\n\t\t\t\t\t\t\t\$('form[name=\"move_torrent_form\"]').on(\"submit\", function(e)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\$(\"#newCategoryError\").remove();\r\n\r\n\t\t\t\t\t\t\t\tvar \$moveTorrentForm = \$(this), \$newCategory = \$('input[name=\"category_id\"]:checked', \$moveTorrentForm).val();\r\n\r\n\t\t\t\t\t\t\t\tif(!\$newCategory)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$('<div id=\"hitRunError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$moveTorrentForm);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$('input[name=\"new_category\"]').val(\$newCategory);\r\n\t\t\t\t\t\t\t\t\t\$(\"#newCategoryError\").remove();\r\n\t\t\t\t\t\t\t\t\tTSUEAdmin.closeDialog();\r\n\t\t\t\t\t\t\t\t\t\$simpleForm.submit();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"set_multipliers\":\r\n\t\t\t\t\tvar \$multipliers = '<h2>" . get_phrase("set_multipliers") . "</h2><form name=\"multipliers_form\" method=\"post\" action=\"\">" . get_phrase("torrent_upload_multiplier") . ": <input type=\"text\" name=\"upload_multiplier_value\" value=\"\" class=\"text texttiny\" /> " . get_phrase("torrent_download_multiplier") . ": <input type=\"text\" name=\"download_multiplier_value\" value=\"\" class=\"text texttiny\" /> <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /></form>';\r\n\r\n\t\t\t\t\tTSUEAdmin.dialog(\$multipliers, false, true);\r\n\r\n\t\t\t\t\t\$('form[name=\"multipliers_form\"]').submit(function(e)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\$(\"#multipliersError\").remove();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar \$multipliersForm = \$(this), \$uploadMultipliervalue = \$('input[name=\"upload_multiplier_value\"]', \$multipliersForm).val(), \$downloadMultipliervalue = \$('input[name=\"download_multiplier_value\"]', \$multipliersForm).val();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(!\$uploadMultipliervalue || !\$downloadMultipliervalue)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('<div id=\"multipliersError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$multipliersForm);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('input[name=\"upload_multiplier\"]').val(\$uploadMultipliervalue);\r\n\t\t\t\t\t\t\t\$('input[name=\"download_multiplier\"]').val(\$downloadMultipliervalue);\r\n\t\t\t\t\t\t\t\$(\"#multipliersError\").remove();\r\n\t\t\t\t\t\t\tTSUEAdmin.closeDialog();\r\n\t\t\t\t\t\t\t\$simpleForm.submit();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"set_tags\":\r\n\t\t\t\t\tvar \$setTags = '<h2>" . get_phrase("set_tags") . "</h2><form name=\"set_tags_form\" method=\"post\" action=\"\"><input type=\"text\" name=\"tags_value\" value=\"\" class=\"text textnormal\" /> <input type=\"submit\" value=\"" . get_phrase("button_apply") . "\" class=\"submit\" /> <span class=\"smallPassiveTextBlock\">" . get_phrase("tags_altv2") . "</span></form>';\r\n\t\t\t\t\t\r\n\t\t\t\t\tTSUEAdmin.dialog(\$setTags, false, true);\r\n\t\t\t\t\t\r\n\t\t\t\t\t\$('form[name=\"set_tags_form\"]').submit(function(e)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\$(\"#setTagsError\").remove();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar \$setTagsForm = \$(this), \$setTagsValue = \$('input[name=\"tags_value\"]', \$setTagsForm).val();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(!\$setTagsValue)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('<div id=\"setTagsError\" class=\"error\">" . get_phrase("message_required_fields_error") . "</div>').prependTo(\$setTagsForm);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$('input[name=\"tags\"]').val(\$setTagsValue);\r\n\t\t\t\t\t\t\t\$(\"#setTagsError\").remove();\r\n\t\t\t\t\t\t\tTSUEAdmin.closeDialog();\r\n\t\t\t\t\t\t\t\$simpleForm.submit();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\t</script>";
    $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("select_an_action_to_apply") . " " . $selectBox . " " . aaaabm(get_phrase("button_apply")), "align" => "right", "colspan" => 4 ) ));
    $HTML .= aaaabn(createtable(get_phrase("dashboard_torrents_alt"), $tableContents, 7, $Pagination["1"]), array(  ), "", $script);
    $displayOptions = "\r\n\t<select name=\"sortOptions[sortBy]\" class=\"selectNoWidth\">\r\n\t\t<option value=\"added\"" . $SelectedSortBy["added"] . ">" . get_phrase("torrents_sort_by_added") . "</option>\r\n\t\t<option value=\"seeders\"" . $SelectedSortBy["seeders"] . ">" . get_phrase("torrents_seeders") . "</option>\r\n\t\t<option value=\"leechers\"" . $SelectedSortBy["leechers"] . ">" . get_phrase("torrents_leechers") . "</option>\r\n\t\t<option value=\"size\"" . $SelectedSortBy["size"] . ">" . get_phrase("torrents_size") . "</option>\r\n\t\t<option value=\"times_completed\"" . $SelectedSortBy["times_completed"] . ">" . get_phrase("torrents_times_completed") . "</option>\r\n\t</select>\r\n\t<select name=\"sortOptions[sortOrder]\" class=\"selectNoWidth\">\r\n\t\t<option value=\"desc\"" . $SelectedOrderBy["desc"] . ">" . get_phrase("torrents_sort_order_desc") . "</option>\r\n\t\t<option value=\"asc\"" . $SelectedOrderBy["asc"] . ">" . get_phrase("torrents_sort_order_asc") . "</option>\r\n\t</select>\r\n\t";
    $tableContents = aaaaag(array( array( "width" => "80%", "text" => get_phrase("torrents_sort_by") . ": " . $displayOptions . " " . aaaabm(get_phrase("button_apply"), get_phrase("button_reset")) ) ));
    $HTML .= "<br />" . aaaabn(createtable(get_phrase("torrents_display_options"), $tableContents), array(  ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"], "", "displayOptions");
    $aaaafb = "\r\n\t<select name=\"showOnly\" class=\"selectNoWidth\">\r\n\t\t<option value=\"anonymouse\"" . (($showOnly == "anonymouse" ? " selected=\"selected\"" : "")) . ">" . get_phrase("anonymouse_torrents") . "</option>\r\n\t\t<option value=\"record_stats\"" . (($showOnly == "record_stats" ? " selected=\"selected\"" : "")) . ">" . get_phrase("free_no_stats_torrents") . "</option>\r\n\t\t<option value=\"upload_multiplier\"" . (($showOnly == "upload_multiplier" ? " selected=\"selected\"" : "")) . ">" . get_phrase("different_upload_multiplier") . "</option>\r\n\t\t<option value=\"download_multiplier\"" . (($showOnly == "download_multiplier" ? " selected=\"selected\"" : "")) . ">" . get_phrase("different_download_multiplier") . "</option>\r\n\t\t<option value=\"nuked\"" . (($showOnly == "nuked" ? " selected=\"selected\"" : "")) . ">" . get_phrase("nuked_torrents") . "</option>\r\n\t\t<option value=\"hitRunRatio\"" . (($showOnly == "hitRunRatio" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_have_hit_run_ratio") . "</option>\r\n\t\t<option value=\"external\"" . (($showOnly == "external" ? " selected=\"selected\"" : "")) . ">" . get_phrase("external_torrents") . "</option>\r\n\t\t<option value=\"dead\"" . (($showOnly == "dead" ? " selected=\"selected\"" : "")) . ">" . get_phrase("dead_torrents") . "</option>\r\n\t\t<option value=\"sticky\"" . (($showOnly == "sticky" ? " selected=\"selected\"" : "")) . ">" . get_phrase("sticky_torrents") . "</option>\r\n\t\t<option value=\"torrents_has_no_imdb\"" . (($showOnly == "torrents_has_no_imdb" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_has_no_imdb") . "</option>\r\n\t\t<option value=\"silver_torrents\"" . (($showOnly == "silver_torrents" ? " selected=\"selected\"" : "")) . ">" . get_phrase("silver_torrents") . "</option>\r\n\t\t<option value=\"x2_torrents\"" . (($showOnly == "x2_torrents" ? " selected=\"selected\"" : "")) . ">" . get_phrase("x2_torrents") . "</option>\r\n\t</select>";
    $tableContents = aaaaag(array( array( "width" => "80%", "text" => "Show Only: " . $aaaafb . " " . aaaabm(get_phrase("button_apply"), get_phrase("button_reset")) ) ));
    $HTML .= "<br />" . aaaabn(createtable(get_phrase("torrents_display_options"), $tableContents), array(  ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"], "", "showOnly");
    return $HTML;
}

function aaaafa($Torrent, $manageTorrents)
{
    global $TSUE;
    if( $Torrent["flags"] != 1 && $Torrent["size"] && $Torrent["name"] )
    {
        $Torrent["options"] = unserialize($Torrent["options"]);
        $torrentImage = get_torrent_image($Torrent["filename"], ($Torrent["IMDBContent"] ? unserialize($Torrent["IMDBContent"]) : ""));
        $torrentName = strip_tags($Torrent["name"]);
        $torrentFlags = gettorrentmultipliers($Torrent);
        $size = friendly_size($Torrent["size"]);
        $aaaafc = get_phrase("torrents_owner", convert_relative_time($Torrent["added"]), getmembername($Torrent["membername"], $Torrent["groupstyle"]));
        $aaaafd = strip_tags($Torrent["cname"]);
        if( $Torrent["parentCategoryName"] )
        {
            $aaaafd = strip_tags($Torrent["parentCategoryName"]) . " > " . $aaaafd;
        }

        $seeders = number_format($Torrent["seeders"]);
        $leechers = number_format($Torrent["leechers"]);
        $aaaafe = number_format($Torrent["times_completed"]);
        return aaaaag(array( array( "width" => "45%", "valign" => "top", "text" => "\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"torrentImage\">" . $torrentImage . "</div>\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"torrentDetails\">" . aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Torrent["tid"], $torrentName) . "</div>\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"torrentDetails\">" . $torrentFlags . "</div>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"smallPassiveTextBlock\">" . $size . " - " . aaaaaf("?p=profile&pid=18&memberid=" . $Torrent["owner"], $aaaafc) . "</span>" ), array( "width" => "25%", "valign" => "top", "text" => $aaaafd ), array( "width" => "25%", "valign" => "top", "text" => $seeders . "/" . $leechers . "/" . $aaaafe ), array( "width" => "5%", "valign" => "top", "text" => "<input type=\"checkbox\" name=\"manageTorrents[]\" value=\"" . $Torrent["tid"] . "\"" . (($manageTorrents && in_array($Torrent["tid"], $manageTorrents) ? " checked=\"checked\"" : "")) . " />" ) ));
    }

}

function cleartags($tags)
{
    $tags = removewhitespaces($tags);
    $tags = preg_replace("/,+/", ",", $tags);
    $tags = trim($tags, ",");
    $tags = trim($tags);
    return $tags;
}

function aaaaew($Option, $escaped, $if, $so, $otherwise, $type = "==")
{
    global $TSUE;
    $Torrents = $TSUE["TSUE_Database"]->query("SELECT tid,options FROM tsue_torrents WHERE " . $escaped);
    if( $TSUE["TSUE_Database"]->num_rows($Torrents) )
    {
        while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
        {
            $torrentOptions = unserialize($Torrent["options"]);
            if( $type == "==" )
            {
                $torrentOptions[$Option] = ($torrentOptions[$Option] == $if ? $so : $otherwise);
            }
            else
            {
                if( $type == "!=" )
                {
                    $torrentOptions[$Option] = ($torrentOptions[$Option] != $if ? $so : $otherwise);
                }

            }

            $buildQuery = array(  );
            $buildQuery["options"] = serialize($torrentOptions);
            $buildQuery["flags"] = 2;
            if( $Option == "upload_multiplier" )
            {
                $buildQuery["upload_multiplier"] = $torrentOptions[$Option];
            }
            else
            {
                if( $Option == "download_multiplier" )
                {
                    $buildQuery["download_multiplier"] = $torrentOptions[$Option];
                }

            }

            $TSUE["TSUE_Database"]->update("tsue_torrents", $buildQuery, "tid=" . $TSUE["TSUE_Database"]->escape($Torrent["tid"]));
        }
    }

}

function gettorrentmultipliers($Torrent)
{
    global $TSUE;
    $multipliers = $newIndicatorText = "";
    $defaultThemeName = aaaaff();
    if( $Torrent["options"]["record_stats"] == 0 )
    {
        $newIndicatorText[] = "torrent_no_record";
    }
    else
    {
        if( $Torrent["options"]["download_multiplier"] == 0 || $Torrent["download_multiplier"] == 0 )
        {
            $newIndicatorText[] = "torrent_free";
        }
        else
        {
            if( $Torrent["options"]["download_multiplier"] != 1 || $Torrent["download_multiplier"] != 1 )
            {
                $Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/torrent_free.png", "alt" => "", "title" => get_phrase("torrent_download_multiplier") . ": " . $Torrent["options"]["download_multiplier"], "class" => "middle", "id" => "", "rel" => "" );
                $multipliers .= aaaadb($Image);
            }

        }

        if( $Torrent["options"]["upload_multiplier"] != 1 || $Torrent["upload_multiplier"] != 1 )
        {
            $Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/torrent_multiple_upload.png", "alt" => "", "title" => get_phrase("torrent_upload_multiplier") . ": " . $Torrent["options"]["upload_multiplier"], "class" => "middle", "id" => "", "rel" => "" );
            $multipliers .= aaaadb($Image);
        }

    }

    if( $Torrent["sticky"] )
    {
        $Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/sticky.png", "alt" => "", "title" => get_phrase("sticky_torrent"), "class" => "middle", "id" => "", "rel" => "" );
        $multipliers .= aaaadb($Image);
    }

    if( $Torrent["options"]["nuked"] )
    {
        $nuked_reason_x = str_replace("\"", "", strip_tags($Torrent["options"]["nuked"]));
        $nuked_reason_x = get_phrase("nuked_reason_x", $nuked_reason_x);
        $Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/buttons/nuke.png", "alt" => $nuked_reason_x, "title" => $nuked_reason_x, "class" => "middle", "id" => "", "rel" => "" );
        $multipliers .= aaaadb($Image);
    }

    if( $newIndicatorText )
    {
        foreach( $newIndicatorText as $text )
        {
            $Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/" . $text . ".png", "alt" => "", "title" => get_phrase($text), "class" => "middle", "id" => "", "rel" => "" );
            $multipliers .= aaaadb($Image);
        }
    }

    if( $Torrent["external"] )
    {
        $Image = array( "src" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/buttons/refresh.png", "alt" => $Torrent["tid"], "title" => get_phrase("refresh_external_torrent_status"), "class" => "middle clickable", "id" => "update_external_torrent", "rel" => "" );
        $multipliers .= aaaadb($Image);
    }

    return $multipliers;
}

function aaaadb($Image = array(  ))
{
    return "<img src=\"" . $Image["src"] . "\" alt=\"" . $Image["alt"] . "\" title=\"" . $Image["title"] . "\" class=\"" . $Image["class"] . "\" id=\"" . $Image["id"] . "\" rel=\"" . $Image["rel"] . "\" />";
}

function get_torrent_image($filename, $IMDBContent = "")
{
    global $TSUE;
    if( $filename && is_file(DATAPATH . "torrents/torrent_images/s/" . $filename) )
    {
        $image = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/torrent_images/s/" . $filename;
    }
    else
    {
        if( $IMDBContent && is_file(DATAPATH . "torrents/imdb/" . $IMDBContent["title_id"] . ".jpg") )
        {
            $image = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/imdb/" . $IMDBContent["title_id"] . ".jpg";
        }

    }

    if( !isset($image) )
    {
        $defaultThemeName = aaaaff();
        return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultThemeName . "/torrents/torrent_s.png\" alt=\"\" title=\"\" />";
    }

    $Image = array( "src" => $image, "alt" => "", "title" => "", "class" => "middle", "id" => "", "rel" => "" );
    return aaaadb($Image);
}

function handleaddons()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $aaaafg = aaaaae(array( "install=1" => array( "phrase" => get_phrase("install_addon") ) ));
    $aaaafh = aaaaae(array( "TSUEAddonStore=1" => array( "phrase" => get_phrase("tsue_store") ) ));
    $aaaafi = aaaaae(array( "checkAddonUpdates=1" => array( "phrase" => get_phrase("check_updates") ) ));
    $enable_disable = intval(getvar("enable_disable"));
    $delete = intval(getvar("delete"));
    $run = intval(getvar("run"));
    $install = intval(getvar("install"));
    $permissions = intval(getvar("permissions"));
    $TSUEAddonStore = intval(getvar("TSUEAddonStore"));
    $checkAddonUpdates = intval(getvar("checkAddonUpdates"));
    $_SESSION["load-addon"] = "";
    if( $checkAddonUpdates )
    {
        addbreadcrumb(array( get_phrase("check_updates") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;checkAddonUpdates=1" ));
        return "\r\n\t\t<div class=\"ajaxLoaderDiv\" id=\"updatesAreBeingChecked\">\r\n\t\t\t" . getimage("ajax/ajax-loader.gif", NULL, "middle") . "\r\n\t\t\t" . get_phrase("please_wait_while_updates_are_being_checked") . "\r\n\t\t</div>\r\n\t\t\r\n\t\t<script type=\"text/javascript\">\r\n\t\t\tsetTimeout(function()\r\n\t\t\t{\r\n\t\t\t\t\$.ajax\r\n\t\t\t\t({\r\n\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\tdata: \"isAjax=1&action=checkAddonUpdates\",\r\n\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(\"<div>\"+result+\"</div>\").insertBefore(\"#updatesAreBeingChecked\");\r\n\t\t\t\t\t\t\$(\"#updatesAreBeingChecked\").remove();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}, 1000);\r\n\t\t</script>";
    }

    if( $permissions )
    {
        $Addon = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($permissions));
        if( $Addon )
        {
            addbreadcrumb(array( get_phrase("set_permissions") . ": " . $Addon["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;permissions=" . $Addon["addon_id"] ));
            $Permissions = ($Addon["permissions"] ? explode(",", $Addon["permissions"]) : array(  ));
            if( ispost() )
            {
                $Permissions = getvar("Permissions", array(  ), false);
                $newPerms = implode(",", array_map("intval", $Permissions));
                $TSUE["TSUE_Database"]->update("tsue_admincp_addons", array( "permissions" => $newPerms ), "addon_id = " . $TSUE["TSUE_Database"]->escape($permissions));
                $Phrase = get_phrase("addon_perms_updated", $Addon["title"]);
                logadminaction($Phrase);
                handlerebuildcaches(false);
                $HTML .= successmessage($Phrase);
            }

            if( !$HTML )
            {
                $Usergroups = aaaaaw("Permissions[]", $Permissions);
                $formContents = aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all"));
                $HTML .= aaaabg($formContents);
                return $HTML;
            }

        }

    }

    if( $run )
    {
        $Addon = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($run));
        if( $Addon )
        {
            addbreadcrumb(array( $Addon["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;run=" . $Addon["addon_id"] ));
            $addonFile = "./addons/files/" . $Addon["filename"] . ".php";
            if( !is_file($addonFile) )
            {
                return errormessage("Add-on file does not exists: addons/files/" . $Addon["filename"] . ".php");
            }

            if( $Addon["permissions"] )
            {
                $aPerms = explode(",", $Addon["permissions"]);
                if( !in_array($TSUE["TSUE_Member"]["membergroupid"], $aPerms) )
                {
                    return errormessage(get_phrase("permission_denied"));
                }

            }

            $_SESSION["load-addon"] = base64_encode(strrev(md5($Addon["filename"])));
            $HTML .= "\r\n\t\t\t<iframe name=\"addonIframe\" id=\"addonIframe\" src=\"addons/load-addon.php?load=" . $Addon["filename"] . "\" frameborder=\"0\" border=\"0\" cellspacing=\"0\" style=\"border: 1px solid #ccc;width: 100%; height: 50px; margin-bottom: 10px;\"></iframe>\r\n\t\t\t<script type=\"text/javascript\" src=\"./js/jquery.iframe-auto-height.js\"></script>\r\n\t\t\t<script type=\"text/javascript\">\$(\"#addonIframe\").iframeAutoHeight();</script>";
        }

    }

    if( $delete )
    {
        checkdemomode();
        $Addon = $TSUE["TSUE_Database"]->query_result("SELECT filename,title FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Addon )
        {
            $TSUE["TSUE_Database"]->delete("tsue_admincp_addons", "addon_id = " . $TSUE["TSUE_Database"]->escape($delete));
            if( is_file("./addons/files/" . $Addon["filename"] . ".php") )
            {
                @unlink("./addons/files/" . $Addon["filename"] . ".php");
            }

            $Phrase = get_phrase("addon_x_has_been_deleted", $Addon["title"] . " (" . $delete . ")");
            logadminaction($Phrase);
            handlerebuildcaches(false);
            $HTML .= successmessage($Phrase);
        }

    }

    if( $enable_disable )
    {
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
        $Addon = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_admincp_addons WHERE addon_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
        if( $Addon )
        {
            $TSUE["TSUE_Database"]->update("tsue_admincp_addons", $BuildQuery, "addon_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            $Phrase = get_phrase("addon_has_been_updated", $Addon["title"] . " (" . $enable_disable . ")");
            logadminaction($Phrase);
            handlerebuildcaches(false);
            $HTML .= successmessage($Phrase);
        }

    }

    if( $TSUEAddonStore )
    {
        addbreadcrumb(array( get_phrase("tsue_store") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;TSUEAddonStore=1" ));
        $HTML = "\r\n\t\t<div id=\"getTSUEAddons\">\r\n\t\t\t" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "\r\n\t\t</div>\r\n\t\t\r\n\t\t<script type=\"text/javascript\">\r\n\t\t\t\$(window).load(function()\r\n\t\t\t{\r\n\t\t\t\tbuildQuery = \"isAjax=1&action=getTSUEAddons\";\r\n\t\t\t\t\$.ajax\r\n\t\t\t\t({\r\n\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\tdata: buildQuery,\r\n\t\t\t\t\tsuccess: function(response)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!response)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tresponse = \"" . get_phrase("message_nothing_found") . "\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\$(\"#getTSUEAddons\").html(response);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\$('#getTSUEAddons div[class=\"install_addon\"]').on(\"click\", function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\tvar \$installButton = \$(this), \$addonID = parseInt(\$installButton.attr(\"rel\"));\r\n\t\t\t\t\t\t\t\$(\"#purchaseFormDiv\").remove();\r\n\r\n\t\t\t\t\t\t\tvar purchaseFormHTML = '<div style=\"display: none; padding: 8px; margin: 5px 0; border: 1px solid #ccc; width: 400px;\" id=\"purchaseFormDiv\">'+\r\n\t\t\t\t\t\t\t'<form method=\"post\" id=\"purchaseForm\">'+\r\n\t\t\t\t\t\t\t'<div style=\"font-weight: bold; color: red; margin-bottom: 4px;\">" . get_phrase("enter_customer_number") . "</div>'+\r\n\t\t\t\t\t\t\t'" . get_phrase("customer_number") . ": <input type=\"text\" class=\"text texttiny\" name=\"customerNumber\" />'+\r\n\t\t\t\t\t\t\t'&nbsp;<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("upgrade_purchase") . "\" />'+ \r\n\t\t\t\t\t\t\t'&nbsp;<input type=\"button\" class=\"submit\" value=\"" . get_phrase("button_close") . "\" id=\"purchaseFormCancelButton\" />'+\r\n\t\t\t\t\t\t\t'</form>'+\r\n\t\t\t\t\t\t\t'</div>';\r\n\r\n\t\t\t\t\t\t\t\$(purchaseFormHTML).insertBefore(\$installButton).fadeIn(\"slow\").expose({closeOnEsc: false, closeOnClick: false});\r\n\t\t\t\t\t\t\t\$(\"#purchaseForm\").submit(function(e)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tvar \$customerNumber = \$('input[name=\"customerNumber\"]', \$(this)).val();\r\n\t\t\t\t\t\t\t\tif(\$customerNumber.length == 10)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$installButton.hide();\r\n\t\t\t\t\t\t\t\t\t\$(\"#purchaseFormDiv\").html('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "').css({\"text-align\":\"center\", \"color\": \"red\", \"border\": \"2px solid #000\"}).expose({closeOnEsc: false, closeOnClick: false});\r\n\t\t\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=purchaseTSUEAddon&customerNumber=\"+\$customerNumber+\"&addon_id=\"+\$addonID,\r\n\t\t\t\t\t\t\t\t\t\tsuccess: function(response)\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\$(\"#purchaseFormDiv\").html(response);\r\n\t\t\t\t\t\t\t\t\t\t\t\$(\"#purchaseFormCancelButton\").click(function(e)\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$.mask.close();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$(\"#purchaseFormDiv\").remove();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$installButton.show();\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$(\"#purchaseFormDiv\").effect(\"shake\", { times: 3 }, 300);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\$(\"#purchaseFormCancelButton\").click(function(e)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\$.mask.close();\r\n\t\t\t\t\t\t\t\t\$(\"#purchaseFormDiv\").remove();\r\n\t\t\t\t\t\t\t\t\$installButton.show();\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}).hover\r\n\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\tfunction()\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$(this).css({\"background\":\"#16cc16\"});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t,\r\n\t\t\t\t\t\t\tfunction()\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$(this).css({\"background\":\"#d8b654\"});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t</script>";
        return $HTML;
    }

    if( $install )
    {
        addbreadcrumb(array( get_phrase("install_addon") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;install=1" ));
        checkdemomode();
        if( !function_exists("simplexml_load_file") )
        {
            return errormessage("TSUE Add-on system requires the PHP function <code>simplexml_load_file()</code>.<br />Your server has this disabled. Please ask your hosting company to enable <code>simplexml_load_file</code>.");
        }

        if( ispost() )
        {
            $addonFile = (isset($_FILES["addon_file"]) ? $_FILES["addon_file"] : "");
            if( $addonFile )
            {
                if( !$addonFile["name"] || !$addonFile["tmp_name"] || $addonFile["error"] || !$addonFile["size"] )
                {
                    $HTML .= errormessage(get_phrase("upload_error3") . " (PE-" . $addonFile["error"] . ")");
                }
                else
                {
                    if( !preg_match("#xml#", $addonFile["type"]) || file_extension($addonFile["name"]) != "xml" )
                    {
                        $HTML .= errormessage(get_phrase("upload_error6", "xml"));
                    }
                    else
                    {
                        if( !($Addon = simplexml_load_file($addonFile["tmp_name"])) )
                        {
                            $HTML .= errormessage(get_phrase("failed_to_open_x", htmlspecialchars($addonFile["name"])));
                        }
                        else
                        {
                            if( !isset($Addon->filename) || !isset($Addon->title) || !isset($Addon->description) || !isset($Addon->version_string) || !isset($Addon->version_id) || !isset($Addon->active) || !isset($Addon->permissions) )
                            {
                                $HTML .= errormessage(get_phrase("invalid_addon_xml"));
                            }
                            else
                            {
                                if( !preg_match("#^[a-zA-Z0-9_\\-]+\$#", $Addon->filename) )
                                {
                                    $HTML .= errormessage("Addon filename contains bad chars. Only [a-z A-Z 0-9 - _] allowed.");
                                }
                                else
                                {
                                    if( !is_file("./addons/files/" . $Addon->filename . ".php") )
                                    {
                                        $HTML .= errormessage("Add-on file does not exists: addons/files/" . $Addon->filename . ".php");
                                    }
                                    else
                                    {
                                        $aaaafj = $TSUE["TSUE_Database"]->query_result("SELECT filename FROM tsue_admincp_addons WHERE filename = " . $TSUE["TSUE_Database"]->escape($Addon->filename));
                                        if( $aaaafj )
                                        {
                                            return errormessage(get_phrase("x_is_already_installed", $Addon->filename));
                                        }

                                        $buildQuery = array( "filename" => $Addon->filename, "title" => strip_tags($Addon->title), "description" => strip_tags($Addon->description), "version_string" => htmlspecialchars($Addon->version_string), "version_id" => htmlspecialchars($Addon->version_id), "active" => ($Addon->active == 1 ? 1 : 0), "permissions" => htmlspecialchars($Addon->permissions) );
                                        $TSUE["TSUE_Database"]->insert("tsue_admincp_addons", $buildQuery);
                                        $Phrase = get_phrase("new_addon_installed", $Addon->filename);
                                        logadminaction($Phrase);
                                        handlerebuildcaches(false);
                                        return successmessage($Phrase);
                                    }

                                }

                            }

                        }

                    }

                }

            }
            else
            {
                $HTML .= errormessage(get_phrase("upload_error3"));
            }

        }

        $aaaacr = aaaacs("addon_file");
        $formContents = aaaaan(get_phrase("install_from_uploaded_file"), $aaaacr);
        $HTML .= aaaabg($formContents, array(  ), "", "install_addon");
        return $HTML;
    }

    $tableContents .= aaaaag(array( array( "width" => "80%", "text" => get_phrase("installed_addons") ), array( "width" => "20%", "text" => "" ) ), "tableContentTR", "tableContentTDHeader");
    $Addons = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_admincp_addons ORDER BY active DESC, title ASC");
    if( $TSUE["TSUE_Database"]->num_rows($Addons) )
    {
        while( $Addon = $TSUE["TSUE_Database"]->fetch_assoc($Addons) )
        {
            $linkClass = (!$Addon["active"] ? "linkDisabled" : "");
            $aaaafk = aaaaae(array( "run=" . $Addon["addon_id"] => array( "phrase" => $Addon["title"], "class" => $linkClass ) ));
            $aaaafl = aaaaae(array( "delete=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            $aaaafm = aaaaae(array( "permissions=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/permissions.png", get_phrase("set_permissions")) ) ));
            if( $Addon["active"] )
            {
                $aaaafn = aaaaae(array( "enable_disable=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
            }
            else
            {
                $aaaafn = aaaaae(array( "enable_disable=" . $Addon["addon_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
            }

            $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaafk . "<span class=\"smallPassiveText\">(" . $Addon["version_string"] . ") " . $Addon["description"] . "</span>" ), array( "width" => "20%", "text" => $aaaafm . $aaaafn . $aaaafl, "align" => "right" ) ));
        }
    }
    else
    {
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("there_is_no_any_addon_installed_yet"), "colspan" => "2" ) ));
    }

    $HTML .= aaaabn(createtable(get_phrase("addons_alt"), $tableContents, 2, $aaaafh . " | " . $aaaafg . " | " . $aaaafi));
    return $HTML;
}

function handlerecentcomments()
{
    global $TSUE;
    $HTML = "";
    $deleteComment = intval(getvar("deleteComment"));
    $deleteReply = intval(getvar("deleteReply"));
    if( $deleteComment )
    {
        $TSUE["TSUE_Database"]->delete("tsue_comments", "comment_id = " . $TSUE["TSUE_Database"]->escape($deleteComment) . " AND content_type IN (\"torrent_comments\", \"profile_comments\")");
        $TSUE["TSUE_Database"]->delete("tsue_comments_replies", "comment_id = " . $TSUE["TSUE_Database"]->escape($deleteComment) . " AND content_type IN (\"torrent_comments\", \"profile_comments\")");
        $Phrase = get_phrase("comment_x_has_been_deleted", $deleteComment);
        logadminaction($Phrase);
        $HTML = successmessage($Phrase);
    }

    if( $deleteReply )
    {
        $TSUE["TSUE_Database"]->delete("tsue_comments_replies", "reply_id = " . $TSUE["TSUE_Database"]->escape($deleteReply) . " AND content_type IN (\"torrent_comments\", \"profile_comments\")");
        $Phrase = get_phrase("comment_x_has_been_deleted", $deleteComment);
        logadminaction($Phrase);
        $HTML = successmessage($Phrase);
    }

    $totalComments = $TSUE["TSUE_Database"]->row_count("SELECT comment_id FROM tsue_comments WHERE content_type IN (\"torrent_comments\", \"profile_comments\")");
    if( !$totalComments )
    {
        return errormessage(get_phrase("message_nothing_found"));
    }

    $Pagination = pagination($totalComments, "", 3, 20);
    $Comments = $TSUE["TSUE_Database"]->query("SELECT c.*, m.membername, g.groupstyle FROM tsue_comments c LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE c.content_type IN (\"torrent_comments\", \"profile_comments\") ORDER BY post_date DESC " . $Pagination["0"]);
    $aaaafo = $profileComments = $aaaafp = array(  );
    while( $Comment = $TSUE["TSUE_Database"]->fetch_assoc($Comments) )
    {
        $aaaafp[] = $Comment["comment_id"];
        if( $Comment["content_type"] == "torrent_comments" )
        {
            $aaaafo[] = $Comment;
        }
        else
        {
            if( $Comment["content_type"] == "profile_comments" )
            {
                $profileComments[] = $Comment;
            }

        }

    }
    $commentReplyCache = array(  );
    $aaaafq = $TSUE["TSUE_Database"]->query("SELECT r.*, m.membername, g.groupstyle FROM tsue_comments_replies r LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE r.comment_id IN (0," . implode(",", $aaaafp) . ") ORDER BY post_date ASC");
    if( $TSUE["TSUE_Database"]->num_rows($aaaafq) )
    {
        while( $Reply = $TSUE["TSUE_Database"]->fetch_assoc($aaaafq) )
        {
            $commentReplyCache[$Reply["comment_id"]][] = $Reply;
        }
    }

    $TSUE["TSUE_Database"]->free($Comments);
    $TSUE["TSUE_Database"]->free($aaaafq);
    $TSUE["TSUE_Security"] = new TSUE_Security();
    $TSUE["TSUE_Parser"] = new TSUE_Parser();
    $tC = "";
    if( $aaaafo )
    {
        foreach( $aaaafo as $Comment )
        {
            $tC .= buildcommentlist($Comment, "torrent_comments", 1, $commentReplyCache);
        }
    }

    $pC = "";
    if( $profileComments )
    {
        foreach( $profileComments as $Comment )
        {
            $pC .= buildcommentlist($Comment, "profile_posts", 2, $commentReplyCache);
        }
    }

    $createTabs = createtabs(array( get_phrase("torrent_comments") => $tC, get_phrase("profile_posts") => $pC ));
    return $HTML . createtable(get_phrase("recent_comments"), "<tr><td>" . $createTabs . "</td></tr>", 1, $Pagination["1"]);
}

function buildcommentlist($Comment, $Type, $tabNumber, $commentReplyCache)
{
    global $TSUE;
    $Sender = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Comment["memberid"] => array( "phrase" => getmembername($Comment["membername"], $Comment["groupstyle"]) ) ));
    $postDate = convert_relative_time($Comment["post_date"]);
    $Message = $TSUE["TSUE_Parser"]->parse($Comment["message"]);
    if( $Type == "torrent_comments" )
    {
        $URL = "?p=torrents&pid=10&action=details&tid=" . $Comment["content_id"] . "#torrent_comments";
    }
    else
    {
        $URL = "?p=profile&pid=18&memberid=" . $Comment["content_id"] . "#profile_posts";
    }

    $Link = aaaaaf($URL, getimage("buttons/view_comment.png", get_phrase("view_comment")));
    $Delete = aaaaae(array( "deleteComment=" . $Comment["comment_id"] . "#tabs-" . $tabNumber => array( "phrase" => getimage("buttons/delete_comment.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
    $aaaafr = aaaafs($Comment["comment_id"], $Type, $tabNumber, $commentReplyCache);
    return "\r\n\t<div style=\"margin-bottom: 10px; border-bottom: 3px solid #ccc;\">\r\n\t\t<div style=\"background: #fff; padding: 5px; font-size: 13px;\">\r\n\t\t\t<span style=\"float: right;\">" . $Link . "&nbsp;&nbsp;" . $Delete . "</span>\r\n\t\t\t" . $Sender . " | " . $postDate . "\r\n\t\t</div>\r\n\t\t<div style=\"padding: 5px; font-size: 12px;\">\r\n\t\t\t" . $Message . "\r\n\t\t\t" . $aaaafr . "\r\n\t\t</div>\r\n\t</div>";
}

function aaaafs($comment_id, $Type, $tabNumber, $commentReplyCache)
{
    global $TSUE;
    if( isset($commentReplyCache[$comment_id]) )
    {
        $Replies = "";
        foreach( $commentReplyCache[$comment_id] as $Comment )
        {
            $Sender = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Comment["memberid"] => array( "phrase" => getmembername($Comment["membername"], $Comment["groupstyle"]) ) ));
            $postDate = convert_relative_time($Comment["post_date"]);
            $Message = $TSUE["TSUE_Parser"]->parse($Comment["message"]);
            if( $Type == "torrent_comments" )
            {
                $URL = "?p=torrents&pid=10&action=details&tid=" . $Comment["content_id"] . "#torrent_comments";
            }
            else
            {
                $URL = "?p=profile&pid=18&memberid=" . $Comment["content_id"] . "#profile_posts";
            }

            $Link = aaaaaf($URL, getimage("buttons/view_comment.png", get_phrase("view_comment")));
            $Delete = aaaaae(array( "deleteReply=" . $Comment["reply_id"] . "#tabs-" . $tabNumber => array( "phrase" => getimage("buttons/delete_comment.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            $Replies .= "\r\n\t\t\t<div style=\"margin: 10px; border-bottom: 1px solid #ccc; border-top: 1px solid #ccc;\">\r\n\t\t\t\t<div style=\"background: #e1e0e0; padding: 0; font-size: 10px;\">\r\n\t\t\t\t\t<span style=\"float: right;\">" . $Link . "&nbsp;&nbsp;" . $Delete . "</span>\r\n\t\t\t\t\t" . $Sender . " | " . $postDate . "\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"padding: 5px; font-size: 9px;\">" . $Message . "</div>\r\n\t\t\t</div>";
        }
        return $Replies;
    }

}

function handletorrentgenres()
{
    global $TSUE;
    $HTML = "";
    $enable_disable = intval(getvar("enable_disable"));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $genreImagesFullURL = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/torrent_genres/";
    $aaaaft = DATAPATH . "torrents/torrent_genres/";
    $tableContents = "";
    if( !is_dir($aaaaft) || !is_writable($aaaaft) )
    {
        return errormessage(get_phrase("torrent_genres_folder_error"));
    }

    if( $new || $edit )
    {
        checkdemomode();
        $Genre = array( "gname" => "", "gicon" => "", "active" => 0, "categories" => "" );
        $aaaaam = "";
        if( $edit )
        {
            $Genre = $TSUE["TSUE_Database"]->query_result("SELECT gname, gicon, active, categories FROM tsue_torrents_genres WHERE gid = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Genre )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
            $aaaafu = $Genre["gicon"];
            $Genre["categories"] = explode(",", $Genre["categories"]);
            addbreadcrumb(array( get_phrase("button_edit") . ": <img src=\"" . $genreImagesFullURL . $Genre["gicon"] . "\" style=\"width: 16px; height: 16px; border: 0; vertical-align: middle; margin: 0 3px;\" /> " . $Genre["gname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        }
        else
        {
            addbreadcrumb(array( get_phrase("create_new_genre") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
        }

        if( isset($_POST["Genre"]) )
        {
            $Genre = $_POST["Genre"];
            if( !isset($Genre["categories"]) || !$Genre["categories"] )
            {
                $Genre["categories"] = array(  );
            }

            if( !$Genre["gname"] )
            {
                $formErrors[] = get_phrase("please_enter_a_valid_title");
            }
            else
            {
                if( isset($_FILES["gicon"]) )
                {
                    $aaaafv = $_FILES["gicon"];
                    if( !$aaaafv["size"] || $aaaafv["error"] )
                    {
                        if( !$edit )
                        {
                            $formErrors[] = get_phrase("upload_error3");
                        }

                    }
                    else
                    {
                        if( !in_array(file_extension($aaaafv["name"]), array( "gif", "jpg", "png", "jpeg" )) )
                        {
                            $formErrors[] = get_phrase("upload_error6", "gif, jpg, png");
                        }
                        else
                        {
                            if( is_file($aaaaft . $aaaafv["name"]) )
                            {
                                $formErrors[] = get_phrase("upload_error7");
                            }
                            else
                            {
                                if( !move_uploaded_file($aaaafv["tmp_name"], $aaaaft . $aaaafv["name"]) )
                                {
                                    $formErrors[] = get_phrase("upload_error8");
                                }
                                else
                                {
                                    $aaaafw = $aaaaft . $aaaafv["name"];
                                }

                            }

                        }

                    }

                }

            }

            if( !$edit && (!isset($aaaafw) || !is_file($aaaafw)) )
            {
                $formErrors[] = get_phrase("genre_icon_error");
            }

            if( isset($formErrors) )
            {
                if( isset($aaaafw) )
                {
                    @unlink($aaaafw);
                }

                $HTML .= errormessage(implode("<br />", $formErrors));
            }
            else
            {
                $buildQuery = array( "gname" => $Genre["gname"], "active" => $Genre["active"], "categories" => implode(",", $Genre["categories"]) );
                if( $edit )
                {
                    if( isset($aaaafw) )
                    {
                        if( is_file($aaaaft . $aaaafu) )
                        {
                            unlink($aaaaft . $aaaafu);
                        }

                        $buildQuery["gicon"] = str_replace($aaaaft, "", $aaaafw);
                    }

                    $Phrase = get_phrase("genre_x_updated", $Genre["gname"]);
                    $TSUE["TSUE_Database"]->update("tsue_torrents_genres", $buildQuery, "gid=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $Phrase = get_phrase("new_genre_x_created", $Genre["gname"]);
                    $buildQuery["gicon"] = str_replace($aaaaft, "", $aaaafw);
                    $TSUE["TSUE_Database"]->insert("tsue_torrents_genres", $buildQuery);
                }

                $HTML .= successmessage($Phrase);
                logadminaction($Phrase);
                handlerebuildcaches(false);
                handleprune(false);
                $uploadDone = true;
            }

        }

        if( !isset($uploadDone) )
        {
            $inputbox = inputbox("Genre[gname]", $Genre["gname"]);
            $formContents = aaaaan(get_phrase("genre_name"), $inputbox);
            $radioButtons = radioyesno("Genre[active]", $Genre["active"]);
            $formContents .= aaaaan(get_phrase("genre_active"), $radioButtons);
            $aaaacr = aaaacs("gicon");
            $formContents .= aaaaan(get_phrase("genre_icon"), $aaaacr, ($edit ? get_phrase("global_leave_empty_keep_current_one") : ""));
            $aaaact = array(  );
            $aaaafx = array(  );
            $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC");
            while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
            {
                if( $Category["pid"] )
                {
                    $aaaact[$Category["pid"]][] = $Category;
                }
                else
                {
                    $aaaafx[] = $Category;
                }

            }
            $aaaafy = "\r\n\t\t\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t<tr>";
            $Count = 0;
            $maxPerRow = 4;
            foreach( $aaaafx as $Category )
            {
                if( $Count % $maxPerRow == 0 )
                {
                    $aaaafy .= "\r\n\t\t\t\t\t</tr><tr>";
                }

                $Count++;
                $subCategoryList = "";
                if( isset($aaaact[$Category["cid"]]) )
                {
                    foreach( $aaaact[$Category["cid"]] as $subCategory )
                    {
                        $checked = "";
                        if( in_array($subCategory["cid"], $Genre["categories"]) )
                        {
                            $checked = " checked=\"checked\"";
                        }

                        $subCategoryList .= "\r\n\t\t\t\t\t\t<div style=\"margin-left: 20px;\" class=\"forumSub\">\r\n\t\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"Genre[categories][]\" value=\"" . $subCategory["cid"] . "\"" . $checked . " /> " . $subCategory["cname"] . "</label>\r\n\t\t\t\t\t\t</div>";
                    }
                }

                $checked = "";
                if( in_array($Category["cid"], $Genre["categories"]) )
                {
                    $checked = " checked=\"checked\"";
                }

                $aaaafy .= "\r\n\t\t\t\t\t<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">\r\n\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"Genre[categories][]\" value=\"" . $Category["cid"] . "\"" . $checked . " /> " . $Category["cname"] . "</label>\r\n\t\t\t\t\t\t" . $subCategoryList . "\r\n\t\t\t\t\t</td>";
            }
            $aaaafy .= "\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
            $formContents .= aaaaan(get_phrase("select_torrent_categories"), $aaaafy, get_phrase("select_torrent_categories_alt"));
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    if( $enable_disable )
    {
        checkdemomode();
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
        $Genre = $TSUE["TSUE_Database"]->query_result("SELECT gname FROM tsue_torrents_genres WHERE gid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
        if( $Genre )
        {
            $TSUE["TSUE_Database"]->update("tsue_torrents_genres", $BuildQuery, "gid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            $Phrase = get_phrase("torrent_genre_x_updated", $Genre["gname"] . " (" . $enable_disable . ")");
            logadminaction($Phrase);
            handlerebuildcaches(false);
            handleprune(false);
            $HTML .= successmessage($Phrase);
        }

    }

    if( $delete )
    {
        checkdemomode();
        $Genre = $TSUE["TSUE_Database"]->query_result("SELECT gname, gicon FROM tsue_torrents_genres WHERE gid = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Genre )
        {
            $TSUE["TSUE_Database"]->delete("tsue_torrents_genres", "gid = " . $TSUE["TSUE_Database"]->escape($delete));
            if( is_file($aaaaft . $Genre["gicon"]) )
            {
                @unlink($aaaaft . $Genre["gicon"]);
            }

            $Phrase = get_phrase("torrent_genre_x_deleted", $Genre["gname"] . " (" . $delete . ")");
            logadminaction($Phrase);
            handlerebuildcaches(false);
            handleprune(false);
            $HTML .= successmessage($Phrase);
        }

    }

    if( !$tableContents )
    {
        $Genres = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_genres ORDER BY active DESC, gname ASC");
        if( !$TSUE["TSUE_Database"]->num_rows($Genres) )
        {
            $tableContents = errormessage(get_phrase("message_nothing_found"));
        }
        else
        {
            $tableContents = "";
            while( $Genre = $TSUE["TSUE_Database"]->fetch_assoc($Genres) )
            {
                $linkClass = (!$Genre["active"] ? "linkDisabled" : "");
                $aaaafz = aaaaae(array( "edit=" . $Genre["gid"] => array( "phrase" => $Genre["gname"], "class" => $linkClass ) ));
                $aaaaga = aaaaae(array( "delete=" . $Genre["gid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
                if( $Genre["active"] )
                {
                    $aaaagb = aaaaae(array( "enable_disable=" . $Genre["gid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
                }
                else
                {
                    $aaaagb = aaaaae(array( "enable_disable=" . $Genre["gid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
                }

                $tableContents .= aaaaag(array( array( "width" => "80%", "text" => "<img src=\"" . $genreImagesFullURL . $Genre["gicon"] . "\" style=\"width: 26px; height: 26px; border: 0; vertical-align: middle; margin-right: 5px;\" /> " . $aaaafz ), array( "width" => "10%", "text" => $aaaagb . $aaaaga, "align" => "center" ) ));
            }
        }

    }

    $aaaagc = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_genre") ) ));
    $HTML .= createtable(get_phrase("torrent_genres"), $tableContents, 2, $aaaagc);
    return $HTML;
}

function handleadvertisements()
{
    global $TSUE;
    $HTML = "";
    $aaaagd = aaaaae(array( "new=1" => array( "phrase" => get_phrase("ads_create_new") ) ));
    $enable_disable = intval(getvar("enable_disable"));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    if( $enable_disable )
    {
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
        $Ads = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_ads WHERE id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
        if( $Ads )
        {
            $TSUE["TSUE_Database"]->update("tsue_ads", $BuildQuery, "id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            logadminaction(get_phrase("ads_x_has_been_updated", $Ads["title"] . " (" . $enable_disable . ")"));
            handlerebuildcaches(false);
        }

    }

    if( $delete )
    {
        $Ads = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_ads WHERE id = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Ads )
        {
            $TSUE["TSUE_Database"]->delete("tsue_ads", "id = " . $TSUE["TSUE_Database"]->escape($delete));
            logadminaction(get_phrase("ads_x_has_been_deleted", $Ads["title"] . " (" . $delete . ")"));
            handlerebuildcaches(false);
        }

    }

    if( $edit || $new )
    {
        $Ads = array( "title" => "", "content" => "", "position" => 0, "active" => 1, "permissions" => array(  ) );
        $aaaaam = "";
        if( $edit )
        {
            $Ads = $TSUE["TSUE_Database"]->query_result("SELECT title, content, position, active, permissions FROM tsue_ads WHERE id = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Ads )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
            $Ads["permissions"] = tsue_explode(",", $Ads["permissions"]);
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Ads["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        }
        else
        {
            addbreadcrumb(array( get_phrase("ads_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
        }

        if( isset($_POST["Ads"]) )
        {
            $Ads = $_POST["Ads"];
            if( !$Ads["title"] )
            {
                $formErrors[] = get_phrase("please_enter_a_valid_title");
            }

            if( !$Ads["content"] )
            {
                $formErrors[] = get_phrase("error_no_content");
            }

            if( !isset($Ads["permissions"]) )
            {
                $Ads["permissions"] = array(  );
            }

            if( !isset($formErrors) )
            {
                $buildQuery = array( "title" => $Ads["title"], "content" => $Ads["content"], "position" => $Ads["position"], "active" => $Ads["active"], "permissions" => implode(",", $Ads["permissions"]) );
                if( $edit )
                {
                    $TSUE["TSUE_Database"]->update("tsue_ads", $buildQuery, "id=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $TSUE["TSUE_Database"]->insert("tsue_ads", $buildQuery);
                }

                logadminaction(get_phrase("ads_x_has_been_updated", $Ads["title"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                $updateDone = true;
                handlerebuildcaches(false);
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $radioButtons = radioyesno("Ads[active]", $Ads["active"]);
            $formContents = aaaaan(get_phrase("ads_active"), $radioButtons);
            $inputbox = inputbox("Ads[title]", $Ads["title"]);
            $formContents .= aaaaan(get_phrase("ads_title"), $inputbox);
            $textarea = textarea("Ads[content]", $Ads["content"], true);
            $formContents .= aaaaan(get_phrase("ads_content"), $textarea);
            $inputbox = inputbox("Ads[position]", $Ads["position"]);
            $formContents .= aaaaan(get_phrase("ads_position"), $inputbox);
            $Usergroups = aaaaaw("Ads[permissions][]", $Ads["permissions"]);
            $formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups);
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    $aaaage = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ads ORDER BY active DESC, position ASC");
    if( !$TSUE["TSUE_Database"]->num_rows($aaaage) )
    {
        $tableContents = errormessage(get_phrase("ads_no_ads_yet"));
    }
    else
    {
        if( isset($_POST["sort"]) )
        {
            foreach( $_POST["sort"] as $id => $position )
            {
                $id = intval($id);
                $position = intval($position);
                $TSUE["TSUE_Database"]->update("tsue_ads", array( "position" => $position ), "id=" . $TSUE["TSUE_Database"]->escape($id));
            }
            logadminaction(get_phrase("ads_all_pages_updated"));
            handlerebuildcaches(false);
            handleprune(false);
            header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
            exit();
        }
        else
        {
            $tableContents = "";
            while( $Ads = $TSUE["TSUE_Database"]->fetch_assoc($aaaage) )
            {
                $linkClass = (!$Ads["active"] ? "linkDisabled" : "");
                $aaaagf = aaaaae(array( "edit=" . $Ads["id"] => array( "phrase" => $Ads["title"], "class" => $linkClass ) ));
                $aaaagg = aaaaae(array( "delete=" . $Ads["id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
                if( $Ads["active"] )
                {
                    $aaaagh = aaaaae(array( "enable_disable=" . $Ads["id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
                }
                else
                {
                    $aaaagh = aaaaae(array( "enable_disable=" . $Ads["id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
                }

                $tableContents .= aaaaag(array( array( "width" => "70%", "text" => $aaaagf . " <span class=\"smallPassiveText\"></span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Ads["id"] . "]", $Ads["position"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "20%", "text" => $aaaagh . $aaaagg, "align" => "right" ) ));
            }
            $tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
        }

    }

    $HTML .= aaaabn(createtable(get_phrase("dashboard_ads"), $tableContents, 3, $aaaagd));
    return $HTML;
}

function handleshoutboxchannels()
{
    global $TSUE;
    $HTML = "";
    $aaaacl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_channel") ) ));
    $tableContents = "";
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $cid = intval(getvar("cid"));
    if( isset($_POST["sort"]) )
    {
        foreach( $_POST["sort"] as $Cid => $Sort )
        {
            $Cid = intval($Cid);
            $Sort = intval($Sort);
            $TSUE["TSUE_Database"]->update("tsue_shoutbox_channels", array( "sort" => $Sort ), "cid=" . $TSUE["TSUE_Database"]->escape($Cid));
        }
        handleprune(false);
        header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
        exit();
    }
    else
    {
        if( $delete )
        {
            checkdemomode();
            if( $delete == 1 )
            {
                return errormessage(get_phrase("shoutbox_default_channel_cant_be_deleted"));
            }

            $Category = $TSUE["TSUE_Database"]->query_result("SELECT cname FROM tsue_shoutbox_channels WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete));
            if( $Category )
            {
                $TSUE["TSUE_Database"]->delete("tsue_shoutbox_channels", "cid = " . $TSUE["TSUE_Database"]->escape($delete));
                logadminaction(get_phrase("shoutbox_channel_deleted", $Category["cname"] . " (" . $delete . ")"));
                handlerebuildcaches(false);
                handleprune(false);
            }

        }

        if( $edit || $new )
        {
            $Category = array( "sort" => "", "cname" => "", "cviewpermissions" => array(  ), "cshoutpermissions" => array(  ) );
            $aaaaam = "";
            if( $edit )
            {
                $Category = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_shoutbox_channels WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit));
                if( !$Category )
                {
                    return errormessage(get_phrase("message_content_error"));
                }

                $aaaaam = array( "edit" => $edit );
                $Category["cviewpermissions"] = tsue_explode(",", $Category["cviewpermissions"]);
                $Category["cshoutpermissions"] = tsue_explode(",", $Category["cshoutpermissions"]);
                addbreadcrumb(array( get_phrase("button_edit") . ": " . $Category["cname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
            }
            else
            {
                addbreadcrumb(array( get_phrase("create_new_channel") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
            }

            if( isset($_POST["Category"]) )
            {
                checkdemomode();
                $Category = $_POST["Category"];
                if( !isset($Category["cviewpermissions"]) )
                {
                    $Category["cviewpermissions"] = array(  );
                }

                if( !isset($Category["cshoutpermissions"]) )
                {
                    $Category["cshoutpermissions"] = array(  );
                }

                if( !$Category["cname"] )
                {
                    $formErrors[] = get_phrase("message_required_fields_error");
                }

                if( isset($flagError) )
                {
                    $formErrors = (isset($formErrors) ? array_merge($formErrors, $flagError) : $flagError);
                    unset($flagError);
                }

                if( !isset($formErrors) )
                {
                    $buildQuery = array( "cname" => $Category["cname"], "sort" => $Category["sort"], "cviewpermissions" => ($edit && $edit == 1 ? "" : implode(",", $Category["cviewpermissions"])), "cshoutpermissions" => implode(",", $Category["cshoutpermissions"]) );
                    if( $edit )
                    {
                        $TSUE["TSUE_Database"]->update("tsue_shoutbox_channels", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit));
                        $flagID = $edit;
                    }
                    else
                    {
                        $TSUE["TSUE_Database"]->insert("tsue_shoutbox_channels", $buildQuery);
                        $flagID = $TSUE["TSUE_Database"]->insert_id();
                    }

                    logadminaction(get_phrase("shoutbox_channel_updated", $Category["cname"] . " (" . $flagID . ")"));
                    $HTML .= successmessage(get_phrase("message_saved"));
                    handlerebuildcaches(false);
                    handleprune(false);
                    $updateDone = true;
                }
                else
                {
                    $HTML .= errormessage(implode("<br />", $formErrors));
                }

            }

            if( !isset($updateDone) )
            {
                $inputbox = inputbox("Category[cname]", $Category["cname"], "text texthalf");
                $formContents = aaaaan(get_phrase("channel_name"), $inputbox);
                $inputbox = inputbox("Category[sort]", $Category["sort"], "text textVeryTiny");
                $formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox);
                if( !($edit && $edit == 1) )
                {
                    $aaaabe = aaaaaw("Category[cviewpermissions][]", $Category["cviewpermissions"]);
                    $formContents .= aaaaan(get_phrase("global_view_permissions"), $aaaabe, get_phrase("global_leave_empty_all"));
                }

                $aaaabe = aaaaaw("Category[cshoutpermissions][]", $Category["cshoutpermissions"]);
                $formContents .= aaaaan(get_phrase("global_shout_permissions"), $aaaabe, get_phrase("global_leave_empty_all"));
                $HTML .= aaaabg($formContents, $aaaaam);
                return $HTML;
            }

        }

        $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_shoutbox_channels ORDER BY `sort` ASC");
        if( !$TSUE["TSUE_Database"]->num_rows($Categories) )
        {
            $tableContents = errormessage(get_phrase("no_results_found"));
        }
        else
        {
            $tableContents = "";
            while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
            {
                $aaaacv = aaaaae(array( "edit=" . $Category["cid"] => array( "phrase" => $Category["cname"] ) ));
                $aaaacw = aaaaae(array( "delete=" . $Category["cid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
                $tableContents .= aaaaag(array( array( "width" => "65%", "text" => $aaaacv ), array( "width" => "10%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaacw, "align" => "right" ) ));
            }
            $tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
        }

        $HTML .= aaaabn(createtable(get_phrase("shoutbox_channels"), $tableContents, 3, $aaaacl));
        return $HTML;
    }

}

function aaaaah()
{
    global $TSUE;
    $HTML = "";
    $enable_disable = intval(getvar("enable_disable"));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $options = intval(getvar("options"));
    if( $options )
    {
        $Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name, pluginOptions FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($options));
        if( $Plugin && $Plugin["pluginOptions"] )
        {
            addbreadcrumb(array( get_phrase("dashboard_options") . ": " . $Plugin["name"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;options=" . $options ));
            $Plugin["pluginOptions"] = unserialize($Plugin["pluginOptions"]);
            $formContents = "";
            if( isset($_POST["pluginOptions"]) )
            {
                $newOptions = array(  );
                foreach( $_POST["pluginOptions"] as $fieldType => $Fields )
                {
                    foreach( $Fields as $fieldName => $fieldValue )
                    {
                        $newOptions[] = array( "fieldType" => $fieldType, "fieldName" => $fieldName, "fieldValue" => $fieldValue );
                    }
                }
                $buildQuery = array( "pluginOptions" => serialize($newOptions) );
                $TSUE["TSUE_Database"]->update("tsue_plugins", $buildQuery, "pluginid=" . $TSUE["TSUE_Database"]->escape($options));
                $Plugin["pluginOptions"] = $newOptions;
                logadminaction(get_phrase("plugin_manager_plugin_updated", $Plugin["name"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                handlerebuildcaches(false);
                handleprune(false);
                $updateDone = true;
            }

            $formContents = aaaagi($Plugin["pluginOptions"]);
            $HTML .= aaaabg($formContents);
            return $HTML;
        }
        else
        {
            return errormessage(get_phrase("message_nothing_found"));
        }

    }
    else
    {
        if( $edit || $new )
        {
            $Plugin = array( "name" => "", "filename" => "", "contents" => "", "active" => 0, "viewpermissions" => array(  ) );
            $aaaaam = "";
            if( $edit )
            {
                $Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name,filename,contents,active,viewpermissions FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($edit));
                if( !$Plugin )
                {
                    return errormessage(get_phrase("message_content_error"));
                }

                $Plugin["viewpermissions"] = tsue_explode(",", $Plugin["viewpermissions"]);
                $aaaaam = array( "edit" => $edit );
                addbreadcrumb(array( get_phrase("button_edit") . ": " . $Plugin["name"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;edit=" . $edit ));
            }
            else
            {
                addbreadcrumb(array( get_phrase("plugin_manager_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;new=1" ));
            }

            if( isset($_POST["Plugin"]) )
            {
                $Plugin = $_POST["Plugin"];
                if( !$Plugin["name"] )
                {
                    $formErrors[] = get_phrase("dashboard_cron_entries_cron_title_error");
                }

                if( $Plugin["filename"] && !is_file(LIBRARYPATH . "plugins/" . $Plugin["filename"]) )
                {
                    $formErrors[] = get_phrase("plugin_manager_plugin_file_error");
                }

                if( !$Plugin["filename"] && !$Plugin["contents"] )
                {
                    $formErrors[] = get_phrase("plugin_manager_create_fatal_error");
                }

                if( !isset($Plugin["viewpermissions"]) )
                {
                    $Plugin["viewpermissions"] = array(  );
                }

                if( !isset($formErrors) )
                {
                    $buildQuery = array( "name" => $Plugin["name"], "filename" => $Plugin["filename"], "active" => $Plugin["active"], "contents" => $Plugin["contents"], "viewpermissions" => implode(",", $Plugin["viewpermissions"]) );
                    if( $edit )
                    {
                        $TSUE["TSUE_Database"]->update("tsue_plugins", $buildQuery, "pluginid=" . $TSUE["TSUE_Database"]->escape($edit));
                    }
                    else
                    {
                        $TSUE["TSUE_Database"]->insert("tsue_plugins", $buildQuery);
                    }

                    logadminaction(get_phrase("plugin_manager_plugin_updated", $Plugin["name"]));
                    $HTML .= successmessage(get_phrase("message_saved"));
                    handlerebuildcaches(false);
                    handleprune(false);
                    $updateDone = true;
                }
                else
                {
                    $HTML .= errormessage(implode("<br />", $formErrors));
                }

            }

            if( !isset($updateDone) )
            {
                $radioButtons = radioyesno("Plugin[active]", $Plugin["active"]);
                $formContents = aaaaan(get_phrase("plugin_manager_plugin_active"), $radioButtons);
                $inputbox = inputbox("Plugin[name]", $Plugin["name"]);
                $formContents .= aaaaan(get_phrase("plugin_manager_plugin_name"), $inputbox);
                $inputbox = inputbox("Plugin[filename]", $Plugin["filename"]);
                $formContents .= aaaaan(get_phrase("plugin_manager_plugin_filename"), $inputbox, get_phrase("global_file_path", (DEMO_MODE ? "" : LIBRARYPATH . "plugins/")));
                $textarea = textarea("Plugin[contents]", $Plugin["contents"], true);
                $formContents .= aaaaan(get_phrase("plugin_manager_plugin_contents"), $textarea, get_phrase("plugin_manager_plugin_contents_alt"));
                $Usergroups = aaaaaw("Plugin[viewpermissions][]", $Plugin["viewpermissions"]);
                $formContents .= aaaaan(get_phrase("global_view_permissions"), $Usergroups, get_phrase("global_leave_empty_all"));
                $HTML .= aaaabg($formContents, $aaaaam);
                return $HTML;
            }

        }

        if( $enable_disable )
        {
            $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
            $Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            if( $Plugin )
            {
                $TSUE["TSUE_Database"]->update("tsue_plugins", $BuildQuery, "pluginid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
                logadminaction(get_phrase("plugin_manager_plugin_updated", $Plugin["name"] . " (" . $enable_disable . ")"));
                handlerebuildcaches(false);
                handleprune(false);
            }

        }

        if( $delete )
        {
            $Plugin = $TSUE["TSUE_Database"]->query_result("SELECT name FROM tsue_plugins WHERE pluginid = " . $TSUE["TSUE_Database"]->escape($delete));
            if( $Plugin )
            {
                $TSUE["TSUE_Database"]->delete("tsue_plugins", "pluginid = " . $TSUE["TSUE_Database"]->escape($delete));
                logadminaction(get_phrase("plugin_manager_plugin_deleted", $Plugin["name"] . " (" . $delete . ")"));
                handlerebuildcaches(false);
                handleprune(false);
            }

        }

        $Plugins = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_plugins ORDER BY active DESC, name ASC");
        if( !$TSUE["TSUE_Database"]->num_rows($Plugins) )
        {
            $tableContents = errormessage(get_phrase("plugin_manager_no_plugin"));
        }
        else
        {
            $tableContents = "";
            while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
            {
                $linkClass = (!$Plugin["active"] ? "linkDisabled" : "");
                $aaaagj = aaaaae(array( "edit=" . $Plugin["pluginid"] => array( "phrase" => $Plugin["name"], "class" => $linkClass ) ));
                $aaaagk = aaaaae(array( "delete=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
                $aaaagl = "";
                if( $Plugin["pluginOptions"] )
                {
                    $aaaagl = aaaaae(array( "options=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/options.png", get_phrase("dashboard_options")) ) ));
                }

                if( $Plugin["active"] )
                {
                    $aaaagm = aaaaae(array( "enable_disable=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
                }
                else
                {
                    $aaaagm = aaaaae(array( "enable_disable=" . $Plugin["pluginid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
                }

                $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaagj . "<span class=\"smallPassiveText\">" . $Plugin["filename"] . "</span>" ), array( "width" => "20%", "text" => $aaaagl . $aaaagm . $aaaagk, "align" => "right" ) ));
            }
        }

        $aaaagn = aaaaae(array( "new=1" => array( "phrase" => get_phrase("plugin_manager_create_new") ) ));
        $HTML .= createtable(get_phrase("plugin_manager_plugin_list"), $tableContents, 2, $aaaagn);
        return $HTML;
    }

}

function getpluginoption($Options = array(  ), $optionFieldName = "", $defaultFieldValue = "")
{
    foreach( $Options as $Option )
    {
        if( $Option["fieldName"] == $optionFieldName )
        {
            return $Option["fieldValue"];
        }

    }
    return $defaultFieldValue;
}

function aaaagi($pluginOptions)
{
    global $TSUE;
    $formContents = "";
    if( $pluginOptions )
    {
        foreach( $pluginOptions as $Options )
        {
            if( isset($Options["fieldType"]) && $Options["fieldType"] && isset($Options["fieldName"]) && $Options["fieldName"] )
            {
                $optionName = "pluginOptions[" . $Options["fieldType"] . "][" . $Options["fieldName"] . "]";
                switch( $Options["fieldType"] )
                {
                    case "input":
                        $inputbox = inputbox($optionName, getpluginoption($pluginOptions, $Options["fieldName"]));
                        $formContents .= aaaaan(get_phrase("plugin_" . $Options["fieldName"]), $inputbox);
                        break;
                    case "radioYesNo":
                        $radiobox = radioyesno($optionName, getpluginoption($pluginOptions, $Options["fieldName"]));
                        $formContents .= aaaaan(get_phrase("plugin_" . $Options["fieldName"]), $radiobox);
                }
            }

        }
    }

    return $formContents;
}

function aaaago($Permissions, $parentid = 0)
{
    $aaaagp = aaaagq(array( "canview_forum", "canview_thread_list", "canview_thread_posts" ), $Permissions, "forums_viewing_permissions");
    $formContents = aaaaan(get_phrase("forums_viewing_permissions"), $aaaagp);
    $aaaagp = aaaagq(array( "canupload", "candownload" ), $Permissions, "forums_attachment_permissions");
    $formContents .= aaaaan(get_phrase("forums_attachment_permissions"), $aaaagp);
    $aaaagp = aaaagq(array( "canreply_threads", "canpost_new_thread", "candelete_own_posts", "canedit_own_posts", "canedit_own_threads", "cansubscribe_to_threads" ), $Permissions, "forums_post_thread_permissions");
    $formContents .= aaaaan(get_phrase("forums_post_thread_permissions"), $aaaagp);
    $aaaagp = aaaagq(array( "canpost_polls", "candelete_own_polls", "canedit_own_polls" ), $Permissions, "forum_poll_permissions");
    $formContents .= aaaaan(get_phrase("forum_poll_permissions"), $aaaagp);
    $aaaagp = aaaagq(array( "candelete_posts", "candelete_threads", "canedit_posts", "canedit_threads", "canmanage_locked_threads", "canmove_threads", "canlock_threads", "cansticky_threads", "candelete_polls", "canedit_polls" ), $Permissions, "forums_admin_mod_permissions");
    $formContents .= aaaaan(get_phrase("forums_admin_mod_permissions"), $aaaagp);
    $extra = "";
    if( $parentid == -1 )
    {
        $extra = "<label><input type=\"checkbox\" name=\"apply_to_subforums\" value=\"1\" checked=\"checked\" /> " . get_phrase("forums_apply_to_subforums") . "</label>";
    }

    return array( $formContents, $extra );
}

function handleforums()
{
    global $TSUE;
    $HTML = "";
    $aaaagr = aaaaae(array( "new=1" => array( "phrase" => get_phrase("forums_create_new") ) ));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $permissions = intval(getvar("permissions"));
    $membergroupid = intval(getvar("membergroupid"));
    $type = trim(getvar("type"));
    $quickPermissions = intval(getvar("quickPermissions"));
    $defaultTheme = aaaaff();
    $aaaags = ROOTPATH . "styles/" . $defaultTheme . "/forums/forum_icons/";
    $forumIconsFullURL = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/forums/forum_icons/";
    if( isset($_POST["displayorder"]) )
    {
        foreach( $_POST["displayorder"] as $forumID => $displayorder )
        {
            $forumID = intval($forumID);
            $displayorder = intval($displayorder);
            $TSUE["TSUE_Database"]->update("tsue_forums", array( "displayorder" => $displayorder ), "forumid=" . $TSUE["TSUE_Database"]->escape($forumID));
        }
        logadminaction(get_phrase("forums_forum_has_been_updated"));
        handlerebuildcaches(false);
        header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
        exit();
    }
    else
    {
        if( $edit || $new )
        {
            $Forum = array( "forumid" => 0, "parentid" => -1, "title" => "", "description" => "", "icon" => "1.png", "displayorder" => "", "password" => "", "external_link" => "", "last_post_info" => "" );
            $aaaaam = "";
            if( $edit )
            {
                $Forum = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($edit));
                if( !$Forum )
                {
                    return errormessage(get_phrase("message_content_error"));
                }

                $aaaaam = array( "edit" => $edit );
                addbreadcrumb(array( get_phrase("button_edit") . ": " . $Forum["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
            }
            else
            {
                addbreadcrumb(array( get_phrase("forums_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
            }

            if( isset($_POST["Forum"]) )
            {
                $Forum = $_POST["Forum"];
                $usePassword = (isset($_POST["usePassword"]) && $_POST["usePassword"] == 1 ? true : false);
                if( !$Forum["title"] )
                {
                    $formErrors[] = get_phrase("forums_title_error");
                }

                if( !isset($formErrors) )
                {
                    $buildQuery = array( "parentid" => $Forum["parentid"], "title" => $Forum["title"], "description" => $Forum["description"], "icon" => $Forum["icon"], "displayorder" => intval($Forum["displayorder"]), "external_link" => $Forum["external_link"], "last_post_info" => "" );
                    if( $Forum["password"] && $usePassword )
                    {
                        $buildQuery["password"] = sha1($Forum["password"]);
                    }
                    else
                    {
                        if( !$usePassword )
                        {
                            $buildQuery["password"] = "";
                        }

                    }

                    if( $edit )
                    {
                        $TSUE["TSUE_Database"]->update("tsue_forums", $buildQuery, "forumid=" . $TSUE["TSUE_Database"]->escape($edit));
                        $Forum["forumid"] = $edit;
                    }
                    else
                    {
                        $TSUE["TSUE_Database"]->insert("tsue_forums", $buildQuery);
                        $Forum["forumid"] = $TSUE["TSUE_Database"]->insert_id();
                        aaaagt($Forum["forumid"]);
                    }

                    logadminaction(get_phrase("forums_forum_has_been_updated", $Forum["title"] . " (" . $Forum["forumid"] . ")"));
                    $HTML .= successmessage(get_phrase("message_saved"));
                    $updateDone = true;
                    handlerebuildcaches(false);
                }
                else
                {
                    $HTML .= errormessage(implode("<br />", $formErrors));
                }

            }

            if( !isset($updateDone) )
            {
                $inputbox = inputbox("Forum[title]", $Forum["title"]);
                $formContents = aaaaan(get_phrase("forums_forum_title"), $inputbox);
                $inputbox = inputbox("Forum[description]", $Forum["description"]);
                $formContents .= aaaaan(get_phrase("forums_forum_description"), $inputbox);
                $inputbox = inputbox("Forum[displayorder]", $Forum["displayorder"], "text veryTinyText");
                $formContents .= aaaaan(get_phrase("forums_forum_displayorder"), $inputbox);
                $aaaagu = aaaagv("Forum[parentid]", $Forum["parentid"], (isset($Forum["forumid"]) ? $Forum["forumid"] : 0));
                $formContents .= aaaaan(get_phrase("forums_parent_forum"), $aaaagu, get_phrase("forums_parent_forum_alt"));
                $inputbox = inputbox("Forum[password]", NULL);
                $formContents .= aaaaan("<label><input type=\"checkbox\" name=\"usePassword\" checked=\"checked\" value=\"1\" class=\"middle\" /> " . get_phrase("forums_forum_password") . "</label>", $inputbox, get_phrase("forums_forum_password_alt"));
                $inputbox = inputbox("Forum[external_link]", $Forum["external_link"]);
                $formContents .= aaaaan(get_phrase("forums_forum_external_link"), $inputbox, get_phrase("forums_forum_external_link_alt"));
                $aaaagw = scandir($aaaags);
                if( 3 < count($aaaagw) )
                {
                    $Icons = "<input type=\"hidden\" name=\"Forum[icon]\" value=\"" . $Forum["icon"] . "\" />";
                    foreach( $aaaagw as $Icon )
                    {
                        if( in_array(file_extension($Icon), array( "jpg", "jpeg", "png", "gif" )) )
                        {
                            $Icons .= "\r\n\t\t\t\t\t\t<div class=\"forumIcon" . (($Forum["icon"] == $Icon ? " selectedForumIcon" : "")) . "\"><img src=\"" . $forumIconsFullURL . $Icon . "\" alt=\"" . $Icon . "\" title=\"" . $Icon . "\" rel=\"" . $Icon . "\" /></div>";
                        }

                    }
                    $Icons .= "\r\n\t\t\t\t<div class=\"clear\"></div>\r\n\t\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\t\t\$(\"div.forumIcon\").on(\"click\", function(e)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\tvar \$this = \$(this), \$hiddenIconInputBox = \$('input[name=\"Forum[icon]\"]'), \$selectedNewIcon = \$this.find(\"img\").attr(\"alt\");\r\n\r\n\t\t\t\t\t\t\$(\"div.forumIcon\").removeClass(\"selectedForumIcon\");\r\n\t\t\t\t\t\t\$this.addClass(\"selectedForumIcon\");\r\n\t\t\t\t\t\t\$hiddenIconInputBox.val(\$selectedNewIcon);\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\t\t\t\t</script>";
                    $formContents .= aaaaan(get_phrase("forum_icon"), $Icons, get_phrase("forum_icon_alt"));
                }

                $HTML .= aaaabg($formContents, $aaaaam);
                return $HTML;
            }

        }

        if( $delete )
        {
            $Forum = $TSUE["TSUE_Database"]->query_result("SELECT parentid, title FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($delete));
            if( $Forum )
            {
                deleteforum($delete);
                if( $Forum["parentid"] == -1 )
                {
                    $subForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($delete));
                    if( $TSUE["TSUE_Database"]->num_rows($subForums) )
                    {
                        while( $subForum = $TSUE["TSUE_Database"]->fetch_assoc($subForums) )
                        {
                            deleteforum($subForum["forumid"]);
                            $deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($subForum["forumid"]));
                            if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) )
                            {
                                while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) )
                                {
                                    deleteforum($deepSubForum["forumid"]);
                                }
                            }

                        }
                    }

                }
                else
                {
                    $deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($delete));
                    if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) )
                    {
                        while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) )
                        {
                            deleteforum($deepSubForum["forumid"]);
                        }
                    }

                }

                logadminaction(get_phrase("forums_forum_has_been_deleted", $Forum["title"] . " (" . $delete . ")"));
                handlerebuildcaches(false);
            }

        }

        if( $permissions )
        {
            $Forum = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($permissions));
            if( !$Forum )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $TITLE = get_phrase("membergroups_forum_permissions") . " : " . $Forum["title"];
            addbreadcrumb(array( get_phrase("membergroups_forum_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;permissions=" . $permissions ));
            $forumPermissions = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums_permissions WHERE forumid = " . $TSUE["TSUE_Database"]->escape($permissions));
            if( !$forumPermissions )
            {
                aaaagt($permissions);
            }

            if( $type == "edit" && $membergroupid )
            {
                $membergroup = $TSUE["TSUE_Database"]->query_result("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups WHERE membergroupid=" . $TSUE["TSUE_Database"]->escape($membergroupid));
                if( !$membergroup )
                {
                    return errormessage(get_phrase("message_content_error"));
                }

                $forumPermissions = $TSUE["TSUE_Database"]->query_result("SELECT permissions FROM tsue_forums_permissions WHERE forumid = " . $TSUE["TSUE_Database"]->escape($permissions) . " AND membergroupid = " . $TSUE["TSUE_Database"]->escape($membergroupid));
                if( !$forumPermissions )
                {
                    return errormessage(get_phrase("message_content_error"));
                }

                $Permissions = unserialize($forumPermissions["permissions"]);
                addbreadcrumb(array( get_phrase("forums_view_permissions") . ": " . $membergroup["groupname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;permissions=" . $permissions . "&amp;type=" . $type . "&amp;membergroupid=" . $membergroupid ));
                if( isset($_POST["Permissions"]) )
                {
                    $newPermissions = serialize($_POST["Permissions"]);
                    $Permissions = $_POST["Permissions"];
                    $buildQuery = array( "forumid" => $permissions, "membergroupid" => $membergroupid, "permissions" => $newPermissions );
                    $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
                    if( $Forum["parentid"] == -1 && isset($_POST["apply_to_subforums"]) && $_POST["apply_to_subforums"] == 1 )
                    {
                        $subForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($permissions));
                        if( $TSUE["TSUE_Database"]->num_rows($subForums) )
                        {
                            while( $subForum = $TSUE["TSUE_Database"]->fetch_assoc($subForums) )
                            {
                                $buildQuery = array( "forumid" => $subForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $newPermissions );
                                $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
                                $deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($subForum["forumid"]));
                                if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) )
                                {
                                    while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) )
                                    {
                                        $buildQuery = array( "forumid" => $deepSubForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $newPermissions );
                                        $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
                                    }
                                }

                            }
                        }

                    }

                    logadminaction(get_phrase("forums_forum_permissions_has_been_updated", $Forum["title"] . " (" . $permissions . ")"));
                    $HTML .= successmessage(get_phrase("message_saved"));
                    handlerebuildcaches(false);
                }

                $aaaagx = aaaago($Permissions, $Forum["parentid"]);
                $HTML .= "<h3>" . $Forum["title"] . "</h3>" . aaaabg($aaaagx["0"], array(  ), $aaaagx["1"]);
                return $HTML;
            }

            $aaaagy = "";
            $membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups ORDER BY membergroupid ASC");
            while( $membergroup = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) )
            {
                $aaaagz = aaaaae(array( "permissions=" . $Forum["forumid"] . "&type=edit&membergroupid=" . $membergroup["membergroupid"] => array( "phrase" => get_phrase("forums_view_permissions") ) ));
                $aaaagy .= "<li>[" . $aaaagz . "] " . getmembername($membergroup["groupname"], $membergroup["groupstyle"]) . "</li>";
            }
            $aaaaha = aaaaae(array( "edit=" . $Forum["forumid"] => array( "phrase" => $Forum["title"] ) ));
            return createtable($TITLE, "\r\n\t\t<tr>\r\n\t\t\t<td>\r\n\t\t\t\t<ul style=\"line-height: 2;\">\r\n\t\t\t\t\t<li>\r\n\t\t\t\t\t\t" . $aaaaha . "\r\n\t\t\t\t\t\t<ul>" . $aaaagy . "</ul>\r\n\t\t\t\t\t</li>\r\n\t\t\t\t</ul>\r\n\t\t\t</td>\r\n\t\t</tr>");
        }

        if( $quickPermissions )
        {
            $formErrors = array(  );
            $membergroups = array(  );
            $HTML = "";
            $Permissions = aaaahb();
            $Forum = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($quickPermissions));
            if( !$Forum )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $TITLE = get_phrase("quick_forum_permissions") . " : " . $Forum["title"];
            addbreadcrumb(array( get_phrase("quick_forum_permissions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;quickPermissions=" . $quickPermissions ));
            if( ispost() && isset($_POST["save_options"]) )
            {
                $membergroups = (isset($_POST["membergroups"]) ? $_POST["membergroups"] : "");
                $Permissions = (isset($_POST["Permissions"]) ? $_POST["Permissions"] : "");
                if( !$membergroups )
                {
                    $formErrors[] = get_phrase("select_membergroups_to_apply_perms");
                }

                if( $formErrors )
                {
                    $HTML .= errormessage(implode("<br />", $formErrors));
                }
                else
                {
                    $aaaahc = serialize($Permissions);
                    foreach( $membergroups as $membergroupid )
                    {
                        $buildQuery = array( "forumid" => $quickPermissions, "membergroupid" => $membergroupid, "permissions" => $aaaahc );
                        $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
                        if( $Forum["parentid"] == -1 && isset($_POST["apply_to_subforums"]) && $_POST["apply_to_subforums"] == 1 )
                        {
                            $subForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($quickPermissions));
                            if( $TSUE["TSUE_Database"]->num_rows($subForums) )
                            {
                                while( $subForum = $TSUE["TSUE_Database"]->fetch_assoc($subForums) )
                                {
                                    $buildQuery = array( "forumid" => $subForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $aaaahc );
                                    $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
                                    $deepSubForums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums WHERE parentid = " . $TSUE["TSUE_Database"]->escape($subForum["forumid"]));
                                    if( $TSUE["TSUE_Database"]->num_rows($deepSubForums) )
                                    {
                                        while( $deepSubForum = $TSUE["TSUE_Database"]->fetch_assoc($deepSubForums) )
                                        {
                                            $buildQuery = array( "forumid" => $deepSubForum["forumid"], "membergroupid" => $membergroupid, "permissions" => $aaaahc );
                                            $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
                                        }
                                    }

                                }
                            }

                        }

                    }
                    logadminaction(get_phrase("forums_forum_permissions_has_been_updated", $Forum["title"] . " (" . $permissions . ")"));
                    $HTML .= successmessage(get_phrase("message_saved"));
                    handlerebuildcaches(false);
                }

            }

            $Usergroups = aaaaaw("membergroups[]", $membergroups);
            $formContents = aaaaan(get_phrase("select_membergroups_to_apply_perms"), $Usergroups);
            $aaaagx = aaaago($Permissions, $Forum["parentid"]);
            $formContents .= $aaaagx["0"];
            $HTML .= "<h3>" . $TITLE . "</h3>" . aaaabg($formContents, array(  ), $aaaagx["1"]);
            return $HTML;
        }

        $Forums = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums ORDER BY displayorder ASC");
        if( !$TSUE["TSUE_Database"]->num_rows($Forums) )
        {
            $tableContents = errormessage(get_phrase("no_results_found"));
        }
        else
        {
            $forumCategories = $subForums = array(  );
            while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) )
            {
                if( $Forum["parentid"] == -1 )
                {
                    $forumCategories[] = $Forum;
                }
                else
                {
                    $subForums[$Forum["parentid"]][] = $Forum;
                }

            }
            $tableContents = "";
            foreach( $forumCategories as $Forum )
            {
                $tableContents .= aaaahd($Forum, false, false, $forumIconsFullURL);
                if( isset($subForums[$Forum["forumid"]]) )
                {
                    foreach( $subForums[$Forum["forumid"]] as $subForum )
                    {
                        $tableContents .= aaaahd($subForum, true, false, $forumIconsFullURL);
                        if( isset($subForums[$subForum["forumid"]]) )
                        {
                            foreach( $subForums[$subForum["forumid"]] as $deepSubForum )
                            {
                                $tableContents .= aaaahd($deepSubForum, true, true, $forumIconsFullURL);
                            }
                        }

                    }
                }

            }
            $tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
        }

        $HTML .= aaaabn(createtable(get_phrase("menu_forum_manager"), $tableContents, 3, $aaaagr));
        return $HTML;
    }

}

function aaaaai()
{
    global $TSUE;
    $formErrors = array(  );
    $membergroups = array(  );
    $forums = array(  );
    $HTML = "";
    $Permissions = aaaahb();
    if( ispost() && isset($_POST["save_options"]) )
    {
        $forums = (isset($_POST["forums"]) ? $_POST["forums"] : "");
        $membergroups = (isset($_POST["membergroups"]) ? $_POST["membergroups"] : "");
        $Permissions = (isset($_POST["Permissions"]) ? $_POST["Permissions"] : "");
        if( !$forums )
        {
            $formErrors[] = get_phrase("select_forums_to_apply_permissions");
        }

        if( !$membergroups )
        {
            $formErrors[] = get_phrase("select_membergroups_to_apply_perms");
        }

        if( $formErrors )
        {
            $HTML .= errormessage(implode("<br />", $formErrors));
        }
        else
        {
            $aaaahc = serialize($Permissions);
            foreach( $forums as $forumid )
            {
                $forumid = intval($forumid);
                if( $forumid )
                {
                    $Forum = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_forums WHERE forumid = " . $TSUE["TSUE_Database"]->escape($forumid));
                    if( $Forum )
                    {
                        foreach( $membergroups as $membergroupid )
                        {
                            $membergroupid = intval($membergroupid);
                            if( $membergroupid )
                            {
                                $buildQuery = array( "forumid" => $forumid, "membergroupid" => $membergroupid, "permissions" => $aaaahc );
                                $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
                            }

                        }
                        logadminaction(get_phrase("forums_forum_permissions_has_been_updated", $Forum["title"] . " (" . $forumid . ")"));
                    }

                }

            }
            $HTML .= successmessage(get_phrase("message_saved"));
            handlerebuildcaches(false);
        }

    }

    $Forums = aaaabc("forums[]", $forums);
    $formContents = aaaaan(get_phrase("select_forums_to_apply_permissions"), $Forums);
    $Usergroups = aaaaaw("membergroups[]", $membergroups);
    $formContents .= aaaaan(get_phrase("select_membergroups_to_apply_perms"), $Usergroups);
    $aaaagx = aaaago($Permissions);
    $formContents .= $aaaagx["0"];
    $HTML .= aaaabg($formContents);
    return $HTML;
}

function aaaahd($Forum, $isSubForum = false, $isDeepSubForum = false, $forumIconsFullURL)
{
    global $TSUE;
    $aaaaha = aaaaae(array( "edit=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/edit" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("button_edit")) ) ));
    $aaaahe = aaaaae(array( "permissions=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/permissions" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("forums_view_permissions")) ) ));
    $aaaahf = aaaaae(array( "quickPermissions=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/quickpermissions" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("forums_set_quick_permissions")) ) ));
    $aaaahg = aaaaae(array( "delete=" . $Forum["forumid"] => array( "phrase" => getimage("buttons/delete" . (($isSubForum ? "_s" : "")) . ".png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") . ((!$isSubForum ? get_phrase("pages_page_delete_warning") : "")) ) ));
    $forumIcon = "";
    if( $Forum["icon"] )
    {
        $forumIcon = "<img src=\"" . $forumIconsFullURL . $Forum["icon"] . "\" alt=\"\" title=\"\" style=\"width: 16px; margin-right: 2px;\" />";
    }

    $pageLink = "\r\n\t<span style=\"padding-left: 9px;\">\r\n\t\t<a href=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/?p=forums&amp;pid=11&amp;fid=" . $Forum["forumid"] . "\" target=\"_blank\" style=\"color: #ccc; font-weight: normal; font-size: 10px;\">?p=forums&amp;pid=11&amp;fid=" . $Forum["forumid"] . "</a>\r\n\t</span>";
    if( $isDeepSubForum )
    {
        $tableContents = aaaaag(array( array( "width" => "", "text" => "<span class=\"forumDeepSub\">" . $forumIcon . $Forum["title"] . $pageLink . "</span>" ), array( "width" => "100", "text" => inputbox("displayorder[" . $Forum["forumid"] . "]", $Forum["displayorder"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "400", "text" => $aaaaha . $aaaahe . $aaaahf . $aaaahg, "align" => "right" ) ));
    }
    else
    {
        if( $isSubForum )
        {
            $tableContents = aaaaag(array( array( "width" => "", "text" => "<span class=\"forumSub\">" . $forumIcon . $Forum["title"] . $pageLink . "</span>" ), array( "width" => "100", "text" => inputbox("displayorder[" . $Forum["forumid"] . "]", $Forum["displayorder"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "400", "text" => $aaaaha . $aaaahe . $aaaahf . $aaaahg, "align" => "right" ) ));
        }
        else
        {
            $tableContents = aaaaag(array( array( "width" => "", "text" => "<span class=\"forumMain\">" . $forumIcon . $Forum["title"] . $pageLink . "</span>" ), array( "width" => "100", "text" => inputbox("displayorder[" . $Forum["forumid"] . "]", $Forum["displayorder"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "400", "text" => $aaaaha . $aaaahe . $aaaahf . $aaaahg, "align" => "right" ) ));
        }

    }

    return $tableContents;
}

function aaaagt($forumid = 0)
{
    global $TSUE;
    if( !$forumid )
    {
        return false;
    }

    $aaaahh = aaaahb();
    $membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, permissions FROM tsue_membergroups ORDER BY membergroupid ASC");
    while( $membergroup = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) )
    {
        $groupPerm = unserialize($membergroup["permissions"]);
        $aaaahi = serialize((isset($groupPerm["canlogin_admincp"]) && $groupPerm["canlogin_admincp"] ? $aaaahh["adminForumPermissions"] : $aaaahh["defaultForumPermissions"]));
        $buildQuery = array( "forumid" => $forumid, "membergroupid" => $membergroup["membergroupid"], "permissions" => $aaaahi );
        $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
    }
}

function deleteforum($forumid = 0)
{
    global $TSUE;
    checkdemomode();
    if( !$forumid )
    {
        return false;
    }

    $TSUE["TSUE_Database"]->delete("tsue_forums", "forumid = " . $TSUE["TSUE_Database"]->escape($forumid));
    $TSUE["TSUE_Database"]->delete("tsue_forums_permissions", "forumid = " . $TSUE["TSUE_Database"]->escape($forumid));
    $Threads = $TSUE["TSUE_Database"]->query("SELECT threadid FROM tsue_forums_threads WHERE forumid=" . $TSUE["TSUE_Database"]->escape($forumid));
    if( $TSUE["TSUE_Database"]->num_rows($Threads) )
    {
        while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) )
        {
            $threadCache[] = $Thread["threadid"];
        }
        $postCache = array(  );
        $aaaahj = array(  );
        $Posts = $TSUE["TSUE_Database"]->query("SELECT postid, memberid FROM tsue_forums_posts WHERE threadid IN (" . implode(",", $threadCache) . ")");
        if( $TSUE["TSUE_Database"]->num_rows($Posts) )
        {
            while( $Post = $TSUE["TSUE_Database"]->fetch_assoc($Posts) )
            {
                if( isset($aaaahj[$Post["memberid"]]) )
                {
                    $aaaahj[$Post["memberid"]] += 1;
                }
                else
                {
                    $aaaahj[$Post["memberid"]] = 1;
                }

                $postCache[] = $Post["postid"];
            }
        }

        if( $aaaahj )
        {
            foreach( $aaaahj as $memberid => $postCount )
            {
                $BuildQuery = array( "total_posts" => array( "escape" => 0, "value" => "IF(total_posts>" . $postCount . ", total_posts-" . $postCount . ", 0)" ) );
                $TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $memberid);
            }
        }

        $Attachments = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type ='posts' AND content_id IN (" . implode(",", $postCache) . ")");
        if( $TSUE["TSUE_Database"]->num_rows($Attachments) )
        {
            while( $Attachment = $TSUE["TSUE_Database"]->fetch_assoc($Attachments) )
            {
                $filePath = DATAPATH . "posts/" . $Attachment["filename"];
                @unlink($filePath);
            }
            $TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type ='posts' AND content_id IN (" . implode(",", $postCache) . ")");
        }

        $TSUE["TSUE_Database"]->delete("tsue_forums_posts", "threadid IN (" . implode(",", $threadCache) . ")");
        $TSUE["TSUE_Database"]->delete("tsue_forums_thread_subscribe", "threadid IN (" . implode(",", $threadCache) . ")");
    }

    $TSUE["TSUE_Database"]->delete("tsue_forums_threads", "forumid = " . $TSUE["TSUE_Database"]->escape($forumid));
    return true;
}

function threadprefixes()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $aaaahk = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_thread_prefix") ) ));
    $new = intval(getvar("new"));
    $edit = intval(getvar("edit"));
    $delete = intval(getvar("delete"));
    if( $edit || $new )
    {
        $Prefix = array( "pname" => "", "cssname" => "pink", "viewpermissions" => array(  ) );
        $aaaaam = "";
        if( $edit )
        {
            $Prefix = $TSUE["TSUE_Database"]->query_result("SELECT pname, cssname, viewpermissions FROM tsue_forums_thread_prefixes WHERE pid = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Prefix )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
            if( !$Prefix["viewpermissions"] )
            {
                $Prefix["viewpermissions"] = array(  );
            }
            else
            {
                $Prefix["viewpermissions"] = unserialize($Prefix["viewpermissions"]);
            }

            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Prefix["pname"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        }
        else
        {
            addbreadcrumb(array( get_phrase("create_new_thread_prefix") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
        }

        if( isset($_POST["Prefix"]) )
        {
            $Prefix = $_POST["Prefix"];
            if( !isset($Prefix["viewpermissions"]) || !$Prefix["viewpermissions"] )
            {
                $Prefix["viewpermissions"] = array(  );
            }

            if( !$Prefix["pname"] )
            {
                $formErrors[] = get_phrase("message_required_fields_error");
            }
            else
            {
                if( !$Prefix["cssname"] )
                {
                    $formErrors[] = get_phrase("message_required_fields_error");
                }

            }

            if( !isset($formErrors) )
            {
                $buildQuery = array( "pname" => $Prefix["pname"], "cssname" => $Prefix["cssname"], "viewpermissions" => ($Prefix["viewpermissions"] ? serialize($Prefix["viewpermissions"]) : "") );
                if( $edit )
                {
                    $TSUE["TSUE_Database"]->update("tsue_forums_thread_prefixes", $buildQuery, "pid=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $TSUE["TSUE_Database"]->insert("tsue_forums_thread_prefixes", $buildQuery);
                }

                logadminaction(get_phrase("prefix_has_been_updated", $Prefix["pname"] . " (" . $edit . ")"));
                $HTML .= successmessage(get_phrase("message_saved"));
                handlerebuildcaches(false);
                handleprune(false);
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $inputbox = inputbox("Prefix[pname]", $Prefix["pname"]);
            $formContents = aaaaan(get_phrase("forums_title"), $inputbox);
            $selectbox = "\r\n\t\t\t<label>\r\n\t\t\t\t<input type=\"radio\" name=\"Prefix[cssname]\" value=\"pink\"" . (($Prefix["cssname"] == "pink" ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t<span class=\"prefixButton pink\">Test</span> \r\n\t\t\t</label>\r\n\t\t\t<label>\r\n\t\t\t\t<input type=\"radio\" name=\"Prefix[cssname]\" value=\"green\"" . (($Prefix["cssname"] == "green" ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t<span class=\"prefixButton green\">Test</span> \r\n\t\t\t</label>\r\n\t\t\t<label>\r\n\t\t\t\t<input type=\"radio\" name=\"Prefix[cssname]\" value=\"red\"" . (($Prefix["cssname"] == "red" ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t<span class=\"prefixButton red\">Test</span> \r\n\t\t\t</label>\r\n\t\t\t<label>\r\n\t\t\t\t<input type=\"radio\" name=\"Prefix[cssname]\" value=\"orange\"" . (($Prefix["cssname"] == "orange" ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t<span class=\"prefixButton orange\">Test</span> \r\n\t\t\t</label>\r\n\t\t\t<label>\r\n\t\t\t\t<input type=\"radio\" name=\"Prefix[cssname]\" value=\"blue\"" . (($Prefix["cssname"] == "blue" ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t<span class=\"prefixButton blue\">Test</span> \r\n\t\t\t</label>\r\n\t\t\t<label>\r\n\t\t\t\t<input type=\"radio\" name=\"Prefix[cssname]\" value=\"yellow\"" . (($Prefix["cssname"] == "yellow" ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t<span class=\"prefixButton yellow\">Test</span> \r\n\t\t\t</label>\r\n\t\t\t<label>\r\n\t\t\t\t<input type=\"radio\" name=\"Prefix[cssname]\" value=\"black\"" . (($Prefix["cssname"] == "black" ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t<span class=\"prefixButton black\">Test</span> \r\n\t\t\t</label>\r\n\t\t\t";
            $formContents .= aaaaan(get_phrase("display_styling"), $selectbox);
            $Usergroups = aaaaaw("Prefix[viewpermissions][]", $Prefix["viewpermissions"]);
            $formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all"));
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    if( $delete )
    {
        $Prefix = $TSUE["TSUE_Database"]->query_result("SELECT pname FROM tsue_forums_thread_prefixes WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Prefix )
        {
            $TSUE["TSUE_Database"]->delete("tsue_forums_thread_prefixes", "pid = " . $TSUE["TSUE_Database"]->escape($delete));
            $TSUE["TSUE_Database"]->update("tsue_forums_thread_prefixes", array( "pid" => 0 ), "pid = " . $TSUE["TSUE_Database"]->escape($delete));
            logadminaction(get_phrase("prefix_has_been_deleted", $Prefix["pname"] . " (" . $delete . ")"));
            handlerebuildcaches(false);
            handleprune(false);
        }

    }

    $Prefixes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums_thread_prefixes ORDER BY pname ASC");
    if( $TSUE["TSUE_Database"]->num_rows($Prefixes) )
    {
        while( $Prefix = $TSUE["TSUE_Database"]->fetch_assoc($Prefixes) )
        {
            $aaaahl = aaaaae(array( "edit=" . $Prefix["pid"] => array( "phrase" => $Prefix["pname"] ) ));
            $aaaahm = aaaaae(array( "delete=" . $Prefix["pid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<span class=\"prefixButton " . $Prefix["cssname"] . "\">" . $Prefix["cssname"] . "</span> " . $aaaahl ), array( "width" => "15%", "text" => $aaaahm, "align" => "right" ) ));
        }
    }

    $HTML .= createtable(get_phrase("thread_prefixes"), $tableContents, 2, $aaaahk);
    return $HTML;
}

function rebuildforumcounters()
{
    return "\r\n\t<div class=\"ajaxLoaderDiv\" id=\"forumCountersUpdating\">\r\n\t\t" . getimage("ajax/ajax-loader.gif", NULL, "middle") . "\r\n\t\t" . get_phrase("please_wait_while_forum_counters_are_updated") . "\r\n\t</div>\r\n\t\r\n\t<script type=\"text/javascript\">\r\n\t\tsetTimeout(function()\r\n\t\t{\r\n\t\t\t\$.ajax\r\n\t\t\t({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\tdata: \"isAjax=1&action=rebuildForumCounters\",\r\n\t\t\t\tsuccess: function(result)\r\n\t\t\t\t{\r\n\t\t\t\t\t\$(\"#forumCountersUpdating\").css({\"text-align\": \"left\"}).html(result)\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}, 1000);\r\n\t</script>";
}

function handlethemes()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $themeid = intval(getvar("themeid"));
    $enable_disable = intval(getvar("enable_disable"));
    $type = trim(getvar("type"));
    $template = intval(getvar("template"));
    $editTemplate = intval(getvar("editTemplate"));
    $deleteTemplate = intval(getvar("deleteTemplate"));
    $newTemplate = intval(getvar("newTemplate"));
    $revertTemplate = intval(getvar("revertTemplate"));
    $style = intval(getvar("style"));
    $editStyle = intval(getvar("editStyle"));
    $newStyle = intval(getvar("newStyle"));
    $revertStyle = intval(getvar("revertStyle"));
    $searchPhrase = trim(getvar("searchPhrase", "", false));
    $export = intval(getvar("export"));
    $import = intval(getvar("import"));
    $WHERE = "";
    if( $import )
    {
        if( !extension_loaded("zip") )
        {
            return errormessage(get_phrase("an_error_hash_occurded") . ": (i1) http://php.net/manual/en/book.zip.php");
        }

        checkdemomode();
        addbreadcrumb(array( get_phrase("import_a_theme") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;import=1" ));
        if( isset($_FILES["theme"]) )
        {
            $importTheme = $_FILES["theme"];
            if( $importTheme["error"] != UPLOAD_ERR_OK )
            {
                switch( $importTheme["error"] )
                {
                    case 1:
                        $formErrors[] = get_phrase("upload_error1");
                        break;
                    case 4:
                        $formErrors[] = get_phrase("upload_error3");
                        break;
                    default:
                        $formErrors[] = get_phrase("an_error_hash_occurded") . ": (UE-" . $importTheme["error"] . ")";
                        break;
                }
            }
            else
            {
                if( file_extension($importTheme["name"]) != "zip" )
                {
                    $formErrors[] = get_phrase("upload_error6", "zip");
                }
                else
                {
                    $zip = new ZipArchive();
                    $res = $zip->open($importTheme["tmp_name"]);
                    if( $res === true )
                    {
                        $tmpFolder = DATAPATH . "cache/tmp_theme_folder/";
                        if( is_dir($tmpFolder) )
                        {
                            rrmdir($tmpFolder);
                        }

                        if( !mkdir($tmpFolder, 511) )
                        {
                            $formErrors[] = get_phrase("an_error_hash_occurded") . ": (i3)";
                        }
                        else
                        {
                            $zip->extractTo($tmpFolder);
                            $zip->close();
                            $aaaahn = $tmpFolder . "install_tsue_theme.xml";
                            if( !file_exists($aaaahn) )
                            {
                                $formErrors[] = get_phrase("pls_install_a_valid_theme");
                            }
                            else
                            {
                                $XML = simplexml_load_file($aaaahn);
                                if( !$XML )
                                {
                                    $formErrors[] = get_phrase("an_error_hash_occurded") . ": (i4) " . $aaaahn;
                                }
                                else
                                {
                                    $checkTheme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themename = " . $TSUE["TSUE_Database"]->escape($XML->themename));
                                    if( $checkTheme )
                                    {
                                        $formErrors[] = get_phrase("theme_manager_theme_name_alt");
                                    }
                                    else
                                    {
                                        $buildQuery = array( "themename" => $XML->themename, "viewpermissions" => $XML->viewpermissions, "active" => $XML->active );
                                        if( $TSUE["TSUE_Database"]->insert("tsue_themes", $buildQuery) )
                                        {
                                            $themeID = $TSUE["TSUE_Database"]->insert_id();
                                            foreach( $XML->styles->style as $style )
                                            {
                                                $buildQuery = array( "stylename" => $style->stylename, "themeid" => $themeID, "css" => $style->css_content, "last_updated" => $style->last_updated, "orj_css" => $style->orj_css_content );
                                                $TSUE["TSUE_Database"]->insert("tsue_styles", $buildQuery);
                                            }
                                            foreach( $XML->templates->template as $template )
                                            {
                                                $buildQuery = array( "themeid" => $themeID, "templatename" => $template->templatename, "template" => aaaaho($template->template_content), "last_updated" => $template->last_updated, "orj_template" => aaaaho($template->orj_template_content) );
                                                $TSUE["TSUE_Database"]->insert("tsue_templates", $buildQuery);
                                            }
                                            if( is_dir(DATAPATH . "cache/" . $XML->themename) )
                                            {
                                                rrmdir(DATAPATH . "cache/" . $XML->themename);
                                            }

                                            if( !rename($tmpFolder, DATAPATH . "cache/" . $XML->themename) )
                                            {
                                                $aaaahp = "I can not rename the folder name. Please rename this: " . $tmpFolder . " with this: " . DATAPATH . "cache/" . $XML->themename . " and then move " . DATAPATH . "cache/" . $XML->themename . " into " . ROOTPATH . "styles/";
                                            }
                                            else
                                            {
                                                if( !is_writable(ROOTPATH . "styles") )
                                                {
                                                    $aaaahp = ROOTPATH . "styles is not writable. Please move this: " . DATAPATH . "cache/" . $XML->themename . " to: " . ROOTPATH . "styles/";
                                                }
                                                else
                                                {
                                                    if( !copy_directory(DATAPATH . "cache/" . $XML->themename, ROOTPATH . "styles/" . $XML->themename) )
                                                    {
                                                        $aaaahp = "I can not move the folder. Please move this: " . DATAPATH . "cache/" . $XML->themename . " to: " . ROOTPATH . "styles/";
                                                    }
                                                    else
                                                    {
                                                        if( !is_dir(ROOTPATH . "styles/" . $XML->themename) )
                                                        {
                                                            $aaaahp = "I can not move the folder. Please move this: " . DATAPATH . "cache/" . $XML->themename . " to: " . ROOTPATH . "styles/";
                                                        }
                                                        else
                                                        {
                                                            rrmdir(DATAPATH . "cache/" . $XML->themename);
                                                            unlink(ROOTPATH . "styles/" . $XML->themename . "/install_tsue_theme.xml");
                                                        }

                                                    }

                                                }

                                            }

                                            $phrase = get_phrase("theme_manager_theme_imported", $XML->themename);
                                            if( isset($aaaahp) )
                                            {
                                                if( is_file(ROOTPATH . "styles/" . $XML->themename . "/install_tsue_theme.xml") )
                                                {
                                                    unlink(ROOTPATH . "styles/" . $XML->themename . "/install_tsue_theme.xml");
                                                }

                                                if( is_file(DATAPATH . "cache/" . $XML->themename) )
                                                {
                                                    unlink(DATAPATH . "cache/" . $XML->themename . "/install_tsue_theme.xml");
                                                }

                                                if( is_file($aaaahn) )
                                                {
                                                    unlink($aaaahn);
                                                }

                                                $phrase .= "<br /><br />" . $aaaahp;
                                            }

                                            logadminaction($phrase);
                                            $HTML .= successmessage($phrase);
                                            handlerebuildcaches(false);
                                            handleprune(false);
                                            $importDone = true;
                                        }
                                        else
                                        {
                                            $formErrors[] = get_phrase("database_error") . ": (i5)";
                                        }

                                    }

                                }

                            }

                        }

                    }
                    else
                    {
                        $formErrors[] = get_phrase("an_error_hash_occurded") . ": (i2)";
                    }

                }

            }

            if( isset($formErrors) )
            {
                if( isset($tmpFolder) && is_dir($tmpFolder) )
                {
                    rrmdir($tmpFolder);
                }

                if( isset($XML->themename) && is_dir(DATAPATH . "cache/" . $XML->themename) )
                {
                    rrmdir(DATAPATH . "cache/" . $XML->themename);
                }

                if( isset($XML->themename) && is_dir(ROOTPATH . "styles/" . $XML->themename) )
                {
                    rrmdir(ROOTPATH . "styles/" . $XML->themename);
                }

                if( isset($themeID) )
                {
                    $TSUE["TSUE_Database"]->delete("tsue_themes", "themeid = " . $TSUE["TSUE_Database"]->escape($themeID));
                    $TSUE["TSUE_Database"]->delete("tsue_templates", "themeid = " . $TSUE["TSUE_Database"]->escape($themeID));
                    $TSUE["TSUE_Database"]->delete("tsue_styles", "themeid = " . $TSUE["TSUE_Database"]->escape($themeID));
                }

                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($importDone) )
        {
            $aaaacr = aaaacs("theme");
            $formContents = aaaaan(get_phrase("theme_manager_import_from_uploaded_file"), $aaaacr);
            $HTML .= aaaabg($formContents);
            $HTML .= "\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\t\$(\"#overlay_form\").submit(function(e)\r\n\t\t\t\t{\r\n\t\t\t\t\t\$(this).hide();\r\n\t\t\t\t\t\$('<div style=\"font-size: 20px; font-weight: bold; color: red; border: 1px solid #ddd; padding: 15px; text-align: center;\"> " . getimage("ajax/ajax-loader.gif") . "&nbsp;&nbsp;" . get_phrase("please_wait_uploading") . "</div>').appendTo(\"#mainText\");\r\n\t\t\t\t});\r\n\t\t\t</script>";
            return $HTML;
        }

    }

    if( $export )
    {
        checkdemomode();
        if( !extension_loaded("zip") )
        {
            return errormessage(get_phrase("an_error_hash_occurded") . ": (e1) http://php.net/manual/en/book.zip.php");
        }

        $Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename, viewpermissions, active FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($export));
        if( !$Theme )
        {
            return errormessage(get_phrase("message_content_error") . " (e2)");
        }

        $Styles = $TSUE["TSUE_Database"]->query("SELECT stylename, css, last_updated, orj_css FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($export));
        if( !$Styles )
        {
            return errormessage(get_phrase("message_content_error") . " (e3)");
        }

        $Templates = $TSUE["TSUE_Database"]->query("SELECT templatename, template, last_updated, orj_template FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($export));
        if( !$Templates )
        {
            return errormessage(get_phrase("message_content_error") . " (e4)");
        }

        $xmlOutput = "<?xml version=\"1.0\" encoding=\"" . $TSUE["TSUE_Language"]["charset"] . "\"?>\r\n<tsuetheme>\r\n\t<themename>" . $Theme["themename"] . "</themename>\r\n\t<viewpermissions>" . $Theme["viewpermissions"] . "</viewpermissions>\r\n\t<active>" . $Theme["active"] . "</active>";
        $xmlOutput .= "\r\n\t<styles>";
        while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($Styles) )
        {
            $xmlOutput .= "\r\n\t\t<style>\r\n\t\t\t<stylename>" . $Style["stylename"] . "</stylename>\r\n\t\t\t<css_content><![CDATA[" . $Style["css"] . "]]></css_content>\r\n\t\t\t<last_updated>" . $Style["last_updated"] . "</last_updated>\r\n\t\t\t<orj_css_content><![CDATA[" . $Style["orj_css"] . "]]></orj_css_content>\r\n\t\t</style>";
        }
        $xmlOutput .= "\r\n\t</styles>";
        $xmlOutput .= "\r\n\t<templates>";
        while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($Templates) )
        {
            $xmlOutput .= "\r\n\t\t<template>\r\n\t\t\t<templatename>" . $Template["templatename"] . "</templatename>\r\n\t\t\t<template_content><![CDATA[" . aaaahq($Template["template"]) . "]]></template_content>\r\n\t\t\t<last_updated>" . $Template["last_updated"] . "</last_updated>\r\n\t\t\t<orj_template_content><![CDATA[" . aaaahq($Template["orj_template"]) . "]]></orj_template_content>\r\n\t\t</template>";
        }
        $xmlOutput .= "\r\n\t</templates>";
        $xmlOutput .= "\r\n</tsuetheme>";
        $xmlOutput = utf8_encode($xmlOutput);
        $aaaahr = safe_names($Theme["themename"]);
        $aaaahs = DATAPATH . "cache/" . $aaaahr . "/";
        $createXMLFile = $aaaahs . "install_tsue_theme.xml";
        if( is_dir($aaaahs) )
        {
            rrmdir($aaaahs);
        }

        if( !is_dir($aaaahs) && !mkdir($aaaahs, 511) )
        {
            return errormessage(get_phrase("an_error_hash_occurded") . ": (e5) " . $aaaahs);
        }

        if( !file_put_contents($createXMLFile, $xmlOutput) )
        {
            return errormessage(get_phrase("an_error_hash_occurded") . ": (e6) " . $createXMLFile);
        }

        $XML = simplexml_load_file($createXMLFile);
        if( !$XML )
        {
            return errormessage(get_phrase("an_error_hash_occurded") . ": (e7) " . $createXMLFile);
        }

        $themeFiles = ROOTPATH . "styles/" . $Theme["themename"] . "/";
        copy_directory($themeFiles, $aaaahs);
        $zipFileName = "tsue_theme_" . V . "_" . $aaaahr . ".zip";
        $createZipFile = DATAPATH . "cache/" . $zipFileName;
        if( is_file($createZipFile) )
        {
            unlink($createZipFile);
        }

        if( !zip($aaaahs, $createZipFile) )
        {
            return errormessage(get_phrase("an_error_hash_occurded") . ": (e8) " . $createZipFile);
        }

        rrmdir($aaaahs);
        downloadfile($createZipFile, $zipFileName);
        unlink($createZipFile);
        exit();
    }

    if( $type == "manageTemplates" && $themeid )
    {
        $Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid));
        if( !$Theme )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        addbreadcrumb(array( get_phrase("theme_manager_manage_templates") . ": " . $Theme["themename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;themeid=" . $themeid . "&amp;type=manageTemplates" ));
        if( $deleteTemplate )
        {
            $Template = $TSUE["TSUE_Database"]->query_result("SELECT templatename FROM tsue_templates WHERE templateid = " . $TSUE["TSUE_Database"]->escape($deleteTemplate));
            if( !$Template )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $TSUE["TSUE_Database"]->delete("tsue_templates", "templateid = " . $TSUE["TSUE_Database"]->escape($deleteTemplate));
            $Phrase = get_phrase("template_x_has_been_deleted", $Template["templatename"]);
            $HTML .= errormessage($Phrase);
            handlerebuildcaches(false);
            handleprune(false);
        }

        if( $revertTemplate )
        {
            $Template = $TSUE["TSUE_Database"]->query_result("SELECT templatename,template FROM tsue_templates WHERE templateid = " . $TSUE["TSUE_Database"]->escape($revertTemplate));
            if( !$Template )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $BuildQuery = array( "template" => array( "escape" => 0, "value" => "orj_template" ) );
            $TSUE["TSUE_Database"]->update("tsue_templates", $BuildQuery, "templateid = " . $TSUE["TSUE_Database"]->escape($revertTemplate));
            $HTML .= successmessage(get_phrase("message_saved"));
            handlerebuildcaches(false);
            handleprune(false);
        }

        if( $searchPhrase )
        {
            $WHERE = " AND (templatename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%' OR template LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%')";
        }

        $Templates = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE . " ORDER BY last_updated DESC, templatename ASC");
        if( !$TSUE["TSUE_Database"]->num_rows($Templates) )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        if( $editTemplate || $newTemplate )
        {
            if( isset($_GET["created"]) && !ispost() )
            {
                $HTML .= successmessage(get_phrase("message_saved"));
            }

            $Template = array( "templatename" => "", "template" => "" );
            $aaaaam = "";
            if( $editTemplate )
            {
                $Template = $TSUE["TSUE_Database"]->query_result("SELECT templatename,template FROM tsue_templates WHERE templateid = " . $TSUE["TSUE_Database"]->escape($editTemplate));
                if( !$Template )
                {
                    return errormessage(get_phrase("message_content_error"));
                }

                $aaaaam = array( "editTemplate" => $editTemplate );
                $aaaaht = $Template["templatename"];
                addbreadcrumb(array( $Template["templatename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;themeid=" . $themeid . "&amp;type=manageTemplates&amp;editTemplate=" . $editTemplate ));
            }
            else
            {
                addbreadcrumb(array( get_phrase("theme_manage_create_new_template") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;themeid=" . $themeid . "&amp;type=manageTemplates&amp;newTemplate=1" ));
            }

            if( isset($_POST["Template"]) )
            {
                $Template = $_POST["Template"];
                if( !$Template["templatename"] || !$Template["template"] )
                {
                    $formErrors[] = get_phrase("message_required_fields_error");
                }

                if( $Template["templatename"] && (!$editTemplate || $editTemplate && $aaaaht != $Template["templatename"]) )
                {
                    $checkTemplate = $TSUE["TSUE_Database"]->query_result("SELECT templatename FROM tsue_templates WHERE templatename = " . $TSUE["TSUE_Database"]->escape($Template["templatename"]) . " AND themeid = " . $TSUE["TSUE_Database"]->escape($themeid));
                    if( $checkTemplate )
                    {
                        $formErrors[] = get_phrase("theme_manager_template_name_alt");
                    }

                }

                if( !isset($formErrors) )
                {
                    $buildQuery = array( "themeid" => $themeid, "templatename" => $Template["templatename"], "template" => $Template["template"], "last_updated" => TIMENOW );
                    if( $editTemplate )
                    {
                        $TSUE["TSUE_Database"]->update("tsue_templates", $buildQuery, "templateid=" . $TSUE["TSUE_Database"]->escape($editTemplate));
                    }
                    else
                    {
                        $buildQuery["orj_template"] = $buildQuery["template"];
                        $TSUE["TSUE_Database"]->insert("tsue_templates", $buildQuery);
                        $aaaahu = $TSUE["TSUE_Database"]->insert_id();
                    }

                    logadminaction(get_phrase("theme_manager_template_updated", $Template["templatename"]));
                    $HTML .= successmessage(get_phrase("message_saved"));
                    handlerebuildcaches(false);
                    handleprune(false);
                    if( !$editTemplate )
                    {
                        header("Location: ?action=" . $TSUE["action"] . "&do=Themes&themeid=" . $themeid . "&type=manageTemplates&editTemplate=" . $aaaahu . "&created=1");
                        exit();
                    }

                    $Templates = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE);
                }
                else
                {
                    $HTML .= errormessage(implode("<br />", $formErrors));
                }

            }

            if( !isset($updateDone) )
            {
                $inputbox = inputbox("Template[templatename]", $Template["templatename"], "text");
                $formContents = aaaaan(get_phrase("theme_manager_template_name"), $inputbox, get_phrase("theme_manager_template_name_alt"));
                $inputbox = textarea("Template[template]", $Template["template"], false, "templateTextarea");
                $formContents .= aaaaan(get_phrase("theme_manager_template_html"), $inputbox);
                $HTML .= aaaabg($formContents, $aaaaam);
                return $HTML;
            }

        }

        $tableContents = "";
        while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($Templates) )
        {
            $aaaahv = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&deleteTemplate=" . $Template["templateid"] . (($searchPhrase ? "&searchPhrase=" . html_clean($searchPhrase) : "")) => array( "phrase" => getimage("buttons/delete_s.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            $aaaahw = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&editTemplate=" . $Template["templateid"] => array( "phrase" => $Template["templatename"] ) ));
            $aaaahx = "";
            if( $Template["template"] != $Template["orj_template"] )
            {
                $aaaahx = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&revertTemplate=" . $Template["templateid"] => array( "phrase" => get_phrase("revert") ) ));
            }

            $last_updated = convert_relative_time($Template["last_updated"]);
            $size = friendly_size(strlen($Template["template"]));
            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaahv . " " . $aaaahw . "<span class=\"smallPassiveText\">" . get_phrase("torrents_peer_last_updated") . ": " . $last_updated . " (" . $size . ")</span>" ), array( "width" => "15%", "text" => "<span class=\"revertTemplate\">" . $aaaahx . "</span>", "align" => "right" ) ));
        }
        $aaaahy = aaaaag(array( array( "width" => "15%", "text" => get_phrase("theme_manager_search_in_templates_keywords"), "align" => "right" ), array( "width" => "85%", "text" => inputbox("searchPhrase", html_clean($searchPhrase), "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
        $HTML .= aaaabn(createtable(get_phrase("theme_manager_search_in_templates"), $aaaahy, 2), NULL, "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageTemplates&search=1");
        $aaaahz = aaaaae(array( "themeid=" . $themeid . "&type=manageTemplates&newTemplate=1" => array( "phrase" => get_phrase("theme_manage_create_new_template") ) ));
        $HTML .= "\r\n\t\t<div style=\"max-height: 500px; overflow: auto; zoom: 1;\">\r\n\t\t\t" . createtable(get_phrase("theme_manager_manage_templates") . " (" . $Theme["themename"] . ")", $tableContents, 2, $aaaahz) . "\r\n\t\t</div>";
        return $HTML;
    }

    if( $type == "manageStyles" && $themeid )
    {
        $Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid));
        if( !$Theme )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        addbreadcrumb(array( get_phrase("theme_manager_manage_styles") . ": " . $Theme["themename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;themeid=" . $themeid . "&amp;type=manageStyles" ));
        if( $searchPhrase )
        {
            $WHERE = " AND (stylename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%' OR css LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($searchPhrase) . "%')";
        }

        if( $revertStyle )
        {
            /*$Style = $TSUE["TSUE_Database"]->query_result("SELECT stylename FROM tsue_styles WHERE styleid = " . $TSUE["TSUE_Database"]->escape($revertStyle));
            if( !$Style )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $BuildQuery = array( "css" => array( "escape" => 0, "value" => "orj_css" ) );
            $TSUE["TSUE_Database"]->update("tsue_styles", $BuildQuery, "styleid = " . $TSUE["TSUE_Database"]->escape($revertStyle));
            $HTML .= successmessage(get_phrase("message_saved"));
            handlerebuildcaches(false);
            handleprune(false);*/
        }

        $Styles = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE . " ORDER BY last_updated DESC");
        if( !$TSUE["TSUE_Database"]->num_rows($Styles) )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        if( $editStyle || $newStyle )
        {
            $Style = array( "stylename" => "", "css" => "" );
            $aaaaam = "";
            if( $editStyle )
            {
                $Style = $TSUE["TSUE_Database"]->query_result("SELECT stylename,css FROM tsue_styles WHERE styleid = " . $TSUE["TSUE_Database"]->escape($editStyle));
                if( !$Style )
                {
                    return errormessage(get_phrase("message_content_error"));
                }

                $aaaaam = array( "editStyle" => $editStyle );
                $aaaaia = $Style["stylename"];
                addbreadcrumb(array( $Style["stylename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;themeid=" . $themeid . "&amp;type=manageStyles&amp;editStyle=" . $editStyle ));
            }
            else
            {
                addbreadcrumb(array( get_phrase("theme_manage_create_new_style") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;themeid=" . $themeid . "&amp;type=manageStyles&amp;newStyle=1" ));
            }

            if( isset($_POST["Style"]) )
            {
                $Style = $_POST["Style"];
                if( !$Style["stylename"] || !$Style["css"] )
                {
                    $formErrors[] = get_phrase("message_required_fields_error");
                }

                if( $Style["stylename"] && (!$editStyle || $editStyle && $aaaaia != $Style["stylename"]) )
                {
                    $checkStyle = $TSUE["TSUE_Database"]->query_result("SELECT stylename FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . " AND stylename = " . $TSUE["TSUE_Database"]->escape($Style["stylename"]));
                    if( $checkStyle )
                    {
                        $formErrors[] = get_phrase("theme_manager_style_name_alt");
                    }

                }

                if( !isset($formErrors) )
                {
                    $buildQuery = array( "stylename" => $Style["stylename"], "themeid" => $themeid, "css" => $Style["css"], "last_updated" => TIMENOW );
                    if( $editStyle )
                    {
                        $TSUE["TSUE_Database"]->update("tsue_styles", $buildQuery, "styleid=" . $TSUE["TSUE_Database"]->escape($editStyle));
                    }
                    else
                    {
                        $buildQuery["orj_css"] = $buildQuery["css"];
                        $TSUE["TSUE_Database"]->insert("tsue_styles", $buildQuery);
                    }

                    logadminaction(get_phrase("theme_manager_style_updated", $Style["stylename"]));
                    $HTML .= successmessage(get_phrase("message_saved"));
                    handlerebuildcaches(false);
                    handleprune(false);
                    $Styles = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($themeid) . $WHERE);
                }
                else
                {
                    $HTML .= errormessage(implode("<br />", $formErrors));
                }

            }

            $inputbox = inputbox("Style[stylename]", $Style["stylename"], "text");
            $formContents = aaaaan(get_phrase("theme_manager_style_name"), $inputbox, get_phrase("theme_manager_style_name_alt"));
            $inputbox = textarea("Style[css]", $Style["css"], false, "templateTextarea");
            $formContents .= aaaaan(get_phrase("theme_manager_style_css"), $inputbox);
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

        $tableContents = "";
        while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($Styles) )
        {
            $aaaaib = aaaaae(array( "themeid=" . $themeid . "&type=manageStyles&editStyle=" . $Style["styleid"] => array( "phrase" => $Style["stylename"] ) ));
            $aaaahx = "";
            if( $Style["css"] != $Style["orj_css"] )
            {
                $aaaahx = aaaaae(array( "themeid=" . $themeid . "&type=manageStyles&revertStyle=" . $Style["styleid"] => array( "phrase" => get_phrase("revert") ) ));
            }

            $last_updated = convert_relative_time($Style["last_updated"]);
            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaaib . "<span class=\"smallPassiveText\">" . get_phrase("torrents_peer_last_updated") . ": " . $last_updated . "</span>" ), array( "width" => "15%", "text" => "<span class=\"revertTemplate\">" . $aaaahx . "</span>", "align" => "right" ) ));
        }
        $aaaahy = aaaaag(array( array( "width" => "15%", "text" => get_phrase("theme_manager_search_in_templates_keywords"), "align" => "right" ), array( "width" => "85%", "text" => inputbox("searchPhrase", html_clean($searchPhrase), "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
        $HTML .= aaaabn(createtable(get_phrase("theme_manager_search_in_styles"), $aaaahy, 2), NULL, "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&themeid=" . $themeid . "&type=manageStyles&search=1");
        $aaaaic = aaaaae(array( "themeid=" . $themeid . "&type=manageStyles&newStyle=1" => array( "phrase" => get_phrase("theme_manage_create_new_style") ) ));
        $HTML .= "\r\n\t\t<div style=\"max-height: 500px; overflow: auto; zoom: 1;\">\r\n\t\t\t" . createtable(get_phrase("theme_manager_manage_styles") . " (" . $Theme["themename"] . ")", $tableContents, 2, $aaaaic) . "\r\n\t\t</div>";
        return $HTML;
    }

    if( $delete )
    {
        $Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Theme )
        {
            if( !$TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid != " . $TSUE["TSUE_Database"]->escape($delete) . " AND active = 1") )
            {
                return errormessage(get_phrase("you_cant_delete_disable_this_theme"));
            }

            $TSUE["TSUE_Database"]->delete("tsue_themes", "themeid = " . $TSUE["TSUE_Database"]->escape($delete));
            $TSUE["TSUE_Database"]->delete("tsue_templates", "themeid = " . $TSUE["TSUE_Database"]->escape($delete));
            $TSUE["TSUE_Database"]->delete("tsue_styles", "themeid = " . $TSUE["TSUE_Database"]->escape($delete));
            logadminaction(get_phrase("theme_manager_theme_deleted", $Theme["themename"] . " (" . $delete . ")"));
            handlerebuildcaches(false);
            handleprune(false);
        }

    }

    if( $edit || $new )
    {
        $Theme = array( "themename" => "", "viewpermissions" => array(  ) );
        $aaaaam = "";
        if( $edit )
        {
            $Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename, viewpermissions FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Theme )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
            $aaaaid = $Theme["themename"];
            if( $Theme["viewpermissions"] )
            {
                $Theme["viewpermissions"] = unserialize($Theme["viewpermissions"]);
            }
            else
            {
                $Theme["viewpermissions"] = array(  );
            }

            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Theme["themename"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        }
        else
        {
            addbreadcrumb(array( get_phrase("theme_manager_create_new_theme") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
        }

        if( isset($_POST["Theme"]) )
        {
            $Theme = $_POST["Theme"];
            if( !isset($Theme["viewpermissions"]) )
            {
                $Theme["viewpermissions"] = array(  );
            }

            if( !$Theme["themename"] )
            {
                $formErrors[] = get_phrase("message_required_fields_error");
            }
            else
            {
                if( !$edit || $edit && $aaaaid != $Theme["themename"] )
                {
                    $checkTheme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themename = " . $TSUE["TSUE_Database"]->escape($Theme["themename"]));
                    if( $checkTheme )
                    {
                        $formErrors[] = get_phrase("theme_manager_theme_name_alt");
                    }

                }

            }

            if( !is_dir(STYLEPATH . $Theme["themename"]) )
            {
                $formErrors[] = get_phrase("theme_manager_theme_folder_error", (DEMO_MODE ? "" : STYLEPATH));
            }

            if( !isset($formErrors) )
            {
                $buildQuery = array( "themename" => $Theme["themename"] );
                if( $Theme["viewpermissions"] )
                {
                    $buildQuery["viewpermissions"] = serialize($Theme["viewpermissions"]);
                }
                else
                {
                    $buildQuery["viewpermissions"] = "";
                }

                if( $edit )
                {
                    $TSUE["TSUE_Database"]->update("tsue_themes", $buildQuery, "themeid=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $TSUE["TSUE_Database"]->insert("tsue_themes", $buildQuery);
                    $aaaaie = $TSUE["TSUE_Database"]->insert_id();
                    $defaultThemeID = $TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"];
                    if( $aaaaie && $defaultThemeID )
                    {
                        $allTemplates = $TSUE["TSUE_Database"]->query("SELECT templatename, template, last_updated, orj_template FROM tsue_templates WHERE themeid = " . $TSUE["TSUE_Database"]->escape($defaultThemeID));
                        if( $TSUE["TSUE_Database"]->num_rows($allTemplates) )
                        {
                            while( $Template = $TSUE["TSUE_Database"]->fetch_assoc($allTemplates) )
                            {
                                $buildQuery = array( "themeid" => $aaaaie, "templatename" => $Template["templatename"], "template" => $Template["template"], "last_updated" => $Template["last_updated"], "orj_template" => $Template["orj_template"] );
                                $TSUE["TSUE_Database"]->insert("tsue_templates", $buildQuery);
                            }
                        }

                        $allStyles = $TSUE["TSUE_Database"]->query("SELECT stylename, css, last_updated, orj_css FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($defaultThemeID));
                        if( $TSUE["TSUE_Database"]->num_rows($allStyles) )
                        {
                            while( $Style = $TSUE["TSUE_Database"]->fetch_assoc($allStyles) )
                            {
                                $buildQuery = array( "themeid" => $aaaaie, "stylename" => $Style["stylename"], "css" => $Style["css"], "last_updated" => $Style["last_updated"], "orj_css" => $Style["orj_css"] );
                                $TSUE["TSUE_Database"]->insert("tsue_styles", $buildQuery);
                            }
                        }

                    }

                }

                logadminaction(get_phrase("theme_manager_theme_updated", $Theme["themename"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                handlerebuildcaches(false);
                handleprune(false);
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $inputbox = inputbox("Theme[themename]", $Theme["themename"], "text texthalf");
            $formContents = aaaaan(get_phrase("theme_manager_theme_name"), $inputbox, get_phrase("theme_manager_theme_name_alt"));
            $Usergroups = aaaaaw("Theme[viewpermissions][]", $Theme["viewpermissions"]);
            $formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all"));
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    if( $enable_disable )
    {
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
        $Query = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
        if( $Query )
        {
            if( !$TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid != " . $TSUE["TSUE_Database"]->escape($enable_disable) . " AND active = 1") )
            {
                return errormessage(get_phrase("you_cant_delete_disable_this_theme"));
            }

            $TSUE["TSUE_Database"]->update("tsue_themes", $BuildQuery, "themeid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            logadminaction(get_phrase("theme_manager_theme_updated", $Query["themename"] . " (" . $enable_disable . ")"));
            handlerebuildcaches(false);
            handleprune(false);
        }

    }

    $Themes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_themes ORDER BY active DESC, themename ASC");
    if( !$TSUE["TSUE_Database"]->num_rows($Themes) )
    {
        $tableContents = errormessage(get_phrase("theme_manager_no_theme"));
    }
    else
    {
        $tableContents = "";
        while( $Theme = $TSUE["TSUE_Database"]->fetch_assoc($Themes) )
        {
            $linkClass = (!$Theme["active"] ? "linkDisabled" : "");
            $aaaaif = aaaaae(array( "edit=" . $Theme["themeid"] => array( "phrase" => $Theme["themename"], "class" => $linkClass ) ));
            $aaaaig = aaaaae(array( "themeid=" . $Theme["themeid"] . "&type=manageTemplates" => array( "phrase" => getimage("buttons/managetemplates.png", get_phrase("theme_manager_manage_templates")) ) ));
            $aaaaih = aaaaae(array( "export=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/save.png", get_phrase("button_export")), "target" => "_blank" ) ));
            $aaaaii = aaaaae(array( "themeid=" . $Theme["themeid"] . "&type=manageStyles" => array( "phrase" => getimage("buttons/managestyles.png", get_phrase("theme_manager_manage_styles")) ) ));
            $aaaaij = aaaaae(array( "delete=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            if( $Theme["active"] )
            {
                $aaaaik = aaaaae(array( "enable_disable=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
            }
            else
            {
                $aaaaik = aaaaae(array( "enable_disable=" . $Theme["themeid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
            }

            $tableContents .= aaaaag(array( array( "width" => "70%", "text" => $aaaaif . ((DEMO_MODE ? "" : "<span class=\"smallPassiveText\">" . get_phrase("theme_manager_themepath", STYLEPATH . $Theme["themename"]) . "</span>")) ), array( "width" => "30%", "text" => $aaaaik . $aaaaig . $aaaaii . $aaaaih . $aaaaij, "align" => "right" ) ));
        }
    }

    $aaaail = aaaaae(array( "new=1" => array( "phrase" => get_phrase("theme_manager_create_new_theme") ) ));
    $aaaaim = aaaaae(array( "import=1" => array( "phrase" => get_phrase("import_a_theme") ) ));
    $HTML .= createtable(get_phrase("theme_manager_themes_alt"), $tableContents, 2, $aaaail . " - " . $aaaaim);
    return $HTML;
}

function handlelanguages()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $enable_disable = intval(getvar("enable_disable"));
    $languageid = intval(getvar("languageid"));
    $type = trim(getvar("type"));
    $import = intval(getvar("import"));
    $examine = intval(getvar("examine"));
    $fixMissing = intval(getvar("fixMissing"));
    $searchPhrase = trim(getvar("searchPhrase", "", false));
    if( $delete )
    {
        checkdemomode();
        $Language = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Language )
        {
            if( !$TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid != " . $TSUE["TSUE_Database"]->escape($delete) . " AND active = 1") )
            {
                return errormessage(get_phrase("you_cant_delete_disable_this_language"));
            }

            $TSUE["TSUE_Database"]->delete("tsue_languages", "languageid = " . $TSUE["TSUE_Database"]->escape($delete));
            if( file_exists(DATAPATH . "languageFlags/" . $delete . ".png") )
            {
                @unlink(DATAPATH . "languageFlags/" . $delete . ".png");
            }

            logadminaction(get_phrase("theme_manager_language_deleted", $Language["title"] . " (" . $delete . ")"));
            handlerebuildcaches(false);
            handleprune(false);
        }

    }

    if( $edit || $new )
    {
        $Language = array( "title" => "", "content_language" => "", "charset" => "", "date_format" => "", "time_format" => "" );
        $aaaaam = "";
        if( $edit )
        {
            $Language = $TSUE["TSUE_Database"]->query_result("SELECT title,content_language,charset,date_format,time_format FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Language )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
            $TSUE["TSUE_Language"]["charset"] = strtolower($Language["charset"]);
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Language["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        }
        else
        {
            addbreadcrumb(array( get_phrase("theme_manager_create_new_language") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
        }

        if( isset($_POST["Language"]) )
        {
            checkdemomode();
            $Language = $_POST["Language"];
            $Flag = $_FILES["flag"];
            if( !$Language["title"] || !$Language["content_language"] || !$Language["charset"] || !$Language["date_format"] || !$Language["date_format"] )
            {
                $formErrors[] = get_phrase("message_required_fields_error");
            }
            else
            {
                $TSUE["TSUE_Language"]["charset"] = strtolower($Language["charset"]);
            }

            if( !$Flag )
            {
                $flagErrors[] = get_phrase("upload_error3");
            }
            else
            {
                if( !is_uploaded_file($Flag["tmp_name"]) )
                {
                    $flagError[] = get_phrase("upload_error3");
                }
                else
                {
                    if( !$Flag["name"] || !$Flag["type"] || !$Flag["tmp_name"] || $Flag["error"] || !$Flag["size"] )
                    {
                        $flagError[] = get_phrase("upload_error3");
                    }
                    else
                    {
                        if( !in_array(file_extension($Flag["name"]), array( "png" )) )
                        {
                            $flagError[] = get_phrase("upload_error6", "png");
                        }
                        else
                        {
                            $newFlag = $Flag["tmp_name"];
                        }

                    }

                }

            }

            if( isset($flagError) && !$edit )
            {
                $formErrors = array_merge($formErrors, $flagError);
                unset($flagError);
            }

            if( !isset($formErrors) )
            {
                $buildQuery = array( "title" => $Language["title"], "content_language" => $Language["content_language"], "charset" => $Language["charset"], "date_format" => $Language["date_format"], "time_format" => $Language["time_format"] );
                if( $edit )
                {
                    $TSUE["TSUE_Database"]->update("tsue_languages", $buildQuery, "languageid=" . $TSUE["TSUE_Database"]->escape($edit));
                    $flagID = $edit;
                }
                else
                {
                    $TSUE["TSUE_Database"]->insert("tsue_languages", $buildQuery);
                    $flagID = $TSUE["TSUE_Database"]->insert_id();
                    $newLanguageID = $flagID;
                    $defaultLanguageID = $TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"];
                    if( $newLanguageID && $defaultLanguageID )
                    {
                        $phraseGlobal = $TSUE["TSUE_Database"]->query_result("SELECT phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($defaultLanguageID));
                        if( $phraseGlobal )
                        {
                            $buildQuery = array( "phrase_global" => $phraseGlobal["phrase_global"] );
                            $TSUE["TSUE_Database"]->update("tsue_languages", $buildQuery, "languageid = " . $TSUE["TSUE_Database"]->escape($newLanguageID));
                        }

                    }

                }

                if( isset($newFlag) && $flagID )
                {
                    @move_uploaded_file($newFlag, DATAPATH . "languageFlags/" . $flagID . ".png");
                }

                logadminaction(get_phrase("theme_manager_language_updated", $Language["title"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                handlerebuildcaches(false);
                handleprune(false);
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $inputbox = inputbox("Language[title]", $Language["title"], "text texthalf");
            $formContents = aaaaan(get_phrase("theme_manager_language_title"), $inputbox);
            $inputbox = inputbox("Language[content_language]", $Language["content_language"], "text texthalf");
            $formContents .= aaaaan(get_phrase("theme_manager_content_language"), $inputbox, get_phrase("theme_manager_content_language_alt"));
            $inputbox = inputbox("Language[charset]", $Language["charset"], "text texthalf");
            $formContents .= aaaaan(get_phrase("theme_manager_language_charset"), $inputbox);
            $inputbox = inputbox("Language[date_format]", $Language["date_format"], "text texthalf");
            $formContents .= aaaaan(get_phrase("theme_manager_language_date_format"), $inputbox, get_phrase("theme_manager_language_date_time_help"));
            $inputbox = inputbox("Language[time_format]", $Language["time_format"], "text texthalf");
            $formContents .= aaaaan(get_phrase("theme_manager_language_time_format"), $inputbox, get_phrase("theme_manager_language_date_time_help"));
            $aaaacr = aaaacs("flag");
            $formContents .= aaaaan(get_phrase("theme_manager_language_flag"), $aaaacr, ($edit ? get_phrase("theme_manager_language_flag_alt") : ""));
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    if( $type == "deletePhrase" )
    {
        $aaaain = trim(getvar("text"));
        if( !$aaaain )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        $checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT title, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid));
        if( !$checkPhrase )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        $phraseGlobal = unserialize($checkPhrase["phrase_global"]);
        if( !isset($phraseGlobal[$aaaain]) )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        unset($phraseGlobal[$aaaain]);
        $phraseGlobal = serialize($phraseGlobal);
        $BuildQuery = array( "phrase_global" => $phraseGlobal );
        $TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid=" . $languageid);
        if( $TSUE["TSUE_Database"]->affected_rows() )
        {
            logadminaction(get_phrase("theme_manager_language_updated", $checkPhrase["title"]));
            $HTML .= successmessage(get_phrase("message_saved"));
            handlerebuildcaches(false);
            handleprune(false);
            $type = "phraseList";
        }
        else
        {
            return errormessage(get_phrase("database_error"));
        }

    }

    if( $type == "editPhrase" || $type == "newPhrase" )
    {
        addbreadcrumb(array( get_phrase("theme_manager_language_phrases") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;type=phraseList&amp;languageid=" . $languageid ));
        $text = trim(getvar("text"));
        if( !$text && $type == "editPhrase" )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        $checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT title, charset, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid));
        if( !$checkPhrase )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        $TSUE["TSUE_Language"]["charset"] = strtolower($checkPhrase["charset"]);
        $phrase = unserialize($checkPhrase["phrase_global"]);
        if( $type == "editPhrase" && !isset($phrase[$text]) )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        if( isset($_POST["Phrase"]) )
        {
            $_POST["Phrase"]["title"] = trim($_POST["Phrase"]["title"]);
            if( $type == "newPhrase" && isset($phrase[$_POST["Phrase"]["title"]]) )
            {
                return errormessage(get_phrase("theme_manager_phrase_title_alt"));
            }

            if( !$_POST["Phrase"]["title"] || !aaaaio($_POST["Phrase"]["title"]) )
            {
                return errormessage(get_phrase("theme_manager_phrase_title_error"));
            }

            $phrase[$_POST["Phrase"]["title"]] = trim($_POST["Phrase"]["text"]);
            $phrase = serialize($phrase);
            $BuildQuery = array( "phrase_global" => $phrase );
            $TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid=" . $languageid);
            if( $TSUE["TSUE_Database"]->affected_rows() )
            {
                $aaaaip = $TSUE["TSUE_Database"]->query("SELECT languageid, phrase_global FROM tsue_languages WHERE languageid != " . $TSUE["TSUE_Database"]->escape($languageid));
                if( $TSUE["TSUE_Database"]->num_rows($aaaaip) )
                {
                    while( $aaaaiq = $TSUE["TSUE_Database"]->fetch_assoc($aaaaip) )
                    {
                        $aaaair = unserialize($aaaaiq["phrase_global"]);
                        if( !isset($aaaair[$_POST["Phrase"]["title"]]) )
                        {
                            $aaaair[$_POST["Phrase"]["title"]] = trim($_POST["Phrase"]["text"]);
                            $BuildQuery = array( "phrase_global" => serialize($aaaair) );
                            $TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid=" . $aaaaiq["languageid"]);
                        }

                    }
                }

                logadminaction(get_phrase("theme_manager_language_updated", $checkPhrase["title"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                handlerebuildcaches(false);
                handleprune(false);
                $aaaais = true;
                $type = "phraseList";
            }
            else
            {
                return errormessage(get_phrase("database_error"));
            }

        }

        if( !isset($aaaais) )
        {
            $aaaaam = array( "type" => $type, "languageid" => $languageid, "text" => $text );
            $inputbox = inputbox("Phrase[title]", $text, "text");
            $formContents = aaaaan(get_phrase("theme_manager_phrase_title"), $inputbox, get_phrase("theme_manager_phrase_title_alt"));
            $inputbox = textarea("Phrase[text]", (isset($phrase[$text]) ? $phrase[$text] : ""), false, "phraseTextarea");
            $formContents .= aaaaan(get_phrase("theme_manager_phrase_text"), $inputbox, get_phrase("theme_manager_phrase_text_alt"));
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    if( $type == "phraseList" )
    {
        $page = intval(getvar("page"));
        addbreadcrumb(array( get_phrase("theme_manager_language_phrases") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;type=phraseList&amp;languageid=" . $languageid ));
        $checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT title, charset, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid));
        if( !$checkPhrase )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        $TSUE["TSUE_Language"]["charset"] = strtolower($checkPhrase["charset"]);
        $phrase_global = unserialize($checkPhrase["phrase_global"]);
        if( !isset($_GET["noSort"]) )
        {
            ksort($phrase_global);
        }

        $aaaait = array(  );
        foreach( $phrase_global as $name => $value )
        {
            if( $searchPhrase )
            {
                if( stristr($name, $searchPhrase) !== false || stristr($value, $searchPhrase) !== false )
                {
                    $aaaait[] = array( "name" => trim($name), "value" => trim($value) );
                }

            }
            else
            {
                $aaaait[] = array( "name" => trim($name), "value" => trim($value) );
            }

        }
        unset($phrase_global);
        if( $aaaait )
        {
            $pages = array_chunk($aaaait, $TSUE["array_items_perpage"]);
            $countPages = count($aaaait);
            $Pagination = pagination($countPages, "type=" . $type . "&languageid=" . $languageid . (($searchPhrase ? "&searchPhrase=" . html_clean($searchPhrase) : "")), 3, $TSUE["array_items_perpage"], true);
            unset($aaaait);
            $tableContents = "";
            foreach( $pages[$page] as $Phrase )
            {
                $aaaaiu = aaaaae(array( "type=editPhrase&amp;languageid=" . $languageid . "&amp;text=" . $Phrase["name"] => array( "phrase" => $Phrase["name"] ) ));
                $aaaaiv = aaaaae(array( "type=deletePhrase&amp;languageid=" . $languageid . "&amp;text=" . $Phrase["name"] . (($searchPhrase ? "&searchPhrase=" . html_clean($searchPhrase) : "")) => array( "phrase" => "[x]", "confirmation" => get_phrase("confirm_delete_message_global") ) ));
                $tableContents .= aaaaag(array( array( "width" => "100%", "text" => $aaaaiv . " " . $aaaaiu . " <span class=\"smallPassiveText\">" . htmlspecialchars($Phrase["value"]) . "</span>" ) ));
            }
        }
        else
        {
            $Pagination["0"] = "";
            $Pagination["1"] = "";
            $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("theme_manager_search_phrases_no_result") ) ));
        }

        $aaaahy = aaaaag(array( array( "width" => "15%", "text" => get_phrase("theme_manager_phrase_text"), "align" => "right" ), array( "width" => "85%", "text" => inputbox("searchPhrase", html_clean($searchPhrase), "text texthalf") . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
        $HTML .= aaaabn(createtable(get_phrase("theme_manager_search_phrases"), $aaaahy, 2), NULL, "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&type=" . $type . "&languageid=" . $languageid);
        $aaaaiw = aaaaae(array( "type=newPhrase&languageid=" . $languageid => array( "phrase" => get_phrase("theme_manager_phrase_new") ) ));
        $HTML .= "\r\n\t\t<div style=\"max-height: 500px; overflow: auto; zoom: 1;\">\r\n\t\t\t" . createtable(get_phrase("theme_manager_language_phrases") . ": " . $checkPhrase["title"] . " (" . $aaaaiw . ")", $tableContents, 1, $Pagination["1"]) . "\r\n\t\t</div>";
        return $HTML;
    }
    else
    {
        if( $type == "export" )
        {
            addbreadcrumb(array( get_phrase("theme_manager_language_phrases") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;type=phraseList&amp;languageid=" . $languageid ));
            $checkPhrase = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid));
            if( !$checkPhrase )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $TSUE["TSUE_Language"]["charset"] = strtolower($checkPhrase["charset"]);
            $fileName = "language-" . $checkPhrase["title"] . "-" . $checkPhrase["content_language"] . ".txt";
            $phraseGlobal = unserialize($checkPhrase["phrase_global"]);
            $phraseList = PHP_EOL;
            foreach( $phraseGlobal as $aaaain => $aaaaix )
            {
                $phraseList .= "[PHRASE][PHRASE_TITLE]" . $aaaain . "[/PHRASE_TITLE][PHRASE_CONTENT]" . $aaaaix . "[/PHRASE_CONTENT][/PHRASE]" . PHP_EOL . PHP_EOL;
            }
            $Contents = "[TITLE]" . $checkPhrase["title"] . "[/TITLE]" . PHP_EOL . "[CONTENT_LANGUAGE]" . $checkPhrase["content_language"] . "[/CONTENT_LANGUAGE]" . PHP_EOL . "[CHARSET]" . $checkPhrase["charset"] . "[/CHARSET]" . PHP_EOL . "[DATE_FORMAT]" . $checkPhrase["date_format"] . "[/DATE_FORMAT]" . PHP_EOL . "[TIME_FORMAT]" . $checkPhrase["time_format"] . "[/TIME_FORMAT]" . PHP_EOL . $phraseList;
            downloadfile(NULL, $fileName, $Contents);
            exit();
        }
        else
        {
            if( $import )
            {
                checkdemomode();
                addbreadcrumb(array( get_phrase("theme_manager_import") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;import=1" ));
                if( isset($_FILES["language"]) )
                {
                    $Language = $_FILES["language"];
                    if( !$Language["size"] || $Language["error"] )
                    {
                        $formErrors[] = get_phrase("theme_manager_import_valid_file");
                    }
                    else
                    {
                        if( file_extension($Language["name"]) != "txt" )
                        {
                            $formErrors[] = get_phrase("upload_error6", "txt");
                        }

                    }

                    if( isset($formErrors) )
                    {
                        $HTML .= errormessage(implode("<br />", $formErrors));
                    }
                    else
                    {
                        $Language = file_get_contents($Language["tmp_name"]);
                        if( !$Language )
                        {
                            $formErrors[] = get_phrase("theme_manager_import_valid_file");
                        }
                        else
                        {
                            preg_match("#\\[TITLE\\](.*?)\\[\\/TITLE\\]#esi", $Language, $Title);
                            $Title = (isset($Title["1"]) && $Title["1"] ? $Title["1"] : "");
                            preg_match("#\\[CONTENT_LANGUAGE\\](.*?)\\[\\/CONTENT_LANGUAGE\\]#esi", $Language, $contentLanguage);
                            $contentLanguage = (isset($contentLanguage["1"]) && $contentLanguage["1"] ? $contentLanguage["1"] : "");
                            preg_match("#\\[CHARSET\\](.*?)\\[\\/CHARSET\\]#esi", $Language, $Charset);
                            $Charset = (isset($Charset["1"]) && $Charset["1"] ? $Charset["1"] : "");
                            preg_match("#\\[DATE_FORMAT\\](.*?)\\[\\/DATE_FORMAT\\]#esi", $Language, $dateFormat);
                            $dateFormat = (isset($dateFormat["1"]) && $dateFormat["1"] ? $dateFormat["1"] : "");
                            preg_match("#\\[TIME_FORMAT\\](.*?)\\[\\/TIME_FORMAT\\]#esi", $Language, $timeFormat);
                            $timeFormat = (isset($timeFormat["1"]) && $timeFormat["1"] ? $timeFormat["1"] : "");
                            $phraseGlobal = array(  );
                            preg_match_all("#\\[PHRASE\\](.*?)\\[\\/PHRASE\\]#esi", $Language, $PHRASES);
                            foreach( $PHRASES["1"] as $PHRASE )
                            {
                                preg_match("#\\[PHRASE_TITLE\\](.*?)\\[\\/PHRASE_TITLE\\]#esi", $PHRASE, $aaaain);
                                preg_match("#\\[PHRASE_CONTENT\\](.*?)\\[\\/PHRASE_CONTENT\\]#esi", $PHRASE, $aaaaix);
                                $phraseGlobal[$aaaain["1"]] = $aaaaix["1"];
                            }
                            $aaaaiy = $TSUE["TSUE_Database"]->query_result("SELECT phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["global_settings"]["d_languageid"]));
                            $aaaaiy = unserialize($aaaaiy["phrase_global"]);
                            $aaaaiz = array(  );
                            foreach( $aaaaiy as $aaaain => $phraseValue )
                            {
                                if( !isset($phraseGlobal[$aaaain]) )
                                {
                                    $aaaaiz[$aaaain] = $phraseValue;
                                }

                            }
                            if( $aaaaiz )
                            {
                                $phraseGlobal = array_merge($phraseGlobal, $aaaaiz);
                            }

                            $buildQuery = array( "title" => $Title, "content_language" => $contentLanguage, "charset" => $Charset, "date_format" => $dateFormat, "time_format" => $timeFormat, "phrase_global" => serialize($phraseGlobal) );
                            $TSUE["TSUE_Database"]->insert("tsue_languages", $buildQuery);
                            $newLanguageID = $TSUE["TSUE_Database"]->insert_id();
                            logadminaction(get_phrase("theme_manager_language_imported", $Title));
                            $HTML .= successmessage(get_phrase("message_saved"));
                            handlerebuildcaches(false);
                            handleprune(false);
                            header("Location: ?action=" . $TSUE["action"] . "&do=Languages&edit=" . $newLanguageID);
                            exit();
                        }

                    }

                }

                $aaaacr = aaaacs("language");
                $formContents = aaaaan(get_phrase("theme_manager_import_from_uploaded_file"), $aaaacr);
                $HTML .= aaaabg($formContents);
                return $HTML;
            }

            if( $enable_disable )
            {
                $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
                $Query = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
                if( $Query )
                {
                    if( !$TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_languages WHERE languageid != " . $TSUE["TSUE_Database"]->escape($enable_disable) . " AND active = 1") )
                    {
                        return errormessage(get_phrase("you_cant_delete_disable_this_language"));
                    }

                    $TSUE["TSUE_Database"]->update("tsue_languages", $BuildQuery, "languageid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
                    logadminaction(get_phrase("theme_manager_language_updated", $Query["title"] . " (" . $enable_disable . ")"));
                    handlerebuildcaches(false);
                    handleprune(false);
                }

            }

            if( $examine )
            {
                $aaaaja = $TSUE["TSUE_Database"]->query_result("SELECT title, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($examine));
                if( !$aaaaja )
                {
                    return errormessage(get_phrase("message_content_error"));
                }

                addbreadcrumb(array( get_phrase("examine_this_language") . " (" . $aaaaja["title"] . ")" => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;examine=" . $examine ));
                $aaaajb = @unserialize($aaaaja["phrase_global"]);
                $aaaajc = array(  );
                $aaaaiz = array(  );
                $orjPhrases = @unserialize(@trim(@file_get_contents("oops")));
                if( !$orjPhrases )
                {
                    return errormessage(get_phrase("unable_fetch_orj_language"));
                }

                foreach( $orjPhrases as $phraseName => $phraseValue )
                {
                    if( !isset($aaaajb[$phraseName]) )
                    {
                        $aaaaiz[$phraseName] = $phraseValue;
                    }

                }
                foreach( $aaaajb as $phraseName => $phraseValue )
                {
                    if( !isset($orjPhrases[$phraseName]) )
                    {
                        $aaaajc[$phraseName] = $phraseValue;
                    }

                }
                if( empty($aaaajc) && empty($aaaaiz) )
                {
                    return successmessage(get_phrase("language_x_is_valid", $aaaaja["title"]));
                }

                $Output = "";
                if( $fixMissing )
                {
                    foreach( $aaaaiz as $phraseName => $phraseValue )
                    {
                        $aaaajb[$phraseName] = $phraseValue;
                    }
                    $buildQuery = array( "phrase_global" => serialize($aaaajb) );
                    $TSUE["TSUE_Database"]->update("tsue_languages", $buildQuery, "languageid = " . $TSUE["TSUE_Database"]->escape($examine));
                    $Status = get_phrase("missing_phrases_for_x_has_been_fixed", $aaaaja["title"]);
                    logadminaction($Status);
                    handlerebuildcaches(false);
                    handleprune(false);
                    return successmessage($Status);
                }
                else
                {
                    if( !empty($aaaajc) )
                    {
                        $tableContents = "";
                        foreach( $aaaajc as $phraseName => $phraseValue )
                        {
                            $tableContents .= aaaaag(array( array( "width" => "30%", "text" => $phraseName ), array( "width" => "70%", "text" => htmlspecialchars($phraseValue) ) ));
                        }
                        $Output .= createtable(get_phrase("following_phrases_are_outdated"), $tableContents, 2);
                    }

                    if( !empty($aaaaiz) )
                    {
                        $tableContents = "";
                        foreach( $aaaaiz as $phraseName => $phraseValue )
                        {
                            $tableContents .= aaaaag(array( array( "width" => "30%", "text" => $phraseName ), array( "width" => "70%", "text" => htmlspecialchars($phraseValue) ) ));
                        }
                        if( $Output )
                        {
                            $Output .= "<br />";
                        }

                        $aaaajd = aaaaae(array( "examine=" . $examine . "&amp;fixMissing=1" => array( "phrase" => get_phrase("fix_missing_phrases") ) ));
                        $Output .= createtable(get_phrase("following_phrases_are_missing"), $tableContents, 2, $aaaajd);
                    }

                    return $Output;
                }

            }
            else
            {
                $Languages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_languages ORDER BY active DESC, title ASC");
                if( !$TSUE["TSUE_Database"]->num_rows($Languages) )
                {
                    $tableContents = errormessage(get_phrase("theme_manager_no_language"));
                }
                else
                {
                    $tableContents = "";
                    while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) )
                    {
                        $linkClass = (!$Language["active"] ? "linkDisabled" : "");
                        $aaaaje = aaaaae(array( "edit=" . $Language["languageid"] => array( "phrase" => $Language["title"], "class" => $linkClass ) ));
                        $aaaajf = aaaaae(array( "delete=" . $Language["languageid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
                        $aaaajg = aaaaae(array( "type=phraseList&amp;languageid=" . $Language["languageid"] => array( "phrase" => getimage("buttons/phrases.png", get_phrase("theme_manager_language_phrases")) ) ));
                        $aaaajh = aaaaae(array( "type=export&amp;languageid=" . $Language["languageid"] => array( "phrase" => getimage("buttons/save.png", get_phrase("button_export")), "target" => "_blank" ) ));
                        $aaaaji = aaaaae(array( "examine=" . $Language["languageid"] => array( "phrase" => getimage("buttons/examine.png", get_phrase("examine_this_language")) ) ));
                        if( $Language["active"] )
                        {
                            $aaaajj = aaaaae(array( "enable_disable=" . $Language["languageid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
                        }
                        else
                        {
                            $aaaajj = aaaaae(array( "enable_disable=" . $Language["languageid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
                        }

                        $tableContents .= aaaaag(array( array( "width" => "70%", "text" => aaaajk($Language["languageid"]) . " " . $aaaaje . "<span class=\"smallPassiveText\">" . $Language["charset"] . "</span>" ), array( "width" => "30%", "align" => "right", "text" => $aaaajg . $aaaaji . $aaaajh . $aaaajj . $aaaajf ) ));
                    }
                }

                $aaaajl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("theme_manager_create_new_language") ) ));
                $aaaajm = aaaaae(array( "import=1" => array( "phrase" => get_phrase("theme_manager_import") ) ));
                $HTML .= createtable(get_phrase("theme_manager_themes_alt"), $tableContents, 2, $aaaajl . " - " . $aaaajm);
                return $HTML;
            }

        }

    }

}

function handleuploadtorrent()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $createNewField = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_field") ) ));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $enable_disable = intval(getvar("enable_disable"));
    $htmlCode = intval(getvar("htmlCode"));
    $aaaajn = array( 1 => get_phrase("torrent_details"), 2 => get_phrase("torrent_options"), 3 => get_phrase("torrent_file"), 4 => get_phrase("torrent_finish_upload") );
    $aaaajo = array( 1 => "Input Text", 2 => "Textarea", 3 => "Selectbox", 4 => "Input Checkbox(es)", 5 => "Input Radio Button(s)" );
    if( $htmlCode )
    {
        $Field = $TSUE["TSUE_Database"]->query_result("SELECT title,name FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($htmlCode));
        if( !$Field )
        {
            return errormessage(get_phrase("message_content_error"));
        }

        exit( "<div style=\"font-weight: bold; font-size: 14px;\">" . get_phrase("generate_html_code") . ": " . $Field["title"] . "</div>\r\n\t\t<div style=\"border-bottom: 1px solid #ddd; font-size: 12px; padding-bottom: 2px; margin-bottom: 2px;\">" . get_phrase("generated_html_code_tip") . "</div>\r\n\t\t" . highlight_string("{\$Torrent['" . $Field["name"] . "']}", true) );
    }

    if( $new || $edit )
    {
        checkdemomode();
        $Field = array( "area" => 1, "title" => "", "name" => "", "type" => 1, "default_value" => "", "tip_phrase" => "", "active" => 1, "display_order" => 0 );
        $aaaaam = "";
        if( $edit )
        {
            $Field = $TSUE["TSUE_Database"]->query_result("SELECT field_id, area, title, name, type, default_value, tip_phrase, active, display_order FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Field )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
            $aaaajp = $Field["name"];
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Field["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        }
        else
        {
            addbreadcrumb(array( get_phrase("create_new_field") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
        }

        if( isset($_POST["Field"]) )
        {
            $Field = $_POST["Field"];
            if( !$Field["title"] )
            {
                $formErrors[] = get_phrase("please_enter_a_valid_title");
            }

            if( !$Field["name"] )
            {
                $formErrors[] = get_phrase("you_must_enter_unique_field_name");
            }
            else
            {
                if( !preg_match("#^[a-zA-Z0-9\\_]+\$#", $Field["name"]) )
                {
                    $formErrors[] = get_phrase("invalid_field_name");
                }
                else
                {
                    if( !$edit && $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $Field["name"]) || $edit && $aaaajp != $Field["name"] && $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $Field["name"]) )
                    {
                        $formErrors[] = get_phrase("you_must_enter_unique_field_name");
                    }
                    else
                    {
                        $checkFieldName = $TSUE["TSUE_Database"]->query_result("SELECT field_id FROM tsue_torrents_upload_extra_fields WHERE name = " . $TSUE["TSUE_Database"]->escape($Field["name"]) . (($edit ? " AND field_id != " . $TSUE["TSUE_Database"]->escape($edit) : "")));
                        if( $checkFieldName )
                        {
                            $formErrors[] = get_phrase("you_must_enter_unique_field_name");
                        }

                    }

                }

            }

            if( !isset($aaaajn[$Field["area"]]) )
            {
                $formErrors[] = get_phrase("field_area_error");
            }

            if( !isset($aaaajo[$Field["type"]]) )
            {
                $formErrors[] = get_phrase("field_type_error");
            }

            if( in_array($Field["type"], array( 3, 4, 5 )) && !$Field["default_value"] )
            {
                $formErrors[] = get_phrase("field_default_value_error");
            }

            if( $Field["tip_phrase"] && !$TSUE["TSUE_Language"]["phrase"][$Field["tip_phrase"]] )
            {
                $formErrors[] = get_phrase("the_specific_phrase_x_does_not_exists", $Field["tip_phrase"]);
            }

            if( isset($formErrors) )
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }
            else
            {
                $buildQuery = array( "area" => $Field["area"], "title" => $Field["title"], "name" => strtolower($Field["name"]), "type" => $Field["type"], "default_value" => $Field["default_value"], "tip_phrase" => $Field["tip_phrase"], "active" => $Field["active"], "display_order" => $Field["display_order"] );
                if( $edit )
                {
                    if( $aaaajp != $Field["name"] )
                    {
                        if( $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $aaaajp) )
                        {
                            $TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` DROP `" . $aaaajp . "`");
                        }

                        $TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` ADD `" . $Field["name"] . "` MEDIUMBLOB");
                    }

                    $Phrase = get_phrase("new_field_x_updated", $Field["title"]);
                    $TSUE["TSUE_Database"]->update("tsue_torrents_upload_extra_fields", $buildQuery, "field_id=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` ADD `" . $Field["name"] . "` MEDIUMBLOB");
                    $Phrase = get_phrase("new_field_x_updated", $Field["title"]);
                    $TSUE["TSUE_Database"]->insert("tsue_torrents_upload_extra_fields", $buildQuery);
                }

                $HTML .= successmessage($Phrase);
                logadminaction($Phrase);
                handlerebuildcaches(false);
                handleprune(false);
                $uploadDone = true;
            }

        }

        if( !isset($uploadDone) )
        {
            $radioButtons = radioyesno("Field[active]", $Field["active"]);
            $formContents = aaaaan(get_phrase("field_is_active"), $radioButtons);
            $inputbox = inputbox("Field[title]", $Field["title"]);
            $formContents .= aaaaan(get_phrase("field_title"), $inputbox);
            $inputbox = inputbox("Field[name]", $Field["name"]);
            $formContents .= aaaaan(get_phrase("field_name"), $inputbox);
            $selectbox = selectbox("Field[area]", $Field["area"], $aaaajn);
            $formContents .= aaaaan(get_phrase("field_area"), $selectbox);
            $selectbox = selectbox("Field[type]", $Field["type"], $aaaajo);
            $formContents .= aaaaan(get_phrase("field_type"), $selectbox);
            $textarea = textarea("Field[default_value]", $Field["default_value"], false, "phraseTextarea textareaHeightNormal");
            $formContents .= aaaaan(get_phrase("field_default_values"), $textarea, get_phrase("field_default_values_alt"));
            $inputbox = inputbox("Field[tip_phrase]", $Field["tip_phrase"]);
            $formContents .= aaaaan(get_phrase("field_tip_phrase"), $inputbox);
            $inputbox = inputbox("Field[display_order]", $Field["display_order"], "text textVeryTiny");
            $formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox);
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    if( $enable_disable )
    {
        checkdemomode();
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
        $Field = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
        if( $Field )
        {
            $TSUE["TSUE_Database"]->update("tsue_torrents_upload_extra_fields", $BuildQuery, "field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            $Phrase = get_phrase("new_field_x_updated", $Field["title"] . " (" . $enable_disable . ")");
            logadminaction($Phrase);
            handlerebuildcaches(false);
            handleprune(false);
            $HTML .= successmessage($Phrase);
        }

    }

    if( $delete )
    {
        checkdemomode();
        $Field = $TSUE["TSUE_Database"]->query_result("SELECT title, name FROM tsue_torrents_upload_extra_fields WHERE field_id = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Field )
        {
            $TSUE["TSUE_Database"]->delete("tsue_torrents_upload_extra_fields", "field_id = " . $TSUE["TSUE_Database"]->escape($delete));
            if( $TSUE["TSUE_Database"]->field_exists("tsue_torrents", $Field["name"]) )
            {
                $TSUE["TSUE_Database"]->query("ALTER TABLE `tsue_torrents` DROP `" . $Field["name"] . "`");
            }

            $Phrase = get_phrase("field_x_has_been_deleted", $Field["title"] . " (" . $delete . ")");
            logadminaction($Phrase);
            handlerebuildcaches(false);
            handleprune(false);
            $HTML .= successmessage($Phrase);
        }

    }

    if( !$tableContents )
    {
        if( isset($_POST["sort"]) )
        {
            foreach( $_POST["sort"] as $field_id => $display_order )
            {
                $field_id = intval($field_id);
                $display_order = intval($display_order);
                $TSUE["TSUE_Database"]->update("tsue_torrents_upload_extra_fields", array( "display_order" => $display_order ), "field_id=" . $TSUE["TSUE_Database"]->escape($field_id));
            }
            $HTML .= successmessage(get_phrase("field_display_options_updated"));
            logadminaction(get_phrase("field_display_options_updated"));
            handleprune(false);
        }

        $Fields = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_upload_extra_fields ORDER BY active DESC, display_order ASC");
        if( !$TSUE["TSUE_Database"]->num_rows($Fields) )
        {
            $tableContents = errormessage(get_phrase("message_nothing_found"));
        }
        else
        {
            $tableContents = "";
            while( $Field = $TSUE["TSUE_Database"]->fetch_assoc($Fields) )
            {
                $linkClass = (!$Field["active"] ? "linkDisabled" : "");
                $aaaajq = aaaaae(array( "edit=" . $Field["field_id"] => array( "phrase" => $Field["title"], "class" => $linkClass ) ));
                $aaaajr = aaaaae(array( "delete=" . $Field["field_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
                if( $Field["active"] )
                {
                    $aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
                }
                else
                {
                    $aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
                }

                $aaaajt = aaaaae(array( "htmlCode=" . $Field["field_id"] => array( "phrase" => getimage("buttons/generateHTMLcode.png", get_phrase("generate_html_code")), "rel" => $Field["field_id"], "class" => "generateHTMLCode" ) ));
                $tableContents .= aaaaag(array( array( "width" => "75%", "text" => $aaaajq . " <span class=\"smallPassiveText\">" . $aaaajn[$Field["area"]] . " - " . $aaaajo[$Field["type"]] . "</span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Field["field_id"] . "]", $Field["display_order"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "15%", "text" => $aaaajt . $aaaajs . $aaaajr, "align" => "center" ) ));
            }
            $tableContents = "\r\n\t\t\t<script type=\"text/javascript\">\r\n\r\n\t\t\t\t\$(document).on(\"click\", \".generateHTMLCode\", function(e)\r\n\t\t\t\t{\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\tvar \$field_id = parseInt(\$(this).attr(\"rel\"));\r\n\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t({\r\n\t\t\t\t\t\tmethod: \"POST\",\r\n\t\t\t\t\t\tdata: \"isAjax=1&action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&htmlCode=\"+\$field_id,\r\n\t\t\t\t\t\tsuccess: function(response)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tTSUEAdmin.dialog(response, true, true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t</script>" . $tableContents;
        }

    }

    $tableContents .= aaaaag(array( array( "width" => "70%", "text" => NULL ), array( "width" => "30%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
    $aaaagc = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_genre") ) ));
    $HTML .= aaaabn(createtable(get_phrase("navigation_upload_torrent") . " | " . get_phrase("add_extra_fields"), $tableContents, 3, $createNewField));
    return $HTML;
}

function handleautodescription()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $createNewField = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_field") ) ));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $enable_disable = intval(getvar("enable_disable"));
    $aaaaju = "(" . get_phrase("auto_description") . ") ";
    $aaaajn = array( 1 => get_phrase("navigation_upload_torrent"), 2 => get_phrase("messages_new_message"), 3 => get_phrase("forums_post_new_thread") );
    if( $new || $edit )
    {
        checkdemomode();
        $Field = array( "area" => 1, "title" => "", "default_value" => "", "active" => 1, "display_order" => 0, "viewpermissions" => array(  ) );
        $aaaaam = "";
        if( $edit )
        {
            $Field = $TSUE["TSUE_Database"]->query_result("SELECT field_id, area, title, default_value, active, display_order, viewpermissions FROM tsue_auto_description WHERE field_id = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Field )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
            if( !$Field["viewpermissions"] )
            {
                $Field["viewpermissions"] = array(  );
            }
            else
            {
                $Field["viewpermissions"] = unserialize($Field["viewpermissions"]);
            }

            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Field["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        }
        else
        {
            addbreadcrumb(array( get_phrase("create_new_field") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
        }

        if( isset($_POST["Field"]) )
        {
            $Field = $_POST["Field"];
            if( !$Field["title"] )
            {
                $formErrors[] = get_phrase("please_enter_a_valid_title");
            }

            if( !isset($aaaajn[$Field["area"]]) )
            {
                $formErrors[] = get_phrase("field_area_error");
            }

            if( !$Field["default_value"] )
            {
                $formErrors[] = get_phrase("field_default_value_error");
            }

            if( isset($formErrors) )
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }
            else
            {
                if( !isset($Field["viewpermissions"]) || !$Field["viewpermissions"] )
                {
                    $Field["viewpermissions"] = array(  );
                }

                $buildQuery = array( "area" => $Field["area"], "title" => $Field["title"], "default_value" => $Field["default_value"], "active" => $Field["active"], "display_order" => $Field["display_order"], "viewpermissions" => ($Field["viewpermissions"] ? serialize($Field["viewpermissions"]) : "") );
                if( $edit )
                {
                    $Phrase = get_phrase("new_field_x_updated", $Field["title"]);
                    $TSUE["TSUE_Database"]->update("tsue_auto_description", $buildQuery, "field_id=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $Phrase = get_phrase("new_field_x_updated", $Field["title"]);
                    $TSUE["TSUE_Database"]->insert("tsue_auto_description", $buildQuery);
                }

                $HTML .= successmessage($Phrase);
                logadminaction($aaaaju . $Phrase);
                handlerebuildcaches(false);
                handleprune(false);
                $uploadDone = true;
            }

        }

        if( !isset($uploadDone) )
        {
            $radioButtons = radioyesno("Field[active]", $Field["active"]);
            $formContents = aaaaan(get_phrase("field_is_active"), $radioButtons);
            $inputbox = inputbox("Field[title]", $Field["title"]);
            $formContents .= aaaaan(get_phrase("field_title"), $inputbox);
            $selectbox = selectbox("Field[area]", $Field["area"], $aaaajn);
            $formContents .= aaaaan(get_phrase("field_area"), $selectbox);
            $textarea = textarea("Field[default_value]", $Field["default_value"], false, "phraseTextarea textareaHeightNormal");
            $formContents .= aaaaan(get_phrase("field_default_values"), $textarea, get_phrase("field_default_values_alt"));
            $inputbox = inputbox("Field[display_order]", $Field["display_order"], "text textVeryTiny");
            $formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox);
            $Usergroups = aaaaaw("Field[viewpermissions][]", $Field["viewpermissions"]);
            $formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all"));
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    if( $enable_disable )
    {
        checkdemomode();
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
        $Field = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_description WHERE field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
        if( $Field )
        {
            $TSUE["TSUE_Database"]->update("tsue_auto_description", $BuildQuery, "field_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            $Phrase = get_phrase("new_field_x_updated", $Field["title"] . " (" . $enable_disable . ")");
            logadminaction($aaaaju . $Phrase);
            handlerebuildcaches(false);
            handleprune(false);
            $HTML .= successmessage($Phrase);
        }

    }

    if( $delete )
    {
        checkdemomode();
        $Field = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_description WHERE field_id = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Field )
        {
            $TSUE["TSUE_Database"]->delete("tsue_auto_description", "field_id = " . $TSUE["TSUE_Database"]->escape($delete));
            $Phrase = get_phrase("field_x_has_been_deleted", $Field["title"] . " (" . $delete . ")");
            logadminaction($aaaaju . $Phrase);
            handlerebuildcaches(false);
            handleprune(false);
            $HTML .= successmessage($Phrase);
        }

    }

    if( !$tableContents )
    {
        if( isset($_POST["sort"]) )
        {
            foreach( $_POST["sort"] as $field_id => $display_order )
            {
                $field_id = intval($field_id);
                $display_order = intval($display_order);
                $TSUE["TSUE_Database"]->update("tsue_auto_description", array( "display_order" => $display_order ), "field_id=" . $TSUE["TSUE_Database"]->escape($field_id));
            }
            $HTML .= successmessage(get_phrase("field_display_options_updated"));
            logadminaction($aaaaju . get_phrase("field_display_options_updated"));
            handleprune(false);
        }

        $Fields = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_auto_description ORDER BY active DESC, display_order ASC");
        if( !$TSUE["TSUE_Database"]->num_rows($Fields) )
        {
            $tableContents = errormessage(get_phrase("message_nothing_found"));
        }
        else
        {
            $tableContents = "";
            while( $Field = $TSUE["TSUE_Database"]->fetch_assoc($Fields) )
            {
                $linkClass = (!$Field["active"] ? "linkDisabled" : "");
                $aaaajq = aaaaae(array( "edit=" . $Field["field_id"] => array( "phrase" => $Field["title"], "class" => $linkClass ) ));
                $aaaajr = aaaaae(array( "delete=" . $Field["field_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
                if( $Field["active"] )
                {
                    $aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
                }
                else
                {
                    $aaaajs = aaaaae(array( "enable_disable=" . $Field["field_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
                }

                $tableContents .= aaaaag(array( array( "width" => "75%", "text" => $aaaajq . " <span class=\"smallPassiveText\">" . $aaaajn[$Field["area"]] . "</span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Field["field_id"] . "]", $Field["display_order"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "15%", "text" => $aaaajs . $aaaajr, "align" => "center" ) ));
            }
        }

    }

    $tableContents .= aaaaag(array( array( "width" => "70%", "text" => NULL ), array( "width" => "30%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
    $aaaagc = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_new_genre") ) ));
    $HTML .= aaaabn(createtable(get_phrase("auto_description"), $tableContents, 3, $createNewField));
    return $HTML;
}

function aaaaaj($Query = NULL)
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $aaaajv = aaaaae(array( "new=1" => array( "phrase" => get_phrase("members_create_new") ) ));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    if( $delete )
    {
        $Member = $TSUE["TSUE_Database"]->query_result("SELECT membername FROM tsue_members WHERE memberid = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Member )
        {
            deletemember($delete);
            logadminaction(get_phrase("members_member_deleted", $Member["membername"] . " (" . $delete . ")"));
        }

    }

    if( $edit || $new )
    {
        $Member = array( "membergroupid" => 2, "membername" => "", "password" => "", "passkey" => "", "email" => "", "themeid" => 1, "languageid" => 1, "timezone" => 1, "gender" => "", "visible" => 1, "accountParked" => 0 );
        $memberProfile = array( "date_of_birth" => "", "signature" => "", "country" => "", "custom_title" => "", "uploaded" => 0, "downloaded" => 0, "total_posts" => 0, "invites_left" => 0, "points" => 0, "total_warns" => 0, "hitRuns" => 0, "torrent_pass" => "", "torrentStyle" => 1, "defaultTorrentCategories" => "" );
        $memberPrivacy = array( "allow_view_profile" => "members", "receive_admin_email" => 1, "receive_pm_email" => 1, "show_your_age" => 1 );
        $aaaajw = "";
        $defaultEmail = "";
        if( $edit )
        {
            $Member = $TSUE["TSUE_Database"]->query_result("SELECT m.membergroupid, m.membername, m.passkey, m.email, m.themeid, m.languageid, m.timezone, m.gender, m.visible, m.accountParked, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_member_bans b USING(memberid) WHERE m.memberid = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Member )
            {
                return errormessage(get_phrase("member_not_found"));
            }

            $aaaajw = $Member["membername"];
            $defaultEmail = $Member["email"];
            $memberProfile = $TSUE["TSUE_Database"]->query_result("SELECT date_of_birth, signature, country, custom_title, uploaded, downloaded, total_posts, invites_left, points, total_warns, hitRuns, torrent_pass, torrentStyle, defaultTorrentCategories FROM tsue_member_profile WHERE memberid = " . $TSUE["TSUE_Database"]->escape($edit));
            $memberPrivacy = $TSUE["TSUE_Database"]->query_result("SELECT allow_view_profile, receive_admin_email, receive_pm_email, show_your_age FROM tsue_member_privacy WHERE memberid = " . $TSUE["TSUE_Database"]->escape($edit));
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Member["membername"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        }
        else
        {
            addbreadcrumb(array( get_phrase("members_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
        }

        if( isset($_POST["Member"]) )
        {
            $Member = $_POST["Member"];
            $memberProfile = $_POST["memberProfile"];
            $memberPrivacy = $_POST["memberPrivacy"];
            if( !isset($_POST["Member"]["visible"]) )
            {
                $Member["visible"] = 0;
            }

            if( !isset($_POST["Member"]["accountParked"]) )
            {
                $Member["accountParked"] = 0;
            }

            if( !isset($_POST["memberPrivacy"]["receive_admin_email"]) )
            {
                $memberPrivacy["receive_admin_email"] = 0;
            }

            if( !isset($_POST["memberPrivacy"]["receive_pm_email"]) )
            {
                $memberPrivacy["receive_pm_email"] = 0;
            }

            if( !isset($_POST["memberPrivacy"]["show_your_age"]) )
            {
                $memberPrivacy["show_your_age"] = 0;
            }

            if( !isset($_POST["memberProfile"]["defaultTorrentCategories"]) || empty($_POST["memberProfile"]["defaultTorrentCategories"]) )
            {
                $memberProfile["defaultTorrentCategories"] = "";
            }
            else
            {
                $aaaajx = array(  );
                foreach( $_POST["memberProfile"]["defaultTorrentCategories"] as $dtcid )
                {
                    $dtcid = intval($dtcid);
                    if( $dtcid )
                    {
                        $aaaajx[] = $dtcid;
                    }

                }
                $memberProfile["defaultTorrentCategories"] = implode(",", $aaaajx);
                unset($aaaajx);
            }

            if( !$Member["membername"] || !is_valid_string($Member["membername"]) )
            {
                $formErrors[] = get_phrase("invalid_membername");
            }
            else
            {
                if( strlen($Member["membername"]) < $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_min_char"] )
                {
                    $formErrors[] = get_phrase("invalid_membername_min_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_min_char"]);
                }
                else
                {
                    if( $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_max_char"] < strlen($Member["membername"]) )
                    {
                        $formErrors[] = get_phrase("invalid_membername_max_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_max_char"]);
                    }
                    else
                    {
                        $checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($Member["membername"]));
                        if( $checkMember && $Member["membername"] != $aaaajw )
                        {
                            $formErrors[] = get_phrase("invalid_membername_in_use");
                        }
                        else
                        {
                            if( $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_illegal_member_names"] )
                            {
                                $member_name_illegal_member_names = preg_split("/\\r?\\n/", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_name_illegal_member_names"], -1, PREG_SPLIT_NO_EMPTY);
                                if( $member_name_illegal_member_names )
                                {
                                    foreach( $member_name_illegal_member_names as $name )
                                    {
                                        $name = trim($name);
                                        if( $name === "" )
                                        {
                                            continue;
                                        }

                                        if( stripos($Member["membername"], $name) !== false && $Member["membername"] != $aaaajw )
                                        {
                                            $formErrors[] = get_phrase("invalid_membername_in_use");
                                        }

                                    }
                                }

                            }

                        }

                    }

                }

            }

            if( !is_valid_email($Member["email"]) )
            {
                $formErrors[] = get_phrase("invalid_email");
            }
            else
            {
                $checkEmail = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE email = " . $TSUE["TSUE_Database"]->escape($Member["email"]));
                if( $checkEmail && $Member["email"] != $defaultEmail )
                {
                    $formErrors[] = get_phrase("invalid_email_in_use");
                }

            }

            if( !$Member["passkey"] )
            {
                $Member["passkey"] = generatepasskey();
            }

            if( $Member["password"] )
            {
                if( strlen($Member["password"]) < $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"] )
                {
                    $formErrors[] = get_phrase("invalid_memberpassword_min_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"]);
                }
                else
                {
                    if( $Member["password"] == $Member["membername"] )
                    {
                        $formErrors[] = get_phrase("invalid_memberpassword_same_as_name");
                    }

                }

            }
            else
            {
                if( $new )
                {
                    $formErrors[] = get_phrase("invalid_memberpassword_min_char", $TSUE["TSUE_Settings"]->settings["global_settings"]["member_password_min_char"]);
                }

            }

            if( !$memberProfile["date_of_birth"] || substr_count($memberProfile["date_of_birth"], "/") != 2 || 10 < strlen($memberProfile["date_of_birth"]) )
            {
                $formErrors[] = get_phrase("invalid_date_of_birth");
            }
            else
            {
                list($day, $month, $year) = @tsue_explode("/", $memberProfile["date_of_birth"]);
                if( !checkdate($month, $day, $year) || date("Y") <= $year )
                {
                    $formErrors[] = get_phrase("invalid_date_of_birth");
                }

            }

            if( !isset($formErrors) )
            {
                if( empty($Member["password"]) )
                {
                    unset($Member["password"]);
                }
                else
                {
                    $Member["password"] = md5($Member["password"]);
                }

                $memberProfile["custom_title"] = html_declean($memberProfile["custom_title"]);
                $memberProfile["torrent_pass"] = substr($Member["passkey"], 0, 32);
                if( $edit )
                {
                    $TSUE["TSUE_Database"]->update("tsue_members", $Member, "memberid=" . $TSUE["TSUE_Database"]->escape($edit));
                    $TSUE["TSUE_Database"]->update("tsue_member_profile", $memberProfile, "memberid=" . $TSUE["TSUE_Database"]->escape($edit));
                    $TSUE["TSUE_Database"]->update("tsue_member_privacy", $memberPrivacy, "memberid=" . $TSUE["TSUE_Database"]->escape($edit));
                    $Member["memberid"] = $edit;
                }
                else
                {
                    $Member["password_date"] = TIMENOW;
                    $Member["joindate"] = TIMENOW;
                    $TSUE["TSUE_Database"]->insert("tsue_members", $Member);
                    $Member["memberid"] = $TSUE["TSUE_Database"]->insert_id();
                    $memberProfile["memberid"] = $Member["memberid"];
                    $TSUE["TSUE_Database"]->insert("tsue_member_profile", $memberProfile);
                    $memberPrivacy["memberid"] = $Member["memberid"];
                    $TSUE["TSUE_Database"]->insert("tsue_member_privacy", $memberPrivacy);
                }

                $aaaajy = get_phrase("members_member_updated", $Member["membername"] . " (" . $Member["memberid"] . ")");
                logadminaction($aaaajy);
                $memberQuery = array_merge($Member, $memberProfile, $memberPrivacy);
                logadminaction($aaaajy . "~~~" . serialize($memberQuery), 3);
                $HTML .= successmessage(get_phrase("message_saved"));
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $table1 = " \r\n\t\t\t<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("your_name") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("Member[membername]", $Member["membername"]) . "  " . ((isset($Member["isBanned"]) && $Member["isBanned"] ? "<span class=\"smallPassiveText\">" . get_phrase("banned") . "</span>" : "")) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("your_email") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("Member[email]", $Member["email"]) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("your_password") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("Member[password]", NULL) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t <tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("your_passkey") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("Member[passkey]", $Member["passkey"], "text" . (($edit ? " textanormal" : "")), NULL, false, false, ($edit ? "<a href=\"#\" id=\"reset_passkey\" data=\"" . $edit . "\">[" . get_phrase("reset_passkey") . "]</a>" : "")) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t <tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("your_membergroup") . "</td>\r\n\t\t\t\t\t<td>" . aaaabf("Member[membergroupid]", $Member["membergroupid"]) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("memberinfo_custom_title") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[custom_title]", strip_tags($memberProfile["custom_title"])) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\t\$(\"#reset_passkey\").click(function(e)\r\n\t\t\t\t{\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\tvar \$this = \$(this), \$memberid = parseInt(\$this.attr(\"data\"));\r\n\r\n\t\t\t\t\tif(\$memberid)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbuildQuery = \"isAjax=1&action=reset_passkey&memberid=\"+\$memberid;\r\n\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\tdata: buildQuery,\r\n\t\t\t\t\t\t\tsuccess: function(response)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(response.length == 40)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$('<div class=\"success\">" . get_phrase("reset_passkey_message", $Member["membername"]) . "</div>').insertAfter(\"#reset_passkey\");\r\n\t\t\t\t\t\t\t\t\t\$this.remove();\r\n\t\t\t\t\t\t\t\t\t\$('input[name=\"Member[passkey]\"]').val(response);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t</script>";
            $table2 = "\r\n\t\t\t<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">\r\n\t\t\t\t <tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("stats_uploaded") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[uploaded]", $memberProfile["uploaded"], "text texthalf", friendly_size($memberProfile["uploaded"])) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("stats_downloaded") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[downloaded]", $memberProfile["downloaded"], "text texthalf", friendly_size($memberProfile["downloaded"])) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t <tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("stats_total_posts") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[total_posts]", $memberProfile["total_posts"], "text texthalf") . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("stats_total_invites") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[invites_left]", $memberProfile["invites_left"], "text texthalf") . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("stats_points") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[points]", $memberProfile["points"], "text texthalf") . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
            $table3 = "\r\n\t\t\t<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("memberinfo_gender") . "</td>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<select name=\"Member[gender]\" class=\"select\">\r\n\t\t\t\t\t\t\t<option value=\"m\"" . (($Member["gender"] == "m" ? " selected=\"selected\"" : "")) . ">" . get_phrase("memberinfo_gender_male") . "</option>\r\n\t\t\t\t\t\t\t<option value=\"f\"" . (($Member["gender"] == "f" ? " selected=\"selected\"" : "")) . ">" . get_phrase("memberinfo_gender_female") . "</option>\r\n\t\t\t\t\t\t\t<option value=\"\"" . (($Member["gender"] == "" ? " selected=\"selected\"" : "")) . ">" . get_phrase("memberinfo_gender_unspecified") . "</option>\r\n\t\t\t\t\t\t</select>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t <tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("memberinfo_date_of_birth") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[date_of_birth]", $memberProfile["date_of_birth"], "text", NULL, true) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right; vertical-align: top;\">" . get_phrase("memberinfo_country") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[country]", $memberProfile["country"]) . " " . (($memberProfile["country"] ? getcountryflag($memberProfile["country"]) : "")) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
            $torrentCategoriesInbutboxes = torrentcategoriesinbutboxes("memberProfile[defaultTorrentCategories][]", "checkbox", explode(",", $memberProfile["defaultTorrentCategories"]));
            $table4 = "\r\n\t\t\t<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right; width: 150px;\">" . get_phrase("membercp_style") . "</td>\r\n\t\t\t\t\t<td style=\"vertical-align: top;\">" . selectbox("Member[themeid]", $Member["themeid"], aaaaap()) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right; width: 150px;\">" . get_phrase("torrent_listing") . "</td>\r\n\t\t\t\t\t<td style=\"vertical-align: top;\">" . selectbox("memberProfile[torrentStyle]", $memberProfile["torrentStyle"], array( 1 => get_phrase("modern"), 2 => get_phrase("classic") )) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t <tr>\r\n\t\t\t\t\t<td style=\"text-align: right; width: 150px;\">" . get_phrase("membercp_language") . "</td>\r\n\t\t\t\t\t<td style=\"vertical-align: top;\">" . selectbox("Member[languageid]", $Member["languageid"], aaaaaq()) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right; width: 150px;\">" . get_phrase("membercp_timezone") . "</td>\r\n\t\t\t\t\t<td style=\"vertical-align: top;\">" . selectbox("Member[timezone]", $Member["timezone"], fetch_timezones()) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td colspan=\"2\" style=\"border-top: 1px solid #ccc;\"></td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;vertical-align: top; width: 150px;\">" . get_phrase("default_categories") . "</td>\r\n\t\t\t\t\t<td style=\"vertical-align: top;\">" . $torrentCategoriesInbutboxes . "</td>\r\n\t\t\t\t</tr>\r\n\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td colspan=\"2\" style=\"border-top: 1px solid #ccc;\"></td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right; width: 150px; vertical-align: top;\">" . get_phrase("park_account") . "</td>\r\n\t\t\t\t\t<td style=\"vertical-align: top;\"><input type=\"checkbox\" name=\"Member[accountParked]\" value=\"1\"" . (($Member["accountParked"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("park_account_info") . "</span></td>\r\n\t\t\t\t</tr>\r\n\r\n\t\t\t</table>";
            $table5 = "\r\n\t\t\t<table border=\"0\" cellpadding=\"5\" width=\"700\" cellspacing=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("membercp_online_status") . "</td>\r\n\t\t\t\t\t<td><input type=\"checkbox\" name=\"Member[visible]\" value=\"1\"" . (($Member["visible"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("membercp_online_status_info") . "</span></td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("membercp_receive_email") . "</td>\r\n\t\t\t\t\t<td><input type=\"checkbox\" name=\"memberPrivacy[receive_admin_email]\" value=\"1\"" . (($memberPrivacy["receive_admin_email"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("membercp_receive_email_info") . "</span></td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("membercp_receive_pm_email") . "</td>\r\n\t\t\t\t\t<td><input type=\"checkbox\" name=\"memberPrivacy[receive_pm_email]\" value=\"1\"" . (($memberPrivacy["receive_pm_email"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("membercp_receive_pm_email_info") . "</span></td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("show_your_age") . "</td>\r\n\t\t\t\t\t<td><input type=\"checkbox\" name=\"memberPrivacy[show_your_age]\" value=\"1\"" . (($memberPrivacy["show_your_age"] == 1 ? " checked=\"checked\"" : "")) . " /> <span class=\"smallPassiveText\">" . get_phrase("show_your_age_info") . "</span></td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("membercp_view_your_details") . "</td>\r\n\t\t\t\t\t<td>" . selectbox("memberPrivacy[allow_view_profile]", $memberPrivacy["allow_view_profile"], array( "everyone" => get_phrase("membercp_all_visitors"), "members" => get_phrase("membercp_members_only"), "followed" => get_phrase("membercp_people_you_follow"), "none" => get_phrase("membercp_none") )) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
            $table6 = "\r\n\t\t\t<table border=\"0\" cellpadding=\"5\" width=\"100%\" cellspacing=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"align: right; vertical-align: top;\">" . textarea("memberProfile[signature]", $memberProfile["signature"], true) . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
            $table7 = "\r\n\t\t\t<table border=\"0\" cellpadding=\"5\" width=\"100%\" cellspacing=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("stats_total_warns") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[total_warns]", $memberProfile["total_warns"], "text texthalf") . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td style=\"text-align: right;\">" . get_phrase("stats_hitrun_warns") . "</td>\r\n\t\t\t\t\t<td>" . inputbox("memberProfile[hitRuns]", $memberProfile["hitRuns"], "text texthalf") . "</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
            $createTabs = createtabs(array( get_phrase("members_member_essantials") => $table1, get_phrase("stats_title") => $table2, get_phrase("navigation_membercp_personal_details") => $table3, get_phrase("navigation_membercp_preferences") => $table4, get_phrase("navigation_membercp_privacy") => $table5, get_phrase("navigation_membercp_signature") => $table6, get_phrase("member_manager_warned_members") => $table7 ));
            $HTML .= "\r\n            " . $createTabs . "\r\n            <div id=\"submit_reset_container\">\r\n\t\t\t\t " . (($edit ? "<span class=\"floatRight\">" . aaaaaf("?p=profile&pid=18&memberid=" . $edit, get_phrase("memberinfo_title", $Member["membername"])) . "</span>" : "")) . "\r\n\t\t\t\t  " . aaaabm(get_phrase("button_save"), get_phrase("button_reset")) . "\r\n            </div>";
            $aaaaam = ($edit ? array( "edit" => $edit ) : "");
            $HTML = aaaabn($HTML, $aaaaam);
        }

        if( !isset($updateDone) )
        {
            return $HTML;
        }

    }

    if( $Query )
    {
        $membersCount = $TSUE["TSUE_Database"]->num_rows($Query);
    }
    else
    {
        $membersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as membersCount FROM tsue_members");
    }

    if( !$membersCount )
    {
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_results_found"), "colspan" => 2 ) ));
    }
    else
    {
        $aaaajz = array(  );
        $bannedMembers = $TSUE["TSUE_Database"]->query("SELECT memberid FROM tsue_member_bans", true);
        if( $TSUE["TSUE_Database"]->num_rows($bannedMembers) )
        {
            while( $bannedMember = $TSUE["TSUE_Database"]->fetch_assoc($bannedMembers) )
            {
                $aaaajz[$bannedMember["memberid"]] = true;
            }
        }

        if( $Query )
        {
            $Members = $Query;
            $Pagination["0"] = "";
            $Pagination["1"] = "";
        }
        else
        {
            $Pagination = pagination($membersCount["membersCount"]);
            $Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, m.ipaddress, m.joindate, m.lastactivity, g.groupstyle, p.uploaded, p.downloaded, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_bans b USING(memberid) ORDER BY membername ASC " . $Pagination["0"]);
        }

        while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
        {
            if( !isset($aaaajz[$Member["memberid"]]) )
            {
                $aaaaka = aaaaae(array( "?action=Member Manager&do=Banned Members&ban=1&membername=" . $Member["membername"] => array( "phrase" => getimage("options/bannedmembers.png", get_phrase("banned_ban_member"), "", "16") ) ));
            }
            else
            {
                $aaaaka = aaaaae(array( "?action=Member Manager&do=Banned Members&lift=" . $Member["memberid"] => array( "phrase" => getimage("options/prune.png", get_phrase("banned_lift_ban"), "", "16") ) ));
            }

            $aaaakb = aaaaae(array( "edit=" . $Member["memberid"] => array( "phrase" => getmembername($Member["membername"], $Member["groupstyle"]) ) ));
            $aaaakc = aaaaae(array( "delete=" . $Member["memberid"] => array( "phrase" => getimage("buttons/delete_s.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            $joinDate = get_phrase("memberinfo_membersince", convert_time($Member["joindate"], "d-m-Y"));
            $lastActivity = get_phrase("memberinfo_lastactivity", convert_time($Member["lastactivity"], "d-m-Y"));
            $tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . "<span class=\"smallPassiveTextlowMargin\">" . (($Member["isBanned"] ? "(" . get_phrase("banned") . ") " : "")) . strip_tags($Member["ipaddress"]) . " / " . strip_tags($Member["email"]) . " / UL:" . friendly_size($Member["uploaded"]) . " / DL:" . friendly_size($Member["downloaded"]) . " / R:" . member_ratio($Member["uploaded"], $Member["downloaded"]) . " / " . $joinDate . " / " . $lastActivity . "</span>" ), array( "width" => "10%", "align" => "right", "text" => $aaaaka . $aaaakc ) ));
        }
    }

    $HTML .= createtable(get_phrase("member_manager_list_all_members_alt") . " (" . number_format(($Query ? $membersCount : $membersCount["membersCount"])) . ") (" . $aaaajv . ")", $tableContents, 2, $Pagination["1"]);
    return $HTML;
}

function manageawaitingapproval()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    if( isset($_POST["approve"]) && !empty($_POST["approve"]) )
    {
        $aaaakd = array(  );
        foreach( $_POST["approve"] as $MemberID )
        {
            if( intval($MemberID) )
            {
                $aaaakd[] = $MemberID;
            }

        }
        if( !empty($aaaakd) )
        {
            $aaaakd = implode(",", $aaaakd);
            $Members = $TSUE["TSUE_Database"]->query("SELECT memberid, membername, email FROM tsue_members WHERE memberid IN(" . $aaaakd . ") AND membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")");
            if( $TSUE["TSUE_Database"]->num_rows($Members) )
            {
                if( isset($_POST["deleteMembers"]) )
                {
                    while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
                    {
                        deletemember($Member["memberid"]);
                        logadminaction(get_phrase("members_member_deleted", $Member["membername"] . " (" . $Member["memberid"] . ")"));
                    }
                }
                else
                {
                    if( isset($_POST["approve_notify"]) && $_POST["approve_notify"] == 1 )
                    {
                        while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
                        {
                            $subject = get_phrase("approve_account_approved_title", $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"]);
                            $message = get_phrase("approve_account_approved_body", $Member["membername"], $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"], $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]);
                            sent_mail($Member["email"], $Member["membername"], $subject, $message);
                        }
                    }

                    $TSUE["TSUE_Database"]->update("tsue_members", array( "membergroupid" => is_member_of("registeredusers") ), "memberid IN(" . $aaaakd . ") AND membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")");
                    logadminaction(get_phrase("approve_members_approved", $aaaakd));
                }

            }

        }

    }

    $unapprovedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as unapprovedMembersCount FROM tsue_members WHERE membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ")");
    if( !$unapprovedMembersCount["unapprovedMembersCount"] )
    {
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("approve_no_results") ) ));
        return createtable(get_phrase("member_manager_awaiting_approval_alt"), $tableContents);
    }

    $Pagination = pagination($unapprovedMembersCount["unapprovedMembersCount"]);
    $Members = $TSUE["TSUE_Database"]->query("SELECT m.*, g.groupstyle FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE m.membergroupid IN(" . is_member_of("awaitingmoderation") . ", " . is_member_of("awaitingemailconfirmation") . ") " . $Pagination["0"]);
    while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
    {
        $aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Member["memberid"] => array( "phrase" => getmembername($Member["membername"], $Member["groupstyle"]) ) ));
        $joinDate = get_phrase("approve_account_created", convert_relative_time($Member["joindate"]));
        $tableContents .= aaaaag(array( array( "width" => "99%", "text" => $aaaakb . " <span class=\"smallPassiveText\">(" . strip_tags($Member["email"]) . ") -- " . $joinDate . "</span>" ), array( "width" => "1%", "text" => "<input type=\"checkbox\" name=\"approve[]\" value=\"" . $Member["memberid"] . "\" />" ) ));
    }
    $tableContents .= aaaaag(array( array( "width" => "99%", "text" => "<label><input type=\"checkbox\" name=\"approve_notify\" value=\"1\" checked=\"checked\" /> " . get_phrase("approve_notify") . "</label>  \r\n\t\t\t\t\t\t\t\t\t\t\t\t <input type=\"submit\" class=\"submit\" value=\"" . get_phrase("approve_approve_account") . "\" name=\"approveMembers\" /> \r\n\t\t\t\t\t\t\t\t\t\t\t\t <input type=\"submit\" class=\"submit\" value=\"" . get_phrase("delete_selected_members") . "\" name=\"deleteMembers\" />", "align" => "left" ), array( "width" => "1%", "text" => "<input type=\"checkbox\" name=\"checkALL\" value=\"approve[]\" />", "align" => "right" ) ));
    $HTML .= aaaabn(createtable(get_phrase("member_manager_awaiting_approval_alt"), $tableContents, 2, $Pagination["1"]));
    return $HTML;
}

function managebannedmembers()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $aaaake = aaaaae(array( "ban=1" => array( "phrase" => get_phrase("banned_ban_member") ) ));
    $ban = intval(getvar("ban"));
    $lift = intval(getvar("lift"));
    if( $lift )
    {
        $bannedMember = $TSUE["TSUE_Database"]->query_result("SELECT b.*, m.membername, mm.membername AS bannedBy FROM tsue_member_bans b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.banned_by=mm.memberid) WHERE b.memberid=" . $TSUE["TSUE_Database"]->escape($lift));
        if( !$bannedMember )
        {
            return errormessage(get_phrase("member_not_found"));
        }

        $TSUE["TSUE_Database"]->delete("tsue_member_bans", "memberid=" . $TSUE["TSUE_Database"]->escape($lift));
        logadminaction(get_phrase("banned_ban_has_been_lifted", $bannedMember["membername"], $TSUE["TSUE_Member"]["membername"]));
        $HTML .= successmessage(get_phrase("message_saved"));
        handlerebuildcaches(false);
    }

    if( $ban )
    {
        $banMember = array( "membername" => (isset($_GET["membername"]) ? strip_tags($_GET["membername"]) : ""), "memberid" => "", "banned_by" => $TSUE["TSUE_Member"]["memberid"], "ban_date" => TIMENOW, "end_date" => 0, "reason" => "" );
        if( isset($_POST["banMember"]) )
        {
            $banMember = array_merge($banMember, $_POST["banMember"]);
            if( !$banMember["membername"] )
            {
                $formErrors[] = get_phrase("member_not_found");
            }
            else
            {
                $checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($banMember["membername"]));
                if( !$checkMember )
                {
                    $formErrors[] = get_phrase("member_not_found");
                }
                else
                {
                    $banMember["memberid"] = $checkMember["memberid"];
                    $aaaakf = $banMember["membername"];
                    unset($banMember["membername"]);
                }

            }

            if( $banMember["end_date"] )
            {
                $end_date = list($day, $month, $year) = tsue_explode("/", $banMember["end_date"]);
                $end_date = strtotime((string) $year . "/" . $month . "/" . $day);
                if( !checkdate($month, $day, $year) || $end_date <= TIMENOW )
                {
                    $formErrors[] = get_phrase("banned_invalid_date");
                }

            }

            if( !isset($formErrors) )
            {
                if( isset($end_date) )
                {
                    $banMember["end_date"] = $end_date;
                }
                else
                {
                    $banMember["end_date"] = 0;
                }

                $TSUE["TSUE_Database"]->replace("tsue_member_bans", $banMember);
                logadminaction(get_phrase("banned_member_has_been_banned", $aaaakf, $TSUE["TSUE_Member"]["membername"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                handlerebuildcaches(false);
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $inputbox = inputbox("banMember[membername]", (isset($banMember["membername"]) ? $banMember["membername"] : $aaaakf), "text", NULL, false, true);
            $formContents = aaaaan(get_phrase("your_name"), $inputbox);
            $inputbox = inputbox("banMember[reason]", $banMember["reason"]);
            $formContents .= aaaaan(get_phrase("banned_reason"), $inputbox, get_phrase("banned_reason_alt"));
            $inputbox = inputbox("banMember[end_date]", $banMember["end_date"], "text texthalf", get_phrase("banned_ban_length_alt"), true);
            $formContents .= aaaaan(get_phrase("banned_ban_length"), $inputbox, get_phrase("banned_ban_length_alt"));
            $HTML .= aaaabg($formContents);
            return $HTML;
        }

    }

    $bannedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as bannedMembersCount FROM tsue_member_bans");
    if( !$bannedMembersCount["bannedMembersCount"] )
    {
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("banned_no_banned_members") ) ));
        return createtable(get_phrase("member_manager_banned_members_alt") . " (" . $aaaake . ")", $tableContents);
    }

    $Pagination = pagination($bannedMembersCount["bannedMembersCount"]);
    $bannedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, mm.membername AS bannedBy FROM tsue_member_bans b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.banned_by=mm.memberid) " . $Pagination["0"]);
    while( $bannedMember = $TSUE["TSUE_Database"]->fetch_assoc($bannedMembers) )
    {
        $reason = get_phrase("banned_reason") . ": " . (($bannedMember["reason"] ? strip_tags($bannedMember["reason"]) : ".."));
        $ban_date = get_phrase("banned_ban_started", convert_relative_time($bannedMember["ban_date"]));
        $end_date = get_phrase("banned_ban_ends", ($bannedMember["end_date"] && TIMENOW < $bannedMember["end_date"] ? convert_time($bannedMember["end_date"], "d/m/Y") : get_phrase("banned_ban_ends_never")));
        $banned_by = get_phrase("banned_banned_by", $bannedMember["bannedBy"]);
        $aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $bannedMember["memberid"] => array( "phrase" => $bannedMember["membername"] ) ));
        $aaaakg = aaaaae(array( "lift=" . $bannedMember["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("banned_lift_ban")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
        $tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $ban_date . " -- " . $end_date . " -- " . $banned_by . " -- " . $reason . "</span>" ), array( "width" => "10%", "text" => $aaaakg ) ));
    }
    $HTML .= createtable(get_phrase("member_manager_banned_members_alt") . " (" . number_format($bannedMembersCount["bannedMembersCount"]) . ") (" . $aaaake . ")", $tableContents, 2, $Pagination["1"]);
    return $HTML;
}

function managewarnedmembers()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $aaaakh = aaaaae(array( "warn=1" => array( "phrase" => get_phrase("warned_warn_member") ) ));
    $warn = intval(getvar("warn"));
    $lift = intval(getvar("lift"));
    if( $lift )
    {
        $warnedMember = $TSUE["TSUE_Database"]->query_result("SELECT w.*, m.membername, mm.membername AS warnedBy FROM tsue_member_warns w LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (w.warned_by=mm.memberid) WHERE w.warnid=" . $TSUE["TSUE_Database"]->escape($lift));
        if( !$warnedMember )
        {
            return errormessage(get_phrase("member_not_found"));
        }

        $TSUE["TSUE_Database"]->delete("tsue_member_warns", "warnid=" . $TSUE["TSUE_Database"]->escape($lift));
        $BuildQuery = array( "total_warns" => array( "escape" => 0, "value" => "IF(total_warns > 0, total_warns-1, 0)" ) );
        $TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $warnedMember["memberid"]);
        alert_member($warnedMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "warns", 0, "warn_lifted");
        logadminaction(get_phrase("warned_warn_has_been_lifted", $warnedMember["membername"], $TSUE["TSUE_Member"]["membername"]));
        $HTML .= successmessage(get_phrase("message_saved"));
        handlerebuildcaches(false);
    }

    if( $warn )
    {
        $warnMember = array( "membername" => (isset($_GET["membername"]) ? strip_tags($_GET["membername"]) : ""), "memberid" => "", "warned_by" => $TSUE["TSUE_Member"]["memberid"], "warn_date" => TIMENOW, "end_date" => 0, "notes" => "" );
        if( isset($_POST["warnMember"]) )
        {
            $warnMember = array_merge($warnMember, $_POST["warnMember"]);
            if( !$warnMember["membername"] )
            {
                $formErrors[] = get_phrase("member_not_found");
            }
            else
            {
                $checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($warnMember["membername"]));
                if( !$checkMember )
                {
                    $formErrors[] = get_phrase("member_not_found");
                }
                else
                {
                    $warnMember["memberid"] = $checkMember["memberid"];
                    $aaaaki = $warnMember["membername"];
                    unset($warnMember["membername"]);
                }

            }

            if( $warnMember["end_date"] )
            {
                $end_date = list($day, $month, $year) = tsue_explode("/", $warnMember["end_date"]);
                $end_date = strtotime((string) $year . "/" . $month . "/" . $day);
                if( !checkdate($month, $day, $year) || $end_date <= TIMENOW )
                {
                    $formErrors[] = get_phrase("warned_invalid_date");
                }

            }

            if( !isset($formErrors) )
            {
                if( isset($end_date) )
                {
                    $warnMember["end_date"] = $end_date;
                }
                else
                {
                    $warnMember["end_date"] = 0;
                }

                $TSUE["TSUE_Database"]->replace("tsue_member_warns", $warnMember);
                $BuildQuery = array( "total_warns" => array( "escape" => 0, "value" => "total_warns+1" ) );
                $TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $warnMember["memberid"]);
                alert_member($warnMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "warns", 0, "warn_member");
                logadminaction(get_phrase("warned_member_has_been_warned", $aaaaki, $TSUE["TSUE_Member"]["membername"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                handlerebuildcaches(false);
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $inputbox = inputbox("warnMember[membername]", (isset($warnMember["membername"]) ? $warnMember["membername"] : $aaaaki), "text", NULL, false, true);
            $formContents = aaaaan(get_phrase("your_name"), $inputbox);
            $inputbox = inputbox("warnMember[notes]", $warnMember["notes"]);
            $formContents .= aaaaan(get_phrase("warned_reason"), $inputbox, get_phrase("warned_reason_alt"));
            $inputbox = inputbox("warnMember[end_date]", $warnMember["end_date"], "text texthalf", get_phrase("warned_warn_length_alt"), true);
            $formContents .= aaaaan(get_phrase("warned_warn_length"), $inputbox, get_phrase("warned_warn_length_alt"));
            $HTML .= aaaabg($formContents);
            return $HTML;
        }

    }

    $warnedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as warnedMembersCount FROM tsue_member_warns");
    if( !$warnedMembersCount["warnedMembersCount"] )
    {
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("warned_no_warned_members") ) ));
        return createtable(get_phrase("member_manager_warned_members_alt") . " (" . $aaaakh . ")", $tableContents);
    }

    $Pagination = pagination($warnedMembersCount["warnedMembersCount"]);
    $warnedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, mm.membername AS warnedBy FROM tsue_member_warns b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.warned_by=mm.memberid) " . $Pagination["0"]);
    while( $warnedMember = $TSUE["TSUE_Database"]->fetch_assoc($warnedMembers) )
    {
        $notes = get_phrase("warned_reason") . ": " . (($warnedMember["notes"] ? strip_tags($warnedMember["notes"]) : ".."));
        $warn_date = get_phrase("warned_warn_started", convert_relative_time($warnedMember["warn_date"]));
        $end_date = get_phrase("warned_warn_ends", ($warnedMember["end_date"] && TIMENOW < $warnedMember["end_date"] ? convert_time($warnedMember["end_date"], "d/m/Y") : get_phrase("warned_warn_ends_never")));
        $warned_by = get_phrase("warned_warned_by", $warnedMember["warnedBy"]);
        $aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $warnedMember["memberid"] => array( "phrase" => $warnedMember["membername"] ) ));
        $aaaakj = aaaaae(array( "lift=" . $warnedMember["warnid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("warned_lift_warn")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
        $tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $warn_date . " -- " . $end_date . " -- " . $warned_by . " -- " . $notes . "</span>" ), array( "width" => "10%", "text" => $aaaakj ) ));
    }
    $HTML .= createtable(get_phrase("member_manager_warned_members_alt") . " (" . number_format($warnedMembersCount["warnedMembersCount"]) . ") (" . $aaaakh . ")", $tableContents, 2, $Pagination["1"]);
    return $HTML;
}

function managemembergroups()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $aaaakk = aaaaae(array( "new=1" => array( "phrase" => get_phrase("membergroups_create_new") ) ));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $copy = intval(getvar("copy"));
    $Permissions = array( "canview_member_profiles" => 1, "canreport" => 1, "canfollow" => 1, "canupload_avatar" => 0, "canpost_signature" => 0, "canvote_polls" => 1, "cansend_invite" => 1, "canpark_account" => 1, "canchange_own_email" => 1, "canreceive_pm_email" => 0, "canchange_birthday" => 0, "canview_torrents" => 1, "canview_torrent_details" => 1, "canview_peers" => 0, "canview_torrent_filelist" => 1, "candownload_torrents" => 1, "canupload_torrents" => 0, "canedit_own_torrents" => 1, "candelete_own_torrents" => 0, "canrequest_reseed" => 1, "canrefresh_imdb" => 0, "canupdate_external_torrents" => 1, "do_not_record_download_stats" => 0, "canuse_bookmarks" => 1, "force_to_read_unread_pm" => 0, "max_slot_limit" => 0, "minratio_dl_torrents" => 0, "canview_subtitles" => 1, "canupload_subtitles" => 0, "candownload_subtitles" => 1, "canpost_comments" => 1, "canedit_own_comments" => 1, "candelete_own_comments" => 0, "canpost_a_new_message" => 1, "canpost_a_reply_to_message" => 1, "canlike" => 1, "canview_like_list" => 0, "canview_any_forum" => 1, "cansearch_in_forums" => 1, "canview_shout" => 1, "canpost_shout" => 1, "canedit_own_shout" => 1, "candelete_own_shout" => 0, "canview_market" => 1, "canpurchase_item" => 1, "canrequest_torrent" => 1, "canvote_request" => 1, "canfill_request" => 0, "request_limit" => 1, "canview_dm" => 1, "candownload_dm" => 1, "canupload_dm" => 0, "canedit_own_files" => 0, "candelete_own_files" => 0, "speed_throttling_dm" => 250, "max_simultaneous_downloads" => 3, "max_bandwidth_usage_per_day" => 1073741824, "max_downloads_per_day" => 5, "canview_image_gallery" => 1, "canupload_image" => 0, "candelete_own_image" => 1, "max_image_uploads" => 10, "canlogin_admincp" => 0, "canedit_shout" => 0, "candelete_shout" => 0, "canprune_shouts" => 0, "canpost_notice" => 0, "canedit_comments" => 0, "candelete_comments" => 0, "canedit_torrents" => 0, "candelete_torrents" => 0, "canset_multipliers" => 0, "canview_invisible_members" => 0, "canview_special_details" => 0, "canview_debug" => 0, "canview_offline_website" => 0, "canview_all_profiles" => 0, "canmanage_reports" => 0, "canedit_subtitles" => 0, "candelete_subtitles" => 0, "canwarn_member" => 0, "canban_member" => 0, "canview_member_history" => 0, "canmute_member" => 0, "canremove_avatar" => 0, "canset_hitrun_ratio" => 0, "canmanage_applications" => 0, "candelete_request" => 0, "canedit_request" => 0, "cansticky_torrents" => 0, "canview_all_content" => 0, "candelete_files" => 0, "canedit_files" => 0, "cannuke_torrents" => 0, "candelete_image_gallery_files" => 0, "canreply_staff_messages" => 0, "candelete_staff_messages" => 0, "canreset_passkey" => 0, "canaward_members" => 0, "canreset_request" => 0, "canadd_note" => 0, "candelete_staff_notes" => 0, "canview_poll_voters" => 0, "canfill_upcomingreleases" => 0, "canedit_upcomingreleases" => 0, "candelete_upcomingreleases" => 0, "canbump_torrents" => 0, "candelete_applications" => 0, "can_moderate_torrents" => 0, "canuse_spam_cleaner" => 0 );
    if( isset($_POST["sort"]) )
    {
        foreach( $_POST["sort"] as $aaaakl => $Sort )
        {
            $aaaakl = intval($aaaakl);
            $Sort = intval($Sort);
            $TSUE["TSUE_Database"]->update("tsue_membergroups", array( "sort" => $Sort ), "membergroupid=" . $TSUE["TSUE_Database"]->escape($aaaakl));
        }
        logadminaction(get_phrase("pages_all_pages_updated"));
        handleprune(false);
        header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
        exit();
    }
    else
    {
        if( $delete )
        {
            $Membergroup = $TSUE["TSUE_Database"]->query_result("SELECT groupname, protected FROM tsue_membergroups WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($delete));
            if( !$Membergroup )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            if( $Membergroup["protected"] == 1 )
            {
                return errormessage(get_phrase("membergroups_cant_delete_default"));
            }

            $checkMembers = $TSUE["TSUE_Database"]->query("SELECT memberid, membergroupid FROM tsue_members WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($delete));
            if( $TSUE["TSUE_Database"]->num_rows($checkMembers) )
            {
                $TSUE["TSUE_Database"]->update("tsue_members", array( "membergroupid" => is_member_of("registeredusers") ), "membergroupid = " . $TSUE["TSUE_Database"]->escape($delete));
            }

            $TSUE["TSUE_Database"]->delete("tsue_membergroups", "membergroupid = " . $TSUE["TSUE_Database"]->escape($delete));
            logadminaction(get_phrase("membergroups_membergroup_deleted", $Membergroup["groupname"]));
            $HTML .= successmessage(get_phrase("membergroups_membergroup_deleted", $Membergroup["groupname"]));
            handlerebuildcaches(false);
        }

        if( $copy )
        {
            $Membergroup = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_membergroups WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($copy));
            if( !$Membergroup )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $Permissions = unserialize($Membergroup["permissions"]);
            $new = 1;
        }

        if( $edit || $new )
        {
            $Membergroup = array( "groupname" => "", "groupstyle" => "{membername}", "flood_limit" => 30, "showOnStaff" => 0, "passwordExpires" => 184 );
            $aaaaam = "";
            if( $edit )
            {
                $Membergroup = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_membergroups WHERE membergroupid = " . $TSUE["TSUE_Database"]->escape($edit));
                if( !$Membergroup )
                {
                    return errormessage(get_phrase("message_content_error"));
                }

                $Permissions = unserialize($Membergroup["permissions"]);
                $aaaaam = array( "edit" => $edit );
                addbreadcrumb(array( getmembername($Membergroup["groupname"], $Membergroup["groupstyle"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
            }
            else
            {
                addbreadcrumb(array( get_phrase("membergroups_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
            }

            if( isset($_POST["Membergroup"]) )
            {
                $Membergroup = $_POST["Membergroup"];
                if( !$Membergroup["groupname"] )
                {
                    $formErrors[] = get_phrase("membergroups_invalid_groupname");
                }

                if( !preg_match("#\\{membername\\}#", $Membergroup["groupstyle"]) )
                {
                    $formErrors[] = get_phrase("membergroups_invalid_groupstyle");
                }

                $Permissions = $_POST["Permissions"];
                if( !isset($formErrors) )
                {
                    $buildQuery = array( "groupname" => $Membergroup["groupname"], "groupstyle" => html_declean($Membergroup["groupstyle"]), "flood_limit" => intval($Membergroup["flood_limit"]), "permissions" => serialize($Permissions), "showOnStaff" => $Membergroup["showOnStaff"], "passwordExpires" => $Membergroup["passwordExpires"] );
                    if( $edit )
                    {
                        $TSUE["TSUE_Database"]->update("tsue_membergroups", $buildQuery, "membergroupid=" . $TSUE["TSUE_Database"]->escape($edit));
                        $aaaakm = $edit;
                    }
                    else
                    {
                        $TSUE["TSUE_Database"]->insert("tsue_membergroups", $buildQuery);
                        $aaaakn = $TSUE["TSUE_Database"]->insert_id();
                        $aaaahh = aaaahb();
                        if( !$aaaakn )
                        {
                            return NULL;
                        }

                        $aaaakm = $aaaakn;
                        $Forums = $TSUE["TSUE_Database"]->query("SELECT forumid FROM tsue_forums ORDER BY forumid ASC");
                        if( $TSUE["TSUE_Database"]->num_rows($Forums) )
                        {
                            while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) )
                            {
                                $aaaahi = serialize((isset($Permissions["canlogin_admincp"]) && $Permissions["canlogin_admincp"] ? $aaaahh["adminForumPermissions"] : $aaaahh["defaultForumPermissions"]));
                                $buildQuery = array( "forumid" => $Forum["forumid"], "membergroupid" => $aaaakn, "permissions" => $aaaahi );
                                $TSUE["TSUE_Database"]->replace("tsue_forums_permissions", $buildQuery);
                            }
                        }

                    }

                    if( $aaaakm )
                    {
                        $pagePermissions = getvar("pagePermissions", array(  ), false);
                        $aaaako = array(  );
                        if( is_array($pagePermissions) && !empty($pagePermissions) )
                        {
                            foreach( $pagePermissions as $pageID => $value )
                            {
                                $pageID = intval($pageID);
                                if( $pageID && $value == 1 )
                                {
                                    $aaaako[] = $pageID;
                                }

                            }
                        }

                        if( !empty($aaaako) )
                        {
                            $Pages = $TSUE["TSUE_Database"]->query("SELECT pageid, viewpermissions FROM tsue_pages WHERE pageid IN (" . implode(",", $aaaako) . ")");
                            if( $TSUE["TSUE_Database"]->num_rows($Pages) )
                            {
                                while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) )
                                {
                                    $viewpermissions = tsue_explode(",", $Page["viewpermissions"]);
                                    if( empty($viewpermissions) )
                                    {
                                        $viewpermissions = aaaakp();
                                    }
                                    else
                                    {
                                        if( !in_array($aaaakm, $viewpermissions) )
                                        {
                                            $viewpermissions[] = $aaaakm;
                                        }

                                    }

                                    $TSUE["TSUE_Database"]->update("tsue_pages", array( "viewpermissions" => implode(",", $viewpermissions) ), "pageid=" . $TSUE["TSUE_Database"]->escape($Page["pageid"]));
                                }
                                $Pages = $TSUE["TSUE_Database"]->query("SELECT pageid, viewpermissions FROM tsue_pages WHERE pageid NOT IN (" . implode(",", $aaaako) . ")");
                                if( $TSUE["TSUE_Database"]->num_rows($Pages) )
                                {
                                    while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) )
                                    {
                                        $viewpermissions = tsue_explode(",", $Page["viewpermissions"]);
                                        if( empty($viewpermissions) )
                                        {
                                            $viewpermissions = aaaakp($aaaakm);
                                        }

                                        $viewpermissions = aaaakq($viewpermissions, $aaaakm);
                                        $TSUE["TSUE_Database"]->update("tsue_pages", array( "viewpermissions" => implode(",", $viewpermissions) ), "pageid=" . $TSUE["TSUE_Database"]->escape($Page["pageid"]));
                                    }
                                }

                            }

                        }

                        $pluginPermissions = getvar("pluginPermissions", array(  ), false);
                        $aaaakr = array(  );
                        if( is_array($pluginPermissions) && !empty($pluginPermissions) )
                        {
                            foreach( $pluginPermissions as $pluginID => $value )
                            {
                                $pluginID = intval($pluginID);
                                if( $pluginID && $value == 1 )
                                {
                                    $aaaakr[] = $pluginID;
                                }

                            }
                        }

                        if( !empty($aaaakr) )
                        {
                            $Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, viewpermissions FROM tsue_plugins WHERE pluginid IN (" . implode(",", $aaaakr) . ")");
                            if( $TSUE["TSUE_Database"]->num_rows($Plugins) )
                            {
                                while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
                                {
                                    $viewpermissions = tsue_explode(",", $Plugin["viewpermissions"]);
                                    if( empty($viewpermissions) )
                                    {
                                        $viewpermissions = aaaakp();
                                    }
                                    else
                                    {
                                        if( !in_array($aaaakm, $viewpermissions) )
                                        {
                                            $viewpermissions[] = $aaaakm;
                                        }

                                    }

                                    $TSUE["TSUE_Database"]->update("tsue_plugins", array( "viewpermissions" => implode(",", $viewpermissions) ), "pluginid=" . $TSUE["TSUE_Database"]->escape($Plugin["pluginid"]));
                                }
                                $Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, viewpermissions FROM tsue_plugins WHERE pluginid NOT IN (" . implode(",", $aaaakr) . ")");
                                if( $TSUE["TSUE_Database"]->num_rows($Plugins) )
                                {
                                    while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
                                    {
                                        $viewpermissions = tsue_explode(",", $Plugin["viewpermissions"]);
                                        if( empty($viewpermissions) )
                                        {
                                            $viewpermissions = aaaakp($aaaakm);
                                        }

                                        $viewpermissions = aaaakq($viewpermissions, $aaaakm);
                                        $TSUE["TSUE_Database"]->update("tsue_plugins", array( "viewpermissions" => implode(",", $viewpermissions) ), "pluginid=" . $TSUE["TSUE_Database"]->escape($Plugin["pluginid"]));
                                    }
                                }

                            }

                        }

                        $torrentCategoryViewPermissions = getvar("torrentCategoryViewPermissions", array(  ), false);
                        $torrentCategoryDownloadPermissions = getvar("torrentCategoryDownloadPermissions", array(  ), false);
                        $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC");
                        while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
                        {
                            $cviewpermissions = tsue_explode(",", $Category["cviewpermissions"]);
                            if( isset($torrentCategoryViewPermissions[$Category["cid"]]) && !in_array($aaaakm, $cviewpermissions) )
                            {
                                $cviewpermissions[] = $aaaakm;
                            }
                            else
                            {
                                if( !isset($torrentCategoryViewPermissions[$Category["cid"]]) && in_array($aaaakm, $cviewpermissions) )
                                {
                                    $cviewpermissions = aaaakq($cviewpermissions, $aaaakm);
                                }

                            }

                            $cviewpermissions = implode(",", $cviewpermissions);
                            $TSUE["TSUE_Database"]->update("tsue_torrents_categories", array( "cviewpermissions" => $cviewpermissions ), "cid=" . $TSUE["TSUE_Database"]->escape($Category["cid"]));
                        }
                        $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC");
                        while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
                        {
                            $cdownloadpermissions = tsue_explode(",", $Category["cdownloadpermissions"]);
                            if( isset($torrentCategoryDownloadPermissions[$Category["cid"]]) && !in_array($aaaakm, $cdownloadpermissions) )
                            {
                                $cdownloadpermissions[] = $aaaakm;
                            }
                            else
                            {
                                if( !isset($torrentCategoryDownloadPermissions[$Category["cid"]]) && in_array($aaaakm, $cdownloadpermissions) )
                                {
                                    $cdownloadpermissions = aaaakq($cdownloadpermissions, $aaaakm);
                                }

                            }

                            $cdownloadpermissions = implode(",", $cdownloadpermissions);
                            $TSUE["TSUE_Database"]->update("tsue_torrents_categories", array( "cdownloadpermissions" => $cdownloadpermissions ), "cid=" . $TSUE["TSUE_Database"]->escape($Category["cid"]));
                        }
                    }

                    logadminaction(get_phrase("membergroups_membergroup_updated", $Membergroup["groupname"]));
                    $HTML .= successmessage(get_phrase("message_saved"));
                    handlerebuildcaches(false);
                    handleprune();
                    $updateDone = true;
                }
                else
                {
                    $HTML .= errormessage(implode("<br />", $formErrors));
                }

            }

            if( !isset($updateDone) )
            {
                $inputbox = inputbox("Membergroup[groupname]", $Membergroup["groupname"]);
                $formContents = aaaaan(get_phrase("membergroups_groupname"), $inputbox);
                $inputbox = inputbox("Membergroup[groupstyle]", html_clean($Membergroup["groupstyle"]), "text", "", false, false, getmembername($Membergroup["groupname"], $Membergroup["groupstyle"]));
                $formContents .= aaaaan(get_phrase("membergroups_groupstyle"), $inputbox);
                $inputbox = inputbox("Membergroup[flood_limit]", intval($Membergroup["flood_limit"]));
                $formContents .= aaaaan(get_phrase("membergroups_flood_limit"), $inputbox, get_phrase("set_to_0_for_no_limit"));
                $inputbox = radioyesno("Membergroup[showOnStaff]", intval($Membergroup["showOnStaff"]));
                $formContents .= aaaaan(get_phrase("membergroups_show_on_staff_page"), $inputbox);
                $inputbox = inputbox("Membergroup[passwordExpires]", intval($Membergroup["passwordExpires"]));
                $formContents .= aaaaan(get_phrase("membergroups_password_expires"), $inputbox, get_phrase("membergroups_password_expires_alt"));
                $aaaagp = aaaagq(array( "canview_member_profiles", "canreport", "canfollow", "canupload_avatar", "canpost_signature", "canvote_polls", "cansend_invite", "canpark_account", "canchange_own_email", "canreceive_pm_email", "canchange_birthday" ), $Permissions, "membergroups_general_permissions");
                $formContents .= aaaaan(get_phrase("membergroups_general_permissions"), $aaaagp);
                $aaaagp = aaaagq(array( "canview_torrents", "canview_torrent_details", "canview_peers", "canview_torrent_filelist", "candownload_torrents", "canupload_torrents" => array( "canupload_torrents" => array( get_phrase("option_yes") => 1, get_phrase("option_no") => 0, get_phrase("option_moderate") => 2 ) ), "canedit_own_torrents", "candelete_own_torrents", "canrequest_reseed", "canrefresh_imdb", "canupdate_external_torrents", "do_not_record_download_stats", "force_to_read_unread_pm", "canuse_bookmarks" ), $Permissions, "membergroups_torrent_permissions");
                $aaaagp .= aaaaks(array( "max_slot_limit" => get_phrase("set_to_0_for_no_limit"), "minratio_dl_torrents" => get_phrase("set_to_0_for_no_limit") ), $Permissions);
                $formContents .= aaaaan(get_phrase("membergroups_torrent_permissions"), $aaaagp);
                $aaaagp = aaaagq(array( "canview_subtitles", "canupload_subtitles", "candownload_subtitles" ), $Permissions, "membergroups_subtitles_permissions");
                $formContents .= aaaaan(get_phrase("membergroups_subtitles_permissions"), $aaaagp);
                $aaaagp = aaaagq(array( "canpost_comments", "canedit_own_comments", "candelete_own_comments" ), $Permissions, "membergroups_comment_permissions");
                $formContents .= aaaaan(get_phrase("membergroups_comment_permissions"), $aaaagp);
                $aaaagp = aaaagq(array( "canpost_a_new_message", "canpost_a_reply_to_message" ), $Permissions, "membergroups_pm_permissions");
                $formContents .= aaaaan(get_phrase("membergroups_pm_permissions"), $aaaagp);
                $aaaagp = aaaagq(array( "canlike", "canview_like_list" ), $Permissions, "membergroups_like_permissions");
                $formContents .= aaaaan(get_phrase("membergroups_like_permissions"), $aaaagp);
                $aaaagp = aaaagq(array( "canview_any_forum", "cansearch_in_forums" ), $Permissions, "membergroups_forum_permissions");
                $formContents .= aaaaan(get_phrase("membergroups_forum_permissions"), $aaaagp);
                $aaaagp = aaaagq(array( "canview_shout", "canpost_shout", "canedit_own_shout", "candelete_own_shout" ), $Permissions, "membergroups_shoutbox_permissions");
                $formContents .= aaaaan(get_phrase("membergroups_shoutbox_permissions"), $aaaagp);
                $aaaagp = aaaagq(array( "canview_market", "canpurchase_item" ), $Permissions, "membergroups_market_permissions");
                $formContents .= aaaaan(get_phrase("membergroups_market_permissions"), $aaaagp);
                $aaaagp = aaaagq(array( "canrequest_torrent", "canvote_request", "canfill_request" ), $Permissions, "request_a_torrent_permissions");
                $aaaagp .= aaaaks(array( "request_limit" => get_phrase("set_to_0_for_no_limit") ), $Permissions);
                $formContents .= aaaaan(get_phrase("request_a_torrent_permissions"), $aaaagp);
                $aaaagp = aaaagq(array( "canview_dm", "candownload_dm", "canupload_dm", "canedit_own_files", "candelete_own_files" ), $Permissions, "dm_title");
                $aaaagp .= aaaaks(array( "speed_throttling_dm" => get_phrase("set_to_0_for_no_limit"), "max_simultaneous_downloads" => get_phrase("set_to_0_for_no_limit"), "max_bandwidth_usage_per_day" => friendly_size($Permissions["max_bandwidth_usage_per_day"]) . " | " . get_phrase("set_to_0_for_no_limit"), "max_downloads_per_day" => get_phrase("set_to_0_for_no_limit") ), $Permissions);
                $formContents .= aaaaan(get_phrase("dm_title") . " (" . get_phrase("dm_title_alt") . ")", $aaaagp);
                $aaaagp = aaaagq(array( "canview_image_gallery", "canupload_image", "candelete_own_image" ), $Permissions, "image_gallery_permissions");
                $aaaagp .= aaaaks(array( "max_image_uploads" => get_phrase("set_to_0_for_no_limit") ), $Permissions);
                $formContents .= aaaaan(get_phrase("image_gallery_permissions"), $aaaagp);
                $aaaagp = aaaagq(array( "canlogin_admincp", "canedit_shout", "candelete_shout", "canprune_shouts", "canpost_notice", "canedit_comments", "candelete_comments", "canedit_torrents", "candelete_torrents", "canset_multipliers", "canview_invisible_members", "canview_special_details", "canview_debug", "canview_offline_website", "canview_all_profiles", "canmanage_reports", "canedit_subtitles", "candelete_subtitles", "canwarn_member", "canban_member", "canview_member_history", "canmute_member", "canremove_avatar", "canset_hitrun_ratio", "canmanage_applications", "candelete_request", "canedit_request", "cansticky_torrents", "canview_all_content", "candelete_files", "canedit_files", "cannuke_torrents", "candelete_image_gallery_files", "canreply_staff_messages", "candelete_staff_messages", "canreset_passkey", "canaward_members", "canreset_request", "canadd_note", "candelete_staff_notes", "canview_poll_voters", "canfill_upcomingreleases", "canedit_upcomingreleases", "candelete_upcomingreleases", "canbump_torrents", "candelete_applications", "can_moderate_torrents", "canuse_spam_cleaner" ), $Permissions, "membergroups_administrator_permissions");
                $formContents .= aaaaan(get_phrase("membergroups_administrator_permissions"), $aaaagp);
                $subPagesCache = array(  );
                $aaaakt = array(  );
                $Pages = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_pages ORDER BY sort ASC");
                while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) )
                {
                    if( $Page["parentid"] )
                    {
                        $subPagesCache[$Page["parentid"]][] = $Page;
                    }
                    else
                    {
                        $aaaakt[] = $Page;
                    }

                }
                $pagePermissions = "\r\n\t\t\t" . get_phrase("select_pages_to_allow_view_for_this_group") . "\r\n\t\t\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t<tr>";
                $Count = 0;
                $maxPerRow = 4;
                foreach( $aaaakt as $Page )
                {
                    if( $Count % $maxPerRow == 0 )
                    {
                        $pagePermissions .= "\r\n\t\t\t\t\t</tr><tr>";
                    }

                    $Count++;
                    $aaaaku = "";
                    if( isset($subPagesCache[$Page["pageid"]]) )
                    {
                        foreach( $subPagesCache[$Page["pageid"]] as $subPage )
                        {
                            $checked = "";
                            if( $edit && in_array($edit, tsue_explode(",", $subPage["viewpermissions"])) || isset($_POST["pagePermissions"][$subPage["pageid"]]) || empty($subPage["viewpermissions"]) )
                            {
                                $checked = " checked=\"checked\"";
                            }

                            $aaaaku .= "\r\n\t\t\t\t\t\t<div style=\"margin-left: 20px;\" class=\"forumSub\">\r\n\t\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"pagePermissions[" . $subPage["pageid"] . "]\" value=\"1\"" . $checked . " /> " . $TSUE["TSUE_Language"]["phrase"][$subPage["phrase"]] . "</label>\r\n\t\t\t\t\t\t</div>";
                        }
                    }

                    $checked = "";
                    if( $edit && in_array($edit, tsue_explode(",", $Page["viewpermissions"])) || isset($_POST["pagePermissions"][$Page["pageid"]]) || empty($Page["viewpermissions"]) )
                    {
                        $checked = " checked=\"checked\"";
                    }

                    $pagePermissions .= "\r\n\t\t\t\t\t<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">\r\n\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"pagePermissions[" . $Page["pageid"] . "]\" value=\"1\"" . $checked . " /> " . $TSUE["TSUE_Language"]["phrase"][$Page["phrase"]] . "</label>\r\n\t\t\t\t\t\t" . $aaaaku . "\t\t\t\t\t\t\r\n\t\t\t\t\t</td>";
                }
                $pagePermissions .= "\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
                $pluginPermissions = "\r\n\t\t\t" . get_phrase("select_plugins_to_allow_view_for_this_group") . "\r\n\t\t\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t<tr>";
                $Count = 0;
                $maxPerRow = 3;
                $Plugins = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_plugins ORDER BY name ASC");
                while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
                {
                    if( $Count % $maxPerRow == 0 )
                    {
                        $pluginPermissions .= "\r\n\t\t\t\t\t</tr><tr>";
                    }

                    $Count++;
                    $checked = "";
                    if( $edit && in_array($edit, tsue_explode(",", $Plugin["viewpermissions"])) || isset($_POST["pluginPermissions"][$Plugin["pluginid"]]) || empty($Plugin["viewpermissions"]) )
                    {
                        $checked = " checked=\"checked\"";
                    }

                    $pluginPermissions .= "\r\n\t\t\t\t\t<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">\r\n\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"pluginPermissions[" . $Plugin["pluginid"] . "]\" value=\"1\"" . $checked . " /> " . $Plugin["name"] . "</label>\r\n\t\t\t\t\t</td>";
                }
                $pluginPermissions .= "\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
                $aaaact = array(  );
                $aaaafx = array(  );
                $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC");
                while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
                {
                    if( $Category["pid"] )
                    {
                        $aaaact[$Category["pid"]][] = $Category;
                    }
                    else
                    {
                        $aaaafx[] = $Category;
                    }

                }
                $torrentCategoryViewPermissions = "\r\n\t\t\t" . get_phrase("select_torrent_categories_to_allow_view_for_this_group") . "\r\n\t\t\t<h3>" . get_phrase("global_view_permissions") . "</h3>\r\n\t\t\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t<tr>";
                $Count = 0;
                $maxPerRow = 4;
                foreach( $aaaafx as $Category )
                {
                    if( $Count % $maxPerRow == 0 )
                    {
                        $torrentCategoryViewPermissions .= "\r\n\t\t\t\t\t</tr><tr>";
                    }

                    $Count++;
                    $subCategoryList = "";
                    if( isset($aaaact[$Category["cid"]]) )
                    {
                        foreach( $aaaact[$Category["cid"]] as $subCategory )
                        {
                            $checked = "";
                            if( $edit && in_array($edit, tsue_explode(",", $subCategory["cviewpermissions"])) || isset($_POST["torrentCategoryViewPermissions"][$subCategory["cid"]]) )
                            {
                                $checked = " checked=\"checked\"";
                            }

                            $subCategoryList .= "\r\n\t\t\t\t\t\t<div style=\"margin-left: 20px;\" class=\"forumSub\">\r\n\t\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"torrentCategoryViewPermissions[" . $subCategory["cid"] . "]\" value=\"1\"" . $checked . " /> " . $subCategory["cname"] . "</label>\r\n\t\t\t\t\t\t</div>";
                        }
                    }

                    $checked = "";
                    if( $edit && in_array($edit, tsue_explode(",", $Category["cviewpermissions"])) || isset($_POST["torrentCategoryViewPermissions"][$Category["cid"]]) )
                    {
                        $checked = " checked=\"checked\"";
                    }

                    $torrentCategoryViewPermissions .= "\r\n\t\t\t\t\t<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">\r\n\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"torrentCategoryViewPermissions[" . $Category["cid"] . "]\" value=\"1\"" . $checked . " /> " . $Category["cname"] . "</label>\r\n\t\t\t\t\t\t" . $subCategoryList . "\r\n\t\t\t\t\t</td>";
                }
                $torrentCategoryViewPermissions .= "\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
                $torrentCategoryDownloadPermissions = "\r\n\t\t\t<h3>" . get_phrase("global_download_permissions") . "</h3>\r\n\t\t\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t<tr>";
                $Count = 0;
                $maxPerRow = 4;
                foreach( $aaaafx as $Category )
                {
                    if( $Count % $maxPerRow == 0 )
                    {
                        $torrentCategoryDownloadPermissions .= "\r\n\t\t\t\t\t</tr><tr>";
                    }

                    $Count++;
                    $subCategoryList = "";
                    if( isset($aaaact[$Category["cid"]]) )
                    {
                        foreach( $aaaact[$Category["cid"]] as $subCategory )
                        {
                            $checked = "";
                            if( $edit && in_array($edit, tsue_explode(",", $subCategory["cdownloadpermissions"])) || isset($_POST["torrentCategoryDownloadPermissions"][$subCategory["cid"]]) )
                            {
                                $checked = " checked=\"checked\"";
                            }

                            $subCategoryList .= "\r\n\t\t\t\t\t\t<div style=\"margin-left: 20px;\" class=\"forumSub\">\r\n\t\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"torrentCategoryDownloadPermissions[" . $subCategory["cid"] . "]\" value=\"1\"" . $checked . " /> " . $subCategory["cname"] . "</label>\r\n\t\t\t\t\t\t</div>";
                        }
                    }

                    $checked = "";
                    if( $edit && in_array($edit, tsue_explode(",", $Category["cdownloadpermissions"])) || isset($_POST["torrentCategoryDownloadPermissions"][$Category["cid"]]) )
                    {
                        $checked = " checked=\"checked\"";
                    }

                    $torrentCategoryDownloadPermissions .= "\r\n\t\t\t\t\t<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">\r\n\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"torrentCategoryDownloadPermissions[" . $Category["cid"] . "]\" value=\"1\"" . $checked . " /> " . $Category["cname"] . "</label>\r\n\t\t\t\t\t\t" . $subCategoryList . "\r\n\t\t\t\t\t</td>";
                }
                $torrentCategoryDownloadPermissions .= "\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
                $createTabs = createtabs(array( get_phrase("membergroup_options_and_perms") => $formContents, get_phrase("pages_view_permissions") => $pagePermissions, get_phrase("plugins_view_permissions") => $pluginPermissions, get_phrase("torrents_view_and_download_permissions") => $torrentCategoryViewPermissions . $torrentCategoryDownloadPermissions ));
                $HTML .= aaaabn($createTabs . "\r\n            <div id=\"submit_reset_container\">\r\n                 " . aaaabm(get_phrase("button_save"), get_phrase("button_reset")) . "\r\n            </div>", $aaaaam);
                return $HTML;
            }

        }

        $membergroupCache = array(  );
        $Members = $TSUE["TSUE_Database"]->query("SELECT membergroupid FROM tsue_members", true);
        while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
        {
            if( isset($membergroupCache[$Member["membergroupid"]]) )
            {
                $membergroupCache[$Member["membergroupid"]]++;
            }
            else
            {
                $membergroupCache[$Member["membergroupid"]] = 1;
            }

        }
        $Membergroups = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_membergroups");
        while( $Membergroup = $TSUE["TSUE_Database"]->fetch_assoc($Membergroups) )
        {
            $aaaakv = aaaaae(array( "edit=" . $Membergroup["membergroupid"] => array( "phrase" => getmembername($Membergroup["groupname"], $Membergroup["groupstyle"]) ) ));
            $aaaakw = aaaaae(array( "delete=" . $Membergroup["membergroupid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            $aaaakx = aaaaae(array( "copy=" . $Membergroup["membergroupid"] => array( "phrase" => getimage("buttons/copy.png", get_phrase("create_a_new_membergroup_based_on_this")) ) ));
            $tableContents .= aaaaag(array( array( "text" => $aaaakv . " <span class=\"smallPassiveText\">" . get_phrase("membergroups_groupid", $Membergroup["membergroupid"]) . " / " . get_phrase("membergroups_total_members", (isset($membergroupCache[$Membergroup["membergroupid"]]) ? number_format($membergroupCache[$Membergroup["membergroupid"]]) : 0)) . "</span>" ), array( "text" => inputbox("sort[" . $Membergroup["membergroupid"] . "]", $Membergroup["sort"], "sortSecond", get_phrase("global_sort")), "align" => "right" ), array( "width" => "12%", "text" => $aaaakx . $aaaakw, "align" => "right" ) ));
        }
        $tableContents .= aaaaag(array( array( "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "right", "colspan" => 2 ), array( "text" => "&nbsp;", "align" => "right", "colspan" => 1, "width" => "12%" ) ));
        $HTML .= aaaabn(createtable(get_phrase("member_manager_membergroups_alt"), $tableContents, 3, $aaaakk));
        return $HTML;
    }

}

function aaaagq($permNames, $Permissions, $REL)
{
    global $TSUE;
    $List = "\r\n\t<table cellpadding=\"5\" cellspacing=\"0\" border=\"0\">\r\n\t\t<tr>\r\n\t\t\t<td>&nbsp;</td>\r\n\t\t\t<td>\r\n\t\t\t\t<a href=\"javascript:void(0);\" id=\"setALLYes\" rel=\"" . $REL . "\">" . getimage("status/checkall_yes.png", get_phrase("global_setall_yes")) . "</a>&nbsp;&nbsp;\r\n\t\t\t\t<a href=\"javascript:void(0);\" id=\"setALLNo\" rel=\"" . $REL . "\">" . getimage("status/checkall_no.png", get_phrase("global_setall_no")) . "</a>\r\n\t\t\t</td>\r\n\t\t</tr>";
    foreach( $permNames as $Name )
    {
        if( !is_array($Name) )
        {
            $phrase = $Name;
            $radioBox = radioyesno("Permissions[" . $Name . "]", (isset($Permissions[$Name]) ? $Permissions[$Name] : ""), NULL, $REL) . ((isset($TSUE["TSUE_Language"]["phrase"][(string) $Name . "_tip"]) ? aaaaky($TSUE["TSUE_Language"]["phrase"][(string) $Name . "_tip"]) : ""));
        }
        else
        {
            $radioBox = "";
            foreach( $Name as $nName => $nValues )
            {
                $phrase = $nName;
                foreach( $nValues as $nm => $val )
                {
                    $radioBox .= aaaakz("Permissions[" . $nName . "]", $val, isset($Permissions[$nName]) && $Permissions[$nName] == $val, $nm, (isset($TSUE["TSUE_Language"]["phrase"][(string) $nName . "_tip"]) ? aaaaky($TSUE["TSUE_Language"]["phrase"][(string) $nName . "_tip"]) : ""));
                }
            }
        }

        $phrase = get_phrase($phrase);
        if( 50 < strlen($phrase) )
        {
            $phrase = "<span style=\"font-size: 11px;\">" . $phrase . "</span>";
        }

        $List .= "\r\n\t\t<tr class=\"tableContentTR\">\r\n\t\t\t<td style=\"text-align: right; font-weight: bold; width: 350px; vertical-align: top;\" width=\"350\" valign=\"top\">" . $phrase . "</td>\r\n\t\t\t<td style=\"text-align: left; width: 300px;\" width=\"300\">" . $radioBox . "</td>\r\n\t\t</tr>";
    }
    $List .= "</table>";
    return $List;
}

function aaaaks($permNames, $Permissions)
{
    global $TSUE;
    $List = "\r\n\t<table cellpadding=\"5\" cellspacing=\"0\" border=\"0\">";
    foreach( $permNames as $permName => $nextToInputText )
    {
        $Options = array( "Phrase" => $permName, "fieldName" => "Permissions[" . $permName . "]", "Value" => (isset($Permissions[$permName]) ? $Permissions[$permName] : ""), "altPhrase" => (isset($TSUE["TSUE_Language"]["phrase"][$permName . "_alt"]) ? $TSUE["TSUE_Language"]["phrase"][$permName . "_alt"] : ""), "nextToInputText" => $nextToInputText );
        $phrase = get_phrase($Options["Phrase"]);
        if( 50 < strlen($phrase) )
        {
            $phrase = "<span style=\"font-size: 11px;\">" . $phrase . "</span>";
        }

        $List .= "\r\n\t\t<tr class=\"tableContentTR\">\r\n\t\t\t<td style=\"text-align: right; font-weight: bold; width: 350px; vertical-align: top;\" width=\"350\" valign=\"top\">" . $phrase . "</td>\r\n\t\t\t<td style=\"text-align: left; width: 300px;\" width=\"300\">\r\n\t\t\t\t" . inputbox($Options["fieldName"], $Options["Value"], "text", $Options["altPhrase"]) . " \r\n\t\t\t\t<span class=\"smallPassiveText\">" . $Options["nextToInputText"] . "</span>\r\n\t\t\t</td>\r\n\t\t</tr>";
    }
    $List .= "</table>";
    return $List;
}

function manageemailmembers()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $emailMembers = array( "from_name" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"], "from_email" => $TSUE["TSUE_Settings"]->settings["global_settings"]["website_sendmail_from"], "email_title" => "", "email_body" => "", "receive_admin_email" => 1, "membername" => "", "email" => "", "joindate" => "", "lastactivity" => "", "membergroup" => array(  ) );
    if( isset($_POST["emailMembers"]) )
    {
        checkdemomode();
        $emailMembers = $_POST["emailMembers"];
        if( !isset($emailMembers["membergroup"]) )
        {
            $emailMembers["membergroup"] = array(  );
        }

        if( !isset($emailMembers["receive_admin_email"]) )
        {
            $emailMembers["receive_admin_email"] = 0;
        }

        foreach( array( "from_name", "from_email", "email_title", "email_body" ) as $required )
        {
            if( empty($emailMembers[$required]) )
            {
                $errorDetected = true;
            }

        }
        if( isset($errorDetected) )
        {
            $formErrors[] = get_phrase("message_required_fields_error");
        }

        if( !is_valid_email($emailMembers["from_email"]) )
        {
            $formErrors[] = get_phrase("invalid_email");
        }

        if( isset($formErrors) )
        {
            $HTML .= errormessage(implode("<br />", $formErrors));
        }
        else
        {
            $Where = "";
            $searchCriteria = array(  );
            if( $emailMembers["receive_admin_email"] )
            {
                $searchCriteria[] = "privacy.receive_admin_email = 1";
            }

            if( $emailMembers["membername"] )
            {
                $searchCriteria[] = "m.membername = " . $TSUE["TSUE_Database"]->escape($emailMembers["membername"]);
            }

            if( $emailMembers["email"] )
            {
                $searchCriteria[] = "m.email = " . $TSUE["TSUE_Database"]->escape($emailMembers["email"]);
            }

            if( $emailMembers["joindate"] )
            {
                $joindate = list($day, $month, $year) = tsue_explode("/", $emailMembers["joindate"]);
                $joindate = strtotime((string) $year . "/" . $month . "/" . $day);
                $searchCriteria[] = "m.joindate > " . $joindate;
            }

            if( $emailMembers["lastactivity"] )
            {
                $lastactivity = list($day, $month, $year) = tsue_explode("/", $emailMembers["lastactivity"]);
                $lastactivity = strtotime((string) $year . "/" . $month . "/" . $day);
                $searchCriteria[] = "m.lastactivity > " . $lastactivity;
            }

            $aaaala = false;
            if( !empty($emailMembers["membergroup"]) )
            {
                $aaaala = in_array(is_member_of("banned"), $emailMembers["membergroup"]);
                $searchCriteria[] = "m.membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $emailMembers["membergroup"])) . ")";
            }

            if( !empty($searchCriteria) )
            {
                $WHERE = " WHERE " . implode(" AND ", $searchCriteria);
            }

            $Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, b.memberid AS isBanned, g.groupstyle, p.uploaded, p.downloaded \r\n\t\t\tFROM tsue_members m \r\n\t\t\tLEFT JOIN tsue_member_bans b USING(memberid)\r\n\t\t\tLEFT JOIN tsue_membergroups g USING(membergroupid) \r\n\t\t\tLEFT JOIN tsue_member_profile p USING(memberid) \r\n\t\t\tLEFT JOIN tsue_member_privacy privacy USING(memberid)\r\n\t\t\t" . $WHERE . " ORDER BY membername ASC");
            if( !($totalMembers = $TSUE["TSUE_Database"]->num_rows($Members)) )
            {
                $HTML .= errormessage(get_phrase("no_members_matched"));
            }
            else
            {
                while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
                {
                    if( !($aaaala && $Member["isBanned"]) )
                    {
                        sent_mail($Member["email"], $Member["membername"], $emailMembers["email_title"], $emailMembers["email_body"], $emailMembers["from_email"], $emailMembers["from_name"], false);
                    }

                }
                $HTML .= successmessage(get_phrase("email_members_email_was_sent", number_format($totalMembers)));
            }

        }

    }

    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_from_name"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[from_name]", $emailMembers["from_name"]) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_from_email"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[from_email]", $emailMembers["from_email"]) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_email_title"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[email_title]", $emailMembers["email_title"]) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("email_members_email_body"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => textarea("emailMembers[email_body]", $emailMembers["email_body"], true) ) ));
    $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("global_search_criteria"), "colspan" => 2 ) ), "tableContentTDHeader");
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => "<input type=\"checkbox\" name=\"emailMembers[receive_admin_email]\" value=\"1\"" . (($emailMembers["receive_admin_email"] == 1 ? " checked=\"checked\"" : "")) . " /> " . get_phrase("email_members_only_to_members_receive_email_enabled") ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_name"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[membername]", $emailMembers["membername"], "text texthalf", NULL, false, true) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_email"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[email]", $emailMembers["email"], "text texthalf") ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_joindate"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[joindate]", $emailMembers["joindate"], "text texthalf", NULL, true) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_lastactivity"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("emailMembers[lastactivity]", $emailMembers["lastactivity"], "text texthalf", NULL, true) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_membergroup"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => aaaaaw("emailMembers[membergroup][]", $emailMembers["membergroup"], 3) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => aaaabm(get_phrase("member_manager_email_members"), get_phrase("button_reset")) ) ));
    $HTML .= aaaabn(createtable(get_phrase("member_manager_email_members_alt"), $tableContents, 2)) . "\r\n\t<script type=\"text/javascript\">\r\n\t\t\$(\"#simpleForm\").submit(function(e)\r\n\t\t{\r\n\t\t\tTSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("sending_email") . "', false, false);\r\n\t\t});\r\n\t</script>";
    return $HTML;
}

function managesearchmembers()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $Search = array( "membername" => "", "email" => "", "passkey" => "", "joindate" => "", "lastactivity" => "", "ipaddress" => "", "uploaded" => "", "downloaded" => "", "ratio" => "", "ratioType" => "", "total_posts" => "", "membergroup" => array(  ) );
    if( isset($_POST["Search"]) )
    {
        $Search = $_POST["Search"];
        $Where = "";
        $searchCriteria = array(  );
        if( !isset($Search["membergroup"]) )
        {
            $Search["membergroup"] = array(  );
        }

        if( $Search["membername"] )
        {
            $searchCriteria[] = "m.membername LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["membername"]) . "%'";
        }

        if( $Search["email"] )
        {
            $searchCriteria[] = "m.email LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["email"]) . "%'";
        }

        if( $Search["passkey"] )
        {
            $searchCriteria[] = "m.passkey LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["passkey"]) . "%'";
        }

        if( $Search["joindate"] )
        {
            $joindate = list($day, $month, $year) = tsue_explode("/", $Search["joindate"]);
            $joindate = strtotime((string) $year . "/" . $month . "/" . $day);
            $searchCriteria[] = "m.joindate > " . $joindate;
        }

        if( $Search["lastactivity"] )
        {
            $lastactivity = list($day, $month, $year) = tsue_explode("/", $Search["lastactivity"]);
            $lastactivity = strtotime((string) $year . "/" . $month . "/" . $day);
            $searchCriteria[] = "m.lastactivity > " . $lastactivity;
        }

        if( $Search["ipaddress"] )
        {
            $searchCriteria[] = "m.ipaddress LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Search["ipaddress"]) . "%'";
        }

        if( $Search["uploaded"] )
        {
            $searchCriteria[] = "p.uploaded > " . (0 + $Search["uploaded"]);
        }

        if( $Search["downloaded"] )
        {
            $searchCriteria[] = "p.downloaded > " . (0 + $Search["downloaded"]);
        }

        $Search["ratio"] = 0 + $Search["ratio"];
        if( $Search["ratio"] && in_array($Search["ratioType"], array( "=", ">", ">=", "<", "<=" )) )
        {
            $searchCriteria[] = "(p.downloaded > 0 AND p.uploaded/p.downloaded " . $Search["ratioType"] . " " . $Search["ratio"] . ")";
        }

        if( $Search["total_posts"] )
        {
            $searchCriteria[] = "p.total_posts > " . (0 + $Search["total_posts"]);
        }

        if( !empty($Search["membergroup"]) )
        {
            $searchCriteria[] = "m.membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $Search["membergroup"])) . ")";
        }

        if( empty($searchCriteria) )
        {
            $HTML .= errormessage(get_phrase("no_members_matched"));
        }
        else
        {
            $WHERE = " WHERE " . implode(" AND ", $searchCriteria);
            $Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, m.joindate, m.lastactivity, m.ipaddress, g.groupstyle, p.uploaded, p.downloaded, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_privacy privacy USING(memberid) LEFT JOIN tsue_member_bans b USING(memberid)" . $WHERE . " ORDER BY m.membername ASC");
            if( !$TSUE["TSUE_Database"]->num_rows($Members) )
            {
                $HTML .= errormessage(get_phrase("no_members_matched"));
            }
            else
            {
                $TSUE["do"] = "All Members";
                return aaaaaj($Members);
            }

        }

    }

    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_name"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[membername]", $Search["membername"], "text texthalf", NULL, false, true) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_email"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[email]", $Search["email"], "text texthalf") ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_passkey"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[passkey]", $Search["passkey"], "text texthalf") ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_joindate"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[joindate]", $Search["joindate"], "text texthalf", NULL, true) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_lastactivity"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[lastactivity]", $Search["lastactivity"], "text texthalf", NULL, true) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_ip"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[ipaddress]", $Search["ipaddress"], "text texthalf") ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_uploaded"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[uploaded]", $Search["uploaded"], "text texthalf") ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_downloaded"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[downloaded]", $Search["downloaded"], "text texthalf") ) ));
    $aaaaao = array( "=" => "=", ">" => ">", ">=" => ">=", "<" => "<", "<=" => "<=" );
    $selectbox = selectbox("Search[ratioType]", $Search["ratioType"], $aaaaao, "select smallSelect");
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_ratio"), "align" => "right" ), array( "width" => "80%", "text" => $selectbox . inputbox("Search[ratio]", $Search["ratio"], "text texttiny") ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("stats_total_posts"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("Search[total_posts]", $Search["total_posts"], "text texthalf") ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_membergroup"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => aaaaaw("Search[membergroup][]", $Search["membergroup"], 3) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
    $HTML .= aaaabn(createtable(get_phrase("member_manager_search_members_alt"), $tableContents, 2));
    return $HTML;
}

function managepeers()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $delete = intval(getvar("delete"));
    $keywords = trim(getvar("keywords"));
    $searchType = trim(getvar("searchType"));
    $WHERE = "";
    if( !in_array($searchType, array( "membername", "torrentname" )) )
    {
        $searchType = "membername";
    }

    if( $keywords && $searchType )
    {
        switch( $searchType )
        {
            case "membername":
                $WHERE = " AND m.membername = " . $TSUE["TSUE_Database"]->escape($keywords);
                break;
            case "torrentname":
                $WHERE = " AND t.name LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'";
                break;
        }
    }

    if( getsetting("xbt", "active") )
    {
        $orderBy["fieldname"] = "p.mtime";
    }
    else
    {
        $orderBy["fieldname"] = "p.last_updated";
    }

    $orderBy["type"] = "DESC";
    if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) )
    {
        $allowedFieldNames = array( "m.membername", "t.name", "p.ipaddress", "p.total_uploaded", "p.upload_speed", "p.total_downloaded", "p.download_speed", "p.announced", "p.last_updated" );
        $allowedTypes = array( "DESC", "ASC" );
        if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) )
        {
            $orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"];
            $orderBy["type"] = $_REQUEST["orderBy"]["type"];
        }

    }

    if( $delete )
    {
        if( getsetting("xbt", "active") )
        {
            $memberid = intval(getvar("memberid"));
            $Peer = $TSUE["TSUE_Database"]->query_result("SELECT SQL_NO_CACHE uid FROM xbt_files_users WHERE fid = " . $TSUE["TSUE_Database"]->escape($delete) . " AND uid=" . $TSUE["TSUE_Database"]->escape($memberid));
            if( $Peer )
            {
                $TSUE["TSUE_Database"]->delete("xbt_files_users", "fid=" . $TSUE["TSUE_Database"]->escape($delete) . " AND uid=" . $TSUE["TSUE_Database"]->escape($memberid));
                logadminaction(get_phrase("peers_peer_deleted", $delete));
            }

        }
        else
        {
            $Peer = $TSUE["TSUE_Database"]->query_result("SELECT SQL_NO_CACHE memberid FROM tsue_torrents_peers WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete));
            if( $Peer )
            {
                $TSUE["TSUE_Database"]->delete("tsue_torrents_peers", "pid=" . $TSUE["TSUE_Database"]->escape($delete));
                logadminaction(get_phrase("peers_peer_deleted", $delete));
            }

        }

    }

    if( getsetting("xbt", "active") )
    {
        $peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, m.membername, m.email, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE);
    }
    else
    {
        $peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, m.membername, m.email, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE);
    }

    $tableContents .= aaaaag(array( array( "width" => "25%", "text" => get_phrase("your_name") ), array( "width" => "15%", "text" => get_phrase("search_criteria_ip") ), array( "width" => "15%", "text" => get_phrase("stats_uploaded") ), array( "width" => "15%", "text" => get_phrase("stats_downloaded") ), array( "width" => "10%", "text" => get_phrase("torrents_peer_announced") ), array( "width" => "15%", "text" => get_phrase("torrents_peer_last_updated") ), array( "width" => "5%", "text" => get_phrase("global_action") ) ), "tableContentTR", "tableContentTDHeader");
    if( !$peerCount )
    {
        $Pagination["1"] = "";
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_results_found"), "colspan" => 7 ) ));
    }
    else
    {
        $Pagination = pagination($peerCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&amp;orderBy[type]=" . $orderBy["type"] . (($keywords ? "&amp;keywords=" . urlencode($keywords) . "&amp;searchType=" . $searchType : "")));
        if( getsetting("xbt", "active") )
        {
            $aaaalb["fieldname"] = str_replace(array( "p.ipaddress", "p.total_uploaded", "p.upload_speed", "p.total_downloaded", "p.download_speed", "p.last_updated" ), array( "m.ipaddress", "p.uploaded", "p.up_rate", "p.downloaded", "p.down_rate", "p.mtime" ), $orderBy["fieldname"]);
            $Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.fid as pid, p.announced, p.port, p.downloaded as total_downloaded, p.uploaded as total_uploaded, p.mtime as last_updated, p.up_rate as upload_speed, p.down_rate as download_speed, t.tid, t.name, m.memberid, m.membername, m.ipaddress, m.email, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE . " ORDER BY " . $aaaalb["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
        }
        else
        {
            $Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.*, t.name, m.membername, m.email, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
        }

        while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) )
        {
            $torrentName = strip_tags($Peer["name"]);
            $aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Peer["memberid"] => array( "phrase" => getmembername($Peer["membername"], $Peer["groupstyle"]) ) ));
            $aaaalc = aaaaae(array( "delete=" . $Peer["pid"] . "&memberid=" . $Peer["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            $tableContents .= aaaaag(array( array( "text" => $aaaakb . "<br />" . aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Peer["tid"], "<span title=\"" . $torrentName . "\">" . substr($torrentName, 0, 25) . "</span>", $torrentName) ), array( "text" => strip_tags($Peer["ipaddress"]) . ":" . intval($Peer["port"]) . ((getsetting("xbt", "active") ? "" : "<div style=\"font-size: 10px;\">" . get_phrase("peer_id") . ": " . friendlypeerid($Peer["peer_id"]) . "</div>")) ), array( "text" => friendly_size($Peer["total_uploaded"]) . "<br />" . friendly_size($Peer["upload_speed"]) . "/s" ), array( "text" => friendly_size($Peer["total_downloaded"]) . "<br />" . friendly_size($Peer["download_speed"]) . "/s" ), array( "text" => number_format($Peer["announced"]) ), array( "text" => convert_relative_time($Peer["last_updated"]) ), array( "text" => $aaaalc ) ));
        }
    }

    $selectBox = "\r\n\t<select name=\"searchType\" class=\"selectNoWidth\">\r\n\t\t<option value=\"membername\"" . (($searchType == "membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>\r\n\t\t<option value=\"torrentname\"" . (($searchType == "torrentname" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>\r\n\t</select>";
    $searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
    $HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array(  ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />";
    $HTML .= createtable(get_phrase("member_manager_peers_alt"), $tableContents, 7, $Pagination["1"]);
    $HTML .= "\r\n\t<div style=\"float: right; margin-top: 10px;\">\r\n\t\t" . aaaabn("\r\n\t\t" . get_phrase("torrents_sort_by") . "\r\n\t\t<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">\r\n\t\t\t<option value=\"m.membername\"" . (($orderBy["fieldname"] == "m.membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>\r\n\t\t\t<option value=\"t.name\"" . (($orderBy["fieldname"] == "t.name" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>\r\n\t\t\t<option value=\"p.ipaddress\"" . (($orderBy["fieldname"] == "p.ipaddress" ? " selected=\"selected\"" : "")) . ">" . get_phrase("search_criteria_ip") . "</option>\r\n\t\t\t<option value=\"p.total_uploaded\"" . (($orderBy["fieldname"] == "p.total_uploaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_uploaded") . "</option>\r\n\t\t\t<option value=\"p.upload_speed\"" . (($orderBy["fieldname"] == "p.upload_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_uploaded") . "</option>\r\n\t\t\t<option value=\"p.total_downloaded\"" . (($orderBy["fieldname"] == "p.total_downloaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_downloaded") . "</option>\r\n\t\t\t<option value=\"p.download_speed\"" . (($orderBy["fieldname"] == "p.download_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_downloaded") . "</option>\r\n\t\t\t<option value=\"p.announced\"" . (($orderBy["fieldname"] == "p.announced" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_announced") . "</option>\r\n\t\t\t<option value=\"p.last_updated\"" . (($orderBy["fieldname"] == "p.last_updated" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_last_updated") . "</option>\r\n\t\t</select>\r\n\t\t<select name=\"orderBy[type]\" class=\"selectNoWidth\">\r\n\t\t\t<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>\r\n\t\t\t<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>\r\n\t\t</select>\r\n\t\t<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "\r\n\t</div>";
    return $HTML;
}

function manageaccountupgrades()
{
    global $TSUE;
    $HTML = "";
    $aaaald = aaaaae(array( "new=1" => array( "phrase" => get_phrase("upgrade_create_new") ) ));
    $aaaale = aaaaae(array( "list_active_upgrades=1" => array( "phrase" => get_phrase("upgrade_list_active_upgrades") ) ));
    $aaaalf = aaaaae(array( "list_active_upgrades=1&create_new_active_upgrade=1" => array( "phrase" => get_phrase("create_new_active_upgrade") ) ));
    $enable_disable = intval(getvar("enable_disable"));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $list_active_upgrades = intval(getvar("list_active_upgrades"));
    $promotion_id = intval(getvar("promotion_id"));
    $create_new_active_upgrade = intval(getvar("create_new_active_upgrade"));
    $edit_promotion_id = intval(getvar("edit_promotion_id"));
    if( $list_active_upgrades )
    {
        if( $promotion_id )
        {
            $aaaalg = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, u.upgrade_title, m.membername FROM tsue_member_upgrades_promotions p LEFT JOIN tsue_member_upgrades u USING(upgrade_id) LEFT JOIN tsue_members m USING(memberid) WHERE p.promotion_id = " . $TSUE["TSUE_Database"]->escape($promotion_id) . " AND p.active = 1");
            if( !$aaaalg )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $buildQuery = array( "expiry_date" => TIMENOW );
            $TSUE["TSUE_Database"]->update("tsue_member_upgrades_promotions", $buildQuery, "promotion_id =" . $TSUE["TSUE_Database"]->escape($promotion_id));
            aaaabd("expired.php");
            logadminaction(get_phrase("upgrade_member_downrage_completed", $aaaalg["membername"], $aaaalg["upgrade_title"]));
            $HTML .= successmessage(get_phrase("message_saved"));
        }

        addbreadcrumb(array( get_phrase("upgrade_list_active_upgrades") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;list_active_upgrades=1" ));
        if( $create_new_active_upgrade )
        {
            $membername = getvar("membername");
            $upgrade_id = intval(getvar("upgrade_id"));
            addbreadcrumb(array( get_phrase("create_new_active_upgrade") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;list_active_upgrades=1&create_new_active_upgrade=1" ));
            if( ispost() )
            {
                return aaaalh($membername, $upgrade_id);
            }

            $inputbox = inputbox("membername", $membername, "text", "", false, true);
            $formContents = aaaaan(get_phrase("upgrade_membername"), $inputbox);
            $optionArray = array(  );
            $Upgrades = $TSUE["TSUE_Database"]->query("SELECT upgrade_id, upgrade_title FROM tsue_member_upgrades");
            while( $Upgrade = $TSUE["TSUE_Database"]->fetch_assoc($Upgrades) )
            {
                $optionArray[$Upgrade["upgrade_id"]] = $Upgrade["upgrade_title"];
            }
            $selectbox = selectbox("upgrade_id", $upgrade_id, $optionArray);
            $formContents .= aaaaan(get_phrase("upgrade_account_upgrades"), $selectbox);
            $HTML .= aaaabg($formContents);
            return $HTML;
        }

        if( $edit_promotion_id )
        {
            $aaaali = $TSUE["TSUE_Database"]->query_result("SELECT p.promotion_id, p.start_date, p.expiry_date, p.memberid, p.active, u.upgrade_title, u.upgrade_length, u.upgrade_length_type, t.txn_id, t.amount, t.currency, a.title as processor, m.membername, g.groupname, g.groupstyle FROM tsue_member_upgrades_promotions p LEFT JOIN tsue_member_upgrades u USING(upgrade_id) LEFT JOIN tsue_member_upgrades_transaction t USING(txn_id) LEFT JOIN tsue_member_upgrades_api a USING(api_id) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.promotion_id = " . $TSUE["TSUE_Database"]->escape($edit_promotion_id) . " AND p.active = 1");
            if( $aaaali )
            {
                addbreadcrumb(array( $aaaali["upgrade_title"] . ": " . getmembername($aaaali["membername"], $aaaali["groupstyle"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;list_active_upgrades=1&edit_promotion_id=" . $edit_promotion_id ));
                if( ispost() )
                {
                    $expiry_date = getvar("expiry_date");
                    if( $expiry_date )
                    {
                        $expiry_date = str_replace("/", "-", $expiry_date);
                        $expiry_date = strtotime($expiry_date);
                    }

                    if( $expiry_date )
                    {
                        $TSUE["TSUE_Database"]->update("tsue_member_upgrades_promotions", array( "expiry_date" => $expiry_date ), "promotion_id = " . $TSUE["TSUE_Database"]->escape($edit_promotion_id) . " AND active = 1");
                        $aaaali["expiry_date"] = $expiry_date;
                        logadminaction(get_phrase("upgrade_item_has_been_updated", $aaaali["upgrade_title"] . ": " . getmembername($aaaali["membername"], $aaaali["groupstyle"])));
                        $HTML .= successmessage(get_phrase("message_saved"));
                        handlerebuildcaches(false);
                        $updateDone = true;
                    }

                    if( !$expiry_date )
                    {
                        $HTML .= errormessage(get_phrase("message_required_fields_error"));
                    }

                }

                if( !isset($updateDone) )
                {
                    if( $aaaali["upgrade_length_type"] == "lifetime" || !$aaaali["expiry_date"] )
                    {
                        $expiry_date = "";
                    }
                    else
                    {
                        $expiry_date = date("d/m/Y", $aaaali["expiry_date"]);
                    }

                    $inputbox = inputbox("expiry_date", $expiry_date, "text", "", true);
                    $formContents = aaaaan(get_phrase("upgrade_item_expires"), $inputbox);
                    $HTML .= aaaabg($formContents);
                    return $HTML;
                }

            }

        }

        $aaaalj = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as upgradesCount FROM tsue_member_upgrades_promotions WHERE active = 1");
        $Pagination = pagination($aaaalj["upgradesCount"], "list_active_upgrades=1");
        if( $aaaalj && $aaaalj["upgradesCount"] )
        {
            $memberUpgrades = $TSUE["TSUE_Database"]->query("SELECT p.promotion_id, p.start_date, p.expiry_date, p.memberid, p.active, u.upgrade_title, u.upgrade_length, u.upgrade_length_type, t.txn_id, t.amount, t.currency, a.title as processor, m.membername, g.groupname, g.groupstyle FROM tsue_member_upgrades_promotions p LEFT JOIN tsue_member_upgrades u USING(upgrade_id) LEFT JOIN tsue_member_upgrades_transaction t USING(txn_id) LEFT JOIN tsue_member_upgrades_api a USING(api_id) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.active = 1 GROUP BY txn_id ORDER BY p.expiry_date " . $Pagination["0"]);
            $tableContents = aaaaag(array( array( "width" => "15%", "text" => get_phrase("upgrade_membername") ), array( "width" => "25%", "text" => get_phrase("upgrade_item_title") ), array( "width" => "20%", "text" => get_phrase("upgrade_item_length") ), array( "width" => "15%", "text" => get_phrase("upgrade_item_start_date") ), array( "width" => "15%", "text" => get_phrase("upgrade_item_expires") ), array( "width" => "10%", "text" => get_phrase("global_action") ) ), NULL, "tableContentTDHeader");
            while( $Upgrade = $TSUE["TSUE_Database"]->fetch_assoc($memberUpgrades) )
            {
                $noAction = 0;
                if( $Upgrade["upgrade_length_type"] == "lifetime" || !$Upgrade["expiry_date"] )
                {
                    $Upgrade["upgrade_length"] = "";
                    $Upgrade["upgrade_length_type"] = get_phrase("upgrade_lifetime");
                }
                else
                {
                    if( $Upgrade["upgrade_length_type"] )
                    {
                        $Upgrade["upgrade_length_type"] = get_phrase("upgrade_" . $Upgrade["upgrade_length_type"] . ((1 < $Upgrade["upgrade_length"] ? "s" : "")));
                    }

                }

                if( !$Upgrade["txn_id"] )
                {
                    $Upgrade["txn_id"] = "N/A";
                }

                if( $Upgrade["amount"] )
                {
                    $upradePrice = get_phrase("upgrade_price", $Upgrade["amount"], strtoupper($Upgrade["currency"]), $Upgrade["upgrade_length"], $Upgrade["upgrade_length_type"]);
                }
                else
                {
                    $upradePrice = "[N/A]";
                }

                $Upgrade["start_date"] = convert_relative_time($Upgrade["start_date"]);
                if( !$Upgrade["active"] )
                {
                    $Upgrade["expiry_date"] = get_phrase("upgrade_disabled");
                }
                else
                {
                    if( !$Upgrade["expiry_date"] || $Upgrade["upgrade_length_type"] == "lifetime" )
                    {
                        $Upgrade["expiry_date"] = get_phrase("upgrade_lifetime");
                    }
                    else
                    {
                        if( $Upgrade["expiry_date"] <= TIMENOW )
                        {
                            $Upgrade["expiry_date"] = get_phrase("upgrade_expired_waiting_cron");
                            $noAction = 1;
                        }
                        else
                        {
                            $Upgrade["expiry_date"] = convert_time($Upgrade["expiry_date"]);
                        }

                    }

                }

                $editLink = aaaaae(array( "list_active_upgrades=1&edit_promotion_id=" . $Upgrade["promotion_id"] => array( "phrase" => getimage("buttons/edit_s.png", get_phrase("button_edit")) ) ));
                $aaaalk = ($noAction ? "" : aaaaae(array( "list_active_upgrades=1&promotion_id=" . $Upgrade["promotion_id"] => array( "phrase" => getimage("buttons/delete_s.png", get_phrase("upgrade_downgrade")), "confirmation" => get_phrase("upgrade_downgrade_confirm", $Upgrade["membername"]) ) )));
                $tableContents .= aaaaag(array( array( "width" => "15%", "text" => aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Upgrade["memberid"] => array( "phrase" => getmembername($Upgrade["membername"], $Upgrade["groupstyle"]) ) )) . " <span class=\"smallPassiveTextBlock\">" . aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Upgrade["memberid"] => array( "phrase" => getmembername($Upgrade["groupname"], $Upgrade["groupstyle"]) ) )) . "</span>" ), array( "width" => "25%", "text" => $Upgrade["upgrade_title"] . " <span class=\"smallPassiveTextBlock\">" . $Upgrade["processor"] . " [#" . $Upgrade["txn_id"] . "]</span>" ), array( "width" => "20%", "text" => $upradePrice ), array( "width" => "15", "text" => $Upgrade["start_date"] ), array( "width" => "15%", "text" => $Upgrade["expiry_date"] ), array( "width" => "10%", "text" => $editLink . $aaaalk ) ));
            }
            $HTML .= createtable(get_phrase("upgrade_list_active_upgrades") . " (" . number_format($aaaalj["upgradesCount"]) . ") (" . $aaaalf . ")", $tableContents, 6, $Pagination["1"]);
            return $HTML;
        }

        return errormessage(get_phrase("upgrade_no_active_upgrades") . " " . $aaaalf);
    }

    if( $edit || $new )
    {
        $Upgrade = array( "upgrade_title" => "", "upgrade_description" => "", "upgrade_length" => "", "upgrade_length_type" => "", "upgrade_membergroupid" => "", "upgrade_points" => "", "upgrade_invites" => "", "upgrade_upload" => "", "upgrade_price" => "", "upgrade_currency" => "", "viewpermissions" => array(  ), "upgrade_demote_to" => 0 );
        $aaaaam = "";
        if( $edit )
        {
            $Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Upgrade )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
            if( !$Upgrade["viewpermissions"] )
            {
                $Upgrade["viewpermissions"] = array(  );
            }
            else
            {
                $Upgrade["viewpermissions"] = unserialize($Upgrade["viewpermissions"]);
            }

        }

        if( isset($_POST["Upgrade"]) )
        {
            $Upgrade = $_POST["Upgrade"];
            if( !isset($Upgrade["viewpermissions"]) || !$Upgrade["viewpermissions"] )
            {
                $Upgrade["viewpermissions"] = array(  );
            }

            if( !$Upgrade["upgrade_title"] )
            {
                $formErrors[] = get_phrase("upgrade_title_error");
            }

            if( !$Upgrade["upgrade_price"] )
            {
                $formErrors[] = get_phrase("upgrade_price_error");
            }

            if( !isset($formErrors) )
            {
                if( $Upgrade["upgrade_length_type"] == "lifetime" )
                {
                    $Upgrade["upgrade_length"] = 0;
                }

                $buildQuery = array( "upgrade_title" => $Upgrade["upgrade_title"], "upgrade_description" => $Upgrade["upgrade_description"], "upgrade_length" => $Upgrade["upgrade_length"], "upgrade_length_type" => $Upgrade["upgrade_length_type"], "upgrade_membergroupid" => $Upgrade["upgrade_membergroupid"], "upgrade_points" => $Upgrade["upgrade_points"], "upgrade_invites" => $Upgrade["upgrade_invites"], "upgrade_upload" => $Upgrade["upgrade_upload"], "upgrade_price" => $Upgrade["upgrade_price"], "upgrade_currency" => $Upgrade["upgrade_currency"], "upgrade_demote_to" => intval($Upgrade["upgrade_demote_to"]), "viewpermissions" => ($Upgrade["viewpermissions"] ? serialize($Upgrade["viewpermissions"]) : "") );
                if( $edit )
                {
                    $TSUE["TSUE_Database"]->update("tsue_member_upgrades", $buildQuery, "upgrade_id=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $TSUE["TSUE_Database"]->insert("tsue_member_upgrades", $buildQuery);
                }

                logadminaction(get_phrase("upgrade_item_has_been_updated", $Upgrade["upgrade_title"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                handlerebuildcaches(false);
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $inputbox = inputbox("Upgrade[upgrade_title]", $Upgrade["upgrade_title"]);
            $formContents = aaaaan(get_phrase("upgrade_item_title"), $inputbox);
            $textarea = textarea("Upgrade[upgrade_description]", $Upgrade["upgrade_description"], true);
            $formContents .= aaaaan(get_phrase("upgrade_item_description"), $textarea);
            $inputbox = inputbox("Upgrade[upgrade_length]", $Upgrade["upgrade_length"], "text textVeryTiny");
            $optionArray = array( "day" => get_phrase("upgrade_day"), "week" => get_phrase("upgrade_week"), "month" => get_phrase("upgrade_month"), "year" => get_phrase("upgrade_year"), "lifetime" => get_phrase("upgrade_lifetime") );
            $selectbox = selectbox("Upgrade[upgrade_length_type]", $Upgrade["upgrade_length_type"], $optionArray, "select smallSelect");
            $formContents .= aaaaan(get_phrase("upgrade_length"), $inputbox . $selectbox);
            $Usergroups = aaaabf("Upgrade[upgrade_membergroupid]", $Upgrade["upgrade_membergroupid"], true);
            $formContents .= aaaaan(get_phrase("upgrade_membergroup"), $Usergroups, get_phrase("upgrade_membergroup_alt"));
            $Usergroups = aaaabf("Upgrade[upgrade_demote_to]", $Upgrade["upgrade_demote_to"], true, get_phrase("previous_membergroup"));
            $formContents .= aaaaan(get_phrase("upgrade_demote_membergroup"), $Usergroups, get_phrase("upgrade_demote_membergroup_alt"));
            $inputbox = inputbox("Upgrade[upgrade_points]", $Upgrade["upgrade_points"], "text textVeryTiny");
            $formContents .= aaaaan(get_phrase("upgrade_gift_points"), $inputbox);
            $inputbox = inputbox("Upgrade[upgrade_invites]", $Upgrade["upgrade_invites"], "text textVeryTiny");
            $formContents .= aaaaan(get_phrase("upgrade_gift_invites"), $inputbox);
            $inputbox = inputbox("Upgrade[upgrade_upload]", $Upgrade["upgrade_upload"], "text textVeryTiny", "GB");
            $formContents .= aaaaan(get_phrase("upgrade_gift_upload"), $inputbox);
            $inputbox = inputbox("Upgrade[upgrade_price]", $Upgrade["upgrade_price"], "text textVeryTiny");
            $optionArray = currencycodes();
            $selectbox = selectbox("Upgrade[upgrade_currency]", $Upgrade["upgrade_currency"], $optionArray, "select smallSelect", "", true);
            $formContents .= aaaaan(get_phrase("upgrade_item_price_currency"), $inputbox . $selectbox);
            $Usergroups = aaaaaw("Upgrade[viewpermissions][]", $Upgrade["viewpermissions"]);
            $formContents .= aaaaan(get_phrase("usable_by_membergroups"), $Usergroups, get_phrase("global_leave_empty_all"));
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    if( $enable_disable )
    {
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
        $Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT upgrade_title FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
        if( $Upgrade )
        {
            $TSUE["TSUE_Database"]->update("tsue_member_upgrades", $BuildQuery, "upgrade_id = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            logadminaction(get_phrase("upgrade_item_has_been_updated", $Upgrade["upgrade_title"] . " (" . $enable_disable . ")"));
            handlerebuildcaches(false);
        }

    }

    if( $delete )
    {
        $Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT upgrade_title FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Upgrade )
        {
            $TSUE["TSUE_Database"]->delete("tsue_member_upgrades", "upgrade_id = " . $TSUE["TSUE_Database"]->escape($delete));
            logadminaction(get_phrase("upgrade_item_has_been_deleted", $Upgrade["upgrade_title"] . " (" . $delete . ")"));
            handlerebuildcaches(false);
        }

    }

    $Upgrades = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_member_upgrades ORDER BY active DESC, upgrade_price ASC");
    if( !$TSUE["TSUE_Database"]->num_rows($Upgrades) )
    {
        $tableContents = errormessage(get_phrase("upgrade_account_no_items"));
    }
    else
    {
        $membergroupCache = array(  );
        $membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups");
        while( $membergroup = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) )
        {
            $membergroupCache[$membergroup["membergroupid"]] = getmembername($membergroup["groupname"], $membergroup["groupstyle"]);
        }
        $tableContents = "";
        while( $Upgrade = $TSUE["TSUE_Database"]->fetch_assoc($Upgrades) )
        {
            $linkClass = (!$Upgrade["active"] ? "linkDisabled" : "");
            $aaaall = aaaaae(array( "edit=" . $Upgrade["upgrade_id"] => array( "phrase" => $Upgrade["upgrade_title"], "class" => $linkClass ) ));
            $aaaalm = aaaaae(array( "delete=" . $Upgrade["upgrade_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            if( $Upgrade["upgrade_length_type"] == "lifetime" )
            {
                $Upgrade["upgrade_length"] = "";
                $Upgrade["upgrade_length_type"] = get_phrase("upgrade_lifetime");
            }
            else
            {
                $Upgrade["upgrade_length_type"] = get_phrase("upgrade_" . $Upgrade["upgrade_length_type"] . ((1 < $Upgrade["upgrade_length"] ? "s" : "")));
            }

            $upradePrice = get_phrase("upgrade_price", $Upgrade["upgrade_price"], strtoupper($Upgrade["upgrade_currency"]), $Upgrade["upgrade_length"], $Upgrade["upgrade_length_type"]);
            $Promotions = "";
            if( $Upgrade["upgrade_membergroupid"] )
            {
                $Promotions[] = get_phrase("upgrade_membergroup_x", $membergroupCache[$Upgrade["upgrade_membergroupid"]]);
            }

            if( $Upgrade["upgrade_points"] )
            {
                $Promotions[] = get_phrase("upgrade_points_x", number_format($Upgrade["upgrade_points"]));
            }

            if( $Upgrade["upgrade_invites"] )
            {
                $Promotions[] = get_phrase("upgrade_invites_x", number_format($Upgrade["upgrade_invites"]));
            }

            if( $Upgrade["upgrade_upload"] )
            {
                $Promotions[] = get_phrase("upgrade_upload_x", friendly_size($Upgrade["upgrade_upload"] * 1073741824));
            }

            if( $Promotions )
            {
                $Promotions = "<br />" . implode(" - ", $Promotions);
            }

            if( $Upgrade["active"] )
            {
                $aaaaln = aaaaae(array( "enable_disable=" . $Upgrade["upgrade_id"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
            }
            else
            {
                $aaaaln = aaaaae(array( "enable_disable=" . $Upgrade["upgrade_id"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
            }

            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => $aaaall . "<span class=\"smallPassiveText\">" . $upradePrice . " " . $Promotions . "</span>" ), array( "width" => "15%", "text" => $aaaaln . $aaaalm ) ));
        }
    }

    $HTML .= createtable(get_phrase("upgrade_account_upgrades_alt"), $tableContents, 2, $aaaald . " - " . $aaaale);
    return $HTML;
}

function aaaalh($membername, $upgrade_id)
{
    global $TSUE;
    $Upgrade = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_member_upgrades WHERE upgrade_id = " . $TSUE["TSUE_Database"]->escape($upgrade_id));
    if( !$Upgrade )
    {
        return errormessage(get_phrase("upgrade_invalid_item"));
    }

    $Member = $TSUE["TSUE_Database"]->query_result("SELECT memberid, membername, membergroupid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($membername));
    if( !$Member )
    {
        return errormessage(get_phrase("member_not_found"));
    }

    $hash = md5($Member["memberid"] . $Upgrade["upgrade_title"] . $Upgrade["upgrade_id"] . generatepasskey(10));
    $BuildQuery = array( "hash" => $hash, "upgrade_id" => $Upgrade["upgrade_id"], "memberid" => $Member["memberid"], "completed" => 1, "created" => TIMENOW );
    $TSUE["TSUE_Database"]->insert("tsue_member_upgrades_purchases", $BuildQuery);
    $history_id = $TSUE["TSUE_Database"]->insert_id();
    $BuildQuery = array( "history_id" => $history_id, "amount" => $Upgrade["upgrade_price"], "currency" => $Upgrade["upgrade_currency"], "state" => 1, "dateline" => TIMENOW, "api_id" => 1, "full_log" => "Added via Admin CP by " . $TSUE["TSUE_Member"]["membername"] );
    $TSUE["TSUE_Database"]->insert("tsue_member_upgrades_transaction", $BuildQuery);
    $txn_id = $TSUE["TSUE_Database"]->insert_id();
    $buildPromotion = array(  );
    $buildPromotion["upgrade_id"] = $Upgrade["upgrade_id"];
    $buildPromotion["history_id"] = $history_id;
    $buildPromotion["txn_id"] = $txn_id;
    $buildPromotion["start_date"] = TIMENOW;
    if( $Upgrade["upgrade_length"] && $Upgrade["upgrade_length_type"] != "lifetime" )
    {
        $buildPromotion["expiry_date"] = strtotime("+" . $Upgrade["upgrade_length"] . " " . $Upgrade["upgrade_length_type"] . ((1 < $Upgrade["upgrade_length"] ? "s" : "")));
    }
    else
    {
        $buildPromotion["expiry_date"] = 0;
    }

    $buildPromotion["memberid"] = $Member["memberid"];
    $previousUpgrade = $TSUE["TSUE_Database"]->query_result("SELECT old_membergroupid FROM tsue_member_upgrades_promotions WHERE memberid = " . $TSUE["TSUE_Database"]->escape($Member["memberid"]) . " AND (expiry_date = 0 OR expiry_date > " . TIMENOW . ") AND active = 1 ORDER BY start_date ASC LIMIT 1");
    if( $previousUpgrade )
    {
        $buildPromotion["old_membergroupid"] = $previousUpgrade["old_membergroupid"];
    }
    else
    {
        $buildPromotion["old_membergroupid"] = $Member["membergroupid"];
    }

    $buildPromotion["active"] = 1;
    $TSUE["TSUE_Database"]->insert("tsue_member_upgrades_promotions", $buildPromotion);
    $updateAccount = array(  );
    $profileUpdate = array(  );
    if( $Upgrade["upgrade_membergroupid"] )
    {
        $updateAccount["membergroupid"] = $Upgrade["upgrade_membergroupid"];
    }

    if( $Upgrade["upgrade_points"] )
    {
        $profileUpdate["points"] = array( "escape" => 0, "value" => "points+" . $Upgrade["upgrade_points"] );
    }

    if( $Upgrade["upgrade_invites"] )
    {
        $profileUpdate["invites_left"] = array( "escape" => 0, "value" => "invites_left+" . $Upgrade["upgrade_invites"] );
    }

    if( $Upgrade["upgrade_upload"] )
    {
        $profileUpdate["uploaded"] = array( "escape" => 0, "value" => "uploaded+" . $Upgrade["upgrade_upload"] * 1024 * 1024 * 1024 );
    }

    if( $updateAccount )
    {
        $TSUE["TSUE_Database"]->update("tsue_members", $updateAccount, "memberid=" . $TSUE["TSUE_Database"]->escape($Member["memberid"]));
    }

    if( $profileUpdate )
    {
        profileupdate($Member["memberid"], $profileUpdate);
    }

    $subject = get_phrase("upgrade_thank_you_subject");
    $message = nl2br(get_phrase("upgrade_thank_you_message", $Member["membername"], $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"]));
    sendpm($subject, $TSUE["TSUE_Member"]["memberid"], $Member["memberid"], $message);
    aaaabd("expired.php");
    logadminaction(get_phrase("new_active_upgrade_added", $Upgrade["upgrade_title"], $Member["membername"] . " (" . $Member["memberid"] . ")"));
    handlerebuildcaches(false);
    handleprune(false);
    header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&list_active_upgrades=1");
    exit();
}

function managemutedmembers()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $aaaalo = aaaaae(array( "mute=1" => array( "phrase" => get_phrase("mute_member") ) ));
    $mute = intval(getvar("mute"));
    $lift = intval(getvar("lift"));
    if( $lift )
    {
        $mutedMember = $TSUE["TSUE_Database"]->query_result("SELECT w.*, m.membername, mm.membername AS mutedBy FROM tsue_member_mutes w LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (w.muted_by=mm.memberid) WHERE w.memberid=" . $TSUE["TSUE_Database"]->escape($lift));
        if( !$mutedMember )
        {
            return errormessage(get_phrase("member_not_found"));
        }

        $TSUE["TSUE_Database"]->delete("tsue_member_mutes", "memberid=" . $TSUE["TSUE_Database"]->escape($lift));
        $BuildQuery = array( "muted" => 0 );
        $TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $mutedMember["memberid"]);
        alert_member($mutedMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "mutes", 0, "mute_lifted");
        logadminaction(get_phrase("mute_has_been_lifted", $mutedMember["membername"], $TSUE["TSUE_Member"]["membername"]));
        $HTML .= successmessage(get_phrase("message_saved"));
        handlerebuildcaches(false);
    }

    if( $mute )
    {
        $muteMember = array( "membername" => "", "memberid" => "", "muted_by" => $TSUE["TSUE_Member"]["memberid"], "mute_date" => TIMENOW, "end_date" => 0, "notes" => "" );
        if( isset($_POST["muteMember"]) )
        {
            $muteMember = array_merge($muteMember, $_POST["muteMember"]);
            if( !$muteMember["membername"] )
            {
                $formErrors[] = get_phrase("member_not_found");
            }
            else
            {
                $checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($muteMember["membername"]));
                if( !$checkMember )
                {
                    $formErrors[] = get_phrase("member_not_found");
                }
                else
                {
                    $muteMember["memberid"] = $checkMember["memberid"];
                    $aaaalp = $muteMember["membername"];
                    unset($muteMember["membername"]);
                }

            }

            $mutetype = getvar("mutetype", array(  ), false);
            if( empty($mutetype) )
            {
                $formErrors[] = get_phrase("message_required_fields_error");
            }
            else
            {
                $mutetype = array_map("intval", $mutetype);
                if( empty($mutetype) )
                {
                    $formErrors[] = get_phrase("message_required_fields_error");
                }

            }

            $mutetype = implode("", $mutetype);
            if( $muteMember["end_date"] )
            {
                $end_date = list($day, $month, $year) = tsue_explode("/", $muteMember["end_date"]);
                $end_date = strtotime((string) $year . "/" . $month . "/" . $day);
                if( !checkdate($month, $day, $year) || $end_date <= TIMENOW )
                {
                    $formErrors[] = get_phrase("mute_invalid_date");
                }

            }

            if( !isset($formErrors) )
            {
                if( isset($end_date) )
                {
                    $muteMember["end_date"] = $end_date;
                }
                else
                {
                    $muteMember["end_date"] = 0;
                }

                $TSUE["TSUE_Database"]->replace("tsue_member_mutes", $muteMember);
                $BuildQuery = array( "muted" => $mutetype );
                $TSUE["TSUE_Database"]->update("tsue_member_profile", $BuildQuery, "memberid=" . $muteMember["memberid"]);
                alert_member($muteMember["memberid"], $TSUE["TSUE_Member"]["memberid"], $TSUE["TSUE_Member"]["membername"], "mutes", 0, "mute_member");
                logadminaction(get_phrase("member_has_been_muted", $aaaalp, $TSUE["TSUE_Member"]["membername"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                handlerebuildcaches(false);
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $inputbox = inputbox("muteMember[membername]", (isset($muteMember["membername"]) ? $muteMember["membername"] : $aaaalp), "text", NULL, false, true);
            $formContents = aaaaan(get_phrase("your_name"), $inputbox);
            $inputbox = inputbox("muteMember[notes]", $muteMember["notes"]);
            $formContents .= aaaaan(get_phrase("mute_reason"), $inputbox, get_phrase("mute_reason_alt"));
            $inputbox = inputbox("muteMember[end_date]", $muteMember["end_date"], "text texthalf", get_phrase("mute_length_alt"), true);
            $formContents .= aaaaan(get_phrase("mute_length"), $inputbox, get_phrase("mute_length_alt"));
            $inputbox = aaaalq();
            $formContents .= aaaaan(get_phrase("mute_type"), $inputbox);
            $HTML .= aaaabg($formContents);
            return $HTML;
        }

    }

    $mutedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as mutedMembersCount FROM tsue_member_mutes");
    if( !$mutedMembersCount["mutedMembersCount"] )
    {
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_muted_members") ) ));
        return createtable(get_phrase("mute_reason_alt") . " (" . $aaaalo . ")", $tableContents);
    }

    $Pagination = pagination($mutedMembersCount["mutedMembersCount"]);
    $mutedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, mm.membername AS mutedBy, p.muted FROM tsue_member_mutes b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_members mm ON (b.muted_by=mm.memberid) LEFT JOIN tsue_member_profile p ON (b.memberid=p.memberid) " . $Pagination["0"]);
    while( $mutedMember = $TSUE["TSUE_Database"]->fetch_assoc($mutedMembers) )
    {
        $listMutes = get_phrase("mute_type") . ": " . listmutes($mutedMember["muted"], false);
        $notes = get_phrase("mute_reason") . ": " . (($mutedMember["notes"] ? strip_tags($mutedMember["notes"]) : ".."));
        $mute_date = get_phrase("mute_started", convert_relative_time($mutedMember["mute_date"]));
        $end_date = get_phrase("mute_end_date") . ": " . (($mutedMember["end_date"] && TIMENOW < $mutedMember["end_date"] ? convert_time($mutedMember["end_date"], "d/m/Y") : get_phrase("mutes_end_date_never")));
        $muted_by = get_phrase("muted_by") . ": " . $mutedMember["mutedBy"];
        $aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $mutedMember["memberid"] => array( "phrase" => $mutedMember["membername"] ) ));
        $aaaalr = aaaaae(array( "lift=" . $mutedMember["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("lift_mute")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
        $tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $mute_date . " -- " . $end_date . " -- " . $muted_by . " -- " . $notes . " -- " . $listMutes . "</span>" ), array( "width" => "10%", "text" => $aaaalr ) ));
    }
    $HTML .= createtable(get_phrase("member_manager_muted_members_alt") . " (" . $aaaalo . ")", $tableContents, 2, $Pagination["1"]);
    return $HTML;
}

function aaaalq()
{
    return "\r\n\t<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">\r\n\t\t<tr>\r\n\t\t\t<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"1\" id=\"mute_in_comments\" /></td>\r\n\t\t\t<td><label for=\"mute_in_comments\">" . get_phrase("mute_in_comments") . "</label></td>\r\n\t\t</tr>\r\n\t\t<tr>\r\n\t\t\t<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"2\" id=\"mute_in_forums\" /></td>\r\n\t\t\t<td><label for=\"mute_in_forums\">" . get_phrase("mute_in_forums") . "</label></td>\r\n\t\t</tr>\r\n\t\t<tr>\r\n\t\t\t<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"3\" id=\"mute_in_shoutbox\" /></td>\r\n\t\t\t<td><label for=\"mute_in_shoutbox\">" . get_phrase("mute_in_shoutbox") . "</label></td>\r\n\t\t</tr>\r\n\t\t<tr>\r\n\t\t\t<td><input type=\"checkbox\" name=\"mutetype[]\" value=\"4\" id=\"mute_in_pm\" /></td>\r\n\t\t\t<td><label for=\"mute_in_pm\">" . get_phrase("mute_in_pm") . "</label></td>\r\n\t\t</tr>\r\n\t</table>";
}

function managepmmembers()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $pmMembers = array( "sender" => $TSUE["TSUE_Member"]["membername"], "subject" => "", "reply" => "", "joindate" => "", "lastactivity" => "", "membergroup" => array(  ) );
    if( isset($_POST["pmMembers"]) )
    {
        $pmMembers = $_POST["pmMembers"];
        if( !isset($pmMembers["membergroup"]) )
        {
            $pmMembers["membergroup"] = array(  );
        }

        foreach( array( "sender", "subject", "reply" ) as $required )
        {
            if( !isset($pmMembers[$required]) || empty($pmMembers[$required]) )
            {
                $errorDetected = true;
            }

        }
        if( isset($errorDetected) )
        {
            $formErrors[] = get_phrase("message_required_fields_error");
        }
        else
        {
            $Sender = $TSUE["TSUE_Database"]->query_result("SELECT m.memberid, m.membergroupid, m.gender, g.groupstyle FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE m.membername = " . $TSUE["TSUE_Database"]->escape($pmMembers["sender"]));
            if( !$Sender )
            {
                $formErrors[] = get_phrase("member_not_found");
            }

        }

        if( isset($formErrors) )
        {
            $HTML .= errormessage(implode("<br />", $formErrors));
        }
        else
        {
            $Where = "";
            $searchCriteria = array(  );
            if( $pmMembers["joindate"] )
            {
                $joindate = list($day, $month, $year) = tsue_explode("/", $pmMembers["joindate"]);
                $joindate = strtotime((string) $year . "/" . $month . "/" . $day);
                $searchCriteria[] = "m.joindate > " . $joindate;
            }

            if( $pmMembers["lastactivity"] )
            {
                $lastactivity = list($day, $month, $year) = tsue_explode("/", $pmMembers["lastactivity"]);
                $lastactivity = strtotime((string) $year . "/" . $month . "/" . $day);
                $searchCriteria[] = "m.lastactivity > " . $lastactivity;
            }

            if( !empty($pmMembers["membergroup"]) )
            {
                $searchCriteria[] = "m.membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $pmMembers["membergroup"])) . ")";
            }

            $WHERE = "";
            if( !empty($searchCriteria) )
            {
                $WHERE = " WHERE " . implode(" AND ", $searchCriteria);
            }

            $Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, g.groupstyle, p.uploaded FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_privacy privacy USING(memberid)" . $WHERE . " ORDER BY membername ASC");
            if( !($totalMembers = $TSUE["TSUE_Database"]->num_rows($Members)) )
            {
                $HTML .= errormessage(get_phrase("no_members_matched"));
            }
            else
            {
                while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
                {
                    sendpm($pmMembers["subject"], $Sender["memberid"], $Member["memberid"], $pmMembers["reply"]);
                }
                $HTML .= successmessage(get_phrase("pm_members_pm_sent", number_format($totalMembers)));
            }

        }

    }

    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("sender"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[sender]", $pmMembers["sender"], "text texthalf", NULL, false, true) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("messages_subject"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[subject]", $pmMembers["subject"]) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("messages_message"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => textarea("pmMembers[reply]", $pmMembers["reply"], true) ) ));
    $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("global_search_criteria"), "colspan" => 2 ) ), "tableContentTDHeader");
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_joindate"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[joindate]", $pmMembers["joindate"], "text texthalf", NULL, true) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("search_criteria_lastactivity"), "align" => "right" ), array( "width" => "80%", "text" => inputbox("pmMembers[lastactivity]", $pmMembers["lastactivity"], "text texthalf", NULL, true) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("your_membergroup"), "align" => "right", "extra" => " valign=\"top\"" ), array( "width" => "80%", "text" => aaaaaw("pmMembers[membergroup][]", $pmMembers["membergroup"], 3) ) ));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => NULL ), array( "width" => "80%", "text" => aaaabm(get_phrase("button_send"), get_phrase("button_reset")) ) ));
    $HTML .= aaaabn(createtable(get_phrase("member_manager_pm_members_alt"), $tableContents, 2)) . "\r\n\t<script type=\"text/javascript\">\r\n\t\t\$(\"#simpleForm\").submit(function(e)\r\n\t\t{\r\n\t\t\tTSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("sending_pm") . "', false, false);\r\n\t\t});\r\n\t</script>";
    return $HTML;
}

function managepromotions()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $aaaaam = "";
    $aaaals = aaaaae(array( "list_active_promotions=1" => array( "phrase" => get_phrase("promotions_list_active_promotions") ) ));
    $aaaalt = aaaaae(array( "new=1" => array( "phrase" => get_phrase("create_a_new_promotion") ) ));
    $list_active_promotions = intval(getvar("list_active_promotions"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $enable_disable = intval(getvar("enable_disable"));
    $delete = intval(getvar("delete"));
    if( $list_active_promotions )
    {
        addbreadcrumb(array( get_phrase("promotions_list_active_promotions") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;list_active_promotions=1" ));
        $aaaalu = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as promotionCount FROM tsue_member_promotions");
        $Pagination = pagination($aaaalu["promotionCount"], "list_active_promotions=1");
        if( $aaaalu && $aaaalu["promotionCount"] )
        {
            $aaaalv = $TSUE["TSUE_Database"]->query("SELECT p.*, m.membername, g.groupname, g.groupstyle, gg.groupname AS prevGroupname, gg.groupstyle AS prevGroupstyle FROM tsue_member_promotions p INNER JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g ON(m.membergroupid=g.membergroupid) LEFT JOIN tsue_membergroups gg ON(p.beforeMembergroupid=gg.membergroupid) " . $Pagination["0"]);
            $tableContents = aaaaag(array( array( "width" => "15%", "text" => get_phrase("upgrade_membername") ), array( "width" => "15%", "text" => get_phrase("promotions_previous_membergroup") ), array( "width" => "15%", "text" => get_phrase("upgrade_item_start_date") ) ), NULL, "tableContentTDHeader");
            while( $Promotion = $TSUE["TSUE_Database"]->fetch_assoc($aaaalv) )
            {
                $Promotion["date"] = convert_relative_time($Promotion["date"]);
                $tableContents .= aaaaag(array( array( "width" => "40%", "text" => aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Promotion["memberid"] => array( "phrase" => getmembername($Promotion["membername"], $Promotion["groupstyle"]) ) )) . " <span class=\"smallPassiveTextBlock\">" . aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Promotion["memberid"] => array( "phrase" => getmembername($Promotion["groupname"], $Promotion["groupstyle"]) ) )) . "</span>" ), array( "width" => "40%", "text" => getmembername($Promotion["prevGroupname"], $Promotion["prevGroupstyle"]) ), array( "width" => "20%", "text" => $Promotion["date"] ) ));
            }
            $HTML .= createtable(get_phrase("promotions_list_active_promotions"), $tableContents, 3, $Pagination["1"]);
            return $HTML;
        }

        return errormessage(get_phrase("promotions_no_active_promotion"));
    }

    if( $enable_disable )
    {
        $BuildQuery = array( "promotionSystemActive" => array( "escape" => 0, "value" => "IF(promotionSystemActive>0,0,1)" ) );
        $Promotion = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_promotions WHERE pid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
        if( $Promotion )
        {
            $TSUE["TSUE_Database"]->update("tsue_auto_promotions", $BuildQuery, "pid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            logadminaction(get_phrase("promotion_x_has_been_updated", $Promotion["title"] . " (" . $enable_disable . ")"));
            $HTML .= successmessage(get_phrase("message_saved"));
        }

    }

    if( $delete )
    {
        $Promotion = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_auto_promotions WHERE pid = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Promotion )
        {
            $TSUE["TSUE_Database"]->delete("tsue_auto_promotions", "pid = " . $TSUE["TSUE_Database"]->escape($delete));
            logadminaction(get_phrase("promotion_x_has_been_deleted", $Promotion["title"] . " (" . $delete . ")"));
        }

    }

    if( $edit || $new )
    {
        $Promotion = array( "title" => "", "promotionSystemActive" => 0, "checkForMembergroupid" => 0, "promoteMembergroupid" => 0, "minDaysRegistered" => 0, "minUpload" => 0, "minRatio" => 0, "minPosts" => 0 );
        if( $edit )
        {
            $Promotion = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_auto_promotions WHERE pid = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Promotion )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
        }

        if( isset($_POST["Promotion"]) )
        {
            $Promotion = $_POST["Promotion"];
            if( !$Promotion["title"] )
            {
                $formErrors[] = get_phrase("please_enter_a_valid_title");
            }

            if( !$Promotion["checkForMembergroupid"] || !$Promotion["promoteMembergroupid"] )
            {
                $formErrors[] = get_phrase("select_promotion_membergroups_to_apply");
            }
            else
            {
                if( $Promotion["checkForMembergroupid"] == $Promotion["promoteMembergroupid"] )
                {
                    $formErrors[] = get_phrase("select_promotion_membergroups_to_apply");
                }

            }

            if( !$Promotion["minDaysRegistered"] && !$Promotion["minUpload"] && !$Promotion["minRatio"] && !$Promotion["minPosts"] )
            {
                $formErrors[] = get_phrase("enter_at_least_one_promotion_rule");
            }

            if( !isset($formErrors) )
            {
                $buildQuery = array( "title" => $Promotion["title"], "promotionSystemActive" => $Promotion["promotionSystemActive"], "checkForMembergroupid" => $Promotion["checkForMembergroupid"], "promoteMembergroupid" => $Promotion["promoteMembergroupid"], "minDaysRegistered" => $Promotion["minDaysRegistered"], "minUpload" => $Promotion["minUpload"], "minRatio" => $Promotion["minRatio"], "minPosts" => $Promotion["minPosts"] );
                if( $edit )
                {
                    $TSUE["TSUE_Database"]->update("tsue_auto_promotions", $buildQuery, "pid=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $TSUE["TSUE_Database"]->insert("tsue_auto_promotions", $buildQuery);
                    $edit = $TSUE["TSUE_Database"]->insert_id();
                }

                logadminaction(get_phrase("promotion_x_has_been_updated", $Promotion["title"] . " (" . $edit . ")"));
                $HTML .= successmessage(get_phrase("message_saved"));
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $inputbox = radioyesno("Promotion[promotionSystemActive]", intval($Promotion["promotionSystemActive"]));
            $formContents = aaaaan(get_phrase("promotions_system_active"), $inputbox);
            $inputbox = inputbox("Promotion[title]", $Promotion["title"], "text");
            $formContents .= aaaaan(get_phrase("promotion_title"), $inputbox);
            $Usergroups = aaaabf("Promotion[checkForMembergroupid]", $Promotion["checkForMembergroupid"], true);
            $formContents .= aaaaan(get_phrase("promotion_checkfor_membergroupid"), $Usergroups, get_phrase("promotion_checkfor_membergroupid_alt"));
            $Usergroups = aaaabf("Promotion[promoteMembergroupid]", $Promotion["promoteMembergroupid"], true);
            $formContents .= aaaaan(get_phrase("promotion_promoteMembergroupid"), $Usergroups, get_phrase("promotion_promoteMembergroupid_alt"));
            $inputbox = inputbox("Promotion[minDaysRegistered]", $Promotion["minDaysRegistered"], "text texttiny");
            $formContents .= aaaaan(get_phrase("promotion_minDaysRegistered"), $inputbox, get_phrase("promotion_minDaysRegistered_alt"));
            $inputbox = inputbox("Promotion[minUpload]", $Promotion["minUpload"], "text texttiny", "GB");
            $formContents .= aaaaan(get_phrase("promotion_minUpload"), $inputbox, get_phrase("promotion_minUpload_alt"));
            $inputbox = inputbox("Promotion[minRatio]", $Promotion["minRatio"], "text texttiny");
            $formContents .= aaaaan(get_phrase("promotion_minRatio"), $inputbox, get_phrase("promotion_minRatio_alt"));
            $inputbox = inputbox("Promotion[minPosts]", $Promotion["minPosts"], "text texttiny");
            $formContents .= aaaaan(get_phrase("promotion_minPosts"), $inputbox, get_phrase("promotion_minPosts_alt"));
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    $Promotions = $TSUE["TSUE_Database"]->query("SELECT p.*, g.groupname, g.groupstyle, gg.groupname as groupname2, gg.groupstyle as groupstyle2 FROM tsue_auto_promotions p LEFT JOIN tsue_membergroups g ON (p.checkForMembergroupid=g.membergroupid) LEFT JOIN tsue_membergroups gg ON (p.promoteMembergroupid=gg.membergroupid) ORDER BY p.promotionSystemActive DESC, p.title ASC");
    if( !$TSUE["TSUE_Database"]->num_rows($Promotions) )
    {
        return errormessage(get_phrase("no_promotion_found", "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1"));
    }

    $tableContents = "";
    while( $Promotion = $TSUE["TSUE_Database"]->fetch_assoc($Promotions) )
    {
        $linkClass = (!$Promotion["promotionSystemActive"] ? "linkDisabled" : "");
        $aaaalw = aaaaae(array( "edit=" . $Promotion["pid"] => array( "phrase" => $Promotion["title"], "class" => $linkClass ) ));
        $aaaalx = aaaaae(array( "delete=" . $Promotion["pid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
        if( $Promotion["promotionSystemActive"] )
        {
            $aaaaly = aaaaae(array( "enable_disable=" . $Promotion["pid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
        }
        else
        {
            $aaaaly = aaaaae(array( "enable_disable=" . $Promotion["pid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
        }

        $aaaalz = getmembername($Promotion["groupname"], $Promotion["groupstyle"]) . " => " . getmembername($Promotion["groupname2"], $Promotion["groupstyle2"]);
        $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaalw . "<span class=\"smallPassiveText\">(" . $aaaalz . ")</span>" ), array( "width" => "20%", "text" => $aaaaly . $aaaalx, "align" => "right" ) ));
    }
    $HTML .= createtable(get_phrase("promotions"), $tableContents, 2, $aaaals . " - " . $aaaalt);
    return $HTML;
}

function manageduplicateips()
{
    global $TSUE;
    $HTML = "";
    $counter = $TSUE["TSUE_Database"]->query("\r\n\t\tSELECT ipaddress, count(*) as tot \r\n\t\tFROM tsue_members\r\n\t\tGROUP BY ipaddress \r\n\t\tHAVING tot > 1 \r\n\t\tORDER BY ipaddress");
    if( !$TSUE["TSUE_Database"]->num_rows($counter) )
    {
        return errormessage(get_phrase("message_nothing_found"));
    }

    $x = "";
    while( $ipaddress = $TSUE["TSUE_Database"]->fetch_assoc($counter) )
    {
        $ipaddress["ipaddress"] = preg_replace("/[^0-9-\\.]/u", "-", trim($ipaddress["ipaddress"]));
        if( $ipaddress["ipaddress"] != "" )
        {
            $x .= "'" . $ipaddress["ipaddress"] . "',";
        }

    }
    $x .= "'XXX'";
    $Members = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.email, m.joindate, m.lastactivity, m.ipaddress, g.groupstyle, p.uploaded, p.downloaded, b.memberid as isBanned FROM tsue_members m LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_member_privacy privacy USING(memberid) LEFT JOIN tsue_member_bans b USING(memberid) WHERE m.ipaddress IN (" . $x . ") ORDER BY m.ipaddress");
    $TSUE["do"] = "All Members";
    return aaaaaj($Members);
}

function aaaaak()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $keywords = trim(getvar("keywords"));
    $searchType = trim(getvar("searchType"));
    $fixAll = intval(getvar("fixAll"));
    $WHERE = "";
    if( !in_array($searchType, array( "membername", "torrentname" )) )
    {
        $searchType = "membername";
    }

    if( $keywords && $searchType )
    {
        switch( $searchType )
        {
            case "membername":
                $WHERE = " AND m.membername = " . $TSUE["TSUE_Database"]->escape($keywords);
                break;
            case "torrentname":
                $WHERE = " AND t.name LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'";
                break;
        }
    }

    $orderBy["fieldname"] = "m.memberid";
    $orderBy["type"] = "DESC";
    if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) )
    {
        $allowedFieldNames = array( "m.membername", "t.name", "t.size", "p.total_uploaded", "p.active", "p.upload_speed", "p.total_downloaded", "p.download_speed" );
        $allowedTypes = array( "DESC", "ASC" );
        if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) )
        {
            $orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"];
            $orderBy["type"] = $_REQUEST["orderBy"]["type"];
        }

    }

    if( getsetting("xbt", "active") )
    {
        $peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, t.size, t.options, m.membername, m.email, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE);
    }
    else
    {
        $peerCount = $TSUE["TSUE_Database"]->row_count("SELECT SQL_NO_CACHE p.*, t.name, t.size, t.options, m.membername, m.email, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE);
    }

    $tableContents .= aaaaag(array( array( "width" => "18%", "text" => get_phrase("your_name") ), array( "width" => "29%", "text" => get_phrase("torrent_name") . "/" . get_phrase("torrents_size") ), array( "width" => "15%", "text" => get_phrase("torrents_peer_downloaded") ), array( "width" => "15%", "text" => get_phrase("torrents_peer_uploaded") ), array( "width" => "16%", "text" => get_phrase("torrent_hitrun_ratio") ), array( "width" => "7%", "text" => get_phrase("stats_ratio") ) ), "tableContentTR", "tableContentTDHeader");
    if( !$peerCount )
    {
        $Pagination["1"] = "";
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_results_found"), "colspan" => 6 ) ));
    }
    else
    {
        if( $fixAll )
        {
            if( getsetting("xbt", "active") )
            {
                $Peers = $TSUE["TSUE_Database"]->query("SELECT fid, uid FROM xbt_files_users WHERE isWarned=1");
                while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) )
                {
                    aaaama($Peer["fid"], $Peer["uid"]);
                }
            }
            else
            {
                $Peers = $TSUE["TSUE_Database"]->query("SELECT pid, tid, memberid FROM tsue_torrents_peers WHERE isWarned=1");
                while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) )
                {
                    aaaamb($Peer["pid"], $Peer["memberid"], $Peer["tid"]);
                }
            }

        }

        if( isset($_POST["fixRatios"]) && is_array($_POST["fixRatios"]) && !empty($_POST["fixRatios"]) )
        {
            if( getsetting("xbt", "active") )
            {
                foreach( $_POST["fixRatios"] as $array )
                {
                    list($fid, $uid) = tsue_explode("|", $array);
                    aaaama($fid, $uid);
                }
            }
            else
            {
                foreach( $_POST["fixRatios"] as $array )
                {
                    list($pid, $memberid, $tid) = tsue_explode("|", $array);
                    aaaamb($pid, $memberid, $tid);
                }
            }

        }

        $Pagination = pagination($peerCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&amp;orderBy[type]=" . $orderBy["type"] . (($keywords ? "&amp;keywords=" . urlencode($keywords) . "&amp;searchType=" . $searchType : "")));
        if( getsetting("xbt", "active") )
        {
            $aaaalb["fieldname"] = str_replace(array( "p.total_uploaded", "p.upload_speed", "p.total_downloaded", "p.download_speed" ), array( "p.uploaded", "p.up_rate", "p.downloaded", "p.down_rate" ), $orderBy["fieldname"]);
            $Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.fid, p.uid, p.uploaded as total_uploaded, p.downloaded as total_downloaded, p.up_rate as upload_speed, p.down_rate as download_speed, p.active, t.tid, t.name, t.size, t.options, m.memberid, m.membername, m.email, m.joindate, g.groupstyle FROM xbt_files_users p LEFT JOIN tsue_torrents t ON(p.fid=t.tid) LEFT JOIN tsue_members m ON(p.uid=m.memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE . " ORDER BY " . $aaaalb["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
        }
        else
        {
            $Peers = $TSUE["TSUE_Database"]->query("SELECT SQL_NO_CACHE p.*, t.name, t.size, t.options, m.membername, m.email, m.joindate, g.groupstyle FROM tsue_torrents_peers p LEFT JOIN tsue_torrents t USING(tid) LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.isWarned = 1" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
        }

        while( $Peer = $TSUE["TSUE_Database"]->fetch_assoc($Peers) )
        {
            $torrentOptions = unserialize($Peer["options"]);
            $torrentName = strip_tags($Peer["name"]);
            $aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Peer["memberid"] => array( "phrase" => getmembername($Peer["membername"], $Peer["groupstyle"]) ) ));
            $tableContents .= aaaaag(array( array( "text" => $aaaakb . "<div class=\"verySmall\">" . get_phrase("memberinfo_membersince", convert_time($Peer["joindate"], "d-m-Y")) . "</div>" ), array( "text" => aaaaaf("?p=torrents&pid=10&action=details&tid=" . $Peer["tid"], substr($torrentName, 0, 30), $torrentName) . "<div class=\"verySmall\">" . friendly_size($Peer["size"]) . "</div>" ), array( "text" => friendly_size($Peer["total_downloaded"]) . "<br />" . friendly_size($Peer["download_speed"]) . "/s" ), array( "text" => friendly_size($Peer["total_uploaded"]) . "<br />" . friendly_size($Peer["upload_speed"]) . "/s" ), array( "text" => (isset($torrentOptions["hitRunRatio"]) ? 0 + $torrentOptions["hitRunRatio"] : 0) ), array( "text" => "<label>" . member_ratio($Peer["total_uploaded"], $Peer["size"]) . "<div><input type=\"checkbox\" name=\"fixRatios[]\" value=\"" . ((getsetting("xbt", "active") ? $Peer["fid"] . "|" . $Peer["uid"] : $Peer["pid"] . "|" . $Peer["memberid"] . "|" . $Peer["tid"])) . "\" /></div></label>" ) ), ($Peer["active"] ? "" : "greyBackground"));
        }
    }

    $selectBox = "\r\n\t<select name=\"searchType\" class=\"selectNoWidth\">\r\n\t\t<option value=\"membername\"" . (($searchType == "membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>\r\n\t\t<option value=\"torrentname\"" . (($searchType == "torrentname" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>\r\n\t</select>";
    if( $peerCount )
    {
        $searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
        $HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array(  ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />";
    }

    if( !$peerCount )
    {
        $fixRatios = "";
    }
    else
    {
        $fixRatios = aaaaag(array( array( "colspan" => 6, "text" => aaaabm(get_phrase("fix_remove_hit_run")), "align" => "right" ) ));
    }

    $aaaamc = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&fixAll=1" => array( "phrase" => get_phrase("remove_all_hit_run_warnings") ) ));
    $HTML .= aaaabn(createtable(get_phrase("hit_and_runners"), $tableContents . $fixRatios, 6, $aaaamc . $Pagination["1"]));
    if( $peerCount )
    {
        $HTML .= "\r\n\t\t<div style=\"margin-top: 10px;\">\r\n\t\t\t<span style=\"float: left; margin-right: 8px; padding: 6px 10px; font-size: 11px; color: #000;\" class=\"greyBackground\">" . get_phrase("inactive_peer") . "</span>\r\n\t\t\t" . aaaabn("\r\n\t\t\t" . get_phrase("torrents_sort_by") . "\r\n\t\t\t<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">\r\n\t\t\t\t<option value=\"p.active\"" . (($orderBy["fieldname"] == "p.active" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_active") . "</option>\r\n\t\t\t\t<option value=\"m.membername\"" . (($orderBy["fieldname"] == "m.membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>\r\n\t\t\t\t<option value=\"t.name\"" . (($orderBy["fieldname"] == "t.name" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrent_name") . "</option>\r\n\t\t\t\t<option value=\"t.size\"" . (($orderBy["fieldname"] == "t.size" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_size") . "</option>\r\n\t\t\t\t<option value=\"p.total_uploaded\"" . (($orderBy["fieldname"] == "p.total_uploaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_uploaded") . "</option>\t\t\t\r\n\t\t\t\t<option value=\"p.upload_speed\"" . (($orderBy["fieldname"] == "p.upload_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_uploaded") . "</option>\r\n\t\t\t\t<option value=\"p.total_downloaded\"" . (($orderBy["fieldname"] == "p.total_downloaded" ? " selected=\"selected\"" : "")) . ">" . get_phrase("stats_downloaded") . "</option>\t\t\t\r\n\t\t\t\t<option value=\"p.download_speed\"" . (($orderBy["fieldname"] == "p.download_speed" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_peer_downloaded") . "</option>\r\n\t\t\t</select>\r\n\t\t\t<select name=\"orderBy[type]\" class=\"selectNoWidth\">\r\n\t\t\t\t<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>\r\n\t\t\t\t<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>\r\n\t\t\t</select>\r\n\t\t\t<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "\r\n\t\t</div>";
    }

    return $HTML;
}

function aaaamb($pid = 0, $memberid = 0, $tid = 0)
{
    global $TSUE;
    if( $pid && $memberid && $tid )
    {
        $Torrent = $TSUE["TSUE_Database"]->query_result("SELECT size FROM tsue_torrents WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid));
        if( $Torrent && $Torrent["size"] )
        {
            $TSUE["TSUE_Database"]->update("tsue_torrents_peers", array( "isWarned" => 0, "total_uploaded" => array( "escape" => 0, "value" => "IF(total_downloaded>0 && total_uploaded<" . $Torrent["size"] . "," . $Torrent["size"] . ",total_uploaded)" ) ), "pid=" . $TSUE["TSUE_Database"]->escape($pid));
            $TSUE["TSUE_Database"]->update("tsue_member_profile", array( "hitRuns" => array( "escape" => 0, "value" => "IF(hitRuns>0,hitRuns-1,0)" ) ), "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
        }

    }

}

function aaaama($fid = 0, $uid = 0)
{
    global $TSUE;
    if( $fid && $uid )
    {
        $Torrent = $TSUE["TSUE_Database"]->query_result("SELECT size FROM tsue_torrents WHERE tid = " . $TSUE["TSUE_Database"]->escape($fid));
        if( $Torrent && $Torrent["size"] )
        {
            $TSUE["TSUE_Database"]->update("xbt_files_users", array( "isWarned" => 0, "uploaded" => array( "escape" => 0, "value" => "IF(downloaded>0 && uploaded<" . $Torrent["size"] . "," . $Torrent["size"] . ",uploaded)" ) ), "fid=" . $TSUE["TSUE_Database"]->escape($fid) . " AND uid=" . $TSUE["TSUE_Database"]->escape($uid));
            $TSUE["TSUE_Database"]->update("tsue_member_profile", array( "hitRuns" => array( "escape" => 0, "value" => "IF(hitRuns>0,hitRuns-1,0)" ) ), "memberid=" . $TSUE["TSUE_Database"]->escape($uid));
        }

    }

}

function managetestpermissions()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $membername = "";
    if( isset($_POST["membername"]) )
    {
        $checkMember = $TSUE["TSUE_Database"]->query_result("SELECT membername FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($_POST["membername"]));
        if( !$checkMember )
        {
            return errormessage(get_phrase("member_not_found"));
        }

        cookie_set("testPermissions", $_POST["membername"]);
        header("Location: " . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"]);
        exit();
    }

    $aaaaam = "";
    $inputbox = inputbox("membername", $membername, "text texthalf", get_phrase("test_permissions_input"), false, true);
    $formContents = aaaaan(get_phrase("test_permissions"), $inputbox, get_phrase("test_permissions_info"));
    $HTML .= aaaabg($formContents, $aaaaam);
    return $HTML;
}

function manageadministrators()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $editPerm = intval(getvar("editPerm"));
    $new = intval(getvar("new"));
    $delete = intval(getvar("delete"));
    if( $delete )
    {
        $Member = $TSUE["TSUE_Database"]->query_result("SELECT p.*, m.membername, g.groupname, g.groupstyle FROM tsue_staffcp_permissions p LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.memberid=" . $TSUE["TSUE_Database"]->escape($delete));
        if( !$Member )
        {
            return errormessage(get_phrase("member_not_found"));
        }

        $TSUE["TSUE_Database"]->delete("tsue_staffcp_permissions", "memberid=" . $TSUE["TSUE_Database"]->escape($delete));
        $Phrase = get_phrase("x_admin_perms_deleted", $Member["membername"] . " (" . $Member["memberid"] . ")");
        logadminaction($Phrase);
        handlerebuildcaches(false);
        handleprune(false);
        return successmessage($Phrase);
    }

    if( $new )
    {
        addbreadcrumb(array( get_phrase("create_new_administrator") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;&new=1" ));
        return aaaamd();
    }

    if( $editPerm )
    {
        $Member = $TSUE["TSUE_Database"]->query_result("SELECT p.*, m.membername, m.membergroupid, g.groupname, g.groupstyle, g.permissions as groupPermissions FROM tsue_staffcp_permissions p LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) WHERE p.memberid=" . $TSUE["TSUE_Database"]->escape($editPerm));
        if( !$Member )
        {
            return errormessage(get_phrase("member_not_found"));
        }

        addbreadcrumb(array( getmembername($Member["membername"], $Member["groupstyle"]) => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;&editPerm=" . $editPerm ));
        $Permissions = unserialize($Member["permissions"]);
        return aaaame($Permissions, $Member);
    }

    $Members = $TSUE["TSUE_Database"]->query("SELECT p.memberid, m.membername, g.groupname, g.groupstyle FROM tsue_staffcp_permissions p LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid)");
    while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
    {
        $membername = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&editPerm=" . $Member["memberid"] => array( "phrase" => getmembername($Member["membername"], $Member["groupstyle"]) ) ));
        $deleteLink = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&delete=" . $Member["memberid"] => array( "phrase" => get_phrase("button_delete") ) ));
        $tableContents .= aaaaag(array( array( "width" => "85%", "text" => $membername . " <span class=\"smallPassiveText\">" . $Member["groupname"] . " [" . $deleteLink . "]</span>" ), array( "width" => "15%", "text" => "", "align" => "right" ) ));
    }
    $HTML .= createtable(get_phrase("administrators"), $tableContents, 2, aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" => array( "phrase" => get_phrase("create_new_administrator") ) )));
    return $HTML;
}

function aaaamd()
{
    global $TSUE;
    $staffCPAvailableActions = aaaamf();
    if( ispost() )
    {
        $membername = (isset($_POST["membername"]) ? $_POST["membername"] : "");
        if( !$membername )
        {
            return errormessage(get_phrase("member_not_found"));
        }

        $Member = $TSUE["TSUE_Database"]->query_result("SELECT m.memberid, m.membername, m.membergroupid, g.permissions FROM tsue_members m INNER JOIN tsue_membergroups g USING(membergroupid) WHERE m.membername = " . $TSUE["TSUE_Database"]->escape($membername));
        if( !$Member )
        {
            return errormessage(get_phrase("member_not_found"));
        }

        $memberPermissions = unserialize($Member["permissions"]);
        if( !isset($memberPermissions["canlogin_admincp"]) || !$memberPermissions["canlogin_admincp"] )
        {
            return errormessage(get_phrase("insufficient_permission", TSUE_ADMINCP_URL . "?action=Member Manager&amp;do=Membergroups&amp;edit=" . $Member["membergroupid"] . "#administratorpermissions"));
        }

        $newPerms = array(  );
        if( isset($_POST["permissions"]) && $_POST["permissions"] )
        {
            foreach( $_POST["permissions"] as $Action )
            {
                $newPerms[$Action] = 1;
            }
        }

        $staffCPAvailableActions = array_merge($staffCPAvailableActions, $newPerms);
        $TSUE["TSUE_Database"]->replace("tsue_staffcp_permissions", array( "memberid" => $Member["memberid"], "permissions" => serialize($staffCPAvailableActions) ));
        $Phrase = get_phrase("x_admin_perms_updated", $Member["membername"] . " (" . $Member["memberid"] . ")");
        logadminaction($Phrase);
        handlerebuildcaches(false);
        handleprune(false);
        return successmessage($Phrase);
    }
    else
    {
        $Checkboxes = "\r\n\t<div>" . get_phrase("your_name") . ":<br />" . inputbox("membername", "", "text texthalf", get_phrase("administrator_tip"), false, true) . "</div>\r\n\t<ul class=\"adminPerms\">";
        ksort($staffCPAvailableActions);
        foreach( $staffCPAvailableActions as $Action => $Perm )
        {
            $Checkboxes .= "\r\n\t\t<li><label><input type=\"checkbox\" name=\"permissions[]\" value=\"" . $Action . "\"" . (($Perm ? " checked=\"checked\"" : "")) . " /> " . $Action . "</label></li>";
        }
        $Checkboxes .= "\r\n\t<div class=\"clear\"></div>\r\n\t</ul>\r\n\t" . aaaabm(get_phrase("create_new_administrator"), get_phrase("button_reset"));
        $tableContents = aaaaag(array( array( "width" => "100%", "text" => $Checkboxes ) ));
        $aaaaam = array( "new" => 1 );
        $aaaamg = "<input type=\"checkbox\" name=\"checkALL\" value=\"permissions[]\" />";
        return aaaabn(createtable(get_phrase("administrators_alt"), $tableContents, 1, $aaaamg), $aaaaam);
    }

}

function aaaame($Permissions, $Member)
{
    global $TSUE;
    $staffCPAvailableActions = aaaamf();
    if( ispost() )
    {
        $memberPermissions = unserialize($Member["groupPermissions"]);
        if( !isset($memberPermissions["canlogin_admincp"]) || !$memberPermissions["canlogin_admincp"] )
        {
            return errormessage(get_phrase("insufficient_permission", TSUE_ADMINCP_URL . "?action=Member Manager&amp;do=Membergroups&amp;edit=" . $Member["membergroupid"] . "#administratorpermissions"));
        }

        $newPerms = array(  );
        if( isset($_POST["permissions"]) && $_POST["permissions"] )
        {
            foreach( $_POST["permissions"] as $Action )
            {
                $newPerms[$Action] = 1;
            }
        }

        $staffCPAvailableActions = array_merge($staffCPAvailableActions, $newPerms);
        $TSUE["TSUE_Database"]->replace("tsue_staffcp_permissions", array( "memberid" => $Member["memberid"], "permissions" => serialize($staffCPAvailableActions) ));
        $Phrase = get_phrase("x_admin_perms_updated", $Member["membername"] . " (" . $Member["memberid"] . ")");
        logadminaction($Phrase);
        handlerebuildcaches(false);
        handleprune(false);
        return successmessage($Phrase);
    }
    else
    {
        $staffCPAvailableActions = array_merge($staffCPAvailableActions, $Permissions);
        $Checkboxes = "\r\n\t<ul class=\"adminPerms\">";
        ksort($staffCPAvailableActions);
        foreach( $staffCPAvailableActions as $Action => $Perm )
        {
            $Checkboxes .= "\r\n\t\t<li><label><input type=\"checkbox\" name=\"permissions[]\" value=\"" . $Action . "\"" . (($Perm ? " checked=\"checked\"" : "")) . " /> " . $Action . "</label></li>";
        }
        $Checkboxes .= "\r\n\t<div class=\"clear\"></div>\r\n\t</ul>\r\n\t" . aaaabm(get_phrase("button_save"), get_phrase("button_reset"));
        $tableContents = aaaaag(array( array( "width" => "100%", "text" => $Checkboxes ) ));
        $aaaaam = array( "editPerm" => $Member["memberid"] );
        $aaaamg = "<input type=\"checkbox\" name=\"checkALL\" value=\"permissions[]\" />";
        return aaaabn(createtable(get_phrase("administrators_alt"), $tableContents, 1, $aaaamg), $aaaaam);
    }

}

function aaaamf()
{
    return array( "Options" => 0, "Pages" => 0, "Polls" => 0, "News" => 0, "FAQ" => 0, "Torrent Categories" => 0, "Market" => 0, "API Manager" => 0, "Cron Entries" => 0, "Rebuild Caches" => 0, "Logs" => 0, "Server" => 0, "Notes" => 0, "Statistics" => 0, "Read PM" => 0, "Database" => 0, "Announcements" => 0, "Torrents" => 0, "Add-ons" => 0, "TSUE Store" => 0, "Recent Comments" => 0, "Torrent Genres" => 0, "Advertisements" => 0, "Shoutbox Channels" => 0, "Plugin Manager" => 0, "Forum Manager" => 0, "Appearance" => 0, "All Members" => 0, "Awaiting Approval" => 0, "Banned Members" => 0, "Warned Members" => 0, "Membergroups" => 0, "Email Members" => 0, "Search Members" => 0, "Peers" => 0, "Account Upgrades" => 0, "Muted Members" => 0, "PM Members" => 0, "Promotions" => 0, "Duplicate Ips" => 0, "Hit and Runners" => 0, "Test Permissions" => 0, "Administrators" => 0, "Gift" => 0, "Mass Invite" => 0, "Awards" => 0, "Auto Warned Members" => 0, "Uploader Activity" => 0, "First Line Support" => 0, "Spam Cleaner" => 0, "Prune" => 0, "Smilies" => 0, "Country Flags" => 0, "Attachment Browser" => 0, "Downloads" => 0, "Permissions" => 0, "Cleanup" => 0 );
}

function managegift()
{
    global $TSUE;
    $formErrors = "";
    $Gift = array( "membernames" => "", "membergroups" => array(  ), "gift_amount" => "", "gift_type" => "", "send_pm" => "" );
    if( ispost() )
    {
        $Gift = array_merge($Gift, $_POST["Gift"]);
        $Gift["gift_amount"] = 0 + $Gift["gift_amount"];
        $Gift["gift_type"] = (in_array($Gift["gift_type"], array( "gift_upload", "gift_invite", "gift_point" )) ? $Gift["gift_type"] : "");
        $Gift["send_pm"] = 0 + $Gift["send_pm"];
        if( !$Gift["membernames"] && !$Gift["membergroups"] || !$Gift["gift_amount"] || !$Gift["gift_type"] )
        {
            $formErrors[] = get_phrase("message_required_fields_error");
        }
        else
        {
            if( $Gift["membernames"] )
            {
                $membernames = tsue_explode("-", trim($Gift["membernames"]));
                foreach( $membernames as $membername )
                {
                    if( !is_valid_string($membername) )
                    {
                        $formErrors[] = "(" . html_clean($membername) . ") " . get_phrase("invalid_membername");
                    }

                }
                if( !$formErrors && $membernames )
                {
                    foreach( $membernames as $membername )
                    {
                        $checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername=" . $TSUE["TSUE_Database"]->escape($membername) . " LIMIT 1");
                        if( !$checkMember )
                        {
                            $formErrors[] = "(" . html_clean($membername) . ") " . get_phrase("member_not_found");
                        }

                    }
                    if( !$formErrors )
                    {
                        $WHERE = "membername IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $membernames)) . ")";
                    }

                }

            }
            else
            {
                if( $Gift["membergroups"] )
                {
                    foreach( $Gift["membergroups"] as $membergroup )
                    {
                        $membergroup = intval($membergroup);
                        if( !is_int($membergroup) )
                        {
                            $formErrors[] = "(" . html_clean($membergroup) . ") " . get_phrase("invalid_membergroup");
                        }

                    }
                    if( !$formErrors )
                    {
                        foreach( $Gift["membergroups"] as $membergroup )
                        {
                            $checkGroup = $TSUE["TSUE_Database"]->query_result("SELECT groupname FROM tsue_membergroups WHERE membergroupid=" . $TSUE["TSUE_Database"]->escape($membergroup) . " LIMIT 1");
                            if( !$checkGroup )
                            {
                                $formErrors[] = "(" . html_clean($membergroup) . ") " . get_phrase("invalid_membergroup");
                            }

                        }
                        if( !$formErrors )
                        {
                            $WHERE = "membergroupid IN (" . implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $Gift["membergroups"])) . ")";
                        }

                    }

                }

            }

        }

    }

    if( $formErrors )
    {
        $formErrors = errormessage(implode("<br />", $formErrors));
    }
    else
    {
        if( isset($WHERE) && ispost() )
        {
            $getMembers = $TSUE["TSUE_Database"]->query("SELECT memberid, membername FROM tsue_members WHERE " . $WHERE);
            if( !$TSUE["TSUE_Database"]->num_rows($getMembers) )
            {
                return errormessage(get_phrase("message_nothing_found"));
            }

            $Members = $aaaamh = array(  );
            while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($getMembers) )
            {
                $Members[] = $Member["memberid"];
                $aaaamh[] = $Member["membername"];
            }
            switch( $Gift["gift_type"] )
            {
                case "gift_upload":
                    $aaaami = array( "uploaded" => array( "escape" => 0, "value" => "uploaded + " . $Gift["gift_amount"] ) );
                    break;
                case "gift_invite":
                    $aaaami = array( "invites_left" => array( "escape" => 0, "value" => "invites_left + " . $Gift["gift_amount"] ) );
                    break;
                case "gift_point":
                    $aaaami = array( "points" => array( "escape" => 0, "value" => "points + " . $Gift["gift_amount"] ) );
            }
            if( isset($aaaami) )
            {
                $TSUE["TSUE_Database"]->update("tsue_member_profile", $aaaami, "memberid IN (" . implode(",", $Members) . ")");
            }

            $aaaamj = ($Gift["gift_type"] == "gift_upload" ? friendly_size($Gift["gift_amount"]) : $Gift["gift_amount"]);
            $aaaamk = get_phrase($Gift["gift_type"]);
            $Phrase = get_phrase("gift_sent", $aaaamj, $aaaamk, implode("-", array_map("html_clean", $aaaamh)));
            if( $Gift["send_pm"] )
            {
                $count = 0;
                foreach( $Members as $Memberid )
                {
                    $Membername = $aaaamh[$count];
                    $reply = get_phrase("gift_message", $Membername, $aaaamj, $aaaamk, getmembername($TSUE["TSUE_Member"]["membername"], $TSUE["TSUE_Member"]["groupstyle"]));
                    sendpm(get_phrase("gift"), $TSUE["TSUE_Member"]["memberid"], $Memberid, nl2br($reply));
                    $count++;
                }
            }

            logadminaction($Phrase);
            return successmessage($Phrase);
        }

    }

    $inputBox = inputbox("Gift[membernames]", $Gift["membernames"], "text", get_phrase("gift_membernames_hint"));
    $tableContents = aaaaag(array( array( "width" => "20%", "text" => get_phrase("gift_membernames") ), array( "width" => "80%", "text" => $inputBox ) ));
    $inputBox = aaaaaw("Gift[membergroups][]", $Gift["membergroups"], 2);
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("member_manager_membergroups"), "extra" => " style=\"vertical-align: top;\"" ), array( "width" => "80%", "text" => $inputBox ) ));
    $inputBox = inputbox("Gift[gift_amount]", $Gift["gift_amount"], "text texttiny", "", false, false, getimage("buttons/calculator.png", get_phrase("calculator"), "calculator"));
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("gift_amount") ), array( "width" => "80%", "text" => $inputBox ) ));
    $aaaaao = array( "gift_upload" => get_phrase("gift_upload"), "gift_invite" => get_phrase("gift_invite"), "gift_point" => get_phrase("gift_point") );
    $selectBox = selectbox("Gift[gift_type]", $Gift["gift_type"], $aaaaao, "select smallSelect");
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("gift_type") ), array( "width" => "80%", "text" => $selectBox ) ));
    $aaaaao = array( get_phrase("option_no"), get_phrase("option_yes") );
    $selectBox = selectbox("Gift[send_pm]", $Gift["send_pm"], $aaaaao, "select smallSelect");
    $tableContents .= aaaaag(array( array( "width" => "20%", "text" => get_phrase("messages_send_message") ), array( "width" => "80%", "text" => $selectBox . " <span class=\"smallPassiveText\">" . get_phrase("send_message_alt") . "</span>" ) ));
    $inputBox = aaaabm(get_phrase("gift_alt"), get_phrase("button_reset"));
    $tableContents .= aaaaag(array( array( "width" => "20%" ), array( "width" => "80%", "text" => $inputBox ) ));
    return $formErrors . aaaabn(createtable(get_phrase("gift_alt"), $tableContents, 2));
}

function managemassinvite()
{
    global $TSUE;
    $formErrors = "";
    $Amount = 5;
    if( ispost() )
    {
        $Amount = intval(getvar("Amount"));
        if( !$Amount )
        {
            $formErrors[] = get_phrase("message_required_fields_error");
        }
        else
        {
            $aaaaml = array(  );
            for( $i = 0; $i < $Amount; $i++ )
            {
                $aaaaml[$i] = generate_random_string(32);
                $BuildQuery = array( "hash" => $aaaaml[$i], "sender_memberid" => $TSUE["TSUE_Member"]["memberid"], "send_date" => TIMENOW, "email" => "", "name" => "", "status" => "pending" );
                $TSUE["TSUE_Database"]->insert("tsue_invites", $BuildQuery);
                if( !$TSUE["TSUE_Database"]->affected_rows() )
                {
                    unset($aaaaml[$i]);
                    $i -= 1;
                }

            }
            $Phrase = get_phrase("total_x_invites_has_been_generated", count($aaaaml));
            logadminaction($Phrase);
            $HTML = $Phrase . "<hr />";
            foreach( $aaaaml as $count => $hash )
            {
                $HTML .= "<div style=\"padding: 5px 0;\">" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/?p=signup&pid=16&hash=" . $hash . "</div>";
            }
            return $HTML;
        }

    }

    if( $formErrors )
    {
        $formErrors = errormessage(implode("<br />", $formErrors));
    }

    $inputBox = inputbox("Amount", $Amount, "text texttiny");
    $tableContents = aaaaag(array( array( "width" => "20%", "text" => get_phrase("market_item_amount") ), array( "width" => "80%", "text" => $inputBox ) ));
    $inputBox = aaaabm(get_phrase("mass_invite_alt"), get_phrase("button_reset"));
    $tableContents .= aaaaag(array( array( "width" => "20%" ), array( "width" => "80%", "text" => $inputBox ) ));
    return $formErrors . aaaabn(createtable(get_phrase("mass_invite"), $tableContents, 2));
}

function manageawards()
{
    global $TSUE;
    $defaultTheme = aaaaff();
    $aaaamm = ROOTPATH . "styles/" . $defaultTheme . "/awards/";
    $HTML = "";
    $aaaamn = aaaaae(array( "new=1" => array( "phrase" => get_phrase("awards_create_new") ) ));
    $aaaamo = aaaaae(array( "awarded_members=1" => array( "phrase" => get_phrase("awards_awarded_members") ) ));
    $aaaamp = aaaaae(array( "award_member=1" => array( "phrase" => get_phrase("awards_award_member") ) ));
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    $awarded_members = intval(getvar("awarded_members"));
    $delete_member_award = intval(getvar("delete_member_award"));
    $award_member = intval(getvar("award_member"));
    if( $delete_member_award )
    {
        $Award = $TSUE["TSUE_Database"]->query_result("SELECT a.id, a.reason, a.date, aw.award_title, aw.award_image, m.memberid as awardedMemberid, m.membername as awardedMembername, g.groupstyle as awardedGroupstyle, mm.memberid as givenbyMemberid, mm.membername as givenbyMembername, gg.groupstyle as givenbyGroupstyle FROM tsue_awards_members a LEFT JOIN tsue_awards aw USING(award_id) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON(m.membergroupid=g.membergroupid) LEFT JOIN tsue_members mm ON(a.givenby=mm.memberid) LEFT JOIN tsue_membergroups gg ON(mm.membergroupid=gg.membergroupid) WHERE a.id = " . $TSUE["TSUE_Database"]->escape($delete_member_award));
        if( $Award )
        {
            $awardedMembername = getmembername($Award["awardedMembername"], $Award["awardedGroupstyle"]);
            $aaaamq = getmembername($Award["givenbyMembername"], $Award["givenbyGroupstyle"]);
            $TSUE["TSUE_Database"]->delete("tsue_awards_members", "id = " . $TSUE["TSUE_Database"]->escape($delete_member_award));
            logadminaction(get_phrase("member_award_x_has_been_deleted", $awardedMembername, $Award["award_title"] . " (" . $delete_member_award . ")", $aaaamq));
            handlerebuildcaches(false);
        }

    }

    if( $awarded_members )
    {
        addbreadcrumb(array( get_phrase("awards_awarded_members") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;awarded_members=1" ));
        $Count = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as Count FROM tsue_awards_members");
        if( $Count && $Count["Count"] )
        {
            $Pagination = pagination($Count["Count"], "awarded_members=1");
            $tableContents = "";
            $Members = $TSUE["TSUE_Database"]->query("SELECT a.id, a.reason, a.date, aw.award_title, aw.award_image, m.memberid as awardedMemberid, m.membername as awardedMembername, g.groupstyle as awardedGroupstyle, mm.memberid as givenbyMemberid, mm.membername as givenbyMembername, gg.groupstyle as givenbyGroupstyle FROM tsue_awards_members a LEFT JOIN tsue_awards aw USING(award_id) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON(m.membergroupid=g.membergroupid) LEFT JOIN tsue_members mm ON(a.givenby=mm.memberid) LEFT JOIN tsue_membergroups gg ON(mm.membergroupid=gg.membergroupid) ORDER BY a.date DESC " . $Pagination["0"]);
            while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
            {
                $deleteLink = aaaaae(array( "awarded_members=1&delete_member_award=" . $Member["id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
                $awardedMembername = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Member["awardedMemberid"] => array( "phrase" => getmembername($Member["awardedMembername"], $Member["awardedGroupstyle"]) ) ));
                $aaaamq = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Member["givenbyMemberid"] => array( "phrase" => getmembername($Member["givenbyMembername"], $Member["givenbyGroupstyle"]) ) ));
                $award_details = get_phrase("award_details", $aaaamq, strip_tags($Member["reason"]), convert_relative_time($Member["date"]));
                $tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Member["award_image"] . "\" alt=\"" . $Member["award_title"] . "\" title=\"" . $Member["award_title"] . "\" /> " . $awardedMembername . " - " . $Member["award_title"] . "<span class=\"smallPassiveText\">" . $award_details . "</span>" ), array( "width" => "15%", "text" => $deleteLink ) ));
            }
            return createtable(get_phrase("awards_awarded_members") . " (" . number_format($Count["Count"]) . ")", $tableContents, 2, $Pagination["1"]);
        }

        return errormessage(get_phrase("message_nothing_found"));
    }

    if( $edit || $new )
    {
        $Award = array( "award_title" => "", "award_image" => "" );
        $aaaaam = "";
        if( $edit )
        {
            $Award = $TSUE["TSUE_Database"]->query_result("SELECT award_title, award_image FROM tsue_awards WHERE award_id = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Award )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
            addbreadcrumb(array( get_phrase("button_edit") . ": " . $Award["award_title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        }
        else
        {
            addbreadcrumb(array( get_phrase("awards_create_new") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
        }

        if( isset($_POST["Award"]) )
        {
            $Award = $_POST["Award"];
            if( !isset($Award["award_image"]) )
            {
                $Award["award_image"] = "";
            }

            if( !$Award["award_title"] )
            {
                $formErrors[] = get_phrase("please_enter_a_valid_title");
            }

            if( !$Award["award_image"] || !file_exists($aaaamm . $Award["award_image"]) )
            {
                $formErrors[] = get_phrase("please_select_a_valid_image");
            }

            if( !isset($formErrors) )
            {
                $buildQuery = array( "award_title" => $Award["award_title"], "award_image" => $Award["award_image"] );
                if( $edit )
                {
                    $TSUE["TSUE_Database"]->update("tsue_awards", $buildQuery, "award_id=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $TSUE["TSUE_Database"]->insert("tsue_awards", $buildQuery);
                }

                logadminaction(get_phrase("award_x_has_been_updated", $Award["award_title"]));
                $HTML .= successmessage(get_phrase("message_saved"));
                handlerebuildcaches(false);
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $inputbox = inputbox("Award[award_title]", $Award["award_title"]);
            $formContents = aaaaan(get_phrase("award_title"), $inputbox);
            $options = "\r\n\t\t\t<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t<tr>";
            $Count = 0;
            $aaaamr = scandir($aaaamm);
            foreach( $aaaamr as $Image )
            {
                if( in_array(file_extension($Image), array( "png", "jpg", "gif", "jpeg" )) )
                {
                    if( $Count % 20 == 0 )
                    {
                        $options .= "</tr><tr>";
                    }

                    $options .= "\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<label style=\"margin: 5px;\">\r\n\t\t\t\t\t\t\t<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Image . "\" alt=\"\" title=\"\" /> <input type=\"radio\" name=\"Award[award_image]\" value=\"" . $Image . "\"" . (($Award["award_image"] == $Image ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t\t\t</label>\r\n\t\t\t\t\t</td>";
                    $Count++;
                }

            }
            $options .= "\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
            $formContents .= aaaaan(get_phrase("award_image"), $options, get_phrase("awards_image_path"));
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    if( $delete )
    {
        $Award = $TSUE["TSUE_Database"]->query_result("SELECT award_title FROM tsue_awards WHERE award_id = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Award )
        {
            $TSUE["TSUE_Database"]->delete("tsue_awards", "award_id = " . $TSUE["TSUE_Database"]->escape($delete));
            $TSUE["TSUE_Database"]->delete("tsue_awards_members", "award_id = " . $TSUE["TSUE_Database"]->escape($delete));
            logadminaction(get_phrase("award_x_has_been_deleted", $Award["award_title"] . " (" . $delete . ")"));
            handlerebuildcaches(false);
        }

    }

    if( $award_member )
    {
        addbreadcrumb(array( get_phrase("awards_award_member") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;award_member=1" ));
        $awardMember = array( "award_id" => "", "memberid" => "", "reason" => "", "givenby" => $TSUE["TSUE_Member"]["memberid"], "date" => TIMENOW );
        $aaaams = "";
        if( isset($_POST["awardMember"]) )
        {
            $awardMember = array_merge($awardMember, $_POST["awardMember"]);
            if( !$awardMember["award_id"] )
            {
                $formErrors[] = get_phrase("awards_please_select_a_valid_award_type");
            }
            else
            {
                $checkAward = $TSUE["TSUE_Database"]->query_result("SELECT award_title, award_image FROM tsue_awards WHERE award_id = " . $TSUE["TSUE_Database"]->escape($awardMember["award_id"]));
                if( !$checkAward )
                {
                    $formErrors[] = get_phrase("awards_please_select_a_valid_award_type");
                }

            }

            if( !$awardMember["membername"] )
            {
                $formErrors[] = get_phrase("member_not_found");
            }
            else
            {
                $checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($awardMember["membername"]));
                if( !$checkMember )
                {
                    $formErrors[] = get_phrase("member_not_found");
                }
                else
                {
                    $awardMember["memberid"] = $checkMember["memberid"];
                    $aaaams = $awardMember["membername"];
                    unset($awardMember["membername"]);
                }

            }

            if( !$awardMember["reason"] )
            {
                $formErrors[] = get_phrase("awards_please_enter_a_valid_award_reason");
            }

            if( !isset($formErrors) )
            {
                $TSUE["TSUE_Database"]->insert("tsue_awards_members", $awardMember);
                $subject = get_phrase("you_got_a_new_award_subject");
                $reply = get_phrase("you_got_a_new_award_message", $aaaams, getmembername($TSUE["TSUE_Member"]["membername"], $TSUE["TSUE_Member"]["groupstyle"]), "[img]" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $checkAward["award_image"] . "[/img] " . $checkAward["award_title"], strip_tags($awardMember["reason"]));
                sendpm($subject, $TSUE["TSUE_Member"]["memberid"], $awardMember["memberid"], nl2br($reply));
                logadminaction(get_phrase("awards_member_got_an_alert", $aaaams, $checkAward["award_title"], $TSUE["TSUE_Member"]["membername"], strip_tags($awardMember["reason"])));
                $HTML .= successmessage(get_phrase("message_saved"));
                handlerebuildcaches(false);
                handleprune(false);
                $updateDone = true;
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $options = "\r\n\t\t\t<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t\t<tr>";
            $Count = 0;
            for( $Awards = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_awards ORDER BY award_title ASC"); $Award = $TSUE["TSUE_Database"]->fetch_assoc($Awards); $Count++ )
            {
                if( $Count % 20 == 0 )
                {
                    $options .= "</tr><tr>";
                }

                $options .= "\r\n\t\t\t\t<td>\r\n\t\t\t\t\t<label style=\"margin: 5px;\">\r\n\t\t\t\t\t\t<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Award["award_image"] . "\" alt=\"" . $Award["award_title"] . "\" title=\"" . $Award["award_title"] . "\" /> <input type=\"radio\" name=\"awardMember[award_id]\" value=\"" . $Award["award_id"] . "\"" . (($awardMember["award_id"] == $Award["award_id"] ? " checked=\"checked\"" : "")) . " />\r\n\t\t\t\t\t</label>\r\n\t\t\t\t</td>";
            }
            $options .= "\r\n\t\t\t\t</tr>\r\n\t\t\t</table>";
            $formContents = aaaaan(get_phrase("awards_award_type"), $options);
            $inputbox = inputbox("awardMember[membername]", (isset($awardMember["membername"]) ? $awardMember["membername"] : $aaaams), "text", NULL, false, true);
            $formContents .= aaaaan(get_phrase("your_name"), $inputbox);
            $inputbox = inputbox("awardMember[reason]", $awardMember["reason"]);
            $formContents .= aaaaan(get_phrase("awards_award_reason"), $inputbox);
            $HTML .= aaaabg($formContents);
            return $HTML;
        }

    }

    $Awards = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_awards ORDER BY award_title ASC");
    if( !$TSUE["TSUE_Database"]->num_rows($Awards) )
    {
        $tableContents = errormessage(get_phrase("message_nothing_found"));
    }
    else
    {
        $tableContents = "";
        while( $Award = $TSUE["TSUE_Database"]->fetch_assoc($Awards) )
        {
            $EditLink = aaaaae(array( "edit=" . $Award["award_id"] => array( "phrase" => $Award["award_title"] ) ));
            $DeleteLink = aaaaae(array( "delete=" . $Award["award_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            $tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $defaultTheme . "/awards/" . $Award["award_image"] . "\" alt=\"" . $Award["award_title"] . "\" title=\"" . $Award["award_title"] . "\" /> " . $EditLink . "<span class=\"smallPassiveText\"></span>" ), array( "width" => "15%", "align" => "right", "text" => $DeleteLink ) ));
        }
    }

    $HTML .= createtable(get_phrase("awards_alt"), $tableContents, 2, $aaaamn . " - " . $aaaamo . " - " . $aaaamp);
    return $HTML;
}

function manageautowarnedmembers()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $lift = intval(getvar("lift"));
    if( $lift )
    {
        $warnedMember = $TSUE["TSUE_Database"]->query_result("SELECT w.*, m.membername FROM tsue_auto_warning w LEFT JOIN tsue_members m USING(memberid) WHERE w.memberid=" . $TSUE["TSUE_Database"]->escape($lift));
        if( !$warnedMember )
        {
            return errormessage(get_phrase("member_not_found"));
        }

        $TSUE["TSUE_Database"]->delete("tsue_auto_warning", "memberid=" . $TSUE["TSUE_Database"]->escape($lift));
        logadminaction(get_phrase("warned_auto_warn_has_been_lifted", $warnedMember["membername"], $TSUE["TSUE_Member"]["membername"]));
        $HTML .= successmessage(get_phrase("message_saved"));
        handlerebuildcaches(false);
    }

    $warnedMembersCount = $TSUE["TSUE_Database"]->query_result("SELECT COUNT(*) as warnedMembersCount FROM tsue_auto_warning");
    if( !$warnedMembersCount["warnedMembersCount"] )
    {
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("warned_no_warned_members") ) ));
        return createtable(get_phrase("member_manager_auto_warned_members_alt"), $tableContents);
    }

    $Pagination = pagination($warnedMembersCount["warnedMembersCount"]);
    $warnedMembers = $TSUE["TSUE_Database"]->query("SELECT b.*, m.membername, p.downloaded, p.uploaded FROM tsue_auto_warning b LEFT JOIN tsue_members m USING(memberid) LEFT JOIN tsue_member_profile p USING(memberid) " . $Pagination["0"]);
    while( $warnedMember = $TSUE["TSUE_Database"]->fetch_assoc($warnedMembers) )
    {
        $aaaakj = aaaaae(array( "lift=" . $warnedMember["memberid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("warned_lift_warn")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
        $ratioFixDate = get_phrase("will_be_banned_on", convert_time($warnedMember["warned"] + $TSUE["TSUE_Settings"]->settings["auto_warning"]["warn_length"] * 24 * 60 * 60));
        $warn_date = get_phrase("warned_warn_started", convert_relative_time($warnedMember["warned"]));
        $aaaakb = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $warnedMember["memberid"] => array( "phrase" => $warnedMember["membername"] ) ));
        $ratio = get_phrase("stats_ratio") . ": " . member_ratio($warnedMember["uploaded"], $warnedMember["downloaded"]);
        $tableContents .= aaaaag(array( array( "width" => "90%", "text" => $aaaakb . " <span class=\"smallPassiveText\">" . $warn_date . " -- " . $ratio . " -- " . $ratioFixDate . "</span>" ), array( "width" => "10%", "text" => $aaaakj ) ));
    }
    $HTML .= createtable(get_phrase("member_manager_auto_warned_members_alt"), $tableContents, 2, $Pagination["1"]);
    return $HTML;
}

function manageuploaderactivity()
{
    global $TSUE;
    $uGroups = getvar("membergroups", array(  ), false);
    if( $uGroups )
    {
        $aaaamt = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $uGroups));
        $Uploaders = $TSUE["TSUE_Database"]->query("SELECT m.memberid, m.membername, m.joindate, m.lastactivity, m.gender, p.uploaded, p.downloaded, p.points, g.groupname, g.groupstyle, COUNT(t.tid) as totalTorrents, SUM(t.leechers) AS totalLeechers, SUM(t.seeders) AS totalSeeders, MAX(t.added) as lastUpload, COUNT(peer.active) as activeSeeds FROM tsue_members m LEFT JOIN tsue_member_profile p USING(memberid) LEFT JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_torrents t ON(m.memberid=t.owner) LEFT JOIN " . ((getsetting("xbt", "active") ? "xbt_files_users peer ON (peer.uid=m.memberid && peer.active=1 && peer.left = 0)" : "tsue_torrents_peers peer ON (peer.memberid=m.memberid && peer.active=0 && peer.left=0)")) . " WHERE g.membergroupid IN (0," . $aaaamt . ") GROUP BY m.memberid ORDER BY lastUpload ASC");
        if( !($aaaamu = $TSUE["TSUE_Database"]->num_rows($Uploaders)) )
        {
            return errormessage(get_phrase("message_nothing_found"));
        }

        $List = "\r\n\t\t\t<div class=\"success\">" . get_phrase("total_x_ul_found", number_format($aaaamu)) . "</div>";
        while( $Uploader = $TSUE["TSUE_Database"]->fetch_assoc($Uploaders) )
        {
            $lastUpload = get_phrase("last_upload", ($Uploader["lastUpload"] ? convert_relative_time($Uploader["lastUpload"]) : "--"));
            if( !$Uploader["lastUpload"] || $Uploader["lastUpload"] < TIMENOW - 15 * 24 * 60 * 60 )
            {
                $lastUpload = "<span style=\"color: red;\">" . $lastUpload . "</span>";
            }

            $Avatar = get_member_avatar($Uploader["memberid"], $Uploader["gender"]);
            $Membername = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Uploader["memberid"] => array( "phrase" => $Uploader["membername"], "class" => "standartAClass" ) ));
            $List .= "\r\n\t\t\t\t<div style=\"float: left; margin: 5px; padding: 5px; position: relative; width: 390px; border: 1px solid #ddd;\">\r\n\t\t\t\t\t<div style=\"float: left;\">\r\n\t\t\t\t\t\t<img src=\"" . $Avatar . "\" alt=\"\" />\r\n\t\t\t\t\t\t<div style=\"padding-top: 5px; text-align: center;\">" . aaaaaf("?p=profile&pid=18&memberid=" . $Uploader["memberid"], getimage("buttons/examine.png", get_phrase("memberinfo_title", $Uploader["membername"]))) . "</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div style=\"float: left; margin-left: 5px; font-size: 11px; font-family:Tahoma, Geneva, sans-serif;\">\r\n\t\t\t\t\t\t" . $Membername . " (" . getmembername($Uploader["groupname"], $Uploader["groupstyle"]) . ")<br />\r\n\t\t\t\t\t\t" . get_phrase("memberinfo_membersince", convert_relative_time($Uploader["joindate"])) . "<br />\r\n\t\t\t\t\t\t" . get_phrase("memberinfo_lastactivity", convert_relative_time($Uploader["lastactivity"])) . "<br />\r\n\t\t\t\t\t\t" . $lastUpload . "<br />\r\n\t\t\t\t\t\t<b>" . get_phrase("stats_uploaded") . ":</b> " . friendly_size($Uploader["uploaded"]) . "<br />\r\n\t\t\t\t\t\t<b>" . get_phrase("stats_downloaded") . ":</b> " . friendly_size($Uploader["downloaded"]) . "<br />\r\n\t\t\t\t\t\t" . get_phrase("uploaded_torrents", number_format($Uploader["totalTorrents"])) . "<br />\r\n\t\t\t\t\t\t" . get_phrase("active_seeds", number_format($Uploader["activeSeeds"])) . "<br />\r\n\t\t\t\t\t\t" . get_phrase("total_peers_on_up_torrents", number_format($Uploader["totalLeechers"] + $Uploader["totalSeeders"]), number_format($Uploader["totalSeeders"]), number_format($Uploader["totalLeechers"])) . "\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>";
        }
        $List .= "\r\n\t\t\t<div style=\"clear: both;\"></div>";
        return $List;
    }

    $Membergroups = aaaaaw("membergroups[]", $uGroups);
    $formContents = aaaaan(get_phrase("select_mg_to_view_ua"), $Membergroups);
    return aaaabg($formContents);
}

function managefirstlinesupport()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $new = intval(getvar("new"));
    $edit = intval(getvar("edit"));
    $delete = intval(getvar("delete"));
    $enable_disable = intval(getvar("enable_disable"));
    if( $enable_disable )
    {
        $BuildQuery = array( "active" => array( "escape" => 0, "value" => "IF(active>0,0,1)" ) );
        $FLS = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_first_line_support WHERE sid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
        if( $FLS )
        {
            $TSUE["TSUE_Database"]->update("tsue_first_line_support", $BuildQuery, "sid = " . $TSUE["TSUE_Database"]->escape($enable_disable));
            $Phrase = get_phrase("fls_x_has_been_updated", $FLS["title"] . " (" . $enable_disable . ")");
            logadminaction($Phrase);
            $HTML .= successmessage($Phrase);
            handlerebuildcaches(false);
        }

    }

    if( $delete )
    {
        $FLS = $TSUE["TSUE_Database"]->query_result("SELECT title FROM tsue_first_line_support WHERE sid = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $FLS )
        {
            $TSUE["TSUE_Database"]->delete("tsue_first_line_support", "sid = " . $TSUE["TSUE_Database"]->escape($delete));
            $Phrase = get_phrase("fls_x_has_been_deleted", $FLS["title"] . " (" . $delete . ")");
            logadminaction($Phrase);
            $HTML .= successmessage($Phrase);
            handlerebuildcaches(false);
        }

    }

    if( $edit || $new )
    {
        $FLS = array( "title" => "", "description" => "", "members" => "", "active" => 1 );
        $aaaaam = "";
        if( $edit )
        {
            $FLS = $TSUE["TSUE_Database"]->query_result("SELECT title,description,members,active FROM tsue_first_line_support WHERE sid = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$FLS )
            {
                return errormessage(get_phrase("message_content_error"));
            }

            $aaaaam = array( "edit" => $edit );
            if( $FLS["members"] && substr($FLS["members"], -2) != ", " )
            {
                $FLS["members"] = $FLS["members"] . ", ";
            }

            addbreadcrumb(array( get_phrase("button_edit") . ": " . $FLS["title"] => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
        }
        else
        {
            addbreadcrumb(array( get_phrase("create_fls_team") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;new=1" ));
        }

        if( isset($_POST["FLS"]) )
        {
            $FLS = $_POST["FLS"];
            if( !$FLS["title"] )
            {
                $formErrors[] = get_phrase("please_enter_a_valid_title");
            }

            if( !$FLS["description"] )
            {
                $formErrors[] = get_phrase("valid_description_required");
            }

            if( !$FLS["members"] )
            {
                $formErrors[] = get_phrase("fls_invalid_members");
            }
            else
            {
                $aaaamv = array(  );
                $aaaamw = tsue_explode(",", trim(preg_replace("/\\s+/", "", $FLS["members"])));
                if( $aaaamw )
                {
                    foreach( $aaaamw as $member )
                    {
                        $member = trim($member);
                        if( !in_array($member, $aaaamv) && $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($member)) )
                        {
                            $aaaamv[] = $member;
                        }

                    }
                }

                if( !$aaaamv )
                {
                    $formErrors[] = get_phrase("fls_invalid_members");
                }
                else
                {
                    $FLS["members"] = implode(", ", $aaaamv);
                }

            }

            if( !isset($formErrors) )
            {
                $buildQuery = array( "title" => $FLS["title"], "description" => $FLS["description"], "members" => $FLS["members"], "active" => $FLS["active"] );
                if( $edit )
                {
                    $Phrase = get_phrase("fls_x_has_been_updated", $FLS["title"] . " (" . $edit . ")");
                    $TSUE["TSUE_Database"]->update("tsue_first_line_support", $buildQuery, "sid=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $Phrase = get_phrase("fls_x_has_been_created", $FLS["title"]);
                    $TSUE["TSUE_Database"]->insert("tsue_first_line_support", $buildQuery);
                }

                logadminaction($Phrase);
                $HTML .= successmessage($Phrase);
                $updateDone = true;
                handlerebuildcaches(false);
            }
            else
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }

        }

        if( !isset($updateDone) )
        {
            $radioButtons = radioyesno("FLS[active]", $FLS["active"]);
            $formContents = aaaaan(get_phrase("fls_active"), $radioButtons);
            $inputbox = inputbox("FLS[title]", $FLS["title"]);
            $formContents .= aaaaan(get_phrase("fls_title"), $inputbox);
            $textarea = textarea("FLS[description]", $FLS["description"], true);
            $formContents .= aaaaan(get_phrase("fls_description"), $textarea);
            $inputbox = inputbox("FLS[members]", $FLS["members"], "text", "", false, true, "", "autoCompleteMultiple");
            $formContents .= aaaaan(get_phrase("fls_members"), $inputbox, get_phrase("fls_members_alt"));
            $HTML .= aaaabg($formContents, $aaaaam);
            return $HTML;
        }

    }

    $FLS = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_first_line_support ORDER BY active DESC, title ASC");
    if( $TSUE["TSUE_Database"]->num_rows($FLS) )
    {
        while( $Team = $TSUE["TSUE_Database"]->fetch_assoc($FLS) )
        {
            $linkClass = (!$Team["active"] ? "linkDisabled" : "");
            $aaaamx = aaaaae(array( "delete=" . $Team["sid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
            $aaaamy = aaaaae(array( "edit=" . $Team["sid"] => array( "phrase" => $Team["title"], "class" => $linkClass ) ));
            if( $Team["active"] )
            {
                $aaaamz = aaaaae(array( "enable_disable=" . $Team["sid"] => array( "phrase" => getimage("buttons/disable.png", get_phrase("button_disable")) ) ));
            }
            else
            {
                $aaaamz = aaaaae(array( "enable_disable=" . $Team["sid"] => array( "phrase" => getimage("buttons/enable.png", get_phrase("button_enable")) ) ));
            }

            $tableContents .= aaaaag(array( array( "width" => "80%", "text" => $aaaamy . "<span class=\"smallPassiveText\">" . strip_tags($Team["description"]) . "</span>" ), array( "width" => "20%", "text" => $aaaamz . $aaaamx, "align" => "right" ) ));
        }
    }
    else
    {
        $tableContents .= aaaaag(array( array( "width" => "100%", "text" => get_phrase("no_fls_team_yet"), "colspan" => "2" ) ));
    }

    $aaaana = aaaaae(array( "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"] . "&new=1" => array( "phrase" => get_phrase("create_fls_team") ) ));
    $HTML .= aaaabn(createtable(get_phrase("first_line_support_alt"), $tableContents, 2, $aaaana));
    return $HTML;
}

function managespamcleaner()
{
    global $TSUE;
    $HTML = "";
    $spam_membername = trim(getvar("spam_membername"));
    if( $spam_membername && ispost() )
    {
        $aaaamv = array(  );
        $aaaamw = tsue_explode(",", trim(preg_replace("/\\s+/", "", $spam_membername)));
        if( $aaaamw )
        {
            foreach( $aaaamw as $member )
            {
                $member = trim($member);
                if( !isset($aaaamv[$member]) && ($checkMember = $TSUE["TSUE_Database"]->query_result("SELECT memberid FROM tsue_members WHERE membername = " . $TSUE["TSUE_Database"]->escape($member))) )
                {
                    $aaaamv[$member] = 0 + $checkMember["memberid"];
                }

            }
        }

        if( !$aaaamv )
        {
            return errormessage(get_phrase("please_enter_at_least_one_valid_member"));
        }

        $membernames = array(  );
        $memberids = array(  );
        foreach( $aaaamv as $membername => $memberid )
        {
            $membernames[] = $membername;
            $memberids[] = $memberid;
        }
        $memberids = implode(", ", $memberids);
        $affectedRows = 0;
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_announcements", "memberid IN (" . $memberids . ")");
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_comments", "memberid IN (" . $memberids . ")");
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_comments_replies", "memberid IN (" . $memberids . ")");
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_forums_thread_subscribe", "memberid IN (" . $memberids . ")");
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_messages_master", "owner_memberid IN (" . $memberids . ")");
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_messages_replies", "memberid IN (" . $memberids . ")");
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_reports", "reported_by_memberid IN (" . $memberids . ")");
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_reports_comments", "memberid IN (" . $memberids . ")");
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_requests", "memberid IN (" . $memberids . ")");
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_shoutbox", "memberid IN (" . $memberids . ")");
        $affectedRows += $TSUE["TSUE_Database"]->delete("tsue_staff_messages", "memberid IN (" . $memberids . ")");
        $Posts = $TSUE["TSUE_Database"]->query("SELECT p.postid,p.threadid,p.memberid, t.memberid as threadOwner, f.forumid FROM tsue_forums_posts p LEFT JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_forums f ON (t.forumid=f.forumid) WHERE p.memberid IN (" . $memberids . ")");
        if( $TSUE["TSUE_Database"]->num_rows($Posts) )
        {
            while( $Post = $TSUE["TSUE_Database"]->fetch_assoc($Posts) )
            {
                deletepost($Post["postid"], $Post["memberid"]);
                $threadHasStillPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE p.threadid = " . $TSUE["TSUE_Database"]->escape($Post["threadid"]) . " ORDER BY p.post_date DESC");
                if( !$threadHasStillPosts )
                {
                    deletethread($Post["threadid"], $Post["forumid"], $Post["threadOwner"]);
                }
                else
                {
                    $findLastPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.forumid = " . $TSUE["TSUE_Database"]->escape($Post["forumid"]) . " ORDER BY p.post_date DESC");
                    $last_post_info = serialize(array( "lastpostdate" => $findLastPosts["post_date"], "lastposter" => $findLastPosts["membername"], "lastposterid" => $findLastPosts["memberid"] ));
                    $BuildQuery = array( "replycount" => array( "escape" => 0, "value" => "IF(replycount > 0, replycount - 1, 0)" ), "last_post_info" => $last_post_info, "last_post_threadid" => ($findLastPosts["threadid"] ? $findLastPosts["threadid"] : 0) );
                    $TSUE["TSUE_Database"]->update("tsue_forums", $BuildQuery, "forumid = " . $TSUE["TSUE_Database"]->escape($Post["forumid"]));
                    $BuildQuery = array( "reply_count" => array( "escape" => 0, "value" => "IF(reply_count > 0, reply_count - 1, 0)" ), "last_post_info" => $last_post_info, "last_post_date" => $findLastPosts["post_date"] );
                    $TSUE["TSUE_Database"]->update("tsue_forums_threads", $BuildQuery, "threadid = " . $TSUE["TSUE_Database"]->escape($Post["threadid"]));
                }

            }
        }

        $Threads = $TSUE["TSUE_Database"]->query("SELECT threadid,forumid,memberid FROM tsue_forums_threads WHERE memberid IN (" . $memberids . ")");
        if( $TSUE["TSUE_Database"]->num_rows($Threads) )
        {
            while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) )
            {
                $posts = $TSUE["TSUE_Database"]->query("SELECT postid, memberid FROM tsue_forums_posts WHERE threadid = " . $TSUE["TSUE_Database"]->escape($Thread["threadid"]));
                if( $TSUE["TSUE_Database"]->num_rows($posts) )
                {
                    while( $post = $TSUE["TSUE_Database"]->fetch_assoc($posts) )
                    {
                        deletepost($post["postid"], $post["memberid"]);
                    }
                }

                deletethread($Thread["threadid"], $Thread["forumid"], $Thread["memberid"]);
            }
        }

        $Phrase = get_phrase("spam_content_cleaned_for_x", implode(", ", $membernames));
        logadminaction($Phrase);
        $HTML .= successmessage($Phrase . " | <a href=\"?action=Forum Manager&amp;do=Rebuild Counters\">" . get_phrase("rebuild_counters_alt") . "</a>");
        handleprune(false);
        handlerebuildcaches(false);
    }

    $inputbox = inputbox("spam_membername", $spam_membername, "text", "", false, true, "", "autoCompleteMultiple");
    $formContents = aaaaan(get_phrase("spam_membername"), $inputbox, get_phrase("spam_membername_alt"));
    $HTML .= aaaabg($formContents, "", "", "spam_cleaner_alt");
    return $HTML;
}

function deletepost($postid, $memberid)
{
    global $TSUE;
    if( !$TSUE["TSUE_Database"]->delete("tsue_forums_posts", "postid = " . $TSUE["TSUE_Database"]->escape($postid)) )
    {
        return NULL;
    }

    updatememberpoints($TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_replies"], $memberid, false);
    profileupdate($memberid, array( "total_posts" => array( "escape" => 0, "value" => "IF(total_posts > 0, total_posts-1, 0)" ) ));
    $Attachments = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_attachments WHERE content_type = 'posts' AND content_id = " . $TSUE["TSUE_Database"]->escape($postid));
    if( $TSUE["TSUE_Database"]->num_rows($Attachments) )
    {
        while( $Attachment = $TSUE["TSUE_Database"]->fetch_assoc($Attachments) )
        {
            $filename = DATAPATH . "posts/" . $Attachment["filename"];
            if( is_file($filename) )
            {
                @unlink($filename);
            }

        }
        $TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type = 'posts' AND content_id = " . $TSUE["TSUE_Database"]->escape($postid));
    }

    $TSUE["TSUE_Database"]->delete("tsue_liked_content", "content_type = 'thread_posts' AND content_id = " . $TSUE["TSUE_Database"]->escape($postid));
}

function deletethread($threadid, $forumid, $threadOwner = 0)
{
    global $TSUE;
    $TSUE["TSUE_Database"]->delete("tsue_forums_threads", "threadid = " . $TSUE["TSUE_Database"]->escape($threadid));
    $TSUE["TSUE_Database"]->delete("tsue_forums_thread_subscribe", "threadid = " . $TSUE["TSUE_Database"]->escape($threadid));
    $TSUE["TSUE_Database"]->delete("tsue_poll", "threadid=" . $TSUE["TSUE_Database"]->escape($threadid) . " AND createdinThread = 1");
    $TSUE["TSUE_Database"]->update("tsue_poll", array( "threadid" => 0 ), "threadid=" . $TSUE["TSUE_Database"]->escape($threadid));
    updatememberpoints($TSUE["TSUE_Settings"]->settings["global_settings"]["points_new_thread"], $threadOwner, false);
    $last_post_info = "";
    $findLastPosts = $TSUE["TSUE_Database"]->query_result("SELECT p.memberid, p.post_date, t.threadid, m.membername FROM tsue_forums_posts p INNER JOIN tsue_forums_threads t USING(threadid) LEFT JOIN tsue_members m ON (p.memberid=m.memberid) WHERE t.forumid = " . $TSUE["TSUE_Database"]->escape($forumid) . " ORDER BY p.post_date DESC");
    if( $findLastPosts )
    {
        $last_post_info = serialize(array( "lastpostdate" => $findLastPosts["post_date"], "lastposter" => $findLastPosts["membername"], "lastposterid" => $findLastPosts["memberid"] ));
    }

    $BuildQuery = array( "replycount" => array( "escape" => 0, "value" => "IF(replycount > 0, replycount - 1, 0)" ), "threadcount" => array( "escape" => 0, "value" => "IF(threadcount > 0, threadcount - 1, 0)" ), "last_post_info" => $last_post_info, "last_post_threadid" => ($findLastPosts["threadid"] ? $findLastPosts["threadid"] : 0) );
    $TSUE["TSUE_Database"]->update("tsue_forums", $BuildQuery, "forumid = " . $TSUE["TSUE_Database"]->escape($forumid));
}

function handleprune($return = true)
{
    global $TSUE;
    checkdemomode();
    $TSUE["TSUE_Database"]->truncate("tsue_file_caches");
    $cacheFolder = DATAPATH . "cache/";
    if( !is_dir($cacheFolder) || !is_writable($cacheFolder) )
    {
        return errormessage(get_phrase("file_manager_prune_no_cache_folder"));
    }

    $cacheFiles = scandir($cacheFolder);
    if( count($cacheFiles) <= 2 )
    {
        return false;
    }

    foreach( $cacheFiles as $cacheFile )
    {
        $_ext = file_extension($cacheFile);
        if( in_array($_ext, array( "tsue", "gz", "js", "gif", "jpg", "png", "jpeg", "zip", "srv" )) )
        {
            @unlink($cacheFolder . $cacheFile);
        }

    }
    if( $return )
    {
        $HTML = get_phrase("file_manager_prune_cache_pruned");
        logadminaction($HTML);
        return successmessage($HTML);
    }

}

function handlesmilies()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $aaaanb = DATAPATH . "smilies/";
    $aaaanc = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/smilies/";
    $allowedFiles = array( "gif", "jpg", "png" );
    if( !is_dir($aaaanb) || !is_writable($aaaanb) )
    {
        return errormessage(get_phrase("file_manager_smilies_no_smilies_folder"));
    }

    $cacheFiles = array(  );
    foreach( $TSUE["TSUE_Settings"]->settings["dialog_smilies_cache"] as $Smilie )
    {
        $cacheFiles[] = $Smilie["smilie_file"];
    }
    $aaaand = array(  );
    $scanFiles = scandir($aaaanb);
    foreach( $scanFiles as $sFile )
    {
        $fEXT = file_extension($sFile);
        if( in_array($fEXT, $allowedFiles) && !in_array($sFile, $cacheFiles) )
        {
            $title = $text = str_replace("." . $fEXT, "", $sFile);
            $text = ":" . $text . ":";
            $aaaand[] = $sFile;
            $buildQuery = array( "smilie_title" => $title, "smilie_text" => $text, "smilie_file" => $sFile );
            $TSUE["TSUE_Database"]->insert("tsue_smilies", $buildQuery);
        }

    }
    if( $aaaand )
    {
        handlerebuildcaches(false);
        handleprune(false);
    }

    $upload = intval(getvar("upload"));
    $edit = intval(getvar("edit"));
    if( $upload || $edit )
    {
        checkdemomode();
        $Smilie = array( "smilie_title" => "", "smilie_text" => "" );
        if( $edit )
        {
            $Smilie = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_smilies WHERE smilie_id = " . $TSUE["TSUE_Database"]->escape($edit));
            if( !$Smilie )
            {
                return errormessage(get_phrase("message_not_found"));
            }

            $aaaane = $Smilie["smilie_text"];
            $aaaanf = $Smilie["smilie_file"];
        }

        if( ispost() )
        {
            $Smilie = $_POST["Smilie"];
            $aaaang = $_FILES["smilie_file"];
            $aaaang["name"] = safe_names($aaaang["name"]);
            if( $aaaang["name"] || !$edit )
            {
                if( !$aaaang["size"] || $aaaang["error"] )
                {
                    $formErrors[] = get_phrase("upload_error3");
                }
                else
                {
                    if( !in_array(file_extension($aaaang["name"]), $allowedFiles) )
                    {
                        $formErrors[] = get_phrase("upload_error6", implode(",", $allowedFiles));
                    }
                    else
                    {
                        if( is_file($aaaanb . $aaaang["name"]) )
                        {
                            $formErrors[] = get_phrase("upload_error7");
                        }
                        else
                        {
                            if( !move_uploaded_file($aaaang["tmp_name"], $aaaanb . $aaaang["name"]) )
                            {
                                $formErrors[] = get_phrase("upload_error8");
                            }
                            else
                            {
                                $aaaanh = true;
                            }

                        }

                    }

                }

            }

            if( $edit && !isset($aaaanh) )
            {
                $aaaang["name"] = $aaaanf;
            }

            if( !$Smilie["smilie_title"] )
            {
                $formErrors[] = get_phrase("please_enter_a_valid_title");
            }

            if( !$Smilie["smilie_text"] )
            {
                $formErrors[] = get_phrase("please_enter_valid_smilie_text");
            }
            else
            {
                $checkText = $TSUE["TSUE_Database"]->query_result("SELECT smilie_title FROM tsue_smilies WHERE smilie_text = " . $TSUE["TSUE_Database"]->escape($Smilie["smilie_text"]));
                if( $checkText && ($edit && $aaaane != $Smilie["smilie_text"] || !$edit) )
                {
                    $formErrors[] = get_phrase("smilie_text_to_replace_must_be_unique", html_clean($Smilie["smilie_text"]));
                }

            }

            if( isset($formErrors) )
            {
                if( is_file($aaaanb . $aaaang["name"]) )
                {
                    unlink($aaaanb . $aaaang["name"]);
                }

                $HTML .= errormessage(implode("<br />", $formErrors));
            }
            else
            {
                $buildQuery = array( "smilie_title" => $Smilie["smilie_title"], "smilie_text" => $Smilie["smilie_text"], "smilie_file" => $aaaang["name"] );
                if( $edit )
                {
                    if( isset($aaaanh) )
                    {
                        unlink($aaaanb . $aaaanf);
                    }

                    $TSUE["TSUE_Database"]->update("tsue_smilies", $buildQuery, "smilie_id=" . $TSUE["TSUE_Database"]->escape($edit));
                }
                else
                {
                    $TSUE["TSUE_Database"]->insert("tsue_smilies", $buildQuery);
                }

                $HTML .= successmessage(get_phrase("file_manager_smilies_uploaded", $aaaang["name"]));
                logadminaction(get_phrase("file_manager_smilies_uploaded", $aaaang["name"]));
                handlerebuildcaches(false);
                $uploadDone = true;
            }

        }

        if( !isset($uploadDone) )
        {
            if( $edit && is_file($aaaanb . $Smilie["smilie_file"]) )
            {
                addbreadcrumb(array( get_phrase("button_edit") . " <img src=\"" . $aaaanc . $Smilie["smilie_file"] . "\" alt=\"\" title=\"\" border=\"0\" style=\"vertical-align: middle; border: 0;\" />" => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;edit=" . $edit ));
            }
            else
            {
                if( $upload )
                {
                    addbreadcrumb(array( get_phrase("file_manager_smilies_upload") => TSUE_ADMINCP_URL . "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;upload=1" ));
                }

            }

            $inputbox = inputbox("Smilie[smilie_title]", $Smilie["smilie_title"]);
            $formContents = aaaaan(get_phrase("smilie_title"), $inputbox);
            $inputbox = inputbox("Smilie[smilie_text]", $Smilie["smilie_text"]);
            $formContents .= aaaaan(get_phrase("smilie_text_to_replace"), $inputbox, get_phrase("smilie_text_to_replace_hint"));
            $aaaacr = aaaacs("smilie_file");
            $formContents .= aaaaan(get_phrase("file_manager_smilies_select_smilie_to_upload"), $aaaacr);
            $HTML .= aaaabg($formContents);
            return $HTML;
        }

    }

    if( !$tableContents )
    {
        $delete = intval(getvar("delete"));
        if( $delete )
        {
            checkdemomode();
            $Smilie = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_smilies WHERE smilie_id = " . $TSUE["TSUE_Database"]->escape($delete));
            if( $Smilie )
            {
                if( is_file($aaaanb . $Smilie["smilie_file"]) )
                {
                    @unlink($aaaanb . $Smilie["smilie_file"]);
                }

                $TSUE["TSUE_Database"]->delete("tsue_smilies", "smilie_id = " . $TSUE["TSUE_Database"]->escape($delete));
                $HTML = successmessage(get_phrase("file_manager_smilies_deleted", $Smilie["smilie_title"] . " (" . $delete . ")"));
                handlerebuildcaches(false);
                logadminaction(get_phrase("file_manager_smilies_deleted", $Smilie["smilie_title"] . " (" . $delete . ")"));
            }
            else
            {
                $HTML .= errormessage(get_phrase("message_content_error"));
            }

        }

        $Smilies = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_smilies ORDER BY smilie_title");
        if( !$TSUE["TSUE_Database"]->num_rows($Smilies) )
        {
            return errormessage(get_phrase("message_nothing_found"));
        }

        while( $Smilie = $TSUE["TSUE_Database"]->fetch_assoc($Smilies) )
        {
            if( in_array(file_extension($Smilie["smilie_file"]), $allowedFiles) )
            {
                $aaaani = aaaaae(array( "delete=" . $Smilie["smilie_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
                $aaaanj = aaaaae(array( "edit=" . $Smilie["smilie_id"] => array( "phrase" => getimage("buttons/options.png", get_phrase("button_edit")) ) ));
                $tableContents .= aaaaag(array( array( "width" => "85%", "text" => "<img src=\"" . $aaaanc . $Smilie["smilie_file"] . "\" alt=\"\" title=\"\" border=\"0\" /> <span class=\"smallPassiveText\">" . $Smilie["smilie_title"] . "  &nbsp; <b>" . $Smilie["smilie_text"] . "</b> &nbsp; " . $Smilie["smilie_file"] . "</span>" ), array( "width" => "15%", "align" => "center", "text" => $aaaanj . " " . $aaaani ) ));
            }

        }
    }

    $aaaank = aaaaae(array( "upload=1" => array( "phrase" => get_phrase("file_manager_smilies_upload") ) ));
    $HTML .= createtable(get_phrase("file_manager_smilies_alt"), $tableContents, 2, $aaaank);
    return $HTML;
}

function handlecountryflags()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $aaaanl = DATAPATH . "countryFlags/";
    $aaaanm = $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/countryFlags/";
    if( !is_dir($aaaanl) || !is_writable($aaaanl) )
    {
        return errormessage(get_phrase("file_manager_country_flags_no_flag_folder"));
    }

    $upload = intval(getvar("upload"));
    if( $upload )
    {
        checkdemomode();
        if( isset($_FILES["flag"]) )
        {
            $flag = $_FILES["flag"];
            if( !$flag["size"] || $flag["error"] )
            {
                $formErrors[] = get_phrase("upload_error3");
            }

            if( !in_array(file_extension($flag["name"]), array( "gif", "jpg", "png", "jpeg" )) )
            {
                $formErrors[] = get_phrase("upload_error6", "gif, jpg, png");
            }

            if( is_file($aaaanl . $flag["name"]) )
            {
                $formErrors[] = get_phrase("upload_error7");
            }

            if( !isset($formErrors) && !move_uploaded_file($flag["tmp_name"], $aaaanl . $flag["name"]) )
            {
                $formErrors[] = get_phrase("upload_error8");
            }

            if( isset($formErrors) )
            {
                $HTML .= errormessage(implode("<br />", $formErrors));
            }
            else
            {
                $HTML .= successmessage(get_phrase("file_manager_country_flags_uploaded", $flag["name"]));
                logadminaction(get_phrase("file_manager_country_flags_uploaded", $flag["name"]));
                handlerebuildcaches(false);
                handleprune(false);
                $uploadDone = true;
            }

        }

        if( !isset($uploadDone) )
        {
            $uploadForm = aaaabn(get_phrase("file_manager_country_flagss_select_flag_to_upload") . ": " . ((DEMO_MODE ? "--File upload is disabled in demo mode--" : "<input type=\"file\" name=\"flag\" />")) . " " . aaaabm(get_phrase("button_upload"), get_phrase("button_reset")));
            $tableContents = aaaaag(array( array( "width" => "99%", "text" => $uploadForm ), array( "width" => "1%", "text" => NULL ) ));
        }

    }

    if( !$tableContents )
    {
        $delete = trim(base64_decode(getvar("delete")));
        if( $delete )
        {
            checkdemomode();
            if( in_array(file_extension($delete), array( "gif", "jpg", "png", "jpeg" )) && is_file($aaaanl . $delete) )
            {
                @unlink($aaaanl . $delete);
                $HTML = successmessage(get_phrase("file_manager_country_flags_deleted", $delete));
                handlerebuildcaches(false);
                handleprune(false);
                logadminaction(get_phrase("file_manager_country_flags_deleted", $delete));
            }
            else
            {
                $HTML .= errormessage(get_phrase("message_content_error"));
            }

        }

        $aaaann = array(  );
        $flags = scandir($aaaanl);
        foreach( $flags as $flag )
        {
            if( in_array(file_extension($flag), array( "gif", "jpg", "png", "jpeg" )) )
            {
                $aaaano = aaaaae(array( "delete=" . base64_encode($flag) => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
                $tableContents .= aaaaag(array( array( "width" => "90%", "text" => "<img src=\"" . $aaaanm . $flag . "\" alt=\"\" title=\"\" border=\"0\" /> <span class=\"smallPassiveText\">" . $flag . " -- " . friendly_size(filesize($aaaanl . $flag)) . "</span>" ), array( "width" => "10%", "text" => $aaaano ) ));
            }

        }
    }

    $aaaanp = aaaaae(array( "upload=1" => array( "phrase" => get_phrase("file_manager_country_flags_upload") ) ));
    $HTML .= createtable(get_phrase("file_manager_country_flags_alt"), $tableContents, 2, $aaaanp);
    return $HTML;
}

function handleattachments()
{
    global $TSUE;
    $HTML = "";
    $tableContents = "";
    $delete = intval(getvar("delete"));
    $keywords = trim(getvar("keywords"));
    $WHERE = "";
    if( $delete )
    {
        $Attachment = $TSUE["TSUE_Database"]->query_result("SELECT filename FROM tsue_attachments WHERE content_type = 'posts' AND associated = 1 AND attachment_id = " . $TSUE["TSUE_Database"]->escape($delete));
        if( $Attachment )
        {
            checkdemomode();
            $filename = DATAPATH . "posts/" . $Attachment["filename"];
            if( is_file($filename) )
            {
                @unlink($filename);
            }

            $TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type = 'posts' AND associated = 1 AND attachment_id = " . $TSUE["TSUE_Database"]->escape($delete));
            $phrase = get_phrase("attachment_has_been_deleted", $Attachment["filename"]);
            $HTML .= successmessage($phrase);
            handlerebuildcaches(false);
            logadminaction($phrase);
        }

    }

    $searchType = trim(getvar("searchType"));
    if( !in_array($searchType, array( "membername", "filename" )) )
    {
        $searchType = "filename";
    }

    if( $keywords && $searchType )
    {
        switch( $searchType )
        {
            case "membername":
                $WHERE = " AND m.membername = " . $TSUE["TSUE_Database"]->escape($keywords);
                break;
            case "filename":
                $WHERE = " AND a.filename LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($keywords) . "%'";
                break;
        }
    }

    $orderBy["fieldname"] = "a.upload_date";
    $orderBy["type"] = "DESC";
    if( isset($_REQUEST["orderBy"]["fieldname"]) && isset($_REQUEST["orderBy"]["type"]) )
    {
        $allowedFieldNames = array( "m.membername", "a.filename", "a.upload_date", "a.view_count", "a.filesize" );
        $allowedTypes = array( "DESC", "ASC" );
        if( in_array($_REQUEST["orderBy"]["fieldname"], $allowedFieldNames) && in_array($_REQUEST["orderBy"]["type"], $allowedTypes) )
        {
            $orderBy["fieldname"] = $_REQUEST["orderBy"]["fieldname"];
            $orderBy["type"] = $_REQUEST["orderBy"]["type"];
        }

    }

    $Attachments = $TSUE["TSUE_Database"]->query("SELECT a.attachment_id, p.threadid, t.forumid, m.membername, g.groupstyle FROM tsue_attachments a LEFT JOIN tsue_forums_posts p ON(a.content_id=p.postid) LEFT JOIN tsue_forums_threads t ON(p.threadid=t.threadid) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) WHERE a.content_type = 'posts' AND a.associated = 1" . $WHERE);
    $attachmentCount = $TSUE["TSUE_Database"]->num_rows($Attachments);
    if( !$attachmentCount )
    {
        return errormessage(get_phrase("message_nothing_found"));
    }

    $Pagination = pagination($attachmentCount, "orderBy[fieldname]=" . $orderBy["fieldname"] . "&amp;orderBy[type]=" . $orderBy["type"] . (($keywords ? "&amp;keywords=" . urlencode($keywords) . "&amp;searchType=" . $searchType : "")));
    $Attachments = $TSUE["TSUE_Database"]->query("SELECT a.*, p.threadid, t.forumid, m.membername, g.groupstyle FROM tsue_attachments a LEFT JOIN tsue_forums_posts p ON(a.content_id=p.postid) LEFT JOIN tsue_forums_threads t ON(p.threadid=t.threadid) LEFT JOIN tsue_members m ON(a.memberid=m.memberid) LEFT JOIN tsue_membergroups g ON (g.membergroupid=m.membergroupid) WHERE a.content_type = 'posts' AND a.associated = 1" . $WHERE . " ORDER BY " . $orderBy["fieldname"] . " " . $orderBy["type"] . " " . $Pagination["0"]);
    while( $Attachment = $TSUE["TSUE_Database"]->fetch_assoc($Attachments) )
    {
        $Attachment["filename"] = strip_tags($Attachment["filename"]);
        $pageNumber = findpagenumber("SELECT 1 FROM tsue_forums_posts WHERE postid <= " . $TSUE["TSUE_Database"]->escape($Attachment["content_id"]) . " AND threadid = " . $TSUE["TSUE_Database"]->escape($Attachment["threadid"]), $TSUE["TSUE_Settings"]->settings["global_settings"]["forums_posts_perpage"]);
        $aaaanq = aaaaaf("?p=forums&pid=11&fid=" . $Attachment["forumid"] . "&tid=" . $Attachment["threadid"] . "&page=" . $pageNumber . "#show_post_" . $Attachment["content_id"], $Attachment["filename"]);
        $membername = aaaaae(array( "?action=Member Manager&do=All Members&edit=" . $Attachment["memberid"] => array( "phrase" => getmembername($Attachment["membername"], $Attachment["groupstyle"]) ) ));
        $upload_date = convert_relative_time($Attachment["upload_date"]);
        $view_count = number_format($Attachment["view_count"]);
        $filesize = friendly_size($Attachment["filesize"]);
        $aaaanr = aaaaae(array( "delete=" . $Attachment["attachment_id"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
        $tableContents .= aaaaag(array( array( "width" => "85%", "text" => "\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"floatLeft\">" . file_icon($Attachment["filename"]) . "</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"floatLeft\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t" . $aaaanq . "<br />\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"smallPassiveTextBlock\">" . $membername . ", " . $upload_date . " | " . $filesize . " | " . $view_count . " " . get_phrase("forums_attached_files_views") . "</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>" ), array( "width" => "15%", "text" => $aaaanr, "align" => "right" ) ));
    }
    $selectBox = "\r\n\t<select name=\"searchType\" class=\"selectNoWidth\">\r\n\t\t<option value=\"membername\"" . (($searchType == "membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>\r\n\t\t<option value=\"filename\"" . (($searchType == "filename" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_filename") . "</option>\r\n\t</select>";
    $searchForm = aaaaag(array( array( "width" => "80%", "text" => get_phrase("keywords") . ": " . inputbox("keywords", $keywords, "text texthalf") . " " . $selectBox . " " . aaaabm(get_phrase("button_search"), get_phrase("button_reset")) ) ));
    $HTML .= aaaabn(createtable(get_phrase("button_search"), $searchForm), array(  ), "?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]) . "<br />";
    $HTML .= createtable(get_phrase("attachments"), $tableContents, 2, $Pagination["1"]);
    $HTML .= "\r\n\t<div style=\"float: right; margin-top: 10px;\">\r\n\t\t" . aaaabn("\r\n\t\t" . get_phrase("torrents_sort_by") . "\r\n\t\t<select name=\"orderBy[fieldname]\" class=\"selectNoWidth\">\r\n\t\t\t<option value=\"m.membername\"" . (($orderBy["fieldname"] == "m.membername" ? " selected=\"selected\"" : "")) . ">" . get_phrase("your_name") . "</option>\r\n\t\t\t<option value=\"a.filename\"" . (($orderBy["fieldname"] == "a.filename" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_filename") . "</option>\r\n\t\t\t<option value=\"a.upload_date\"" . (($orderBy["fieldname"] == "a.upload_date" ? " selected=\"selected\"" : "")) . ">" . get_phrase("table_list_date") . "</option>\r\n\t\t\t<option value=\"a.view_count\"" . (($orderBy["fieldname"] == "a.view_count" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_views") . "</option>\r\n\t\t\t<option value=\"a.filesize\"" . (($orderBy["fieldname"] == "a.filesize" ? " selected=\"selected\"" : "")) . ">" . get_phrase("forums_attached_files_filesize") . "</option>\r\n\t\t</select>\r\n\t\t<select name=\"orderBy[type]\" class=\"selectNoWidth\">\r\n\t\t\t<option value=\"ASC\"" . (($orderBy["type"] == "ASC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_asc") . "</option>\r\n\t\t\t<option value=\"DESC\"" . (($orderBy["type"] == "DESC" ? " selected=\"selected\"" : "")) . ">" . get_phrase("torrents_sort_order_desc") . "</option>\r\n\t\t</select>\r\n\t\t<input type=\"submit\" class=\"submit\" value=\"" . get_phrase("global_sort") . "\" />") . "\r\n\t</div>";
    return $HTML;
}

function handledownloads()
{
    global $TSUE;
    $HTML = "";
    $aaaacl = aaaaae(array( "new=1" => array( "phrase" => get_phrase("torrent_categories_new_category") ) ));
    $tableContents = "";
    $delete = intval(getvar("delete"));
    $edit = intval(getvar("edit"));
    $new = intval(getvar("new"));
    if( isset($_POST["sort"]) )
    {
        foreach( $_POST["sort"] as $Cid => $Sort )
        {
            $Cid = intval($Cid);
            $Sort = intval($Sort);
            $TSUE["TSUE_Database"]->update("tsue_downloads_categories", array( "sort" => $Sort ), "cid=" . $TSUE["TSUE_Database"]->escape($Cid));
        }
        handleprune(false);
        header("Location: ?action=" . $TSUE["action"] . "&do=" . $TSUE["do"]);
        exit();
    }
    else
    {
        if( $delete )
        {
            $Category = $TSUE["TSUE_Database"]->query_result("SELECT cname FROM tsue_downloads_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete));
            if( $Category )
            {
                $TSUE["TSUE_Database"]->delete("tsue_downloads_categories", "cid = " . $TSUE["TSUE_Database"]->escape($delete));
                $Files = $TSUE["TSUE_Database"]->query("SELECT filename FROM tsue_downloads WHERE cid = " . $TSUE["TSUE_Database"]->escape($delete));
                if( $TSUE["TSUE_Database"]->num_rows($Files) )
                {
                    while( $File = $TSUE["TSUE_Database"]->fetch_assoc($Files) )
                    {
                        deletefile($File["filename"]);
                    }
                }

                $TSUE["TSUE_Database"]->delete("tsue_downloads", "cid=" . $TSUE["TSUE_Database"]->escape($delete));
                logadminaction(get_phrase("download_category_x_has_been_deleted", $Category["cname"] . " (" . $delete . ")"));
                handlerebuildcaches(false);
                handleprune(false);
            }

        }

        if( $edit || $new )
        {
            $Category = array( "cname" => "", "cdescription" => "", "sort" => 0, "cviewpermissions" => array(  ), "cdownloadpermissions" => array(  ) );
            $aaaaam = "";
            if( $edit )
            {
                $Category = $TSUE["TSUE_Database"]->query_result("SELECT * FROM tsue_downloads_categories WHERE cid = " . $TSUE["TSUE_Database"]->escape($edit));
                if( !$Category )
                {
                    return errormessage(get_phrase("message_content_error"));
                }

                $aaaaam = array( "edit" => $edit );
                $Category["cviewpermissions"] = tsue_explode(",", $Category["cviewpermissions"]);
                $Category["cdownloadpermissions"] = tsue_explode(",", $Category["cdownloadpermissions"]);
            }

            if( isset($_POST["Category"]) )
            {
                $Category = $_POST["Category"];
                if( !isset($Category["cviewpermissions"]) )
                {
                    $Category["cviewpermissions"] = array(  );
                }

                if( !isset($Category["cdownloadpermissions"]) )
                {
                    $Category["cdownloadpermissions"] = array(  );
                }

                if( !$Category["cname"] )
                {
                    $formErrors[] = get_phrase("message_required_fields_error");
                }

                if( !isset($formErrors) )
                {
                    $buildQuery = array( "cname" => $Category["cname"], "cdescription" => $Category["cdescription"], "sort" => intval($Category["sort"]), "cviewpermissions" => implode(",", $Category["cviewpermissions"]), "cdownloadpermissions" => implode(",", $Category["cdownloadpermissions"]) );
                    if( $edit )
                    {
                        $TSUE["TSUE_Database"]->update("tsue_downloads_categories", $buildQuery, "cid=" . $TSUE["TSUE_Database"]->escape($edit));
                    }
                    else
                    {
                        $TSUE["TSUE_Database"]->insert("tsue_downloads_categories", $buildQuery);
                        $edit = $TSUE["TSUE_Database"]->insert_id();
                    }

                    logadminaction(get_phrase("download_category_x_has_been_updated", $Category["cname"] . " (" . $edit . ")"));
                    $HTML .= successmessage(get_phrase("message_saved"));
                    handlerebuildcaches(false);
                    handleprune(false);
                    $updateDone = true;
                }
                else
                {
                    $HTML .= errormessage(implode("<br />", $formErrors));
                }

            }

            if( !isset($updateDone) )
            {
                $inputbox = inputbox("Category[cname]", $Category["cname"], "text texthalf");
                $formContents = aaaaan(get_phrase("torrent_categories_category_name"), $inputbox);
                $inputbox = inputbox("Category[cdescription]", $Category["cdescription"], "text");
                $formContents .= aaaaan(get_phrase("category_description"), $inputbox);
                $inputbox = inputbox("Category[sort]", $Category["sort"], "text textVeryTiny");
                $formContents .= aaaaan(get_phrase("global_displayorder"), $inputbox);
                $aaaabe = aaaaaw("Category[cviewpermissions][]", $Category["cviewpermissions"]);
                $formContents .= aaaaan(get_phrase("global_view_permissions"), $aaaabe, "", "optionsInOverlay", "", checkallcheckbox("Category[cviewpermissions][]"));
                $aaaabe = aaaaaw("Category[cdownloadpermissions][]", $Category["cdownloadpermissions"]);
                $formContents .= aaaaan(get_phrase("global_download_permissions"), $aaaabe, "", "optionsInOverlay", "", checkallcheckbox("Category[cdownloadpermissions][]"));
                $HTML .= aaaabg($formContents, $aaaaam);
                return $HTML;
            }

        }

        $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_downloads_categories ORDER BY `sort` ASC");
        if( !$TSUE["TSUE_Database"]->num_rows($Categories) )
        {
            $tableContents = errormessage(get_phrase("no_results_found"));
        }
        else
        {
            $tableContents = "";
            while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
            {
                $tableContents .= aaaans($Category);
            }
            $tableContents .= aaaaag(array( array( "width" => "75%", "text" => NULL ), array( "width" => "25%", "text" => aaaabm(get_phrase("button_save"), get_phrase("button_reset")), "align" => "left", "colspan" => 2 ) ));
        }

        $HTML .= aaaabn(createtable(get_phrase("dm_title"), $tableContents, 3, $aaaacl));
        return $HTML;
    }

}

function deletefile($filename = "")
{
    checkdemomode();
    if( !$filename )
    {
        return false;
    }

    $filePath = DATAPATH . "downloads/files/" . $filename;
    if( file_exists($filePath) )
    {
        @unlink($filePath);
    }

}

function aaaans($Category)
{
    global $TSUE;
    $aaaacv = aaaaae(array( "edit=" . $Category["cid"] => array( "phrase" => $Category["cname"] ) ));
    $aaaacw = aaaaae(array( "delete=" . $Category["cid"] => array( "phrase" => getimage("buttons/delete.png", get_phrase("button_delete")), "confirmation" => get_phrase("confirm_delete_message_global") ) ));
    $tableContents = aaaaag(array( array( "width" => "65%", "text" => $aaaacv . " <span class=\"smallPassiveText\">" . $Category["cdescription"] . "</span>" ), array( "width" => "10%", "text" => inputbox("sort[" . $Category["cid"] . "]", $Category["sort"], "sortFirst", get_phrase("global_sort")), "align" => "right" ), array( "width" => "25%", "text" => $aaaacw, "align" => "right" ) ));
    return $tableContents;
}


function handlepermissions()
{
    global $TSUE;
    checkdemomode();
    $HTML = "";
    $tableContents = "";
    clearstatcache();
    foreach( aaaant() as $Directory )
    {
        if( $Directory != "." && $Directory != ".." && is_dir(DATAPATH . $Directory) )
        {
            $color = (is_writable(DATAPATH . $Directory) ? "green" : "red");
            $tableContents .= aaaaag(array( array( "width" => "80%", "text" => DATAPATH . $Directory ), array( "width" => "20%", "align" => "right", "text" => "<span style=\"color: " . $color . "\">" . substr(sprintf("%o", fileperms(DATAPATH . $Directory)), -4) . "</span>" ) ));
        }

    }
    $HTML .= createtable(get_phrase("permissions_alt"), $tableContents, 2);
    return $HTML;
}

function handlecleanup()
{
    global $TSUE;
    return "\r\n\t\r\n\t<div class=\"ajaxLoaderDiv\">\r\n\t\t<div style=\"font-size: 11px; margin-bottom: 10px;\">\r\n\t\t\t" . get_phrase("before_cleanup") . ": <span id=\"currentDirSize\">" . getimage("ajax/fb_ajax-loader.gif", "null", "middle") . "</span> | " . get_phrase("after_cleanup") . ": <span id=\"afterDirSize\">" . getimage("ajax/fb_ajax-loader.gif", "null", "middle") . "</span>\r\n\t\t</div>\r\n\t\t<div id=\"cleanupRunning\">\r\n\t\t\t" . getimage("ajax/ajax-loader.gif", NULL, "middle") . "\r\n\t\t\t" . get_phrase("loading") . "\r\n\t\t</div>\r\n\t</div>\r\n\t\r\n\t<script type=\"text/javascript\">\r\n\t\tvar directories = [\"avatars\", \"countryFlags\", \"downloads\", \"gallery\", \"languageFlags\", \"posts\", \"smilies\", \"subTitles\", \"torrents\"];\r\n\t\tvar current = 0;\r\n\t\tvar total = directories.length;\r\n\r\n\t\t\$.ajax\r\n\t\t({\r\n\t\t\ttype: \"POST\",\r\n\t\t\tdata: \"isAjax=1&action=getDirectorySize\",\r\n\t\t\tsuccess: function(response)\r\n\t\t\t{\r\n\t\t\t\t\$(\"#currentDirSize\").html(response);\r\n\t\t\t\tstartCleanup();\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\tfunction startCleanup()\r\n\t\t{\r\n\t\t\t\$(\"#cleanupRunning\").html('" . getimage("ajax/fb_ajax-loader.gif", "null", "middle") . " " . get_phrase("cleaning") . " <b>'+directories[current]);\r\n\r\n\t\t\t\$.ajax\r\n\t\t\t({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\tdata: \"isAjax=1&action=doCleanup&dir=\"+directories[current],\r\n\t\t\t\tsuccess: function(response)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(response)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(\"#cleanupRunning\").html(response);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcurrent++;\r\n\t\t\t\t\t\tif(directories[current])\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tstartCleanup();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=getDirectorySize\",\r\n\t\t\t\t\t\t\t\tsuccess: function(response)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$(\"#afterDirSize\").html(response);\r\n\t\t\t\t\t\t\t\t\t\$(\"#cleanupRunning\").html('<div class=\"success\">" . get_phrase("operation_completed") . "</div>');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t</script>";
}

function file_icon($Filename)
{
    global $TSUE;
    $Extension = file_extension($Filename);
    $iconPath = "styles/" . aaaaff() . "/extensions/";
    if( file_exists(ROOTPATH . $iconPath . $Extension . ".png") )
    {
        return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $iconPath . $Extension . ".png\" class=\"middle\" border=\"0\" title=\"" . $Extension . "\" />";
    }

    return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $iconPath . "default.png\" class=\"middle\" border=\"0\" title=\"" . $Extension . "\" />";
}

function findpagenumber($Query = "", $perPage = 0)
{
    global $TSUE;
    if( !$Query || !$perPage )
    {
        return 0;
    }

    $totalRows = $TSUE["TSUE_Database"]->row_count($Query);
    if( $totalRows <= $perPage )
    {
        return 0;
    }

    return ceil($totalRows / $perPage);
}

function aaaakq($array, $remove)
{
    $rebuild = array(  );
    foreach( $array as $a )
    {
        if( $a != $remove )
        {
            $rebuild[] = $a;
        }

    }
    return $rebuild;
}

function aaaahb()
{
    $Permissions = array( "defaultForumPermissions" => array( "canview_forum" => 1, "canupload" => 0, "candownload" => 1, "canview_thread_list" => 1, "canview_thread_posts" => 1, "canreply_threads" => 1, "canpost_new_thread" => 1, "candelete_posts" => 0, "candelete_own_posts" => 0, "canedit_posts" => 0, "canedit_own_posts" => 1, "canmanage_locked_threads" => 0, "candelete_threads" => 0, "canmove_threads" => 0, "canedit_threads" => 0, "canedit_own_threads" => 1, "cansubscribe_to_threads" => 1, "canpost_polls" => 1, "candelete_own_polls" => 0, "canedit_own_polls" => 1, "canlock_threads" => 0, "cansticky_threads" => 0, "candelete_polls" => 0, "canedit_polls" => 0 ), "adminForumPermissions" => array( "canview_forum" => 1, "canupload" => 1, "candownload" => 1, "canview_thread_list" => 1, "canview_thread_posts" => 1, "canreply_threads" => 1, "canpost_new_thread" => 1, "candelete_posts" => 1, "candelete_own_posts" => 1, "canedit_posts" => 1, "canedit_own_posts" => 1, "canmanage_locked_threads" => 1, "candelete_threads" => 1, "canmove_threads" => 1, "canedit_threads" => 1, "canedit_own_threads" => 1, "cansubscribe_to_threads" => 1, "canpost_polls" => 1, "candelete_own_polls" => 1, "canedit_own_polls" => 1, "canlock_threads" => 1, "cansticky_threads" => 1, "candelete_polls" => 1, "canedit_polls" => 1 ) );
    return $Permissions;
}

function aaaaaa()
{
    @date_default_timezone_set("GMT");
    define("TIMESTART", microtime(true));
    define("TIMENOW", time());
    define("REALPATH", str_replace("\\", "/", realpath(".")) . "/");
    define("ROOTPATH", str_replace("\\", "/", realpath("./../")) . "/");
    define("DATAPATH", ROOTPATH . "data/");
    define("JSPATH", ROOTPATH . "js/");
    define("LIBRARYPATH", ROOTPATH . "library/");
    define("STYLEPATH", ROOTPATH . "styles/");
    define("CLIPATH", (DEMO_MODE ? "cli/" : ROOTPATH . "cli/"));
    @error_reporting(30719);
    @ini_set("display_errors", "On");
    @set_error_handler("TSUEAdmin_ErrorHandler");
    if( function_exists("get_magic_quotes_gpc") && get_magic_quotes_gpc() )
    {
        undomagicquotes($_GET);
        undomagicquotes($_POST);
        undomagicquotes($_COOKIE);
        undomagicquotes($_REQUEST);
    }

    if( function_exists("get_magic_quotes_runtime") && get_magic_quotes_runtime() )
    {
        @set_magic_quotes_runtime(false);
    }

    @ini_set("memory_limit", "256M");
    @set_time_limit(0);
    @ignore_user_abort(true);
    @ini_set("pcre.backtrack_limit", -1);
    @ini_set("output_buffering", false);
    while( ob_get_level() )
    {
        @ob_end_clean();
    }
    define("SAFEMODE", (@ini_get("safe_mode") == 1 || strtolower(@ini_get("safe_mode")) == "on" ? true : false));
    define("IN_ADMIN_PANEL", true);
    define("MEMBER_IP", getclientip());
    define("IS_AJAX", (isset($_POST["isAjax"]) && $_POST["isAjax"] == 1 ? true : false));
    define("TSUE_ADMINCP_URL", aaaaac());
    define("TSUE_URL", "T29wcw==");
    define("TSUE_URL2", "T29wcw==");
    define("TSUE_URL3", "T29wcw==");
    define("U", (!empty($_SERVER["SERVER_NAME"]) ? fixurl($_SERVER["SERVER_NAME"]) : (!empty($_SERVER["HTTP_HOST"]) ? fixurl($_SERVER["HTTP_HOST"]) : "")));
    define("I", getserverip());
    define("V", "2.2");
}

function TSUEAdmin_ErrorHandler($errno, $errstr, $errfile, $errline)
{
    $Message = "\r\n------------------------------------------\r\n" . date("d-m-Y H:i:s") . "\r\n[" . $errno . "] " . $errstr . "\r\nPHP Error on line " . number_format($errline) . " in file " . $errfile . "\r\n" . PHP_VERSION . " " . PHP_OS . "\r\n------------------------------------------";
    @file_put_contents(DATAPATH . "errors/admincp.php.log", $Message, FILE_APPEND);
}

function getserverip()
{
    $ipFile = DATAPATH . "cache/ip.srv";
    if( isset($_SERVER["SERVER_ADDR"]) && !empty($_SERVER["SERVER_ADDR"]) && is_valid_ip($_SERVER["SERVER_ADDR"]) )
    {
        $ip = $_SERVER["SERVER_ADDR"];
    }
    else
    {
        if( isset($_SERVER["LOCAL_ADDR"]) && !empty($_SERVER["LOCAL_ADDR"]) && is_valid_ip($_SERVER["LOCAL_ADDR"]) )
        {
            $ip = $_SERVER["LOCAL_ADDR"];
        }
        else
        {
            if( file_exists($ipFile) && TIMENOW < filemtime($ipFile) + 1800 )
            {
                $ip = file_get_contents($ipFile);
            }
            else
            {
                if( function_exists("curl_init") && ($ch = curl_init()) )
                {
                    curl_setopt($ch, CURLOPT_URL, base64_decode(TSUE_URL3));
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
                    curl_setopt($ch, CURLOPT_HEADER, 0);
                    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0");
                    $ip = curl_exec($ch);
                    curl_close($ch);
                    if( is_writable(DATAPATH . "cache/") )
                    {
                        @file_put_contents($ipFile, $ip);
                    }

                }

            }

        }

    }

    if( is_valid_ip($ip) )
    {
        return $ip;
    }

    if( file_exists($ipFile) )
    {
        @unlink($ipFile);
    }

}

function is_valid_ip($ip)
{
    return $ip != "127.0.0.1" && $ip != "::1" && filter_var($ip, FILTER_VALIDATE_IP);
}

function aaaanu($error)
{
    _sendheaders(errormessage($error));
}

function fixurl($url = "")
{
    return strtolower(str_replace(array( "http://", "https://", "www.", "http://www.", "https://www." ), "", $url));
}

function checkallcheckbox($checkboxName)
{
    return "<input type=\"checkbox\" name=\"checkAllCheckbox\" id=\"checkAllCheckbox\" data=\"" . $checkboxName . "\" />";
}

function encodestring($String = "", $AnahtarKelime = "T29wcw==")
{
    $AnahtarKelime = base64_decode($AnahtarKelime);
    $result = "";
    for( $i = 0; $i < strlen($String); $i++ )
    {
        $char = substr($String, $i, 1);
        $keychar = substr($AnahtarKelime, $i % strlen($AnahtarKelime) - 1, 1);
        $char = chr(ord($char) + ord($keychar));
        $result .= $char;
    }
    return urlencode(base64_encode($result));
}

function decodestring($String = "", $AnahtarKelime = "T29wcw==")
{
    $AnahtarKelime = base64_decode($AnahtarKelime);
    $String = urldecode($String);
    $result = "";
    $String = urldecode(base64_decode($String));
    for( $i = 0; $i < strlen($String); $i++ )
    {
        $char = substr($String, $i, 1);
        $keychar = substr($AnahtarKelime, $i % strlen($AnahtarKelime) - 1, 1);
        $char = chr(ord($char) - ord($keychar));
        $result .= $char;
    }
    return $result;
}

function compare_key($installkey = "")
{
    return strlen($installkey) === 36 && preg_match(str_replace("#", "[0-9,A-F]", "{########-####-####-####-############}"), $installkey);
}

function is_valid_url($url = "")
{
    return (!empty($url) && !preg_match("#^[a-z0-9-\\.]+\$#", $url) ? false : true);
}

function getrealpath($Path = ".")
{
    $Path = realpath($Path);
    if( substr($Path, -1) != DIRECTORY_SEPARATOR )
    {
        $Path .= DIRECTORY_SEPARATOR;
    }

    $_SERVER["SCRIPT_NAME"] = realpath(trim($_SERVER["SCRIPT_NAME"]));
    return realpath(trim($Path . $_SERVER["SCRIPT_NAME"]));
}

function aaaanv($type = 0, $tryAgain = false)
{
    $serverResponse = "";
    if( function_exists("curl_init") && ($ch = curl_init()) )
    {
        curl_setopt($ch, CURLOPT_URL, ($tryAgain ? decodestring(TSUE_URL2) : decodestring(TSUE_URL)));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0");
        curl_setopt($ch, CURLOPT_REFERER, U);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, "t=" . $type . "&u=" . encodestring(U) . "&i=" . encodestring(I) . "&v=" . V . "&dr=" . encodestring(getrealpath()));
        $serverResponse = curl_exec($ch);
        curl_close($ch);
        if( $serverResponse )
        {
            $serverResponse = decodestring($serverResponse);
        }
        else
        {
            if( !$tryAgain )
            {
                return aaaanv($type, true);
            }

        }

    }

    return $serverResponse;
}

function aaaanw()
{
    echo str_repeat(" ", 256);
    if( ob_get_length() )
    {
        @ob_flush();
        @flush();
        @ob_end_flush();
    }

    @ob_start();
}

function fetchurl($URL = "")
{
    $serverResponse = "";
    if( $URL && function_exists("curl_init") && ($ch = curl_init()) )
    {
        curl_setopt($ch, CURLOPT_URL, $URL);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        $serverResponse = curl_exec($ch);
        curl_close($ch);
    }

    return $serverResponse;
}

function aaaaab()
{
    global $TSUE;
    @ini_set("session.gc_maxlifetime", 900);
    @session_name("tsueadmincp");
    @session_cache_expire(900);
    @session_start();
    if( @file_exists($_SERVER["DOCUMENT_ROOT"] . "/tsue/l.php") )
    {
        aaaanu("Critical Security Error.");
    }

    if( !(isset($_GET["forceLicenseCheck"]) && $_GET["forceLicenseCheck"] == "true") )
    {
        $aaaanx = getsetting("data", "cache");
        if( $aaaanx )
        {
            $aaaanx = @unserialize(@decodestring($aaaanx));
            if( $aaaanx && is_array($aaaanx) && count($aaaanx) === 4 && is_valid_url($aaaanx["domain"]) && is_valid_url(U) && $aaaanx["domain"] === U && $aaaanx["ip"] === I && $aaaanx["version"] === V )
            {
                $days = 259200;
                if( $aaaanx["time"] && TIMENOW < $aaaanx["time"] + $days )
                {
                    if( isset($_GET["licenseDebug"]) && $_GET["licenseDebug"] == "true" )
                    {
                        echo "\r\n\t\t\t\t\t\t<table style=\"padding: 5px; margin: 5px auto; border: 1px solid #ccc;\">\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Domain:</td>\r\n\t\t\t\t\t\t\t\t<td style=\"border-bottom: 1px solid #ccc;\">" . $aaaanx["domain"] . " (" . U . ")</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">IP:</td>\r\n\t\t\t\t\t\t\t\t<td style=\"border-bottom: 1px solid #ccc;\">" . $aaaanx["ip"] . " (" . I . ")</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Version:</td>\r\n\t\t\t\t\t\t\t\t<td style=\"border-bottom: 1px solid #ccc;\">" . $aaaanx["version"] . " (" . V . ")</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Last Check:</td>\r\n\t\t\t\t\t\t\t\t<td style=\"border-bottom: 1px solid #ccc;\">" . date("d-m-Y h:i:s", $aaaanx["time"]) . "</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t<td style=\"padding: 0 5px; font-weight: bold; border-bottom: 1px solid #ccc;\">Next Check:</td>\r\n\t\t\t\t\t\t\t\t<td style=\"border-bottom: 1px solid #ccc;\">" . date("d-m-Y h:i:s", $aaaanx["time"] + $days) . "</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t</table>";
                        exit();
                    }

                    return true;
                }

            }

        }

    }

    $TSUE["TSUE_Database"]->delete("tsue_settings", "settingname = 'data'");
    $serverResponse = aaaanv(3);
    if( !$serverResponse )
    {
        aaaanu("Could not connect to server.");
    }

    if( !preg_match("#\\[domain\\](.*)\\[\\/domain\\]#", $serverResponse, $domain) )
    {
        aaaanu($serverResponse);
    }

    $domain = (isset($domain["1"]) ? $domain["1"] : "");
    if( !is_valid_url($domain) || !is_valid_url(U) || $domain != U )
    {
        aaaanu("Invalid Domain.");
    }

    aaaany($domain);
}

function aaaany($domain)
{
    $serverResponse = array( "domain" => $domain, "ip" => I, "time" => TIMENOW, "version" => V );
    updatesettings("data", array( "cache" => encodestring(serialize($serverResponse)) ));
}

function getbanreason($memberid)
{
    global $TSUE;
    $bannedUser = $TSUE["TSUE_Database"]->query_result("SELECT end_date, reason FROM tsue_member_bans WHERE memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
    if( !$bannedUser )
    {
        return get_phrase("permission_denied_banned");
    }

    if( $bannedUser["reason"] )
    {
        $message = get_phrase("permission_denied_banned_reason", $bannedUser["reason"]);
    }
    else
    {
        $message = get_phrase("permission_denied_banned");
    }

    if( TIMENOW < $bannedUser["end_date"] )
    {
        $message .= " " . get_phrase("permission_denied_banned_until", convert_time($bannedUser["end_date"]));
    }

    return $message;
}

function checkadmin()
{
    global $TSUE;
    $isLogged = false;
    if( $TSUE["action"] == "logout" )
    {
        $_SESSION["skipGlobalWarnings"] = "";
        $_SESSION["load-addon"] = $_SESSION["skipGlobalWarnings"];
        $_SESSION["U"] = $_SESSION["load-addon"];
        setcookie("TSUEAdmin", "", TIMENOW - 3600);
        header("Location: ?action=Dashboard");
        exit();
    }

    $isPost = ispost();
    if( $isPost && isset($_POST["adminLogin"]) )
    {
        $membername = (isset($_POST["membername"]) ? trim($_POST["membername"]) : "");
        $password = (isset($_POST["password"]) ? md5($_POST["password"]) : "");
        $languageid = (isset($_POST["languageid"]) ? intval($_POST["languageid"]) : 1);
        $time = TIMENOW;
    }
    else
    {
        if( isset($_COOKIE["TSUEAdmin"]) )
        {
            list($membername, $password, $languageid, $time) = @tsue_explode("-", @base64_decode($_COOKIE["TSUEAdmin"]));
        }

    }

    if( isset($membername) && $membername && isset($password) && $password && strlen($password) == 32 && isset($languageid) && $languageid && isset($time) && $time )
    {
        if( TIMENOW < $time + getsetting("global_settings", "admincp_session_timeout", 5) * 60 )
        {
            $adminQuery = $TSUE["TSUE_Database"]->query_result("SELECT m.memberid, m.membergroupid, m.membername, m.password, m.lastactivity, m.timezone, m.dst, g.groupstyle, g.permissions, b.memberid as isBanned FROM tsue_members m INNER JOIN tsue_membergroups g USING(membergroupid) LEFT JOIN tsue_member_bans b ON(m.memberid=b.memberid) WHERE m.membername = " . $TSUE["TSUE_Database"]->escape($membername));
            if( $adminQuery )
            {
                if( $password === $adminQuery["password"] )
                {
                    $TSUE["TSUE_Member"] = $adminQuery;
                    $TSUE["TSUE_Member"]["adminCPLastLogin"] = $time;
                    unset($TSUE["TSUE_Member"]["password"]);
                    $TSUE["TSUE_Member"]["permissions"] = unserialize($adminQuery["permissions"]);
                    $Language = $TSUE["TSUE_Database"]->query_result("SELECT charset, date_format, time_format, phrase_global FROM tsue_languages WHERE languageid = " . $TSUE["TSUE_Database"]->escape($languageid) . " AND active = 1");
                    if( $Language )
                    {
                        $TSUE["TSUE_Language"]["charset"] = strtolower($Language["charset"]);
                        $TSUE["TSUE_Language"]["date_format"] = $Language["date_format"];
                        $TSUE["TSUE_Language"]["time_format"] = $Language["time_format"];
                        $TSUE["TSUE_Language"]["phrase"] = unserialize($Language["phrase_global"]);
                    }

                    if( $adminQuery["isBanned"] )
                    {
                        exit( getbanreason($adminQuery["memberid"]) );
                    }

                    if( $TSUE["TSUE_Member"]["timezone"] === "" )
                    {
                        $TSUE["TSUE_Member"]["timezone"] = $TSUE["TSUE_Settings"]->settings["global_settings"]["d_timezone"];
                    }

                    $aPermissions = $TSUE["TSUE_Database"]->query_result("SELECT permissions FROM tsue_staffcp_permissions WHERE memberid = " . $TSUE["TSUE_Member"]["memberid"]);
                    if( !$aPermissions )
                    {
                        printoutput(errormessage(get_phrase("permission_denied")));
                    }

                    $aaaanz = false;
                    $aPermissions = unserialize($aPermissions["permissions"]);
                    if( $aPermissions )
                    {
                        foreach( $aPermissions as $permName => $aaaaoa )
                        {
                            if( $aaaaoa )
                            {
                                $aaaanz = true;
                                break;
                            }

                        }
                    }

                    if( !$aaaanz )
                    {
                        printoutput(errormessage(get_phrase("permission_denied")));
                    }

                    $TSUE["TSUE_Member"]["aPermissions"] = $aPermissions;
                    if( has_permission("canlogin_admincp", $TSUE["TSUE_Member"]["permissions"]) )
                    {
                        $isLogged = true;
                        $cookieValue = $adminQuery["membername"] . "-" . $password . "-" . $languageid . "-" . TIMENOW;
                        setcookie("TSUEAdmin", base64_encode($cookieValue));
                        if( !DEMO_MODE )
                        {
                            if( $TSUE["TSUE_Settings"]->settings["global_settings"]["website_timeout"] * 60 < TIMENOW - $TSUE["TSUE_Member"]["lastactivity"] )
                            {
                                $updateAccount = "lastvisit = lastactivity, lastactivity = " . TIMENOW;
                            }
                            else
                            {
                                $updateAccount = "lastactivity = " . TIMENOW;
                            }

                            $TSUE["TSUE_Database"]->query("UPDATE tsue_members SET " . $updateAccount . " WHERE memberid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Member"]["memberid"]));
                            $Build_Query = array( "memberid" => $TSUE["TSUE_Member"]["memberid"], "ipaddress" => MEMBER_IP, "location" => "admincp", "browser" => strip_tags($_SERVER["HTTP_USER_AGENT"]), "date" => TIMENOW );
                            $TSUE["TSUE_Database"]->replace("tsue_session", $Build_Query);
                        }

                    }

                }
                else
                {
                    if( !DEMO_MODE )
                    {
                        logadminaction("Failed Login Attempt to Admin CP! #--# IP: " . MEMBER_IP . " / Membername: " . $membername . " #--#");
                    }

                }

            }

        }
        else
        {
            $sessionExpired = true;
        }

    }

    if( !$isLogged && IS_AJAX == true )
    {
        $errorPhrase = errormessage("You must be logged-in to do that.");
        if( $TSUE["action"] == "autoComplete" )
        {
            _sendheaders(json_encode(array( $errorPhrase )), "application/json");
        }
        else
        {
            _sendheaders($errorPhrase);
        }

    }

    if( !$isLogged )
    {
        setcookie("TSUEAdmin", "", TIMENOW - 3600);
        $content = "\r\n\t\t<span class=\"loginIPlogged\">IP Logged: <b>" . MEMBER_IP . "</b></span>\r\n\r\n\t\t" . ((isset($sessionExpired) ? "\r\n\t\t<span class=\"loginFailed\">\r\n\t\t\t<span>Your login session has been expired.</span>\r\n\t\t\tPlease re-login.\r\n\t\t</span>" : ($isPost ? "\r\n\t\t<span class=\"loginFailed\">\r\n\t\t\t<span>Login Failed. Please Try Again.</span>\r\n\t\t\tYour IP has been logged and admins notified of this failed login attempt.\r\n\t\t</span>" : "\r\n\t\t<span class=\"loginWelcome\">\r\n\t\t\t<span>Welcome Back</span>\r\n\t\t\tPlease enter your login details below to authenticate.\r\n\t\t</span>"))) . "\r\n\r\n\t\t" . aaaabn("\r\n\t\t<table id=\"adminlogin\" cellpadding=\"2\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td>Membername:</td>\r\n\t\t\t\t<td>Password:</td>\r\n\t\t\t\t<td>Language:</td>\r\n\t\t\t\t<td>&nbsp;</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><input type=\"text\" class=\"atext\" name=\"membername\" value=\"\" /></td>\r\n\t\t\t\t<td><input type=\"password\" class=\"atext\" name=\"password\" value=\"\" /></td>\r\n\t\t\t\t<td>" . get_languages() . "</td>\r\n\t\t\t\t<td><input type=\"submit\" class=\"button submit\" value=\"Log in\" name=\"adminLogin\" /></td>\r\n\t\t\t</tr>\r\n\t\t</table>");
        printoutput($content, true);
    }

}

function printoutput($content, $isLogin = false)
{
    global $TSUE;
    global $Warnings;
    if( !isset($TSUE["TSUE_Member"]["memberid"]) || !$TSUE["TSUE_Member"]["memberid"] )
    {
        $isLogin = true;
    }

    if( IS_AJAX == true )
    {
        _sendheaders($content);
    }

    $globalTitle = ($isLogin ? "TSUE - Admin Control Panel Login" : "TSUE Admin Control Panel" . ((!empty($TSUE["breadcrumb"]) && count($TSUE["breadcrumb"]) ? " - " . @strip_tags($TSUE["breadcrumb"][@count($TSUE["breadcrumb"]) - 1]) : "")));
    $aaaaob = "";
    if( DEMO_MODE )
    {
        $aaaaob = "\r\n\t\t<div id=\"demoMode\">Warning! Demo Mode is activated. Same features are disabled within Demo Mode.</div>";
    }

    $aaaaoc = "";
    if( !empty($Warnings) && !isset($_SESSION["skipGlobalWarnings"]) )
    {
        $aaaaoc = "\r\n\t\t<div id=\"globalWarnings\">\r\n\t\t\t<div class=\"closeWarning\"></div>\r\n\t\t\t" . implode("<hr />", $Warnings) . "\r\n\t\t</div>";
        unset($Warnings);
    }

    _sendheaders("\r\n\t<!DOCTYPE html>\r\n\t<html id=\"TSUE\" lang=\"en-us\">\r\n\t\t<head>\r\n\t\t\t<noscript><meta http-equiv=refresh content=\"0; URL=" . TSUE_ADMINCP_URL . "?noscript=1\" /></noscript>\r\n\t\t\t<title>" . $globalTitle . "</title>\r\n\t\t\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=" . ((isset($TSUE["TSUE_Language"]["charset"]) ? $TSUE["TSUE_Language"]["charset"] : "UTF-8")) . "\" />\r\n\t\t\t\r\n\t\t\t<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/style.php?load=members\" />\r\n\t\t\t<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/jquery-ui.css\" />\r\n\t\t\t<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/jquery-linedtextarea.css\" />\r\n\t\t\t<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/fancybox.css\" />\r\n\r\n\t\t\t" . loadstyle("members.css") . "\r\n\t\t\t\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\tvar TSUEPhrases =\r\n\t\t\t\t{\r\n\t\t\t\t\t" . (($isLogin ? "" : "\r\n\t\t\t\t\tmonths: \"" . get_phrase("dateinput_months") . "\",\r\n\t\t\t\t\tshortMonths: \"" . get_phrase("dateinput_shortMonths") . "\",\r\n\t\t\t\t\tdays: \"" . get_phrase("dateinput_days") . "\",\r\n\t\t\t\t\tshortDays: \"" . get_phrase("dateinput_shortDays") . "\"")) . "\r\n\t\t\t\t};\r\n\t\t\t</script>\r\n\t\t\t\r\n\t\t\t<script type=\"text/javascript\" src=\"./../js/tsue/jquery.js\"></script>\r\n            \r\n\t\t\t" . (($isLogin ? "" : "\r\n\t\t\t<script type=\"text/javascript\" src=\"./js/jquery-ui.min.js\"></script>\r\n\t\t\t<script type=\"text/javascript\" src=\"./js/jquery-linedtextarea.js\"></script>\r\n\t\t\t<script type=\"text/javascript\" src=\"./../js/tiny_mce/tiny_mce.js\"></script>")) . "\r\n\t\t</head>\r\n\r\n\t\t<body" . (($isLogin ? "" : " onbeforeunload=\"TSUEAdmin.showLoader();\"")) . ">\r\n\t\t\t<div id=\"loading\">" . getimage("overlay/loading.gif") . " " . (($isLogin ? "Please wait, loading..." : get_phrase("loading"))) . "</div>\r\n\r\n\t\t\t" . $aaaaoc . "\r\n\t\t\t" . $aaaaob . "\r\n\r\n\t\t\t<div id=\"header\">\r\n\t\t\t" . (($isLogin ? "" : "\r\n\t\t\t\t<div id=\"searchBox\">\r\n\t\t\t\t\t<input type=\"text\" id=\"autoCompleteSearchInAdminCP\" value=\"" . get_phrase("keywords") . "\" />\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div class=\"last_login\">" . get_phrase("logged_your_last_login_was", convert_relative_time($TSUE["TSUE_Member"]["adminCPLastLogin"])) . " --</div>\r\n\r\n\t\t\t\t<div rel=\"dropDownMenu\" class=\"dropDownMenu help\">\r\n\t\t\t\t\t<span>" . get_phrase("help") . "</span>\r\n\t\t\t\t\t<div id=\"dropDownMenu\">\r\n\t\t\t\t\t\t<a href=\"\" id=\"checkUpdates\">" . get_phrase("check_for_updates") . "</a>\r\n\t\t\t\t\t\t<a href=\"\" id=\"about\">" . get_phrase("about") . "</a>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"menu\">\r\n\t\t\t\t\t" . aaaaae(array( "?action=Dashboard" => array( "phrase" => getimage("menu_icons/home.png") . " " . get_phrase("menu_dashboard"), "class" => ($TSUE["action"] == "Dashboard" ? "active" : "") ), "?action=Plugin Manager" => array( "phrase" => getimage("menu_icons/plugin.png") . " " . get_phrase("menu_plugin_manager"), "class" => ($TSUE["action"] == "Plugin Manager" ? "active" : "") ), "?action=Forum Manager" => array( "phrase" => getimage("menu_icons/forums.png") . " " . get_phrase("menu_forum_manager"), "class" => ($TSUE["action"] == "Forum Manager" ? "active" : "") ), "?action=Appearance" => array( "phrase" => getimage("menu_icons/theme.png") . " " . get_phrase("dashboard_options_appearance"), "class" => ($TSUE["action"] == "Appearance" ? "active" : "") ), "?action=Member Manager" => array( "phrase" => getimage("menu_icons/member_manager.png") . " " . get_phrase("menu_member_manager"), "class" => ($TSUE["action"] == "Member Manager" ? "active" : "") ), "?action=File Manager" => array( "phrase" => getimage("menu_icons/file.png") . " " . get_phrase("menu_file_manager"), "class" => ($TSUE["action"] == "File Manager" ? "active" : "") ) )) . "\r\n\t\t\t\t</div>")) . "\r\n\t\t\t</div>\r\n\r\n\t\t\t<div id=\"container\">\r\n\t\t\t\t<div class=\"content\">\r\n\t\t\t\t\t" . (($isLogin ? "" : "\r\n\t\t\t\t\t<span class=\"logout\">\r\n\t\t\t\t\t\t<a href=\"../\" target=\"_blank\">" . get_phrase("view_website") . "</a> | \r\n\t\t\t\t\t\t<a href=\"?action=logout\">" . get_phrase("logged_logout") . "</a>\r\n\t\t\t\t\t</span>")) . "\r\n\t\t\t\t\t" . createbreadcrumb() . "\r\n\t\t\t\t\t<div id=\"mainText\">" . $content . "</div>\r\n\t\t\t\t\t<div style=\"clear: both;\"></div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div id=\"footer\">&nbsp;</div>\r\n\t\t\t<div id=\"copyright\">\r\n                /*" . ((!$isLogin ? "<div class=\"debug dotted-bottom-gray\">Memory Usage: " . friendly_size(memory_get_usage()) . " -- Query Count: " . $TSUE["TSUE_Database"]->querycount . " -- Page Loaded in " . round(microtime(true) - TIMESTART, 4) . " seconds.</div>" : "")) . "\r\n                \t\t\t\t\r\n            </div>\r\n\r\n\t\t\t" . (($isLogin ? "\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\t\$(document).ready(function(){\$('input[name=\"membername\"]').focus()});\r\n\t\t\t</script>" : "\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\tvar \$openedDropDownMenu, \$noLoader = false, Overlay = \"\";\r\n\r\n\t\t\t\t\$(document).click(function()\r\n\t\t\t\t{\r\n\t\t\t\t\tif(\$openedDropDownMenu)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$('.dropDownClose').remove();\r\n\t\t\t\t\t\t\$openedDropDownMenu.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t\tvar TSUEAdmin =\r\n\t\t\t\t{\r\n\t\t\t\t\tinit: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t" . (($TSUE["action"] == "Dashboard" && $TSUE["do"] == "Options" ? "TSUEAdmin.optionGroups();" : "")) . "\r\n\t\t\t\t\t\tTSUEAdmin.clickableOptionBoxes();\r\n\t\t\t\t\t\tTSUEAdmin.initTipsy();\r\n\t\t\t\t\t\tTSUEAdmin.checkAll();\r\n\t\t\t\t\t\tTSUEAdmin.initDateInputBoxes();\r\n                        TSUEAdmin.initAutoComplete();\r\n\t\t\t\t\t\tTSUEAdmin.calculator();\r\n\t\t\t\t\t\tTSUEAdmin.initTinyMCE(\"tinyMCE\");\r\n\t\t\t\t\t\tTSUEAdmin.initDropDownMenu();\r\n\t\t\t\t\t\tTSUEAdmin.initHelp();\r\n\t\t\t\t\t\tTSUEAdmin.initTextareaLines();\r\n\t\t\t\t\t\tTSUEAdmin.disableSpellChecks();\r\n\t\t\t\t\t\tTSUEAdmin.initializeFancyBOX();\r\n\t\t\t\t\t\tTSUEAdmin.scrollInfoBoxes();\r\n\r\n\t\t\t\t\t\t\$(document).ajaxStart(function()\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tTSUEAdmin.showLoader();\r\n\t\t\t\t\t\t\t\$(\"input,textarea,select\").attr(\"disabled\", true);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.ajaxComplete(function()\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tTSUEAdmin.hideLoader();\r\n\t\t\t\t\t\t\t\$(\"input,textarea,select\").attr(\"disabled\", false);\r\n\t\t\t\t\t\t\tTSUEAdmin.checkAll();\r\n\t\t\t\t\t\t\tTSUEAdmin.initDateInputBoxes();\r\n                            TSUEAdmin.initAutoComplete();\r\n\t\t\t\t\t\t\tTSUEAdmin.initializeFancyBOX();\r\n\t\t\t\t\t\t\tsetTimeout(function(){TSUEAdmin.initTinyMCE(\"tinyMCEAjax\")}, 1000);\r\n\t\t\t\t\t\t\t//setTimeout(function(){\$(\".success,.error,.info\").fadeOut(\"slow\")}, 3000);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif(\$(\"#globalWarnings\").length)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(\"#globalWarnings .closeWarning\").click(function(e)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=closeGlobalWarning\",\r\n\t\t\t\t\t\t\t\t\tsuccess: function()\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\$(\"#globalWarnings\").fadeOut(\"slow\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tscrollInfoBoxes: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(window).scroll(function()\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(\"#scrolling\").remove();\r\n\t\t\t\t\t\t\tif(\$(window).scrollTop() > 1)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$('<div id=\"scrolling\" style=\"position: fixed; right: 15px; bottom: 25px; padding: 0; cursor: pointer; z-index: 1000; display: none;\"><img src=\"./images/buttons/up.png\" alt=\"\" title=\"\" /></div>').prependTo(\"body\").click(function(e)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\$(\"html, body\").animate({ scrollTop: 0 }, \"slow\", \"easeOutBounce\");\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}).fadeIn(\"slow\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tsetCookie: function(c_name,value,exdays)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar exdate=new Date();\r\n\t\t\t\t\t\texdate.setDate(exdate.getDate() + exdays);\r\n\t\t\t\t\t\tvar c_value=escape(value) + ((exdays==null) ? \"\" : \"; expires=\"+exdate.toUTCString());\r\n\t\t\t\t\t\tdocument.cookie=c_name + \"=\" + c_value;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tinitializeFancyBOX: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$('[rel=\"fancybox\"],#fancybox').fancybox({\"type\":\"image\",\"openEffect\":\"elastic\",\"closeEffect\":\"elastic\"});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tdisableSpellChecks: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(\".templateTextarea\").attr(\"spellcheck\", false);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tinitTextareaLines: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(\".templateTextarea\").linedtextarea();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tinitHelp: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(\"#about\").click(function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\t\t\$noLoader = true;\r\n\r\n\t\t\t\t\t\t\tTSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "', false, false);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=about\",\r\n\t\t\t\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$noLoader = false;\r\n\t\t\t\t\t\t\t\t\t\$(\".overlay_text\").html(result);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\$(\"#checkUpdates\").click(function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\t\t\$noLoader = true;\r\n\r\n\t\t\t\t\t\t\tTSUEAdmin.dialog('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "', false, false);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=checkUpdates\",\r\n\t\t\t\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$noLoader = false;\r\n\t\t\t\t\t\t\t\t\t\$(\".overlay_text\").html(result);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tinitTinyMCE: function(elementName)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttinyMCE.init\r\n\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\tmode: \"exact\",\r\n\t\t\t\t\t\t\telements: elementName,\r\n\t\t\t\t\t\t\ttheme: \"advanced\",\r\n\t\t\t\t\t\t\tskin : \"default\",\r\n\t\t\t\t\t\t\tplugins : \"advhr,advimage,advlink,advlist,autolink,autoresize,contextmenu,fullscreen,inlinepopups,insertdatetime,layer,lists,media,nonbreaking,noneditable,paste,preview,print,save,searchreplace,style,tabfocus,table,visualchars\",\r\n\t\t\t\t\t\t\t theme_advanced_buttons1 : \"newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect,|,forecolor,backcolor\",\r\n\t\t\t\t\t\t\ttheme_advanced_buttons2 : \"cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,code,|,insertdate,inserttime,preview\",\r\n\t\t\t\t\t\t\ttheme_advanced_buttons3 : \"tablecontrols,|,hr,removeformat,visualaid,|,charmap,emotions,iespell,media,advhr,|,print,|,fullscreen\",\r\n\t\t\t\t\t\t\ttheme_advanced_toolbar_location : \"top\",\r\n\t\t\t\t\t\t\ttheme_advanced_toolbar_align : \"left\",\r\n\t\t\t\t\t\t\ttheme_advanced_statusbar_location : \"bottom\",\r\n\t\t\t\t\t\t\ttheme_advanced_resizing : true,\r\n\r\n\t\t\t\t\t\t\tconvert_urls:true,\r\n\t\t\t\t\t\t\trelative_urls:false,\r\n\t\t\t\t\t\t\tremove_script_host:false,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tinitDropDownMenu: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$('[rel=\"dropDownMenu\"]').click('click', function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\t\tif(\$openedDropDownMenu)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$('.dropDownClose').remove();\r\n\t\t\t\t\t\t\t\t\$openedDropDownMenu.hide();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar \$findMenu = \$(this).children('#dropDownMenu');\r\n\t\t\t\t\t\t\t\$openedDropDownMenu = \$findMenu;\r\n\r\n\t\t\t\t\t\t\t\$findMenu.find(\"a\").click(function()\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar \$location = \$(this).attr(\"href\");\r\n\t\t\t\t\t\t\t\tif(\$location)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\twindow.location = \$location;\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tif(\$findMenu.is(':visible'))\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$findMenu.fadeOut(\"slow\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$findMenu.fadeIn(\"slow\");\r\n\t\t\t\t\t\t\t\t\$('<div class=\"dropDownClose\"><a class=\"clickable small staffLink\" href=\"javascript:void(0);\">" . get_phrase("button_cancel") . "</a></div>').appendTo(\$findMenu).click(function(e)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\$('.dropDownClose').remove();\r\n\t\t\t\t\t\t\t\t\t\$findMenu.fadeOut(\"slow\");\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tclickableOptionBoxes: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(document).on(\"click\", \".option_box\", function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\twindow.location=\"?action=" . $TSUE["action"] . "&do=\"+\$(this).attr(\"rel\");\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Use Ajax for Dashboard > Options -> Options Groups.. Such as Website Active, IP Ban etc..\r\n\t\t\t\t\toptionGroups: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t//Clicked on Options Group such as Options -> Website Active\r\n\t\t\t\t\t\t\$(document).on(\"click\", \".optionGroup\", function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\tvar optionsREL = \$(this).attr(\"rel\"),\r\n\t\t\t\t\t\t\tbuildQuery = \"isAjax=1&\"+optionsREL,\r\n\t\t\t\t\t\t\toptionGroup = \$(this);\r\n\r\n\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\tdata: buildQuery,\r\n\t\t\t\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tTSUEAdmin.dialog(result, false, true);\r\n\t\t\t\t\t\t\t\t\tTSUEAdmin.initTipsy();\r\n\t\t\t\t\t\t\t\t\t\$(\"#overlay_form\").submit(function(e)//Does this have a form which was submitted?\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tvar \$thisForm = \$(this);\r\n\r\n\t\t\t\t\t\t\t\t\t\t//Ajax Response has form which has been submitted. Lets handle it.\r\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\tvar \$form = \$(this),\r\n\t\t\t\t\t\t\t\t\t\tbuildQuery = \"isAjax=1&\"+optionsREL+\"&\"+\$form.serialize();\r\n\r\n\t\t\t\t\t\t\t\t\t\tif(\$(\"#tinyMCEAjax\").length)\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\ttinyMCE.triggerSave();\r\n\t\t\t\t\t\t\t\t\t\t\tbuildQuery += \"&\"+\$(\"#tinyMCEAjax\").attr(\"name\")+\"=\"+encodeURIComponent(tinyMCE.activeEditor.getContent());\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\t\t\t\tdata: buildQuery,\r\n\t\t\t\t\t\t\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\tif(result)\r\n\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t//Results Contains New Data, Lets show it in overlay.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(result.match(/-UPDATE_HTML-/))\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult = result.split(\"~\");//0:-UPDATE_HTML- , 1: divID, 2: HTML\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\$(result[1]).html(result[2]);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\$(\".overlay_text .success, .overlay_text .error\").remove();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\$(result).prependTo(\".overlay_text\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar \$submitButton = \$thisForm.find('input[type=\"submit\"]');\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\$(result).insertBefore(\$submitButton);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\$(\".overlay_text\").animate({scrollTop: 0}, \"slow\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\$(document).on(\"click\",\"#checkHitRunOptions\",function(e)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tvar \$div = \$(\".checkHitRunOptions\");\r\n\r\n\t\t\t\t\t\t\t\t\t\tvar \$options = \$(\"#overlay_form\").serialize();\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\$div.html('" . getimage("ajax/fb_ajax-loader.gif") . " " . get_phrase("loading") . "');\r\n\t\t\t\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=checkHitRunOptions&\"+\$options,\r\n\t\t\t\t\t\t\t\t\t\t\tsuccess: function(result)\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\$div.html(result);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Use Tipsy for rel:initTipsy and Images.\r\n\t\t\t\t\tinitTipsy: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$('[rel=\"initTipsy\"],img[title!=\"\"]').tipsy({trigger: \"hover\", gravity: \"s\", html: true});// nw | n | ne | w | e | sw | s | se\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Calendar for input:date\r\n\t\t\t\t\tinitDateInputBoxes: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$.tools.dateinput.localize(\"tsue\", {months: TSUEPhrases[\"months\"], shortMonths: TSUEPhrases[\"shortMonths\"], days: TSUEPhrases[\"days\"], shortDays: TSUEPhrases[\"shortDays\"]});\r\n\t\t\t\t\t\t\$('input[type=\"date\"]').dateinput({lang: \"tsue\", format: \"dd/mm/yyyy\", selectors: true, yearRange: [-80, 5]}).attr(\"autocomplete\", \"off\");\r\n\t\t\t\t\t},\r\n\r\n                    //Autocomplete\r\n                    initAutoComplete: function()\r\n                    {\r\n\t\t\t\t\t\t\$(function()\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tfunction split( val )\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn val.split( /,\\s*/ );\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction extractLast( term )\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\treturn split( term ).pop();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar cache = {}, lastXhr;\r\n\r\n\t\t\t\t\t\t\tif(\$(\"#autoCompleteMultiple\").length)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$(\"#autoCompleteMultiple\").\r\n\t\t\t\t\t\t\t\t// don't navigate away from the field on tab when selecting an item\r\n\t\t\t\t\t\t\t\tbind( \"keydown\", function( event )\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tif ( event.keyCode === \$.ui.keyCode.TAB && \$( this ).data( \"ui-Autocomplete\" ).menu.active )\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.autocomplete\r\n\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\tsource: function( request, response )\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\t\t\t\turl: \"index.php\",\r\n\t\t\t\t\t\t\t\t\t\t\tdataType: \"json\",\r\n\t\t\t\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=autoComplete&do=searchMember&keyword=\"+extractLast(request.term),\r\n\t\t\t\t\t\t\t\t\t\t\tsuccess: function(serverResponse, status, xhr)\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\tresponse( serverResponse );\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tsearch: function()\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t// custom minLength\r\n\t\t\t\t\t\t\t\t\t\tvar term = extractLast( this.value );\r\n\t\t\t\t\t\t\t\t\t\tif ( term.length < 2 )\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tfocus: function()\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t// prevent value inserted on focus\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tselect: function( event, ui )\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tvar terms = split( this.value );\r\n\t\t\t\t\t\t\t\t\t\t// remove the current input\r\n\t\t\t\t\t\t\t\t\t\tterms.pop();\r\n\t\t\t\t\t\t\t\t\t\t// add the selected item\r\n\t\t\t\t\t\t\t\t\t\tterms.push( ui.item.value );\r\n\t\t\t\t\t\t\t\t\t\t// add placeholder to get the comma-and-space at the end\r\n\t\t\t\t\t\t\t\t\t\tterms.push( \"\" );\r\n\t\t\t\t\t\t\t\t\t\tthis.value = terms.join( \", \" );\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(\$(\"#autoComplete\").length)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$(\"#autoComplete\").autocomplete//For Member Search\r\n\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\tminLength: 2,\r\n\t\t\t\t\t\t\t\t\tsource: function( request, response )\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tvar term = request.term;\r\n\t\t\t\t\t\t\t\t\t\tif( term in cache )\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tresponse( cache[ term ] );\r\n\t\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tlastXhr = \$.ajax\r\n\t\t\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\t\t\t\turl: \"index.php\",\r\n\t\t\t\t\t\t\t\t\t\t\tdataType: \"json\",\r\n\t\t\t\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=autoComplete&do=searchMember&keyword=\"+term,\r\n\t\t\t\t\t\t\t\t\t\t\tsuccess: function(serverResponse, status, xhr)\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\tcache[ term ] = serverResponse;\r\n\t\t\t\t\t\t\t\t\t\t\t\tif( xhr === lastXhr )\r\n\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tresponse( serverResponse );\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(\$(\"#autoCompleteSearchInAdminCP\").length)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$(\"#autoCompleteSearchInAdminCP\").autocomplete//For Search in Admin CP\r\n\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\tdelay: 500,\r\n\t\t\t\t\t\t\t\t\tminLength: 2,\r\n\t\t\t\t\t\t\t\t\tsource: function( request, response )\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\t\t\t\turl: \"index.php\",\r\n\t\t\t\t\t\t\t\t\t\t\tdataType: \"json\",\r\n\t\t\t\t\t\t\t\t\t\t\tdata: \"isAjax=1&action=autoComplete&do=searchINAdminCP&keyword=\"+request.term,\r\n\t\t\t\t\t\t\t\t\t\t\tsuccess: function(serverResponse, status, xhr)\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\tresponse( serverResponse );\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tselect: function( event, ui)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tif(ui.item.url)\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\twindow.open(ui.item.url, \"_blank\");\r\n\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}).click(function()\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tvar \$this = \$(this);\r\n\t\t\t\t\t\t\t\t\tif(\$this.val() == \"" . get_phrase("keywords") . "\")\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\$this.val(\"\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}).data(\"ui-Autocomplete\")._renderItem = function (ul, item)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\treturn \$(\"<li></li>\")\r\n\t\t\t\t\t\t\t\t\t.data(\"item.autocomplete\", item)\r\n\t\t\t\t\t\t\t\t\t.append(\$(\"<a></a>\").html(item.label))\r\n\t\t\t\t\t\t\t\t\t.appendTo(ul);\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n                    },\r\n\r\n\t\t\t\t\t//Set YES-NO and Check ALL\r\n\t\t\t\t\tcheckAll: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(document).on(\"click\", \"#checkAllCheckbox\", function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar \$this = \$(this), \$cName = \$this.attr(\"data\"), \$isChecked = \$this.is(\":checked\");\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\$('input[name=\"'+\$cName+'\"]').attr(\"checked\", \$isChecked);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\$(document).on(\"click\", \"#setALLYes\", function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\$(\"input:radio[rel='\"+\$(this).attr(\"rel\")+\"']\").filter(\"[value='1']\").attr(\"checked\", true);\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\$(document).on(\"click\", \"#setALLNo\", function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\$(\"input:radio[rel='\"+\$(this).attr(\"rel\")+\"']\").filter(\"[value='0']\").attr(\"checked\", true);\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\$(document).on(\"click\", 'input[name=\"checkALL\"]', function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar \$inputNames = \$(this).attr(\"value\");\r\n\t\t\t\t\t\t\tvar \$checked_status = \$(this).attr(\"checked\");\r\n\t\t\t\t\t\t\t\$('input[name=\"'+\$inputNames+'\"]').attr(\"checked\", (\$checked_status ? \$checked_status : false));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Auto Resize Dialog Height.\r\n\t\t\t\t\tinitMainContentHeight: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar containerContent = \$(\".content\"),\r\n\t\t\t\t\t\tcontainerContentHeight = \$(containerContent).height(),\r\n\t\t\t\t\t\twindowHeight = \$(window).height()-180,\r\n\t\t\t\t\t\tbuttonExpand = \"" . (($isLogin ? "" : get_phrase("button_expand"))) . "\";\r\n\t\t\t\t\t\tif(containerContentHeight > windowHeight)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(containerContent).animate({maxHeight: windowHeight+\"px\"}).css({overflow: \"hidden\"});\r\n\t\t\t\t\t\t\t\$('<div id=\"toggleText\">'+buttonExpand+'</div>').appendTo(\$(containerContent)).click(function()\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\$(containerContent).animate({maxHeight: containerContentHeight+\"px\"});\r\n\t\t\t\t\t\t\t\t\$(this).remove();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Show Loader While Ajax loading.\r\n\t\t\t\t\tshowLoader: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!\$noLoader)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(\"#loading\").show();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Hide Loader After Ajax completed.\r\n\t\t\t\t\thideLoader: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(\"#loading\").hide();\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Confirmation.\r\n\t\t\t\t\tconfirmAction: function(cMessage)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn confirm(cMessage);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tcalculator: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$(document).on(\"click\", \".calculator\", function(e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\$.ajax\r\n\t\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\t\t\t\turl: \"calculator.html\",\r\n\t\t\t\t\t\t\t\tsuccess: function(calculatorHTML)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tTSUEAdmin.dialog(calculatorHTML);\r\n\t\t\t\t\t\t\t\t\t\$(\"#calculator\").submit(function(e)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\t\t\t\t\tvar \$amount = parseInt(\$('input[name=\"amount\"]', this).val());\r\n\t\t\t\t\t\t\t\t\t\tvar \$amount_type = \$('select[name=\"amount_type\"]', this).val();\r\n\r\n\t\t\t\t\t\t\t\t\t\tif(\$amount && \$amount_type)\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tvar \$convertedAmount = 0;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tswitch(\$amount_type)\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\tcase \"MB\":\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\$convertedAmount = \$amount * 1024 * 1024;\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tcase \"GB\":\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\$convertedAmount = \$amount * 1024 * 1024 * 1024;\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\$(\"#convertedAmount\").html(\$amount+\" \"+\$amount_type+\" equal to \"+\$convertedAmount+\" Bytes\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t//Dialog Function\r\n\t\t\t\t\tdialog: function(result, _closeOnClick, _closeOnEsc)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(\$(\".apple_overlay\").length)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(\".apple_overlay\").empty().remove();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tOverlay = \$('<div class=\"apple_overlay\"><div class=\"overlay_text\">'+result+'</div></div>').prependTo(\"body\").overlay\r\n\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\tload: true, closeOnClick: (_closeOnClick ? true : false), closeOnEsc: (_closeOnEsc ? true : false), top: 20,\r\n\t\t\t\t\t\t\tmask:{color: \"#ccc\", loadSpeed: 200, opacity: 0.8},\r\n\t\t\t\t\t\t\tonClose: function()\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tTSUEAdmin.closeDialog();\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tonLoad: function()\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar \$overlayHeight = \$(\".overlay_text\").outerHeight(), \$overlayWidth = \$(\".apple_overlay\").outerWidth(), \$windowHeight = \$(window).height(), \$windowWidth = \$(window).width();\r\n\t\t\t\t\t\t\t\tif(\$overlayHeight+100 > \$windowHeight)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$(\".overlay_text\").css({height: \$windowHeight-100});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif(\$overlayWidth+35 > \$windowWidth)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\$(\".apple_overlay\").css({width: \$windowWidth-35});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tTSUEAdmin.resizeOverlay();\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tapi:true\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tresizeOverlay: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t//var top = (\$(window).height() / 2) - (\$(\".apple_overlay\").outerHeight() / 2);\r\n\t\t\t\t\t\tvar left = (\$(window).width() / 2) - (\$(\".apple_overlay\").outerWidth() / 2);\r\n\t\t\t\t\t\t//\$(\".apple_overlay\").css(\"top\", top);\r\n\t\t\t\t\t\t\$(\".apple_overlay\").css(\"left\", left);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tcloseDialog: function()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t//Remove Tinymce\r\n\t\t\t\t\t\t\$inline_editor = \$(\"body\").find('textarea[id=\"tinyMCEAjax\"]');\r\n\t\t\t\t\t\tif(\$inline_editor.length)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttinyMCE.execCommand(\"mceFocus\", false, \"tinyMCEAjax\");\r\n\t\t\t\t\t\t\ttinyMCE.execCommand(\"mceRemoveControl\", false, \"tinyMCEAjax\");\r\n\t\t\t\t\t\t\t\$inline_editor.html(\"\").remove();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//Remove Overlay Div\r\n\t\t\t\t\t\t\$(document).find(\".apple_overlay\").each(function()\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\$(this).empty().remove();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t//Close Overlay\r\n\t\t\t\t\t\tOverlay.close();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\t\$(document).ready(function(){TSUEAdmin.init();});\r\n\t\t\t\t\$(window).resize(function(){TSUEAdmin.resizeOverlay();});\r\n\t\t\t</script>")) . "\r\n\r\n\t\t</body>\r\n\t</html>");
}

function _sendheaders($Content, $ContentType = "text/html", $UseCharset = true)
{
    global $TSUE;
    ob_start();
    $Content = gzipcontentifsupported($Content);
    if( $UseCharset )
    {
        $UseCharset = "; charset=" . ((isset($TSUE["TSUE_Language"]["charset"]) ? $TSUE["TSUE_Language"]["charset"] : "UTF-8"));
    }
    else
    {
        $UseCharset = "";
    }

    header("X-Powered-By: TSUE " . V);
    header("Cache-Control: no-cache, must-revalidate");
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header("Content-Length: " . strlen($Content));
    header("Content-Type: " . $ContentType . $UseCharset);
    exit( $Content );
}

function gzipcontentifsupported($Content)
{
    if( @ini_get("zlib.output_compression") )
    {
        return $Content;
    }

    if( !function_exists("gzencode") || empty($_SERVER["HTTP_ACCEPT_ENCODING"]) )
    {
        return $Content;
    }

    if( !is_string($Content) )
    {
        return $Content;
    }

    if( strpos($_SERVER["HTTP_ACCEPT_ENCODING"], "gzip") !== false )
    {
        header("Content-Encoding: gzip");
        header("Vary: Accept-Encoding");
        $Content = gzencode($Content, 9, FORCE_GZIP);
    }

    return $Content;
}

function aaaaac()
{
    $port = (isset($_SERVER["SERVER_PORT"]) && $_SERVER["SERVER_PORT"] ? intval($_SERVER["SERVER_PORT"]) : 0);
    $port = (in_array($port, array( 80, 443 )) ? "" : ":" . $port);
    $scheme = (":443" == $port || isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] && $_SERVER["HTTPS"] != "off" ? "https://" : "http://");
    $host = fetch_server_value("HTTP_HOST");
    $name = fetch_server_value("SERVER_NAME");
    $host = (substr_count($name, ".") < substr_count($host, ".") ? $host : $name);
    if( !($scriptpath = fetch_server_value("PATH_INFO")) && !($scriptpath = fetch_server_value("REDIRECT_URL")) && !($scriptpath = fetch_server_value("URL")) && !($scriptpath = fetch_server_value("PHP_SELF")) )
    {
        $scriptpath = fetch_server_value("SCRIPT_NAME");
    }

    $url = $scheme . $host . "/" . str_replace("index.php", "", ltrim($scriptpath, "/\\"));
    return $url;
}

function fetch_server_value($name)
{
    if( isset($_SERVER[$name]) && $_SERVER[$name] )
    {
        return $_SERVER[$name];
    }

    if( isset($_ENV[$name]) && $_ENV[$name] )
    {
        return $_ENV[$name];
    }

    return false;
}

function addbreadcrumb($breadcrumbs)
{
    global $TSUE;
    foreach( $breadcrumbs as $_title => $_link )
    {
        $TSUE["breadcrumb"][] = "\r\n\t\t<span class=\"crust\" itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">\r\n\t\t\t<a href=\"" . $_link . "\" class=\"crumb\" rel=\"up\" itemprop=\"url\"><span itemprop=\"title\">" . $_title . "</span></a>\r\n\t\t\t<span class=\"arrow\"><span></span></span>\r\n\t\t</span>";
    }
}

function createbreadcrumb()
{
    global $TSUE;
    $breadcrumbs = implode("\n", $TSUE["breadcrumb"]);
    if( !$breadcrumbs )
    {
        return "";
    }

    $breadcrumb = "\r\n\t<div class=\"breadBoxTop\">\r\n\t\t<nav>\r\n\t\t\t<fieldset class=\"breadcrumb\">\r\n\t\t\t\t<span class=\"crumbs\">\r\n\t\t\t\t\t" . $breadcrumbs . "\r\n\t\t\t\t</span>\r\n\t\t\t</fieldset>\r\n\t\t</nav>\r\n\t</div>";
    return $breadcrumb;
}

function errormessage($msg)
{
    return "<div class=\"error\">" . $msg . "</div>";
}

function successmessage($msg)
{
    return "<div class=\"success\">" . $msg . "</div>";
}

function has_permission($What, $Permissions = "")
{
    return (isset($Permissions[$What]) ? $Permissions[$What] : false);
}

function aaaaad($checkFor)
{
    global $TSUE;
    $tsue_staffcp_permissions = $TSUE["TSUE_Database"]->query_result("SELECT permissions FROM tsue_staffcp_permissions WHERE memberid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Member"]["memberid"]));
    if( !$tsue_staffcp_permissions )
    {
        $error = true;
    }
    else
    {
        if( !($tsue_staffcp_permissions = unserialize($tsue_staffcp_permissions["permissions"])) )
        {
            $error = true;
        }
        else
        {
            if( !isset($tsue_staffcp_permissions[$checkFor]) || isset($tsue_staffcp_permissions[$checkFor]) && !$tsue_staffcp_permissions[$checkFor] )
            {
                $error = true;
            }

        }

    }

    if( isset($error) && $error )
    {
        printoutput(errormessage(get_phrase("permission_denied")));
    }

}

function checkdemomode()
{
    if( DEMO_MODE )
    {
        printoutput(errormessage("This function is disabled within demo mode."));
    }

}

function undomagicquotes(&$array, $depth = 0)
{
    if( 10 < $depth || !is_array($array) )
    {
        return NULL;
    }

    foreach( $array as $key => $value )
    {
        if( is_array($value) )
        {
            undomagicquotes($array[$key], $depth + 1);
        }
        else
        {
            $array[$key] = stripslashes($value);
        }

        if( is_string($key) )
        {
            $new_key = stripslashes($key);
            if( $new_key != $key )
            {
                $array[$new_key] = $array[$key];
                unset($array[$key]);
            }

        }

    }
}

function profileupdate($memberid, $buildQuery)
{
    global $TSUE;
    return $TSUE["TSUE_Database"]->update("tsue_member_profile", $buildQuery, "memberid=" . $TSUE["TSUE_Database"]->escape($memberid), false);
}

function updatememberpoints($addPoint, $memberid, $Increase = true)
{
    if( $addPoint )
    {
        if( $Increase )
        {
            $points = array( "escape" => 0, "value" => "points + " . $addPoint );
        }
        else
        {
            $points = array( "escape" => 0, "value" => "IF(points > " . $addPoint . ", points-" . $addPoint . ", 0)" );
        }

        return profileupdate($memberid, array( "points" => $points ));
    }

}

function ispost()
{
    return strtoupper($_SERVER["REQUEST_METHOD"]) == "POST";
}

function getvar($valueName, $defaultValue = "", $cleanValue = true)
{
    $searchValue = (isset($_POST[$valueName]) && !empty($_POST[$valueName]) ? $_POST[$valueName] : (isset($_GET[$valueName]) && !empty($_GET[$valueName]) ? $_GET[$valueName] : $defaultValue));
    return ($cleanValue ? html_clean($searchValue) : $searchValue);
}

function file_extension($filename)
{
    return substr(strrchr($filename, "."), 1);
}

function getsetting($setting = "", $value = "", $defaultValue = "")
{
    global $TSUE;
    return (isset($TSUE["TSUE_Settings"]->settings[$setting][$value]) ? $TSUE["TSUE_Settings"]->settings[$setting][$value] : $defaultValue);
}

function get_phrase()
{
    global $TSUE;
    $args = func_get_args();
    $args[0] = preg_replace("#\\{([0-9]+)\\}#sU", "%\\1\$s", $TSUE["TSUE_Language"]["phrase"][$args[0]]);
    $numargs = sizeof($args);
    if( $numargs == 1 && is_array($args[0]) )
    {
        return construct_phrase_from_array($args[0]);
    }

    if( $numargs == 2 && is_string($args[0]) && is_array($args[1]) )
    {
        array_unshift($args[1], $args[0]);
        return construct_phrase_from_array($args[1]);
    }

    return construct_phrase_from_array($args);
}

function construct_phrase_from_array($phrase_array)
{
    $numargs = sizeof($phrase_array);
    if( $numargs < 2 )
    {
        return $phrase_array[0];
    }

    $phrase = @call_user_func_array("sprintf", $phrase_array);
    if( $phrase !== false )
    {
        return $phrase;
    }

    for( $i = $numargs; $i < 10; $i++ )
    {
        $phrase_array[(string) $i] = "[ARG:" . $i . " UNDEFINED]";
    }
    if( $phrase = @call_user_func_array("sprintf", $phrase_array) )
    {
        return $phrase;
    }

    return $phrase_array[0];
}

function convert_time($timestamp, $format = "")
{
    global $TSUE;
    if( !$format )
    {
        $format = $TSUE["TSUE_Language"]["date_format"] . " " . $TSUE["TSUE_Language"]["time_format"];
    }

    return gmdate($format, $timestamp + 3600 * ($TSUE["TSUE_Member"]["timezone"] + $TSUE["TSUE_Member"]["dst"]));
}

function convert_relative_time($timestamp = 0)
{
    global $TSUE;
    $interval = TIMENOW - $timestamp;
    if( $interval < 0 )
    {
        return convert_time($timestamp);
    }

    $aaaaod = array( "today" => convert_time(TIMENOW, "n-j-Y"), "yesterday" => convert_time(TIMENOW - 86400, "n-j-Y"), "week" => convert_time(TIMENOW - 86400 * 6, "n-j-Y") );
    $MTimeStamp = convert_time($timestamp, "n-j-Y");
    if( $MTimeStamp == $aaaaod["today"] )
    {
        return get_phrase("relative_today_at_x", convert_time($timestamp, $TSUE["TSUE_Language"]["time_format"]));
    }

    if( $MTimeStamp == $aaaaod["yesterday"] )
    {
        return get_phrase("relative_yesterday_at_x", convert_time($timestamp, $TSUE["TSUE_Language"]["time_format"]));
    }

    if( $aaaaod["week"] <= $MTimeStamp )
    {
        $dayName = get_phrase("day_" . convert_time($timestamp, "N"));
        $Time = convert_time($timestamp, $TSUE["TSUE_Language"]["time_format"]);
        return get_phrase("relative_day_x_at_time_y", $dayName, $Time);
    }

    return convert_time($timestamp);
}

function secondstohours($seconds)
{
    $lang = tsue_explode(",", get_phrase("all_in_one_pretty_time"));
    $hours = floor($seconds / 3600);
    $minutes = floor(($seconds / 60) % 60);
    $hoursPhrase = (1 < $hours ? $lang["9"] : $lang["8"]);
    $minutesPhrase = (1 < $minutes ? $lang["11"] : $lang["10"]);
    return (string) $hours . " " . $hoursPhrase . " " . $minutes . " " . $minutesPhrase;
}

function aaaadj($stamp = 0)
{
    $ysecs = 365 * 24 * 60 * 60;
    $mosecs = 31 * 24 * 60 * 60;
    $wsecs = 7 * 24 * 60 * 60;
    $dsecs = 24 * 60 * 60;
    $hsecs = 60 * 60;
    $msecs = 60;
    $years = floor($stamp / $ysecs);
    $stamp %= $ysecs;
    $months = floor($stamp / $mosecs);
    $stamp %= $mosecs;
    $weeks = floor($stamp / $wsecs);
    $stamp %= $wsecs;
    $days = floor($stamp / $dsecs);
    $stamp %= $dsecs;
    $hours = floor($stamp / $hsecs);
    $stamp %= $hsecs;
    $minutes = floor($stamp / $msecs);
    $stamp %= $msecs;
    $seconds = $stamp;
    return array( "years" => $years, "months" => $months, "weeks" => $weeks, "days" => $days, "hours" => $hours, "minutes" => $minutes );
}

function getmembername($membername = "", $groupstyle = "")
{
    return str_replace("{membername}", $membername, $groupstyle);
}

function explodesearchkeywords($Match = "", $Against = "", $fullTextSearch = true)
{
    global $TSUE;
    if( $fullTextSearch )
    {
        return "MATCH (" . $Match . ") AGAINST ('" . $TSUE["TSUE_Database"]->escape_no_quotes($Against) . "' IN BOOLEAN MODE)";
    }

    return (string) $Match . " LIKE '%" . $TSUE["TSUE_Database"]->escape_no_quotes($Against) . "%'";
}

function deletetorrent($tid = 0)
{
    global $TSUE;
    checkdemomode();
    if( !$tid )
    {
        return false;
    }

    $attachments = $TSUE["TSUE_Database"]->query("SELECT content_type, filename FROM tsue_attachments WHERE content_type IN ('torrent_images', 'torrent_files', 'torrent_screenshots') AND content_id = " . $TSUE["TSUE_Database"]->escape($tid));
    if( $TSUE["TSUE_Database"]->num_rows($attachments) )
    {
        while( $attachment = $TSUE["TSUE_Database"]->fetch_assoc($attachments) )
        {
            if( $attachment["content_type"] == "torrent_files" || $attachment["content_type"] == "nfo" )
            {
                $file = DATAPATH . "torrents/" . $attachment["content_type"] . "/" . $attachment["filename"];
                if( is_file($file) )
                {
                    @unlink($file);
                }

            }
            else
            {
                deleteimages($attachment["filename"]);
            }

        }
        $TSUE["TSUE_Database"]->delete("tsue_attachments", "content_type IN ('torrent_images', 'torrent_files','torrent_screenshots') AND content_id = " . $TSUE["TSUE_Database"]->escape($tid));
    }

    aaaaex($tid);
    $TSUE["TSUE_Database"]->delete("tsue_bookmarks", "tid = " . $TSUE["TSUE_Database"]->escape($tid));
    $TSUE["TSUE_Database"]->delete("tsue_comments", "content_type = 'torrent_comments' AND content_id = " . $TSUE["TSUE_Database"]->escape($tid));
    $TSUE["TSUE_Database"]->delete("tsue_comments_replies", "content_type = 'torrent_comments' AND content_id = " . $TSUE["TSUE_Database"]->escape($tid));
    $TSUE["TSUE_Database"]->delete("tsue_liked_content", "content_type = 'torrent' AND content_id = " . $TSUE["TSUE_Database"]->escape($tid));
    $TSUE["TSUE_Database"]->delete("tsue_torrents_peers", "tid = " . $TSUE["TSUE_Database"]->escape($tid));
    $TSUE["TSUE_Database"]->delete("xbt_files_users", "fid = " . $TSUE["TSUE_Database"]->escape($tid));
    if( getsetting("xbt", "active") )
    {
        $TSUE["TSUE_Database"]->update("tsue_torrents", array( "flags" => "1" ), "tid = " . $TSUE["TSUE_Database"]->escape($tid));
    }
    else
    {
        $TSUE["TSUE_Database"]->delete("tsue_torrents", "tid = " . $TSUE["TSUE_Database"]->escape($tid));
    }

    handleprune(false);
    return true;
}

function aaaaex($tid)
{
    global $TSUE;
    checkdemomode();
    if( is_array($tid) )
    {
        foreach( $tid as $t )
        {
            aaaaex($t);
        }
        return NULL;
    }
    else
    {
        $IMDB = $TSUE["TSUE_Database"]->query_result("SELECT content FROM tsue_imdb WHERE tid = " . $TSUE["TSUE_Database"]->escape($tid));
        if( $IMDB )
        {
            $IMDBContent = unserialize($IMDB["content"]);
            if( $IMDBContent["title_id"] && is_file(DATAPATH . "torrents/imdb/" . $IMDBContent["title_id"] . ".jpg") )
            {
                @unlink(DATAPATH . "torrents/imdb/" . $IMDBContent["title_id"] . ".jpg");
            }

        }

        $TSUE["TSUE_Database"]->delete("tsue_imdb", "tid = " . $TSUE["TSUE_Database"]->escape($tid));
    }

}

function deleteimages($filename)
{
    checkdemomode();
    foreach( array( "l", "m", "s" ) as $torrentImageFolder )
    {
        $_filePath = DATAPATH . "torrents/torrent_images/" . $torrentImageFolder . "/" . $filename;
        if( is_file($_filePath) )
        {
            @unlink($_filePath);
        }

    }
}

function deletemember($memberid = 0)
{
    global $TSUE;
    checkdemomode();
    if( !$memberid )
    {
        return NULL;
    }

    $TSUE["TSUE_Database"]->delete("tsue_comments", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_comments_replies", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_invites", "sender_memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR receiver_memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_liked_content", "like_memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_members", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_member_alerts", "alerted_memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_member_bans", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_member_confirmation", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_member_follow", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR follow_memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_member_mutes", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_member_privacy", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_member_profile", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_member_profile_visitors", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR visitorid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_member_promotions", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_member_upgrades_promotions", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_member_upgrades_purchases", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_member_warns", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_messages_master", "owner_memberid=" . $TSUE["TSUE_Database"]->escape($memberid) . " OR receiver_memberid = " . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_messages_replies", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_requests", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_shoutbox", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_torrents_peers", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("tsue_uploader_applications", "memberid=" . $TSUE["TSUE_Database"]->escape($memberid));
    $TSUE["TSUE_Database"]->delete("xbt_files_users", "uid=" . $TSUE["TSUE_Database"]->escape($memberid));
}

function is_member_of($groupname)
{
    switch( strtolower($groupname) )
    {
        case "banned":
            $GroupID = 8;
            break;
        case "awaitingmoderation":
            $GroupID = 4;
            break;
        case "awaitingemailconfirmation":
            $GroupID = 3;
            break;
        case "registeredusers":
            $GroupID = 2;
            break;
        case "unregistered":
            $GroupID = 1;
    }
    return (isset($GroupID) ? $GroupID : 0);
}

function optionbox($rel, $optionTitle, $span, $checkMainPerm = "")
{
    global $TSUE;
    $oClass = "";
    $checkPerm = ($checkMainPerm ? $checkMainPerm : $rel);
    if( !isset($TSUE["TSUE_Member"]["aPermissions"][$checkPerm]) || !$TSUE["TSUE_Member"]["aPermissions"][$checkPerm] )
    {
        return "";
    }

    $do = $rel;
    if( strstr($rel, "/") !== false )
    {
        list($do, $rel) = tsue_explode("/", $rel);
        $do = $do . "&" . $rel . "=1";
    }

    return "\r\n\t<div class=\"option_box" . $oClass . "\" rel=\"" . $do . "\">\r\n\t\t" . getimage("options/" . str_replace(" ", "", strtolower($rel)) . ".png", $optionTitle) . " " . $optionTitle . "\r\n\t\t<span>" . $span . "</span>\r\n\t</div>";
}

function foldersize($path)
{
    $total_size = 0;
    $files = scandir($path);
    $cleanPath = rtrim($path, "/") . "/";
    foreach( $files as $t )
    {
        if( $t != "." && $t != ".." )
        {
            $currentFile = $cleanPath . $t;
            if( is_dir($currentFile) )
            {
                $size = foldersize($currentFile);
                $total_size += $size;
            }
            else
            {
                $size = filesize($currentFile);
                $total_size += $size;
            }

        }

    }
    return $total_size;
}

function friendly_size($bytes = 0, $useName = true, $precision = 2)
{
    global $TSUE;
    if( !$bytes )
    {
        return 0;
    }

    $kilobyte = 1024;
    $megabyte = $kilobyte * 1024;
    $gigabyte = $megabyte * 1024;
    $terabyte = $gigabyte * 1024;
    $filesizename = @tsue_explode(",", "Bytes,KB,MB,GB,TB,PB,EB,ZB,YB");
    if( 0 < $bytes && $bytes < $kilobyte )
    {
        return $bytes . (($useName ? " " . $filesizename["0"] : ""));
    }

    if( $kilobyte <= $bytes && $bytes < $megabyte )
    {
        return round($bytes / $kilobyte, $precision) . (($useName ? " " . $filesizename["1"] : ""));
    }

    if( $megabyte <= $bytes && $bytes < $gigabyte )
    {
        return round($bytes / $megabyte, $precision) . (($useName ? " " . $filesizename["2"] : ""));
    }

    if( $gigabyte <= $bytes && $bytes < $terabyte )
    {
        return round($bytes / $gigabyte, $precision) . (($useName ? " " . $filesizename["3"] : ""));
    }

    if( $terabyte <= $bytes )
    {
        return round($bytes / $terabyte, $precision) . (($useName ? " " . $filesizename["4"] : ""));
    }

    return html_clean($bytes);
}

function logadminaction($log, $type = 2)
{
    global $TSUE;
    if( DEMO_MODE )
    {
        return NULL;
    }

    $buildQuery = array( "memberid" => (isset($TSUE["TSUE_Member"]["memberid"]) ? $TSUE["TSUE_Member"]["memberid"] : 0), "membername" => (isset($TSUE["TSUE_Member"]["membername"]) ? $TSUE["TSUE_Member"]["membername"] : ""), "date" => TIMENOW, "type" => $type, "log" => $log );
    $TSUE["TSUE_Database"]->insert("tsue_logs", $buildQuery);
}

function aaaaal()
{
    if( isset($_POST["option_name"]) && !empty($_POST["option_name"]) )
    {
        logadminaction(get_phrase("log_x_has_been_saved", trim($_POST["option_name"])));
    }

}

function html_clean($text = "")
{
    return (trim($text) != "" ? htmlspecialchars($text, ENT_QUOTES) : "");
}

function html_declean($text)
{
    return str_replace(array( "&lt;", "&gt;", "&quot;", "&amp;" ), array( "<", ">", "\"", "&" ), $text);
}

function safe_names($string = "", $delimer = "-")
{
    if( ctype_digit($string) || !$string )
    {
        return $string;
    }

    $string = preg_replace("#[^a-zA-Z0-9\\.\\" . $delimer . "]#", $delimer, $string);
    $string = preg_replace("#\\" . $delimer . "\\" . $delimer . "+#", $delimer, $string);
    return trim($string);
}

function is_valid_string($string)
{
    return (!preg_match("#^[a-zA-Z0-9]+\$#", $string) ? false : true);
}

function removewhitespaces($text)
{
    return trim(preg_replace("/\\s+/", " ", $text));
}

function aaaaio($phrase)
{
    return (!preg_match("#^[a-zA-Z0-9_]+\$#", $phrase) ? false : true);
}

function is_valid_email($email)
{
    return !isemailbanned($email) && filter_var($email, FILTER_VALIDATE_EMAIL);
}

function isemailbanned($email)
{
    global $TSUE;
    if( !empty($TSUE["TSUE_Settings"]->settings["banned_emails_cache"]) )
    {
        foreach( $TSUE["TSUE_Settings"]->settings["banned_emails_cache"] as $bannedEmail )
        {
            $bannedEmail = str_replace("\\*", "(.*)", preg_quote($bannedEmail, "/"));
            if( preg_match("/^" . $bannedEmail . "\$/", $email) )
            {
                return true;
            }

        }
    }

    return false;
}

function fetch_timezones($offset = "all")
{
    $timezones = array( "-12" => get_phrase("timezone_gmt_minus_1200"), "-11" => get_phrase("timezone_gmt_minus_1100"), "-10" => get_phrase("timezone_gmt_minus_1000"), "-9" => get_phrase("timezone_gmt_minus_0900"), "-8" => get_phrase("timezone_gmt_minus_0800"), "-7" => get_phrase("timezone_gmt_minus_0700"), "-6" => get_phrase("timezone_gmt_minus_0600"), "-5" => get_phrase("timezone_gmt_minus_0500"), "-4.5" => get_phrase("timezone_gmt_minus_0430"), "-4" => get_phrase("timezone_gmt_minus_0400"), "-3.5" => get_phrase("timezone_gmt_minus_0330"), "-3" => get_phrase("timezone_gmt_minus_0300"), "-2" => get_phrase("timezone_gmt_minus_0200"), "-1" => get_phrase("timezone_gmt_minus_0100"), "0" => get_phrase("timezone_gmt_plus_0000"), "1" => get_phrase("timezone_gmt_plus_0100"), "2" => get_phrase("timezone_gmt_plus_0200"), "3" => get_phrase("timezone_gmt_plus_0300"), "3.5" => get_phrase("timezone_gmt_plus_0330"), "4" => get_phrase("timezone_gmt_plus_0400"), "4.5" => get_phrase("timezone_gmt_plus_0430"), "5" => get_phrase("timezone_gmt_plus_0500"), "5.5" => get_phrase("timezone_gmt_plus_0530"), "5.75" => get_phrase("timezone_gmt_plus_0545"), "6" => get_phrase("timezone_gmt_plus_0600"), "6.5" => get_phrase("timezone_gmt_plus_0630"), "7" => get_phrase("timezone_gmt_plus_0700"), "8" => get_phrase("timezone_gmt_plus_0800"), "9" => get_phrase("timezone_gmt_plus_0900"), "9.5" => get_phrase("timezone_gmt_plus_0930"), "10" => get_phrase("timezone_gmt_plus_1000"), "11" => get_phrase("timezone_gmt_plus_1100"), "12" => get_phrase("timezone_gmt_plus_1200") );
    if( $offset === "all" )
    {
        return $timezones;
    }

    return $timezones[(string) $offset];
}

function createtabs($tabs = array(  ), $EXTRA = "")
{
    $DIV = "";
    $LI = "";
    $tabCount = 1;
    foreach( $tabs as $phrase => $content )
    {
        $tabName = "tabs-" . $tabCount;
        $LI .= "<li><a href=\"#" . $tabName . "\">" . $phrase . "</a></li>";
        $DIV .= "<div id=\"" . $tabName . "\"><p>" . $content . "</p></div>";
        $tabCount++;
    }
    return "\r\n\t<div id=\"tabs\">\r\n\t\t<ul>\r\n\t\t\t" . $LI . "\r\n\t\t</ul>\r\n\t\t" . $DIV . "\r\n\t</div>\r\n\t<script type=\"text/javascript\">\r\n\t\t\$( \"#tabs\" ).tabs({ history: true });\r\n\t</script>\r\n\t";
}

function aaaaoe($id, $items)
{
    return "\r\n     <script type=\"text/javascript\">\r\n        \$(\"#" . $id . "\").sortable({items: \"" . $items . "\", cursor: \"move\", revert: true, forcePlaceholderSize: true, placeholder: \"ui-state-highlight\"});\r\n    </script>";
}

function generatepasskey($length = 30)
{
    $passkey = "";
    for( $i = 0; $i < $length; $i++ )
    {
        $passkey .= chr(rand(33, 126));
    }
    return sha1($passkey);
}

function getserver($key = NULL, $default = NULL)
{
    if( NULL === $key )
    {
        return $_SERVER;
    }

    return (isset($_SERVER[$key]) ? $_SERVER[$key] : $default);
}

function getclientip($checkProxy = true)
{
    if( $checkProxy && getserver("HTTP_CLIENT_IP") != NULL )
    {
        $ip = getserver("HTTP_CLIENT_IP");
    }
    else
    {
        if( $checkProxy && getserver("HTTP_X_FORWARDED_FOR") != NULL )
        {
            $ip = getserver("HTTP_X_FORWARDED_FOR");
        }
        else
        {
            $ip = getserver("REMOTE_ADDR");
        }

    }

    return strip_tags($ip);
}

function banip($ip)
{
    $ip = preg_replace("/\\.+\$/", "", $ip);
    if( !preg_match("/^\\d+(\\.\\d+){0,2}(\\.\\d+|\\.\\*)?\$/", $ip) )
    {
        return false;
    }

    if( substr($ip, -2) == ".*" )
    {
        $ip = substr($ip, 0, -2);
    }

    $aaaaof = array(  );
    $aaaaog = array(  );
    $ipParts = tsue_explode(".", $ip);
    foreach( $ipParts as $part )
    {
        if( $part < 0 || 255 < $part )
        {
            return false;
        }

        $aaaaof[] = $part;
        $aaaaog[] = $part;
    }
    while( count($aaaaof) < 4 )
    {
        $aaaaof[] = 0;
        $aaaaog[] = 255;
    }
    $aaaaoh = $ipParts[0];
    $startLong = sprintf("%u", ip2long(implode(".", $aaaaof)));
    $aaaaoi = sprintf("%u", ip2long(implode(".", $aaaaog)));
    if( count($ipParts) < 4 )
    {
        $aaaaoj = implode(".", $ipParts) . ".*";
    }
    else
    {
        $aaaaoj = $ip;
    }

    return array( $aaaaoj, $aaaaoh, $startLong, $aaaaoi );
}

function getbannedips($submitButtons = true)
{
    global $TSUE;
    $DIV = "<div id=\"bannedIPaddresses\">";
    $bannedIPs = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ip_match WHERE match_type = 'banned'");
    if( $TSUE["TSUE_Database"]->num_rows($bannedIPs) )
    {
        while( $bannedIP = $TSUE["TSUE_Database"]->fetch_assoc($bannedIPs) )
        {
            $DIV .= "<label id=\"" . md5($bannedIP["ip"]) . "\"><input type=\"checkbox\" name=\"removeip[]\" value=\"" . $bannedIP["ip"] . "\" /> " . $bannedIP["ip"] . "</label>";
        }
        if( $submitButtons )
        {
            $DIV .= "<div class=\"submitPadding\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("dashboard_options_ipban_delete") . "\" /> </div>";
        }

    }
    else
    {
        $DIV .= get_phrase("dashboard_options_ipban_no_ip");
    }

    $DIV .= "</div>";
    return $DIV;
}

function banemail($email)
{
    if( $email == "*" || $email === "" )
    {
        return get_phrase("dashboard_options_emailban_invalid_email");
    }

    if( strpos($email, "*") === false )
    {
        if( strpos($email, "@") === false )
        {
            $email = "*" . $email;
        }

        if( strpos($email, ".") === false )
        {
            $email .= "*";
        }

    }

    if( $email[0] == "@" )
    {
        $email = "*" . $email;
    }

    $lastChar = substr($email, -1);
    if( $lastChar == "." || $lastChar == "@" )
    {
        $email .= "*";
    }

    $atPos = strpos($email, "@");
    if( $atPos !== false && strpos($email, ".", $atPos) === false && strpos($email, "*", $atPos) === false )
    {
        $email .= "*";
    }

    if( $email == "*@*" || $email == "*.*" )
    {
        return get_phrase("dashboard_options_emailban_invalid_email2");
    }

    $email = preg_replace("/\\*{2,}/", "*", $email);
    return array( $email );
}

function aaaaar($submitButtons = true)
{
    global $TSUE;
    $DIV = "<div id=\"bannedEmailaddresses\">";
    $aaaadq = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_email ORDER BY 'banned_email'");
    if( $TSUE["TSUE_Database"]->num_rows($aaaadq) )
    {
        while( $bannedEmail = $TSUE["TSUE_Database"]->fetch_assoc($aaaadq) )
        {
            $DIV .= "<label id=\"" . md5($bannedEmail["banned_email"]) . "\"><input type=\"checkbox\" name=\"removeemail[]\" value=\"" . $bannedEmail["banned_email"] . "\" /> " . $bannedEmail["banned_email"] . "</label>";
        }
        if( $submitButtons )
        {
            $DIV .= "<div class=\"submitPadding\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("dashboard_options_emailban_delete") . "\" /> </div>";
        }

    }
    else
    {
        $DIV .= get_phrase("dashboard_options_emailban_no_email");
    }

    $DIV .= "</div>";
    return $DIV;
}

function getbannedcountries($submitButtons = true)
{
    global $TSUE;
    $DIV = "<div id=\"bannedCountries\">";
    $aaaadp = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_ban_country ORDER BY 'country'");
    if( $TSUE["TSUE_Database"]->num_rows($aaaadp) )
    {
        while( $aaaaok = $TSUE["TSUE_Database"]->fetch_assoc($aaaadp) )
        {
            $DIV .= "<label id=\"" . md5($aaaaok["country"]) . "\"><input type=\"checkbox\" name=\"removecountry[]\" value=\"" . $aaaaok["country"] . "\" /> " . $aaaaok["country"] . "</label>";
        }
        if( $submitButtons )
        {
            $DIV .= "<div class=\"submitPadding\"><input type=\"submit\" class=\"submit\" value=\"" . get_phrase("delete_selected_countries") . "\" /> </div>";
        }

    }
    else
    {
        $DIV .= get_phrase("no_countries_banned");
    }

    $DIV .= "</div>";
    return $DIV;
}

function aaaaau()
{
    global $TSUE;
    $formContents = "<div id=\"buildCensoringHTML\">";
    $inputbox = inputbox("censoring_censor_character", getsetting("censor_cache", "censoring_censor_character"), "text texttiny");
    $formContents .= aaaaan(get_phrase("dashboard_options_censoring_censor_character"), $inputbox, get_phrase("dashboard_options_censoring_censor_character_alt"));
    $formContents .= aaaaan(get_phrase("dashboard_options_censoring_words_to_censor"), aaaaol(), get_phrase("dashboard_options_censoring_words_to_censor_alt"));
    $formContents .= "</div>";
    return $formContents;
}

function aaaaom($censorWords = array(  ))
{
    global $TSUE;
    static $censorCount = 0;
    $inputBox = "\r\n\t<div class=\"comboBox\">\r\n\t\t<label>" . get_phrase("dashboard_options_censoring_word_or_phrase") . " <input name=\"options[censorWords][" . $censorCount . "][word]\" value=\"" . ((isset($censorWords["word"]) ? $censorWords["word"] : "")) . "\" type=\"text\" class=\"text texttiny\" /></label>\r\n\t</div>\r\n\t<div class=\"comboBox\">\r\n\t\t<label>" . get_phrase("dashboard_options_censoring_replacement") . " <input name=\"options[censorWords][" . $censorCount . "][replace]\" value=\"" . ((isset($censorWords["replace"]) ? $censorWords["replace"] : "")) . "\" type=\"text\" class=\"text texttiny\" /></label>\r\n\t</div>\r\n\t<div class=\"comboBox\">\r\n\t\t<label>" . get_phrase("dashboard_options_censoring_match_exact_word") . " <input name=\"options[censorWords][" . $censorCount . "][exact]\" value=\"1\"" . ((isset($censorWords["exact"]) && $censorWords["exact"] == 1 ? " checked=\"checked\"" : "")) . " type=\"checkbox\" /></label>\r\n\t</div>\r\n\t<div class=\"clear\"></div>";
    $censorCount++;
    return $inputBox;
}

function aaaaol()
{
    global $TSUE;
    $censorCache = array(  );
    $DIV = "<div id=\"censoredWords\">";
    if( $TSUE["TSUE_Settings"]->settings["censor_cache"] )
    {
        if( !empty($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["exact"]) )
        {
            foreach( $TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["exact"] as $word => $replace )
            {
                $DIV .= aaaaom(array( "word" => $word, "replace" => (is_string($replace) ? $replace : ""), "exact" => 1 ));
            }
        }

        if( !empty($TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["any"]) )
        {
            foreach( $TSUE["TSUE_Settings"]->settings["censor_cache"]["censorWords"]["any"] as $word => $replace )
            {
                $DIV .= aaaaom(array( "word" => $word, "replace" => (is_string($replace) ? $replace : "") ));
            }
        }

    }

    $DIV .= aaaaom();
    $DIV .= "</div>";
    return $DIV;
}

function aaaaat(array &$words)
{
    $output = array( "exact" => array(  ), "any" => array(  ) );
    foreach( $words as $word )
    {
        if( !isset($word["word"]) || strval($word["word"]) === "" )
        {
            continue;
        }

        $writePosition = (!empty($word["exact"]) ? "exact" : "any");
        if( isset($word["replace"]) && strval($word["replace"]) !== "" )
        {
            $output[$writePosition][strval($word["word"])] = strval($word["replace"]);
        }
        else
        {
            $output[$writePosition][strval($word["word"])] = strlen($word["word"]);
        }

    }
    if( !$output["exact"] )
    {
        unset($output["exact"]);
    }

    if( !$output["any"] )
    {
        unset($output["any"]);
    }

    $words = $output;
    return true;
}

function aaaabn($formContents = "", $hiddenInputBoxes = array(  ), $action = "", $script = "", $id = "simpleForm")
{
    $aaaaam = "";
    if( !empty($hiddenInputBoxes) )
    {
        foreach( $hiddenInputBoxes as $name => $value )
        {
            $aaaaam .= "<input type=\"hidden\" name=\"" . $name . "\" value=\"" . $value . "\" />";
        }
    }

    $HTML = "\r\n\t<form method=\"post\" action=\"" . $action . "\" id=\"" . $id . "\" enctype=\"multipart/form-data\">\r\n\t\t" . $aaaaam . "\r\n\t\t" . $formContents . "\r\n\t</form>" . $script;
    return $HTML;
}

function aaaabg($formContents = "", $hiddenInputBoxes = array(  ), $extra = "", $buttonPhrase = "button_save", $Scirpt = "")
{
    $aaaaam = "";
    if( !empty($hiddenInputBoxes) )
    {
        foreach( $hiddenInputBoxes as $name => $value )
        {
            $aaaaam .= "<input type=\"hidden\" name=\"" . $name . "\" value=\"" . $value . "\" />";
        }
    }

    $HTML = "\r\n\t<form method=\"post\" action=\"\" id=\"overlay_form\" enctype=\"multipart/form-data\">\r\n\t\t<input type=\"hidden\" name=\"save_options\" value=\"yes\" />\r\n\t\t" . $aaaaam . "\r\n\t\t" . $formContents . "\r\n\t\t<div>\r\n            " . aaaabm(get_phrase($buttonPhrase), get_phrase("button_reset")) . "\r\n\t\t\t" . $extra . "\r\n\t\t</div>\r\n\t</form>" . $Scirpt;
    return $HTML;
}

function aaaaan($optionTitle, $formOptions, $spanContent = "", $divID = "optionsInOverlay", $class = "", $spanRight = "", $rel = "", $nextToFormOptions = "", $Scirpt = "")
{
    $aaaaon = preg_replace("#[^a-z]#", "", strtolower($optionTitle));
    $HTML = "\r\n\t<div id=\"" . $divID . "\"" . (($class ? " class=\"" . $class . "\"" : "")) . (($rel ? " rel=\"" . $rel . "\"" : "")) . ">\r\n\t\t<div class=\"optionTitle\" id=\"" . $aaaaon . "\">" . (($spanRight ? "\r\n\t\t\t<div class=\"floatRight\">" . $spanRight . "</div>" : "")) . "\r\n\t\t\t" . $optionTitle . "\r\n\t\t\t<div class=\"clear\"></div>\r\n\t\t</div>\r\n\t\t" . $formOptions . $nextToFormOptions . "\r\n\t\t<div class=\"spanContent\">" . $spanContent . "</div>\r\n\t</div>" . $Scirpt;
    return $HTML;
}

function aaaabm($submitValue, $resetValue = "")
{
    return "\r\n    <input type=\"submit\" class=\"submit\" value=\"" . $submitValue . "\" />\r\n    " . (($resetValue ? "<input type=\"reset\" class=\"submit\" value=\"" . $resetValue . "\" />" : ""));
}

function aaaaap()
{
    global $TSUE;
    $Themes = $TSUE["TSUE_Database"]->query("SELECT themeid, themename FROM tsue_themes WHERE active = 1");
    $aaaadr = array(  );
    while( $Theme = $TSUE["TSUE_Database"]->fetch_assoc($Themes) )
    {
        $aaaadr += array( $Theme["themeid"] => ucfirst($Theme["themename"]) );
    }
    return $aaaadr;
}

function aaaaaq()
{
    global $TSUE;
    $Languages = $TSUE["TSUE_Database"]->query("SELECT languageid, title FROM tsue_languages WHERE active = 1");
    $languageCache = array(  );
    while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) )
    {
        $languageCache += array( $Language["languageid"] => ucfirst($Language["title"]) );
    }
    return $languageCache;
}

function getcountryflag($flag)
{
    global $TSUE;
    $aaaaoo = DATAPATH . "countryFlags/";
    foreach( array( "png", "jpg", "gif", "jpeg" ) as $ext )
    {
        if( is_file($aaaaoo . $flag . "." . $ext) )
        {
            return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/countryFlags/" . $flag . "." . $ext . "\" alt=\"" . $flag . "\" title=\"" . $flag . "\" border=\"0\" />";
        }

    }
}

function zip($source, $destination)
{
    if( !extension_loaded("zip") || !file_exists($source) )
    {
        return false;
    }

    $zip = new ZipArchive();
    if( !$zip->open($destination, ZIPARCHIVE::CREATE) )
    {
        return false;
    }

    $source = str_replace("\\", "/", realpath($source));
    if( is_dir($source) === true )
    {
        $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);
        foreach( $files as $file )
        {
            $file = str_replace("\\", "/", $file);
            if( in_array(substr($file, strrpos($file, "/") + 1), array( ".", ".." )) )
            {
                continue;
            }

            if( is_dir($file) === true )
            {
                $zip->addEmptyDir(str_replace($source . "/", "", $file . "/"));
            }
            else
            {
                if( is_file($file) === true )
                {
                    $zip->addFromString(str_replace($source . "/", "", $file), file_get_contents($file));
                }

            }

        }
    }
    else
    {
        if( is_file($source) === true )
        {
            $zip->addFromString(basename($source), file_get_contents($source));
        }

    }

    return $zip->close();
}

function aaaabd($filename = "", $runALL = false)
{
    global $TSUE;
    $TSUE["TSUE_Database"]->update("tsue_cron", array( "nextrun" => TIMENOW ), ($runALL ? "" : "filename = " . $TSUE["TSUE_Database"]->escape($filename)));
}

function copy_directory($source, $destination)
{
    if( is_dir($source) )
    {
        if( !is_dir($destination) )
        {
            mkdir($destination);
        }

        $directory = dir($source);
        while( false !== ($readdirectory = $directory->read()) )
        {
            if( $readdirectory == "." || $readdirectory == ".." )
            {
                continue;
            }

            $PathDir = $source . "/" . $readdirectory;
            if( is_dir($PathDir) )
            {
                copy_directory($PathDir, $destination . "/" . $readdirectory);
                continue;
            }

            copy($PathDir, $destination . "/" . $readdirectory);
        }
        $directory->close();
    }
    else
    {
        copy($source, $destination);
    }

    return true;
}

function rrmdir($dir)
{
    foreach( glob($dir . "/*") as $file )
    {
        if( is_dir($file) )
        {
            rrmdir($file);
        }
        else
        {
            unlink($file);
        }

    }
    rmdir($dir);
}

function aaaahq($string = "")
{
    return str_replace(array( ">", "<" ), array( "&gt;", "&lt;" ), $string);
}

function aaaaho($string = "")
{
    return str_replace(array( "&gt;", "&lt;" ), array( ">", "<" ), $string);
}

function listmutes($muted)
{
    $mutes = array(  );
    if( strstr($muted, "1") !== false )
    {
        $mutes[] = get_phrase("muted_in_comments");
    }

    if( strstr($muted, "2") !== false )
    {
        $mutes[] = get_phrase("muted_in_forums");
    }

    if( strstr($muted, "3") !== false )
    {
        $mutes[] = get_phrase("muted_in_shoutbox");
    }

    if( strstr($muted, "4") !== false )
    {
        $mutes[] = get_phrase("muted_in_pm");
    }

    return implode(" - ", $mutes);
}

function get_member_avatar($memberid = 0, $gender = "", $size = "s")
{
    global $TSUE;
    $ValidAvatarExtensions = array( "jpg", "gif", "png", "jpeg" );
    foreach( $ValidAvatarExtensions as $AvatarExtension )
    {
        if( is_file(DATAPATH . "avatars/" . $size . "/" . $memberid . "." . $AvatarExtension) )
        {
            return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/avatars/" . $size . "/" . $memberid . "." . $AvatarExtension . "?" . TIMENOW;
        }

    }
    $themeName = aaaaff();
    if( $gender && file_exists(ROOTPATH . "styles/" . $themeName . "/avatars/avatar_" . $gender . "_" . $size . ".png") )
    {
        return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $themeName . "/avatars/avatar_" . $gender . "_" . $size . ".png?" . TIMENOW;
    }

    return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/styles/" . $themeName . "/avatars/avatar_" . $size . ".png?" . TIMENOW;
}

function get_languages()
{
    global $TSUE;
    $Languages = $TSUE["TSUE_Database"]->query("SELECT languageid, title FROM tsue_languages WHERE active = 1");
    $Selectbox = "<select name=\"languageid\" class=\"selectbox\">";
    while( $Language = $TSUE["TSUE_Database"]->fetch_assoc($Languages) )
    {
        $Selectbox .= "<option value=\"" . $Language["languageid"] . "\">" . ucfirst($Language["title"]) . "</option>";
    }
    $Selectbox .= "</select>";
    return $Selectbox;
}

function aaaabk($name, $checkedArray = array(  ))
{
    global $TSUE;
    static $id = 1;
    $List = "\r\n\t<ul id=\"sortable_" . $id . "\" class=\"ui-sorttable\">";
    $count = 0;
    if( !empty($checkedArray) && $checkedArray["0"] != "" )
    {
        $aaaamt = implode(",", array_map(array( $TSUE["TSUE_Database"], "escape" ), $checkedArray));
        $Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, name FROM tsue_plugins WHERE pluginid IN (" . $aaaamt . ") ORDER BY FIELD(pluginid," . $aaaamt . ")");
        $List .= createpluginlist($Plugins, $name, $checkedArray);
        $aaaaop = $TSUE["TSUE_Database"]->query("SELECT pluginid, name FROM tsue_plugins WHERE pluginid NOT IN (" . $aaaamt . ")");
        $List .= createpluginlist($aaaaop, $name, $checkedArray);
    }
    else
    {
        $Plugins = $TSUE["TSUE_Database"]->query("SELECT pluginid, name FROM tsue_plugins");
        $List .= createpluginlist($Plugins, $name, $checkedArray);
    }

    $List .= "</ul>\r\n\t<div style=\"clear: both;\"></div>\r\n    " . aaaaoe("sortable_" . $id, "li");
    $id++;
    return $List;
}

function createpluginlist($Plugins, $name, $checkedArray)
{
    global $TSUE;
    $List = "";
    while( $Plugin = $TSUE["TSUE_Database"]->fetch_assoc($Plugins) )
    {
        $List .= "\r\n        <li class=\"ui-state-default\">\r\n            <label><input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $Plugin["pluginid"] . "\"" . ((in_array($Plugin["pluginid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $Plugin["name"] . "</label>\r\n        </li>";
    }
    return $List;
}

function aaaabi($name, $checked = 0, $pageID = 0)
{
    global $TSUE;
    $List = "\r\n    <select name=\"" . $name . "\" class=\"select\">\r\n        <option value=\"0\"></option>";
    $Pages = $TSUE["TSUE_Database"]->query("SELECT pageid, name FROM tsue_pages WHERE pageid != " . $pageID . " AND parentid=0 ORDER BY sort ASC");
    while( $Page = $TSUE["TSUE_Database"]->fetch_assoc($Pages) )
    {
        $List .= "\r\n        <option value=\"" . $Page["pageid"] . "\"" . (($checked == $Page["pageid"] ? " selected=\"selected\"" : "")) . ">" . $Page["name"] . "</option>";
    }
    $List .= "\r\n    </select>";
    return $List;
}

function torrentcategoriesinbutboxes($name, $type = "radio", $selectedCategories = array(  ))
{
    global $TSUE;
    $aaaact = array(  );
    $aaaafx = array(  );
    $Categories = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_torrents_categories ORDER BY sort ASC");
    while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
    {
        if( $Category["pid"] )
        {
            $aaaact[$Category["pid"]][] = $Category;
        }
        else
        {
            $aaaafx[] = $Category;
        }

    }
    $torrentCategories = "\r\n\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t<tr>";
    $Count = 0;
    $maxPerRow = 4;
    foreach( $aaaafx as $Category )
    {
        if( $Count % $maxPerRow == 0 )
        {
            $torrentCategories .= "\r\n\t\t\t</tr><tr>";
        }

        $Count++;
        $subCategoryList = "";
        if( isset($aaaact[$Category["cid"]]) )
        {
            foreach( $aaaact[$Category["cid"]] as $subCategory )
            {
                $checked = "";
                if( isset($_POST[$name][$subCategory["cid"]]) || in_array($subCategory["cid"], $selectedCategories) )
                {
                    $checked = " checked=\"checked\"";
                }

                $subCategoryList .= "\r\n\t\t\t\t<div style=\"margin-left: 20px;\" class=\"forumSub\">\r\n\t\t\t\t\t<label><input type=\"" . $type . "\" name=\"" . $name . "\" value=\"" . $subCategory["cid"] . "\"" . $checked . " /> " . $subCategory["cname"] . "</label>\r\n\t\t\t\t</div>";
            }
        }

        $checked = "";
        if( isset($_POST[$name][$Category["cid"]]) || in_array($Category["cid"], $selectedCategories) )
        {
            $checked = " checked=\"checked\"";
        }

        $torrentCategories .= "\r\n\t\t\t<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">\r\n\t\t\t\t<label><input type=\"" . $type . "\" name=\"" . $name . "\" value=\"" . $Category["cid"] . "\"" . $checked . " /> " . $Category["cname"] . "</label>\r\n\t\t\t\t" . $subCategoryList . "\r\n\t\t\t</td>";
    }
    $torrentCategories .= "\r\n\t\t</tr>\r\n\t</table>";
    return $torrentCategories;
}

function aaaacq($name, $checked = 0, $cid = 0)
{
    global $TSUE;
    $List = "\r\n    <select name=\"" . $name . "\" class=\"select\">\r\n        <option value=\"0\"></option>";
    $Categories = $TSUE["TSUE_Database"]->query("SELECT cid, cname FROM tsue_torrents_categories WHERE cid != " . $cid . " AND pid = 0 ORDER BY sort ASC");
    while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
    {
        $List .= "\r\n        <option value=\"" . $Category["cid"] . "\"" . (($checked == $Category["cid"] ? " selected=\"selected\"" : "")) . ">" . $Category["cname"] . "</option>";
    }
    $List .= "\r\n    </select>";
    return $List;
}

function aaaaax($name, $checked = 0)
{
    global $TSUE;
    $List = "\r\n    <select name=\"" . $name . "\" class=\"select\">\r\n        <option value=\"0\"></option>";
    $Categories = $TSUE["TSUE_Database"]->query("SELECT cid, cname FROM tsue_torrents_categories ORDER BY pid ASC, sort ASC");
    while( $Category = $TSUE["TSUE_Database"]->fetch_assoc($Categories) )
    {
        $List .= "\r\n        <option value=\"" . $Category["cid"] . "\"" . (($checked == $Category["cid"] ? " selected=\"selected\"" : "")) . ">" . $Category["cname"] . "</option>";
    }
    $List .= "\r\n    </select>";
    return $List;
}

function aaaagv($name, $checked = 0, $forumID = 0)
{
    global $TSUE;
    $forumCategories = $subForums = array(  );
    $List = "\r\n    <select name=\"" . $name . "\" class=\"select\">\r\n        <option value=\"-1\"></option>";
    $Forums = $TSUE["TSUE_Database"]->query("SELECT forumid, parentid, title FROM tsue_forums WHERE forumid != " . $forumID . " ORDER BY displayorder ASC");
    if( $TSUE["TSUE_Database"]->num_rows($Forums) )
    {
        while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) )
        {
            if( $Forum["parentid"] == -1 )
            {
                $forumCategories[] = $Forum;
            }
            else
            {
                $subForums[$Forum["parentid"]][] = $Forum;
            }

        }
        foreach( $forumCategories as $forumCategory )
        {
            $List .= "\r\n\t\t\t\t<option value=\"" . $forumCategory["forumid"] . "\"" . (($checked == $forumCategory["forumid"] ? " selected=\"selected\"" : "")) . ">" . $forumCategory["title"] . "</option>";
            if( isset($subForums[$forumCategory["forumid"]]) )
            {
                foreach( $subForums[$forumCategory["forumid"]] as $forum )
                {
                    $List .= "\r\n\t\t\t\t\t\t<option value=\"" . $forum["forumid"] . "\"" . (($checked == $forum["forumid"] ? " selected=\"selected\"" : "")) . ">&nbsp;&nbsp;|--" . $forum["title"] . "</option>";
                }
            }

        }
    }

    $List .= "\r\n    </select>";
    return $List;
}

function aaaakp($skip = 0)
{
    global $TSUE;
    $cache = array(  );
    $membergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid FROM tsue_membergroups");
    while( $m = $TSUE["TSUE_Database"]->fetch_assoc($membergroups) )
    {
        if( $m["membergroupid"] != $skip )
        {
            $cache[] = $m["membergroupid"];
        }

    }
    return $cache;
}

function aaaabf($name, $selected = 0, $emptyOption = false, $emptyText = "")
{
    global $TSUE;
    $List = "<select name=\"" . $name . "\" class=\"select\">";
    if( $emptyOption )
    {
        $List .= "<option value=\"\"" . (($selected == 0 ? " selected=\"selected\"" : "")) . ">" . $emptyText . "</option>";
    }

    $memberGroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname FROM tsue_membergroups");
    while( $memberGroup = $TSUE["TSUE_Database"]->fetch_assoc($memberGroups) )
    {
        $List .= "\r\n        <option value=\"" . $memberGroup["membergroupid"] . "\"" . (($selected == $memberGroup["membergroupid"] ? " selected=\"selected\"" : "")) . ">" . $memberGroup["groupname"] . "</option>";
    }
    $List .= "</select>";
    return $List;
}

function aaaaaw($name, $checkedArray = array(  ), $maxPerRow = 4)
{
    global $TSUE;
    $List = "\r\n    <table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n        <tr>";
    $count = 0;
    for( $Usergroups = $TSUE["TSUE_Database"]->query("SELECT membergroupid, groupname, groupstyle FROM tsue_membergroups"); $Usergroup = $TSUE["TSUE_Database"]->fetch_assoc($Usergroups); $count++ )
    {
        if( $count % $maxPerRow == 0 )
        {
            $List .= "</tr><tr>";
        }

        $groupname = getmembername($Usergroup["groupname"], $Usergroup["groupstyle"]);
        $List .= "\r\n        <td>\r\n            <label>\r\n                <input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $Usergroup["membergroupid"] . "\"" . ((is_array($checkedArray) && in_array($Usergroup["membergroupid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $groupname . "\r\n            </label>\r\n        </td>";
    }
    $List .= "\r\n        </tr>\r\n    </table>";
    return $List;
}

function aaaabc($name, $checkedArray = array(  ), $maxPerRow = 4)
{
    global $TSUE;
    $Forums = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_forums ORDER BY displayorder ASC");
    if( !$TSUE["TSUE_Database"]->num_rows($Forums) )
    {
        return get_phrase("no_results_found");
    }

    $forumCategories = $subForums = array(  );
    while( $Forum = $TSUE["TSUE_Database"]->fetch_assoc($Forums) )
    {
        if( $Forum["parentid"] == -1 )
        {
            $forumCategories[] = $Forum;
        }
        else
        {
            $subForums[$Forum["parentid"]][] = $Forum;
        }

    }
    $List = "\r\n\t\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\r\n\t\t\t<tr>";
    $Count = 0;
    foreach( $forumCategories as $Forum )
    {
        if( $Count % $maxPerRow == 0 )
        {
            $List .= "\r\n\t\t\t\t</tr><tr>";
        }

        $Count++;
        $aaaaoq = "";
        if( isset($subForums[$Forum["forumid"]]) )
        {
            foreach( $subForums[$Forum["forumid"]] as $subForum )
            {
                $aaaaoq .= aaaaor($subForum, $name, $checkedArray);
                if( isset($subForums[$subForum["forumid"]]) )
                {
                    foreach( $subForums[$subForum["forumid"]] as $deepSubForum )
                    {
                        $aaaaoq .= aaaaos($deepSubForum, $name, $checkedArray);
                    }
                }

            }
        }

        $List .= "\r\n\t\t\t\t<td class=\"forumMain tdTop\" style=\"vertical-align: top;\">\r\n\t\t\t\t\t<label>\r\n\t\t\t\t\t\t<input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $Forum["forumid"] . "\"" . ((is_array($checkedArray) && in_array($Forum["forumid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $Forum["title"] . "\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t" . $aaaaoq . "\r\n\t\t\t\t</td>";
    }
    $List .= "\r\n\t\t\t</tr>\r\n\t\t</table>";
    return $List;
}

function aaaaor($subForum, $name, $checkedArray = array(  ))
{
    $List = "\r\n\t<div style=\"margin-left: 20px;\" class=\"forumSub\">\r\n\t\t<label>\r\n\t\t\t<input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $subForum["forumid"] . "\"" . ((is_array($checkedArray) && in_array($subForum["forumid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $subForum["title"] . "\r\n\t\t</label>\r\n\t</div>";
    return $List;
}

function aaaaos($deepSubForum, $name, $checkedArray = array(  ))
{
    $List = "\r\n\t<div style=\"margin-left: 40px;\" class=\"forumDeepSub\">\r\n\t\t<label>\r\n\t\t\t<input type=\"checkbox\" name=\"" . $name . "\" value=\"" . $deepSubForum["forumid"] . "\"" . ((is_array($checkedArray) && in_array($deepSubForum["forumid"], $checkedArray) ? " checked=\"checked\"" : "")) . " /> " . $deepSubForum["title"] . "\r\n\t\t</label>\r\n\t</div>";
    return $List;
}

function currencycodes()
{
    global $TSUE;
    $optionArray = array(  );
    $Codes = $TSUE["TSUE_Database"]->query("SELECT * FROM tsue_currency_codes ORDER BY code ASC");
    while( $Code = $TSUE["TSUE_Database"]->fetch_assoc($Codes) )
    {
        $optionArray[$Code["code"]] = $Code["code"] . " - " . $Code["currency"];
    }
    return $optionArray;
}

function textarea($name, $value, $useTinymce = false, $class = "textarea")
{
    $HTML = "\r\n\t<textarea name=\"" . $name . "\" id=\"" . (($useTinymce ? "tinyMCE" : "ta_" . $name)) . "\" class=\"" . $class . "\">" . (($useTinymce ? $value : html_clean($value))) . "</textarea>";
    return $HTML;
}

function aaaaay($name, $value, $useTinymce = false, $class = "textarea")
{
    $HTML = "\r\n\t<textarea name=\"" . $name . "\" id=\"" . (($useTinymce ? "tinyMCEAjax" : "ta_" . $name)) . "\" class=\"" . $class . "\">" . (($useTinymce ? $value : html_clean($value))) . "</textarea>";
    return $HTML;
}

function radioyesno($name, $value, $title = array(  ), $REL = "")
{
    $HTML = "\r\n\t<label for=\"ynrb_" . $name . "_1\">\r\n\t\t<input type=\"radio\" name=\"" . $name . "\" id=\"ynrb_" . $name . "_1\"" . (($REL ? " rel=\"" . $REL . "\"" : "")) . " value=\"1\"" . (($value == 1 ? " checked=\"checked\"" : "")) . " />  " . ((isset($title["1"]) ? $title["1"] : get_phrase("option_yes"))) . "\r\n\t</label>\r\n\t<label for=\"ynrb_" . $name . "_0\">\r\n\t\t<input type=\"radio\" name=\"" . $name . "\" id=\"ynrb_" . $name . "_0\"" . (($REL ? " rel=\"" . $REL . "\"" : "")) . " value=\"0\"" . (($value == 0 ? " checked=\"checked\"" : "")) . " />  " . ((isset($title["0"]) ? $title["0"] : get_phrase("option_no"))) . "\r\n\t</label>";
    return $HTML;
}

function aaaakz($name, $value, $Checked, $title, $REL = "")
{
    $HTML = "\r\n\t<label for=\"ynrb_" . $name . "_" . $value . "\">\r\n\t\t<input type=\"radio\" name=\"" . $name . "\" id=\"ynrb_" . $name . "_" . $value . "\"" . (($REL ? " rel=\"" . $REL . "\"" : "")) . " value=\"" . $value . "\"" . (($Checked ? " checked=\"checked\"" : "")) . " /> " . $title . "\r\n\t</label>";
    return $HTML;
}

function inputbox($name, $value, $class = "text", $hint = "", $isDate = false, $isAutoComplete = false, $extra = "", $autoCompleteTag = "autoComplete")
{
    $HTML = "\r\n\t<input type=\"" . (($isDate ? "date" : "text")) . "\" class=\"" . $class . "\" name=\"" . $name . "\" id=\"" . (($isAutoComplete ? $autoCompleteTag : "ib_" . $name)) . "\" value=\"" . $value . "\"" . (($hint ? " rel=\"initTipsy\" title=\"" . $hint . "\"" : "")) . " /> " . $extra;
    return $HTML;
}

function aaaacs($name, $hint = "")
{
    return (DEMO_MODE ? "--File upload is disabled in demo mode--" : "<input type=\"file\" name=\"" . $name . "\" id=\"ib_" . $name . "\" />" . (($hint ? " <span class=\"smallPassiveText\">" . $hint . "</span>" : "")));
}

function selectbox($name, $value, $optionArray = array(  ), $class = "select", $script = "", $strtolowerCheck = false)
{
    $options = "";
    foreach( $optionArray as $optionValue => $optionTitle )
    {
        $options .= "<option value=\"" . $optionValue . "\"" . (($optionValue == $value ? " selected=\"selected\"" : ($strtolowerCheck ? (strtolower($optionValue) == strtolower($value) ? " selected=\"selected\"" : "") : ""))) . ">" . $optionTitle . "</option>";
    }
    $HTML = "\r\n\t<select name=\"" . $name . "\" id=\"" . $name . "\" class=\"" . $class . "\">\r\n\t\t" . $options . "\r\n\t</select>" . $script;
    return $HTML;
}

function createtable($headMessage, $tableContents, $TDCount = 0, $spanRight = "")
{
    $TABLE = "\r\n\t<table border=\"0\" cellpadding=\"0\" width=\"100%\" cellspacing=\"0\" class=\"table\">\r\n\t\t<tbody>\r\n\t\t\t<tr>\r\n\t\t\t\t<td class=\"tableHeader\" colspan=\"" . $TDCount . "\">\r\n\t\t\t\t\t" . (($spanRight ? "<span class=\"floatRight\">" . $spanRight . "</span>" : "")) . $headMessage . "\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t" . $tableContents . "\r\n\t\t</tbody>\r\n\t</table>";
    return $TABLE;
}

function aaaaag($contentArray, $trClass = "tableContentTR", $tdClass = "tableContentTD")
{
    $TABLE = "\r\n\t\t\t<tr class=\"" . $trClass . "\">";
    foreach( $contentArray as $Content )
    {
        $TABLE .= "\r\n\t\t\t\t<td class=\"" . $tdClass . "\"" . ((isset($Content["width"]) && $Content["width"] ? " width=\"" . $Content["width"] . "\"" : "")) . ((isset($Content["colspan"]) ? " colspan=\"" . $Content["colspan"] . "\"" : "")) . ((isset($Content["align"]) ? " align=\"" . $Content["align"] . "\"" : "")) . ((isset($Content["valign"]) ? " valign=\"" . $Content["valign"] . "\"" : "")) . ((isset($Content["extra"]) ? $Content["extra"] : "")) . ">" . ((isset($Content["text"]) ? $Content["text"] : "")) . "</td>";
    }
    $TABLE .= "\r\n\t\t\t</tr>";
    return $TABLE;
}

function getimage($Image, $alt = "", $class = "", $width = "", $height = "")
{
    global $TSUE;
    return "<img src=\"./images/" . $Image . "\" alt=\"" . $alt . "\" title=\"" . $alt . "\" border=\"0\" class=\"" . $class . "\"" . (($width ? " width=\"" . $width . "\"" : "")) . (($height ? " height=\"" . $height . "\"" : "")) . " />";
}

function aaaaky($title)
{
    return getimage("status/help.png", $title, "helpImage");
}

function aaaaaf($Query, $Text, $Title = "")
{
    global $TSUE;
    return "<a href=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/" . $Query . "\" target=\"_blank\"" . (($Title ? " title=\"" . $Title . "\"" : "")) . ">" . $Text . "</a>";
}

function aaaaae($Queries)
{
    global $TSUE;
    $Links = "";
    $Page = intval(getvar("page"));
    foreach( $Queries as $Query => $Text )
    {
        $aaaaot = (isset($Text["confirmation"]) && $Text["confirmation"] ? " onclick=\"return TSUEAdmin.confirmAction('" . str_replace("'", "\\'", $Text["confirmation"]) . "');\"" : "");
        $linkClass = (isset($Text["class"]) ? " class=\"" . $Text["class"] . "\"" : "");
        $REL = (isset($Text["rel"]) ? " rel=\"" . $Text["rel"] . "\"" : "");
        $Links .= "<a href=\"" . ((strstr($Query, "?action") !== false ? $Query : "?action=" . $TSUE["action"] . (($TSUE["do"] ? "&amp;do=" . $TSUE["do"] : "")) . "&amp;" . $Query . (($Page ? "&amp;page=" . $Page : "")))) . "\" target=\"" . ((isset($Text["target"]) ? $Text["target"] : "_self")) . "\"" . $aaaaot . $linkClass . $REL . ">" . $Text["phrase"] . "</a>";
    }
    return $Links;
}

function loadstyle($style)
{
    global $TSUE;
    $find = array( "{website_url}", "{themename}" );
    $replace = array( $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"], aaaaff() );
    $Row = $TSUE["TSUE_Database"]->query_result("SELECT css FROM tsue_styles WHERE themeid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"]) . " AND stylename = " . $TSUE["TSUE_Database"]->escape($style));
    if( $Row )
    {
        return "\r\n\t\t<style type=\"text/css\">\r\n\t\t\t" . str_replace($find, $replace, $Row["css"]) . "\r\n\t\t</style>";
    }

}

function friendlypeerid($peer_id = "")
{
    $peer_id = trim($peer_id, "-");
    $peer_id = preg_replace("#[^a-zA-Z0-9\\-]#", "", $peer_id);
    $peer_id = explode("-", $peer_id);
    return $peer_id["0"];
}

function pagination($total_rows = 0, $targetpage = "", $adjacents = 3, $forceItemsPerPage = false, $isArray = false, $deviceTag = "")
{
    global $TSUE;
    $perpage = ($forceItemsPerPage ? $forceItemsPerPage : $TSUE["items_perpage"]);
    if( $total_rows < 1 || $perpage < 1 )
    {
        return array( "LIMIT 0, " . $total_rows, "" );
    }

    $targetpage = "?action=" . $TSUE["action"] . "&amp;do=" . $TSUE["do"] . "&amp;" . (($targetpage ? $targetpage . "&amp;" : ""));
    $lastpage = ceil($total_rows / $perpage);
    if( $isArray )
    {
        $lastpage--;
    }

    if( $lastpage <= 1 )
    {
        return array( "LIMIT 0, " . $total_rows, "" );
    }

    $page = intval(getvar("page"));
    if( $lastpage < $page )
    {
        $page = $lastpage;
    }

    if( $page )
    {
        $start = ($page - 1) * $perpage;
    }
    else
    {
        $start = 0;
    }

    if( $page == 0 )
    {
        $page = 1;
    }

    $prev = $page - 1;
    $next = $page + 1;
    $lpm1 = $lastpage - 1;
    $pagination = "";
    if( 1 < $lastpage )
    {
        $pagination .= "<div class=\"pagination\"><ul>";
        if( 1 < $page )
        {
            $pagination .= "<li><a href=\"" . $targetpage . "page=" . $prev . $deviceTag . "\">&laquo;</a></li>";
        }

        if( $lastpage < 7 + $adjacents * 2 )
        {
            for( $counter = 1; $counter <= $lastpage; $counter++ )
            {
                if( $counter == $page )
                {
                    $pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>";
                }
                else
                {
                    $pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>";
                }

            }
        }
        else
        {
            if( 5 + $adjacents * 2 < $lastpage )
            {
                if( $page < 1 + $adjacents * 2 )
                {
                    for( $counter = 1; $counter < 4 + $adjacents * 2; $counter++ )
                    {
                        if( $counter == $page )
                        {
                            $pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>";
                        }
                        else
                        {
                            $pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>";
                        }

                    }
                    $pagination .= "<li>...</li>";
                    $pagination .= "<li><a href=\"" . $targetpage . "page=" . $lpm1 . $deviceTag . "\">" . $lpm1 . "</a></li>";
                    $pagination .= "<li><a href=\"" . $targetpage . "page=" . $lastpage . $deviceTag . "\">" . $lastpage . "</a></li>";
                }
                else
                {
                    if( $page < $lastpage - $adjacents * 2 && $adjacents * 2 < $page )
                    {
                        $pagination .= "<li><a href=\"" . $targetpage . "page=1" . $deviceTag . "\">1</a></li>";
                        $pagination .= "<li><a href=\"" . $targetpage . "page=2" . $deviceTag . "\">2</a></li>";
                        $pagination .= "<li>...</li>";
                        for( $counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++ )
                        {
                            if( $counter == $page )
                            {
                                $pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>";
                            }
                            else
                            {
                                $pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>";
                            }

                        }
                        $pagination .= "<li>...</li>";
                        $pagination .= "<li><a href=\"" . $targetpage . "page=" . $lpm1 . $deviceTag . "\">" . $lpm1 . "</a></li>";
                        $pagination .= "<li><a href=\"" . $targetpage . "page=" . $lastpage . $deviceTag . "\">" . $lastpage . "</a></li>";
                    }
                    else
                    {
                        $pagination .= "<li><a href=\"" . $targetpage . "page=1" . $deviceTag . "\">1</a></li>";
                        $pagination .= "<li><a href=\"" . $targetpage . "page=2" . $deviceTag . "\">2</a></li>";
                        $pagination .= "<li>...</li>";
                        for( $counter = $lastpage - (2 + $adjacents * 2); $counter <= $lastpage; $counter++ )
                        {
                            if( $counter == $page )
                            {
                                $pagination .= "<li class=\"active\"><a href=\"#\">" . $counter . "</a></li>";
                            }
                            else
                            {
                                $pagination .= "<li><a href=\"" . $targetpage . "page=" . $counter . $deviceTag . "\">" . $counter . "</a></li>";
                            }

                        }
                    }

                }

            }

        }

        if( $page < $counter - 1 )
        {
            $pagination .= "<li><a href=\"" . $targetpage . "page=" . $next . $deviceTag . "\">&raquo;</a></li>";
        }

        $pagination .= "<li><a href=\"" . $targetpage . "\" id=\"setGlobalPerPage\"><img src=\"./images/buttons/options.png\" alt=\"" . get_phrase("set_limit_the_number_of_items_to_show") . "\" title=\"" . get_phrase("set_limit_the_number_of_items_to_show") . "\" height=\"14\" /></a></li>";
        $script = "\r\n\t\t<script type=\"text/javascript\">\r\n\t\t\t\$(\"#setGlobalPerPage\").click(function(e)\r\n\t\t\t{\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif(\$('form[name=\"setGlobalPerPageForm\"]').length)\r\n\t\t\t\t{\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar \$ppLink = \$(this), \$targetURL = \$ppLink.attr(\"href\");\r\n\t\t\t\tif(\$targetURL)\r\n\t\t\t\t{\r\n\t\t\t\t\tTSUEAdmin.dialog('<form method=\"post\" name=\"setGlobalPerPageForm\">" . get_phrase("the_global_perpage_pagination_limit", $TSUE["items_perpage"]) . " <input type=\"text\" class=\"text textVeryTiny\" name=\"newperpage\" /> <input type=\"submit\" class=\"submit\" value=\"" . get_phrase("button_save") . "\" /></form>');\r\n\t\t\t\t\t\$('form[name=\"setGlobalPerPageForm\"]').submit(function(e)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\tvar \$newperpage = parseInt(\$('input[name=\"newperpage\"]', \$(this)).val());\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(\$newperpage)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tTSUEAdmin.setCookie(\"newperpage\", \$newperpage)\r\n\t\t\t\t\t\t\twindow.location = \$targetURL+\"&newperpage=\"+\$newperpage;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t\t</script>";
        $pagination .= "</ul></div>" . $script . "\n";
        return array( "LIMIT " . $start . ", " . $perpage, $pagination );
    }

    return array( "LIMIT 0, " . $total_rows, "" );
}

function updatesettings($settingname, $settingvalues)
{
    global $TSUE;
    $BuildQuery = array( "settingname" => $settingname, "settingvalues" => serialize($settingvalues) );
    $TSUE["TSUE_Database"]->delete("tsue_settings", "settingname = " . $TSUE["TSUE_Database"]->escape($settingname));
    $TSUE["TSUE_Database"]->insert("tsue_settings", $BuildQuery);
    $TSUE["TSUE_Settings"] = new TSUE_Settings();
}

function generate_random_string($length = 7, $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz234567890")
{
    $chars_length = strlen($chars) - 1;
    $string = $chars[rand(0, $chars_length)];
    $i = 1;
    while( $i < $length )
    {
        $r = $chars[rand(0, $chars_length)];
        if( $r != $string[$i - 1] )
        {
            $string .= $r;
        }

        $i = strlen($string);
    }
    return $string;
}

function cookie_set($name = "", $value = "", $expires = 0)
{
    global $TSUE;
    setcookie($name, $value, $expires, $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_path"], $TSUE["TSUE_Settings"]->settings["global_settings"]["cookie_domain"]);
}

function sendpm($subject, $owner_memberid, $receiver_memberid, $reply)
{
    global $TSUE;
    $BuildQuery = array( "subject" => $subject, "owner_memberid" => $owner_memberid, "receiver_memberid" => $receiver_memberid, "message_date" => TIMENOW, "is_unread" => 1, "viaAdminCP" => 1 );
    if( $TSUE["TSUE_Database"]->insert("tsue_messages_master", $BuildQuery) )
    {
        $message_id = $TSUE["TSUE_Database"]->insert_id();
        if( $message_id )
        {
            $BuildQuery = array( "message_id" => $message_id, "memberid" => $owner_memberid, "reply_date" => TIMENOW, "reply" => $reply );
            if( $TSUE["TSUE_Database"]->insert("tsue_messages_replies", $BuildQuery) )
            {
                $TSUE["TSUE_Database"]->update("tsue_members", array( "unread_messages" => array( "escape" => 0, "value" => "unread_messages + 1" ) ), "memberid = " . $TSUE["TSUE_Database"]->escape($receiver_memberid));
                return $message_id;
            }

        }

    }

    return false;
}

function sent_mail($to, $toname = "", $subject, $message, $from = "", $fromname = "", $nl2br = 1)
{
    global $TSUE;
    $from = ($from ? $from : $TSUE["TSUE_Settings"]->settings["global_settings"]["website_sendmail_from"]);
    $fromname = ($fromname ? $fromname : $TSUE["TSUE_Settings"]->settings["global_settings"]["website_title"]);
    if( $nl2br )
    {
        $message = nl2br($message);
    }

    if( $TSUE["TSUE_Settings"]->settings["global_settings"]["mail_type"] == 1 )
    {
        $TSUEMAIL = new TSUESMTP();
        $TSUEMAIL->start($to, $toname, $subject, $message, $from, $fromname);
        return $TSUEMAIL->send();
    }

    $mid = generate_random_string(32);
    $name = $_SERVER["SERVER_NAME"];
    $headers = "To: " . $toname . " <" . $to . ">" . PHP_EOL;
    $headers .= "From: " . $fromname . " <" . $from . ">" . PHP_EOL;
    $headers .= "Reply-To: " . $fromname . " <" . $from . ">" . PHP_EOL;
    $headers .= "Return-Path: " . $fromname . " <" . $from . ">" . PHP_EOL;
    $headers .= "Message-ID: <" . $mid . " thesystem@" . $name . ">" . PHP_EOL;
    $headers .= "X-Mailer: PHP v" . phpversion() . PHP_EOL;
    $headers .= "Content-Transfer-Encoding: 8bit" . PHP_EOL;
    $headers .= "X-Sender: TSUE PHP-Mailer" . PHP_EOL;
    $headers .= "MIME-Version: 1.0" . PHP_EOL;
    $headers .= "Content-type: text/html; charset=" . $TSUE["TSUE_Language"]["charset"] . PHP_EOL;
    @ini_set("sendmail_from", $from);
    return @mail($to, $subject, $message, $headers, ($TSUE["TSUE_Settings"]->settings["global_settings"]["use_f_parameter"] ? "-f " . $from : ""));
}

function alert_member($alerted_memberid, $memberid, $membername, $content_type, $content_id, $action, $Extra = 0)
{
    global $TSUE;
    $BuildQuery = array( "alerted_memberid" => $alerted_memberid, "memberid" => $memberid, "membername" => $membername, "content_type" => $content_type, "content_id" => $content_id, "action" => $action, "event_date" => TIMENOW, "extra" => $Extra );
    if( $TSUE["TSUE_Database"]->insert("tsue_member_alerts", $BuildQuery) )
    {
        $TSUE["TSUE_Database"]->query("UPDATE tsue_members SET unread_alerts = unread_alerts + 1 WHERE memberid = " . $TSUE["TSUE_Database"]->escape($alerted_memberid));
    }

}

function aaaajk($languageID)
{
    global $TSUE;
    return "<img src=\"" . $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/languageFlags/" . $languageID . ".png?p=" . TIMENOW . "\" alt=\"\" title=\"\" border=\"0\" />";
}

function downloadfile($fullPath = "", $fileName = "", $contents = "")
{
    if( headers_sent() )
    {
        exit( "Critical Error: Headers already sent!" );
    }

    if( ini_get("zlib.output_compression") )
    {
        ini_set("zlib.output_compression", "Off");
    }

    if( !$contents && !is_file($fullPath) )
    {
        exit( get_phrase("message_content_error") );
    }

    if( $fileName && $contents )
    {
        $filesize = strlen($contents);
        $extension = file_extension($fileName);
    }
    else
    {
        if( $fullPath && $fileName && file_exists($fullPath) )
        {
            $filesize = filesize($fullPath);
            $path_parts = pathinfo($fullPath);
            $extension = strtolower($path_parts["extension"]);
        }
        else
        {
            exit( get_phrase("message_content_error") );
        }

    }

    $imageTypes = array( "gif" => "image/gif", "jpg" => "image/jpeg", "jpeg" => "image/jpeg", "jpe" => "image/jpeg", "png" => "image/png" );
    if( in_array($extension, array_keys($imageTypes)) )
    {
        setheader("Content-type", $imageTypes[$extension], true);
        setdownloadfilename($fileName, true);
    }
    else
    {
        setheader("Content-type", "unknown/unknown", true);
        setdownloadfilename($fileName);
    }

    setheader("ETag", TIMENOW, true);
    setheader("Content-Length", $filesize, true);
    if( $fullPath )
    {
        readfile($fullPath);
    }
    else
    {
        echo $contents;
        exit();
    }

}

function setdownloadfilename($fileName, $inline = false)
{
    setheader("Content-Disposition", (($inline ? "inline" : "attachment")) . "; filename=\"" . str_replace("\"", "", $fileName) . "\"", true);
}

function setheader($name, $value, $replace = true)
{
    $value = str_replace(array( "\r", "\n" ), array( "\\r", "\\n" ), $value);
    header($name . ": " . $value, $replace);
}

function get_torrent_category_image($cid = "")
{
    global $TSUE;
    $ValidTorrentCategoryExtensions = array( "jpg", "gif", "png", "jpeg" );
    foreach( $ValidTorrentCategoryExtensions as $TorrentCategoryExtension )
    {
        if( is_file(DATAPATH . "torrents/category_images/" . $cid . "." . $TorrentCategoryExtension) )
        {
            return $TSUE["TSUE_Settings"]->settings["global_settings"]["website_url"] . "/data/torrents/category_images/" . $cid . "." . $TorrentCategoryExtension;
        }

    }
}

function aaaaff()
{
    global $TSUE;
    $Theme = $TSUE["TSUE_Database"]->query_result("SELECT themename FROM tsue_themes WHERE themeid = " . $TSUE["TSUE_Database"]->escape($TSUE["TSUE_Settings"]->settings["global_settings"]["d_themeid"]));
    return $Theme["themename"];
}

function member_ratio($up = 0, $down = 0, $noHTML = false)
{
    $ratio = 0;
    if( 0 < $down )
    {
        $ratio = number_format($up / $down, 2);
    }

    if( $noHTML )
    {
        return $ratio;
    }

    $aaaaou = ($ratio ? ($ratio < 1 ? "ratioBad" : "ratioGood") : "ratioNull");
    return "<span class=\"" . $aaaaou . "\">" . $ratio . "</span>";
}

function tsue_explode($pattern = ",", $subject = "")
{
    return preg_split("#[" . $pattern . "]+#", $subject, -1, PREG_SPLIT_NO_EMPTY);
}

function posttotwitter($message = "", $maxLength = 140)
{
    $consumerKey = getsetting("global_settings", "consumerKey");
    $consumerSecret = getsetting("global_settings", "consumerSecret");
    $accessToken = getsetting("global_settings", "accessToken");
    $accessTokenSecret = getsetting("global_settings", "accessTokenSecret");
    if( !$consumerKey || !$consumerSecret || !$accessToken || !$accessTokenSecret )
    {
        return errormessage(get_phrase("please_setup_twitter_api_options_first"));
    }

    $cacert = DATAPATH . "cache/cacert.pem";
    if( !file_exists($cacert) || filemtime($cacert) < TIMENOW - 86400 )
    {
        file_put_contents($cacert, file_get_contents("http://curl.haxx.se/ca/cacert.pem"));
    }

    $tmhOAuth = new tmhOAuth(array( "consumer_key" => $consumerKey, "consumer_secret" => $consumerSecret, "user_token" => $accessToken, "user_secret" => $accessTokenSecret, "curl_cainfo" => $cacert, "curl_capath" => DATAPATH . "cache/" ));
    $message = strip_tags($message);
    if( $maxLength < strlen($message) )
    {
        $message = substr($message, 0, $maxLength - 4) . " ...";
    }

    $params = array( "status" => $message );
    $response = $tmhOAuth->user_request(array( "method" => "POST", "url" => $tmhOAuth->url("1.1/statuses/update"), "params" => $params, "multipart" => false ));
    return successmessage(get_phrase("tweet_has_been_sent")) . "<div style=\"border: 1px solid #ccc; padding: 3px; overflow: auto;\"><pre>HTTP STATUS CODE: " . print_r($response, true) . "</pre></div>";
}

function _obfuscated_000D2C2C2F061A04342C40313D230A0D1B293B33250B21_($value = "")
{
    return inputbox("Poll[options][]", $value);
}


function _obfuscated_000D2909313106102D1E321B0B3E3035311A221B3E3938_($offset)
{
    return sprintf("%s%02d:%02d", (0 <= $offset ? "+" : "-"), abs($offset / 3600), abs($offset % 3600));
}

function aaaant()
{
    return array( "announceLog/", "avatars/l/", "avatars/m/", "avatars/s/", "backups/", "cache/", "countryFlags/", "downloads/files/", "downloads/previews/", "errors/", "gallery/l/", "gallery/s/", "languageFlags/", "posts/", "smilies/", "subTitles/", "torrents/auto_uploader/", "torrents/category_images/", "torrents/imdb/", "torrents/nfo/", "torrents/torrent_files/", "torrents/torrent_genres/", "torrents/torrent_images/l/", "torrents/torrent_images/m/", "torrents/torrent_images/s/" );
}

function yearselectbox()
{
    global $TSUE;
    global $setYear;
    global $chartType;
    $nowYear = convert_time(TIMENOW, "Y");
    $minYear = $nowYear - 15;
    $options = "";
    for( $i = $minYear; $i <= $nowYear; $i++ )
    {
        $options .= "<option value=\"" . $i . "\"" . (($setYear == $i ? " selected=\"selected\"" : "")) . ">" . $i . "</option>";
    }
    return "\r\n\t\t<div id=\"yearSelector\">\r\n\t\t\t<form method=\"get\" id=\"yearForm\">\r\n\t\t\t\t<select name=\"year\">\r\n\t\t\t\t\t<optgroup label=\"" . get_phrase("dashboard_cron_entries_years") . "\">\r\n\t\t\t\t\t\t" . $options . "\r\n\t\t\t\t\t</optgroup>\r\n\t\t\t\t</select>\r\n\t\t\t</form>\r\n\t\t</div>";
}

function primetimemembers($Year = 0)
{
    global $TSUE;
    $nowYear = convert_time(TIMENOW, "Y");
    if( !$Year || $nowYear < $Year )
    {
        $Year = $nowYear;
    }

    $aaaadyu = array(  );
    $Members = $TSUE["TSUE_Database"]->query("SELECT lastactivity,lastvisit FROM tsue_members ORDER BY lastactivity ASC");
    while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
    {
        $aaaadyu[] = array( "lastactivity" => ($Member["lastactivity"] ? $Member["lastactivity"] : $Member["lastvisit"]) );
    }
    $Hours = array(  );
    foreach( $aaaadyu as $Member )
    {
        $tlmhytu = convert_time($Member["lastactivity"], "Y");
        if( $Year == $tlmhytu )
        {
            $date = convert_time($Member["lastactivity"], "H");
            if( isset($Hours[$date]) )
            {
                $Hours[$date]++;
            }
            else
            {
                $Hours[$date] = 1;
            }

        }

    }
    unset($aaaadyu);
    $buildScript = "data.addColumn(\"string\", \"Time\");\r\n\t\tdata.addRows(" . count($Hours) . ");" . PHP_EOL;
    $i = 0;
    foreach( $Hours as $Hour => $Count )
    {
        if( strlen($Hour) == 1 )
        {
            $Hour = "0" . $Hour;
        }

        $Hour = $Hour . ":00";
        $buildScript .= "data.addColumn('number', '" . $Hour . "');" . PHP_EOL;
        $buildScript .= "data.setValue(" . $i . ", 0, '" . $Hour . "');" . PHP_EOL;
        $buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL;
        $i++;
    }
    unset($Hours);
    unset($i);
    return array( "buildScript" => $buildScript, "title" => get_phrase("stats_most_active"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" );
}

function primetimeregistrations($Year = 0)
{
    global $TSUE;
    $nowYear = convert_time(TIMENOW, "Y");
    if( !$Year || $nowYear < $Year )
    {
        $Year = $nowYear;
    }

    $aaaadyu = array(  );
    $Members = $TSUE["TSUE_Database"]->query("SELECT joindate FROM tsue_members ORDER BY joindate ASC");
    while( $Member = $TSUE["TSUE_Database"]->fetch_assoc($Members) )
    {
        $aaaadyu[] = array( "joindate" => $Member["joindate"] );
    }
    $Months = array(  );
    foreach( $aaaadyu as $Member )
    {
        $tvbhytu = convert_time($Member["joindate"], "Y");
        if( $Year == $tvbhytu )
        {
            $date = convert_time($Member["joindate"], "F");
            if( isset($Months[$date]) )
            {
                $Months[$date]++;
            }
            else
            {
                $Months[$date] = 1;
            }

        }

    }
    unset($aaaadyu);
    $buildScript = "data.addColumn(\"string\", \"Month\");\r\n\t\tdata.addRows(" . count($Months) . ");" . PHP_EOL;
    $i = 0;
    foreach( $Months as $Month => $Count )
    {
        $buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL;
        $buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL;
        $buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL;
        $i++;
    }
    unset($Months);
    unset($i);
    return array( "buildScript" => $buildScript, "title" => get_phrase("stats_registrations"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" );
}

function primetimethreads($Year = 0)
{
    global $TSUE;
    $nowYear = convert_time(TIMENOW, "Y");
    if( !$Year || $nowYear < $Year )
    {
        $Year = $nowYear;
    }

    $tyuhyg = array(  );
    $Threads = $TSUE["TSUE_Database"]->query("SELECT post_date  FROM tsue_forums_threads ORDER BY post_date ASC");
    while( $Thread = $TSUE["TSUE_Database"]->fetch_assoc($Threads) )
    {
        $tyuhyg[] = array( "post_date" => $Thread["post_date"] );
    }
    $Months = array(  );
    foreach( $tyuhyg as $Thread )
    {
        $postYear = convert_time($Thread["post_date"], "Y");
        if( $Year == $postYear )
        {
            $date = convert_time($Thread["post_date"], "F");
            if( isset($Months[$date]) )
            {
                $Months[$date]++;
            }
            else
            {
                $Months[$date] = 1;
            }

        }

    }
    unset($tyuhyg);
    $buildScript = "data.addColumn(\"string\", \"Month\");\r\n\t\tdata.addRows(" . count($Months) . ");" . PHP_EOL;
    $i = 0;
    foreach( $Months as $Month => $Count )
    {
        $buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL;
        $buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL;
        $buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL;
        $i++;
    }
    unset($Months);
    unset($i);
    return array( "buildScript" => $buildScript, "title" => get_phrase("stats_threads"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" );
}

function primetimeposts($Year = 0)
{
    global $TSUE;
    $nowYear = convert_time(TIMENOW, "Y");
    if( !$Year || $nowYear < $Year )
    {
        $Year = $nowYear;
    }

    $postsCache = array(  );
    $Posts = $TSUE["TSUE_Database"]->query("SELECT post_date  FROM tsue_forums_posts ORDER BY post_date ASC");
    while( $Post = $TSUE["TSUE_Database"]->fetch_assoc($Posts) )
    {
        $postsCache[] = array( "post_date" => $Post["post_date"] );
    }
    $Months = array(  );
    foreach( $postsCache as $Post )
    {
        $postYear = convert_time($Post["post_date"], "Y");
        if( $Year == $postYear )
        {
            $date = convert_time($Post["post_date"], "F");
            if( isset($Months[$date]) )
            {
                $Months[$date]++;
            }
            else
            {
                $Months[$date] = 1;
            }

        }

    }
    unset($postsCache);
    $buildScript = "data.addColumn(\"string\", \"Month\");\r\n\t\tdata.addRows(" . count($Months) . ");" . PHP_EOL;
    $i = 0;
    foreach( $Months as $Month => $Count )
    {
        $buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL;
        $buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL;
        $buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL;
        $i++;
    }
    unset($Months);
    unset($i);
    return array( "buildScript" => $buildScript, "title" => get_phrase("stats_posts"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" );
}

function primetimetorrents($Year = 0)
{
    global $TSUE;
    $nowYear = convert_time(TIMENOW, "Y");
    if( !$Year || $nowYear < $Year )
    {
        $Year = $nowYear;
    }

    $tymhygr = array(  );
    $Torrents = $TSUE["TSUE_Database"]->query("SELECT added  FROM tsue_torrents ORDER BY added ASC");
    while( $Torrent = $TSUE["TSUE_Database"]->fetch_assoc($Torrents) )
    {
        $tymhygr[] = array( "added" => $Torrent["added"] );
    }
    $Months = array(  );
    foreach( $tymhygr as $Torrent )
    {
        $tlmhygr = convert_time($Torrent["added"], "Y");
        if( $Year == $tlmhygr )
        {
            $date = convert_time($Torrent["added"], "F");
            if( isset($Months[$date]) )
            {
                $Months[$date]++;
            }
            else
            {
                $Months[$date] = 1;
            }

        }

    }
    unset($tymhygr);
    $buildScript = "data.addColumn(\"string\", \"Month\");\r\n\t\tdata.addRows(" . count($Months) . ");" . PHP_EOL;
    $i = 0;
    foreach( $Months as $Month => $Count )
    {
        $buildScript .= "data.addColumn('number', '" . $Month . "');" . PHP_EOL;
        $buildScript .= "data.setValue(" . $i . ", 0, '" . $Month . "');" . PHP_EOL;
        $buildScript .= "data.setValue(" . $i . ", 1," . $Count . ");" . PHP_EOL;
        $i++;
    }
    unset($Months);
    unset($i);
    return array( "buildScript" => $buildScript, "title" => get_phrase("stats_torrents"), "width" => "100%", "height" => "500", "top" => "10%", "legend" => "bottom" );
}

Function Calls

None

Variables

None

Stats

MD5 7bd0fe53e237dafbc09763889ad1d000
Eval Count 0
Decode Time 924 ms