<?

if (file_exists($_SERVER['DOCUMENT_ROOT'].'/pages/install/index.php')) {
	?>
		<script type="text/javascript"> 
		location.replace("/pages/install/"); 
		</script>
	<?
	die();
}
list($msec, $sec) = explode(chr(32), microtime());

$si = glob(H.'core/autoload/*.php'); 
foreach($si as $fl) {
	require_once $fl;
	unset($fl,$si);
}

$_GET = array_map('FilterGlobal::GET', $_GET);
$_POST = array_map('FilterGlobal::POST', $_POST);
$_COOKIE = array_map('FilterGlobal::COOKIE', $_COOKIE);
$_REQUEST = array_map('FilterGlobal::REQUEST', $_REQUEST);

$sql = new db();

$registry = Registry::getInstance();
$browser = new Mobile_Detect();

$urlPage = htmlentities($_SERVER['REQUEST_URI'], ENT_QUOTES, 'UTF-8');
$urlHost = strtoupper($_SERVER['HTTP_HOST']);

$system = array(
	'urlPage' 	=> $urlPage,
	'urlHost' 	=> $urlHost,
	'urlfile' 	=> $_SERVER['SCRIPT_FILENAME'],
	'urlScript' => $_SERVER['SCRIPT_NAME'],
	'urlRefer' 	=> isset($_SERVER['HTTP_REFERER']) ? output($_SERVER['HTTP_REFERER'],'html') : false ,
	'ua' 		=> isset($_SERVER['HTTP_USER_AGENT']) ? output($_SERVER['HTTP_USER_AGENT'],'html'): false ,
	'ip' 		=> GetIP(),
	'time' 		=> $_SERVER['REQUEST_TIME'] ,
	'HostSite' 	=> $_SERVER['HTTP_HOST'] ,	
	
	'BrowserTime' 		=> isset($_COOKIE['BrowserTime']) ? (int) substr($_COOKIE['BrowserTime'], 0, -3) : false ,
	'BrowserTimeZone' 	=> isset($_COOKIE['BrowserTimeZone']) ? (int) $_COOKIE['BrowserTimeZone'] : false ,
	'BrowserScreenSize' => isset($_COOKIE['BrowserScreenSize']) ? $_COOKIE['BrowserScreenSize'] : false ,
	
);

#--------------------------------------#
if (is_file(H.'core/config/settings.json')) {
	$jsonFileSet = file_get_contents(H.'core/config/settings.json');
	$set = json_decode($jsonFileSet, true);	
} else {
	die('core/config/settings.json not file');
}
$set['GenPage'] = $sec + $msec;
$set['session_name'] = 'DjkohadeNewsCms';
$set['lang'] = 'ru';
#--------------------------------------#

//Часовой пояс по умолчанию
date_default_timezone_set($set['timezone']);
//Стартуем сессию
session_name($set['session_name']);
session_start();

include H.'core/includes/user.php';

//Определяем темы пользователя
if ($browser->isTablet()) { 
	$theme = $user ? $user['theme_tablet'] : $set['theme_tablet'];
}
if ($browser->isMobile() AND !$browser->isTablet()) { 
	$theme = $user ? $user['theme_mobile'] : $set['theme_mobile'];
}
if (!$browser->isMobile() AND !$browser->isTablet()) { 
	$theme = $user ? $user['theme_web'] : $set['theme_web'];
}

//На случаи если темы установленная у пользователя не нашлась , ищем папку с темами и выбираем самую первую .
if (!file_exists(H .'themes/'. $theme .'/template/') or $theme == null) {
	$themesDefault = false;
	$dir = scandir(H.'themes/');
	foreach ($dir as $themes) {
		if ($themes == '.' or $themes == '..') {
			continue;
		}
		$themesDefault[] = $themes;
	}
	$themesDefault = @array_values($themesDefault);
	$themesDefault = $themesDefault[0];
	$theme = $themesDefault;
}

define('THEME', H .'themes/'. $theme .'/template/');
define('THEME_USER', '/themes/'. $theme .'/');
$set['theme'] = $theme;

//Запись логов с ошибками
if ($set['log_errors'] == 1) {
	ini_set('log_errors', 'On');
	ini_set('error_log', H .'core/config/errors.log');
}


#----Настройка доступа к показу ошибок----#
$display_errors_access = false;

if ($user AND $set['display_errors'] == 1 AND $user['id_level'] != 0) {
	$display_errors_access = true;
}elseif ($user AND $set['display_errors'] == 2) {
	$display_errors_access = true;
}elseif ($set['display_errors'] == 3) {
	$display_errors_access = true;
}

if ($display_errors_access) {
	error_reporting(E_ALL);
	ini_set('display_errors',true);
} else {
	ini_set('display_errors', false);
    error_reporting(0);
}
#----Настройка доступа к показу ошибок----#


//Регистрация переменных
$arr_registry = array(
	//Настройки 
	'set' => $set,
	//Инициализация шаблонизатора
	't' => new template(),
	'sql' => $sql,
	'time' => time(),	
	'browser' => $browser,
	'user' => $user,
	//Текущая страница
	'urlPage' => $system['urlPage'],	
	//Системные данные
	'system' => $system,
	//Инициализация наших кук и переопределение глобального массива
	'_COOKIE' => $_COOKIE ,	
);

foreach($arr_registry AS $key => $val) {
	$registry->set($key,$val);
	//Обьявляем переменные и локально
	$$key = $val;
}
