<?php


# Функция отфильтровки чисел
function int($int)
{
 return abs(intval($int));
}

# Функция защиты от нежелательных действий
function protect($text, $max=0)
{
 $max=int($max);
 //экспериментальное удаление null-байта
 $text=str_replace("\0", '', $text);
 if($max) return iconv_substr($text, 0, $max, "utf-8");
 return trim(mysql_real_escape_string(htmlspecialchars($text, ENT_QUOTES, 'utf-8')));
}

# Функции подсветки PHP кода
function highlight_code($code)
{
 $code = stripslashes($code);
   if(!strpos($code,"<?") && substr($code,0,2)!="<?")
   {

     $code="<?php\n".trim($code)."\n?>";

   }
   $code = trim($code);
   return highlight_string($code,true);
}
function code($code)
{
 return preg_replace(array('#\[([code|php]+)\](.*?)\[\/([code|php]+)\]#se'), array("''.highlight_code('\\2').''"), $code);
}

# Функция BB кода
function BBcode($text)
{
 $bbcode = array(
  '/\[url\](.+)\[\/url\]/isU'=>'<a href="$1">$1</a>',
  '/\[url=(.+)\](.+)\[\/url\]/isU'=>'<a href="$1">$2</a>',
  '/\[br]/isU'=>'<br />',
  '/\[i\](.+)\[\/i\]/isU'=>'<i>$1</i>',
  '/\[b\](.+)\[\/b\]/isU'=>'<strong>$1</strong>',
  '/\[del\](.+)\[\/del\]/isU'=>'<span style="text-decoration: line-through">$1</span>',
  '/\[u\](.+)\[\/u\]/isU'=>'<span style="text-decoration:underline">$1</span>',
  '/\[big\](.+)\[\/big\]/isU'=>'<big>$1</big>',
  '/\[small\](.+)\[\/small\]/isU'=>'<small>$1</small>',
  '/\[color=(.+)\](.+)\[\/color\]/isU'=>'<span style="color:#$1">$2</span>',
  '/\[red\](.+)\[\/red\]/isU'=>'<span style="color:#ff0000">$1</span>',
  '/\[yellow\](.+)\[\/yellow\]/isU'=>'<span style="color:#ffff22">$1</span>',
  '/\[green\](.+)\[\/green\]/isU'=>'<span style="color:#00bb00">$1</span>',
  '/\[blue\](.+)\[\/blue\]/isU'=>'<span style="color:#0000bb">$1</span>');
 return preg_replace(array_keys($bbcode),array_values($bbcode),$text);
}


# Функция транслитирования
function translit($t)
{
  $a = array('&', ',', ' ', 'Я', 'Я', 'я', 'ые', 'Ё', 'ё', 'Ё', 'Ж', 'ж', 'Ж', 'З', 'з', 'Ч',
 'ч', 'Ch', 'Ш', 'ш', 'Ш', 'Э', 'э', 'Э', 'Ю', 'ю', 'Ю', 'Я', 'я', 'Я', 'А', 'а',
 'Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', 'Е', 'е', 'И', 'и', 'Й', 'й', 'К', 'к',
  'Л', 'л', 'М', 'м', 'Н', 'н', 'О', 'о', 'П', 'п', 'Р', 'р', 'С', 'с', 'Т', 'т',
   'У', 'у', 'Ф', 'ф', 'Х', 'х', 'Щ', 'щ', 'ъ', 'ь', 'Ы', 'ы', 'Ц', 'ц', '');
    $b = array('and', '_', '_', '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');
    return str_replace($a, $b, $t);
}
function translit1($t)
{
$a = array('&', ',', ' ', 'Я', 'Я', 'я', 'ые', 'Ё', 'ё', 'Ё', 'Ж', 'ж', 'Ж', 'З', 'з', 'Ч',
'ч', 'Ch', 'Ш', 'ш', 'Ш', 'Э', 'э', 'Э', 'Ю', 'ю', 'Ю', 'Я', 'я', 'Я', 'А', 'а',
'Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', 'Е', 'е', 'И', 'и', 'Й', 'й', 'К', 'к',
'Л', 'л', 'М', 'м', 'Н', 'н', 'О', 'о', 'П', 'п', 'Р', 'р', 'С', 'с', 'Т', 'т',
'У', 'у', 'Ф', 'ф', 'Х', 'х', 'Ш', 'ш', 'ъ', 'ь', 'Ы', 'ы', 'Ц', 'ц', '');
$b = array('and', '_', '_', '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');
return str_replace($b, $a, $t);
}

