<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2008 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: shoutbox_panel.php
| Author: Nick Jones (Digitanium)
+--------------------------------------------------------+
| Shout Box Mod v 1.2
| Coding From Digitanium's Shout Box
| Mod-Author: Bones - www.bikers-n-outlaws.com
| Support: No support - Get bent!
| Now XHTML Valid!
+----------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
if (!defined("IN_FUSION")) { die("Access Denied"); }

echo "<script type='text/javascript' language='JavaScript' src='".INFUSIONS."shoutbox_panel/sb_boxover.js'></script>"; 

if (file_exists(INFUSIONS."shoutbox_panel/locale/".$settings['locale'].".php")) {
	include INFUSIONS."shoutbox_panel/locale/".$settings['locale'].".php";
} else {
	include INFUSIONS."shoutbox_panel/locale/English.php";
}

$link = FUSION_SELF.(FUSION_QUERY ? "?".FUSION_QUERY : "");
$link = preg_replace("^(&|\?)s_action=(edit|delete)&shout_id=\d*^", "", $link);
$sep = stristr($link, "?") ? "&" : "?";

if (iMEMBER && (isset($_GET['s_action']) && $_GET['s_action'] == "delete") && (isset($_GET['shout_id']) && isnum($_GET['shout_id']))) {
	if ((iADMIN && checkrights("S")) || (iMEMBER && dbcount("(shout_id)", DB_SHOUTBOX, "shout_id='".$_GET['shout_id']."' AND shout_name='".$userdata['user_id']."'"))) {
		$result = dbquery("DELETE FROM ".DB_SHOUTBOX." WHERE shout_id='".$_GET['shout_id']."'".(iADMIN ? "" : " AND shout_name='".$userdata['user_id']."'"));
	}
	redirect($link);
}

function sbwrap($text) {
	
	$i = 0; $tags = 0; $chars = 0; $res = "";
	
	$str_len = strlen($text);
	
	for ($i = 0; $i < $str_len; $i++) {
		$chr = substr($text, $i, 1);
		if ($chr == "<") {
			if (substr($text, ($i + 1), 6) == "a href" || substr($text, ($i + 1), 3) == "img") {
				$chr = " ".$chr;
				$chars = 0;
			}
			$tags++;
		} elseif ($chr == "&") {
			if (substr($text, ($i + 1), 5) == "quot;") {
				$chars = $chars - 5;
			} elseif (substr($text, ($i + 1), 4) == "amp;" || substr($text, ($i + 1), 4) == "#39;" || substr($text, ($i + 1), 4) == "#92;") {
				$chars = $chars - 4;
			} elseif (substr($text, ($i + 1), 3) == "lt;" || substr($text, ($i + 1), 3) == "gt;") {
				$chars = $chars - 3;
			}
		} elseif ($chr == ">") {
			$tags--;
		} elseif ($chr == " ") {
			$chars = 0;
		} elseif (!$tags) {
			$chars++;
		}
		
		if (!$tags && $chars == 18) {
			$chr .= "<br />";
			$chars = 0;
		}
		$res .= $chr;
	}
	
	return $res;
}

