<?php
defined('GCMS') or die('Ошибка!');
////Файл,отвечающий за функции и операции (Идиотам не суваться!)
    //Кодировщик
function shit($s){       
	$s = htmlspecialchars($s);
	$search = array("\n",'|', '\'', '$', '\\', '^', '%', '`', "\0", "\x00", "\x1A", "‮⁄⁪⁫⁬∩");
	$replace = array('<br />','&#124;', '&#39;', '&#36;', '&#92;', '&#94;', '&#37;', '&#96;', '', '', '', '');
	$s = str_replace($search, $replace, $s);
	$s = stripslashes(trim($s));
	return $s;
}
//Выводим линк ссылкой
function url_replace($u)
{
    if (!isset($u[3])) {
        return '<a href="' . $u[1] . '" target="_blank"> ' . $u[2] . ' </a> ';
    } else {
    if($nastr['reklama']=='1'){
        return '<a href="/exit.php?mode=' . $u[3] . '&do=' . $u[3] . '&act='.$_SERVER['REQUEST_URI'] .'" target="_blank"> ' . $u[3] . ' </a> ';
        }
        else{return 'Реклама запрещена!';}
    }
}
function img($i)
{
        return '<img src="http://'.$i[1].'" alt="Изображение" width="120"/>';
}
function size($s)
{
        return '<font size="'.$s[1].'">'.$s[2].'</font>';
}
final class func {
//функция со склонением в зависимости от числа
function GetName ($col, $name_one, $name_two, $name_three) {
	$col = abs($col) % 100;
	$intval = $col % 10;
	
	if ($col > 10 && $col < 20) {
		return $col.' '.$name_three;
	}
	else if ($intval > 1 && $intval < 5) {
		return $col.' '.$name_two;
	}
	else if ($intval == 1) {
		return $col.' '.$name_one;
	}
	
	return $col.' '.$name_three;
}
function translate1 ($text){
	$str = explode('!', $text);
	$a = array('_','YA','Ya','ya','yee','YO','yo','Yo','ZH','zh','Zh','Z','z','CH','ch','Ch','SH','sh','Sh','YE','ye','Ye','YU','yu','Yu','JA','ja','Ja','A','a','B','b','V','v','G','g','D','d','E','e','I','i','J','j','K','k','L','l','M','m','N','n','O','o','P','p','R','r','S','s','T','t','U','u','F','f','H','h','W','w','x','q','Y','y','C','c','!');
	$b = array(' ','Я','Я','я','ые','Ё','ё','Ё','Ж','ж','Ж','З','з','Ч','ч','Ch','Ш','ш','Ш','Э','э','Э','Ю','ю','Ю','Я','я','Я','А','а','Б','б','В','в','Г','г','Д','д','Е','е','И','и','Й','й','К','к','Л','л','М','м','Н','н','О','о','П','п','Р','р','С','с','Т','т','У','у','Ф','ф','Х','х','Щ','щ','ъ','ь','Ы','ы','Ц','ц','');
	return $str[0].str_replace($a, $b, $str[1]);
}
function translate2 ($text) {
	return str_replace('_', ' ', $text);
}
//Размер файла
function size($file) {
	if ($file >= 1048576000) {
		$file = round(($file / 1073741824), 2)." Gb";
	} elseif ($file >= 1024000) {
		$file = round(($file / 1048576), 2)." Mb";
	} elseif ($file >= 1000) {
		$file = round(($file / 1024), 2)." Kb";
	} else {
		$file = round($file)." byte";
	} 
	return $file;
} 
//Перевод времени
public function times($time) {
$dat = explode(' ',$time);
if ($dat[0]{0} == '0') $dat[0] = substr($dat[0],1);
$dat[1] = strtr($dat[1],array('01' => 'Января', '02' => 'Февраля', '03' => 'Марта', '04' => 'Апреля',
'05' => 'Мая', '06' => 'Июня', '07' => 'Июля', '08' => 'Августа', '09' => 'Сентября','10' => 'Октября',
'11' => 'Ноября', '12' => 'Декабря'));
$time = implode(' ',$dat);
return $time;
}

//Месяца 
public function mes($mon) {
$mon = strtr($mon,array('1' => 'Января','2' => 'Февраля', '3' => 'Марта', '4' => 'Апреля', '5' => 'Мая', '6' => 'Июня',
'7' => 'Июля', '8' => 'Августа', '9' => 'Сентября', '10' => 'Октября', '11' => 'Ноября', '12' => 'Декабря'));
return $mon;
}
//Функция со временем
public function vremja($time = NULL) {
if ($time == NULL) $time = time();
$timep = date('d M Y в H:i', $time);
$time_p[0] = date('d M Y', $time);
$time_p[1] = date('H:i', $time);
$time_p[2] = date('H:i:s', $time);
if ($time_p[0] == date('d M Y')) $timep = 'Сегодня в '.$time_p[2].'';
if ($time_p[0] == date('d M Y', time()-60 * 60 * 24)) $timep = 'Вчера в '.$time_p[1];
if ($time_p[0] == date('d M Y', time()-60 * 60 * 48)) $timep = 'Позавчера в '.$time_p[1];
$timep = str_replace(array('Jan','Feb','Mar','May','Apr','Jun','Jul','Aug','Sep','Oct','Nov','Dec'),
array('Янв','Фев','Марта','Мая','Апр','Июня','Июля','Авг','Сент','Окт','Ноября','Дек'),$timep);
return $timep;
}
///Перевод секунд в нужный формат
function ontime($string) { 
if(floor($string/86400)>0)
{$day=floor($string/86400).'  дней '; }else{$day=null;}
$hours=floor(($string/3600)-$day*24); 
$min=floor(($string-$hours*3600-$day*86400)/60); 
$sec=$string-($min*60+$hours*3600+$day*86400); 
return $day.''.$hours.'ч. '.$min.'м. '.$sec.'сек.';
}
// Вырезание bb-кодов из цитаты
public function nobb($text = '') {
    $text = strtr($text, array('[c]' => '', '[/c]' => '','[blue]' => '', '[/blue]' => ''));
    return $text;
}
// Вырезание пробелов
public function delprobel($text = '') {
    $text = strtr($text, array(' ' => ''));
    return $text;
}
// Вырезание ненужных символов
public function delsim($text = '') {
    $text = strtr($text, array('%' => '','_' => ''));
    return $text;
}
// Выбор пёрфикса для файлов
public function perf($text) {
    $text = strtr($text, array('.' => '_'));
    return $text;
}
////Корректировка html переносов
function br($msg)
{
$search = array("<br />");
$replace = array('');
$msg = str_replace($search, $replace, $msg);
return $msg;
}
///bb-коды
public function tags($var)
{
$var = preg_replace('#\[center\](.*?)\[/center\]#si', '<center>\1</center>', $var);
$var = preg_replace('#\[b\](.*?)\[/b\]#si', '<span style="font-weight: bold;"> \1 </span>', $var);
$var = preg_replace('#\[i\](.*?)\[/i\]#si', '<span style="font-style:italic;"> \1 </span>', $var);
$var = preg_replace('#\[u\](.*?)\[/u\]#si', '<span style="text-decoration:underline;"> \1 </span>', $var);
$var = preg_replace('#\[s\](.*?)\[/s\]#si', '<span style="text-decoration: line-through;"> \1 </span>', $var);
$var = preg_replace('#\[red\](.*?)\[/red\]#si', '<span style="color:red"> \1 </span>', $var);
$var = preg_replace('#\[green\](.*?)\[/green\]#si', '<span style="color:green"> \1 </span>', $var);
$var = preg_replace('#\[blue\](.*?)\[/blue\]#si', '<span style="color:blue"> \1 </span>', $var);
$var = preg_replace('#\[c\](.*?)\[/c\]#si', '<div class="cit">Цитата: \1 </div>', $var);  
$var = preg_replace_callback("#\[url=(https?://.+)\](.+)\[/url\]|(https?://\S+[^\s.,>)\];'\"!?])#",'url_replace', $var);
$var = preg_replace_callback("#\[img=(.+)\]#",'img', $var);
$var = preg_replace_callback("#\[size=(.+)\](.+)\[/size\]#",'size', $var);
return $var;
}
// Функция смайлов
public function smiles($text){
$text = strtr($text, array(
':P'=>'<img src="'.ROOT.'../smiles/)P.gif" alt=")P"/>',
':-P'=>'<img src="'.ROOT.'../smiles/)P.gif" alt=":-P"/>',
':язык:'=>'<img src="'.ROOT.'../smiles/)P.gif" alt=":язык:"/>',
':flow:'=>'<img src="'.ROOT.'../smiles/flowers.gif" alt="flowers"/>',
':цветы:'=>'<img src="'.ROOT.'../smiles/flowers.gif" alt=":цветы:"/>',
':)'=>'<img src="'.ROOT.'../smiles/=).gif" alt="=)"/>',
':-)'=>'<img src="'.ROOT.'../smiles/=).gif" alt="=)"/>',
':улыбка:'=>'<img src="'.ROOT.'../smiles/=).gif" alt=":улыбка:"/>',
':2pistoleta:'=>'<img src="'.ROOT.'../smiles/2pistoleta.gif" alt=":2pistoleta:"/>',
':2пистолета:'=>'<img src="'.ROOT.'../smiles/2pistoleta.gif" alt=":2пистолета:"/>',
':admin:'=>'<img src="'.ROOT.'../smiles/admin.gif" alt=":admin:"/>',
':админ:'=>'<img src="'.ROOT.'../smiles/admin.gif" alt=":админ:"/>',
':apl:'=>'<img src="'.ROOT.'../smiles/apl.gif" alt=":apl:"/>',
':апл:'=>'<img src="'.ROOT.'../smiles/apl.gif" alt=":апл:"/>',
':boomba:'=>'<img src="'.ROOT.'../smiles/bomba.gif" alt=":bomba:"/>',
':бомба:'=>'<img src="'.ROOT.'../smiles/bomba.gif" alt=":бомба:"/>',
':думаю:'=>'<img src="'.ROOT.'../smiles/dumay.gif" alt=":думаю:"/>',
':dum:'=>'<img src="'.ROOT.'../smiles/dumay.gif" alt=":dum:"/>',
':фиг:'=>'<img src="'.ROOT.'../smiles/fig.gif" alt=":фиг:"/>',
':fig:'=>'<img src="'.ROOT.'../smiles/fig.gif" alt=":fig:"/>',
':хочу:'=>'<img src="'.ROOT.'../smiles/hachu.gif" alt=":хочу:"/>',
':hochu:'=>'<img src="'.ROOT.'../smiles/hachu.gif" alt=":hochu:"/>',
':хай:'=>'<img src="'.ROOT.'../smiles/hi.gif" alt=":хай:"/>',
':hi:'=>'<img src="'.ROOT.'../smiles/hi.gif" alt=":hi:"/>',
':лове:'=>'<img src="'.ROOT.'../smiles/in_love.gif" alt=":лове:"/>',
':in_love:'=>'<img src="'.ROOT.'../smiles/in_love.gif" alt=":in_love:"/>',
':D'=>'<img src="'.ROOT.'../smiles/yxaxa.gif" alt=":D"/>',
':-D'=>'<img src="'.ROOT.'../smiles/yxaxa.gif" alt=":-D"/>',
'Хд'=>'<img src="'.ROOT.'../smiles/yxaxa.gif" alt="Хд"/>',
':вис:'=>'<img src="'.ROOT.'../smiles/vis.gif" alt=":вис:"/>',
':vis:'=>'<img src="'.ROOT.'../smiles/vis.gif" alt=":vis:"/>',
':пока:'=>'<img src="'.ROOT.'../smiles/poka.gif" alt=":пока:"/>',
':poka:'=>'<img src="'.ROOT.'../smiles/poka.gif" alt=":poka:"/>',
':ура:'=>'<img src="'.ROOT.'../smiles/ura.gif" alt=":ура:"/>',
':ura:'=>'<img src="'.ROOT.'../smiles/ura.gif" alt=":ura:"/>',
':b2:'=>'<img src="'.ROOT.'../smiles/b2.gif" alt=":b2:"/>',
':б2:'=>'<img src="'.ROOT.'../smiles/b2.gif" alt=":б2:"/>',
':б3:'=>'<img src="'.ROOT.'../smiles/b3.gif" alt=":б3:"/>',
':b3:'=>'<img src="'.ROOT.'../smiles/b3.gif" alt=":b3:"/>',
':б4:'=>'<img src="'.ROOT.'../smiles/b4.gif" alt=":б4:"/>',
':b4:'=>'<img src="'.ROOT.'../smiles/b4.gif" alt=":b4:"/>',
':б5:'=>'<img src="'.ROOT.'../smiles/b5.gif" alt=":б5:"/>',
':b5:'=>'<img src="'.ROOT.'../smiles/b5.gif" alt=":b5:"/>',
':поцелуй:'=>'<img src="'.ROOT.'../smiles/kiss.gif" alt=":поцелуй:"/>',
':kiss:'=>'<img src="'.ROOT.'../smiles/kiss.gif" alt=":kiss:"/>',
':калека:'=>'<img src="'.ROOT.'../smiles/kaleka.gif" alt=":калека:"/>',
':kaleka:'=>'<img src="'.ROOT.'../smiles/kaleka.gif" alt=":kaleka:"/>',
':мд:'=>'<img src="'.ROOT.'../smiles/mod.gif" alt=":мд:"/>',
':md:'=>'<img src="'.ROOT.'../smiles/mod.gif" alt=":md:"/>',
':ненадо:'=>'<img src="'.ROOT.'../smiles/nenado.gif" alt=":ненадо:"/>',
':nenado:'=>'<img src="'.ROOT.'../smiles/nenado.gif" alt=":nenado:"/>',
':o_O:'=>'<img src="'.ROOT.'../smiles/o_O.gif" alt=":o_O:"/>',
':о_О:'=>'<img src="'.ROOT.'../smiles/о_О.gif" alt=":о_О:"/>',
':neznay:'=>'<img src="'.ROOT.'../smiles/neznay.gif" alt=":neznay:"/>',
':незнаю:'=>'<img src="'.ROOT.'../smiles/neznay.gif" alt=":незнаю:"/>',
':nukana:'=>'<img src="'.ROOT.'../smiles/nukana.gif" alt=":nukana:"/>',
':нукана:'=>'<img src="'.ROOT.'../smiles/nukana.gif" alt=":нукана:"/>',
':ofigel:'=>'<img src="'.ROOT.'../smiles/ofigel.gif" alt=":ofigel:"/>',
':офигел:'=>'<img src="'.ROOT.'../smiles/ofigel.gif" alt=":офигел:"/>',
':pank:'=>'<img src="'.ROOT.'../smiles/pank.gif" alt=":pank:"/>',
':панк:'=>'<img src="'.ROOT.'../smiles/pank.gif" alt=":панк:"/>',
':sw:'=>'<img src="'.ROOT.'../smiles/star.gif" alt=":ws:"/>',
':старвар:'=>'<img src="'.ROOT.'../smiles/star.gif" alt=":старвар:"/>',
':soska:'=>'<img src="'.ROOT.'../smiles/soska.gif" alt=":soska:"/>',
':соска:'=>'<img src="'.ROOT.'../smiles/soska.gif" alt=":соска:"/>',
':ploho:'=>'<img src="'.ROOT.'../smiles/ploho.gif" alt=":ploho:"/>',
':плохо:'=>'<img src="'.ROOT.'../smiles/ploho.gif" alt=":рлохо:"/>',
':симп:'=>'<img src="'.ROOT.'../smiles/simp.gif" alt=":симп:"/>',
':-]'=>'<img src="'.ROOT.'../smiles/simp.gif" alt=":-]"/>',
':simp:'=>'<img src="'.ROOT.'../smiles/simp.gif" alt=":simp:"/>',
':слеза:'=>'<img src="'.ROOT.'../smiles/sleza.gif" alt=":слеза:"/>',
':sleza:'=>'<img src="'.ROOT.'../smiles/sleza.gif" alt=":sleza:"/>',
':пуф:'=>'<img src="'.ROOT.'../smiles/puf.gif" alt=":пуф:"/>',
':puf:'=>'<img src="'.ROOT.'../smiles/puf.gif" alt=":puf:"/>',
':пох:'=>'<img src="'.ROOT.'../smiles/poh.gif" alt=":пох:"/>',
':poh:'=>'<img src="'.ROOT.'../smiles/poh.gif" alt=":poh:"/>',
':бан:'=>'<img src="'.ROOT.'../smiles/bann.gif" alt=":бан:"/>',
':bann:'=>'<img src="'.ROOT.'../smiles/bann.gif" alt=":bann:"/>',
':темаоткрыта:'=>'<img src="'.ROOT.'../smiles/temaotkr.gif" alt=":темаоткрыта:"/>',
':temaopen:'=>'<img src="'.ROOT.'../smiles/temaotkr.gif" alt=":temaopen:"/>',
':темазакрыта:'=>'<img src="'.ROOT.'../smiles/temazakr.gif" alt=":темазакрыта:"/>',
':temaclose:'=>'<img src="'.ROOT.'../smiles/temazakr.gif" alt=":temaclose:"/>',
':нх:'=>'<img src="'.ROOT.'../smiles/dont.gif" alt=":нх:"/>',
':nh:'=>'<img src="'.ROOT.'../smiles/dont.gif" alt=":nh:"/>',
':вз:'=>'<img src="'.ROOT.'../smiles/125.gif" alt=":вз:"/>',
':vz:'=>'<img src="'.ROOT.'../smiles/125.gif" alt=":vz:"/>',
':хб:'=>'<img src="'.ROOT.'../smiles/119.gif" alt=":хб:"/>',
':hb:'=>'<img src="'.ROOT.'../smiles/119.gif" alt=":hb:"/>',
':OoO:'=>'<img src="'.ROOT.'../smiles/OoO.gif" alt=":OoO:"/>',
':ОоО:'=>'<img src="'.ROOT.'../smiles/OoO.gif" alt=":ОоО:"/>',
':фн:'=>'<img src="'.ROOT.'../smiles/118.gif" alt=":фн:"/>',
':fn:'=>'<img src="'.ROOT.'../smiles/118.gif" alt=":fn:"/>',
':сомнение:'=>'<img src="'.ROOT.'../smiles/somnevays.gif" alt=":сомнение:"/>',
':somn:'=>'<img src="'.ROOT.'../smiles/somnevays.gif" alt=":somn:"/>',
':да:'=>'<img src="'.ROOT.'../smiles/yes.gif" alt=":да:"/>',
':yes:'=>'<img src="'.ROOT.'../smiles/yes.gif" alt=":yes:"/>',
':vsp:'=>'<img src="'.ROOT.'../smiles/124.gif" alt=":vsp:"/>',
':всп:'=>'<img src="'.ROOT.'../smiles/124.gif" alt=":всп:"/>',
':вхай:'=>'<img src="'.ROOT.'../smiles/vhi.gif" alt=":вхай:"/>',
':vhi:'=>'<img src="'.ROOT.'../smiles/vhi.gif" alt=":vhi:"/>',
':perec:'=>'<img src="'.ROOT.'../smiles/perec.gif" alt=":perec:"/>',
':перец:'=>'<img src="'.ROOT.'../smiles/perec.gif" alt=":перец:"/>',
':olen:'=>'<img src="'.ROOT.'../smiles/olen.gif" alt=":olen:"/>',
':олень:'=>'<img src="'.ROOT.'../smiles/olen.gif" alt=":олень:"/>',
':pirat:'=>'<img src="'.ROOT.'../smiles/pirat.gif" alt=":pirat:"/>',
':пират:'=>'<img src="'.ROOT.'../smiles/pirat.gif" alt=":пират:"/>',
':ded:'=>'<img src="'.ROOT.'../smiles/ded.gif" alt=":ded:"/>',
':дед:'=>'<img src="'.ROOT.'../smiles/ded.gif" alt=":дед:"/>',
':shok:'=>'<img src="'.ROOT.'../smiles/shok.gif" alt=":shok:"/>',
':шок:'=>'<img src="'.ROOT.'../smiles/shok.gif" alt=":шок:"/>',
':facepalm:'=>'<img src="'.ROOT.'../smiles/facepalm.gif" alt=":facepalm:"/>',
':фейспалм:'=>'<img src="'.ROOT.'../smiles/facepalm.gif" alt=":фейспалм:"/>',
':dikoy:'=>'<img src="'.ROOT.'../smiles/dikoy.gif" alt=":dikoy:"/>',
':дикий:'=>'<img src="'.ROOT.'../smiles/dikoy.gif" alt=":дикий:"/>',
':zver:'=>'<img src="'.ROOT.'../smiles/zver.gif" alt=":zver:"/>',
':зверь:'=>'<img src="'.ROOT.'../smiles/zver.gif" alt=":зверь:"/>',
':crazy:'=>'<img src="'.ROOT.'../smiles/crazy.gif" alt=":crazy:"/>',
':крези:'=>'<img src="'.ROOT.'../smiles/crazy.gif" alt=":крези:"/>',
':pn:'=>'<img src="'.ROOT.'../smiles/pn.gif" alt=":pn:"/>',
':пнах:'=>'<img src="'.ROOT.'../smiles/pn.gif" alt=":пнах:"/>',
':mda:'=>'<img src="'.ROOT.'../smiles/mda.gif" alt=":mda:"/>',
':мда:'=>'<img src="'.ROOT.'../smiles/mda.gif" alt=":мда:"/>',
':bravo:'=>'<img src="'.ROOT.'../smiles/bravo.gif" alt=":bravo:"/>',
':браво:'=>'<img src="'.ROOT.'../smiles/bravo.gif" alt=":браво:"/>',
':news:'=>'<img src="'.ROOT.'../smiles/chit.gif" alt=":news:"/>',
':невс:'=>'<img src="'.ROOT.'../smiles/chit.gif" alt=":невс:"/>',
));
return $text;
}
//Функция вывода ника
public function user($user) {
global $db;
$arr = $db -> query("SELECT * FROM `users` WHERE `id` = '$user'")->fetch_array();
if ($arr > 0){
$only = $db -> query("SELECT * FROM `online` WHERE `login` = '$arr[login]'")->fetch_array();
if($only>''){
$log='<a href="'.ROOT.'id'.$user.'">'.$arr['login'].'</a>
<img src="'.ROOT.'styles/'.STYLE.'/images/online.png" alt="ON"/>';}else{
$log='<a href="'.ROOT.'id'.$user.'">'.$arr['login'].'</a>
<img src="'.ROOT.'styles/'.STYLE.'/images/offline.png" alt="OFF"/>';}
}else
{$log='[Удалён]';}
return $log;
}
//Навигация
public function pagenav($act,$page,$total) {
// Проверяем нужны ли стрелки назад  
if ($page != 1) $pervpage = '<a href="'.$act.'&amp;page=1"><<</a>  
                               <a href="'.$act.'&amp;page='. ($page - 1) .'">Назад</a> | ';  
// Проверяем нужны ли стрелки вперед  
if ($page != $total) $nextpage = ' <a href="'.$act.'&amp;page='. ($page + 1) .'">Далее</a>  
                                   <a href="'.$act.'&amp;page=' .$total. '">>></a>';  
// Находим три ближайшие станицы с обоих краев, если они есть  
if($page - 3 > 0) $page3left = ' <a href="'.$act.'&amp;page='. ($page - 3) .'">'. ($page - 3) .'</a> | ';  
if($page - 2 > 0) $page2left = ' <a href="'.$act.'&amp;page='. ($page - 2) .'">'. ($page - 2) .'</a> | ';  
if($page - 1 > 0) $page1left = '<a href="'.$act.'&amp;page='. ($page - 1) .'">'. ($page - 1) .'</a> | ';  
if($page + 3 <= $total) $page3right = ' | <a href="'.$act.'&amp;page='. ($page + 3) .'">'. ($page + 3) .'</a>';  
if($page + 2 <= $total) $page2right = ' | <a href="'.$act.'&amp;page='. ($page + 2) .'">'. ($page + 2) .'</a>';  
if($page + 1 <= $total) $page1right = ' | <a href="'.$act.'&amp;page='. ($page + 1) .'">'. ($page + 1) .'</a>'; 
$raz='</br>';
// Вывод страниц
$nav = $pervpage.$nextpage.$raz.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right;
$class= '</div><div class="page">'.$nav.'</div>';
if($page != $total or $page != 1){
return $class;}
}
}
?>