<?php
//	|---------------------------------------------------------------------------|
//	|	PHP-Fusion 7 Content Management System									|
//	|	Copyright © 2002 - 2005 Nick Jones										|
//	|	http://www.php-fusion.co.uk/											|
//	|---------------------------------------------------------------------------|
//	| 	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).														|
//	|---------------------------------------------------------------------------|
//	|	Comments with Securimage (Settings adjustable on Admin Panel (Misc.)	|
//	|	Copyright © 2009 Rizald 'Elyn' Maxwell									|
//	|	www.NubsPixel.com														|
//	|	Filename : comments_include.php											|
//	|	Read the source easier via Notepad++ 									|
//	|		comment fonts changed - Courrier New, 10pt							|
//	|---------------------------------------------------------------------------|
//	|	For more informations, please refer to README.TXT						|
//	|---------------------------------------------------------------------------|

if (!defined("IN_FUSION")) { die("Access Denied"); }

include LOCALE.LOCALESET."comments.php";

//	|-------------------|	Some Required VSariables		|-----------------------|
$settings2 = dbarray(dbquery("SELECT comments_captcha_enable, comments_order, comments_avatar_enable FROM ".DB_SETTINGS));

// 1 = enable captcha, anything else will disable this mod :P
$enable_captcha = $settings2['comments_captcha_enable']; 
$enable_avatar = $settings2['comments_avatar_enable']; 

// based on your preferences, you might want to make it "ASC"
// which is ascending or "DESC" which is decending 
if($settings2['comments_order'] == 0)	
	$order		= "DESC";
else
	$order		= "ASC";
							
// leave this blank
$error 			= ""; 		
//	|-------------------|			MOD ends			|-----------------------|


