<?php

if (! defined("TOP_INCLUDED"))
{

define("TOP_INCLUDED", true);

require_once("inc/error.php");
require_once("inc/debug.php");
global $prefix, $section;

$menuitem = array();
$weighted_menuitem = array();

$submenu = array();

foreach (config('modules') as $module)
{
  $menu = false;
  if (file_exists("modules/{$module}/menu.php"))
    include("modules/{$module}/menu.php");
  if ($menu === false)
  {
    DEBUG("Modul {$module} hat keine Menüeinträge");
    continue;
  }
  DEBUG("<h4>$module</h4>");
  DEBUG($menu);
  // $menu["foo"]["file"] enthält den Link
  foreach (array_keys($menu) as $key)
  {
    $menu[$key]["file"] = $prefix."go/".$module."/".$menu[$key]["file"];
    $weight = $menu[$key]["weight"];
    if (isset($menu[$key]['submenu']))
    {
      if (isset($submenu[$menu[$key]['submenu']][$weight]))
        $submenu[$menu[$key]['submenu']][$weight] = array_merge($submenu[$menu[$key]['submenu']][$weight], array($key => $menu[$key]));
      else
        $submenu[$menu[$key]['submenu']][$weight] = array($key => $menu[$key]);
    }
    else
    {
      if (array_key_exists($weight, $weighted_menuitem))
        $weighted_menuitem[$weight] = array_merge($weighted_menuitem[$weight], array($key => $menu[$key]));
      else
        $weighted_menuitem[$weight] = array($key => $menu[$key]);
    }
  }
  $menuitem = array_merge($menuitem, $menu);
}

ksort($weighted_menuitem);
DEBUG($weighted_menuitem);

foreach ($submenu AS $weight => $data) {
  ksort($submenu[$weight]);
}

DEBUG($submenu);

// Verbiete das Laden in jeglichem Frameset
header("X-FRAME-OPTIONS: DENY");
header("Content-Type: ".config('mime_type'));

if (!isset($html_header))
  $html_header = '';

function array_key_exists_r($needle, $haystack)
{
    $result = array_key_exists($needle, $haystack);
    if ($result) return $result;
    foreach ($haystack as $v) {
        if (is_array($v)) {
            $result = array_key_exists_r($needle, $v);
        }
        if ($result) return $result;
    }
    return $result;
}


$menu = '';

foreach ($weighted_menuitem as $key => $menuitem)
        foreach ($menuitem as $key => $item)
        {
                if ($key == $section)
                        $menu .= '<a href="'.$item['file'].'" class="menuitem active">'.$item['label'].'</a>'."\n";
                else
                        $menu .= '<a href="'.$item['file'].'" class="menuitem">'.$item['label'].'</a>'."\n";
                if ($key == $section || (array_key_exists($key, $submenu) && array_key_exists_r($section, $submenu[$key])))
                {
                        if (isset($submenu[$key]))
                        {
                                $menu .= "\n";
				foreach ($submenu[$key] as $weight => $mysub) 
				{
                                  foreach ($mysub as $sec => $item)
                                  {
                                          if ($sec == $section)
                                                  $menu .= '<a href="'.$item['file'].'" class="submenuitem menuitem active">'.$item['label'].'</a>'."\n";
                                          else
                                                  $menu .= '<a href="'.$item['file'].'" class="submenuitem menuitem">'.$item['label'].'</a>'."\n";
                                  }
				}
                                $menu .= "\n";
                        }
		}

        }

$userinfo = '';

$role = $_SESSION['role'];
if ($role != ROLE_ANONYMOUS) {
  $userinfo .= '<p class="userinfo">Angemeldet als:<br />';
  if ($role & ROLE_SYSTEMUSER && isset($_SESSION['subuser'])) {
    $userinfo .= '<strong>'.$_SESSION['subuser'].'</strong>';
    $userinfo .= '<br />Mitbenutzer von '.$_SESSION['userinfo']['username'];
  }
  elseif ($role & ROLE_SYSTEMUSER) {
    $userinfo .= '<strong>'.$_SESSION['userinfo']['username'].'</strong>';
    $userinfo .= '<br />'.$_SESSION['userinfo']['name'];
    $userinfo .= '<br />(Benutzer'.(($role & ROLE_CUSTOMER) ? ', Kunde' : '').')';
  }
  elseif ($role & ROLE_CUSTOMER) {
    $userinfo .= '<strong>'.$_SESSION['customerinfo']['customerno'].'</strong>';
    $userinfo .= '<br />'.$_SESSION['customerinfo']['name'];
    $userinfo .= '<br />(Kunde)';
  }
  elseif ($role & (ROLE_MAILACCOUNT | ROLE_VMAIL_ACCOUNT)) {
    $userinfo .= '<strong>'.$_SESSION['mailaccount'].'</strong><br />(E-Mail-Account)';
  }
  $userinfo .= '</p>';
}

if (isset($_SESSION['admin_user'])) {
  $userinfo .= '<p class="admininfo">';
  $userinfo .= '<a href="'.$prefix.'go/su/back_to_admin">Zurück zu »'.$_SESSION['admin_user'].'«</a>';
  $userinfo .= '</p>';
}


$messages = get_messages();

$BASE_PATH = $prefix;
$THEME_PATH = $prefix."themes/".config('theme')."/";


}
?>