<?php
/**
 * @copyright NetMonsters <team@netmonsters.ru>
 * @link http://netmonsters.ru
 * @package Majestic
 * @subpackage app
 * @since 2010-02-25
 * @version SVN: $Id$
 * @filesource $URL$
 */

class Router
{

    protected $routes = array();
    
    protected $route_name;
    
    protected $default_layout = 'Default';
    
    /**
     * @var Route
     */
    protected $route;
    
    public function add($name, $route, $action, $params = array(), $layout = null)
    {
        if (!$layout) {
            $layout = $this->default_layout;
        }
        $this->routes[$name] = new Route($route, $action, $params, $layout);
    }
    
    public function route($request)
    {
        $req = explode('/', trim($request, '/'));
        
        foreach ($this->routes as $name => $route) {
            if ($route->match($req)) {
                $this->route_name = $name;
                $this->route = $route;
                Env::setParams($route->getParams());
                return $this->route;
            }
        }
        return false;
    }
    
    public function setDefaultLayout($layout = 'Default')
    {
        $this->default_layout = $layout;
    }
    
    public function getRouteName()
    {
        return $this->route_name;
    }
    
    /**
     * @return Route
     */
    public function getRoute()
    {
        return $this->route;
    }
}