<?php
defined('NTLCMS') or die('<center><b>Restricted access</b></center>');
include (dirname(__FILE__).'/MobileDetect.class.php');
if (@filemtime(FOLDER.'/cache/setting.dat') < TIME - 10){
$sys = DB :: run() -> query("select * from `set`");
$set = array();
while ($param = $sys -> fetch()){
$set[$param['name']] = $param['value'];
}
file_put_contents(FOLDER.'/cache/setting.dat', serialize($set), LOCK_EX);
} else { 
$set = unserialize(file_get_contents(FOLDER.'/cache/setting.dat'));
}
function money($m) {
global $config;
return '<img src="/style/img/money.png" />'.$m.'';
}
function money_p($m) {
global $config;
return '<img src="/style/img/money_p.png" />'.$m.'';
}					
function money_m($m) {
global $config;
return '<img src="/style/img/money_m.png" />'.$m.'';
}
function coins($m) {
global $config;
return '<img src="/style/img/coins.png" />'.$m.'';
}
function coins_p($m) {
global $config;
return '<img src="/style/img/coins_p.png" />'.$m.'';
}
function coins_m($m) {
global $config;
return '<img src="/style/img/coins_m.png" />'.$m.'';
}
function checkin($str){
$str = htmlentities(trim($str), ENT_QUOTES, 'UTF-8');
for ($i = 0; $i <= 31; $i++)
$str = str_replace(chr($i), NULL, $str);
$str = preg_replace('/[^\P{C}\n]+/u', '', $str);
$str = str_replace("\'", "&#39;", $str);
$str = str_replace('"', '', $str);
$str = str_replace('\\', "&#92;", $str);
$str = str_replace("|", "I", $str);
$str = str_replace("||", "I", $str);
$str = str_replace("/\\\$/", "&#36;", $str);
$str = str_replace('+', '', $str);
$str = str_replace('%20', '', $str);
$str = trim($str);
return $str;
}
function checkout($str){
$str = htmlentities($str, ENT_QUOTES, 'UTF-8');
$str = iconv('utf-8', 'windows-1251', $str);
$str = iconv('windows-1251', 'utf-8', $str);
for ($i = 0; $i <= 31; $i++)
$str = str_replace(chr($i), NULL, $str);
return $str;
}
function blacklist($action, $user, $target) {
if ($action == 'add') {
$contact = DB::run()->query("SELECT * FROM `contacts` WHERE `kto` = ? AND `kogo` = ?", 
array($user, $target))->fetch(PDO::FETCH_OBJ);
if ($contact) {
DB::run()->query("UPDATE `contacts` SET `black` = '1' WHERE `kto` = ? AND `kogo` = ?", 
array($user, $target));
} else {
DB::run()->query("INSERT INTO `contacts` (`kto`, `kogo`, `black`, `time`) VALUES (?, ?, '1', ?)", 
array($user, $target, time()));
}
return true;
} elseif ($action == 'remove') {
DB::run()->query("UPDATE `contacts` SET `black` = '0' WHERE `kto` = ? AND `kogo` = ?", 
array($user, $target));
return true;
}
return false;
}
function is_blacklisted($user, $target) {
$result = DB::run()->query("SELECT `black` FROM `contacts` WHERE `kto` = ? AND `kogo` = ? AND `black` = '1'", 
array($user, $target))->fetch(PDO::FETCH_OBJ);
return ($result !== false);
}
function get_blacklist($user) {
return DB::run()->query("SELECT c.*, u.login FROM `contacts` c 
LEFT JOIN `users` u ON c.kogo = u.login 
WHERE c.kto = ? AND c.black = '1' 
ORDER BY c.time DESC", array($user));
}
function in_data($str){
if (is_string($str)){
$str = DB :: run() -> quote($str);
$str = stripslashes(trim($str));
$str = htmlentities(trim($str), ENT_QUOTES, 'UTF-8');
$str = iconv('utf-8', 'windows-1251', $str);
$str = iconv('windows-1251', 'utf-8', $str);
$str = nl2br($str);
for ($i = 0; $i <= 31; $i++)
$str = str_replace(chr($i), NULL, $str);
$str = preg_replace('/[^\P{C}\n]+/u', '', $str);
$str = str_replace("\'", "&#39;", $str);
$str = str_replace('"', '', $str);
$str = str_replace('\\', "&#92;", $str);
$str = str_replace("|", "I", $str);
$str = str_replace("||", "I", $str);
$str = str_replace("/\\\$/", "&#36;", $str);
$str = str_replace('+', '', $str);
$str = str_replace('%20', '', $str);
$str = trim($str);
$str = filter_var($str, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
return $str;  
}
}
function out_data($str){
$str = htmlentities($str, ENT_QUOTES, 'UTF-8');
$str = iconv('utf-8', 'windows-1251', $str);
$str = iconv('windows-1251', 'utf-8', $str);
for ($i = 0; $i <= 31; $i++)
$str = str_replace(chr($i), NULL, $str);
return $str;
}
function ints($str){
$str = abs(intval($str));
return $str;
}
function floats($str){
$str = abs(floatval($str));
return $str;
}
function mobileValidate($match){
$regEx = "/^\(?([0-9]{4})\)?[-. ]?([0-9]{7})$/";
if (preg_match($regEx, $match)){
return true;
} else {
return false;
}
}
function hide($str, $num){
$var = '';
if (is_numeric($num) && $num < strlen($str)){
$var = str_repeat('*', (strlen($str) - $num)).substr($str, - $num, $num);
}
return $var;
}
function exttype($filename){
return pathinfo($filename, PATHINFO_EXTENSION);
}
function outtext($str, $ent = false, $bbcode = false, $smile = false){
$str = ($ent == true) ? htmlentities($str, ENT_QUOTES, 'UTF-8') : $str;
$str = get_magic_quotes_gpc() ? stripslashes($str) : $str;
$str = trim($str);
if ($bbcode == true){
$str = nl2br($str);
$str = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $str);
$str = preg_replace('#\[i\](.*?)\[/i\]#si', '<i>\1</i>', $str);
$str = preg_replace('#\[u\](.*?)\[/u\]#si', '<u>\1</u>', $str);
$str = preg_replace('#\[br\]#si', '<br/>', $str);
$str = preg_replace('#\[del\](.*?)\[/del\]#si', '<del>\1</del>', $str);
$str = preg_replace('#\[small\](.*?)\[/small\]#si', '<small>\1</small>', $str);
$str = preg_replace('#\[color=(.*?)\](.*?)\[/color\]#si', '<span style="color:\1">\2</span>', $str);
$str = preg_replace('#\[quote\](.*?)\[/quote\]#si', '<div class="menu">Цитата:<br/><div class="tabl">\1</div></div>', $str);
$str = @preg_replace('#\\[code\\](.+?)\\[/code\\]#ie', "highlight('$1')", $str);
$str = preg_replace('/\[size\=(.*?)\](.*?)\[\/size\]/i', '<span style="font-size:\1px;">\2</span>', $str);
$str = preg_replace('#\[img\](.*?)(.png|.jpg|.jpeg|.gif)\[/img\]#si', '<div class="post" style="text-align: center;"><a href="\1\2"><img style="max-width: 230px;" src="\1\2" /></a></div>', $str);
$str = preg_replace('/\[us\](.*?)\[\/us\]/i', '<a href=/$1.us>$1</a>', $str);
$str = preg_replace('/\[url\s?=\s?([\'"]?)(?:http:|https:\/\/)?(.*?)\1\](.*?)\[\/url\]/', ' <a href="http://$2"> $3 </a> ', $str);
}
if ($smile == true){
$sql = DB :: run() -> query("select * from `smiles` order by `id` desc");
while ($row = $sql -> fetch(PDO::FETCH_OBJ)){
$str = str_replace($row -> code, '<img src="'.URL.'/style/smiles/'.$row -> id.'.gif" alt="*"/>', $str);
} 
} 
return $str;
}
function check($str, $real){
if ($str == $real){
return 'checked="checked"';
} else {
return;
}
}
function select($str, $real){
if ($str == $real){
return 'selected="selected"';
} else {
return;
}
}
function status($status){
switch ($status){
default:
return '<span style="color:blue">Пользователь</span>';
break;
case 1:
return '<span style="color:red">Администратор</span>';
break;
case 2:
return '<span style="color:green">Модератор</span>';
break;
}
}
function image($str, $wh){
global $set;
$i = explode('|', $wh);
if ($set['images'] == '0'){
return '<img src="'.URL.'/style/icons/'.$str.'" width="'.$i['0'].'" height="'.$i['1'].'" alt="*"/>';
}
}
function highlight($code){
$code = strtr($code, array('<br />' => "\r\n", '<br/>' => "\r\n", '&lt;' => '<', '&gt;' => '>', '&amp;' => '&', '&#36;' => '$', '&quot;' => '"', '&#039;' => "'", '&#92;' => '\\', '&#96;' => '`', '&#37;' => '%', '&#94;' => '^'));
if (!strpos($code, '<?') && mb_substr($code, 0, 2, 'UTF-8') != '<?'){
$code = "<?php\r\n" . trim($code) . "\r\n?>";
}
$code = highlight_string($code, true);
$code = strtr($code, array('<br />' => "\r\n", '<br/>' => "\r\n"));
$code = preg_replace('|(&nbsp;{2,})|', "\r\n\1", $code);
$codeline = explode("\r\n", $code);
foreach($codeline as $line => $string){
if ($string != ''){
$ret .= '<li>&nbsp;' . trim($string) . '</li>';
}
}
$code = strtr($ret, array("\r\n" => '<br />', "\r\n" => '<br/>'));
return '<div class="code"><ol>' . $code . '</ol></div>';
}
function quickpaste($form){
echo '<script language="JavaScript" type="text/javascript">
function tag(text1, text2){ 
if ((document.selection)){ 
document.form.'.$form.'.focus(); 
document.form.document.selection.createRange().text = text1+document.form.document.selection.createRange().text+text2; 
} else if(document.forms[\'form\'].elements[\''.$form.'\'].selectionStart!=undefined){ 
var element = document.forms[\'form\'].elements[\''.$form.'\']; 
var str = element.value; 
var start = element.selectionStart; 
var length = element.selectionEnd - element.selectionStart; 
element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length); 
} else document.form.'.$form.'.value += text1+text2; 
}	
</script>';
}
function fast_smile(){
?>
<script>
function ShowOrHide(d1){
if (d1 != '') DoDiv(d1);
}
function DoDiv(id){
var item = null;
if (document.getElementById){
item = document.getElementById(id);
} else if (document.all){
item = document.all[id];
} else if (document.layers){
item = document.layers[id];
}
if (!item){
}
else if (item.style){
if (item.style.display == 'none'){
item.style.display = '';
} else {
item.style.display = 'none';
}
} else {
item.visibility = 'show';
}
}
</script>

<div class="hey">
[<a href="javascript:ShowOrHide('1')">BBcode</a>] [<a href="javascript:ShowOrHide('2')">Смайлы</a>]:</div>
<div id="1" style="display:none;"><div class="menu">
<a href="javascript:tag('[b]', '[/b]', '');"><img src="/style/bb/b.gif" alt="b" title="Жирный"/></a>
<a href="javascript:tag('[i]', '[/i]', '');"><img src="/style/bb/i.gif" alt="i" title="Наклоненный"/></a>
<a href="javascript:tag('[u]', '[/u]', '');"><img src="/style/bb/u.gif" alt="u" title="Подчеркнутый"/></a>
<a href="javascript:tag('[br]', '');"><img src="/style/bb/br.gif" alt="br" title="Перенос"/></a>
<a href="javascript:tag('[del]', '[/del]', '');"><img src="/style/bb/del.gif" alt="del" title="Зачеркнутый"/></a>
<a href="javascript:tag('[small]', '[/small]', '');"><img src="/style/bb/small.gif" alt="small" title="Маленький"/></a>
<a href="javascript:tag('[code]', '[/code]', '');"><img src="/style/bb/code.gif" alt="code" title="PHP код"/></a>
</div></div>
<div id="2" style="display:none;"><div class="menu">
<a href="javascript:tag('.1.', '');"><img src="/style/smiles/1.gif" alt="img"/></a>
<a href="javascript:tag('.2.', '');"><img src="/style/smiles/2.gif" alt="img"/></a>
<a href="javascript:tag('.3.', '');"><img src="/style/smiles/3.gif" alt="img"/></a>
<a href="javascript:tag('.4.', '');"><img src="/style/smiles/4.gif" alt="img"/></a>
<a href="javascript:tag('.5.', '');"><img src="/style/smiles/5.gif" alt="img"/></a>
<a href="javascript:tag('.6.', '');"><img src="/style/smiles/6.gif" alt="img"/></a>
<a href="javascript:tag('.7.', '');"><img src="/style/smiles/7.gif" alt="img"/></a>
<a href="javascript:tag('.8.', '');"><img src="/style/smiles/8.gif" alt="img"/></a>
<a href="javascript:tag('.9.', '');"><img src="/style/smiles/9.gif" alt="img"/></a>
<a href="javascript:tag('.10.', '');"><img src="/style/smiles/10.gif" alt="img"/></a><br/>
<a href="javascript:tag('.11.', '');"><img src="/style/smiles/11.gif" alt="img"/></a>
<a href="javascript:tag('.12.', '');"><img src="/style/smiles/12.gif" alt="img"/></a>
<a href="javascript:tag('.13.', '');"><img src="/style/smiles/13.gif" alt="img"/></a>
<a href="javascript:tag('.14.', '');"><img src="/style/smiles/14.gif" alt="img"/></a>
<a href="javascript:tag('.15.', '');"><img src="/style/smiles/15.gif" alt="img"/></a>
<a href="javascript:tag('.16.', '');"><img src="/style/smiles/16.gif" alt="img"/></a>
<a href="javascript:tag('.17.', '');"><img src="/style/smiles/17.gif" alt="img"/></a>
<a href="javascript:tag('.18.', '');"><img src="/style/smiles/18.gif" alt="img"/></a>
<a href="javascript:tag('.19.', '');"><img src="/style/smiles/19.gif" alt="img"/></a>
<a href="javascript:tag('.20.', '');"><img src="/style/smiles/20.gif" alt="img"/></a><br/>
<a href="javascript:tag('.21.', '');"><img src="/style/smiles/21.gif" alt="img"/></a>
<a href="javascript:tag('.22.', '');"><img src="/style/smiles/22.gif" alt="img"/></a>
<a href="javascript:tag('.23.', '');"><img src="/style/smiles/23.gif" alt="img"/></a>
<a href="javascript:tag('.24.', '');"><img src="/style/smiles/24.gif" alt="img"/></a>
<a href="javascript:tag('.25.', '');"><img src="/style/smiles/25.gif" alt="img"/></a>
<a href="javascript:tag('.26.', '');"><img src="/style/smiles/26.gif" alt="img"/></a>
<a href="javascript:tag('.27.', '');"><img src="/style/smiles/27.gif" alt="img"/></a>
<a href="javascript:tag('.28.', '');"><img src="/style/smiles/28.gif" alt="img"/></a>
<a href="javascript:tag('.29.', '');"><img src="/style/smiles/29.gif" alt="img"/></a>
<a href="javascript:tag('.30.', '');"><img src="/style/smiles/30.gif" alt="img"/></a><br/>
<a href="javascript:tag('.31.', '');"><img src="/style/smiles/31.gif" alt="img"/></a>
<a href="javascript:tag('.32.', '');"><img src="/style/smiles/32.gif" alt="img"/></a>
<a href="javascript:tag('.33.', '');"><img src="/style/smiles/33.gif" alt="img"/></a>
<a href="javascript:tag('.34.', '');"><img src="/style/smiles/34.gif" alt="img"/></a>
<a href="javascript:tag('.35.', '');"><img src="/style/smiles/35.gif" alt="img"/></a>
<a href="javascript:tag('.36.', '');"><img src="/style/smiles/36.gif" alt="img"/></a>
<a href="javascript:tag('.37.', '');"><img src="/style/smiles/37.gif" alt="img"/></a>
<a href="javascript:tag('.38.', '');"><img src="/style/smiles/38.gif" alt="img"/></a>
<a href="javascript:tag('.39.', '');"><img src="/style/smiles/39.gif" alt="img"/></a>
<a href="javascript:tag('.40.', '');"><img src="/style/smiles/40.gif" alt="img"/></a><br/>
<a href="javascript:tag('.41.', '');"><img src="/style/smiles/41.gif" alt="img"/></a>
<a href="javascript:tag('.42.', '');"><img src="/style/smiles/42.gif" alt="img"/></a>
<a href="javascript:tag('.43.', '');"><img src="/style/smiles/43.gif" alt="img"/></a>
<a href="javascript:tag('.44.', '');"><img src="/style/smiles/44.gif" alt="img"/></a>
<a href="javascript:tag('.45.', '');"><img src="/style/smiles/45.gif" alt="img"/></a>
<a href="javascript:tag('.46.', '');"><img src="/style/smiles/46.gif" alt="img"/></a>
<a href="javascript:tag('.47.', '');"><img src="/style/smiles/47.gif" alt="img"/></a>
<a href="javascript:tag('.48.', '');"><img src="/style/smiles/48.gif" alt="img"/></a>
<a href="javascript:tag('.49.', '');"><img src="/style/smiles/49.gif" alt="img"/></a>
<a href="javascript:tag('.50.', '');"><img src="/style/smiles/50.gif" alt="img"/></a> <br/>
<a href="javascript:tag('.51.', '');"><img src="/style/smiles/51.gif" alt="img"/></a>
<a href="javascript:tag('.52.', '');"><img src="/style/smiles/52.gif" alt="img"/></a>
<a href="javascript:tag('.53.', '');"><img src="/style/smiles/53.gif" alt="img"/></a>
<a href="javascript:tag('.54.', '');"><img src="/style/smiles/54.gif" alt="img"/></a>
<a href="javascript:tag('.55.', '');"><img src="/style/smiles/55.gif" alt="img"/></a>
<a href="javascript:tag('.56.', '');"><img src="/style/smiles/56.gif" alt="img"/></a>
<a href="javascript:tag('.57.', '');"><img src="/style/smiles/57.gif" alt="img"/></a>
<a href="javascript:tag('.58.', '');"><img src="/style/smiles/58.gif" alt="img"/></a><br/>
<a href="javascript:tag('.59.', '');"><img src="/style/smiles/59.gif" alt="img"/></a>
<a href="javascript:tag('.60.', '');"><img src="/style/smiles/60.gif" alt="img"/></a>
<a href="javascript:tag('.61.', '');"><img src="/style/smiles/61.gif" alt="img"/></a>
<a href="javascript:tag('.62.', '');"><img src="/style/smiles/62.gif" alt="img"/></a>
</div></div>
<?php
}
function panel(){
echo quickpaste('text');
}
function day($time){
if ($time == NULL) $time = TIME;
    $day = date('D', $time);
if ($day == 'Sun') $day = 'Воскресенье';
if ($day == 'Sat') $day = 'Суббота';
if ($day == 'Fri') $day = 'Пятница';
if ($day == 'Thu') $day = 'Четверг';
if ($day == 'Wed') $day = 'Среда';
if ($day == 'Tue') $day = 'Вторник';
if ($day == 'Mon') $day = 'Понедельник';
return $day;
}
function date_ost($ost){
$days = floor($ost / 86400);
$hours = floor(($ost - ($days * 86400)) / 3600);
$minutes = floor(($ost - ($days * 86400) - ($hours * 3600)) / 60);
$seconds = floor($ost - ($days * 86400) - ($hours * 3600) - ($minutes * 60));
if ($days > 0){
if (($days >= 10) && ($days <= 20)){
$d = 'дней';
} else {
switch (substr($days, -1, 1)){
case 1: $d = 'день'; break;
case 2: case 3: case 4: $d = 'дня'; break;
case 5: case 6: case 7: case 8: case 9: case 0: $d = 'дней'; break;
}
}
} else {
$days = ''; $d = '';
}
if ($hours > 0){
if (($hours >= 10) && ($hours <= 20)){
$h = 'часов';
} else {
switch (substr($hours, -1, 1)){
case 1: $h = 'час'; break;
case 2: case 3: case 4: $h = 'часа'; break;
case 5: case 6: case 7: case 8: case 9: case 0: $h = 'часов'; break;
}
}
} else {
$hours = ''; $h = '';
}
if ($minutes > 0){
if (($minutes >= 10) && ($minutes <= 20)){
$m = 'минут';
} else {
switch (substr($minutes, -1, 1)){
case 1: $m = 'минута'; break;
case 2: case 3: case 4: $m = 'минуты'; break;
case 5: case 6: case 7: case 8: case 9: case 0: $m = 'минут'; break;
}
}
} else {
$minutes = ''; $m = '';
}
if ($seconds > 0){
if (($seconds >= 10) && ($seconds <= 20)){
$s = 'секунд';
} else {
switch (substr($seconds, -1, 1)){
case 1: $s = 'секунда'; break;
case 2: case 3: case 4: $s = 'секунды'; break;
case 5: case 6: case 7: case 8: case 9: case 0: $s = 'секунд'; break;
}
}
} else {
$seconds = ''; $s = '';
}
return '<b>'.$days.'</b> '.$d.' <b>'.$hours.'</b> '.$h.' <b>'.$minutes.'</b> '.$m.' <b>'.$seconds.'</b> '.$s;
}
function remain($times){
        $times2 = $times - TIME;
    if ($times2 > (60 * 60 * 24 * 30)) $times3 = round($times2 / (60 * 60 * 24 * 30)).' месяцев';
elseif ($times2 > (60 * 60 * 24)) $times3 = round($times2 / (60 * 60 * 24)).' дней';
elseif ($times2 > (60 * 60)) $times3 = round($times2 / (60 * 60)).' часов';
elseif ($times2 > 60) $times3 = round($times2 / 60).' минут';
else $times3 = $times2.' секунд';
return $times3;
}
function downcnt($date){
$check_time = $date - TIME;
if ($check_time <= 0){
return false;
}
$days = floor($check_time/86400);
$hours = floor(($check_time%86400)/3600);
$minutes = floor(($check_time%3600)/60);
$seconds = $check_time%60; 
$str = '';
if ($days > 0){
$str .= $days.' дн. ';
}
if ($hours > 0){
$str .= $hours.' ч. ';
}
if ($minutes > 0){
$str .= $minutes.' мин. ';
return $str;
}
if ($seconds > 0) $str .= $seconds.' сек ';
return $str;
}
function word(){
$args = func_get_args();
$num = $args[0] % 100;
if ($num > 19){
$num = $num % 10;
}
switch ($num){
case 1:{
return $args[0].' '.$args[1];
}
case 2:
case 3:
case 4:{
return $args[0].' '.$args[2];
}
default:{
return $args[0].' '.$args[3];
}
}
}
function opsos($opsos){
switch ($opsos){
case 1:
return '<span style="color:red">Мегафон</span>';
break;
case 2:
return '<span style="color:red">TELE2</span>';
break;
case 3:
return '<span style="color:red">Билайн</span>';
break;
case 4:
return '<span style="color:red">МТС</span>';
break;
case 5:
return '<span style="color:red">Башселл GSM</span>';
break;		
case 6:
return '<span style="color:red">Акос</span>';
break;
case 7:
return '<span style="color:red">БайкалВестКом</span>';
break;
case 8:
return '<span style="color:red">Енисейтелеком</span>';
break;
case 9:
return '<span style="color:red">НСС</span>';
break;
case 10:
return '<span style="color:red">Смартс</span>';
break;
case 11:
return '<span style="color:red">Мотив</span>';
break;
}
}
function typelink($type){
switch ($type){
case 1:
return '<span style="color:blue">WAP ссылка</span>';
break;
case 2:
return '<span style="color:green">WEB ссылка</span>';
break;
case 3:
return '<span style="color:red">IFRAME ссылка</span>';
break;
case 4:
return '<span style="color:lime">ALARM ссылка</span>';
break;
case 5:
return '<span style="color:gold">Для взрослых</span>';
break;
}
}
function cost($money){
switch ($money){
default:
return '<span style="color: blue">Ожидается</span>';
break;
case 'lock':
return '<span style="color: red">Отменена</span>';
break;
case 'on':
return '<span style="color: green">Выплачено</span>';
break;
}
}
function ststatus($str){
switch ($str){
case 1:
return '<span style="color:green">Допущена</span>';
break;
case 2:
return '<span style="color:blue">На модерации</span>';
break;
case 3:
return '<span style="color:red">Недопущена</span>';
break;
}
}
function lasttime($time){
$sec = TIME - $time;
if($sec < 60) $_time = $sec.' сек. назад';
if($sec >= 60 && $sec < (60*60)) $_time = round($sec/60).' мин. назад';
if($sec >= (60*60) && $sec < ((60*60)*6)) $_time = 'Сегодня в '.date('H:i', $time);
if($sec >= ((60*60)*6) && $sec < ((60*60)*24)) $_time = round($sec/(60*60)).' час. назад';
if($sec >= ((60*60)*24) && $sec < (((60*60)*24)*2)) $_time = 'Вчера в '.date('H:i', $time);
if($sec >= (((60*60)*24)*2)){
$__time = date('d F Y в H:i', $time);
$__time = str_replace('January', 'Января', $__time);
$__time = str_replace('February', 'Февраля', $__time);
$__time = str_replace('March', 'Марта', $__time);
$__time = str_replace('April', 'Апреля', $__time);
$__time = str_replace('May', 'Мая', $__time);
$__time = str_replace('June', 'Июня', $__time);
$__time = str_replace('July', 'Июля', $__time);
$__time = str_replace('August', 'Августа', $__time);
$__time = str_replace('September', 'Сентября', $__time);
$__time = str_replace('October', 'Октября', $__time);
$__time = str_replace('November', 'Ноября', $__time);
$__time = str_replace('December', 'Декабря', $__time);
$_time = $__time;
}
return $_time;
}
DB :: run() -> query("delete from `reklama` where `date` <= ?", array(TIME));
DB :: run() -> query("delete from `manager` where `date` <= ?", array(TIME));
DB :: run() -> query("delete from `ban` where `date` < ?", array(TIME));
DB :: run() -> query("delete from `session` where `date` < ?", array(TIME - 180));
DB :: run() -> query("update `users` set `ontime` = ?, `transition` = ? where `ontime` < ?", array(0, 0, TIME - 180));
$id = isset($_GET['id']) ? filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT) : '0';
$act = isset($_GET['act']) ? filter_var($_GET['act'], FILTER_SANITIZE_URL) : false;
$ua = isset($_SERVER['HTTP_USER_AGENT']) ? filter_var($_SERVER['HTTP_USER_AGENT'], FILTER_SANITIZE_STRING) : 'Not_detected';
$ip = isset($_SERVER['REMOTE_ADDR']) ? preg_replace('|[^0-9\.]|', '', $_SERVER['REMOTE_ADDR']) : '127.0.0.1';
function timecount($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.' сек.';
}
function daytime($var){
if ($var == NULL) $var = TIME;
$full_time = date('d.m.Y в H:i', $var);
$date = date('d.m.Y', $var);
$time = date('H:i', $var);
if ($date == date('d.m.Y')) $full_time = date('Сегодня в H:i', $var);
if ($date == date('d.m.Y', TIME - 60*60*24)) $full_time = date('Вчера в H:i', $var);
return $full_time;
}
function mailto($mail, $subject, $messages){
$subject = '=?UTF-8?B?'.base64_encode($subject).'?=';
$adds = "From: =?UTF-8?B?".base64_encode("4ipok.Ru Клик клуб")."?= <".SYSMAIL.">\n";
$adds .= "X-sender: =?UTF-8?B?".base64_encode("4ipok.Ru Клик клуб")."?= <".SYSMAIL.">\n";
$adds .= "List-Unsubscribe: <http://".URL."/cabinet.asp>\n";
$adds .= "Content-Type: text/html; charset=utf-8\n";
$adds .= "MIME-Version: 1.0\n";
$adds .= "Content-Transfer-Encoding: 8bit\n";
$adds .= "X-Mailer: PHP v.".phpversion()."\n";
$adds .= "Date: ".date("r")."\n";
return mail($mail, $subject, $messages, $adds);
}
function login($us, $sex = false){
$row = DB :: run() -> query("select (`login`), (`admin`), (`sex`), (`privilege`) from `users` where `login` = ?", array($us)) -> fetch(PDO::FETCH_OBJ);
if ($row -> admin == '0') $color = '';
if ($row -> admin == '1') $color = 'red';
if ($row -> privilege == '1') $vip = '<span style="color:green"><small><sup>VIP</sup></small></span>';
if ($sex == NULL && $row -> sex == '1'){
$pol = '<i class="fa fa-male fa-fw"></i>';
} elseif ($sex == NULL && $row -> sex == '0'){
$pol = '<i class="fa fa-female fa-fw"></i>';
}
if (!empty($us)){
$us = '<a href="'.URL.'/'.checkout($row -> login).'.us"><span style="color:'.$color.'">'.checkout($row -> login).'</span></a> ';
} else {
$us = 'Удален с сайта ';
}
return $pol . $us . $vip;
}
function generation($length){
$gens = str_split('qwertyuiopadsfghjklzxcvbnmQ12345WERTYUIOPASDFGHJKLZXCVBNM67890');
$gen = '';
for ($i = 0; $i < $length; $i++){
$gen .= $gens[array_rand($gens)];
} 
return $gen;
}
function online($us){
$row = DB :: run() -> query("select (`ontime`) from `users` where `login` = ?", array($us)) -> fetch(PDO::FETCH_OBJ);
return ($row -> ontime < TIME - 180) ? '<i class="fa fa-low-vision fa-fw"></i>' : '<i class="fa fa-eye fa-fw"></i>';
} 
function sex($us){
$row = DB :: run() -> query("select (`sex`) from `users` where `login` = ?", array($us)) -> fetch(PDO::FETCH_OBJ);
return ($row -> sex == '1') ? '<i class="fa fa-male fa-fw"></i>' : '<i class="fa fa-female fa-fw"></i>';
}
function ava($us){
if (is_file(FOLDER.'/avatars/'.$us.'.jpg')){
return '<img src="'.URL.'/avatars/'.$us.'.jpg" alt="'.$us.'" style=" width: 30px; height: 30px; border-radius: 10%">';
} else {
return '<img src="'.URL.'/style/icons/noavatar.gif" alt="No photo" style=" width: 30px; height: 30px; border-radius: 10%;">';
}
}
function country_icon($country){
$info = DB :: run() -> queryFetch("select (`id_country`) from `country` where `name_country` = '".$country."' limit 1");
return (!empty($country) ? '<img src="'.URL.'/style/flags/'.$info['id_country'].'.png" width="24" title="*">' : 'Страна и город не указан.');
}
function is_ban($us){
if (DB :: run() -> querySingle("select count(`id`) from `ban` where `who` = ?", array($us)) > 0){
return true;
} else {
return false;
}
}
function is_banip($ips){
if (DB :: run() -> querySingle("select count(`id`) from `banip` where `ips` = ?", array($ips)) > 0){
return true;
} else {
return false;
}
}
function hello($time){
if ($time == NULL) $time = TIME;
$hi = date('H', $time);
if ($hi <= '4' || $hi >= '23') $hi = 'Доброй ночи';
if ($hi >= '5' && $hi <= '10') $hi = 'Доброе утро';
if ($hi >= '11' && $hi <= '17') $hi = 'Добрый день';
if ($hi >= '18' && $hi <= '22') $hi = 'Добрый вечер';
return $hi;
}
function where($module){
if ($module == 'index'){
    $mesto = '<a href="'.URL.'">Главная</a>';
} elseif ($module == 'cabinet'){
    $mesto = '<a href="'.URL.'/cabinet">Кабинет</a>';
} elseif ($module == 'go'){
    $mesto = 'Просматривает сайт';
} elseif ($module == 'chat'){
    $mesto = '<a href="'.URL.'/chats">Беседка</a>';
} elseif ($module == 'who'){
    $mesto = '<a href="'.URL.'/chat_who">Кто в беседке?</a>';
} elseif ($module == 'exchange'){
    $mesto = '<a href="'.URL.'/finances">Мои финансы</a>';
} elseif ($module == 'history'){
    $mesto = '<a href="'.URL.'/history">История выплат</a>';
} elseif ($module == 'merchant'){
    $mesto = '<a href="'.URL.'/autoinput">Автоввод средств</a>';
} elseif ($module == 'plus'){
    $mesto = '<a href="'.URL.'/manualinput">Ввод средств</a>';
} elseif ($module == 'minus'){
    $mesto = '<a href="'.URL.'/conclusion">Вывод средств</a>';
} elseif ($module == 'inhistory'){
    $mesto = '<a href="'.URL.'/inhistory">История вводов</a>';
} elseif ($module == 'info'){
    $mesto = '<a href="'.URL.'/help">Информация</a>';
} elseif ($module == 'bbcode'){
    $mesto = '<a href="'.URL.'/help_bbcode">Справка по BB-Кодам</a>';
} elseif ($module == 'rules'){
    $mesto = '<a href="'.URL.'/help_rules">Правила клуба</a>';
} elseif ($module == 'contacts'){
    $mesto = '<a href="'.URL.'/help_contacts">Контакты админа</a>';
} elseif ($module == 'smiles'){
    $mesto = '<a href="'.URL.'/help_smiles">Справка по смайлам</a>';
} elseif ($module == 'mail'){
    $mesto = '<a href="'.URL.'/messages">Личная почта</a>';
} elseif ($module == 'dialog'){
    $mesto = 'Диалог с участником';
} elseif ($module == 'newmes'){
    $mesto = 'Новое сообщение';
} elseif ($module == 'notice'){
    $mesto = '<a href="'.URL.'/notice">Уведомления</a>';
} elseif ($module == 'news'){
    $mesto = '<a href="'.URL.'/feed">Новости клуба</a>';
} elseif ($module == 'review'){
    $mesto = 'Просмотр новости';
} elseif ($module == 'comment'){
    $mesto = 'Комментарии новости';
} elseif ($module == 'rating'){
    $mesto = '<a href="'.URL.'/rate">Рейтинги клуба</a>';
} elseif ($module == 'click'){
    $mesto = '<a href="'.URL.'/rate_click">Рейтинг по кликам</a>';
} elseif ($module == 'money'){
    $mesto = '<a href="'.URL.'/rate_money">Рейтинг по балансу</a>';
} elseif ($module == 'ref'){
    $mesto = '<a href="'.URL.'/rate_refer">Рейтинг по рефералам</a>';
} elseif ($module == 'last'){
    $mesto = '<a href="'.URL.'/rate_last">Нас посетили</a>';
} elseif ($module == 'postchat'){
    $mesto = '<a href="'.URL.'/rate_chat">Рейтинг в беседке</a>';
} elseif ($module == 'banks'){
    $mesto = '<a href="'.URL.'/rate_bank">Рейтинг по банку</a>';
} elseif ($module == 'active'){
    $mesto = '<a href="'.URL.'/rate_active">Рейтинг по активу</a>';
} elseif ($module == 'badclick'){
    $mesto = '<a href="'.URL.'/rate_badclick">Рейтинг по недопереходам</a>';
} elseif ($module == 'full'){
    $mesto = '<a href="'.URL.'/full">Полная статистика</a>';
} elseif ($module == 'reviews'){
    $mesto = '<a href="'.URL.'/responses">Ваши отзывы</a>';
} elseif ($module == 'add'){
    $mesto = '<a href="'.URL.'/responses_add">Добавить отзыв</a>';
} elseif ($module == 'sites'){
    $mesto = '<a href="'.URL.'/site">Мои площадки</a>';
} elseif ($module == 'asites'){
    $mesto = '<a href="'.URL.'/site_add">Добавить площадку</a>';
} elseif ($module == 'anketa'){
    $mesto = 'Анкета участника';
} elseif ($module == 'ban'){
    $mesto = 'Блокировка аккаунта';
} elseif ($module == 'banlist'){
    $mesto = '<a href="'.URL.'/banlist">Список забаненных</a>';
} elseif ($module == 'changes'){
    $mesto = '<a href="'.URL.'/changes">Мои настройки</a>';
} elseif ($module == 'closed'){
    $mesto = 'Технические работы';
} elseif ($module == 'str'){
    $mesto = 'Внешняя ссылка';
} elseif ($module == 'digest'){
    $mesto = '<a href="'.URL.'/digest">Дайджест</a>';
} elseif ($module == 'error'){
    $mesto = 'Страница ошибок';
} elseif ($module == 'forgot'){
    $mesto = '<a href="'.URL.'/forgot">Забыли пароль?</a>';
} elseif ($module == 'input'){
    $mesto = '<a href="'.URL.'/input">Авторизация</a>';
} elseif ($module == 'inputlogs'){
    $mesto = '<a href="'.URL.'/inputlogs">Логи авторизаций</a>';
} elseif ($module == 'list'){
    $mesto = '<a href="'.URL.'/site_list">Просмотр ссылок</a>';
} elseif ($module == 'online'){
    $mesto = '<a href="'.URL.'/online">Сейчас онлайн</a>';
} elseif ($module == 'pass'){
    $mesto = '<a href="'.URL.'/pass">Смена пароля</a>';
} elseif ($module == 'quest'){
    $mesto = '<a href="'.URL.'/quest">Бонусная программа</a>';
} elseif ($module == 'redirect'){
    $mesto = 'Переход по рекламе';
} elseif ($module == 'referals'){
    $mesto = '<a href="'.URL.'/referals">Мои рефералы</a>';
} elseif ($module == 'registration'){
    $mesto = '<a href="'.URL.'/registration">Регистрация</a>';
} elseif ($module == 'stat'){
    $mesto = '<a href="'.URL.'/stat">Статистика клуба</a>';
} elseif ($module == 'userlist'){
    $mesto = '<a href="'.URL.'/userlist">Список участников</a>';
} elseif ($module == 'guest'){
    $mesto = '<a href="'.URL.'/guest">Онлайн гостей</a>';
} elseif ($module == 'ads'){
    $mesto = '<a href="'.URL.'/advert">Заказ рекламы</a>';
} elseif ($module == 'delads'){
    $mesto = 'Удаление рекламы';
} elseif ($module == 'adsadd'){
    $mesto = '<a href="'.URL.'/advert_add">Добавить рекламу</a>';
} elseif ($module == 'away'){
    $mesto = 'Переход по рекламе';
} elseif ($module == 'day'){
    $mesto = '<a href="'.URL.'/dayrate">Лучшие сегодня</a>';
} elseif ($module == 'bank'){
    $mesto = '<a href="'.URL.'/bank">Банк кредитов</a>';
} elseif ($module == 'sale'){
    $mesto = '<a href="'.URL.'/sale">Моментальная продажа кр.</a>';
} elseif ($module == 'purchase'){
    $mesto = '<a href="'.URL.'/purchase">Моментальная покупка кр.</a>';
} elseif ($module == 'activation'){
    $mesto = 'Активация аккаунта';
} elseif ($module == 'autos'){
    $mesto = 'Серфит сайт';
} elseif ($module == 'spam'){
    $mesto = '<a href="'.URL.'/mailing">Рассылка писем</a>';
} elseif ($module == 'addspam'){
    $mesto = '<a href="'.URL.'/addmailing">Заказ рассылки</a>';
} elseif ($module == 'myspam'){
    $mesto = '<a href="'.URL.'/mymailing">Мои рассылки</a>';
} elseif ($module == 'task'){
    $mesto = '<a href="'.URL.'/tasks">Задания участников</a>';
} elseif ($module == 'addtask'){
    $mesto = '<a href="'.URL.'/addtask">Добавить задание</a>';
} elseif ($module == 'checktask'){
    $mesto = 'Проверка выполнения';
} elseif ($module == 'mytask'){
    $mesto = '<a href="'.URL.'/mytask">Ваши задания</a>';
} elseif ($module == 'listtask'){
    $mesto = '<a href="'.URL.'/listtask">Список заданий</a>';
} elseif ($module == 'stattask'){
    $mesto = '<a href="'.URL.'/stattask">Статистика выполнений</a>';
} elseif ($module == 'sitestat'){
    $mesto = '<a href="'.URL.'/sitestat">Статистика сайта</a>';
} elseif ($module == 'city'){
    $mesto = '<a href="'.URL.'/city">Местоположение</a>';
} elseif ($module == 'goodsite'){
    $mesto = '<a href="'.URL.'/goodsite">Сайты для заработка</a>';
} elseif ($module == 'votes'){
    $mesto = '<a href="'.URL.'/polls">Голосования</a>';
} elseif ($module == 'vote'){
    $mesto = '<a href="'.URL.'/polls">Голосование</a>';
} elseif ($module == 'voice'){
    $mesto = '<a href="'.URL.'/polls">Кто голосовал</a>';
} elseif ($module == 'menu'){
    $mesto = '<a href="'.URL.'/menu">Личный кабинет</a>';
} elseif ($module == 'download'){
    $mesto = '<a href="'.URL.'/download">Загрузки</a>';
} elseif ($modul == 'razvlechenie'){
$mesto = '<a href="'.URL.'/games">Развлечения</a>';
} elseif ($modul == 'naperstki'){
$mesto = '<a href="'.URL.'/games/naperstki. php">Напёрстки</a>';
} elseif ($module == 'panel'){
    $mesto = 'Скрыто от просмотра';
} else {
    $mesto = 'Не определено';
}
return $mesto;
}
function CLIENT_IP(){
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
$ip = filter_input(INPUT_SERVER, 'HTTP_CLIENT_IP', FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip = filter_input(INPUT_SERVER, 'HTTP_X_FORWARDED_FOR', FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
} else {
$ip = filter_input(INPUT_SERVER, 'REMOTE_ADDR', FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
$ipLong = sprintf("%u", ip2long($ip));
}
return $ip;
}			
function CLIENT_UA(){
if (isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA'])){
$ua = filter_input(INPUT_SERVER, 'HTTP_X_OPERAMINI_PHONE_UA', FILTER_SANITIZE_STRING);
} elseif (isset($_SERVER['HTTP_USER_AGENT'])){
$ua = filter_input(INPUT_SERVER, 'HTTP_USER_AGENT', FILTER_SANITIZE_STRING);
} else {
$ua = 'Not_detected';
}
return $ua;
}
if (isset($_SESSION['login']) && isset($_SESSION['pass'])){
$login = isset($_SESSION['login']) ? filter_var($_SESSION['login'], FILTER_SANITIZE_FULL_SPECIAL_CHARS) : false;
$sql = DB :: run() -> query("select * from `users` where `login` = ? limit 1", array($login));
$numuser = DB :: run() -> querySingle("select * from `users` where `login` = ?", array($login));
if ($numuser != 0){
$_USER = $sql -> fetch();
if ($_USER['login'] == strtolower($_SESSION['login']) || strtoupper($_SESSION['login']) && $_USER['pass'] == $_SESSION['pass']) {
$active = true;
$alltime = TIME - $_USER['lasttime'];
if ($alltime < 180){
$alltime += $_USER['alltime'];
} else {
$alltime = $_USER['alltime'];
}
if (!DB :: run() -> querySingle("select (`login`) from `users` where `login` = ?", array($_USER['login']))){
DB :: run() -> query("update `users` set `ip` = ?, `ua` = ?, `real` = ?, `ontime` = ?, `transition` = `transition` + ?, `cross` = `cross` + ?, `where` = ? where `login` = ? limit 1", array($ip, $ua, CLIENT_IP(), $_USER['invisible'] == '1' ? '0' : TIME, 1, 1, $module, $_USER['login']));
} else {
DB :: run() -> query("update `users` set `ontime` = ?, `transition` = `transition` + ?, `cross` = `cross` + ?, `ip` = ?, `ua` = ?, `real` = ? where `login` = ? limit 1", array($_USER['invisible'] == '1' ? '0' : TIME, 1, 1, $ip, $ua, CLIENT_IP(), $_USER['login']));
DB :: run() -> query("update `users` set `sess` = ?, `lasttime` = ?, `alltime` = ?, `oldip` = ?, `oldua` = ?, `where` = ? where `login` = ? limit 1", array($sess, TIME, $alltime, $ip, $ua, $module, $_USER['login']));
}
} else {
session_destroy();
}
} else {
session_destroy();
}
}
$onpage = ($active == true) ? filter_var($_USER['pages'], FILTER_SANITIZE_NUMBER_INT) : filter_var($set['pages'], FILTER_SANITIZE_NUMBER_INT);
$ulogin = isset($_USER['login']) ? filter_var($_USER['login'], FILTER_SANITIZE_FULL_SPECIAL_CHARS) : false;
$ilogin = isset($_USER['login']) ? filter_var($_USER['login'], FILTER_SANITIZE_FULL_SPECIAL_CHARS) : false;
if (!isset($active)){
if (!DB :: run() -> querySingle("select (`ip`) from `session` where `ip` = ?", array($ip))){
DB :: run() -> query("insert into `session` (`ip`, `ua`, `date`, `transition`, `real`) values (?, ?, ?, ?, ?)", array($ip, $ua, TIME, 1, CLIENT_IP()));
} else {
DB :: run() -> query("update `session` set `date` = ?, `transition` = `transition` + ?, `ip` = ?, `ua` = ?, `real` = ? where `ip` = ? limit 1", array(TIME, 1, $ip, $ua, CLIENT_IP(), $ip));
}
}
function page($k_page = 1){
$page = 1;
if (isset($_GET['page'])){
if ($_GET['page'] == 'end'){
$page = intval($k_page); 
} elseif(is_numeric($_GET['page'])){
$page = intval($_GET['page']);
}
if ($page < 1){
$page = 1;
}
if ($page > $k_page){
$page = $k_page;
}
}
return $page;
}
function k_page($k_post = 0, $k_p_str = 10){
if ($k_post != 0) { 
$v_pages = ceil($k_post / $k_p_str); 
return $v_pages; 
} else {
return 1;
}
}
function navigation($link = '?', $k_page = 1, $page = 1){
if ($page < 1) {
$page = 1;
}
echo '<div class="hey">';
if ($page != 1){
echo 'Стр: <div class="panel"><a href="'.$link.'page=1">1</a></div>';
} else {
echo 'Стр: 1';
}
for ($i =- 3; $i <= 3; $i++){
if ($page + $i > 1 && $page + $i < $k_page){
if ($i ==- 3 && $page + $i > 2){
echo ' ..'; 
}
if ($i != 0){
echo '<div class="panel"><a href="'.$link.'page='.($page + $i).'">'.($page + $i).'</a></div>';
} else {
echo ' '.($page + $i).'';
}
if ($i == 3 && $page + $i < $k_page - 1){
echo ' ..';
}
}
}
if ($page != $k_page){
echo ' <div class="panel"><a href="'.$link.'page=end">'.$k_page.'</a></div>';
} elseif ($k_page > 1){
echo ' '.$k_page.'';
}
echo '</div>';
}
function Downloads($filename, $name, $mimetype='application/octet-stream'){
if (!file_exists($filename))die('Файл не найден');
@ob_end_clean();
$from = 0;
$size = filesize($filename);
$to = $size;
if (isset($_SERVER['HTTP_RANGE'])){
if (preg_match ('#bytes=-([0-9]*)#i',$_SERVER['HTTP_RANGE'],$range)){
$from = $size-$range[1];
$to = $size;
} elseif(preg_match('#bytes=([0-9]*)-#i',$_SERVER['HTTP_RANGE'],$range)){
$from = $range[1];
$to = $size;
} elseif(preg_match('#bytes=([0-9]*)-([0-9]*)#i',$_SERVER['HTTP_RANGE'],$range)){
$from = $range[1];
$to = $range[2];
}
header('HTTP/1.1 206 Partial Content');
$cr = 'Content-Range: bytes '.$from .'-'.$to.'/'.$size;
}
else
header('HTTP/1.1 200 Ok');
$etag = md5($filename);
$etag = substr($etag, 0, 8) . '-' . substr($etag, 8, 7) . '-' . substr($etag, 15, 8);
header('ETag: "'.$etag.'"');
header('Accept-Ranges: bytes');
header('Content-Length: ' .($to-$from));
if (isset($cr))header($cr);
header('Connection: close');
header('Content-Type: ' . $mimetype);
header('Last-Modified: ' . gmdate('r', filemtime($filename)));
header("Last-Modified: ".gmdate("D, d M Y H:i:s", filemtime($filename))." GMT");
header("Expires: ".gmdate("D, d M Y H:i:s", time() + 3600)." GMT");
$f = fopen($filename, 'rb');
if (preg_match('#^image/#i',$mimetype))
header('Content-Disposition: filename="'.$name.'";');
else
header('Content-Disposition: attachment; filename="'.$name.'";');
fseek($f, $from, SEEK_SET);
$size = $to;
$downloaded = 0;
while(!feof($f) and !connection_status() and ($downloaded<$size)){
$block = min(1024*8, $size - $downloaded);
echo fread($f, $block);
$downloaded += $block;
flush();
}
fclose($f);
}
function read_file($file){
if (file_exists($file)){
return formatsize(filesize($file));
} else {
return 0;
} 
}
function generateActivationCode() {
return substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 10);
}
function sendActivationCode($email, $login, $code) {
$subject = "Код активации аккаунта";
$message = "
<html>
<head>
<title>Активация аккаунта</title>
</head>
<body>
<h2>Активация аккаунта</h2>
<p>Здравствуйте, <b>".$login."</b>!</p>
<p>Для активации вашего аккаунта используйте следующий код:</p>
<h3>".$code."</h3>
<p>Код действителен в течение 24 часов.</p>
<p>Если вы не регистрировались на нашем сайте, проигнорируйте это письмо.</p>
</body>
</html>
";
return mailto($email, $subject, $message);
}
function checkResendLimit($login) {
$hour_ago = TIME - 3600;
$count = DB::run()->querySingle(
"SELECT COUNT(*) FROM `activate_log` WHERE `login` = ? AND `date` > ?", 
array($login, $hour_ago)
);
return $count < 5;
}

function logActivationSend($login, $code) {
DB::run()->query(
"INSERT INTO `activate_log` (`login`, `code`, `date`) VALUES (?, ?, ?)", 
array($login, $code, TIME)
);
}
function read_dir($dir){
if (empty($allsize)){
$allsize = 0;
}
if ($path = opendir($dir)){
while ($file_name = readdir($path)){
if (($file_name !== '.') && ($file_name !== '..')){
if (is_dir($dir.'/'.$file_name)){
$allsize += read_dir($dir.'/'.$file_name);
} else {
$allsize += filesize($dir.'/'.$file_name);
} 
} 
} 
closedir ($path);
} 
return $allsize;
}
function DataBaseSize($db){
$sql = DB :: run() -> query('show table status'); 
$dbsize = 0; 
while ($row = $sql -> fetch()){ 
$dbsize += ($row['Index_length'] + $row['Data_length']); 
} 
return $dbsize;
}
function formatsize($file_size){
if ($file_size >= 1048576000){
$file_size = round(($file_size / 1073741824), 2).' Гб';
} elseif ($file_size >= 1024000){
$file_size = round(($file_size / 1048576), 2).' Мб';
} elseif ($file_size >= 1000){
$file_size = round(($file_size / 1024), 2).' Кб';
} else {
$file_size = round($file_size).' б';
}
return $file_size;
}
$sql = DB :: run() -> query("select (`login`), (`credit`) from `users`");
while($row = $sql -> fetch(PDO::FETCH_OBJ)){
if ($row -> credit > '0'){
DB :: run() -> query("update `sites` set `active` = ? where `login` = ?", array(1, $row -> login));
} elseif($row -> credit <= '0'){
DB :: run() -> query("update `sites` set `active` = ? where `login` = ?", array(0, $row -> login));
}
}
if (isset($_SERVER['HTTP_REFERER']) && stripos($_SERVER['HTTP_REFERER'], 'clicks24.ru') != true){
$site = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '-----';
if (!DB :: run() -> querySingle("select (`ip`) from `referer` where `ip` = ?", array($ip))){
DB :: run() -> query("insert into `referer` (`date`, `site`, `ip`, `browser`) values (?, ?, ?, ?)", array(TIME, $site, $ip, $ua));
}
}
if (DB :: run() -> querySingle("select count(*) from `count_day` where `date` = '".date('d.m.Y')."' limit 1") == 0) DB :: run() -> query("insert into `count_day` (`date`) values ('".date('d.m.Y')."')");
else {
if (!DB :: run() -> querySingle("select * from `count_sip` where `soft` = '".$ua."' and `ip` = '".$ip."'")){
DB :: run() -> query("update `count_day` set `host` = `host` + 1, `hit` = `hit` + 1 where `date` = '".date('d.m.Y')."'");
DB :: run() -> query("insert into `count_sip` set `date` = '".date('d.m.Y')."', `soft` = '".$ua."', `ip` = '".$ip."', `time` = '".TIME."'");
} else DB :: run() -> query("update `count_day` set `hit` = `hit` + 1 where `date` = '".date('d.m.Y')."'");
}
$cron = DB :: run() -> query("select (`value`) from `set` where `name` = 'cron_date'") -> fetch(PDO::FETCH_OBJ);
if (date('d') != $cron -> value){
include (dirname(__FILE__).'/cron.php');
include (dirname(__FILE__).'/stats.php');
include (dirname(__FILE__).'/reset.php');
DB :: run() -> query("update `set` set `value` = '".date('d')."' where `name` = 'cron_date'");
DB :: run() -> query("truncate table `click`");
DB :: run() -> query("update `sites` set `day` = ?", array(0));
DB :: run() -> query("update `ref` set `day` = ?", array(0));
DB :: run() -> query("update `users` set `click_day` = ?, `myprofit` = ?", array(0, 0));
}
include (dirname(__FILE__).'/syscount.php');
if (is_banip(IP)) die("<center><b>Сайт временно недоступен!</b></center>");
?>