<?php

session_start();
include('config.php');
include('database.php');
include('error.php');
$Database = new Database($Config['Database']['Host'], $Config['Database']['User'], $Config['Database']['Password'], $Config['Database']['Database']);
$Database->Prefix = $Config['Database']['Prefix'];
$Database->charset($Config['Database']['Charset']);

$Menu = array(
  array('index.php', 'Home', 'home'),
  array('jak_zacit.php', 'Jak začít', 'how'),
  array('registrace/', 'Registrace', 'registrace'),
  array('minimanager/', 'Správa účtu', 'account'),
  array('forum/', 'Diskusní fórum', 'forum'),
  array('server.php', 'Server', 'server'),
  array('finance/', 'Finance', 'donate'),
  array('databaze/', 'Online databáze', 'database'),
  array('download_soubory/', 'Soubory', 'download'),
  array('link.php', 'Odkazy', 'link'),
  array('mapa.php', 'Mapa', 'mapa'),
  array('guildy.php', 'Seznam guild', 'guilds'),
  array('online_player.php', 'Online hráči', 'online_player'),
  array('honor.php', 'Tabulka cti', 'honor'),
  array('events.php', 'Události', 'udalosti'),
  array('arena.php', 'Arény', 'areny'),
  //array('Death%20Dealers%20Hratelne%20Rasy.php', 'Rasy', 'rasy'),
  //array('Death%20Dealers%20Povolani.php', 'Povolání', 'povolani'),
  //array('Death%20Dealers%20Profese.php', 'Profese', 'profese'),
);

$UnitNames = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB');

function HumanSize($Value)
{
  global $UnitNames;

  $UnitIndex = 0;
  while($Value > 1024)
  {
    $Value = round($Value / 1024, 3);
    $UnitIndex++;
  }
  return($Value.' '.$UnitNames[$UnitIndex]);
}

function HumanDate($DateTime)
{
  $DateTimeParts = explode(' ', $DateTime);
  $Parts = explode('-', $DateTimeParts[0]);
  if($DateTimeParts[0] != '0000-00-00') return(($Parts[2]*1).'.'.($Parts[1]*1).'.'.$Parts[0]);
  else return('&nbsp;');
}

function OnlinePlayerCount()
{
  global $Database, $Config;
  
  $Database->select_db($Config['Mangos']['DatabaseCharacters']);
  $Result = $Database->select('characters', 'COUNT(*)', 'online=1');
  $Row = $Result->fetch_array();
  return($Row[0]); 
}

function CharacterCount()
{
  global $Database, $Config;
  $Database->select_db($Config['Mangos']['DatabaseCharacters']);
  $Result = $Database->select('characters', 'COUNT(*)');
  $Row = $Result->fetch_array();
  return($Row[0]);
}

function AccountCount()
{
  global $Database, $Config;
  $Database->select_db($Config['Mangos']['DatabaseRealmd']);
  $DbResult = $Database->query('SELECT COUNT(*) FROM account');
  $Row = $DbResult->fetch_array();
  return($Row[0]);
}

function MangosUptime()
{
  global $Database, $Config;
  $Database->select_db($Config['Mangos']['DatabaseMangos']);
  $DbResult = $Database->query('SELECT `starttime`, `uptime` FROM `uptime` ORDER BY `starttime` DESC LIMIT 1');
  $Row = $DbResult->fetch_array();
  $Uptime = $Row['uptime'];
  //$Uptime = 0;
  $Days = floor($Uptime / 3600 / 24);
  if($Days == 0) $DaysText = '';
  else if($Days == 1) $DaysText = $Days.' den';
  else if(($Days > 1) and ($Days < 5)) $DaysText = $Days.' dny';
  else if(($Days > 5)) $DaysText = $Days.' dnů';
  $Seconds = $Uptime - 3600;
  return($DaysText.' '.date('G:i', $Seconds));
}

