<?php
session_start();
if(!isset($_SESSION['uid'])) { die(json_encode(array('js' => 'top.location="main.php?exit='.mt_rand(0, 50000).'";'))); }
include('config.php');
include('classes/filter_class.php');

$rooms = array (
    "0"=>"Секретная Комната",

    "1"=>"Комната Новичков",
    "2"=>"Комната Новичков 2",
    "3"=>"Комната Новичков 3",
    "4"=>"Комната Новичков 4",

    "5"=>"Зал Воинов ",
    "6"=>"Зал Воинов 1",
    "7"=>"Зал Воинов 2",

    "8"=>"Торговый зал",
    "9"=>"Рыцарский зал",
    "10"=>"Башня рыцарей-магов",
    "11"=>"Колдовской мир",

    "12"=>"Этажи духов",
    "13"=>"Астральные этажи",
    "14"=>"Огненный мир",

    "15"=>"Зал Паладинов",
    "16"=>"Совет Белого Братства",

    "17"=>"Зал Тьмы",
    "18"=>"Царство Тьмы",

    "19"=>"Будуар",

    "20"=>"Центральная площадь",
    "21"=>"Страшилкина улица",
    "22"=>"Магазин",
    "23"=>"Ремонтная мастерская",
    "24"=>"Памятник Архангелу",
    "25"=>"Комиссионный магазин",
    "26"=>"Замковая улица",
    "27"=>"Почта",
    "28"=>"Регистратура кланов",
    "29"=>"Банк",
    "30"=>"Регистратура кланов",
    "31"=>"Башня смерти",

    "32"=>"Готический замок",
    "33"=>"Лабиринт хаоса",
    "34"=>"Цветочный магазин",
    "35"=>"Сувенирный магазин",
    "36"=>"Зал Стихий",

    "37"=>"Готический замок - приемная",
    "38"=>"Готический замок - арсенал",
    "39"=>"Готический замок - внутренний двор",
    "40"=>"Готический замок - мастерские",
    "41"=>"Готический замок - комнаты отдыха",

    "42"=>"Лотерея Сталкеров",
    "43"=>"Хижина Знахаря",
    "44"=>"Новогодняя елка",
    "45"=>"Замок Мэра",
    "47"=>"Замок (строительство)",
    "48"=>"Обитель Хаоса",
    "49"=>"Проход к Цитадели Хаоса",
    "50"=>"Магазин Берёзка",
    "51"=>"Парковая улица",
    "52"=>"Квартал Законников",
    "53"=>"Библиотека",

    "54"=>"Зал Света",
    "55"=>"Царство Света",
    "56"=>"Царство Стихий",
    "57"=>"Зал Клановых Войн",

    "101"=>"Противостояние сил",
    "200"=> "Турнир",
    "401"=> "Врата Ада",
// БС
    "501" => "Восточная Крыша",
    "502" => "Бойница",
    "503" => "Келья 3",
    "504" => "Келья 2",
    "505" => "Западная Крыша 2",
    "506" => "Келья 4",
    "507" => "Келья 1",
    "508" => "Служебная комната",
    "509" => "Зал Отдыха 2",
    "510" => "Западная Крыша 1",
    "511" => "Выход на Крышу",
    "512" => "Зал Статуй 2",
    "513" => "Храм",
    "514" => "Восточная комната",
    "515" => "Зал Отдыха 1",
    "516" => "Старый Зал 2",
    "517" => "Старый Зал 1",
    "518" => "Красный Зал 3",
    "519" => "Зал Статуй 1",
    "520" => "Зал Статуй 3",
    "521" => "Трапезная 3",
    "522" => "Зал Ожиданий",
    "523" => "Оружейная",
    "524" => "Красный Зал-Окна",
    "525" => "Красный Зал",
    "526" => "Гостинная",
    "527" => "Трапезная 1",
    "528" => "Внутренний Двор",
    "529" => "Внутр.Двор-Вход",
    "530" => "Желтый Коридор",
    "531" => "Мраморный Зал 1",
    "532" => "Красный Зал 2",
    "533" => "Библиотека 1",
    "534" => "Трапезная 2",
    "535" => "Проход Внутр. Двора",
    "536" => "Комната с Камином",
    "537" => "Библиотека 3",
    "538" => "Выход из Мрам.Зала",
    "539" => "Красный Зал-Коридор",
    "540" => "Лестница в Подвал 1",
    "541" => "Южный Внутр. Двор",
    "542" => "Трапезная 4",
    "543" => "Мраморный Зал 3",
    "544" => "Мраморный Зал 2",
    "545" => "Картинная Галерея 1",
    "546" => "Лестница в Подвал 2",
    "547" => "Проход Внутр. Двора 2",
    "548" => "Внутр.Двор-Выход",
    "549" => "Библиотека 2",
    "550" => "Картинная Галерея 3",
    "551" => "Картинная Галерея 2",
    "552" => "Лестница в Подвал 3",
    "553" => "Терасса",
    "554" => "Оранжерея",
    "555" => "Зал Ораторов",
    "556" => "Лестница в Подвал 4",
    "557" => "Темная Комната",
    "558" => "Винный Погреб",
    "559" => "Комната в Подвале",
    "560" => "Подвал",
    "600" => "Вход в Цитадель Хаоса",
    "601" => "Цитадель Хаоса",
    "602" => "Городской парк",
    "603" => "Арена Ангелов",

    620 => "Вход в Рудник",
    621 => "Рудник",

    660 => "Гостиница, холл",
    661 => "Гостиница",
    662 => "Памятник Архангелу",

    760 => "Тёмный Лес",
// Клановая улица
    "650" => "Клановая улица",
    "651" => "Клановая улица",
    "652" => "Клановый Замок",
//
    "1000" => "Вход в рудник",
    "1001" => "Рудник",
    1051 => "Вход в Лабиринты",
    1052 => "Лабиринты",
    1053 => "Храмовая лавка",
    "2000" => "Подземный проход",
    "2001" => "Подземный проход (1)",
    "2002" => "Подземный проход (2)",
    "2003" => "Подземный проход (3)",
    "2004" => "Подземный проход (4)",
    "2005" => "Подземный проход (5)",
    "2006" => "Подземный проход (6)",
    "2007" => "Подземный проход (7)",
    "2008" => "Подземный проход (8)",
    "2009" => "Подземный проход (9)",
    "2010" => "Подземный проход (10)",
    "2011" => "Подземный проход (11)",
    "2012" => "Подземный проход (12)",
    "2013" => "Подземный проход (13)",
    "2014" => "Подземный проход (14)",
    "2015" => "Подземный проход (15)",
    "2016" => "Подземный проход (16)",
    "2017" => "Подземный проход (17)",
    "2018" => "Подземный проход (18)",
    "2019" => "Подземный проход (19)",
    "2020" => "Подземный проход (20)",
    "2021" => "Подземный проход (21)",
    "2022" => "Подземный проход (22)",
    "2023" => "Подземный проход (23)",
    "2024" => "Подземный проход (24)",
    "2025" => "Подземный проход (25)",
    "2026" => "Подземный проход (26)",
    "2027" => "Подземный проход (27)",
    "2028" => "Подземный проход (28)",
    "2029" => "Подземный проход (29)",
    "2030" => "Подземный проход (30)",
    "2031" => "Подземный проход (31)",
    "2032" => "Подземный проход (32)",
    "2033" => "Подземный проход (33)",
    "2034" => "Подземный проход (34)",
    "2035" => "Подземный проход (35)",
    "2036" => "Подземный проход (36)",
    "2037" => "Подземный проход (37)",
    "2038" => "Подземный проход (38)",
    "2039" => "Подземный проход (39)",
    "2040" => "Подземный проход (40)",
    "2041" => "Подземный проход (41)",
    "2042" => "Подземный проход (42)",
    "2043" => "Подземный проход (43)",
    "2044" => "Подземный проход (44)",
    "2045" => "Подземный проход (45)",
    "2046" => "Подземный проход (46)",
    "2047" => "Подземный проход (47)",
    "2048" => "Подземный проход (48)",
    "2049" => "Подземный проход (49)",
    "2050" => "Подземный проход (50)",
    "2051" => "Подземный проход (51)",
    "2052" => "Подземный проход (52)",
    "2053" => "Подземный проход (53)",
    "2054" => "Подземный проход (54)",
    "2055" => "Подземный проход (55)",
    "2056" => "Подземный проход (56)",
    "2057" => "Подземный проход (57)",
    "2100" => "Сектор 2100"
    

);

