<?php

include('includes/global.php');

function WriteTranslatNames($Text,$mode) 
{
  
  if ($mode == 0) echo ('..Nalezené názvy jmen věcí, míst, postav');
  if ($mode == 1) echo ('..Všechny přeložené');
  if ($mode == 2) echo ('..Nepřeložené');
  echo('<table width="98%" class="BaseTable">');
  echo('<tr><th>Originál</th>'.'<th>Překlad</th></tr>');


  $TablesColumn = array
  (
    'TextGameObject' => 'Name',
    'TextCreature' => 'name',
    'TextItem' => 'Name',
    'TextTransport' => 'Name',
    'TextAreaTriggerTeleport' => 'Name',
    'TextAreaTriggerTavern' => 'Name',
    'Dictionary' => 'Text',
  );

  $buff = GetTranslatNames($Text,$mode,$TablesColumn);
  
   // $buff[] = array($Line['ID'],GetIDbyName($Table),$Line[$Column],$Line['Tran']);
  foreach($buff as $Line) {
      if ($mode == 0) 
      {
        if (strpos(strtolower($Text), strtolower($Line[2])) > 0) 
        {
          echo('<tr><td>'.$Line[2].'</td>');
          if ($Line[3] <> '') echo('<td><a target="_NEW2" href="form.php?group='.$Line[1].'&amp;ID='.$Line[0].'">'.$Line[3].'</a></td></tr>');
          else echo('<td><a target="_NEW2" href="form.php?group='.$Line[1].'&amp;ID='.$Line[0].'">Překládat</a></td></tr>');
        }
      } else 
      {
        echo('<tr><td>'.$Line[2].'</td>');
          if ($Line[3] <> '') echo('<td><a target="_NEW2" href="form.php?group='.$Line[1].'&amp;ID='.$Line[0].'">'.$Line[3].'</a></td></tr>');
          else echo('<td><a target="_NEW2" href="form.php?group='.$Line[1].'&amp;ID='.$Line[0].'">Překládat</a></td></tr>');
      }
  }

  echo('</table>');
}

ShowPage();

if(!isset($_SESSION['language'])) 
{
  if($User->Licence(LICENCE_USER)) 
  {
    $_SESSION['language'] = $User->Language;
  } else $_SESSION['language'] = 1;
}
if(array_key_exists('language', $_GET)) $_SESSION['language'] = LoadLanguageIdParameter();

echo('<h3>Slovníček</h3>');

