<?php
### Версия ПО (ДМ) 1.0.0.0 ( (c)2018 MISOFT Продукт защищен регистрацией патента и авторских прав! www.misoft.studio )
######################################################################################################################

$message_md5 = 'JVg54u9iGVhkigre'; //шифрования для разных функций (Соль для мд5 паролей юзеров в базе)

### Обрезаем, приводим ссылку до чистого домена
function crop_the_link( $the_link, $type_substr ) {
	$cropped_link = trim( $the_link );
	$cropped_link = parse_url($cropped_link);
	$cropped_link = ($cropped_link['host']);
	$cropped_link = preg_replace("/www./", "", $cropped_link);
	$cropped_link = substr( $cropped_link, 0, $type_substr );
	
	return $cropped_link;
}


### Узнаем IP пользователя
if ( !function_exists( 'real_IP' ) ) {
    function real_IP() {
        if ( !empty( $_SERVER['HTTP_CLIENT_IP'] ) ) {
            $ip = $_SERVER['HTTP_CLIENT_IP'];
        }
        if ( !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
        } else {
            $ip = $_SERVER['REMOTE_ADDR'];
        }
        if ( strpos( $ip, ',' ) !== false ) {
            $r_ip = explode( ',', $ip );
            $ip = $r_ip[0];
        }
        
        if ( !preg_match( "#^(10|172\.16|192\.168)\.#", $ip ) ) {
            return $ip;
        } else {
            return $_SERVER['REMOTE_ADDR'];
        }
    }
}

### Узнаем страну пользователя
function find_country() {
	if ( GeoIP( real_IP() ) == 'XX' ) {
		include_once ROOT_DIR .  '/engine/geoip/GeoIP.php';
		$geoip = Net_GeoIP::getInstance( ROOT_DIR . '/engine/geoip/GeoIP.dat' );
		try {
			$regcountry = mb_convert_encoding( $geoip->lookupCountryName( real_IP() ), 'CP1251', 'UTF8' );
			$regcode = strtolower( $geoip->lookupCountryCode( real_IP() ) );
		}
		catch ( Exception $e ) {
			$regcountry = '';
			$regcode = '';
		}
	} else {
		$regcountry = $countrys[strtolower( GeoIP( real_IP() ) )];
		$regcode = strtolower( GeoIP( real_IP() ) );
	}
			
	if($regcode != 'ru' and $regcode != 'ru' and $regcode != 'ua' and $regcode != 'by' and $regcode != 'kz' and $regcode != 'ge' and $regcode != 'md' and $regcode != 'am' and $regcode != 'tj' and   
	   $regcode != 'az' and $regcode != 'uz' and $regcode != 'pt' and $regcode != 'es' and $regcode != 'ee' and $regcode != 'lv' and $regcode != 'lt' and $regcode != 'us' and $regcode != 'gb' and $regcode != 'fr' and $regcode != 'de' and $regcode != 'cn' and $regcode != 'it') {
		$regcode = 'all';
	}
	
	return $regcode;
}

### Онлайн пользователя
function online_user( $user_id ) {
	$user_id = ( int ) $user_id;
	$user_online = mysql_query( "SELECT id FROM online WHERE iduser = '" . $user_id . "' LIMIT 1" );
	if ( mysql_num_rows( $user_online ) ) {
		$online_status = 'online';
	} else {
		$online_status = 'offline';
	}
	
	return $online_status;
}