$user = mysql_fetch_array(mysql_query('SELECT * FROM `users` WHERE `id` = "'.mysql_real_escape_string($_SESSION['uid']).'" LIMIT 1'));
$sleep = mysql_fetch_array(mysql_query('SELECT `id`, `time` FROM `effects` WHERE `type` = 2 AND `owner` = "'.$user['id'].'" LIMIT 1'));
if(!isset($user['id'])) { die(json_encode(array('js' => 'top.location="main.php?exit='.mt_rand(0, 50000).'";'))); }

$uroom = $rooms[$user['room']];
$user['city'] = 'capitalcity';

$r = array('rnd' => mt_rand(1, 500000), 'rn' => null, 'list' => null, 'msg' => null, 'key' => null, 'js' => null, 'xu' => 0);

if($user['battle'] > 0) {
  $btl = mysql_fetch_array(mysql_query('SELECT `id` FROM `battle` WHERE `id` = "'.$user['battle'].'" AND `win` = 3 LIMIT 1'));
  if(!isset($btl['id'])) {
	$r['js'] .= 'top.frames["main"].location="fbattle.php";';
  }
}

if(isset($_POST['delMsg']) && ($user['align'] = 2.99)) {
  if(((int)$_POST['delMsg']) > 0) {
	mysql_query('UPDATE `chat` SET `delete` = "'.$user['id'].'" WHERE `id` = "'.mysql_real_escape_string(((int)$_POST['delMsg'])).'" LIMIT 1');
  }
}