# Функция смайлов
function smiles($msg)
{
$query = mysql_query("select * from `smiles`");
while($row = mysql_fetch_array($query))
{
$code[] = $row['code'];
$codeRUS[] = translit1($row['code']);
$smile_url[] = '<img src="/files/smiles/'.$row['smile_url'].'" alt="smile" />';
}
$msg = str_replace($codeRUS, $smile_url, $msg);
$msg = str_replace($code, $smile_url, $msg);
return $msg;
}
# Текстовый модуль
function text($text)
{
 return code(BBcode(smiles(nl2br($text))));
}

# Функция отображения времени
function clock($time=NUll,$times=NULL)
{
 error_reporting(0);
 if(isset($_COOKIE['login']))
 {
  $user = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `login` = '".mysql_real_escape_string($_COOKIE['login'])."' AND `password` = '".mysql_real_escape_string($_COOKIE['password'])."'"));
  $timesdvig = $user['timesdvig'] * 3600;
 } else { $timesdvig = 0; }
 if ($time==0)
 {
  $time=time();
 }
 if ($times==0)
 {
  $time=$time+$timesdvig;
 }
 else
 {
  $time=$time+intval($times);
 }
 $timep= date("j M Y в H:i:s", $time);
 $time_p[0]=date("j n Y", $time);
 $time_p[1]=date("H:i:s", $time);
 if ($time_p[0]==date("j n Y", time()+$timesdvig))$timep=''.$time_p['1'];
 if ($time_p[0]==date("j n Y", time()+$timesdvig-86400))$timep='Вчера / '.$time_p['1'];
 $months_eng = array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
 $months_rus = array('Января','Февраля','Марта','Апреля','Мая','Июня','Июля','Августа','Сентября','Октября','Ноября','Декабря');
 $timep = str_replace($months_eng,$months_rus,$timep);
 return $timep;
}





# Функции отображения статуса
// по ID
function status($online)
{
 $t = mysql_fetch_assoc(mysql_query("SELECT `time` FROM `users` WHERE id = ".$online.""));
 if($t['time']+300>time())
 {
    echo '  <img src="/statusy/us_on.gif"/> ';
 }
    else
 {
    echo '  <img src="/statusy/us_off.gif"/> ';
 }
}
# по Логину
function statusl($online)
{
 $t = mysql_fetch_assoc(mysql_query("SELECT `time` FROM `users` WHERE login = '".$online."'"));
 if($t['time']+300>time())
 {
    echo ' <img src="/statusy/us_on.gif"/> ';
 }
    else
 {
    echo ' <img src="/statusy/us_off.gif"/> ';
 }
}



# Функция постраничной навигации

$page = isset($_GET['page']) ? int($_GET['page']) : 0; $i=0;
while($i<$page+$set['str'] || $i==0) $i = $i+100;
if($page+$set['str']>100) $pagefile = $page-$i+100;
else $pagefile = $page;

