<?php   
include_once(mnminclude.'../3rdparty/kmessaging/class.KMessaging.php');

function get_new_messages(){

	global $main_smarty, $the_template, $current_user;
   
	 // Method for identifying modules rather than pagename
    define('modulename_sm', 'simple_messaging');
    $main_smarty->assign('modulename_sm', modulename_sm);

	// get the new messages
		if ($current_user->user_id > 0) {
			$message = new KMessaging(true);
			$array = $message->GetAllMesseges(5, $current_user->user_id, '', 1);
			if(is_array($array)){
				$message_count = count($array);
				$main_smarty->assign('messages', $message_count);
	
				$i = 1;
				foreach($array as $key => $val){
					if($i == 1){$msg_first = $array[$key]['id'];}
					if($i > 1){$array[$key]['prev_message_id'] = 'my_message' . ($i - 1);}
					if($i < $message_count){$array[$key]['next_message_id'] = 'my_message' . ($i + 1);}
					$array[$key]['count'] = $i;
					$array[$key]['my_message_id'] = 'my_message' . $i;
					
					$user=new User();
					$user->id = $array[$key]['sender'];
					if(!$user->read()) {
						echo "error 2";
						die;
					}
					$array[$key]['sender_name'] = $user->username;
					$user = "";
					
					$i = $i + 1;
				}
				$main_smarty->assign('msg_new_count', $i - 1);
				$main_smarty->assign('msg_array', $array);
			} else {
				$main_smarty->assign('msg_array', '');
			}
		}
	// get the new messages

}

