<?php

include('includes/global.php');

ShowPage();

$TranslationItemPerPage = 200;
$GroupId = LoadGroupIdParameter();
if(array_key_exists('connexion_id', $_GET)) { 
  $_SESSION['connexion_id'] = $_GET['connexion_id'];
}
$Table = $TranslationTree[$GroupId]['TablePrefix'];
if(array_key_exists('action', $_GET)) $Action = $_GET['action']; else $Action = '';

$ID = mysql_fetch_row($Database->SQLCommand('SELECT max(VersionEnd) FROM '.$TranslationTree[$GroupId]['TablePrefix']));
$BuildNumber_max = $ID[0];

if(array_key_exists('order', $_GET)) 
{
  $order = $_GET['order'];
  $desc = $_GET['desc'];
  $_SESSION['order'] = $_GET['order'];
  $_SESSION['desc'] = $_GET['desc'];
} else 
{
  if (isset($_SESSION['order'])) 
  {
    $order = $_SESSION['order'];
    $desc = $_SESSION['desc'];
  } else 
  {
    $order = '';
    $desc = 'desc';
  }
}

if(array_key_exists('limitx', $_GET)) 
{
  $_SESSION['limitx'] = $_GET['limitx']; 
  $_SESSION['limity'] = $_GET['limity'];
} else 
{
  if(isset($_SESSION['limitx']) == false) 
  {
    $_SESSION['limitx'] = '0'; 
    $_SESSION['limity'] = $TranslationItemPerPage;
  }
}

if(($Action != 'userall') and ($Action != 'grouplist'))
  echo('Skupina: <strong>'.$TranslationTree[$GroupId]['Name'].'</strong><br />');