function showcomments($ctype, $cdb, $ccol, $cid, $clink) {

	global $settings, $locale, $userdata, $aidlink;

	if (iMEMBER && (isset($_GET['c_action']) && $_GET['c_action'] == "delete") && (isset($_GET['comment_id']) && isnum($_GET['comment_id']))) {
		if ((iADMIN && checkrights("C")) || (iMEMBER && dbcount("(comment_id)", DB_COMMENTS, "comment_id='".$_GET['comment_id']."' AND comment_name='".$userdata['user_id']."'"))) {
			$result = dbquery("DELETE FROM ".DB_COMMENTS." WHERE comment_id='".$_GET['comment_id']."'".(iADMIN ? "" : " AND comment_name='".$userdata['user_id']."'"));
		}
		redirect($clink);
	}

	if ((iMEMBER || $settings['guestposts'] == "1") && isset($_POST['post_comment'])) {
		if (iMEMBER) {
			$comment_name = $userdata['user_id'];
			
//	|-------------------|			MOD added			|-----------------------|
//	this part checks if members/guest users posted the correct captcha
//	otherwise, it will return an error message
			if(!iADMIN){ // admin does not have to go through this :P
			global $enable_captcha, $error;
				if ($enable_captcha == "1") {
					include_once INCLUDES."securimage/securimage.php";
					
					$securimage = new Securimage();
					if (!isset($_POST['captcha_code']) || $securimage->check($_POST['captcha_code']) == false) {
						$c_start = (ceil(dbcount("(comment_id)", DB_COMMENTS, "comment_item_id='".$cid."' AND comment_type='".$ctype."'") / 10) - 1) * 10;
						redirect($clink."&rstart=".$c_start."&err=1");
					}
				}
			}
//	|-------------------|			MOD ends			|-----------------------|
			
		} elseif ($settings['guestposts'] == "1") {
			$comment_name = trim(stripinput($_POST['comment_name']));
			$comment_name = preg_replace("(^[0-9]*)", "", $comment_name);
			if (isnum($comment_name)) { $comment_name = ""; }
		}

		$comment_message = trim(stripinput(censorwords($_POST['comment_message'])));
		
		if (iMEMBER && (isset($_GET['c_action']) && $_GET['c_action'] == "edit") && (isset($_GET['comment_id']) && isnum($_GET['comment_id']))) {
			$comment_updated = false;
			if ((iADMIN && checkrights("C")) || (iMEMBER && dbcount("(comment_id)", DB_COMMENTS, "comment_id='".$_GET['comment_id']."' AND comment_name='".$userdata['user_id']."'"))) {
				if ($comment_message) {
					$result = dbquery("UPDATE ".DB_COMMENTS." SET comment_message='$comment_message' WHERE comment_id='".$_GET['comment_id']."'".(iADMIN ? "" : " AND comment_name='".$userdata['user_id']."'"));
					$comment_updated = true;
				}
			}
			if ($comment_updated) {
				$c_start = (ceil(dbcount("(comment_id)", DB_COMMENTS, "comment_id<='".$_GET['comment_id']."' AND comment_item_id='".$cid."' AND comment_type='".$ctype."'") / 10) - 1) * 10;
			}
			redirect($clink."&rstart=".(isset($c_start) && isnum($c_start) ? $c_start : ""));
		} else {
			if (!dbcount("(".$ccol.")", $cdb, $ccol."='".$cid."'")) { redirect(BASEDIR."index.php"); }
			if ($comment_name && $comment_message) {
				require_once INCLUDES."flood_include.php";
				if (!flood_control("comment_datestamp", DB_COMMENTS, "comment_ip='".USER_IP."'")) {
					$result = dbquery("INSERT INTO ".DB_COMMENTS." (comment_item_id, comment_type, comment_name, comment_message, comment_datestamp, comment_ip) VALUES ('$cid', '$ctype', '$comment_name', '$comment_message', '".time()."', '".USER_IP."')");
				}
			}
			$c_start = (ceil(dbcount("(comment_id)", DB_COMMENTS, "comment_item_id='".$cid."' AND comment_type='".$ctype."'") / 10) - 1) * 10;
			redirect($clink."&rstart=".$c_start);
		}
	}

	opentable($locale['c100']);
	echo "<a id='comments' name='comments'></a>";
	$c_rows = dbcount("(comment_id)", DB_COMMENTS, "comment_item_id='$cid' AND comment_type='$ctype'");
	if (!isset($_GET['c_start']) || !isnum($_GET['c_start'])) { $_GET['c_start'] = 0; }
	
//	|--------------|	Slightly modified this query	|-----------------------|
	global $order;
	$result = dbquery(
		"SELECT tcm.*,user_name, user_id FROM ".DB_COMMENTS." tcm
		LEFT JOIN ".DB_USERS." tcu ON tcm.comment_name=tcu.user_id
		WHERE comment_item_id='$cid' AND comment_type='$ctype'
		ORDER BY comment_datestamp ".$order." LIMIT ".$_GET['c_start'].",10"
	);
	$count_all = (dbcount("(comment_id)", DB_COMMENTS, "comment_item_id='".$cid."' AND comment_type='".$ctype."'")+1);
//	|-------------------|			MOD end				|-----------------------|

	if (dbrows($result)) {
		$i = $_GET['c_start']+1;
		if ($c_rows > 10) {
			echo "<div style='text-align:center;margin-bottom:5px;'>".makecommentnav($_GET['c_start'], 10, $c_rows, 3, $clink."&")."</div>\n";
		}
//	|-------------------|			for Avatar 			|-----------------------|
		global $enable_avatar; global $settings2;
		if($enable_avatar == "1"){
		echo "<table class='no-border' width='100%'>";
			while ($data = dbarray($result)) {
				echo "<tr><td class='komentarai3' width='12%' align='center'>\n";
				// numbering :P
				if($settings2['comments_order'] == 0)
					echo "<a href='".FUSION_REQUEST."#c".$data['comment_id']."' id='c".$data['comment_id']."' name='c".$data['comment_id']."'>#".($count_all-$i)."</a></td>";
				else
					echo "<a href='".FUSION_REQUEST."#c".$data['comment_id']."' id='c".$data['comment_id']."' name='c".$data['comment_id']."'>#".$i."</a></td>";
				if ($data['user_name']) {
					echo "<td class='komentarai3'><span class='comment-name'><a href='".BASEDIR."profile.php?lookup=".$data['comment_name']."'>".$data['user_name']."</a></span>\n";
				} else {
					echo "<td class='komentarai3'><span class='comment-name'>".$data['comment_name']."</span>\n";
				}
				echo "<span class='small'>".$locale['global_071'].showdate("%Y-%m-%d", $data['comment_datestamp'])." <a align='right' width='75' href='".FUSION_REQUEST."&c_action=edit&comment_id=".$data['comment_id']."#edit_comment'>".$locale['c108']."</a> | <a align='right' width='75' href='".FUSION_REQUEST."&c_action=delete&comment_id=".$data['comment_id']."'>".$locale['c109']."</a></span></td>";
				if ((iADMIN && checkrights("C")) || (iMEMBER && $data['comment_name'] == $userdata['user_id'] && isset($data['user_name']))) {
				}

 
				echo "</tr><tr><td class='komentarai2' valign='top'>";
if ($data['user_avatar'] !== ""){
 echo "<img align='left' src='".IMAGES."avatars/".$data['user_avatar']."' alt='".$locale['567']."' width='70' height='70' style='border:0'><br>";
   }else{
echo "<img align='left' src='".IMAGES."avatars/noavatar.png' width='70' height='70' border='0'><br>\n";
}
				echo "<td valign='top' colspan='2'>";
				
				echo "<div class='komentarai1' ><!--comment_message-->".nl2br(parseubb(parsesmileys($data['comment_message'])))."</div>\n";
				echo "</td></tr>";
				$i++;
			}
			echo "</table>";
//	|-------------------|			MOD end				|-----------------------|
		}
		else{
			while ($data = dbarray($result)) {
				echo "<div class='tbl2'>\n";
				if ((iADMIN && checkrights("C")) || (iMEMBER && $data['comment_name'] == $userdata['user_id'] && isset($data['user_name']))) {
					echo "<div style='float:right' class='comment_actions'><!--comment_actions-->\n<a href='".FUSION_REQUEST."&c_action=edit&comment_id=".$data['comment_id']."#edit_comment'>".$locale['c108']."</a> |\n";
					echo "<a href='".FUSION_REQUEST."&c_action=delete&comment_id=".$data['comment_id']."'>".$locale['c109']."</a>\n</div>\n";
				}
				echo "<a href='".FUSION_REQUEST."#c".$data['comment_id']."' id='c".$data['comment_id']."' name='c".$data['comment_id']."'>#".$i."</a> | ";
				if ($data['user_name']) {
					echo "<span class='comment-name'><a href='".BASEDIR."profile.php?lookup=".$data['comment_name']."'>".$data['user_name']."</a></span>\n";
				} else {
					echo "<span class='comment-name'>".$data['comment_name']."</span>\n";
				}
				echo "<span class='small'>".$locale['global_071'].showdate("longdate", $data['comment_datestamp'])."</span>\n";
				echo "</div>\n<div class='tbl1 comment_message'><!--comment_message-->".nl2br(parseubb(parsesmileys($data['comment_message'])))."</div>\n";
				$i++;
			}
		}
		if (iADMIN && checkrights("C")) {
			echo "<div align='right' class='tbl2'><a href='".ADMIN."comments.php".$aidlink."&ctype=$ctype&cid=$cid'>".$locale['c106']."</a></div>\n";
		}
		if ($c_rows > 10) {
			echo "<div style='text-align:center;margin-top:5px;'>".makecommentnav($_GET['c_start'], 10, $c_rows, 3, $clink."&")."</div>\n";
		}
	} else {
		echo $locale['c101']."\n";
	}
	closetable();

	opentable($locale['c102']);
	if (iMEMBER && (isset($_GET['c_action']) && $_GET['c_action'] == "edit") && (isset($_GET['comment_id']) && isnum($_GET['comment_id']))) {
		$eresult = dbquery(
			"SELECT tcm.*,user_name FROM ".DB_COMMENTS." tcm
			LEFT JOIN ".DB_USERS." tcu ON tcm.comment_name=tcu.user_id
			WHERE comment_id='".$_GET['comment_id']."' AND comment_item_id='".$cid."' AND comment_type='".$ctype."'"
		);
		if (dbrows($eresult)) {
			$edata = dbarray($eresult);
			if ((iADMIN && checkrights("C")) || (iMEMBER && $edata['comment_name'] == $userdata['user_id'] && isset($edata['user_name']))) {
				$clink .= "&c_action=edit&comment_id=".$edata['comment_id'];
				$comment_message = $edata['comment_message'];
			}
		} else {
			$comment_message = "";
		}
	} else {
		$comment_message = "";
	}
	if (iMEMBER || $settings['guestposts'] == "1") {
		require_once INCLUDES."bbcode_include.php";
		echo "<a id='edit_comment' name='edit_comment'></a>\n";
		echo "<form name='inputform' method='post' action='".$clink."'>\n";
		if (iGUEST) {
			echo "<div class='komentarai3' align='center' class='tbl'>\n".$locale['c104']."<br />\n";
			echo "<input type='text' name='comment_name' maxlength='30' class='textbox' style='width:360px' />\n";
			echo "</div>\n";
		}
		echo "<div align='center' class='komentarai5'>\n";

//	|-------------------|			MOD start			|-----------------------|
// 	this part checks if the post returns any error (now, there are only one error
//	which is wrong validate code :P
		if(isset($_GET['err']) && isnum($_GET['err'])){
			if($_GET['err'] == '1'){
				include_once LOCALE.LOCALESET."register.php";
				echo "<span style='color:#ff0000'>".$locale['410']."</span>\n <br />";
			}
		}
//	|-------------------|			MOD end				|-----------------------|
		
		echo "<br><textarea name='comment_message' cols='70' rows='6' class='textbox' style='width:360px'>".$comment_message."</textarea><br />\n";
		echo display_bbcodes("360px", "comment_message")."<br />\n";
		
//	|-------------------|			MOD start			|-----------------------|
// 	this is the form of the captcha.
//	i placed them in a table because i wanted it to be properly align
//	you could modify the string here if you want to customise it's looks
		global $enable_captcha;
		if(!iADMIN){
			if ($enable_captcha == "1") {
				include LOCALE.LOCALESET."global.php";
				
				echo "
					<table class='no-border' width='100%'>
					<tr>
						<td class='tbl' align='right'>".$locale['global_158']."</td>
						<td class='tbl'>
							<img id='captcha' src='".INCLUDES."securimage/securimage_show.php' alt='".$locale['global_158']."' align='left' />
							<a href='".INCLUDES."securimage/securimage_play.php'><img src='".INCLUDES."securimage/images/audio_icon.gif' alt='' align='top' class='tbl-border' style='margin-bottom:1px' /></a><br />
							<a href='#' onclick=\"document.getElementById('captcha').src = '".INCLUDES."securimage/securimage_show.php?sid=' + Math.random(); return false\"><img src='".INCLUDES."securimage/images/refresh.gif' alt='' align='bottom' class='tbl-border' /></a>
						</td>
					</tr>
					<tr>
						<td class='tbl' align='right'>".$locale['global_159']."<span style='color:#ff0000'>*</span></td>
						<td class='tbl'><input type='text' name='captcha_code' class='textbox' style='width:100px' /></td>
					</tr>
					</table><br />";
			}
		}
//	|-------------------|			MOD end				|-----------------------|
		
		echo "<input class='buttonas' type='submit' name='post_comment' value='".($comment_message ? $locale['c103'] : $locale['c102'])."' class='button' /><br><br>\n";
		echo "</div>\n</form>\n";
	} else {
		echo $locale['c105']."\n";
	}
	closetable();
}