if(isset($_POST['msg']) && str_replace(' ', '', $_POST['msg']) != '') {
  $msg = array();
  $_POST['msg'] = str_replace('\x3C', '<', $_POST['msg']);
  $_POST['msg'] = str_replace('\x3', '>', $_POST['msg']);
  $_POST['msg'] = $_POST['msg'];
  $_POST['msg'] = str_replace('\\', '\\\\', $_POST['msg']);
  $_POST['msg'] = str_replace('"', '[s1;]', $_POST['msg']);
  $_POST['msg'] = str_replace("'", '[s2;]', $_POST['msg']);
  $_POST['msg'] = str_replace('<', '[s3;]', $_POST['msg']);
  $_POST['msg'] = str_replace('>', '[s4;]', $_POST['msg']);
  $_POST['msg'] = str_replace('	', ' ',$_POST['msg']);
  $_POST['msg'] = htmlspecialchars($_POST['msg']);
  $_POST['msg'] = str_replace('::', '', $_POST['msg']);
  $_POST['msg'] = str_replace('[s1;]', '&quot;', $_POST['msg']);
  $_POST['msg'] = str_replace("[s2;]", '&quot;', $_POST['msg']);
  $_POST['msg'] = str_replace('[s3;]', '&lt;', $_POST['msg']);
  $_POST['msg'] = str_replace('[s4;]', '&gt;', $_POST['msg']);


  $lmgs = mysql_fetch_array(mysql_query('SELECT COUNT(`id`) FROM `chat` WHERE `login` = "'.$user['login'].'" AND `time` > '.(time()-2).' LIMIT 2'));
  if($lmg[0] > 0) {
	$r['js'] .= 'chat.sendMsg(["new", "'.time().'", "6", "", "'.$user['login'].'", "<small>Вы не можете отправлять так часто сообщения... </small>", "Black", "1", "1", "0"]);';
  } else {
    $msg['time'] = time(); $msg['spam'] = 0; $msg['type'] = 1; $msg['toChat'] = 0; $msg['color'] = 'Black'; $msg['typeTime'] = 0; $msg['sound'] = 0; $msg['global'] = 0; $msg['molch'] = 0; $msg['login'] = $user['login']; $msg['cancel'] = 0; $msg['delete'] = 0; $msg['to'] = ''; $msg['da'] = 0; $msg['color'] = $user['chatColor'];

    if($user['align'] != '3.99') {
	  $msg['fspam'] = $filter->spamFiltr(str_replace('точка', '.', str_replace('ру', 'ru', $_POST['msg'])));
	  if($msg['fspam'] != '0') {
		$msg['spam'] = 1; $msg['delete'] = 1;
		$r['js'] .= 'chat.sendMsg(["new", "'.time().'", "6", "", "'.$user['login'].'", "В нашем чате запрещается сообщать ссылки на атльтернативные проекты. Повторные попытки могут привести к блокировке персонажа.", "Black", "1", "2", "0", "", "", "", "", "'.date('H:i', time()).'"]);';
	  }
    }
    
    if(preg_match("/private\[(.*?)\]/", $_POST['msg'], $msg['to'])) {
	  $_POST['msg'] = str_replace('private['.$msg['to'].']', 'private ['.$msg['to'].']', $_POST['msg']); $msg['to'] = '';
    } elseif(preg_match("/to\[(.*?)\]/", $_POST['msg'], $msg['to'])) {
	  $msg['to'] = $msg['to'][1];
	  $_POST['msg'] = str_replace('to['.$msg['to'].']', 'to ['.$msg['to'].']', $_POST['msg']); $msg['to'] = '';
	}
    
    if(preg_match("/private \[(.*?)\]/", $_POST['msg'], $msg['to'])) {
	  $msg['to'] = trim($msg['to']['1'], ' '); $msg['type'] = 3; $_POST['msg'] = str_replace('private ['.$msg['to'].']', ' ', $_POST['msg']);
	} elseif(preg_match("/to \[(.*?)\]/", $_POST['msg'], $msg['to'])) {
	  $msg['to'] = trim($msg['to']['1'], ' '); $msg['type'] = 2; $_POST['msg'] = str_replace('to ['.$msg['to'].']', ' ', $_POST['msg']);
	}
    
    if(preg_match("/Невидимка/", $msg['to'])) {
	  $msg['to'] = preg_replace("/&lt;b&gt;&lt;i&gt;Невидимка&lt;\/i&gt;&lt;\/b&gt;/", "<b><i>Невидимка</i></b>", $msg['to']);
	  $msg['to'] = preg_replace("/&lt;small&gt;(.*?)&lt;\/small&gt;/", "<small>$1</small>", $msg['to']);
	}
    
    $qix = mysql_fetch_array(mysql_query('SELECT `id` FROM `friends` WHERE `ignor` > 0 AND `user` = "'.mysql_real_escape_string($user['id']).'" AND `user_ignor` = "'.mysql_real_escape_string($msg['to']).'" LIMIT 1'));
	if(isset($qix['id'])) {
	  $r['js'] .= 'chat.sendMsg(["new", "'.time().'", "6", "", "'.$user['login'].'", "<b>Вас добавили в игнор</b>: Вы не можете отправлять сообщения персонажу &quot;'.htmlspecialchars($msg['to']).'&quot;.", "Black", "1", "1", "0"]);';
	  $msg['cancel']++;
	} elseif($msg['type'] == 3 && $user['level'] < 0) {
	  $r['js'] .= 'chat.sendMsg(["new", "'.time().'", "6", "", "'.$user['login'].'", "<small>Отправлять сообщения в <b>приват</b> могут персонажи старше нулевого уровня.</small>", "Black", "1", "1", "0"]);';
	  $msg['cancel']++;
	}
    
    if($msg['type'] == 3 && $msg['to'] == 'klan') {
	  if($user['klan']== '') {
		$r['js'] .= 'chat.sendMsg(["new", "'.time().'", "6", "", "'.$user['login'].'", "<small>Вы не являетесь частью одного из <b>Кланов</b> и не можете общаться по этому каналу.</small>", "Black", "1", "1", "0"]);';
		$msg['cancel']++;
	  } else {
		$msg['to'] = 'k'.$user['klan'];
		$msg['da'] = 1;
	  }
	} elseif($msg['type'] == 3 && $msg['to'] == 'paladins') {
	  if($user['align'] <= 1 || $user['align'] >= 2) {
		$r['js'] .= 'chat.sendMsg(["new", "'.time().'", "6", "", "'.$user['login'].'", "<small>Вы не являетесь частью <b>Ордена Света</b> и не можете общаться по этому каналу.</small>", "Black", "1", "1", "0"]);';
		$msg['cancel']++;
	  } else {
		$msg['type'] = -3;
	  }
	}
    
    if(isset($sleep['id'])) {
      $msg['molch'] = 1;
    }
    
    if($msg['cancel'] == 0) {
      if(is_array($msg['to'])) {
		$msg['to'] = '';
	  }

      if($msg['type'] == 3 && $msg['da'] > 0) {
		$msg['type'] = -3;
	  }
      
      $nosend = 0;
      
      if($nosend == 0) {
        $activ = 1;
        mysql_query('INSERT INTO `chat` (`active`, `invis`, `da`, `delete`, `molch`, `new`, `login`, `to`, `city`, `room`, `time`, `type`, `spam`, `text`, `toChat`, `color`, `typeTime`, `sound`, `global`) VALUES (
					"'.$activ.'",
					"'.$user['invis'].'",
					"'.$msg['da'].'",
					"'.$msg['delete'].'",
					"'.$msg['molch'].'",
					"1",
					"'.$msg['login'].'",
					"'.mysql_real_escape_string($msg['to']).'",
					"'.$user['city'].'",
					"'.$user['room'].'",
					"'.$msg['time'].'",
					"'.$msg['type'].'",
					"'.$msg['spam'].'",
					"'.mysql_real_escape_string($_POST['msg']).'",
					"'.$msg['toChat'].'",
					"'.$msg['color'].'",
					"'.$msg['typeTime'].'",
					"'.$msg['sound'].'",
					"'.$msg['global'].'")');
      }
    }
  }
}