### Броузер пользователя
function user_browser( $agent ) {
    #Боты 
    if ( stristr( $agent, 'AhrefsBot' ) ) return 'AhrefsBot';
    if ( stristr( $agent, 'Googlebot' ) ) return 'Googlebot';
    if ( stristr( $agent, 'bingbot' ) ) return 'Bingbot';
    if ( stristr( $agent, 'YandexBot' ) ) return 'YandexBot';
    if ( stristr( $agent, 'Baiduspider' ) ) return 'Baiduspider';
    if ( stristr( $agent, 'MJ12bot' ) ) return 'MJ12bot';
    if ( stristr( $agent, 'YandexMetrika' ) ) {return 'YandexMetrika';}
    if ( stristr( $agent, 'Ezooms' ) ) return 'Ezooms';
    if ( stristr( $agent, 'Indy Library' ) ) return 'Indy Library'; // спам бот
    if ( stristr( $agent, 'alexa' ) ) return 'alexa';
    if ( stristr( $agent, 'archive.org_bot' ) ) return 'archive.org_bot';
    if ( stristr( $agent, 'LoadTimeBot' ) ) return 'LoadTimeBot';
    if ( stristr( $agent, 'Exabot' ) ) return 'Exabot';
    if ( stristr( $agent, 'TurnitinBot' ) ) return 'TurnitinBot';
    if ( stristr( $agent, 'proximic' ) ) return 'proximic';
    if ( stristr( $agent, 'GrapeshotCrawler' ) ) return 'GrapeshotCrawler';
	if ( stristr( $agent, 'Yahoo' ) ) return 'Yahoo';
    #Броузеры 
    if ( stristr( $agent, 'Firefox' ) ) return 'Firefox';
    if ( stristr( $agent, 'Opera' ) ) return 'Opera';
    if ( stristr( $agent, 'YaBrowser' ) ) return 'Yandex';
    if ( stristr( $agent, 'Maxthon' ) ) return 'Maxthon';
    if ( stristr( $agent, 'OPR' ) ) return 'Opera Next';
    if ( stristr( $agent, 'Galeon' ) ) return 'Galeon';
    if ( stristr( $agent, 'iCab' ) ) return 'iCab';
    if ( stristr( $agent, 'OmniWeb' ) ) return 'OmniWeb';
    if ( stristr( $agent, 'Phoenix' ) ) return 'Phoenix';
    if ( stristr( $agent, 'Firebird' ) ) return 'Firebird';
    if ( stristr( $agent, 'Amaya' ) ) return 'Amaya';
    if ( stristr( $agent, 'Lynx' ) ) return 'Lynx';
    if ( stristr( $agent, 'Green' ) ) return 'Green';
    if ( stristr( $agent, 'Avant' ) ) return 'Avant';
    if ( stristr( $agent, 'Galeon' ) ) return 'Galeon';
    if ( stristr( $agent, 'Acoo' ) ) return 'Acoo';
    if ( stristr( $agent, 'Browzar' ) ) return 'Browzar';
    if ( stristr( $agent, 'Comodo' ) ) return 'Comodo';
    if ( stristr( $agent, 'CoolNovo' ) ) return 'CoolNovo';
    if ( stristr( $agent, 'Kylo' ) ) return 'Kylo';
    if ( stristr( $agent, 'QtWeb' ) ) return 'QtWeb';
    if ( stristr( $agent, 'Torch' ) ) return 'Torch';
    if ( stristr( $agent, 'Bolt' ) ) return 'Bolt';
    if ( stristr( $agent, 'Dolphin' ) ) return 'Dolphin';
    if ( stristr( $agent, 'Minimo' ) ) return 'Minimo';
    if ( stristr( $agent, 'Obigo' ) ) return 'Obigo';
    if ( stristr( $agent, 'Mini' ) ) return 'Opera Mini';
    if ( stristr( $agent, 'Skyfire' ) ) return 'Skyfire';
    if ( stristr( $agent, 'Sleipnir' ) ) return 'Sleipnir';
    if ( stristr( $agent, 'Teashark' ) ) return 'Teashark';
    if ( stristr( $agent, 'Wapalta' ) ) return 'Wapalta';
    if ( stristr( $agent, 'Midori' ) ) return 'Midori';
    if ( stristr( $agent, 'Lunascape' ) ) return 'Lunascape';
    if ( stristr( $agent, 'UCBrowser' ) ) return 'UCBrowser';
    if ( stristr( $agent, 'iPhone' ) ) return 'iPhone';
    if ( stristr( $agent, 'iPod' ) ) return 'iPod';
    if ( stristr( $agent, 'BlackBerry' ) ) return 'BlackBerry';
    if ( stristr( $agent, 'Konqueror' ) ) return 'Konqueror';
    if ( stristr( $agent, 'Iceweasel' ) ) return 'Debian Iceweasel';
    if ( stristr( $agent, 'SeaMonkey' ) ) return 'SeaMonkey';
    if ( stristr( $agent, 'MSIE' ) ) return 'Internet Explorer';
    if ( stristr( $agent, 'Chrome' ) ) return 'Google Chrome';
    if ( stristr( $agent, 'Safari' ) ) return 'Safari';

    #Браузеров очень много, все вписывать смысле нет, Gecko почти везде встречается
    if ( stristr( $agent, 'Gecko' ) ) return 'Gecko';

    #А может это вообще поисковый робот
    return htmlspecialchars( $agent );
}

