<?php

include_once(dirname(__FILE__).'/../../Base/View.php');
include_once(dirname(__FILE__).'/../../Module/News/View.php');

class PageView extends View
{
  var $TimeStart;
  var $ShortTitle;
  var $FullTitle;
  var $Load;
  var $Unload;
  var $Content;

  function ShowHeader($Title, $Path)
  {    
    $BodyParam = '';
    if($this->Load != '') $BodyParam .= ' onload="'.$this->Load.'"';
    if($this->Unload != '') $BodyParam .= ' onunload="'.$this->Unload.'"';
    $Output = '<?xml version="1.0" encoding="'.$this->Config['Web']['Charset'].'"?>'."\n".
    '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'.
    '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">'.
    '<head><link rel="stylesheet" href="'.$this->Config['Web']['RootFolder'].'/Application/Style/Style.css" type="text/css" media="all" />'.
    '<meta http-equiv="content-type" content="application/xhtml+xml; charset='.$this->Config['Web']['Charset'].'" />'.
    '<script type="text/javascript" src="'.$this->Config['Web']['RootFolder'].'/Application/Style/Global.js"></script>'.
    '<title>'.$this->Config['Web']['Title'].' - '.$Path.'</title>
    </head><body'.$BodyParam.'>'.$this->ShowTopPanel();
    return($Output);
  }
  
  function ShowTopPanel()
  {
    $Output = '<div class="Navigation"><span class="MenuItem">'.
    '<a href="?Module=HomePage&amp;Action=Info">Informace</a>'.
    ' <a href="?Module=HomePage&amp;Action=State">Stav systému</a>'.
    ' <a href="?Module=Server&amp;Action=ItemList">Seznam serverů</a>'.
    ' <a href="?Module=Client&amp;Action=ItemList">Verze klienta</a>'.
    ' <a href="?Module=Emulator&amp;Action=ItemList">Verze emulátoru</a>'.
    '</span><div class="MenuItem2">';
    if($this->System->Modules['User']->Data['Id'] == $this->Config['Web']['UserAnonymousId'])
    {
      $Output .= '<a href="'.$this->System->Config['Web']['RootFolder'].'/?Module=User&amp;Action=Login">Přihlášení</a>';
      if($this->Config['Web']['UserRegistrationEnabled']) $Output .= ' <a href="'.$this->System->Config['Web']['RootFolder'].'/?Module=User&amp;Action=Register">Registrace</a>'; 
    } else $Output .= $this->System->Modules['User']->Data['Name'].' <a href="'.$this->Config['Web']['RootFolder'].'/?Module=User&amp;Action=Logout">Odhlásit</a>'.
       ' <a href="'.$this->Config['Web']['RootFolder'].'/?Module=User&amp;Action=Options">Nastavení</a>';
    $Output .= '</div></div>';
    return($Output);
  }

  function ShowFooter()
  {
    global $ScriptTimeStart;
    
    $Time = round($this->System->GetMicrotime() - $ScriptTimeStart, 2);
    $Output = '<div class="Footer">
   <ul><li>Založeno na projektu <a href="http://svn.zdechov.net/trac/wowhosting/">WoW hosting</a></li>'.
   '<li><a href="http://svn.zdechov.net/trac/wowhosting/browser">Zdrojové kódy</a></li>'.
   '<li><a href="http://svn.zdechov.net/trac/wowhosting/log?verbose=on">Novinky</a></li>'.
   '<li>Správce: '.$this->Config['Web']['Admin'].'</li>'.
   '<li>E-mail: '.$this->Config['Web']['AdminEmail'].'</li>';
    if($this->Config['Web']['ShowRuntimeInfo'] == true) $Output .= '<li>Doba generování: '.$Time.' s / '.ini_get('max_execution_time').' s</li><li>Použitá paměť: '.$this->System->AddPrefixMultipliers(memory_get_peak_usage(FALSE), 'B').' / '.ini_get('memory_limit').'B</li>';
  $Output .= '</ul></div></body></html>';
    return($Output); 
  }
  
  function CenterPanel($Content)
  {
    $Output = '<table class="BasicTable"><tr>';
    if($this->System->Modules['User']->Data['Id'] != $this->Config['Web']['UserAnonymousId']) 
      $Output .= '<td class="UserMenu">'.$this->UserMenu().'</td>';
    $Output .= '<td class="Content">'.$Content.'</td>';
    if(!array_key_exists('Action', $_GET))
    {
      $NewsView = new NewsView($this->System);
      $Output .= $NewsView->View();
    }
    $Output .= '</tr></table>';
    return($Output);
  }

  function UserMenu()
  {    
    $Output = '<strong>Uživatelské menu</strong><br />';
    if($this->System->Modules['User']->Data['Id'] != $this->Config['Web']['UserAnonymousId']) 
    {
      $Output .= '<div><a href="?Module=Cluster&amp;Action=ItemList">Uzly skupiny</a></div>';
      $Output .= '<div><a href="?Module=Server&amp;Action=ItemList&amp;Filter=User">Moje servery</a></div>';
      //$Output .= '<div><a href="?Action=RealmList&amp;Filter=User">Moje světy</a></div>';
      //$Output .= '<div><a href="?Action=DebugList&amp;Id='.$Server['Id'].'">Ladící záznamy</a></div>';
      //$Output .= '<div><a href="?Action=BackupList&amp;Id='.$Server['Id'].'">Zálohy</a></div>';
      $Output .= '<div><a href="?Module=Task&amp;Action=ItemList">Fronta úloh</a></div>';
      //$Output .= '<div><a href="?Action=UpdateList&amp;Id='.$Server['Id'].'">Dostupné aktualizace</a></div>';

      if($this->System->Modules['Permission']->Check('News', 'Add')) 
      {
        $Output .= '<div><a href="?Module=News&amp;Action=Add">Přidat aktualitu</a></div>';
      }
    }
    return($Output);
  }

  function GetOutput($Content)
  { 
    $Output = $this->ShowHeader($this->FullTitle, $this->ShortTitle).
      $this->CenterPanel($Content);
    $Output .= $this->ShowFooter();
    if($this->Config['Web']['FormatHTML'] == true) echo($this->FormatOutput($Output));
    else echo($Output);
  }

  function SystemMessage($Text)
  { 
    return('<table align="center"><tr><td><div class="SystemMessage"><h3>Systémová zpráva</h3><div>'.$Text.'</div></div</td></tr></table>');
    //ShowFooter();
    //die();
  }
  
  function AccessDenied()
  {
    return($this->GetOutput($this->SystemMessage($this->System->Translate('AccessDenied'))));  
  }
}