if($_GET['r1'] != 0) {
  $sp = mysql_query('SELECT `align`, `u`.`id`, `klan`, `action`, `level`, `login`, `caveleader`, `u`.`battle` AS `in_battle`, `o`.`date`, `u`.`invis`, (SELECT `id` FROM `effects` WHERE `type` = 2 AND `owner` = `u`.`id` LIMIT 1) AS `slp`, (SELECT `id` FROM `effects` WHERE (`type` = 11 OR `type` = 12 OR `type` = 13  OR `type` = 14) AND `owner` = `u`.`id` LIMIT 1) AS `trv`, `deal` FROM `online` AS `o`, `users` AS `u` WHERE `o`.`id` = `u`.`id` AND (`o`.`date` >= '.(time()-90).' OR `u`.`in_tower` = 1) AND `o`.`room` = "'.$user['room'].'" ORDER by `u`.`login`');
  $ar_id = 0; $ar_lvl = 0; $ar_all = 0; $usl = array(); $cw = array(); $usid = array();
  while($pl = mysql_fetch_array($sp)) {
    $ysee = 1;

    if(!isset($usl[$pl['login']])) {
	  $ysee = 1;
    }
    
    if((int)$_GET['r3'] != 1) {
	  if($user['caveleader'] > 0 && $user['caveleader'] != $pl['caveleader']) {
		$ysee = 0;
	  }
    }
    
    if($usid[$pl['login']] == true) {
	  $ysee = 0;
    }
    
    $usl[$pl['login']] = $pl['id'];
    
    if(($pl['date'] > time()-90) && $ysee == 1) {
      if(($pl['invis'] != 1)) {
        $usid[$pl['login']] = true;
        $pl['atack'] = 0;
        $pl['molch1'] = (0+$sleep['time']);
        if($pl['klan'] != '') {
          $cl = mysql_fetch_array(mysql_query('SELECT `id`, `name` FROM `clans` WHERE `id` = "'.$pl['klan'].'" LIMIT 1'));
          $pl['klan'] = $cl['name'];
        }
        
        if(iconv("utf-8", "utf-8", $pl['login']) != '') {
          $pl['login'] = iconv("utf-8", "utf-8", $pl['login']);
        }

        $r['list'] .= '"'.$r['xu'].'":["'.$pl['id'].'","'.$pl['login'].'","'.$pl['level'].'","'.$pl['align'].'","'.$pl['klan'].'","capitalcity","capitalcity","'.$pl['room'].'","","","'.$pl['block'].'","'.$pl['molch1'].'","'.$pl['battle'].'","0","","'.$pl['sex'].'"],';
        $ar_id  += $pl['id'];
        $ar_lvl += $pl['level'];
	    $ar_all += $pl['align']+$pl['klan']+$pl['molch1']+$pl['block']+$pl['battle'];
      }
      $r['xu']++;
    }
  }
  unset($pl, $sp);
  $r['list'] = rtrim($r['list'], ',');
  $r['list'] = '{'.$r['list'].'}';

}


