<?php 
        # zabezpieczenie przed wywolywaniem skryptow z podkatalogow
	$dprotect = true;

        # ladowanie wstępnej, minimalnej konfiguracji
	include('_includes/quick.config.inc.php');       
	        
        # check if install exists
        if (file_exists('install/')) {
            header("Location: " . $config['url'] . "install/");
        }
        
        # przekierowanie 301
	if($config['domain'] && $_SERVER["HTTP_HOST"] != $config['domain'])
	{
	    header("HTTP/1.1 301 Moved Permanently");     
            header("Location: " . $config['url'] . $_SERVER['REQUEST_URI']);
	    header("Connection: close");   
	    exit();
	}

	# start sesji
	session_start();
	
	# losowa wartosc
	$random = md5(time()+rand(1, 65535));	
	
	# ladowanie konfiguracji
	include('_includes/config.inc.php');
	include('_includes/db.inc.php');
	
	# ladowanie klas
	include('_class/class.core.php');
	
	# biblioteki
	include('libs/Smarty.class.php');
	
	# tworzenie obiektow
	$core = new Core();
	$smarty = new Smarty();
        
        if (DEBUG) {
            $smarty->force_compile = true;
            $smarty->debugging = true;
        }
	
	# parsowanie linku
	$link = $core->extractLink($_GET['link']);
        
	# silnik
	$core->dbConnect();
	$config = array_merge($config, $core->readConfiguration());
	include('modules/controller.php');
	$core->dbDisconnect();

	# przekazywanie podstawowych danych do templatek
	$smarty->assign('link', $link);
	$smarty->assign('config', $config);
	$smarty->assign('random', $random);
        $smarty->assign('year', date("Y"));

	# wyswietlamy templatke
	switch($link[0]) {
		case 'admin':
			$smarty->display('admin.tpl');
		break;
		default:
			$smarty->display('controller.tpl');
	}
	
	# w tej zmiennej trzymamy komunikaty do zdarzen
	unset($_SESSION['msg']);
	
?>