function RunningEventCount()
{
  global $Database, $Config;
  $Count = 0;
  $Database->select_db($Config['Mangos']['DatabaseMangos']);
  $DbResult = $Database->select('game_event', 'occurence, length, UNIX_TIMESTAMP(start_time) as start', 'end_time > NOW() AND start_time < NOW()');
  while($Row = $DbResult->fetch_array())
  { 
    $Start = (floor((time() - $Row['start']) / ($Row['occurence'] * 60))) * $Row['occurence'] * 60 + $Row['start'];
    $End = $Start + $Row['length'] * 60;
    if((time() > $Start) and (time() < $End)) $Count++;
  }
  return($Count);
}

function ShowOnlinePlayerCount()
{
  $PlayerCount = OnlinePlayerCount();
  if($PlayerCount == 1) $P = 'hráč';
  else if(($PlayerCount >= 2) and ($PlayerCount <= 4)) $P = 'hráči';
  else $P = 'hráčů'; 
  echo($PlayerCount.' '.$P);
}

function FormatOutput($s)
{
    $out = '';
    $nn = 0;
    $n = 0;
    while($s!='')
    {
      $start = strpos($s,'<');
  	  $end = strpos($s,'>');
    	if($start != 0) 
    	{
	      $end = $start-1;
	      $start = 0;
	    }
	    $line = trim(substr($s,$start,$end+1));
	    if(strlen($line)>0) 
	    if($line[0] == '<')
	    {
  	    if($s[$start+1] == '/') 
	      {
  	      $n = $n - 2;
		      $nn = $n;
	      } else 
	      {
     	    if(strpos($line,' ')) $cmd = substr($line,1,strpos($line,' ')-1);
	        else $cmd = substr($line,1,strlen($line)-2);
          //echo('['.$cmd.']');
		      if(strpos($s,'</'.$cmd.'>')) $n = $n + 2;
	      }   
	    }// else $line = '['.$line.']';
      //if($line != '') echo(htmlspecialchars(str_repeat(' ',$nn).$line."\n"));
	    if($line != '') $out .= (str_repeat(' ',$nn).$line."\n");
	    $s = substr($s,$end+1,strlen($s));
	    $nn = $n;
    }
    return($out);
}

function CheckPortStatus($Ip, $Port)
{
  function ErrorHandler($errno,$errmsg,$filename,$linenum,$vars)
  {
  }  
  set_error_handler('ErrorHandler');
  //error_reporting(0);
  if($Fp1 = fsockopen($Ip, $Port, $ERROR_NO, $ERROR_STR,(float)0.5))
  {
    fclose($Fp1);
    return true;
  } else
  {
    //echo($ERROR_NO.','.$ERROR_STR);
    //die();
    return false;
  }
  restore_error_handler();
}

function GenerateMenu()
{
  global $Config, $Menu;
  $Result = '';
  foreach($Menu as $Index => $MenuItem)
  {
    $Result .= "<a href=\"".$Config['Web']['BaseURL'].$MenuItem[0]."\" onMouseOver=\"swtch(&quot;".($Index*2+2)."&quot;,&quot;".$MenuItem[2]."&quot;)\" onMouseOut=\"swtch(&quot;".($Index*2+1)."&quot;,&quot;".$MenuItem[2]."&quot;)\"><IMG SRC=\"".$Config['Web']['BaseURL']."images/".$MenuItem[2].".jpg\" name=\"".$MenuItem[2]."\" alt=\"".$MenuItem[1]."\" border=\"0\"></A><br>\n";
  }
  return($Result);
}