if(array_key_exists('group', $_GET)) 
{   
  $GroupId = LoadGroupIdParameter();
  if(array_key_exists('mode', $_GET)) $mode = $_GET['mode']; else $mode = 0; //0 = přesné názvy, 1=všechny názvy, 2=nepřeložené
  $Table = $TranslationTree[$GroupId]['TablePrefix'];

  if(array_key_exists('ID', $_GET)) 
  {
    $TextID = $_GET['ID'];  
    echo ('Přeložené názvy vztahující se k překladu: <a target="_NEW" href="form.php?group='.$GroupId.'&amp;ID='.$TextID.'">'.$TextID.'</a><br />'. 
  '<a href="?mode=1&amp;group='.$GroupId.'&amp;ID='.$TextID.'" title="Zobrazit všechny podobné výsledky">Všechny</a> '.
  '<a href="?mode=0&amp;group='.$GroupId.'&amp;ID='.$TextID.'" title="Zobrazit pouze přesné výsledky">Přesné</a> '.
  '<a href="?mode=2&amp;group='.$GroupId.'&amp;ID='.$TextID.'" title="Zobrazit všechny nepřeložené">Nepřeložené</a> ');
    $DbResult = $System->Database->query('SELECT * FROM '.$Table.' Where ID = '.$TextID);
    $Line = $DbResult->fetch_assoc();
    if(!$Line) die('Překlad nenalezen.');
    
    $Text = '';
    foreach($TranslationTree[$GroupId]['Items'] as $Index => $TextItem)
      $Text .= ' '.$Line[$TextItem['Column']];
        WriteTranslatNames($Text,$mode);
  }
} else 
{  
  if(array_key_exists('action', $_GET)) 
  {
    if(($_GET['action'] == 'insert')  and $User->Licence(LICENCE_USER))
    {
      echo('<form action="dictionary.php?action=save" method="post">'.
      '<fieldset><legend>Vložení nového slova</legend>'.
      '<table><tr><td>'.
      'Původní anglické slovo:</td><td><input type="text" name="Original" /></td></tr>'.
      '<tr><td>Přeložené:</td><td><input type="text" name="Translated" /></td></tr>'.
      '<tr><td>Popis:</td><td><input type="text" name="Description" /></td></tr>'.
      '<tr><td colspan="2"><input type="submit" value="Uložit" /></td></tr>'.
      '</td></tr></table>'.
      '</fieldset>'.
      '</form>');    
    } else
    if(($_GET['action'] == 'save') and $User->Licence(LICENCE_USER))
    {
      if(array_key_exists('Original', $_POST) and array_key_exists('Translated', $_POST) and array_key_exists('Description', $_POST))
      {       
        $DbResult = $System->Database->query('SELECT * FROM `Dictionary` WHERE `Text` = "'.$_POST['Original'].'" AND `Language`=0');
        if($DbResult->num_rows > 0)
        {
          $DbRow = $DbResult->fetch_assoc();
          $Entry = $DbRow['Entry'];
        } else 
        {
          $DbResult = $System->Database->query('SELECT MAX(`Entry`) FROM `Dictionary`');
          $DbRow = $DbResult->fetch_row();
          $Entry = $DbRow[0] + 1;
          $System->Database->query('INSERT INTO `Dictionary` ( `Text` , `Entry` , `Description` , `User`, `Language` ) VALUES ("'.$_POST['Original'].'", "'.$Entry.'", "", 0, 0);');
        }
      
        $DbResult = $System->Database->query('SELECT `Id` FROM `Dictionary` WHERE `Entry` = '.$Entry.' AND `Language`='.$_SESSION['language'].' AND `User`='.$User->Id);
        if($DbResult->num_rows > 0)
        {
          $DbRow = $DbResult->fetch_assoc();
          $System->Database->query('UPDATE `Dictionary` SET `Text`="'.$_POST['Translated'].'", `Description` = "'.$_POST['Description'].'" WHERE Id='.$DbRow['Id']);
        } else      
          $System->Database->query('INSERT INTO `Dictionary` ( `Text` , `Entry` , `Description` , `User`, `Language` ) VALUES ("'.$_POST['Translated'].'", "'.$Entry.'", "'.$_POST['Description'].'", '.$User->Id.', '.$_SESSION['language'].')');
        echo('Záznam byl uložen!');
      } else echo('Nebyly zaslány všechny položky formuláře.');
    } else
    if(($_GET['action'] == 'remove') and $User->Licence(LICENCE_USER))
    {
      $System->Database->query('DELETE FROM `Dictionary` WHERE `User`='.$User->Id.' AND `Language`='.$_SESSION['language'].' AND `Entry`='.$_GET['entry']);
    } else
    if(($_GET['action'] == 'modify')  and $User->Licence(LICENCE_USER))
    {
      $DbResult = $System->Database->query('SELECT * FROM `Dictionary` WHERE `User`='.$User->Id.' AND `Entry`='.$_GET['entry'].' AND `Language`='.$_SESSION['language']);
      $DbRow = $DbResult->fetch_assoc();
      $DbResult = $System->Database->query('SELECT * FROM `Dictionary` WHERE `User`=0 AND `Entry`='.$_GET['entry'].' AND `Language`=0');
      $DbRow2 = $DbResult->fetch_assoc();
      echo('<form action="dictionary.php?action=save" method="post">'.
      '<fieldset><legend>Upravení slova</legend>'.
      '<table><tr><td>'.
      'Původní anglické slovo:</td><td><input type="text" name="Original" value="'.$DbRow2['Text'].'" /></td></tr>'.
      '<tr><td>Přeložené:</td><td><input type="text" name="Translated"  value="'.$DbRow['Text'].'" /></td></tr>'.
      '<tr><td>Popis:</td><td><input type="text" name="Description"  value="'.$DbRow['Description'].'" /></td></tr>'.
      '<tr><td colspan="2"><input type="submit" value="Uložit" /></td></tr>'.
      '</td></tr></table>'.
      '</fieldset>'.
      '</form>');    
    } 
  }

  echo('<form action="dictionary.php" method="get" style="margin: 0px; padding: 0px;">'.
  '<table style="width: 100%; height: 100%;">');

  if(array_key_exists('search', $_GET)) $Search = $_GET['search'];
    else $Search = '';
       
  echo('<tr><td>
    <input type="text" value="'.$Search.'" name="search" size="30" />
    <input type="submit" value="Vyhledat" />');
  if($User->Licence(LICENCE_USER)) echo(' <a href="dictionary.php?action=insert">Vložit slovo</a>');
           
  echo('</td></tr>'); 
  echo('<tr><td>Jazyk: ');
  foreach($LanguageList as $Language)
    if($Language['Enabled'] == 1)
    {
      if($Language['Id'] == $_SESSION['language']) echo('<strong>');
      echo(' <a href="?language='.$Language['Id'].'">'.$Language['Name'].'</a>');
      if($Language['Id'] == $_SESSION['language']) echo('</strong>');
    }
  echo('</td></tr>');
  echo('<tr><td>');
  //<div style="overflow: auto; width: 100%; height: 100%;">');

  if($Search <> '') 
  {
    $sql = 'SELECT `User`.`Name` AS `UserName`, `User`. `ID` AS `UserID`, `T3`.`Entry`, `T3`.`Original`, `T3`.`Translated`, `T3`.`Description` FROM (SELECT `T2`.`User`, `T1`.`Language`, `T1`.`Text` AS `Original`, `T2`.`Text` AS `Translated`, `T2`.`Description`, `T1`.`Entry` AS `Entry` FROM `Dictionary` AS `T1` JOIN `Dictionary` AS `T2` ON `T2`.`Entry` = `T1`.`Entry` AND `T2`.`Language` = '.$_SESSION['language'].' WHERE LOWER(`T1`.`Text`) LIKE LOWER("%'.$Search.'%") OR LOWER(`T1`.`Description`) LIKE LOWER("%'.$Search.'%") ) AS `T3` JOIN `User` ON `User`.`ID` = `T3`.`User` WHERE `T3`.`Language` = 0';
  } else $sql = 'SELECT `User`.`Name` AS `UserName`, `ID` AS `UserID`, `T3`.`Entry`, `T3`.`Original`, `T3`.`Translated`, `T3`.`Description` FROM (SELECT `T2`.`User`, `T1`.Language, `T1`.`Text` AS `Original`, `T2`.`Text` AS `Translated`, `T2`.`Description`, `T1`.`Entry` AS `Entry` FROM `Dictionary` AS `T1` JOIN `Dictionary` AS `T2` ON `T2`.`Entry` = `T1`.`Entry` AND `T2`.`Language` = '.$_SESSION['language'].') AS `T3` JOIN `User` ON `User`.`ID` = `T3`.`User` WHERE `T3`.`Language` = 0';

  $DbResult = $System->Database->query('SELECT COUNT(*) FROM ('.$sql.') AS `T1`');
  $DbRow = $DbResult->fetch_row();
  $PageList = GetPageList($DbRow[0]);  

  echo($PageList['Output']);
  
  $TableColumns = array(
    array('Name' => 'Original', 'Title' => 'Angličtina'), 
    array('Name' => 'Translated', 'Title' => $LanguageList[$_SESSION['language']]['Name']), 
    array('Name' => 'Description', 'Title' => 'Popis'), 
    array('Name' => 'UserName', 'Title' => 'Překladatel'), 
  );
  if($User->Licence(LICENCE_USER)) $TableColumns[] = array('Name' => '', 'Title' => 'Akce');
  $Order = GetOrderTableHeader($TableColumns, 'Original');
  echo('<table width="98%" class="BaseTable">');
  echo($Order['Output']);

  $sql_page = $sql.$Order['SQL'].$PageList['SQLLimit'];
  $DbResult = $System->Database->query($sql_page);
  while($Line = $DbResult->fetch_assoc()) 
  {
    echo('<tr>
    <td>'.$Line['Original'].'</td>
    <td><strong>'.$Line['Translated'].'</strong></td>
    <td>'.$Line['Description'].'</td>
    <td>'.$Line['UserName'].'</td>');
    if($User->Licence(LICENCE_USER))
    {
      if($Line['UserID'] == $User->Id) 
        echo('<td><a href="?action=remove&amp;entry='.$Line['Entry'].'">Smazat</a> <a href="?action=modify&amp;entry='.$Line['Entry'].'">Upravit</a></td>');
        else echo('<td></td>');
    }
    echo('</tr>');
  }
  echo('</table>');  
  echo($PageList['Output']);
  echo('</td></tr>'); 
  echo('</table></form>');
}

ShowFooter();

?>
