<?php

class PageTranslationComparison extends Page
{
	function CompareString($String1, $String2)
	{
		$Result = '';
		//TODO: Implement colored comparison
		//strcasecmp($String1, $String2) == 0 je totožné
		//  echo $String1.'<br /><br />';
		$ArrStr1 = explode(' ', $String1);
		$ArrStr2 = explode(' ', $String2);
	
		for($i = 0; $i < count($ArrStr1); $i++)
		{
  		if(isset($ArrStr2[$i]))
	  	{
		    if($ArrStr1[$i] == $ArrStr2[$i])
		    {
		      $Result .= $ArrStr1[$i].' ';
		    } else
		    {
		      $find = false;
		      for($j = 0; $j < count($ArrStr2); $j++)
		      {
		        if(($ArrStr1[$i] == $ArrStr2[$j]) and ($find == false))
		        {
		          $Result .= $ArrStr1[$i].' ';
		          $find = true;
		        }
		      }
		      if($find == false)
			    $Result .= '<span class="edit">'.$ArrStr1[$i].' </span>';
		    }
		  } else $Result .= '<span class="edit">'.$ArrStr1[$i].' </span>';
	  }
	  return($Result);
	}
	
	function Show()
	{
		global $TranslationTree;
	
    $Output = 'Text je porovnáván vždy ku předešlému (vlevo). Změny jsou zvýrazněny <span class="edit">barvou.</span><br /><br />';
    
		$GroupId = LoadGroupIdParameter();
		$Table = $TranslationTree[$GroupId]['TablePrefix'];
	
		if(array_key_exists('entry', $_GET))
		{
			$Textentry = $_GET['entry'];
			if((array_key_exists('ID1', $_GET)) and ($_GET['ID1'] <> -1))  //porovnání pouze 2 textů
			{
				$TextID1 = $_GET['ID1'];   
				$TextID2 = $_GET['ID2'];
				$WhereID = ' AND ((`'.$Table.'`.`ID` = '.$TextID1.') OR (`'.$Table.'`.`ID` = '.$TextID2.'))';
			} else $WhereID = '';
	
			$DataID = $this->Database->query('SELECT `'.$Table.'`.*, `User`.`Name` AS `UserName`, '.
					'`Language`.`Name` AS `LanguageName` '.
					'FROM '.$Table.' LEFT JOIN `User` ON `User`.`Id` = `'.$Table.'`.`User` '.
					' LEFT JOIN `Language` ON `Language`.`Id` = `'.$Table.'`.`Language` '.
					'WHERE `Entry` = '.$Textentry.' '.$WhereID.' ORDER BY `Language`');
			while($Line[] = $DataID->fetch_assoc());
			array_pop($Line);
	
			$Output .= 'Počet porovnávaných textů: <strong>'.count($Line).'</strong><br /> ';
	
			$Output .= '<strong>Číslo textu: <a href="http://www.wowhead.com/?quest='.$Textentry.'">'.$Textentry.'</a></strong>'.
					'<table class="BaseTable">'.
					'<tr><th>Přeložil</th>';
			foreach($Line as $Index => $LineItem)
				$Output .= '<th>'.$LineItem['UserName'].'</th>';
			$Output .= '</tr>'.
					'<tr>'.
					'<th>ID textu</th>';
			foreach($Line as $Index => $LineItem)
				$Output .= '<td><a href="form.php?group='.$GroupId.'&amp;ID='.$LineItem['ID'].'">'.$LineItem['ID'].'</a></td>';
			$Output .= '</tr>'.
					'<tr><th>Převzato</th>';
			foreach($Line as $Index => $LineItem)
				$Output .= '<td><a href="form.php?group='.$GroupId.'&amp;ID='.$LineItem['Take'].'">'.$LineItem['Take'].'</a></td>';
			$Output .= '</tr>'.
					'<tr><th>Jazyk</th>';
			foreach($Line as $Index => $LineItem)
				$Output .= '<td>'.$LineItem['LanguageName'].'</td>';
			$Output .= '</tr>'.
					'<tr><th>Verze</th>';
			foreach($Line as $Index => $LineItem)
				$Output .= '<td>'.GetVersionWOW($LineItem['VersionStart']).' - '.GetVersionWOW($LineItem['VersionEnd']).'</td>';
			$Output .= '</tr>';
			foreach($TranslationTree[$GroupId]['Items'] as $Index => $TextItem)
			{
			  $writethis = false;
				for($i = 0; $i < count($Line); $i++)
				{
				  if($Line[$i][$TextItem['Column']] <> '') $writethis = true;
				}
				if($writethis)
				{
					$Output .= '<tr><th>'.$TextItem['Name'].'</th>';
					for($i = 0; $i < count($Line); $i++)
					{
						if($i > 0)
						{
						  $Output .= '<td>';
						  $Output .= str_replace("\n", '<br/>', $this->CompareString(htmlspecialchars($Line[$i][$TextItem['Column']]),htmlspecialchars($Line[$i - 1][$TextItem['Column']])));
						  $Output .= '</td>';
					  } else $Output .= '<td>'.htmlspecialchars($Line[$i][$TextItem['Column']]).'</td>';
				  }
				  $Output .= '</tr>';
		    }
		  }
		  $Output .= '</table>';
	  } else $Output .= ShowMessage('Nebylo zadáno ID.', MESSAGE_CRITICAL);	
		return($Output);
	}
}