if(isset($_GET['mid']) && !isset($_POST['mid'])) {
  $_POST['mid'] = $_GET['mid'];
}

$r['msg'] = ''; $i = 0; $l = 0;

$sp = mysql_query('SELECT `frv`,`id`,`dn`,`active`,`invis`,`login`,`to`,`city`,`room`,`time`,`type`,`spam`,`text`,`toChat`,`color`,`typeTime`,`sound`,`global`,`delete`,`molch`,`da` FROM `chat` WHERE 
		(
			(
				`delete` > 0
			AND
				`time` > '.(time()-360).'
			)
			OR
			(
						`time` > '.(time()-120).'
				OR
					(
							`time` = -1
						AND
						(
							`to` = "'.$user['login'].'"
						OR
							`type` = 8
						)
					)
				OR
					(
							`time` < -1
						AND
							`time` > -'.time().'
						AND
							(
								`to` = "'.$user['login'].'"
							OR
								`type` = 8
							OR
								`to` = ""
							)
					)
			)
		)
		AND
			`new` = "1"
		AND
			(
				`id` > '.((int)$_POST['mid']).'
			OR
				`delete` > 0
			OR
				`spam` > 0
			OR
				(
					`time` < 0
				AND
					`time` > -'.time().'
				AND
					(
						`to` = "'.$user['login'].'"
					OR
						`to` = ""
					)
				)
			)
		ORDER BY `id` ASC LIMIT 250');

while($pl = mysql_fetch_array($sp)) {
  if($pl['delete'] > 0) {
	$r['msg'] .= ', "m'.$i.'":["'.$pl['id'].'", "", "delete", "", "", "", "", "", "", "0", "0", "0", "1", "", ""]';	
  }
  
  if($pl['type'] == 6 || $pl['type'] == 8) { $pl['city'] = $user['city']; }
  
  $see = 1;
  
  if($pl['type'] == 8 && $user['align'] != 2.99 && (($user['align'] <= 1 || $user['align'] >= 2))) {
	$see = 0;
  }
  
  if($pl['type'] > 0 && $pl['type'] < 4 && $pl['room'] != 0) {
	$pl['room'] = $user['room'];
	$pl['city'] = $user['city'];
  }
  
  if((($pl['type'] == 3 || $pl['type'] == 4) && ($pl['city'] == $user['city'] || $pl['global'] == 1)) || (($pl['type'] == 5 || $pl['type'] == 6 || ($pl['type'] == 8 && ($user['align'] == 2.99 || ($user['align'] > 1 && $user['align'] < 2)))) && ($pl['city'] == $user['city'] || $pl['global'] == 1)) || ($pl['type'] == 7 && $pl['city'] == $user['city'] && $pl['room'] == $user['room']) || ($pl['type'] == 6 && ($pl['city'] == $user['city'] || $pl['global'] == 1)) || $pl['type'] == 9 || $pl['type'] == 10) { 
	if($pl['to'] != '' && $pl['login'] != $user['login'] && $pl['to'] != $user['login']) {
	  $n = 0;
	  $ex = explode(',', $pl['to']);
	  $j = 0;
	  while($j < count($ex)) {
		if(trim($ex[$j], ' ') == $user['login']) {
		  $n++;
		}
		$j++;
	  }	
	  if($n == 0) {
		$see = 0;
	  }
	  unset($n, $j, $ex);		
	}
  }

  if($pl['type'] == -3 && ($pl['to'] == 'k'.$user['klan'] || ($pl['to'] == 'paladins' && $user['align'] > 1 && $user['align'] < 2))) {
	$pl['type'] = 3;
	if($pl['to'] == 'k'.$user['klan']) {
	  $pl['to'] = 'klan';
	}
	$see = 1;
  } elseif($pl['type'] == -3) {
	$see = 0;
  }
  
  if($pl['type'] == 6 && $pl['room'] > 0 && $pl['room'] != $user['room'] && $pl['to'] == '') {
	$see = 0;
  }
  
  if($pl['type'] == 8 && $pl['city'] != $user['city'] && $pl['global'] == 0) {
	$see = 0;
  }

  if($pl['molch'] > 0) {
	$see = 0;
  }

  if(($pl['type'] == 1 || $pl['type'] == 2) && ($pl['room'] != $user['room'] || $pl['city'] != $user['city']) && ($pl['global'] == 0 || $_COOKIE['chatCfg11'] == 0)) {
	$see = 0;
  }
  
  if($pl['global'] == 1 && $pl['city'] == $user['city'] && $pl['type'] != -3) {
	$see = 1;
  }
  
  if($pl['city'] != $user['city'] && $pl['global'] == 0) {
	$see = 0;
  }
  
  if($pl['active'] == 1 && $user['align'] != 2.99 && $pl['login'] != $user['login']) {
	if($user['align'] > 1 && $user['align'] < 2) {

	} else {
	  $see = 0;
	}
  }

  
  if($see == 1 && $pl['delete'] == 0 && $pl['login'] != '') {
	$qix = mysql_fetch_array(mysql_query('SELECT `id` FROM `friends` WHERE `ignor` > 0 AND `login_ignor` = "'.mysql_real_escape_string($pl['login']).'" AND `user` = "'.$user['id'].'" ) LIMIT 1'));
	if(isset($qix['id'])) {
	  $see = 0;
	}
	unset($qix);	
  }
  
  if($see == 1 && $pl['delete'] == 0) {
    if($pl['time'] < 0) {
	  if($pl['to'] == '') {
		$lmsch = mysql_fetch_array(mysql_query('SELECT `id` FROM `chat` ORDER BY `id` DESC LIMIT 1'));
		if(isset($lmsch['id'])) {
		  $lmsch['id']++;
		  mysql_query('UPDATE `chat` SET `id` = "'.$lmsch['id'].'", `time` = "'.time().'" WHERE `id` = "'.$pl['id'].'" LIMIT 1');
		  $pl['id'] = $lmsch['id'];
		} else {
		  mysql_query('UPDATE `chat` SET `time` = "'.time().'" WHERE `id` = "'.$pl['id'].'" LIMIT 1');
		}
	  } else {
		mysql_query('UPDATE `chat` SET `time` = "'.time().'" WHERE `id` = "'.$pl['id'].'" LIMIT 1');
	  }
	  $pl['time'] = time();
	}
    
    if($pl['delete'] > 0) {
	  $r['msg'] .= ', "'.$i.'":{"d":"'.$pl['id'].'"}';
	} elseif($pl['spam'] > 0) {
	  $r['msg'] .= ', "'.$i.'":{"s":"'.$pl['id'].'"}';
	} else {
      if($pl['type'] != 3) {
		if($pl['invis'] == 1) {
		  if($user['align'] != 2.99) {
			$pl['login'] = '<b><i>Невидимка</i></b>';
		  } else {
			$pl['login'] = '<b><i>Невидимка</i></b> <small>('.$pl['login'].')</small>';
		  }	
		}
	  }
      
      $r['msg'] .= ', "m'.$i.'":["'.$pl['id'].'", "'.$pl['time'].'", "'.$pl['type'].'", "'.$pl['login'].'", "'.$pl['to'].'", "'.$pl['text'].'", "'.$pl['color'].'", "'.$pl['toChat'].'", "'.$pl['typeTime'].'", "'.$pl['sound'].'", "'.$pl['global'].'", "'.$pl['molch'].'", "'.$pl['active'].'", "'.date('H:i', $pl['time']).'","'.date('d.m.Y H:i', $pl['time']).'", "'.$pl['frv'].'"]';
	}
  }
  
  if($l < $pl['id']) {
	$l = $pl['id'];
  }
  $i++;
}

$r['msg'] = '{"ld":"'.(0+$l).'", "id":"'.$i.'"'.$r['msg'].'}';

$r['key'] = md5($uroom.'+'.$ar_id.'+'.$ar_lvl.'+'.$ar_all);

unset($ar_id, $ar_lvl);

if($_COOKIE['chatCfg12'] == 0) {
  $_GET['key'] = time();
}

if($r['key'] == $_GET['key']) {
  unset($r['rn'], $r['list'], $r['key'], $r['xu']);
} elseif($_GET['r1'] != 0) {
  $r['rn'] = $uroom;
  $r['list'] = $r['list'];
}

if($r['js'] != NULL) {
  $r['js'] = $r['js'];
} else {
  unset($r['js']);
}

if($r['msg'] != NULL) {
  $r['msg'] = $r['msg'];
} else {
  unset($r['msg']);
}

unset($c, $u, $db);
$r = json_encode($r);
echo $r;
unset($r);
?>