<?php

// DEBUG:
$loadTime = microtime(true);

// SECURITY CONSTANT
define('BLUDIT', true);

// PHP PATHS
define('PATH_ROOT',					__DIR__.'/');
define('PATH_LANGUAGES',			PATH_ROOT.'languages/');
define('PATH_THEMES',				PATH_ROOT.'themes/');
define('PATH_PLUGINS',				PATH_ROOT.'plugins/');

define('PATH_KERNEL',				PATH_ROOT.'kernel/');
define('PATH_ABSTRACT',				PATH_ROOT.'kernel/abstract/');
define('PATH_BOOT',					PATH_ROOT.'kernel/boot/');
define('PATH_RULES',				PATH_ROOT.'kernel/boot/rules/');
define('PATH_HELPERS',				PATH_ROOT.'kernel/helpers/');

define('PATH_CONTENT',				PATH_ROOT.'content/');
define('PATH_POSTS',				PATH_CONTENT.'posts/');
define('PATH_PAGES',				PATH_CONTENT.'pages/');
define('PATH_DATABASES',			PATH_CONTENT.'databases/');
define('PATH_PLUGINS_DATABASES',	PATH_CONTENT.'databases/plugins/');

define('PATH_ADMIN_THEMES',			PATH_ROOT.'admin/themes/');
define('PATH_ADMIN_CONTROLLERS',	PATH_ROOT.'admin/controllers/');
define('PATH_ADMIN_VIEWS',			PATH_ROOT.'admin/views/');

// BOOT
require(PATH_BOOT.'site.php');

// Admin area
if($Url->whereAmI()==='admin')
{
	$layout = array(
		'controller'=>null,
		'view'=>null,
		'template'=>'index.php'
	);

	$layout['controller'] = $layout['view'] = $Url->slug();

	if($Url->notFound() || !$Login->isLogged() || ($Url->slug()==='login') )
	{
		$layout['controller'] = 'login';
		$layout['view'] = 'login';
		$layout['template'] = 'login.php';
	}

	// Admin theme init.php
	if( Sanitize::pathFile(PATH_ADMIN_THEMES, $Site->adminTheme().'/init.php') )
		include(PATH_ADMIN_THEMES.$Site->adminTheme().'/init.php');

	// Load controller
	if( Sanitize::pathFile(PATH_ADMIN_CONTROLLERS, $layout['controller'].'.php') )
		include(PATH_ADMIN_CONTROLLERS.$layout['controller'].'.php');	

	// Load view and theme
	if( Sanitize::pathFile(PATH_ADMIN_THEMES, $Site->adminTheme().'/'.$layout['template']) )
		include(PATH_ADMIN_THEMES.$Site->adminTheme().'/'.$layout['template']);

}
// Site
else
{
	if($Url->notFound())
	{
		$Url->setWhereAmI('page');
		$Page = new Page('error');
	}

	// Theme init.php
	if( Sanitize::pathFile(PATH_THEMES, $Site->theme().'/init.php') )
		include(PATH_THEMES.$Site->theme().'/init.php');

	// Theme HTML
	if( Sanitize::pathFile(PATH_THEMES, $Site->theme().'/index.php') )
		include(PATH_THEMES.$Site->theme().'/index.php');
}

// DEBUG:
echo "Load time: ".(microtime(true) - $loadTime);