function simple_messaging_showpage(){
    global $main_smarty, $the_template, $current_user, $db;
    // Method for identifying modules rather than pagename
    define('modulename_sm', 'simple_messaging');
    $main_smarty->assign('modulename_sm', modulename_sm);

	if(isset($_REQUEST['view'])){$view = sanitize($_REQUEST['view'], 3);}else{$view='';}

	$navwhere['text1'] = 'Messaging';
	$navwhere['link1'] = URL_simple_messaging_inbox;

	if($view == 'inbox'){		
		$message = new KMessaging(true);
		$array = $message->GetAllMesseges(5, $current_user->user_id);
		if(is_array($array)){
			$message_count = count($array);
			$main_smarty->assign('messages', $message_count);
	
			foreach($array as $key => $val){
				$user=new User();
				$user->id = $array[$key]['sender'];
				if(!$user->read()) {
					echo "error 2";
					die;
				}
				$array[$key]['sender_name'] = $user->username;
				$user = "";
			}
			
			$main_smarty->assign('msg_array', $array);
			
			if ($_GET['action'] == "bulkmod") {
				if(isset($_POST['submit'])) {
					$message = array();
					foreach ($_POST["message"] as $k => $v) {
						$message[intval($k)] = $v;
					}
					$m = new KMessaging(true);
					foreach($message as $key => $value) {
						if ($value == "delete") {
							$result = $m->DeleteMessege($key,2);
//							$db->query('DELETE FROM `' . table_messages . '` WHERE `idMsg` = "'.$key.'"');
						}
					}
					
					header("Location: ".my_pligg_base."/module.php?module=simple_messaging&view=inbox");
				}
			}
		}
		
		$main_smarty->assign('user_url_friends', getmyurl('user_friends', $login, 'viewfriends'));
		$main_smarty->assign('user_url_friends2', getmyurl('user_friends', $login, 'viewfriends2'));

		$main_smarty = do_sidebar($main_smarty, $navwhere);
		$main_smarty->assign('posttitle', "Inbox");
		
		define('modulepage', 'simple_messaging_inbox'); 
		$main_smarty->assign('modulepage', modulepage);
	
		$main_smarty->assign('tpl_center', simple_messaging_tpl_path . 'inbox');
		$main_smarty->display($the_template . '/pligg.tpl');

	}
	
	
	if($view == 'sent'){

		$message = new KMessaging(true);
		$array = $message->GetAllMesseges(5, '', $current_user->user_id);
		if(is_array($array)){
			$message_count = count($array);
			$main_smarty->assign('messages', $message_count);
	
			foreach($array as $key => $val){
				$user=new User();
				$user->id = $array[$key]['receiver'];
				if(!$user->read()) {
					echo "error 2";
					die;
				}
				$array[$key]['sender_name'] = $user->username;
				$user = "";
			}
		} else 
		   	$array = '';
		$main_smarty->assign('msg_array', $array);

			if ($_GET['action'] == "bulkmod") {
				if(isset($_POST['submit'])) {
					$message = array();
					foreach ($_POST["message"] as $k => $v) {
						$message[intval($k)] = $v;
					}
					$m = new KMessaging(true);
					foreach($message as $key => $value) {
						if ($value == "delete") {
							$result = $m->DeleteMessege($key,1);
						}
					}
					
					header("Location: ".my_pligg_base."/module.php?module=simple_messaging&view=sent");
				}
			}

		$main_smarty->assign('user_url_friends', getmyurl('user_friends', $login, 'viewfriends'));
		$main_smarty->assign('user_url_friends2', getmyurl('user_friends', $login, 'viewfriends2'));
	
		$main_smarty = do_sidebar($main_smarty, $navwhere);
		$main_smarty->assign('posttitle', "Inbox");
		
		define('modulepage', 'simple_messaging_sentbox'); 
		$main_smarty->assign('modulepage', modulepage);
	
		$main_smarty->assign('tpl_center', simple_messaging_tpl_path . 'sent');
		$main_smarty->display($the_template . '/pligg.tpl');

	}


	if($view == 'compose'){

		if(isset($_REQUEST['return'])){$return = sanitize($_REQUEST['return'], 3);}else{$return='';}
		$main_smarty->assign('return', $return);

		if(isset($_REQUEST['to'])){$msgToName = sanitize($_REQUEST['to'], 3);}else{$msgToName='';}
		$main_smarty->assign('msgToName', $msgToName);

		if($msgToName == ''){die('error, invalid to');}
		
		$main_smarty->assign('user_url_friends', getmyurl('user_friends', $login, 'viewfriends'));
		$main_smarty->assign('user_url_friends2', getmyurl('user_friends', $login, 'viewfriends2'));

		$main_smarty = do_sidebar($main_smarty, $navwhere);
		$main_smarty->assign('posttitle', "Inbox");
		
		define('modulepage', 'simple_messaging_compose'); 
		$main_smarty->assign('modulepage', modulepage);
	
		$main_smarty->assign('tpl_center', simple_messaging_tpl_path . 'compose');
		$main_smarty->display($the_template . '/pligg.tpl');

	}
	

	if($view == 'send'){

		if(isset($_REQUEST['return'])){$return = html_entity_decode(urldecode(sanitize($_REQUEST['return'], 3)));}else{$return='';}

		if(isset($_REQUEST['msg_subject'])){$msg_subject = sanitize($_REQUEST['msg_subject'], 3);}else{$msg_subject='';}
		if(isset($_REQUEST['msg_body'])){$msg_body = sanitize($_REQUEST['msg_body'], 3);}else{$msg_body='';}
		if(isset($_REQUEST['msg_to'])){$msg_to = sanitize($_REQUEST['msg_to'], 3);}else{$msg_to='';}

		$user_to=new User();
		$user_to->username = $msg_to;
		if(!$user_to->read()) {
			$main_smarty->assign('message', 'The person you are trying to send a message to does not exist!');
			$main_smarty->display(simple_messaging_tpl_path . 'error.tpl');
			die;
		}
		$msg_to_ID = $user_to->id;
		$msg_from_ID = $current_user->user_id;
		
		$message = new KMessaging(true);
		$msg_result = $message->SendMessege($msg_subject,$msg_body,$msg_from_ID,$msg_to_ID,0);
		if ($msg_result != 0){
			$main_smarty->assign('message', "There was an error. error number " . $msg_result);
			$main_smarty->display(simple_messaging_tpl_path . 'error.tpl');
			die;
		} else {
			// The message has been put in the database successfully, so let's alert the recipient by email:
			$email_to =  $db->get_var("SELECT user_email FROM `" . table_users . "` WHERE `user_id` = '$user_to->id';");
			$email_from =  $db->get_var("SELECT user_login FROM `" . table_users . "` WHERE `user_id` = '$current_user->user_id';");
			$email_subject = "You've got a message in your " . $main_smarty->get_config_vars("PLIGG_Visual_Name") . " inbox";
			$email_message = "Hi " . $user_to->username . ",\r\n\r\nYou've been sent a private message from " . $email_from . ". \r\n\r\nTo see the message, go to your " . $main_smarty->get_config_vars("PLIGG_Visual_Name") . " inbox here: " .  my_base_url . URL_simple_messaging_inbox . "\r\n\r\nThank you, \r\n" . $main_smarty->get_config_vars("PLIGG_Visual_Name") . " Admin";
			$email_headers = "From: " . Send_From_Email . "\r\nReply-To: " . Send_From_Email . "\r\n";
                        @mail($email_to, $email_subject, $email_message, $email_headers);
			
			// show 'message sent', click to continue or wait 5..4..3..2..1.. then redirect
			header('Location: ' . $return);
		}
	}

	if($view == "viewmsg"){

		if(isset($_REQUEST['msg_id'])){$msg_id = sanitize($_REQUEST['msg_id'], 3);}else{$msg_id='';}
		$main_smarty->assign('msg_id', $msg_id);

		$array = messaging_get_message_details($msg_id);
		$main_smarty->assign('msg_array', $array);
		$main_smarty->assign('js_reply', "lightbox_do_on_activate('view_message~!~action=reply~!~replyID=" . $array['id'] . "~!~view=small_msg_compose~!~login=" . $array['sender_name'] . "');");
		$main_smarty->assign('js_delete', "lightbox_do_on_activate('view_message~!~view=small_msg_confirm_delete~!~msgid=" . $array['id'] . "');");
		
		$main_smarty->assign('user_url_friends', getmyurl('user_friends', $login, 'viewfriends'));
		$main_smarty->assign('user_url_friends2', getmyurl('user_friends', $login, 'viewfriends2'));

		$main_smarty = do_sidebar($main_smarty, $navwhere);
		$main_smarty->assign('posttitle', "Inbox");
		
		define('modulepage', 'viewmsg'); 
		$main_smarty->assign('modulepage', modulepage);
	
		$main_smarty->assign('tpl_center', simple_messaging_tpl_path . 'show_message');
		$main_smarty->display($the_template . '/pligg.tpl');

	}
	
	if($view == "viewsentmsg"){

		if(isset($_REQUEST['msg_id'])){$msg_id = sanitize($_REQUEST['msg_id'], 3);}else{$msg_id='';}
		$main_smarty->assign('msg_id', $msg_id);

		$array = messaging_get_message_details($msg_id);
		$main_smarty->assign('msg_array', $array);

		$main_smarty = do_sidebar($main_smarty, $navwhere);
		$main_smarty->assign('posttitle', "Inbox");
		
		define('modulepage', 'viewsentmsg'); 
		$main_smarty->assign('modulepage', modulepage);
	
		$main_smarty->assign('tpl_center', simple_messaging_tpl_path . 'show_sent_message');
		$main_smarty->display($the_template . '/pligg.tpl');

	}

	if($view == "delmsg"){
		
		if(isset($_REQUEST['msg_id'])){$msg_id = sanitize($_REQUEST['msg_id'], 3);}else{$msg_id='';}

		$array = messaging_get_message_details($msg_id);
		$message = new KMessaging(true);
		$result = $message->DeleteMessege($msg_id);
		header('Location: ' . URL_simple_messaging_inbox);

	}

	if($view == "reply"){

		if(isset($_REQUEST['msg_id'])){$msg_id = sanitize($_REQUEST['msg_id'], 3);}else{$msg_id='';}
		$main_smarty->assign('msg_id', $msg_id);

		$array = messaging_get_message_details($msg_id);
		$main_smarty->assign('msgToName', $array['sender_name']);
		$main_smarty->assign('msg_subject', 're: ' . $array['title']);
		$main_smarty->assign('return', URL_simple_messaging_viewmsg . $msg_id);
		
		$main_smarty->assign('user_url_friends', getmyurl('user_friends', $login, 'viewfriends'));
		$main_smarty->assign('user_url_friends2', getmyurl('user_friends', $login, 'viewfriends2'));

		$main_smarty = do_sidebar($main_smarty, $navwhere);
		$main_smarty->assign('posttitle', "Inbox");
		
		define('modulepage', 'reply'); 
		$main_smarty->assign('modulepage', modulepage);
	
		$main_smarty->assign('tpl_center', simple_messaging_tpl_path . 'compose');
		$main_smarty->display($the_template . '/pligg.tpl');

	}

}