function makecommentnav($start, $count, $total, $range = 0, $link) {

	global $locale;

	$pg_cnt = ceil($total / $count);
	if ($pg_cnt <= 1) { return ""; }

	$idx_back = $start - $count;
	$idx_next = $start + $count;
	$cur_page = ceil(($start + 1) / $count);

	$res = $locale['global_092']." ".$cur_page.$locale['global_093'].$pg_cnt.": ";
	if ($idx_back >= 0) {
		if ($cur_page > ($range + 1)) {
			$res .= "<a href='".$link."ce4dstart=0'>1</a>...";
		}
	}
	$idx_fst = max($cur_page - $range, 1);
	$idx_lst = min($cur_page + $range, $pg_cnt);
	if ($range == 0) {
		$idx_fst = 1;
		$idx_lst = $pg_cnt;
	}
	for ($i = $idx_fst; $i <= $idx_lst; $i++) {
		$offset_page = ($i - 1) * $count;
		if ($i == $cur_page) {
			$res .= "<span><strong>".$i."</strong></span>";
		} else {
			$res .= "<a href='".$link."c_start=".$offset_page."'>".$i."</a>";
		}
	}
	if ($idx_next < $total) {
		if ($cur_page < ($pg_cnt - $range)) {
			$res .= "...<a href='".$link."c_start=".($pg_cnt - 1) * $count."'>".$pg_cnt."</a>\n";
		}
	}

	return "<div class='pagenav'>\n".$res."</div>\n";
}
?>