<?
/*
Jorge - frontend for mod_logdb - ejabberd server-side message archive module.

Copyright (C) 2009 Zbigniew Zolkiewski

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

*/
require_once("headers.php");
require_once("upper.php");

$html->set_overview('<h2>'.$chat_map[$lang].'</h2>'.'<small>'.$chat_select[$lang].'</small>');

if ($_POST['chat_map']) {
		
		$con_map = $enc->decrypt_url($_POST['chat_map']);

	}
	elseif ($_GET['chat_map']) {

		$con_map = $enc->decrypt_url($_GET['chat_map']);
	
	}

if($con_map === true) {

		$con_map = $enc->jid;
	}
	else{

		unset($con_map);
}
	
// prepare roster object
$ejabberd_roster->sort_by_nick("az");
$roster_chat = $ejabberd_roster->get_roster();

$html->set_body('<br><br><br>
		<form id="c_map_form" action="chat_map.php" method="post" name="chat_map_form">
		<p>'.$filter_tip[$lang].'</p>
		<span style="padding-right: 20px">'.$chat_m_select[$lang].'</span>
		<select id="c_map" style="text-align: center; border: 0px; background-color: #6daae7; color:#fff; font-size: x-small;" name="chat_map" size="0" onchange="javascript:document.chat_map_form.submit();">
		<option value="null">'.$chat_c_list[$lang].'</option>
	');

	while (array_keys($roster_chat)) {
		
		$jid = key($roster_chat);
		$roster_item = array_shift($roster_chat);
		$name = $roster_item[nick];
		$grp  = $roster_item[group];
		if ($con_map==$jid) { 
		
				$selected="selected"; 
				
			} 
			else { 
			
				$selected=""; 
				
		}
		
		$html->set_body('<option '.$selected.' value=\''.$enc->crypt_url("jid=$jid").'\'>'.htmlspecialchars($name).' ('.htmlspecialchars($grp).')</option>');

	}

$html->set_body('</select></form>');

if ($con_map AND $_POST['chat_map'] != "null") {

	// split username and server name
	list($name_peer,$server_peer) = split("@",$con_map);

	// get the id's of user and server
	$db->get_user_id($name_peer);
	$peer_name_id = $db->result->user_id;
	$db->get_server_id($server_peer);
	$peer_server_id = $db->result->server_id;

	if ($peer_name_id !== null AND $peer_server_id !== null) {
	
		//first get the months
		$db->get_chat_map($peer_name_id,$peer_server_id);
		$result1 = $db->result;
		$cc_cmp = count($result1);
		foreach ($result1 as $row_m) {

			// hack for proper date parsing
			list($y,$m) = split("-",$row_m[at]);
			$mo="$y-$m";
		
			// now get the days in with user was talking
			$db->get_chat_map_specyfic($peer_name_id,$peer_server_id,$mo);
			$result2 = $db->result;
			
			foreach($result2 as $row_day) {

					// now scan day for chats, yep thats weak, but as long as we dont have right stats table this will work...
					$i++;
					list($y,$m,$d) = split("-",$row_day[at]);
					$days[$i] = $d;
			}

			if (count($days)>=1) {
				
					$html->set_body('<table cellpadding="0" cellspacing="0" style="display:inline;"><tr><td style="width:200px; border: 0px; text-align:center;">');
					$html->set_body(calendar($db,$user_id,$xmpp_host,$y,$m,$days,TOKEN,$url_key,$left,$right,$selected,$lang,$view_type,2,$peer_name_id,$peer_server_id,$cal_days,$enc,$months_names,$weekdays));
					$html->set_body('</td></tr></table>');
					unset($days);
				
				}
			else {
			
				$score++;

			}
		$i=0;

		}

	}

	else {

		$cc_cmp = $score;
	}


	if ($score==$cc_cmp) { 

		$html->set_body('<span style="text-align: center;"><h2>'.$chat_no_chats[$lang].'</h2></span>');
	
	}

}

$html->set_body('<br><small><i>*-'.$ff_notice[$lang].'</i></small>');
require_once("footer.php");
?>