<?php

# Conexión a la base de datos
include("db_connection.php");
include("dependencies.php");

$client_encoding = $_GET['client_encoding'];
if($client_encoding=='')
{
  $client_encoding = 'LATIN1';
}
$client_encoding_query = "set client_encoding to '$client_encoding'";
//echo $client_encoding_query;
pg_query($client_encoding_query) 
or die('Wrong query: ' . pg_last_error()); 

$action = $_GET['action'];
$format = $_GET['format'];
$trace =  $_GET['trace'];
$package = $_GET['package'];
$limit = $_GET['limit'];
$filter = $_GET['filter'];
$tol_version = $_GET['tol_version'];
$tol_package_version = $_GET['tol_package_version'];

# Impide el acceso a las variantes de los paquetes 
$tol_variant_restriction = " AND P.co_name NOT LIKE '%#%' ";

if($tol_package_version=='')
{
  $tol_package_version=0;
  $tol_version = $_GET['min_tol_version'];
}
else if($tol_package_version>3)
{
  $tol_variant_restriction = "";
}

if($format=='')
{
  $format='tol';
}

if($tol_version=='')
{
  $min_tol_version_condition = "";  
  $max_tol_version_condition = "";  
}
else
{
  $min_tol_version_condition = "AND  P.te_min_tol_version <= '$tol_version'";   
  $max_tol_version_condition = "AND (P.te_max_tol_version >= '$tol_version' OR P.te_max_tol_version is NULL)";   
}

if($package=='')
{
  $co_name_condition = "";
}  
else if(strstr($package,'.'))
{
  $co_name_condition = "AND P.co_name_version LIKE '$package%'";
}
else 
{
  $co_name_condition = "AND P.co_name = '$package'";
}

if($limit=='')
{
  $limit_condition = "";  
}
else
{
  $limit_condition = "limit $limit";   
}

$title = "TOL Package Repository";

if($format=='html')
{
  echo "<head>\n";
  echo "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>\n";
  echo "<title> $title </title>\n";
  echo "<link href='https://www.tol-prj.org/packages/OfficialTolArchiveNetwork/scripts/tablecloth/tablecloth.css' rel='stylesheet' type='text/css' media='screen' />\n";
  echo "<script type='text/javascript' src='https://www.tol-prj.org/packages/OfficialTolArchiveNetwork/scripts/tablecloth/tablecloth.js'></script>\n";
  echo "<link rel='stylesheet' type='text/css' href='https://www.tol-prj.org/chrome/site/trac.css' />\n";
  echo "<link rel='stylesheet' type='text/css' href='https://www.tol-prj.org/chrome/site/wiki.css' />\n";
  echo "</head>\n";
  echo "<body>\n";
//echo "<div id='$title' class='wiki'>\n";
//echo "<h1>$title</h1>\n";
//echo "</div>\n";
  
}

if($trace=='yes')
{
  echo "<pre><code>\n";
  echo "id_repository=$id_repository\n";
  echo "client_encoding=$client_encoding\n";
  echo "action=$action\n";
  echo "format=$format\n";
  echo "tol_version=$tol_version\n";
  echo "min_tol_version_condition=$min_tol_version_condition\n";
  echo "max_tol_version_condition=$max_tol_version_condition\n";
  echo "</code></pre>\n";
}  

if($action=='ping')
{
  $key = $_GET['key'];
  echo "Real $key";
}
else if($action=='general_information')
{
  include("general_information.php");
}
else if($action=='package_information')
{
  include("package_information.php");
}
else if($action=='version_information')
{
  include("version_information.php");
}
else if($action=='detail_information')
{
  include("detail_information.php");
}
else if($action=='packages')
{
  include("packages.php");
}
else if($action=='versions')
{
  include("versions.php");
}
else if($action=='download')
{  
  include("download.php");
}
else if($action=='download')
{  
  include("download.php");
}
else if($action=='checkTolDependencies') 
{
  if($package=='') { checkTolDependenciesAll($filter); }
  else             { checkTolDependencies($package,$filter); }
}
else
{
  die('Wrong value for parameter action=$action ');
}

if($format=='html')
{
  echo "</body>\n";
}

pg_close($conexion_bd);
?>