### Знак зодиака
function zodiak( $d, $m ) {
 
    $d = sprintf( '%02d', $d );
    $m = sprintf( '%02d', $m );
 
    if ( ( $m == '03' AND $d > 20 ) OR ( $m == '04' AND $d < 21 ) ) return array( 'Овен', 'oven' );
    if ( ( $m == '04' AND $d > 20 ) OR ( $m == '05' AND $d < 22 ) ) return array( 'Телец', 'taurus' );
    if ( ( $m == '05' AND $d > 21 ) OR ( $m == '06' AND $d < 22 ) ) return array( 'Близнецы', 'gemini' );
    if ( ( $m == '06' AND $d > 21 ) OR ( $m == '07' AND $d < 23 ) ) return array( 'Рак', 'cancer' );
    if ( ( $m == '07' AND $d > 22 ) OR ( $m == '08' AND $d < 24 ) ) return array( 'Лев', 'leo' );
    if ( ( $m == '08' AND $d > 23 ) OR ( $m == '09' AND $d < 24 ) ) return array( 'Дева', 'virgo' );
    if ( ( $m == '09' AND $d > 23 ) OR ( $m == '10' AND $d < 24 ) ) return array( 'Весы', 'libra' );
    if ( ( $m == '10' AND $d > 23 ) OR ( $m == '11' AND $d < 23 ) ) return array( 'Скорпион', 'scorpion' );
    if ( ( $m == '11' AND $d > 22 ) OR ( $m == '12' AND $d < 22 ) ) return array( 'Стрелец', 'sagittarius' );
    if ( ( $m == '12' AND $d > 21 ) OR ( $m == '01' AND $d < 19 ) ) return array( 'Козерог', 'capricorn' );
    if ( ( $m == '01' AND $d > 20 ) OR ( $m == '02' AND $d < 19 ) ) return array( 'Водолей', 'aquarius' );
    if ( ( $m == '02' AND $d > 18 ) OR ( $m == '03' AND $d < 21 ) ) return array( 'Рыбы', 'fish' );
 
    return null;
}

### Получeние кода страны
function GeoIP( $ip ) {
    /*$geo = file_get_contents('https://ipinfo.io/' . $ip . '/json');
	$geo = json_decode($geo);
	return $geo->country;*/
	
	$curl = curl_init();
    curl_setopt( $curl, CURLOPT_URL, 'http://api.wipmania.com/' . $ip );
    curl_setopt( $curl, CURLOPT_RETURNTRANSFER, TRUE );
    $out = curl_exec($curl);
    return $out;
    curl_close($curl);
}

### Получeние кода страны
function GeoIPSiti( $ip ) {
    $request = file_get_contents("http://api.sypexgeo.net/json/".$ip); 
	$array = json_decode($request);
	$out = $array->city->name_ru;
	$out = iconv( 'UTF-8', 'windows-1251', $out );
    return $out;
    curl_close($curl);
}

### Шифрование пароля
function md5_pass ( $message_md5, $password ) {
    return sha1( md5( $message_md5 . $password ) );
}

### SQL иньекции (дополнительная, редко пременяемая, не основная.)
function init_inj( $text ) {
    if ( preg_match( '/select|union|order|where|char|from|script/is', strtolower( $text ) ) ) {
        return 1;
    }
}

### изменение ссылок для проверки на Dr.web
function get_url( $text ) {
    $text = preg_replace( '#\b(http\:\/\/)?(https\:\/\/)?([a-zA-Z0-9\.])+([a-zA-Z0-9\-])+(\.)([a-zA-Z0-9]{2,5})?([a-zA-Z0-9\?\&\-\=\/\.\_]{2,})#', '$0', $text );
	$text = preg_replace( '#(href\=\")(([a-zA-Z0-9\.])+([a-zA-Z0-9\-])+(\.)([a-zA-Z0-9]{2,5})?([a-zA-Z0-9\?\&\-\=\/\.\_]{2,}))(\")#', '$2', $text );
    
    return $text;
}

### получения wmid через кошелек
function getwmid( $wmid ) {
    $getwmid = @file_get_contents( 'http://passport.webmoney.ru/asp/CertView.asp?purse=' . $wmid );
   $pos = strpos( $getwmid, 'http://arbitrage.webmoney.ru/asp/claims.asp?wmid=' );
    $getwmid = substr( $getwmid, $pos );
    $pos = strpos( $getwmid, ':</a> <a HREF=' ); /// или можно так $pos = strpos( $getwmid, '" TARGET="_blank"' );
    $getwmid = substr( $getwmid, 76, $pos ); /// тогда и тут надо поменять 76 на 0
    $getwmid = substr( $getwmid, strlen( $getwmid ) - 12 );
    if ( !is_numeric( $getwmid ) or strlen( $getwmid ) != 12 ) {
        $wmid = 1;
    } else {
        $wmid = $getwmid;
    }
    return $wmid;
}

### обрезка длинных слов в заголовках, титлах
function wraptitle( $text, $kol ) {
    return preg_replace( '/([^\s]{' . $kol . '})[^\s]+/', '$1', $text );
}

