<?php

//	ini_set('session.cache_limiter', 'private');

	require(dirname(__FILE__).'/init.php');

	define('AKB_WL_LANG_FILE',		dirname(__FILE__).'/includes/language/'.$GLOBALS['currentLanguage'].'/whitelabel.ini');
	define('AKB_LANG_FILE',			dirname(__FILE__).'/includes/language/'.$GLOBALS['currentLanguage'].'/front_language.ini');
	define('AKB_TPL_LOAD_PATH',		dirname(__FILE__).'/templates/'.$GLOBALS['template'].'/');
	define('AKB_TPL_PHP_PATH',		dirname(__FILE__).'/includes/display/');
	define('AKB_TPL_HTTP_PATH',		$GLOBALS['pathToKB'].'/templates/'.$GLOBALS['template'].'/');
	define('AKB_TPL_IMAGE_PATH',		AKB_TPL_HTTP_PATH.'Images');
	define('AKB_PANEL_LOAD_PATH',		AKB_TPL_LOAD_PATH.'Panels/');
	define('AKB_SNIPPET_LOAD_PATH',	AKB_TPL_LOAD_PATH.'Snippets/');
	define('CLASS_DIR', 				dirname(__FILE__).'/includes/classes');

	require(CLASS_DIR.'/class.helper.php');
	require(CLASS_DIR.'/class.panel.php');
	require(CLASS_DIR.'/class.template.php');
	require(CLASS_DIR.'/class.auth.php');
	require(CLASS_DIR.'/class.search.php');

	$GLOBALS['AKB_CLASS_HELPER']		= new AKB_HELPER;
	
	$GLOBALS['AKB_CLASS_TEMPLATE']		= new AKB_TEMPLATE;
	$GLOBALS['AKB_CLASS_SEARCH']		= new AKB_SEARCH;

	$GLOBALS['SNIPPETS'] = '';
	if (!pageLoad()) {
		AKB_AUTH::ShowLoginForm(GetLang('SessionLoggedOutMessage'));
		die();
	}
	// Is the site down for maintenance?
	if ($GLOBALS['downForMaintenance'] == 1) {
		// Show the down for maintenance panel
		$GLOBALS['AKB_CLASS_TEMPLATE']->SetPageTitle(GetLang('hpDownForMaintenance'));
		$GLOBALS['AKB_CLASS_TEMPLATE']->SetTemplate('Maintenance');
		$GLOBALS['AKB_CLASS_TEMPLATE']->ParseTemplate();
		die();
	}

	if (FrontendAccess()) {
		$GLOBALS['AKB_CLASS_SEARCH']->HandlePage();
	} else {
		if (!isset($_POST['frontendPass'])) {
			$GLOBALS['HidePanels'] = array (
				'FrontendLoginError',
			);
		}
		$GLOBALS['FormAction'] = $GLOBALS['pathToKB'].'/search.php';
		$GLOBALS['AKB_CLASS_TEMPLATE']->SetPageTitle(GetLang('kbLoginRequired'));
		$GLOBALS['AKB_CLASS_TEMPLATE']->SetTemplate('FrontendLogin');
		$GLOBALS['AKB_CLASS_TEMPLATE']->ParseTemplate();
	}

	// {{{ If debug is on, print the debug footer
	if (isset($GLOBALS['debug']) && $GLOBALS['debug'] == true) {
		$end_time = microtime_float();
		if (function_exists('memory_get_usage')) {
			$mem_used = memory_get_usage()/1024/1024;
		} else {
			$mem_used = 0;
		}
		printf('<div id="debug">Time taken to generate the page %.4f seconds and performed %d sql queries and used %.4f MB of memory</div>', ($end_time - $start_time), $GLOBALS['AKB_DB']->NumQueries, $mem_used);
	}
	// }}}
?>