| ');
	}
	else {
		$html->status_message($no_archives[$lang]);
}
// Chats in selected days:
if ($tslice) {
        $db->get_user_chats($tslice);
        $result = $db->result;
	if (count($result)>0) {
			$display_conversations = true;
		}
		else{
			$display_conversations = false;
	}
if ($display_conversations === true) {
        // we need to sort list by nickname so we need to combiet 2 results: roster and mod_logdb chatlist:
        foreach($result as $sort_me) {
                $roster_name = query_nick_name($ejabberd_roster,$sort_me[username],$sort_me[server_name]);
                $arr_key++; 
		if (!$roster_name) {
			
				// split contact into 2 arrays: one with full jids, second without names - transports, agents..
                        	$sorted_spec[$arr_key] = array(
                                        "roster_name"=>$roster_name,
                                        "username"=>$sort_me[username],
                                        "server_name"=>$sort_me[server_name],
                                        "todaytalk"=>$sort_me[todaytalk],
                                        "server"=>$sort_me[server],
                                        "lcount"=>$sort_me[lcount]
                                        );
			}
			else {
                		$sorted_list[$arr_key] = array(
                                	"roster_name"=>$roster_name,
                                	"username"=>$sort_me[username],
                                	"server_name"=>$sort_me[server_name],
                                	"todaytalk"=>$sort_me[todaytalk],
                                	"server"=>$sort_me[server],
                                	"lcount"=>$sort_me[lcount]
                                	);
		}
        }
        // sort list
        asort($sorted_list);
        if (!$show_spec) {
                $show_spec="1";
        }
        if ($sorted_spec AND $show_spec === "1") {
                if ($sorted_list) {
                                $sorted_list = array_merge($sorted_list,$sorted_spec);
                        }
                        else{
                                $sorted_list = $sorted_spec;
                }
        }
	$html->set_body(' | ');
	}
}
// Chat thread:
if ($talker) {
	$html->set_body('');
	foreach ($sorted_list as $entry) {
		
		$user_name = $entry[username];
		$server_name = $entry[server_name];
		if ($talker == $entry["todaytalk"] AND $server==$entry[server]) { 
		
				$bold_b=""; $bold_e=""; 
				
			} 
			else { 
			
				$bold_b=""; 
				$bold_e=""; 
				
		}
			
		$nickname = $entry[roster_name];
		if (!$nickname) { 
		
				$nickname=$not_in_r[$lang]; 
				unset($malpa);
				$calday_class="caldays4";
				$spec_con = '('.htmlspecialchars($server_name).')';
			
			}
			else{
			
				$malpa = "@";
				unset($spec_con);
				unset($calday_class);
		}
		
		$to_base2 = $enc->crypt_url("tslice=$tslice&peer_name_id=$entry[todaytalk]&peer_server_id=$entry[server]");
		$html->set_body('
 
				');
	}
	$html->set_body('| '.$bold_b.cut_nick($nickname).$bold_e.'');
		if ($spec_con) {
			$html->set_body($bold_b.$spec_con.$bold_e);
		}
		$html->set_body(' |  | ');
}
$html->set_body('');
	if (!$start) { 
	
		$start="0"; 
	}
	$db->get_num_lines($tslice,$talker,$server);
	$nume = $db->result->cnt;
	if ($start>$nume) { 
		
		$start=$nume-$num_lines_bro; 
		
	}
	$db->get_user_name($talker);
	$talker_name = $db->result->username;
	$db->get_server_name($server);
	$server_name = $db->result->server_name;
	$nickname = query_nick_name($ejabberd_roster,$talker_name,$server_name);
	if ($nickname === "") { 
			
			$nickname=$not_in_r[$lang];
			$spec_mark = true;
		}
		else {
			$spec_mark = false;
	}
	$predefined = $enc->crypt_url("jid=$talker_name@$server_name");
	$html->set_body('');
        if ($_GET['loc']) {
                $loc_id=$_GET['loc'];
                if ($loc_id=="2") {
                                $back_link_message=$chat_map_back[$lang];
                                $back_link="chat_map.php?chat_map=$predefined";
                        }
                        elseif($loc_id=="3") {
                                $back_link_message=$fav_back[$lang];
                                $back_link="favorites.php";
                        
			}
			elseif($loc_id=="4") {
				$back_link_message=$myl_back[$lang];
				$back_link="my_links.php";
			}
                $html->set_body('|  |  ');
	}
	if ($resource_id) {
		
		$db->get_resource_name($resource_id);
		$res_display = $db->result->resource_name;
		$html->set_body('| '.$back_link_message.' |  |  ');
	}
	
	$action_link = $enc->crypt_url("tslice=$tslice&peer_name_id=$talker&peer_server_id=$server&lnk=$e_string&action=delete");
	
	$html->set_body('|  |  
			| '.$time_t[$lang].' | '.$user_t[$lang].' | '.$thread[$lang].' | ');
	
	// check favorite
	$db->check_favorite($talker,$server,$tslice);
	if ($db->result->cnt < 1) {
			$html->set_body('
					
					');
		}
		else {
			$html->set_body('
					
					');
	
		
		}
	
	$html->set_body('
			  |  
			'.$all_for_u[$lang].'
        		
			 | 
			
			  | |  ');
	if($db->get_user_chat($tslice,$talker,$server,$resource_id,$start,$num_lines_bro) === false) {
			$html->alert_message($oper_fail[$lang]);
	}
	// processing messages. this should be handled as separate message_processor, so that tree view and calendar view can share the same code withoud redundancy. To be done in 2.0
	$result = $db->result;
	// some strings to pass to message_processor
	$lang_pack = array(
				$cont_chat_p[$lang],
				$message_type_message[$lang],
				$message_type_error[$lang],
				$message_type_headline[$lang],
				$resource_only[$lang],
				$muc_message[$lang],
				$my_links_save[$lang],
				$verb_h[$lang],
				$in_min[$lang]
			);
	// Sent all data to parsing function (message processor)
	if (message_processor($tslice,$server_name,$start,$nickname,$result,$db,$html,$enc,TOKEN,$split_line,$lang_pack,$lang,$spec_mark,$e_string) !== true) {
			$html->alert_message($oper_fail[$lang]);
			$html->destroy_content();
	}
 	$html->set_body('|  |  |  |  ');
	// limiting code - end
	if (($nume-$start)>40) { 
		$html->set_body('| ');
	for($i=0;$i < $nume;$i=$i+$num_lines_bro){
		if ($i!=$start) {
		
	    			if ($resource_id) { 
				
						$add_res="&b=$resource_id"; 
					} 
					else { 
						$add_res=""; 
				}
            			
				$html->set_body(' ['.$i.'] ');
	    		}
	    		else { 
				$html->set_body(' -'.$i.'- ');
		}
    	}
	$html->set_body(' |  ');
	}
	$html->set_body('| '.$back_t[$lang].' | 
 |