<?php
/**
 * index.php
 *
 * Startskript welches Frame und nonFrame-Fälle abdeckt
 *
 * @package	User
 * @access       public
 * @author	Niko Saghiadinos <Saghiadinos@t-online.de>
 * @author       Frank Rasche <info@raschesweb.de>
 * @copyright 	Copyright 2004 Frank Rasche, Niko Saghiadinos
 */

require_once ('../configMain.inc.php');
require_once (_ApiLibPath.'class.thymian_exception.inc.php');
require_once (_ApiLibPath.'class.thymian.inc.php');

try
{
	$startime = Thymian::getMicrotime();

	require_once (_ApiLibPath.'class.itx.inc.php');
	require_once (_ApiLibPath.'class.sessions.inc.php');
	require_once (_CoreLibPath.'class.user.inc.php');
	require_once (_ApiLibPath.'class.database.inc.php');

	$UserSession  = new TSession();
	$User         = new TUser();
	$current_lang = (!isset($_SESSION['user_language'])) ? _DefaultLanguage : trim($_SESSION['user_language']);
	if (isset($_GET['lang_sel']))
		$current_lang = htmlentities($_GET['lang_sel']);

	$User->selectLanguage($current_lang, $ar_available_lang);
	Thymian::getIniConfig(_LangDirectory.$current_lang.'/lang.ini', false, true);
	$lang      = Thymian::getLanguage('main');
	$ar_skins  = Thymian::getIniConfig('config_skins.ini', true, true); 	// Get all skins

	if (_multi_domain)
	{
		if (isset($User->ar_domains[$_SERVER['HTTP_HOST']]))
			$skin_id = $User->ar_domains[$_SERVER['HTTP_HOST']]['skin_id'];
		else
		{
			$skin_id = $User->usr_skin = 1;
			if (strncasecmp($_SERVER['HTTP_HOST'], 'api', 3) != 0)
			{
				// route to maindomain if exists
				$ar =  explode('.',$_SERVER['HTTP_HOST']);
				$count = count($ar);
				
				if ($count > 2)
				{
					$url = $ar[$count-2].'.'.$ar[$count-1];
					header('Location: http://'.$url.$_SERVER['REQUEST_URI']);
				}
				else
					header('Location: http://'._main_domain.$_SERVER['REQUEST_URI']);
				exit();
			}
		}

	}
	else
	{
		if (isset($_SESSION['usr_skin']) and !empty($_SESSION['usr_skin']))
			$skin_id = (int)$_SESSION['usr_skin'];
		else // use default skin
			$skin_id = $User->usr_skin = 1;
	}
	$_SESSION['usr_skin']      = $skin_id;

	define('_BaseTemplate', $ar_skins[$skin_id]['BaseTemplate']);
	define('_Mainsite', $ar_skins[$skin_id]['Mainsite']);
	define('_Layout', $ar_skins[$skin_id]['FrameLayout']);
	define('_Flash', $ar_skins[$skin_id]['UseFlash']);
	if (_mobile_site AND Thymian::isMobile())
	{
		$thymian_mobile = true;
		$_Layout_stylesheet = array($ar_skins[$skin_id]['MobileStyleSheet'], $ar_skins[$skin_id]['MobileAddStyleSheet']);
		$_Layout_jsfiles    = array('main_scripts' => 'main_scripts.js');
	}
	else
	{
		$thymian_mobile	= false;
		$_Layout_stylesheet = array($ar_skins[$skin_id]['MainStyleSheet'], $ar_skins[$skin_id]['MainAddStyleSheet'], 'themes/smoothness/jquery.ui.all.css');
		$_Layout_jsfiles    = array('easing'=> 'jquery.easing.js','main_scripts' => 'main_scripts.js');
	}
	define('_Path2StyleSheet', _BaseURL._BaseTemplate.'/css/'.$_Layout_stylesheet[0]);
	$_Layout_stylesheet['icons'] = 'icons.css';
	$_print_stylesheet[]         = $ar_skins[$skin_id]['PrintStyleSheet'];
	$_js_bodyloads['onload']     = array();
	$_js_bodyloads['onunload']   = array();

	// Hole XML-Datei $UserMenu -> ar_menus wird dort erstellt und ist global
	// Muss vor der $site geladen werden sonst können wir keine daten wie PageTitle, MetaTags und Rubrikabhängige CSS Daten
	// zuverlässig laden. Ausserdem wird so sichergestellt, das eine vorhande col_id in die Session geschrieben wird
	// bzw. beim fehlen die zuletzt benutze genommen wird
	require_once (_ModulesLibPath.'class.columns_frontend.inc.php');
	Thymian::getIniConfig('config_columns.ini', true);
	$UserMenu = new TMenuFrontend($User->ar_domains);
	$site     = $UserMenu->setSite(Thymian::validateStringUserInput('site', 'CMS'));
	$UserMenu->getXMLMenu();
	$col_id   = $UserMenu->getColumnId(); // Wichtig! Erst nach dem Menuinitialisierung

	if (_Layout=='Frame')
	{
		require_once ('./core/misc/frameset.php');
		exit();
	}
	// ---------------------------------------------------------------------------------
	if (strncasecmp($_SERVER['HTTP_HOST'], 'api', 3) != 0)
		$main_inc = Thymian::getIniConfig('main_includes.ini', true, false, true);
	else
		$main_inc = Thymian::getIniConfig('main_includes_api.ini', true, false, true);
		
	if (isset($main_inc[$site]))
	{
		if ($site != 'CMS')
			require_once ($main_inc[$site]);
		else
		{
			$ar_menu = $UserMenu->getMenu();
			if (isset($ar_menu[$col_id]['column_allocation']))
			{
				if ($ar_menu[$col_id]['column_allocation'] == 2)
					require_once ($main_inc[$ar_menu[$col_id]['column_link']]);
				else
					require_once ($main_inc[$site]);
			}
			else
				require_once ($main_inc['home']);
		}
		exit();
	}
	else
	{
		throw new ThymianException(_thymian_core_error, sprintf($lang['unregistered_site'], $site), 0, __FILE__, __LINE__);
	}
}
catch(ThymianException $e)
{
	if (isset($site))
	{
		if ($site == 'smil_player_check')
		{
			header('Location:http://www.link-to-a-website-which-is-not-avaible.de');
		}
		else
		{
			require_once ($main_inc['error_page']);
		}
	}
	else
		echo $e->getMessage();
	exit();
}
?>