opensidex($locale['global_150']);
if (iMEMBER || $settings['guestposts'] == "1") {
	include_once INCLUDES."bbcode_include.php";
	if (isset($_POST['post_shout'])) {
		$flood = false;
		if (iMEMBER) {
			$shout_name = $userdata['user_id'];
		} elseif ($settings['guestposts'] == "1") {
			$shout_name = trim(stripinput($_POST['shout_name']));
			$shout_name = preg_replace("(^[0-9]*)", "", $shout_name);
			if (isnum($shout_name)) { $shout_name = ""; }
			include_once INCLUDES."securimage/securimage.php";
			$securimage = new Securimage();
			if (!isset($_POST['sb_captcha_code']) || $securimage->check($_POST['sb_captcha_code']) == false) { redirect($link); }
		}
		$shout_message = str_replace("\n", " ", $_POST['shout_message']);
		$shout_message = preg_replace("/^(.{400}).*$/", "$1", $shout_message);
		$shout_message = trim(stripinput(censorwords($shout_message)));
		if (iMEMBER && (isset($_GET['s_action']) && $_GET['s_action'] == "edit") && (isset($_GET['shout_id']) && isnum($_GET['shout_id']))) {
			$comment_updated = false;
			if ((iADMIN && checkrights("S")) || (iMEMBER && dbcount("(shout_id)", DB_SHOUTBOX, "shout_id='".$_GET['shout_id']."' AND shout_name='".$userdata['user_id']."'"))) {
				if ($shout_message) {
					$result = dbquery("UPDATE ".DB_SHOUTBOX." SET shout_message='$shout_message' WHERE shout_id='".$_GET['shout_id']."'".(iADMIN ? "" : " AND shout_name='".$userdata['user_id']."'"));
				}
			}
			redirect($link);
		} elseif ($shout_name && $shout_message) {
			require_once INCLUDES."flood_include.php";
			if (!flood_control("shout_datestamp", DB_SHOUTBOX, "shout_ip='".USER_IP."'")) {
				$result = dbquery("INSERT INTO ".DB_SHOUTBOX." (shout_name, shout_message, shout_datestamp, shout_ip) VALUES ('$shout_name', '$shout_message', '".time()."', '".USER_IP."')"); score_positive("SHBOX");
			}
		}
		redirect($link);
	}
	if (iMEMBER && (isset($_GET['s_action']) && $_GET['s_action'] == "edit") && (isset($_GET['shout_id']) && isnum($_GET['shout_id']))) {
		$esresult = dbquery(
			"SELECT ts.*, tu.user_id, tu.user_name FROM ".DB_SHOUTBOX." ts
			LEFT JOIN ".DB_USERS." tu ON ts.shout_name=tu.user_id
			WHERE ts.shout_id='".$_GET['shout_id']."'"
		);
		if (dbrows($esresult)) {
			$esdata = dbarray($esresult);
			if ((iADMIN && checkrights("S")) || (iMEMBER && $esdata['shout_name'] == $userdata['user_id'] && isset($esdata['user_name']))) {
				if ((isset($_GET['s_action']) && $_GET['s_action'] == "edit") && (isset($_GET['shout_id']) && isnum($_GET['shout_id']))) {
					$edit_url = $sep."s_action=edit&shout_id=".$esdata['shout_id'];
				} else {
					$edit_url = "";
				}
				$shout_link = $link.$edit_url;
				$shout_message = $esdata['shout_message'];
			}
		} else {
			$shout_link = $link;
			$shout_message = "";
		}
	} else {
		$shout_link = $link;
		$shout_message = "";
	}
	echo "<div align='left'><form name='chatform' method='post' action='".$shout_link."'>\n";
	if (iGUEST) {
		echo $locale['global_151']."<br />\n";
		echo "<input type='text' name='shout_name' value='' class='textbox' maxlength='30' style='width:100%' /><br />\n";
		echo $locale['global_152']."<br />\n";
	}
	echo "<textarea name='shout_message' rows='4' cols='47' class='textbox' style='width:100%'>".$shout_message."</textarea><br />\n";
	echo display_bbcodes("150px;", "shout_message", "chatform", "smiley|b|u|url")."<input type='submit' name='post_shout' value='".$locale['global_153']."' class='buttonas' />\n";
	if (iGUEST) {
		echo $locale['global_158']."<br />\n";
		echo "<img id='sb_captcha' src='".INCLUDES."securimage/securimage_show.php' alt='' /><br />\n";
    echo "<a href='".INCLUDES."securimage/securimage_play.php'><img src='".INCLUDES."securimage/images/audio_icon.gif' alt='' class='tbl-border' style='margin-bottom:1px' /></a>\n";
    echo "<a href='#' onclick=\"document.getElementById('sb_captcha').src = '".INCLUDES."securimage/securimage_show.php?sid=' + Math.random(); return false\"><img src='".INCLUDES."securimage/images/refresh.gif' alt='' class='tbl-border' /></a>\n";
		echo $locale['global_159']."<br />\n<input type='text' name='sb_captcha_code' class='textbox' style='width:100px' />\n";
	}
	echo "</form></div>\n<br />\n";
} else {
	echo "<div style='text-align:center'>".$locale['global_154']."</div><br />\n";
}