function messaging_get_message_details($msgID){	
	global $db, $current_user, $main_smarty;
	
	// Method for identifying modules rather than pagename
	define('modulename_sm', 'simple_messaging'); 
	$main_smarty->assign('modulename_sm', modulename_sm);
	
	$message = new KMessaging(true);
	$array = $message->GetMessege($msgID);
	
	// check to make sure this is our message
	if($array['receiver'] == $current_user->user_id){
		$message->MarkAsRead($msgID);
		$thisuser=new User();
		$thisuser->id = $array['sender'];
		if(!$thisuser->read()) {
			$main_smarty->assign('message', 'The person you are trying to send a message to does not exist!');
			$main_smarty->display(messaging_tpl_path . 'error.tpl');
			die();
		}
		$array['sender_name'] = $thisuser->username;
		$thisuser = "";
		return $array;
	}
	elseif($array['sender'] == $current_user->user_id){
		$message->MarkAsRead($msgID);
		$thisuser=new User();
		$thisuser->id = $array['receiver'];
		if(!$thisuser->read()) {
			$main_smarty->assign('message', 'This person doesn\'t seem to exist!');
			$main_smarty->display(messaging_tpl_path . 'error.tpl');
			die();
		}
		$array['sender_name'] = $current_user->user_login;
		$thisuser = "";
		return $array;
	} else {
		$main_smarty->assign('message', 'This is not your message!');
		$main_smarty->display(messaging_tpl_path . 'error.tpl');
		die();
	}	
}
?>
