<?php

function HumanDate($Time)
{
  return(date('j.n.Y', $Time));
}

function HumanDateTime($Time)
{
  return(date('j.n.Y H:i:s', $Time));
}

function Link2($URL)
{
  global $Config;

  return $Config['BaseURL'].$URL;
}

function GetQueryStringArray($QueryString)
{
  $Result = array();
  $Parts = explode('&', $QueryString);
  foreach($Parts as $Part)
  {
    if($Part != '')
    {
      if(!strpos($Part, '=')) $Part .= '=';
      $Item = explode('=', $Part);
      $Result[$Item[0]] = $Item[1];
    }
  }
  return($Result);
}

function SetQueryStringArray($QueryStringArray)
{
  $Parts = array();
  foreach($QueryStringArray as $Index => $Item)
  {
    if ($Index != 'lvm') $Parts[] = $Index.'='.$Item;
  }
  return(implode('&amp;', $Parts));
}

function GetPageList($TotalCount)
{
  global $Config;

  $QueryItems = GetQueryStringArray($_SERVER['QUERY_STRING']);

  $ItemPerPage = $Config['ItemsPerPage'];
  $Around = round($Config['VisiblePagingItems'] / 2);
  $Result = '';
  $PageCount = floor($TotalCount / $ItemPerPage) + 1;

  if(!array_key_exists('Page', $_SESSION)) $_SESSION['Page'] = 0;
  if(array_key_exists('page', $_GET)) $_SESSION['Page'] = $_GET['page'] * 1;
  if($_SESSION['Page'] < 0) $_SESSION['Page'] = 0;
  if($_SESSION['Page'] >= $PageCount) $_SESSION['Page'] = $PageCount - 1;
  $CurrentPage = $_SESSION['Page'];


  $Result .= 'Počet položek: <strong>'.$TotalCount.'</strong> &nbsp; Stránky: ';

  $Result = '';
  if($PageCount > 1)
  {
    if($CurrentPage > 0)
    {
      $QueryItems['page'] = 0;
      $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&lt;&lt;</a> ';
      $QueryItems['page'] = ($CurrentPage - 1);
      $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&lt;</a> ';
    }
    $PagesMax = $PageCount - 1;
    $PagesMin = 0;
    if($PagesMax > ($CurrentPage + $Around)) $PagesMax = $CurrentPage + $Around;
    if($PagesMin < ($CurrentPage - $Around))
    {
      $Result.= ' ... ';
      $PagesMin = $CurrentPage - $Around;
    }
    for($i = $PagesMin; $i <= $PagesMax; $i++)
    {
      if($i == $CurrentPage) $Result.= '<strong>'.($i + 1).'</strong> ';
      else {
       $QueryItems['page'] = $i;
       $Result .= '<a href="?'.SetQueryStringArray($QueryItems).'">'.($i + 1).'</a> ';
      }
    }
    if($PagesMax < ($PageCount - 1)) $Result .= ' ... ';
    if($CurrentPage < ($PageCount - 1))
    {
      $QueryItems['page'] = ($CurrentPage + 1);
      $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&gt;</a> ';
      $QueryItems['page'] = ($PageCount - 1);
      $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&gt;&gt;</a>';
    }
  }
  $Result = '<div style="text-align: center">'.$Result.'</div>';
  return(array('SQLLimit' => ' LIMIT '.$CurrentPage * $ItemPerPage.', '.$ItemPerPage,
    'Page' => $CurrentPage,
    'Output' => $Result,
  ));
}

$OrderDirSQL = array('ASC', 'DESC');
$OrderArrowImage = array('sort_asc.png', 'sort_desc.png');

function GetOrderTableHeader($Columns, $DefaultColumn, $DefaultOrder = 0)
{
  global $OrderDirSQL, $OrderArrowImage, $Config;

  if(array_key_exists('OrderCol', $_GET)) $_SESSION['OrderCol'] = $_GET['OrderCol'];
  if(array_key_exists('OrderDir', $_GET) and (array_key_exists($_GET['OrderDir'], $OrderArrowImage)))
    $_SESSION['OrderDir'] = $_GET['OrderDir'];
  if(!array_key_exists('OrderCol', $_SESSION)) $_SESSION['OrderCol'] = $DefaultColumn;
  if(!array_key_exists('OrderDir', $_SESSION)) $_SESSION['OrderDir'] = $DefaultOrder;

  // Check OrderCol
  $Found = false;
  foreach($Columns as $Column)
  {
    if($Column['Name'] == $_SESSION['OrderCol'])
    {
      $Found = true;
      break;
    }
  }
  if($Found == false)
  {
    $_SESSION['OrderCol'] = $DefaultColumn;
    $_SESSION['OrderDir'] = $DefaultOrder;
  }
  // Check OrderDir
  if(($_SESSION['OrderDir'] != 0) and ($_SESSION['OrderDir'] != 1)) $_SESSION['OrderDir'] = 0;

  $Result = '';
  $QueryItems = GetQueryStringArray($_SERVER['QUERY_STRING']);
  foreach($Columns as $Index => $Column)
  {
    $QueryItems['OrderCol'] = $Column['Name'];
    $QueryItems['OrderDir'] = 1 - $_SESSION['OrderDir'];
    if($Column['Name'] == $_SESSION['OrderCol']) $ArrowImage = '<img style="vertical-align: middle; border: 0px;" src="'.
      Link2('/images/'.$OrderArrowImage[$_SESSION['OrderDir']]).'" alt="order arrow"/>';
      else $ArrowImage = '';
    if($Column['Name'] == '') $Result .= '<th>'.$Column['Title'].'</th>';
      else $Result .= '<th><a href="?'.SetQueryStringArray($QueryItems).'">'.$Column['Title'].$ArrowImage.'</a></th>';
  }
  return(array(
    'SQL' => ' ORDER BY `'.$_SESSION['OrderCol'].'` '.$OrderDirSQL[$_SESSION['OrderDir']],
    'Output' => '<tr>'.$Result.'</tr>',
    'Column' => $_SESSION['OrderCol'],
    'Direction' => $_SESSION['OrderDir'],
  ));
}