function pages($page, $total, $href, $num){

echo '<div class="block1">';

if ($page) echo '<a href="'.$href.'page='.($page-$num).'">&lt;-Назад</a> ';
else echo '&lt;-Назад';

echo ' | ';

if ($total > $page + $num)
echo ' <a href="'.$href.'page='.($page + $num).'">Далее-&gt;</a>';
else echo 'Далее-&gt;';

if($total>0){

echo '<br/>Страницы:';
$minus = $page-($num*3);
$plus = $page+($num*4);

if($minus<$total && $minus>0) echo ' <a href="'.$href.'page=0">1</a> ... ';

for($i=$minus; $i<$plus;){

if($i<$total && $i>=0){

$ii = floor(1+$i/$num);

if ($page==$i) echo ' <b>['.$ii.']</b>';
else echo ' <a href="'.$href.'page='.$i.'">'.$ii.'</a>';
}
$i=$i+$num;
}

if($plus<$total){
$whole = ceil($total/$num);
echo ' ... <a href="'.$href.'page='.($whole*$num-$num).'">'.$whole.'</a>';
}
}

echo '</div>';
}
# Вывод размера файла
function size($size){

if($size >= 1073741824)
$size = round($size/1073741824*100) / 100 .' Gb';
elseif($size >= 1048576)
$size = round($size/1048576*100) / 100 .' Mb';
elseif($size >= 1024)
$size = round($size/1024*100) / 100 .' Kb';
else $size = round($size).' b';

return $size;
}

function footers(){
echo '<center>Говорить спасибо за скрипт надо сюда <a href="http://masteram.us/7028">McJack</a></center>';
}
# Функция нормального окончания :)
function number($value,$names){
    $temp = strval($value);
    $temp = $temp[strlen($temp)-1];
    return (($temp>1 and $temp <5 and (intval($value)>19 or intval($value)<10))?$names[1]:($temp==1?$names[0]:$names[2]));
}

# Функция определения битрейта
function bitrate($bitrate)
{
 return $bitrate/1000;
}

# Функция только для зарегистрированных пользователей
function reg()
{
if (isset($_COOKIE['login']) and isset($_COOKIE['password']))
{
    $user = mysql_query("SELECT * FROM `users` WHERE `login` = '".mysql_real_escape_string($_COOKIE['login'])."' AND `password` = '".mysql_real_escape_string($_COOKIE['password'])."'");
    if(mysql_num_rows($user) == 1)
    {
     $user = mysql_fetch_assoc($user);
    }
    else
    {
     $user = array();
    }
}
 if(!$user)
 {
  header("Location: ../pages/sign.php");
 }
}

# Функция только для незарегистрированных пользователей
function unreg()
{
 if (isset($_COOKIE['login']) and isset($_COOKIE['password']))
 {
  header("Location: ../index.php");
 }
}

# Функция для определения уровня пользователя
function only_level($level=0) // только для тех, у кого уровень доступа больше или равен $level
{
    $user = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `login` = '".mysql_real_escape_string($_COOKIE['login'])."' AND `password` = '".mysql_real_escape_string($_COOKIE['password'])."'"));
 if (!isset($user) || $user['level'] != $level)
 {
  header("Location: ../index.php");exit;
 }
}

# Функция вывода оператора сотовой связи
function opsos($ips=NULL)
{
global $ip;
if ($ips==NULL)$ips=$ip;
$ipd=ip2long($ips);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ip` WHERE `min` <= '$ipd' AND `max` >= '$ipd'"), 0)!=0)
{

$opsos=mysql_fetch_array(mysql_query("SELECT `name` FROM `ip` WHERE `min` <= '$ipd' AND `max` >= '$ipd' LIMIT 1"));

return $opsos['name'];

}
else return 'Оператор не определен!';
}

# Функция подсчета возраста
function age($d, $m, $y)
{
 $age = date('Y') - $y;
 $_m = date('m');
 if($_m < $m || ($_m == $m && date('d') < $d))
 $age--;
 return $age;
}

# Функция определения кодировки
function encoding($text, $to){

if($to=='UTF-8') $text = mb_convert_encoding($text, 'UTF-8', 'Windows-1251');
else $text = mb_convert_encoding($text, 'Windows-1251', 'UTF-8');

return $text;
}
?>