function WritePages($Address, $Where)
{
  global $Database, $TranslationItemPerPage, $Table;
    
  $Line = mysql_fetch_row($Database->SQLCommand('SELECT count(*) FROM '.$Table.' '.$Where));        
  $CountLists = $Line[0] / $TranslationItemPerPage;
        
  echo('Počet položek: <strong>'.$Line[0].'</strong><br />
    Zobrazit stránku: ');

  $limitx = 0;
  for($i = 0; $i < $CountLists; ++$i) 
  {
    $limity = $TranslationItemPerPage;
    $limitx = $i * $limity;
    $Page = $i + 1;
    if($_SESSION['limitx'] == $limitx) echo('<strong>'.$Page.'</strong> ');
      else echo('<a href="'.$Address.'&amp;limitx='.$limitx.'&amp;limity='.$limity.'">'.$Page.'</a> ');
  }
        
  if(!array_key_exists('limitx', $_SESSION)) $_SESSION['limitx'] = 0;
  if($_SESSION['limitx'] > $limitx) $_SESSION['limitx'] = 0;  
}

function WriteQuests($sql, $limit, $address)
{
  global $Database, $order, $desc, $TranslationTree, $GroupId, $Table;
 
  // Check if order column exists
  $Items = $TranslationTree[$GroupId]['Items'];
  $I = 0;
  while(($I < count($Items)) and ($Items[$I]['MangosColumn'] != $order)) $I++;
  if($I >= count($Items)) $order = 'ID';       

  if($limit <> '') $limit = 'LIMIT '.$limit;

  if($address <> 'selection') 
  {
    if($order <> '') $order = 'ORDER BY '.$order;
    if($desc <> 'desc') $desc = 'desc'; else $desc = '';
  } else 
  {
    $order = '';
    $desc = '';
  }
  
  $TableColumns = array(
    array('Name' => 'ID', 'Title' => 'Pořadové číslo'), 
    array('Name' => 'entry', 'Title' => 'Identifikační číslo'), 
    array('Name' => $TranslationTree[$GroupId]['Items'][0]['Column'], 'Title' => 'Název'), 
    array('Name' => 'VersionStart', 'Title' => 'Verze'), 
  );
  if($address == 'selection') $TableColumns[] = array('Name' => 'CountQuests', 'Title' => 'Výskyt');
  else if($address == 'connexion') $TableColumns[] = array('Name' => '', 'Title' => 'Již přeložil');
  else if($address <> 'notran') $TableColumns[] = array('Name' => 'User', 'Title' => 'Překladatel');
    
  $Order = GetOrderTableHeader($TableColumns, 'ID');
  echo('<table class="BaseTable">');
  echo($Order['Output']);
   
  //print_r($TranslationTree[$GroupId]['Items']);
  $ID = $Database->SQLCommand($sql.' '.$Order['SQL'].' '.$limit);
  while($Line = mysql_fetch_assoc($ID)) 
  {
    //print_r($Line);
  echo('<tr><td><a href="form.php?group='.$GroupId.'&amp;ID='.$Line['ID'].'">'.$Line['ID'].'</a></td>
      <td>'.$Line['entry'].'</td>
      <td>'.htmlspecialchars($Line[$TranslationTree[$GroupId]['Items'][0]['Column']]).'</td>
    <td>'.GetVersionWOW($Line['VersionStart']).'-'.GetVersionWOW($Line['VersionEnd']).'</td>');
    if($address == 'selection') echo('<td>'.$Line['CountQuest'].'</td>'); 
  else if($address <> 'notran') echo('<td>'.$Line['User'].'</td>');
    echo('</tr>');
  }
  echo('</table>');     
}

if($Action == 'notran') 
{ 
  echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
        <a title="Zde můžete začít překládat" href="?group='.$GroupId.'&amp;action=selection">Nepřeložené texty</a> - > 
        <strong>Vypsání nepřeložených textů s limitem na stránku</strong><br /><br />');

  WritePages('?group='.$GroupId.'&amp;action=notran', 'AS items WHERE items.Language = 0 AND
    NOT EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE sub.Language <> 0 AND sub.entry = items.entry AND VersionEnd = "'.$BuildNumber_max.'"  AND VersionEnd = "'.$BuildNumber_max.'")');

  WriteQuests('SELECT * FROM '.$Table.' AS items WHERE (items.Language = 0) AND
    NOT EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE (sub.Language <> 0) AND (sub.entry = items.entry)  AND VersionEnd = "'.$BuildNumber_max.'" AND VersionEnd = "'.$BuildNumber_max.'")', $_SESSION['limitx'].','.$_SESSION['limity'], 'notran');
} else
if($Action == 'connexion') 
{ //SELECT * FROM spell WHERE entry IN(SELECT entry FROM connexion_item WHERE connexion = 1)
  $Line = mysql_fetch_assoc($Database->SQLCommand('SELECT Name FROM connexion WHERE `Id` = '.$_SESSION['connexion_id']));
    echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
        <a title="Zde je seznam souvislostí" href="?group='.$GroupId.'&amp;action=connexion">Souvislosti</a> - > 
        <strong>Vypsání souvislostí ze skupiny '.$Line['Name'].'</strong><br /><br />');

    WritePages('?group='.$GroupId.'&amp;action=connexion', ' WHERE Language = 0 AND entry IN(SELECT entry FROM connexion_item WHERE connexion = '.$_SESSION['connexion_id'].') AND VersionEnd = "'.$BuildNumber_max.'" AND VersionEnd = "'.$BuildNumber_max.'"'); 
     WriteQuests('SELECT *, (SELECT sub.User FROM '.$Table.' as sub WHERE sub.entry  = '.$Table.'.entry AND Language <> 0 LIMIT 1) as UserID, (SELECT user.user FROM user WHERE user.id = UserID) as User FROM '.$Table.' WHERE Language = 0 AND entry IN(SELECT entry FROM connexion_item WHERE connexion = '.$_SESSION['connexion_id'].') AND VersionEnd = "'.$BuildNumber_max.'" AND VersionEnd = "'.$BuildNumber_max.'"', $_SESSION['limitx'].','.$_SESSION['limity'], 'connexion');

} else
if($Action == 'connexion_list') 
{ //SELECT * FROM spell WHERE entry IN(SELECT entry FROM connexion_item WHERE connexion = 1)
    echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
        <a title="Zde je seznam souvislostí" href="?group='.$GroupId.'&amp;action=connexion">Souvislosti</a> - > 
        <strong>Vypsání souvislostí</strong><br /><br />');
    echo('<table class="BaseTable"><tr><th>Pořadové číslo</th><th>Název</th>');
    echo('</tr>');
    $ID = $Database->SQLCommand('SELECT * FROM connexion WHERE  `Group` = '.$GroupId);        
    while($Line = mysql_fetch_assoc($ID)) 
    {
      echo('<tr><td><a href="?group='.$GroupId.'&amp;action=connexion&amp;connexion_id='.$Line['Id'].'">'.$Line['Id'].'</a></td>
      <td>'.$Line['Name'].'</td>');
    }
  echo ('</table>');
} else
if($Action == 'nocomplete') 
{
  echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
        <a title="Zde můžete začít překládat" href="?group='.$GroupId.'&amp;action=selection">nedokončené texty</a> - > 
        <strong>Vypsání nedokončených textů s limitem na stránku</strong><br /><br />');

  WritePages('?group='.$GroupId.'&amp;action=notran', 'AS items WHERE items.Language = 0 AND
    NOT EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE (sub.Language <> 0) AND (sub.entry = items.entry)  AND (sub.Complete = 1) AND VersionEnd = "'.$BuildNumber_max.'") AND
    EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE sub.Language <> 0 AND sub.entry = items.entry  AND (sub.Complete = 0) AND VersionEnd = "'.$BuildNumber_max.'") AND VersionEnd = "'.$BuildNumber_max.'"');

  WriteQuests('SELECT * FROM '.$Table.' AS items WHERE (items.Language = 0) AND
    NOT EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE (sub.Language <> 0) AND (sub.entry = items.entry)  AND (sub.Complete = 1) AND VersionEnd = "'.$BuildNumber_max.'") AND
   EXISTS(SELECT 1 FROM '.$Table.' AS sub WHERE (sub.Language <> 0) AND (sub.entry = items.entry)  AND (sub.Complete = 0) AND VersionEnd = "'.$BuildNumber_max.'") AND VersionEnd = "'.$BuildNumber_max.'"', $_SESSION['limitx'].','.$_SESSION['limity'], 'nocomplete');
} else
if($Action == 'Translate') 
{
  echo('<a title="Zobrazit překlady podle vlasního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr překladů</a> ->
     <a title="Přeložené texty, můžete zde hlasovat, nebo opravovat texty" href="?group='.$GroupId.'&amp;action=Translate">Přeložené texty</a><br /><br />');
      
  WritePages('?group='.$GroupId.'&amp;action=Translate', 'WHERE '.$Table.'.Language <> 0 AND '.$Table.'.Complete = 1');
        
  WriteQuests('SELECT *, (SELECT user.user FROM user WHERE user.id = '.$Table.'.user) as User FROM
    '.$Table.' WHERE '.$Table.'.Language <> 0 AND '.$Table.'.Complete = 1', $_SESSION['limitx'].','.$_SESSION['limity'], 'Translate');
} else      
if(($Action == 'my') and Licence(LICENCE_USER)) 
{
  echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
        <a title="Přeložené questy přilášeného uživatele" href="?group='.$GroupId.'&amp;action=my">Moje překlady</a><br /><br />');
  WriteQuests('SELECT *, (SELECT `user`.`user` FROM `user` WHERE `user`.`id` = '.$Table.'.`user`) AS `User` FROM `'.$Table.'` Where `user` = '.$_SESSION['UserID'], '', 'my');
} else
if(($Action == 'mydevelop') and Licence(LICENCE_USER)) 
{
  echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
    <a title="Nedokončené texty" href="?group='.$GroupId.'&amp;action=mydevelop">Rozepsané překlady</a><br /><br />');
  WriteQuests('SELECT *, (SELECT `user`.`user` FROM `user` WHERE `user`.`id` = `'.$Table.'`.`user`) AS `User` FROM `'.$Table.'` Where `user` = '.$_SESSION['UserID'].' AND `Complete` = 0', '', 'mydevelop');
} else      
if($Action == 'users') 
{
  echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
        <strong>Vypsání textů od určitých uživatelů</strong><br /><br />');
  if(array_key_exists('users', $_POST)) $users = $_POST['users'];
    else $users = array();
  
  $WhereUsers = '';    
  foreach($users as $Index => $User)
  {
    if($WhereUsers <> '') $WhereUsers .= ' OR `User` = '.$User;
      else $WhereUsers .= ' `User` = '.$User;
  }
  if($WhereUsers == '') $WhereUsers = '0';  
  
  WriteQuests('SELECT *, (SELECT `user`.`user` FROM `user` WHERE `user`.`id` = `'.$Table.'`.`user`) AS `User` FROM `'.$Table.'` WHERE '.$WhereUsers, '', 'users');
} else     
if($Action == 'userall') 
{
  $ID = $Database->SQLCommand('SELECT `user` FROM `user` WHERE `id` = '.$_GET['user']);
  $Line = mysql_fetch_row($ID);
  echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a>'.
  ' -> <strong>Počty překladů uživatele '.$Line[0].': </strong><br /><br />');
  
  echo('<table class="BaseTable"><tr><th>Skupina</th><th>Překladů</th></tr>');
  $Total = 0;
  foreach($TranslationTree as $Group)
    if($Group['TablePrefix'] != '')
  {
    if(array_key_exists('not', $_GET)) {
       $sql = 'SELECT COUNT(*) FROM `'.$Group['TablePrefix'].'` WHERE `Complete` = 0 AND `user`='.$_GET['user'];
         $ID = $Database->SQLCommand($sql);
         $Line = mysql_fetch_row($ID);
       $GroupId = $Group['Id'];
       echo('<tr><td><a href="?group='.$GroupId.'&amp;action=userid&amp;not&amp;user='.$_GET['user'].'">'.$Group['Name'].'</a></td><td>'.$Line[0].'</td></tr>');
       $Total += $Line[0];
    } else {
         $sql = 'SELECT COUNT(*) FROM `'.$Group['TablePrefix'].'` WHERE `user`='.$_GET['user'];
         $ID = $Database->SQLCommand($sql);
         $Line = mysql_fetch_row($ID);
       $GroupId = $Group['Id'];
       echo('<tr><td><a href="?group='.$GroupId.'&amp;action=userid&amp;user='.$_GET['user'].'">'.$Group['Name'].'</a></td><td>'.$Line[0].'</td></tr>');
       $Total += $Line[0];
    }
  }
  echo('<tr><td><strong>Celkem</strong></td><td><strong>'.$Total.'</strong></td></tr>');
  echo('</table>');
} else
if($Action == 'grouplist') 
{
  echo('<h3>Seznam překladových skupin</h3>');
  echo('<table class="BaseTable"><tr><th>Jméno</th><th>Zdroj pro import</th><th>Formáty exportu</th><th>Datum posledního importu</th><th>Verze posledního importu</th></tr>');
  $Total = 0;
  foreach($TranslationTree as $Group)
  if($Group['TablePrefix'] != '')
  {
    $Export = 'XML';
    $Import = '';
    if($Group['MangosTable'] != '')
    {
      $Export .= ', SQL';
      $Import = 'SQL '.$Group['MangosDatabase'].'.'.$Group['MangosTable'];
    }
    if($Group['DBCFileName'] != '')
    {
      $Export .= ', DBC';
      $Import = $Group['DBCFileName'].'.dbc';
    }
    if($Group['LuaFileName'] != '')
    {
      $Export .= ', Lua';
      $Import = $Group['LuaMPQFolder'].'/'.$Group['LuaFileName'].'.lua';
    }
    foreach($Group['Items'] as $Item)
      if(($Item['AddonFileName'] != '') and (substr($Export, -5) != 'Addon'))
      {
        $Export .= ', Addon';
      }
    echo('<tr><td><a href="?group='.$Group['Id'].'&amp;action=filter">'.$Group['Name'].'</a></td><td>'.$Import.'</td><td>'.$Export.'</td><td><a title="Změny po posledním importu u vybrané překladové skupiny" href="log.php?group='.$Group['Id'].'&amp;type=11">'.HumanDate($Group['LastImport']).'</a></td><td>'.GetVersionWOW($Group['LastVersion']).'</td></tr>');
  }
  echo('</table>');
  echo('<br /><a title="Záznam změn po importu" href="log.php?type=11">Záznam změn v textech při importu</a>');
} else
if($Action == 'userid') 
{
  if(array_key_exists('user', $_GET))
  {
    $ID = $Database->SQLCommand('SELECT `user` FROM `user` WHERE `id` = '.($_GET['user'] * 1));
    if(mysql_num_rows($ID) > 0)
    {
      $Line = mysql_fetch_row($ID);
      echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> -> '.
        '<strong>Vypis překladů uživatele '.$Line[0].': </strong><br /><br />');
      if(array_key_exists('not', $_GET)) 
        WriteQuests('SELECT *, (SELECT `user`.`user` FROM `user` WHERE `user`.`id` = `'.$Table.'`.`user`) AS `User` FROM `'.$Table.'` Where `Complete` = 0 AND `user` = '.$_GET['user'], '', 'userid');
      else WriteQuests('SELECT *, (SELECT `user`.`user` FROM `user` WHERE `user`.`id` = `'.$Table.'`.`user`) AS `User` FROM `'.$Table.'` Where `user` = '.$_GET['user'], '', 'userid');
    } else echo('Nebyl nalezen uživatel se zadaným id');
  } else echo('Je nutno zadat id uživatele.');
} else
if($Action == 'search') 
{
  if(array_key_exists('search', $_GET)) $Search = $_GET['search'];
  else $Search = $_POST['search'];
  
  $sql = 'SELECT *, (SELECT `user`.`user` FROM `user` WHERE `user`.`id` = `'.$Table.'`.`user`) AS `User` FROM `'.$Table.'` WHERE `ID` LIKE "%'.$Search.'%"
    OR `entry` LIKE "%'.$Search.'%"
    OR `Language` LIKE "%'.$Search.'%"
    OR `User` LIKE "%'.$Search.'%"
    OR `Complete` LIKE "%'.$Search.'%"';
  foreach($TranslationTree[$GroupId]['Items'] as $Item)
  {
  if($Item['Column'] != '') $sql .= ' OR `'.$Item['Column'].'` LIKE "%'.$Search.'%"';
  }
    
  WriteQuests($sql, '', 'search='.$Search);
} else     
if($Action == 'searchentry') 
{
  if(array_key_exists('ID', $_GET)) $Search = $_GET['ID'];
  else if(array_key_exists('ID', $_POST)) $Search = $_POST['ID'];
  else $Search = '';
 
  $sql = 'SELECT *, (SELECT `user`.`user` FROM `user` WHERE `user`.`id` = `'.$Table.'`.`user`) AS `User` FROM `'.$Table.'` WHERE `entry` LIKE "'.$Search.'"';
    
  WriteQuests($sql, '', 'searchentry='.$Search);
} else      
if($Action == 'all') 
{
 echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a> ->
        <a title="Zde můžete začít překládat" href="?group='.$GroupId.'&amp;action=selection">Nepřeložené texty</a> - > 
        <strong>Výpis všech textů s limitem na stránku</strong><br /><br />');

  WritePages('?group='.$GroupId.'&amp;action=all', ' AS `items` WHERE (`items`.`Language` = 0)');

  WriteQuests('SELECT * FROM `'.$Table.'` AS `items` WHERE (`items`.`Language` = 0)', $_SESSION['limitx'].','.$_SESSION['limity'], 'all');
} else      
if($Action == 'filter') 
{
  echo('<a title="Zobrazit texty podle vlastního filtru" href="?group='.$GroupId.'&amp;action=filter">Filtr textů</a><br /><br /><br />'.
    '<table class="BaseTable"><tr><th>Odkaz</th><th>Popis</th></tr>'.
    '<tr><td><a title="Všechny dostupné texty ve skupině" href="?group='.$GroupId.'&amp;action=all">Všechny texty</a></td>'.
    '<td>Zobrazit všechny dostupné texty ve skupině.</td></tr>'.
    '<tr><td><a title="Přeložené texty, můžete zde hlasovat, nebo text opravovat" href="?group='.$GroupId.'&amp;action=Translate">Přeložené texty</a></td>'.
    '<td>Zobrazit pouze již přeložené texty.</td></tr>'.
    '<tr><td><a title="Nepřeložené texty" href="?group='.$GroupId.'&amp;action=notran">Nepřeložené texty</a></td>'.
    '<td>Dosud nepřeložené texty, které je potřeba přeložit.</td></tr>'.
    '<tr><td><a title="Nedokončené texty" href="?group='.$GroupId.'&amp;action=nocomplete">Nedokončené texty</a></td>'.
    '<td>Texty označené jako rozpracované.</td></tr>');

  if(Licence(LICENCE_USER)) 
  {
    echo('<tr><td><a title="Nedokončené texty" href="?group='.$GroupId.'&amp;action=mydevelop">Rozepsané texty</a></td>
          <td>Nedokončené texty přihlášeného uživatele</td></tr>
          <tr><td><a title="Přeložené texty přihlášeného uživatele" href="?group='.$GroupId.'&amp;action=my">Moje překlady</a></td>
          <td>Přeložené texty přihlášeného uživatele</td></tr>');
  }
        
  echo('<tr><td><form action="?group='.$GroupId.'&amp;action=users" method="post"><div>'.
    '<select name="users[]" size="10" multiple="multiple" class="UserList">');
        
  $ID = $Database->SQLCommand('SELECT `user`, `ID` FROM `user` WHERE
    EXISTS(SELECT 1 FROM `'.$Table.'` WHERE `user` = `user`.`ID`) ORDER BY `user`');
  if($ID)
  while($Line = mysql_fetch_assoc($ID))
    echo('<option value="'.$Line['ID'].'">'.$Line['user'].'</option>');
  
  echo('</select><br />
    <input type="submit" value="Vypsat" /></div></form></td>
    <td>Vypsat pouze od těchto uživatalů<br />
    Vybrat více uživatelů můžete pomocí CTRL+click</td></tr>');

  echo('<tr><td><form action="?group='.$GroupId.'&amp;action=search" method="post"><div>'.
    '<input type="text" name="search" size="8" />'.
    '<input type="submit" value="Hledat" />'.
    '</div></form>'.
    '</td><td>Vyhledat pomocí textu</td></tr>');
          
  echo('<tr><td><form action="?group='.$GroupId.'&amp;action=searchentry" method="post"><div>'.
    '<input type="text" name="ID" size="8" />'.
    '<input type="submit" value="Hledat" />'.
    '</div></form>'.
    '</td><td>Zobrazit podle ID textu v databázi MaNGOSu</td></tr>');
                                                
  echo('</table>');
  //  WriteQuests("SELECT * FROM quests Where user = ".$_SESSION['UserID']." AND Complete = '0'", '', 'mydevelop');
}
      
  ShowFooter();
?>
  
