<?php
/* 
	Appointment: Диалоги
	File: im.php 
 
*/
if(!defined('MOZG'))
	die('Hacking attempt!');

if($ajax == 'yes')
	NoAjaxQuery();

if($logged){
	$act = $_GET['act'];
	$user_id = $user_info['user_id'];

	switch($act){
		
		//################### Отправка сообщения ###################//
		case "send":
			NoAjaxQuery();
			
			$for_user_id = intval($_POST['for_user_id']);
			$msg = ajax_utf8(textFilter($_POST['msg']));
			$attach_files = ajax_utf8(textFilter($_POST['attach_files']));
			$my_ava = ajax_utf8(textFilter($_POST['my_ava'], false, true));
			$my_name = ajax_utf8(textFilter($_POST['my_name'], false, true));
			$attach_files = ajax_utf8(textFilter($_POST['attach_files'], false, true));
			
			$attach_files = str_replace('vote|', 'hack|', $attach_files);
			
			if($user_id != $for_user_id AND $for_user_id AND isset($msg) AND !empty($msg) OR isset($attach_files) OR !empty($attach_files)){
				
				//Проверка на существование получателя
				$row = $db->super_query("SELECT privacy FROM `".PREFIX."_users` WHERE user_id = '".$for_user_id."'");

				if($row){
					//Приватность
					$privacy = xfieldsdataload($row['privacy']);
					
					//ЧС
					$CheckBlackList = CheckBlackList($for_user_id);
				
					//Проверка естьли запрашиваемый юзер в друзьях у юзера который смотрит стр
					if($privacy['val_msg'] == 2)
						$check_friend = CheckFriends($for_user_id);
	
					if(!$CheckBlackList AND $privacy['val_msg'] == 1 OR $privacy['val_msg'] == 2 AND $check_friend)
						$xPrivasy = 1;
					else
						$xPrivasy = 0;
				
					if($xPrivasy){
						
						//Отправляем сообщение получателю
						$db->query("INSERT INTO `".PREFIX."_messages` SET theme = '...', text = '".$msg."', for_user_id = '".$for_user_id."', from_user_id = '".$user_id."', date = '".$server_time."', pm_read = 'no', folder = 'inbox', history_user_id = '".$user_id."', attach = '".$attach_files."'");

						//Сохраняем сообщение в папку отправленные
						$db->query("INSERT INTO `".PREFIX."_messages` SET theme = '...', text = '".$msg."', for_user_id = '".$user_id."', from_user_id = '".$for_user_id."', date = '".$server_time."', pm_read = 'no', folder = 'outbox', history_user_id = '".$user_id."', attach = '".$attach_files."'");
						$dbid = $db->insert_id();

						//Обновляем кол-во новых сообщения у получателя
						$db->query("UPDATE `".PREFIX."_users` SET messages_num = messages_num+1 WHERE user_id = '".$for_user_id."'");
						
						//Проверка на наличии созданого диалога у себя
						$check_im = $db->super_query("SELECT iuser_id FROM `".PREFIX."_im` WHERE iuser_id = '".$user_id."' AND im_user_id = '".$for_user_id."'");
						if(!$check_im)
							$db->query("INSERT INTO ".PREFIX."_im SET iuser_id = '".$user_id."', im_user_id = '".$for_user_id."', idate = '".$server_time."', all_msg_num = 1");
						else
							$db->query("UPDATE ".PREFIX."_im  SET idate = '".$server_time."', all_msg_num = all_msg_num+1 WHERE iuser_id = '".$user_id."' AND im_user_id = '".$for_user_id."'");
							
						//Проверка на наличии созданого диалога у получателя, а если есть то просто обновляем кол-во новых сообщений в диалоге
						$check_im_2 = $db->super_query("SELECT iuser_id FROM ".PREFIX."_im WHERE iuser_id = '".$for_user_id."' AND im_user_id = '".$user_id."'");
						if(!$check_im_2)
							$db->query("INSERT INTO ".PREFIX."_im SET iuser_id = '".$for_user_id."', im_user_id = '".$user_id."', msg_num = 1, idate = '".$server_time."', all_msg_num = 1");
						else
							$db->query("UPDATE ".PREFIX."_im  SET idate = '".$server_time."', msg_num = msg_num+1, all_msg_num = all_msg_num+1 WHERE iuser_id = '".$for_user_id."' AND im_user_id = '".$user_id."'");
						
						//Ответ скрипта
						$tpl->load_template('im/msg.tpl');
						$tpl->set('{ava}', $my_ava);
						$tpl->set('{name}', $my_name);
						$tpl->set('{user-id}', $user_id);

						//Прикрипленные файлы
						if($attach_files){
							$attach_arr = explode('||', $attach_files);
							$cnt_attach = 1;
							$jid = 0;
							$attach_result = '';
							foreach($attach_arr as $attach_file){
								$attach_type = explode('|', $attach_file);
								
								//Фото
								if($attach_type[0] == 'photo_u'){
									$attauthor_user_id = $user_id;

									if($attach_type[1] == 'attach' AND file_exists(ROOT_DIR."/uploads/attach/{$attauthor_user_id}/c_{$attach_type[2]}")){
									
										$size = getimagesize(ROOT_DIR."/uploads/attach/{$attauthor_user_id}/c_{$attach_type[2]}");
										
										$attach_result .= "<img id=\"photo_wall_{$row['id']}_{$cnt_attach}\" src=\"/uploads/attach/{$attauthor_user_id}/c_{$attach_type[2]}\" {$size[3]} style=\"margin-top:3px;margin-right:3px\" align=\"left\" onClick=\"groups.wall_photo_view('{$row['id']}', '', '{$attach_type[1]}', '{$cnt_attach}')\" class=\"cursor_pointer page_num{$row['id']}\" />";
											
										$cnt_attach++;
									} elseif(file_exists(ROOT_DIR."/uploads/users/{$attauthor_user_id}/albums/{$attach_type[2]}/c_{$attach_type[1]}")){
									
										$size = getimagesize(ROOT_DIR."/uploads/users/{$attauthor_user_id}/albums/{$attach_type[2]}/c_{$attach_type[1]}");
										
										$attach_result .= "<img id=\"photo_wall_{$row['id']}_{$cnt_attach}\" src=\"/uploads/users/{$attauthor_user_id}/albums/{$attach_type[2]}/c_{$attach_type[1]}\" {$size[3]} style=\"margin-top:3px;margin-right:3px\" align=\"left\" onClick=\"groups.wall_photo_view('{$row['id']}', '', '{$attach_type[1]}', '{$cnt_attach}')\" class=\"cursor_pointer page_num{$row['id']}\" />";
											
										$cnt_attach++;
									}

								//Видео
								} elseif($attach_type[0] == 'video' AND file_exists(ROOT_DIR."/uploads/videos/{$attach_type[3]}/{$attach_type[1]}"))
									$attach_result .= "<div><a href=\"/video{$attach_type[3]}_{$attach_type[2]}\" onClick=\"videos.show({$attach_type[2]}, this.href, location.href); return false\"><img src=\"/uploads/videos/{$attach_type[3]}/{$attach_type[1]}\" style=\"margin-top:3px;margin-right:3px\" align=\"left\" /></a></div>";
									
								//Музыка
								elseif($attach_type[0] == 'audio'){
									$audioId = intval($attach_type[1]);
									$audioInfo = $db->super_query("SELECT artist, name, url FROM `".PREFIX."_audio` WHERE aid = '".$audioId."'");
									if($audioInfo){
										$jid++;
										$attach_result .= '<div class="audioForSize'.$row['id'].' player_mini_mbar_wall_all2" id="audioForSize" style="width:440px"><div class="audio_onetrack audio_wall_onemus" style="width:440px"><div class="audio_playic cursor_pointer fl_l" onClick="music.newStartPlay(\''.$jid.'\', '.$row['id'].')" id="icPlay_'.$row['id'].$jid.'"></div><div id="music_'.$row['id'].$jid.'" data="'.$audioInfo['url'].'" class="fl_l" style="margin-top:-1px"><a href="/?go=search&type=5&query='.$audioInfo['artist'].'" onClick="Page.Go(this.href); return false"><b>'.stripslashes($audioInfo['artist']).'</b></a> &ndash; '.stripslashes($audioInfo['name']).'</div><div id="play_time'.$row['id'].$jid.'" class="color777 fl_r no_display" style="margin-top:2px;margin-right:5px">00:00</div><div class="player_mini_mbar fl_l no_display player_mini_mbar_wall player_mini_mbar_wall_all2" id="ppbarPro'.$row['id'].$jid.'" style="width:442px"></div></div></div>';
									}

								//Смайлик
								} elseif($attach_type[0] == 'smile' AND file_exists(ROOT_DIR."/uploads/smiles/{$attach_type[1]}")){
									$attach_result .= '<img src=\"/uploads/smiles/'.$attach_type[1].'\" style="margin-right:5px" />';
									
								//Если документ
								} elseif($attach_type[0] == 'doc'){
								
									$doc_id = intval($attach_type[1]);
									
									$row_doc = $db->super_query("SELECT dname, dsize FROM `".PREFIX."_doc` WHERE did = '{$doc_id}'");
									
									if($row_doc){
										
										$attach_result .= '<div style="margin-top:5px;margin-bottom:5px" class="clear"><div class="doc_attach_ic fl_l" style="margin-top:4px;margin-left:0px"></div><div class="attach_link_block_te"><div class="fl_l">Файл <a href="/index.php?go=doc&act=download&did='.$doc_id.'" target="_blank" onMouseOver="myhtml.title(\''.$doc_id.$cnt_attach.$dbid.'\', \'<b>Размер файла: '.$row_doc['dsize'].'</b>\', \'doc_\')" id="doc_'.$doc_id.$cnt_attach.$dbid.'">'.$row_doc['dname'].'</a></div></div></div><div class="clear"></div>';
											
										$cnt_attach++;
									}
									
								} else
								
									$attach_result .= '';
							}
							if($attach_result)
								$msg = '<div style="width:442px;overflow:hidden">'.preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $msg).$attach_result.'</div><div class="clear"></div>';
						} else
							$msg = preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $msg).$attach_result;
					
						$tpl->set('{text}', stripslashes($msg));
						
						$tpl->set('{msg-id}', $dbid);
						$tpl->set('{new}', 'im_class_new');
						$tpl->set('{date}', langdate('H:i:s', $server_time));
						$tpl->compile('content');
						
						//Читисм кеш обновлений
						mozg_clear_cache_file('user_'.$for_user_id.'/im');
						mozg_create_cache('user_'.$for_user_id.'/im_update', '1');
						mozg_create_cache("user_{$for_user_id}/typograf{$user_id}", "");

						
						AjaxTpl();
					} else
						echo 'err_privacy';
				} else
					echo 'no_user';
			} else
				echo 'max_strlen';
				
			die();
		break;
		
		//################### Смена типа сообщений ###################//
		case "settTypeMsg":
			NoAjaxQuery();
			
			if($user_info['user_msg_type'] == 0)
				$db->query("UPDATE `".PREFIX."_users` SET user_msg_type = 1 WHERE user_id = '".$user_info['user_id']."'");
					
			if($user_info['user_msg_type'] == 1)
				$db->query("UPDATE `".PREFIX."_users` SET user_msg_type = 0 WHERE user_id = '".$user_info['user_id']."'");

			die();
		break;
		
		//################### Прочтение сообщения ###################//
		case "read":
			NoAjaxQuery();
			$msg_id = intval($_POST['msg_id']);
			
			$check = $db->super_query("SELECT from_user_id FROM `".PREFIX."_messages` WHERE id = '".$msg_id."' AND folder = 'inbox' AND pm_read = 'no'");
			
			if($check){
				$db->query("UPDATE `".PREFIX."_messages` SET pm_read = 'yes' WHERE id = '".$msg_id."'");
				$db->query("UPDATE `".PREFIX."_messages` SET pm_read = 'yes' WHERE id = '".($msg_id+1)."'");
				$db->query("UPDATE `".PREFIX."_users` SET messages_num = messages_num-1 WHERE user_id = '".$user_id."'");
				$db->query("UPDATE `".PREFIX."_im` SET msg_num = msg_num-1 WHERE iuser_id = '".$user_id."' AND im_user_id = '".$check['from_user_id']."'");
				
				//Читисм кеш обновлений
				mozg_clear_cache_file('user_'.$check['from_user_id'].'/im');
			}
		
			die();
		break;
		//################### Отправка инф. что набираем сообщение ###################//
		case "typograf":
		
			NoAjaxQuery();
			
			$for_user_id = intval($_POST['for_user_id']);
			
			if($_GET['stop'] == 1)
			
				mozg_create_cache("user_{$for_user_id}/typograf{$user_id}", "");
			
			else
			
				mozg_create_cache("user_{$for_user_id}/typograf{$user_id}", 1);
			
			exit();
			
		break;

		//################### Обновление окна сообщений каждые 2 сек ###################//
		case "update":
			NoAjaxQuery();
			$for_user_id = intval($_POST['for_user_id']);
			$last_id = intval($_POST['last_id']);
			$sess_last_id = mozg_cache('user_'.$user_id.'/im');
				$typograf = mozg_cache("user_{$user_id}/typograf{$for_user_id}");
			if($typograf) echo "<script>$('#im_typograf').fadeIn()</script>";
			if($last_id == $sess_last_id){
				echo 'no_new';
				die();
			}

			$count = $db->super_query("SELECT msg_num, all_msg_num FROM `".PREFIX."_im` WHERE iuser_id = '".$user_id."' AND im_user_id = '".$for_user_id."'");
			if($count['all_msg_num'] > 20)
				$limit = $count['all_msg_num']-20;
			else
				$limit = 0;

			$sql_ = $db->super_query("SELECT SQL_CALC_FOUND_ROWS tb1.id, text, date, pm_read, folder, history_user_id, from_user_id, attach, tell_uid, tell_date, public, tell_comm, tb2.name, avatar FROM `".PREFIX."_messages` tb1, `".PREFIX."_users` tb2 WHERE tb1.for_user_id = '{$user_id}' AND tb1.from_user_id = '{$for_user_id}' AND tb1.history_user_id = tb2.user_id ORDER by `date` ASC LIMIT ".$limit.", 20", 1);
			
			mozg_create_cache('user_'.$user_id.'/im', $last_id);
			
			if($sql_){
				$tpl->load_template('im/msg.tpl');
				foreach($sql_ as $row){
					$tpl->set('{name}', $row['name']);
					$tpl->set('{folder}', $row['folder']);
					$tpl->set('{user-id}', $row['history_user_id']);
					$tpl->set('{msg-id}', $row['id']);
					if(date('Y-m-d', $row['date']) == date('Y-m-d', $server_time)) $tpl->set('{date}', langdate('H:i:s', $row['date']));
					else $tpl->set('{date}', langdate('d.m.y', $row['date']));
					if($row['avatar']) $tpl->set('{ava}', '/uploads/users/'.$row['history_user_id'].'/50_'.$row['avatar']);
					else $tpl->set('{ava}', '{theme}/style/img/no_ava_50.png');
					if($row['pm_read'] == 'no'){
						$tpl->set('{new}', 'im_class_new');
						$tpl->set('{read-js-func}', 'onMouseOver="Im.Read(\''.$row['id'].'\', '.$row['history_user_id'].', '.$user_id.')"');
					} else {
						$tpl->set('{new}', '');
						$tpl->set('{read-js-func}', '');
					}
					
					//Прикрипленные файлы
					if($row['attach']){
						$attach_arr = explode('||', $row['attach']);
						$cnt_attach = 1;
						$cnt_attach_link = 1;
						$jid = 0;
						$attach_result = '';
						foreach($attach_arr as $attach_file){
							$attach_type = explode('|', $attach_file);

							//Фото со стены сообщества
							if($attach_type[0] == 'photo' AND file_exists(ROOT_DIR."/uploads/groups/{$row['tell_uid']}/photos/c_{$attach_type[1]}")){
								
								$size = getimagesize(ROOT_DIR."/uploads/groups/{$row['tell_uid']}/photos/c_{$attach_type[1]}");
								
								$attach_result .= "<img id=\"photo_wall_{$row['id']}_{$cnt_attach}\" src=\"/uploads/groups/{$row['tell_uid']}/photos/c_{$attach_type[1]}\" {$size[3]} style=\"margin-top:3px;margin-right:3px\" align=\"left\" onClick=\"groups.wall_photo_view('{$row['id']}', '{$row['tell_uid']}', '{$attach_type[1]}', '{$cnt_attach}')\" class=\"cursor_pointer page_num{$row['id']}\" />";
								
								$cnt_attach++;
								
								$resLinkTitle = '';
								
							//Фото со стены юзера
							} elseif($attach_type[0] == 'photo_u'){
								if($row['tell_uid']) $attauthor_user_id = $row['tell_uid'];
								elseif($row['history_user_id'] == $user_id) $attauthor_user_id = $user_id;
								else $attauthor_user_id = $row['from_user_id'];

								if($attach_type[1] == 'attach' AND file_exists(ROOT_DIR."/uploads/attach/{$attauthor_user_id}/c_{$attach_type[2]}")){
									
									$size = getimagesize(ROOT_DIR."/uploads/attach/{$attauthor_user_id}/c_{$attach_type[2]}");
									
									$attach_result .= "<img id=\"photo_wall_{$row['id']}_{$cnt_attach}\" src=\"/uploads/attach/{$attauthor_user_id}/c_{$attach_type[2]}\" {$size[3]} style=\"margin-top:3px;margin-right:3px\" align=\"left\" onClick=\"groups.wall_photo_view('{$row['id']}', '', '{$attach_type[1]}', '{$cnt_attach}')\" class=\"cursor_pointer page_num{$row['id']}\" />";
										
									$cnt_attach++;
									
								} elseif(file_exists(ROOT_DIR."/uploads/users/{$attauthor_user_id}/albums/{$attach_type[2]}/c_{$attach_type[1]}")){

									$size = getimagesize(ROOT_DIR."/uploads/users/{$attauthor_user_id}/albums/{$attach_type[2]}");
									
									$attach_result .= "<img id=\"photo_wall_{$row['id']}_{$cnt_attach}\" src=\"/uploads/users/{$attauthor_user_id}/albums/{$attach_type[2]}/c_{$attach_type[1]}\" {$size[3]} style=\"margin-top:3px;margin-right:3px\" align=\"left\" onClick=\"groups.wall_photo_view('{$row['id']}', '', '{$attach_type[1]}', '{$cnt_attach}')\" class=\"cursor_pointer page_num{$row['id']}\" />";
										
									$cnt_attach++;
								}

								$resLinkTitle = '';
								
							//Видео
							} elseif($attach_type[0] == 'video' AND file_exists(ROOT_DIR."/uploads/videos/{$attach_type[3]}/{$attach_type[1]}")){
							
								$size = getimagesize(ROOT_DIR."/uploads/videos/{$attach_type[3]}/{$attach_type[1]}");
								
								$attach_result .= "<div><a href=\"/video{$attach_type[3]}_{$attach_type[2]}\" onClick=\"videos.show({$attach_type[2]}, this.href, location.href); return false\"><img src=\"/uploads/videos/{$attach_type[3]}/{$attach_type[1]}\" style=\"margin-top:3px;margin-right:3px\" {$size[3]} align=\"left\" /></a></div>";
								
								$resLinkTitle = '';
								
							} 
						}
						
						if($resLinkTitle AND $row['text'] == $resLinkUrl OR !$row['text'])
							$row['text'] = $resLinkTitle.'<div class="clear"></div>'.$attach_result;
						else if($attach_result)
							$row['text'] = preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $row['text']).$attach_result;
						else
							$row['text'] = preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $row['text']);
							
					} else
						$row['text'] = preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $row['text']);

					$resLinkTitle = '';
					
					//Если это запись с "рассказать друзьям"
					if($row['tell_uid']){
						if($row['public'])
							$rowUserTell = $db->super_query("SELECT title, photo FROM `".PREFIX."_communities` WHERE id = '{$row['tell_uid']}'");
						else
							$rowUserTell = $db->super_query("SELECT name_lastname, avatar FROM `".PREFIX."_users` WHERE user_id = '{$row['tell_uid']}'");

						if(date('Y-m-d', $row['tell_date']) == date('Y-m-d', $server_time))
							$dateTell = langdate('сегодня в H:i', $row['tell_date']);
						elseif(date('Y-m-d', $row['tell_date']) == date('Y-m-d', ($server_time-84600)))
							$dateTell = langdate('вчера в H:i', $row['tell_date']);
						else
							$dateTell = langdate('j F Y в H:i', $row['tell_date']);
						
						if($row['public']){
							$rowUserTell['name_lastname'] = stripslashes($rowUserTell['title']);
							$tell_link = 'public';
							if($rowUserTell['photo'])
								$avaTell = '/uploads/groups/'.$row['tell_uid'].'/50_'.$rowUserTell['photo'];
							else
								$avaTell = '{theme}/style/img/no_ava_50.png';
						} else {
							$tell_link = 'u';
							if($rowUserTell['avatar'])
								$avaTell = '/uploads/users/'.$row['tell_uid'].'/50_'.$rowUserTell['avatar'];
							else
								$avaTell = '{theme}/style/img/no_ava_50.png';
						}

						$row['text'] = <<<HTML
{$row['tell_comm']}
<div class="wall_repost_border">
<div class="wall_tell_info"><div class="wall_tell_ava"><a href="/{$tell_link}{$row['tell_uid']}" onClick="Page.Go(this.href); return false"><img src="{$avaTell}" width="30" /></a></div><div class="wall_tell_name"><a href="/{$tell_link}{$row['tell_uid']}" onClick="Page.Go(this.href); return false"><b>{$rowUserTell['name_lastname']}</b></a></div><div class="wall_tell_date">{$dateTell}</div></div>{$row['text']}
<div class="clear"></div>
</div>
HTML;
					}
					
					$tpl->set('{text}', stripslashes($row['text']));
					
					$tpl->compile('content');
				}
				
				AjaxTpl();
				
			}
				
			die();
		break;
		
		//################### Просмотр истории сообещений с юзером ###################//
		case "history":
			NoAjaxQuery();
			$for_user_id = intval($_POST['for_user_id']);
			$first_id = intval($_POST['first_id']);

			if($first_id > 0){
				$count = $db->super_query("SELECT COUNT(*) AS all_msg_num FROM `".PREFIX."_messages` WHERE from_user_id = '".$for_user_id."' AND for_user_id = '".$user_id."' AND id < ".$first_id);
				$sql_sort = "AND id < ".$first_id;
				if($count['all_msg_num'] > 20)
					$limit = $count['all_msg_num']-20;
				else
					$limit = 0;
			} else {
				$count = $db->super_query("SELECT all_msg_num FROM `".PREFIX."_im` WHERE iuser_id = '".$user_id."' AND im_user_id = '".$for_user_id."'");
				if($count['all_msg_num'] > 20)
					$limit = $count['all_msg_num']-20;
				else
					$limit = 0;
			}
			
			$sql_ = $db->super_query("SELECT SQL_CALC_FOUND_ROWS tb1.id, text, date, pm_read, folder, history_user_id, from_user_id, attach, tell_uid, tell_date, public, tell_comm, tb2.name, avatar FROM `".PREFIX."_messages` tb1, `".PREFIX."_users` tb2 WHERE tb1.for_user_id = '".$user_id."' AND tb1.from_user_id = '".$for_user_id."' AND tb1.history_user_id = tb2.user_id {$sql_sort} ORDER by `date` ASC LIMIT ".$limit.", 20", 1);

			$tpl->load_template('im/msg.tpl');
				
			if(!$first_id){
				$tpl->result['content'] .= '<div class="im_scroll">';
					
				if($count['all_msg_num'] > 20)
					$tpl->result['content'] .= '<div class="cursor_pointer" onClick="im.page('.$for_user_id.'); return false" id="wall_all_records" style="width:520px"><div class="public_wall_all_comm" id="load_wall_all_records" style="margin-left:0px">Показать предыдущие сообщения</div></div><div id="prevMsg"></div>';
					
				$tpl->result['content'] .= '<div id="im_scroll">';
				
				if(!$sql_)
					$tpl->result['content'] .= '<div class="info_center"><div style="padding-top:210px">Здесь будет выводиться история переписки.</div></div>';
			}
				
			if($sql_){
				foreach($sql_ as $row){
					$tpl->set('{name}', $row['name']);
					$tpl->set('{folder}', $row['folder']);
					$tpl->set('{user-id}', $row['history_user_id']);
					$tpl->set('{msg-id}', $row['id']);
					if(date('Y-m-d', $row['date']) == date('Y-m-d', $server_time)) $tpl->set('{date}', langdate('H:i:s', $row['date']));
					else $tpl->set('{date}', langdate('d.m.y', $row['date']));
					if($row['avatar']) $tpl->set('{ava}', '/uploads/users/'.$row['history_user_id'].'/50_'.$row['avatar']);
					else $tpl->set('{ava}', '{theme}/style/img/no_ava_50.png');
					if($row['pm_read'] == 'no'){
						$tpl->set('{new}', 'im_class_new');
						$tpl->set('{read-js-func}', 'onMouseOver="im.read(\''.$row['id'].'\', '.$row['history_user_id'].', '.$user_id.')"');
					} else {
						$tpl->set('{new}', '');
						$tpl->set('{read-js-func}', '');
					}
					
					//Прикрипленные файлы
					if($row['attach']){
						$attach_arr = explode('||', $row['attach']);
						$cnt_attach = 1;
						$cnt_attach_link = 1;
						$jid = 0;
						$attach_result = '';
						foreach($attach_arr as $attach_file){
							$attach_type = explode('|', $attach_file);
							
							//Фото со стены сообщества
							if($attach_type[0] == 'photo' AND file_exists(ROOT_DIR."/uploads/groups/{$row['tell_uid']}/photos/c_{$attach_type[1]}")){
							
								$size = getimagesize(ROOT_DIR."/uploads/groups/{$row['tell_uid']}/photos/c_{$attach_type[1]}");
								
								$attach_result .= "<img id=\"photo_wall_{$row['id']}_{$cnt_attach}\" src=\"/uploads/groups/{$row['tell_uid']}/photos/c_{$attach_type[1]}\" {$size[3]} style=\"margin-top:3px;margin-right:3px\" align=\"left\" onClick=\"groups.wall_photo_view('{$row['id']}', '{$row['tell_uid']}', '{$attach_type[1]}', '{$cnt_attach}')\" class=\"cursor_pointer page_num{$row['id']}\" />";
								
								$cnt_attach++;
								
								$resLinkTitle = '';
								
							//Фото со стены юзера
							} elseif($attach_type[0] == 'photo_u'){
								if($row['tell_uid']) $attauthor_user_id = $row['tell_uid'];
								elseif($row['history_user_id'] == $user_id) $attauthor_user_id = $user_id;
								else $attauthor_user_id = $row['from_user_id'];

								if($attach_type[1] == 'attach' AND file_exists(ROOT_DIR."/uploads/attach/{$attauthor_user_id}/c_{$attach_type[2]}")){
									
									$size = getimagesize(ROOT_DIR."/uploads/attach/{$attauthor_user_id}/c_{$attach_type[2]}");
									
									$attach_result .= "<img id=\"photo_wall_{$row['id']}_{$cnt_attach}\" src=\"/uploads/attach/{$attauthor_user_id}/c_{$attach_type[2]}\" {$size[3]} style=\"margin-top:3px;margin-right:3px\" align=\"left\" onClick=\"groups.wall_photo_view('{$row['id']}', '', '{$attach_type[1]}', '{$cnt_attach}')\" class=\"cursor_pointer page_num{$row['id']}\" />";
										
									$cnt_attach++;
									
								} elseif(file_exists(ROOT_DIR."/uploads/users/{$attauthor_user_id}/albums/{$attach_type[2]}/c_{$attach_type[1]}")){

									$size = getimagesize(ROOT_DIR."/uploads/users/{$attauthor_user_id}/albums/{$attach_type[2]}");
									
									$attach_result .= "<img id=\"photo_wall_{$row['id']}_{$cnt_attach}\" src=\"/uploads/users/{$attauthor_user_id}/albums/{$attach_type[2]}/c_{$attach_type[1]}\" {$size[3]} style=\"margin-top:3px;margin-right:3px\" align=\"left\" onClick=\"groups.wall_photo_view('{$row['id']}', '', '{$attach_type[1]}', '{$cnt_attach}')\" class=\"cursor_pointer page_num{$row['id']}\" />";
										
									$cnt_attach++;
								}

								$resLinkTitle = '';
								
							//Видео
							} elseif($attach_type[0] == 'video' AND file_exists(ROOT_DIR."/uploads/videos/{$attach_type[3]}/{$attach_type[1]}")){
							
								$size = getimagesize(ROOT_DIR."/uploads/videos/{$attach_type[3]}/{$attach_type[1]}");
								
								$attach_result .= "<div><a href=\"/video{$attach_type[3]}_{$attach_type[2]}\" onClick=\"videos.show({$attach_type[2]}, this.href, location.href); return false\"><img src=\"/uploads/videos/{$attach_type[3]}/{$attach_type[1]}\" style=\"margin-top:3px;margin-right:3px\" {$size[3]} align=\"left\" /></a></div>";
								
								$resLinkTitle = '';
								
							} 
						
						}
						
						if($resLinkTitle AND $row['text'] == $resLinkUrl OR !$row['text'])
							$row['text'] = $resLinkTitle.'<div class="clear"></div>'.$attach_result;
						else if($attach_result)
							$row['text'] = preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $row['text']).$attach_result;
						else
							$row['text'] = preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $row['text']);
							
					} else
						$row['text'] = preg_replace('`(http(?:s)?://\w+[^\s\[\]\<]+)`i', '<a href="/away.php?url=$1" target="_blank">$1</a>', $row['text']);
					
					$resLinkTitle = '';
					
					//Если это запись с "рассказать друзьям"
					if($row['tell_uid']){
						if($row['public'])
							$rowUserTell = $db->super_query("SELECT title, photo FROM `".PREFIX."_communities` WHERE id = '{$row['tell_uid']}'");
						else
							$rowUserTell = $db->super_query("SELECT name_lastname, avatar FROM `".PREFIX."_users` WHERE user_id = '{$row['tell_uid']}'");

						if(date('Y-m-d', $row['tell_date']) == date('Y-m-d', $server_time))
							$dateTell = langdate('сегодня в H:i', $row['tell_date']);
						elseif(date('Y-m-d', $row['tell_date']) == date('Y-m-d', ($server_time-84600)))
							$dateTell = langdate('вчера в H:i', $row['tell_date']);
						else
							$dateTell = langdate('j F Y в H:i', $row['tell_date']);
						
						if($row['public']){
							$rowUserTell['name_lastname'] = stripslashes($rowUserTell['title']);
							$tell_link = 'public';
							if($rowUserTell['photo'])
								$avaTell = '/uploads/groups/'.$row['tell_uid'].'/50_'.$rowUserTell['photo'];
							else
								$avaTell = '{theme}/style/img/no_ava_50.png';
						} else {
							$tell_link = 'u';
							if($rowUserTell['avatar'])
								$avaTell = '/uploads/users/'.$row['tell_uid'].'/50_'.$rowUserTell['avatar'];
							else
								$avaTell = '{theme}/style/img/no_ava_50.png';
						}

						$row['text'] = <<<HTML
{$row['tell_comm']}
<div class="wall_repost_border">
<div class="wall_tell_info"><div class="wall_tell_ava"><a href="/{$tell_link}{$row['tell_uid']}" onClick="Page.Go(this.href); return false"><img src="{$avaTell}" width="30" /></a></div><div class="wall_tell_name"><a href="/{$tell_link}{$row['tell_uid']}" onClick="Page.Go(this.href); return false"><b>{$rowUserTell['name_lastname']}</b></a></div><div class="wall_tell_date">{$dateTell}</div></div>{$row['text']}
<div class="clear"></div>
</div>
HTML;
					}
					
					$tpl->set('{text}', stripslashes($row['text']));
					
					$tpl->compile('content');
				}
			}
				
			if(!$first_id)
				$tpl->result['content'] .= '</div></div>';
				
			if(!$first_id){
				$tpl->load_template('im/form.tpl');
				$tpl->set('{for_user_id}', $for_user_id);
				//Выводим информцию о том кто смотрит страницу для себя
				$myInfo = $db->super_query("SELECT name FROM `".PREFIX."_users` WHERE user_id = '".$user_id."'");
				$tpl->set('{myuser-id}', $user_id);
				$tpl->set('{my-name}', $myInfo['name']);
				if($user_info['avatar'])
					$tpl->set('{my-ava}', '/uploads/users/'.$user_id.'/50_'.$user_info['avatar']);
				else
					$tpl->set('{my-ava}', '{theme}/style/img/no_ava_50.png');
				$tpl->compile('content');
			}

			AjaxTpl();
			
			die();
		break;
		
		//################### Обновление диалогов ###################//
		case "upDialogs":
			NoAjaxQuery();
			$update = mozg_cache('user_'.$user_id.'/im_update');
			
			if($update){
				$sql_ = $db->super_query("SELECT SQL_CALC_FOUND_ROWS tb1.msg_num, im_user_id FROM `".PREFIX."_im` tb1, `".PREFIX."_users` tb2 WHERE tb1.iuser_id = '".$user_id."' AND tb1.im_user_id = tb2.user_id AND msg_num > 0 ORDER by `idate` DESC LIMIT 0, 50", 1);
				foreach($sql_ as $row){
					$res .= '$("#upNewMsg'.$row['im_user_id'].'").html(\'<div class="im_new fl_l" id="msg_num'.$row['im_user_id'].'">'.$row['msg_num'].'</div>\').show();';
				}

				if($user_info['messages_num']){
					$messages_num_2 = "+".$user_info['messages_num'];
					$doc_title = 'document.title = \'('.$user_info['messages_num'].') Новые сообщения\';';
				} else {
					$doc_title = 'document.title = \'Диалоги\';';
					mozg_create_cache('user_'.$user_id.'/im_update', '0');
				}
		
				echo '<script type="text/javascript">
				'.$doc_title.'
				$(\'#new_msg\').html(\''.$messages_num_2.'\');
				'.$res.'
				</script>';
			}
			die();
		break;
		//################### Удаление диалога ###################//
		case "del":
			
			$im_user_id = intval($_POST['im_user_id']);

			//Выводим информацию о диалоге
			$row = $db->super_query("SELECT msg_num, all_msg_num FROM `".PREFIX."_im` WHERE iuser_id = '{$user_id}' AND im_user_id = '{$im_user_id}'");
			
			if($row){
			
				//Удаляем сообщения
				if($row['all_msg_num']){
					
					$db->query("DELETE FROM `".PREFIX."_messages` WHERE for_user_id = '{$user_id}' AND from_user_id = '{$im_user_id}'");
				
				}
				
				//Если есть новые сообщения
				if($row['msg_num']){
					
					$db->query("UPDATE `".PREFIX."_users` SET messages_num = messages_num-{$row['msg_num']} WHERE user_id = '{$user_id}'");
					
				}
				
				//Удаляем сам диалог
				$db->query("DELETE FROM `".PREFIX."_im` WHERE iuser_id = '{$user_id}' AND im_user_id = '{$im_user_id}'");
				
			}
			
			exit;
			
		break;
		default:
		
			//################### Вывод всех диалогов ###################//
			$metatags['title'] = 'Диалоги';

			//Вывод диалогов
			$sql_ = $db->super_query("SELECT SQL_CALC_FOUND_ROWS tb1.msg_num, im_user_id, tb2.name_lastname, avatar FROM `".PREFIX."_im` tb1, `".PREFIX."_users` tb2 WHERE tb1.iuser_id = '".$user_id."' AND tb1.im_user_id = tb2.user_id ORDER by `idate` DESC LIMIT 0, 50", 1);
			$tpl->load_template('im/dialog.tpl');
			foreach($sql_ as $row){
				$tpl->set('{name}', $row['name_lastname']);
				$tpl->set('{uid}', $row['im_user_id']);
				if($row['avatar'])
					$tpl->set('{ava}', '/uploads/users/'.$row['im_user_id'].'/50_'.$row['avatar']);
				else
					$tpl->set('{ava}', '{theme}/style/img/no_ava_50.png');
				if($row['msg_num'])
					$tpl->set('{msg_num}', '<div class="im_new fl_l" id="msg_num'.$row['im_user_id'].'">'.$row['msg_num'].'</div>');
				else
					$tpl->set('{msg_num}', '');
				$tpl->compile('dialog');
			}
			
			//header сообщений
			$tpl->load_template('im/head.tpl');
			if($user_info['user_msg_type'] == 0)
				$tpl->set('{msg-type}', 'Показать в виде диалогов');
			else
				$tpl->set('{msg-type}', 'Показать в виде сообщений');

			$tpl->set('{dialogs}', $tpl->result['dialog']);
			$tpl->set('[inbox]', '');
			$tpl->set('[/inbox]', '');
			$tpl->set_block("'\\[outbox\\](.*?)\\[/outbox\\]'si","");
			$tpl->set_block("'\\[review\\](.*?)\\[/review\\]'si","");
			$tpl->compile('info');

	}
	$tpl->clear();
	$db->free();
} else {
	$user_speedbar = $lang['no_infooo'];
	msgbox('', $lang['not_logged'], 'info');
}
mozg_create_cache("user_{$for_user_id}/typograf{$user_id}", "");
?>