function ShowHeader()
{
  global $Config;
  echo('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
  <META http-equiv="Content-Language" content="cs">
  <META http-equiv="Content-Type" content="text/html; charset='.$Config['Web']['Charset'].'">
  <META HTTP-EQUIV="Expires" CONTENT="Mon, 06 Jan 1990 00:00:01 GMT">
  <link rel="SHORTCUT ICON" href="images/favicon.ico">
  <link rel="alternate" title="Hlavní aktuality" href="http://'.$_SERVER['SERVER_NAME'].$Config['Web']['BaseURL'].'rss.php" type="application/rss+xml">
  <link rel="alternate" title="Finanční příspěvky" href="http://'.$_SERVER['SERVER_NAME'].$Config['Web']['BaseURL'].'finance/rss.php" type="application/rss+xml">
  <TITLE>WoW server Heroes of Fantasy</TITLE>
  <style type="text/css" media="screen">@import url('.$Config['Web']['BaseURL'].'css/style.css);</style>
  <script language="JavaScript" type="text/javascript" src="'.$Config['Web']['BaseURL'].'css/global_js.php"></script>
</HEAD>  
<BODY text="#cccccc">


<TABLE cellspacing="0" cellpadding="0" align="center" class="TableHlavni" border="0">
  <TR>
    <TD id="BlankSpace">&nbsp;</td>
    <TD rowspan="2" id="TdSloupec" valign="top">
      <div class="Nadpis">Heroes of Fantasy</div>
      <div class="DivText">');

  ShowOnlinePlayerCount();
 

echo('</div>');

echo(GenerateMenu());

echo('<A HREF="http://www.toplist.cz/" target="_blank"><IMG alt="pocitadlo"
SRC="http://toplist.cz/count.asp?logo=mc&amp;ID=324802"
border="0" width="0" height="0"></A>

    </td>
  </tr>
  <tr><td id="LeftCell"><div class="pHlavni">');   
}

function ShowFooter()
{
  global $Config;
  echo('</div>
    </td>
  </tr>
  <tr>
    <td colspan="2">
      <DIV class="DivPaticka">
   <A href="'.$Config['Web']['BaseURL'].'administrace/" class="Paticka">#</A> 
      | Správce serveru: '.$Config['Web']['Admin'].' | Email: '.$Config['Web']['AdminEmail'].' | Počet přístupů: <A HREF="http://counter.cnw.cz/" TARGET=_parent>
      <IMG SRC="http://counter.cnw.cz/monika.cgi?wowzdechov&amp;7&amp;000000&amp;FFFFFF&amp;on" BORDER=0 ALT="CNW:Counter"></A>
      <SCRIPT type="text/javascript">
      <!--
      document.write("<A href=\"http://counter.cnw.cz\" target=\"_parent\"><IMG src=\"http://counter.cnw.cz/trackit.cgi?wowzdechov&t5&" + escape(top.document.referrer) + "\" alt=\"CNW:Tracker\" border=\"0\" width=\"1\" height=\"1\"></A>");
      // -->
      </SCRIPT>
      | Provozováno na <a href="http://game.zdechov.net/">game.zdechov.net</a> |');
// Použitá paměť:  '.HumanSize(memory_get_peak_usage(FALSE)).' |
echo('     </DIV>
    </td>
  </tr>
  </TABLE>
  </BODY>
</HTML>
');
}

// Zobrazení číselný seznamu stránek
function PagesList($URL, $Page, $TotalCount, $CountPerPage, $Around = 10)
{
  $Count = ceil($TotalCount / $CountPerPage);
  $Result = '';
  if($Count > 1)
  {
    if($Page > 0) 
    {
      $Result .= '<a href="'.$URL.'0">&lt;&lt;</a> ';
      $Result .= '<a href="'.$URL.($Page-1).'">&lt;</a> ';
    }
    $PagesMax = $Count - 1;
    $PagesMin = 0;
    if($PagesMax > ($Page + $Around)) $PagesMax = $Page + $Around;
    if($PagesMin < ($Page - $Around))
    {
      $Result.= ' .. ';
      $PagesMin = $Page - $Around;
    }
    for($i = $PagesMin; $i <= $PagesMax; $i++)
    {
      if($i == $Page) $Result .= '<strong>';
      $Result .= '<a href="'.$URL.$i.'">'.($i + 1).'</a> ';
      if($i == $Page) $Result .= '</strong>';
    }
    if($PagesMax < ($Count - 1)) $Result .= ' .. ';
    if($Page < ($Count - 1)) 
    {
      $Result .= '<a href="'.$URL.($Page + 1).'">&gt;</a> ';
      $Result .= '<a href="'.$URL.($Count - 1).'">&gt;&gt;</a>';
    }
  }
  return($Result);
}

?>
