<?php

include('includes/global.php');

ShowPage();

$TranslationItemPerPage = 200;
if(array_key_exists('group', $_GET)) $GroupId = $_GET['group'] * 1; else $GroupId = 1;
$DbResult = $Database->SQLCommand('SELECT Id FROM `group` WHERE `Id`='.$GroupId);
if(mysql_num_rows($DbResult) == 0)
{
  echo('Neexistující id překladové skupiny.');
  ShowFooter();
  die();
}
$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 = '';
  }
  
  echo('<table class="BaseTable"><tr>
    <th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=ID&amp;desc='.$desc.'">Pořadové číslo</a></th>
    <th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=entry&amp;desc='.$desc.'">Identifikační číslo</a></th>
    <th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order='.$TranslationTree[$GroupId]['Items'][0]['Column'].'&amp;desc='.$desc.'">Název</a></th>
    <th>Verze</th>');
  if ($address == 'selection') echo('<th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=CountQuests&amp;desc='.$desc.'">Výskyt</a></th>'); 
  else if($address <> 'notran') echo('<th><a href="?group='.$GroupId.'&amp;action='.$address.'&amp;order=user&amp;desc='.$desc.'">Uživatel</a></th>');
  echo('</tr>');
   
  //print_r($TranslationTree[$GroupId]['Items']);
  $ID = $Database->SQLCommand($sql.' '.$order.' '.$desc.' '.$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 == '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 />');
  $users = @$_POST['users'];
  
  $WhereUsers = '';
    
  for($i = 0; $i < Count($users); $i++)
  {
    if($WhereUsers <> '') $WhereUsers .= ' OR User = '.$users[$i];
      else $WhereUsers .= ' User = '.$users[$i];
  }
  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></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></tr>');
	}
  echo('</table>');
} 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 $Search = $_POST['ID'];
 
  $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">');
        
  $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();
?>
  