### Генерация кода для восстановление пароля или активации аккаунта
function generate( $number ) {
    $arr = array( 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9','0' );
    // Генерируем
    $pass = "";
    for( $i = 0; $i < $number; $i++ ) {
        // Вычисляем случайный индекс массива
        $index = rand( 0, count( $arr ) - 1 );
        $pass .= $arr[$index];
    }
    return $pass;
}

### Генерация пинкод
function pincode( $number ) {
    $arr = array( '1','2','3','4','5','6','7','8','9','0' );
    // Генерируем
    $pass = "";
    for( $i = 0; $i < $number; $i++ ) {
        // Вычисляем случайный индекс массива
        $index = rand( 0, count( $arr ) - 1 );
        $pass .= $arr[$index];
    }
    return $pass;
}

### точное округление
function moneyraund ( $money, $kol ) {
    if ( !is_numeric( $money ) ) {
        return $money = 0;
    } else
    if ( strpos( $money, '.') ) {
        $money = explode( '.', $money );
        return $money[0] . '.' . substr( $money[1], 0, $kol );
    } else {
        return $money;
    }
}

### фильтрация текста на SQL иньекции (основная)
function check_text( $text ) {
	$text = strip_tags( $text );
	$text = str_replace( '<', '', $text );
    $text = str_replace( '>', '', $text );
    $text = str_replace( '"', '', $text );
    $text = str_replace( "'", '', $text );
    $text = preg_replace('#[s|S|\s+][c|C|\s+][r|R|\s+][i|I|\s+][p|P|\s+][t|T]#is', '', $text);
    $text = preg_replace('#[s|S|\s+][e|E|\s+][l|L|\s+][e|E|\s+][c|C|\s+][t|T]#is', '', $text);
	$text = trim( $text );
    $text = htmlspecialchars( $text );
	return iconv( 'UTF-8', 'windows-1251', $text );
}

### склонение слов
function getWord( $number, $suffix ) {
    $keys = array( 2, 0, 1, 1, 1, 2 );
    $mod = $number % 100;
    $suffix_key = ( $mod > 7 && $mod < 20 ) ? 2: $keys[min( $mod % 10, 5 )];
    return $suffix[$suffix_key];
}

### проверка на разрушение фрейма
function check_frame( $url ) {
    $ch = @file_get_contents( $url );
    
    if ( preg_match( '/self(.+?)top|top\.location(.+?)self.location|top\.location(.+?)location/is', $ch ) ) {
        $fr = 'no';
    } else {
        $fr = 'ok';
    }
    
    return $fr;
}

### статус пользователя
function status_user( $status, $account ) {
    if ( $account == 5 ) {
        $usreyting = 'Администратор';
    } else
    if ( $status >= 1 and $status < 10 ) {
        $usreyting = 'Стажер';
    } else
    if ( $status >= 10 and $status < 100 ) {
        $usreyting = 'Рабочий';
    } else
    if ( $status >= 100 and $status < 250 ) {
        $usreyting = 'Бригадир';
    } else
    if ( $status >= 250 and $status < 600 ) {
        $usreyting = 'Мастер';
    } else
    if ( $status >= 600 and $status < 1000 ) {
        $usreyting = 'Инженер';
    } else
    if ( $status >= 1000 ) {
        $usreyting = 'Директор';
    }
    
    return $usreyting;
}

### limpiar
function limpiar($mensaje){
	$mensaje = htmlentities(stripslashes(trim($mensaje)));
	$mensaje = str_replace("'"," ",$mensaje);
	$mensaje = str_replace(";"," ",$mensaje);
	$mensaje = str_replace("$"," ",$mensaje);
	return $mensaje;
}

### ПОСТРАНИЧНАЯ НАВИГАЦИЯ
###? navigation( кол-во выводимой инфы, $_GET['p'], всего страниц, url запрос ) - Розяснение какие данные передаються в функцию при вызове.
function navigation( $num/*кол-во выводимой инфы*/, $pg/*$_GET['p']*/, $allpage/*всего страниц*/, $query/*url запрос*/ ) {
    
    if ( $allpage == 0 ) $page = 0; else $page = ( int ) $pg;
    $allpage = ceil( $allpage / $num );
    if ( $allpage == 0 ) $page = 0; else
    if ( $page <= 1 ) $page = 1; else
    if ( $page >= $allpage) $page = $allpage;
    $total = $allpage;
    
	#Если нужно будет сделать что бы страницы переключались без перезагрузки страницы а через фулл аякс, добавить ниже в каждый тег "а" обработчик "onclick="Page.Go(this.href); return false;"".
    if ( $page - 4 > 0 ) $page4left = '<a class="page-link" href="' . $query . ($page - 4) . '" >' . ($page - 4) . '</a>';
    if ( $page - 3 > 0 ) $page3left = '<a class="page-link" href="' . $query . ($page - 3) . '" >' . ($page - 3) . '</a>';
    if ( $page - 2 > 0 ) $page2left = '<a class="page-link" href="' . $query . ($page - 2) . '" >' . ($page - 2) . '</a>';
    if ( $page - 1 > 0 ) $page1left = '<a class="page-link" href="' . $query . ($page - 1) . '" >' . ($page - 1) . '</a>';

    if ( $page + 4 <= $total ) $page4right = '<a class="page-link" href="' . $query . ($page + 4) . '" >' . ($page + 4) . '</a>';
    if ( $page + 3 <= $total ) $page3right = '<a class="page-link" href="' . $query . ($page + 3) . '" >' . ($page + 3) . '</a>';
    if ( $page + 2 <= $total ) $page2right = '<a class="page-link" href="' . $query . ($page + 2) . '" >' . ($page + 2) . '</a>';
    if ( $page + 1 <= $total ) $page1right = '<a class="page-link" href="' . $query . ($page + 1) . '" >' . ($page + 1) . '</a>';
    
    if ( $page == 0 ) {
        $userpage = '';
    } else
    if ( $page == 1 and $page == $total ) {
		///Пока что тут пусто =)
	} else
    if ( $page == 1 and $total == 2 ) {
        $userpage = '
			<nav aria-label="...">
			  <ul class="pagination pagination-sm">	
				<li class="page-item disabled" >
				  <a class="page-link" href=""  aria-label="Next" >
					<span aria-hidden="true">&laquo;</span>
					<span class="sr-only">Previous</span>
				  </a>
				</li> 
				<li class="page-item active">
				  <a class="page-link" href="#">' . $page . '</a>
				</li>
				<li class="page-item">' . $page1right . '</li>
				<li class="page-item">' . $page2right . '</li>
				<li class="page-item ">
				  <a class="page-link" href="' .$query . $total . '" aria-label="Next">
					<span aria-hidden="true">&raquo;</span>
					<span class="sr-only">Next</span>
				  </a>
				</li>
			  </ul>
			</nav>';
    } else
    if ( $page == 1 ) {
        $userpage = '
			<nav aria-label="...">
			  <ul class="pagination pagination-sm">
				<li class="page-item disabled">
				  <a class="page-link" href="" tabindex="-1" aria-label="Previous">
					<span aria-hidden="true">&laquo;</span>
					<span class="sr-only">Previous</span>
				  </a>
				</li> 
				<li class="page-item active">
				  <a class="page-link" href="#">' . $page . '</a>
				</li>
				<li class="page-item">' . $page1right . '</li>
				<li class="page-item">' . $page2right . '</li>
				<li class="page-item">
				  <a class="page-link" href="' .$query . $total . '" aria-label="Next">
					<span aria-hidden="true">&raquo;</span>
					<span class="sr-only">Next</span>
				  </a>
				</li>
			  </li>
		    </ul>
			';
    } else
    if ( $page == 2 and $page == $total ) {
        $userpage = '
			<nav aria-label="...">
			  <ul class="pagination pagination-sm">	
				<li class="page-item ">
				  <a class="page-link" href="' .$query . '1"  aria-label="Next">
					<span aria-hidden="true">&laquo;</span>
					<span class="sr-only">Previous</span>
				  </a>
				</li> 
				<li class="page-item">' . $page1left . '</li>
				<li class="page-item active">
				  <a class="page-link" href="#">' . $page . '</a>
				</li>
				<li class="page-item">' . $page1right . '</li>
				<li class="page-item">' . $page2right . '</li>
				<li class="page-item disabled">
				  <a class="page-link" href="" aria-label="Next">
					<span aria-hidden="true">&raquo;</span>
					<span class="sr-only">Next</span>
				  </a>
				</li>
			  </ul>
			</nav>';
    } else
    if ( $page == 2 ) {
       $userpage = '
		<nav aria-label="...">
		  <ul class="pagination pagination-sm">	
			<li class="page-item ">
			  <a class="page-link" href="' .$query . '1"  aria-label="Next">
				<span aria-hidden="true">&laquo;</span>
				<span class="sr-only">Previous</span>
			  </a>
			</li> 
			<li class="page-item">' . $page1left . '</li>
			<li class="page-item active">
			  <a class="page-link" href="#">' . $page . '</a>
			</li>
			<li class="page-item">' . $page1right . '</li>
			<li class="page-item">' . $page2right . '</li>
			<li class="page-item">
			  <a class="page-link" href="' .$query . $total . '" aria-label="Next">
				<span aria-hidden="true">&raquo;</span>
				<span class="sr-only">Next</span>
			  </a>
			</li>
		  </ul>
		</nav>';
    } else
    if ( $page == $total - 1 ) {
        $userpage = '
			<nav aria-label="...">
			  <ul class="pagination pagination-sm">	
				<li class="page-item ">
				  <a class="page-link" href="' .$query . '1"  aria-label="Next">
					<span aria-hidden="true">&laquo;</span>
					<span class="sr-only">Previous</span>
				  </a>
				</li> 
				<li class="page-item">' . $page2left . '</li>
				<li class="page-item">' . $page1left . '</li>
				<li class="page-item active">
				  <a class="page-link" href="#">' . $page . '</a>
				</li>
				<li class="page-item">' . $page1right . '</li>
				<li class="page-item">
				  <a class="page-link" href="' .$query . $total . '" aria-label="Next">
					<span aria-hidden="true">&raquo;</span>
					<span class="sr-only">Next</span>
				  </a>
				</li>
			  </ul>
			</nav>';
    } else
    if ( $page == $total ) {
        $userpage = '
			<nav aria-label="...">
			  <ul class="pagination pagination-sm">	
				<li class="page-item ">
				  <a class="page-link" href="' .$query . '1"  aria-label="Next">
					<span aria-hidden="true">&laquo;</span>
					<span class="sr-only">Previous</span>
				  </a>
				</li> 
				<li class="page-item">' . $page2left . '</li>
				<li class="page-item">' . $page1left . '</li>
				<li class="page-item active">
				  <a class="page-link" href="#">' . $page . '</a>
				</li>
				<li class="page-item disabled">
				  <a class="page-link" href="" aria-label="Next">
					<span aria-hidden="true">&raquo;</span>
					<span class="sr-only">Next</span>
				  </a>
				</li>
			  </ul>
			</nav>';
    } else {
        $userpage = '
		<nav aria-label="...">
		  <ul class="pagination pagination-sm">	
			<li class="page-item ">
			  <a class="page-link" href="' .$query . '1"  aria-label="Next">
				<span aria-hidden="true">&laquo;</span>
				<span class="sr-only">Previous</span>
			  </a>
			</li> 
			<li class="page-item">' . $page2left . '</li>
			<li class="page-item">' . $page1left . '</li>
			<li class="page-item active">
			  <a class="page-link" href="#">' . $page . '</a>
			</li>
			<li class="page-item">' . $page1right . '</li>
			<li class="page-item">' . $page2right . '</li>
			<li class="page-item">
			  <a class="page-link" href="' .$query . $total . '" aria-label="Next">
				<span aria-hidden="true">&raquo;</span>
				<span class="sr-only">Next</span>
			  </a>
			</li>
		  </ul>
		</nav>';
    }
    
    return $userpage;
}

/*---Страны---*/
$countrys = array( 'ac'=> 'Асценовы Острова', 'ad'=> 'Андорра', 'ae'=> 'Объединенные Арабские Эмираты', 'af'=> 'Афганистан', 'ag'=> 'Антигуа', 'ai'=> 'Ангуилла', 'al'=> 'Албания', 'am'=> 'Армения', 'an'=> 'Нидерланды (Антильские острова)', 'ao'=> 'Ангола', 'aq'=> 'Антарктика', 'ar'=> 'Аргентина', 'as'=> 'Американские Острова Самоа', 'at'=> 'Австрия', 'au'=> 'Австралия', 'aw'=> 'Аруба', 'az'=> 'Азербайджан', 'ba'=> 'Босния и Герцеговина', 'bb'=> 'Барбадос', 'bd'=> 'Бангладеш', 'be'=> 'Бельгия', 'bf'=> 'Буркина Фасо', 'bg'=> 'Болгария', 'bh'=> 'Бахрейн', 'bi'=> 'Burundi', 'bj'=> 'Бенин', 'bm'=> 'Бермуды', 'bn'=> 'Бруней', 'bo'=> 'Боливия', 'br'=> 'Бразилия', 'bs'=> 'Багамы', 'bt'=> 'Бутан', 'bv'=> 'Боувет', 'bw'=> 'Ботсвана', 'by'=> 'Беларусь', 'bz'=> 'Белиз', 'ca'=> 'Канада', 'cc'=> 'Кокосовы (Килин) Острова', 'cd'=> 'Конго', 'cf'=> 'Центральноафриканская Республика', 'cg'=> 'Конго, Республика', 'ch'=> 'Швейцария', 'ci'=> 'Кот д И"вуар', 'ck'=> 'Острова Кока', 'cl'=> 'Чили', 'cm'=> 'Камерун', 'cn'=> 'Китай', 'co'=> 'Колумбия', 'cr'=> 'Коста-Рика', 'cu'=> 'Куба', 'cv'=> 'Мыс Верде', 'cx'=> 'Рождественский Остров', 'cy'=> 'Кипр', 'cz'=> 'Чехия', 'de'=> 'Германия', 'dj'=> 'Джибути', 'dk'=> 'Дания', 'dm'=> 'Доминиканская республика', 'do'=> 'Доминиканская Республика', 'dz'=> 'Алжир', 'ec'=> 'Эквадор', 'ee'=> 'Эстония', 'eg'=> 'Египет', 'eh'=> 'Западная Пустыня Сахара', 'er'=> 'Эртитреа', 'es'=> 'Испания', 'et'=> 'Эфиопия', 'eu'=> 'Европейский Союз', 'fi'=> 'Финляндия', 'fj'=> 'Фиджи', 'fk'=> 'Острова Фолклендов', 'fm'=> 'Микронезия', 'fo'=> 'Острова Фароэ', 'fr'=> 'Франция', 'ga'=> 'Габон', 'gb'=> 'Великобритания', 'gd'=> 'Гренада', 'ge'=> 'Грузия', 'gf'=> 'Французская Гвиана', 'gg'=> 'Гернси', 'gh'=> 'Гана', 'gi'=> 'Гибралтар', 'gl'=> 'Остров Гренландия', 'gm'=> 'Гамбия', 'gn'=> 'Гвинея', 'gp'=> 'Остров Гваделупа', 'gq'=> 'Экваториальная Гвинея', 'gr'=> 'Греция', 'gs'=> 'Грузия', 'gt'=> 'Гватемала', 'gu'=> 'Гуам', 'gw'=> 'Гвинея', 'gy'=> 'Гайана', 'hk'=> 'Гонконг', 'hm'=> 'Острова Макдоналда', 'hn'=> 'Гондурас', 'hr'=> 'Хорватия', 'ht'=> 'Гаити', 'hu'=> 'Венгрия', 'id'=> 'Индонезия', 'ie'=> 'Ирландия', 'il'=> 'Израиль', 'im'=> 'Остров Человека', 'in'=> 'Индия', 'io'=> 'Британская Территория Индийскего Океана', 'iq'=> 'Ирак', 'ir'=> 'Иран', 'is'=> 'Исландия', 'it'=> 'Италия', 'je'=> 'Свитер', 'jm'=> 'Ямайка', 'jo'=> 'Иордания', 'jp'=> 'Япония', 'ke'=> 'Кения', 'kg'=> 'Кыргызстан', 'kh'=> 'Камбоджа ( Кампучия )', 'ki'=> 'Кирибати', 'km'=> 'Коморос', 'kn'=> 'Сант Киттис и Невис', 'kp'=> 'Корея, Демократическая Народная Республика', 'kr'=> 'Корея, Республика', 'kw'=> 'Кувейт', 'ky'=> 'Острова Каймановы', 'kz'=> 'Казахстан', 'la'=> 'Лао Народная Демократическая республика', 'lb'=> 'Ливан', 'lc'=> 'Санта Лючиа', 'li'=> 'Лихтенштейн', 'lk'=> 'Шри-Ланка', 'lr'=> 'Либерия', 'ls'=> 'Лесото', 'lt'=> 'Литва', 'lu'=> 'Люксембург', 'lv'=> 'Латвия', 'ly'=> 'Ливийский Араб Джамахирииа', 'ma'=> 'Марокко', 'mc'=> 'Монако', 'md'=> 'Молдова', 'mg'=> 'Мадагаскар', 'mh'=> 'Маршаловы Острова', 'mk'=> 'Македония', 'ml'=> 'Мали', 'mm'=> 'Миамнар', 'mn'=> 'Монголия', 'mo'=> 'Макао', 'mp'=> 'Северные Марианские острова', 'mq'=> 'Мартиника', 'mr'=> 'Мавритания', 'ms'=> 'Монтсерра', 'mt'=> 'Мальта', 'mu'=> 'Маврикий', 'mv'=> 'Мальдивы', 'mw'=> 'Малави', 'mx'=> 'Мексика', 'my'=> 'Малайзия', 'mz'=> 'Мозамбик', 'na'=> 'Намибия', 'nc'=> 'Новая Каледония', 'ne'=> 'Нигер', 'nf'=> 'Норфолкский Остров', 'ng'=> 'Нигерия', 'ni'=> 'Никарагуа', 'nl'=> 'Нидерланды', 'no'=> 'Норвегия', 'np'=> 'Непал', 'nr'=> 'Науру', 'nu'=> 'Ниуве', 'nz'=> 'Новая Зеландия', 'om'=> 'Оман', 'pa'=> 'Панама', 'pe'=> 'Перу', 'pf'=> 'Французский язык Полинезия', 'pg'=> 'Папуа Новая Гвинея', 'ph'=> 'Филиппины', 'pk'=> 'Пакистан', 'pl'=> 'Польша', 'pm'=> 'Сант Пьер', 'pn'=> 'Питкаирн', 'pr'=> 'Пуэрто-Рико', 'ps'=> 'Палестина', 'pt'=> 'Португалия', 'pw'=> 'Палау', 'py'=> 'Парагвай', 'qa'=> 'Катар', 're'=> 'Воссоединение', 'ro'=> 'Румыния', 'ru'=> 'Россия', 'rw'=> 'Руанда', 'sa'=> 'Саудовская Аравия', 'sb'=> 'Соломон Исландс', 'sc'=> 'Сейчелес', 'sd'=> 'Судан', 'se'=> 'Швеция', 'sg'=> 'Сингапур', 'sh'=> 'Элена', 'si'=> 'Словения', 'sj'=> 'Сальвабард', 'sk'=> 'Словакия', 'sl'=> 'Сьерра-Леоне (Западная Африка)', 'sm'=> 'Сан-Марино', 'sn'=> 'Сенегал', 'so'=> 'Сомали', 'sr'=> 'Суринам', 'st'=> 'Сао Том', 'su'=> '(прежний) СССР', 'sv'=> 'Сальвадор (Центральная Америка)', 'sy'=> 'Сирийская Арабская Республика', 'sz'=> 'Свазиленд', 'tc'=> 'Турция', 'td'=> 'Чад', 'tf'=> 'Французские Южные Территории', 'tg'=> 'Того', 'th'=> 'Таиланд', 'tj'=> 'Таджикистан', 'tk'=> 'Токелао', 'tm'=> 'Туркмения', 'tn'=> 'Тунис', 'to'=> 'Тонга', 'tp'=> 'Восточный Тимур', 'tr'=> 'Турция', 'tt'=> 'Тринидад и Тобаго', 'tv'=> 'Тувалу', 'tw'=> 'Tайвань', 'tz'=> 'Танзания', 'ua'=> 'Украина', 'ug'=> 'Уганда', 'uk'=> 'Великобритания', 'um'=> 'Младший Соединенных Штатов Отдаленные Острова', 'us'=> 'Соединенные Штаты', 'uy'=> 'Уругвай', 'uz'=> 'Узбекистан', 'va'=> 'Ватикан', 'vc'=> 'Святой Винсент', 've'=> 'Венесуэла', 'vg'=> 'Девственные Британские Острова', 'vi'=> 'Девственные Острова США', 'vn'=> 'Вьетнам', 'vu'=> 'Вануату', 'wf'=> 'Валлис и Футуновы Острова', 'ws'=> 'Острова Самоа', 'ye'=> 'Йемен', 'yt'=> 'Майот', 'yu'=> 'Югославия', 'za'=> 'ЮАР', 'zm'=> 'Замбия', 'zw'=> 'Зимбабве' );

/*---Страны СНГ---*/
$country_4 = array( 'ua', 'ru', 'am', 'by', 'kz', 'md', 'tj', 'uz', 'ge', 'kg' );
/*---Страны Европы---*/
$country_5 = array( 'at', 'al', 'ad', 'by', 'be', 'bg', 'ba', 'va', 'gb', 'uk', 'hu', 'de', 'gr', 'dk', 'ie', 'is', 'es', 'it', 'kz', 'lv', 'lt', 'li', 'lu', 'mk', 'mt', 'md', 'mc', 'an', 'nl', 'no', 'pl', 'pt', 'cy', 'ru', 'ro', 'sk', 'si', 'tc', 'tr', 'ua', 'fi', 'fr', 'hr', 'cz', 'ch', 'se', 'ee' );
/*---Страны Америки---*/
$country_6 = array( 'bs', 'bb', 'ht', 'gt', 'hn', 'gd', 'dm', 'ca', 'cr', 'cu', 'mx', 'ni', 'pa', 'jm', 'ar', 'bo', 'br', 've', 'gy', 'co', 'py', 'sr', 'uy', 'cl', 'ec' );

?>