$numrows = dbcount("(shout_id)", DB_SHOUTBOX);
$result = dbquery(
	"SELECT ts.*, tu.user_id, tu.user_name, tu.user_location, tu.user_lastvisit, tu.user_joined, tu.user_birthdate, tu.user_web, tu.user_level FROM ".DB_SHOUTBOX." ts
	LEFT JOIN ".DB_USERS." tu ON ts.shout_name=tu.user_id
	ORDER BY ts.shout_datestamp DESC LIMIT 0,".$settings['numofshouts']
);
if (dbrows($result)) {
	$i = 0;
	while ($data = dbarray($result)) {
		$titel = "cssbody=[tbl1] cssheader=[tbl2] fade=[on] fadespeed=[0.04] offsetx=[-150]";
		$headr = "<img src='".INFUSIONS."shoutbox_panel/images/profile_icon.gif' alt='' />&nbsp;&nbsp; ".$data['user_name'];
		echo "<div class='shoutboxname'>";
		if ($data['user_name']) {
			if ( $data['user_level'] >= 102 )
	        {
				$ucolor = "style='color: #FF0000'";
			}elseif ( $data['user_level'] == 101 )
	        {
				$ucolor = "style='color: #007F0E'";
			}
			echo "<a href='".BASEDIR."messages.php?msg_send=".$data['user_id']."' title=\"".$titel." header=[".$headr."] body=[".$locale['SB_PM1'].$data['user_name'].$locale['SB_PM2']."]delay=[0] fade=[on]\"><img src='".INFUSIONS."shoutbox_panel/images/pm.png' alt='' border='0' /></a>&nbsp;";
				if ($data['user_web']) {
					if (!strstr($data['user_web'], "http://")) { $urlprefix = "http://"; } else { $urlprefix = ""; }
					echo "<a href='".$urlprefix."".$data['user_web']."' target='_blank' title=\"".$titel." header=[".$headr."] body=[".$locale['SB_WEB1'].$data['user_name'].$locale['SB_WEB2']."]delay=[0] fade=[on]\"><img alt='' src='".INFUSIONS."shoutbox_panel/images/w3.png' border='0' /></a> ";
				}
				echo "<a href='".BASEDIR."profile.php?lookup=".$data['shout_name']."' class='side' title=\"".$titel." header=[".$headr."] body=[";
		echo "<br /><strong>Status:</strong> ";
				$lastseen = time() - $data['user_lastvisit'];
		if ($lastseen < 60) {
			$lastseensmall = "<img border='0' alt='".$locale['SB_009']."' title='".$locale['SB_009']."' src='".INFUSIONS."shoutbox_panel/images/online.gif'>";
			$lastseen = "<blink><strong><font color='green'>".strtoupper($locale['SB_009'])."</font></strong></blink>";
		} elseif ($lastseen < 300)  {
			$lastseensmall = "<img border='0' alt='".$locale['SB_010']."' title='".$locale['SB_010']."' src='".INFUSIONS."shoutbox_panel/images/recent-online.gif'>";
			$lastseen = "<blink><strong><font color='#FFD800'>".strtoupper($locale['SB_010'])."</font></strong></blink>";
		} else {
			$lastseensmall = "<img border='0' alt='".$locale['SB_011']."' title='".$locale['SB_011']."' src='".INFUSIONS."shoutbox_panel/images/offline.gif'>";
			$lastseen = "<blink><strong><font color='red'>".strtoupper($locale['SB_011'])."</font></strong></blink>";
		}
	echo "".$lastseen."\n";
	$user_birthdate = explode("-", $data['user_birthdate']);
	$user_month = number_format($user_birthdate['1']);
	$user_day = number_format($user_birthdate['2']);
	$user_year = $user_birthdate['0'];
	$bdate = $user_day.".".$user_month.".".$user_year;
	$sql = mysql_query("SELECT DATEDIFF(curdate(),user_birthdate) as 'age' FROM ".DB_PREFIX."users WHERE user_id='".$data['user_id']."'");
		$alter1 = mysql_result($sql,'age');
		$alter2 = $alter1 / 365;
		$alter3 = number_format(floor($alter2),0,'.',',');

	echo "<br /><br /><strong>".$locale['SB_001'].":</strong> ".$data['user_location']."
		  <br /><br /><strong>".$locale['SB_002'].":</strong> ".$bdate."
		  <br /><br /><strong>".$locale['SB_003'].":</strong> ".number_format(dbcount("(shout_id)", DB_SHOUTBOX, "shout_name='".$data['user_id']."'")).$locale['SB_004']."
		  <br /><br /><strong>".$locale['SB_005'].":</strong><span ".$ucolor."> ".getuserlevel($data['user_level'])."</span>
		  <br /><br /><strong>".$locale['SB_006'].":</strong> ".$alter3."
		  <br /><br /><strong>".$locale['SB_007'].":</strong> ".showdate("%d.%m.%Y %H:%M:%S", $data['user_joined'])."
		  <br /><br /><strong>".$locale['SB_008'].":</strong> ".showdate("%d.%m.%Y %H:%M:%S", $data['user_lastvisit'])."
		  <br /><br />]\"><span ".$ucolor.">".$data['user_name']."</span></a>\n";
		echo "&nbsp;".$lastseensmall."\n";
		} else {
			echo $data['shout_name']."\n";
		}
		echo "</div>\n";
		echo "<div class='shoutboxdate'>".showdate("%d.%m.%y %H:%M", $data['shout_datestamp'])."</div>";
		echo "<div class='shoutbox'>".sbwrap(parseubb(parsesmileys($data['shout_message']), "b|i|u|url|color"))."</div>\n";
		if ((iADMIN && checkrights("S")) || (iMEMBER && $data['shout_name'] == $userdata['user_id'] && isset($data['user_name']))) {
			echo "[<a href='".$link.$sep."s_action=edit&shout_id=".$data['shout_id']."#edit_shout"."' class='side'>".$locale['global_076']."</a>]\n";
			echo "[<a href='".$link.$sep."s_action=delete&shout_id=".$data['shout_id']."' class='side'>".$locale['global_157']."</a>]<br />\n";
		}
		$i++;
		if ($i != $numrows) { echo "<br />\n"; }
	}
	if ($numrows > $settings['numofshouts']) {
		echo "<div style='text-align:center'>\n<a href='".INFUSIONS."shoutbox_panel/shoutbox_archive.php' class='side'>".$locale['global_155']."</a>\n</div>\n";
	}
} else {
	echo "<div>".$locale['global_156']."</div>\n";
}
closesidex();
?>