#!/usr/bin/perl -w

# Thorsten Trippel
# Bielefeld University
# Feb 2005
# For cataloguing the files in the Historic Portuguese corpus
#
# Atualizado por Pablo Faria, em 07/03/2008
use lib "/usr/lib/perl/5.14/" ;

use CGI qw(:standard);

# Testa se há parâmetros
if (param("version") eq "") {
	print header( -charset => 'utf-8');
	print "Não há dados a processar."; die;
}

# Parâmetros do formulário
my $corpora_id = param("id");
my $filename = param("filename");
my $version = param("version");

my $corpora = "";

if (-e "/dados/www/static/cedohs/corpora/$corpora_id/$filename") {
  $corpora = "corpora";
}
if (-e "/dados/www/static/cedohs/corpora_i/$corpora_id/$filename") {
  $corpora = "corpora_i";
}
if (-e "/dados/www/static/cedohs/corpora_o/$corpora_id/$filename") {
  $corpora = "corpora_o";
}
if (-e "/dados/www/static/cedohs/corpora_ot/$corpora_id/$filename") {
  $corpora = "corpora_ot";
}

if ($corpora eq "") {
  print header( -charset => 'utf-8');
  print "Documento $corpora_id/$filename não encontrado.";
  die;
}

$corpusfile = "/dados/www/static/cedohs/$corpora/$corpora_id/$filename";

# Versões
if    ($version eq "modernized"){$stylesheet="/dados/www/static/cedohs/xslt/modernized.xsl";}
elsif ($version eq "varietylex"){$stylesheet="/dados/www/static/cedohs/xslt/varietylex.xsl";}
elsif ($version eq "plainorig") {$stylesheet="/dados/www/static/cedohs/xslt/plainorig.xsl";}
elsif ($version eq "plainmod")  {$stylesheet="/dados/www/static/cedohs/xslt/plainmod.xsl";}
elsif ($version eq "original")  {$stylesheet="/dados/www/static/cedohs/xslt/original.xsl";}
elsif ($version eq "pos_text")  {$stylesheet="/dados/www/static/cedohs/xslt/tagged.xsl";}
elsif ($version eq "fon_text")  {$stylesheet="/dados/www/static/cedohs/xslt/plain_phonology.xsl";}

# Testa a existência do software Java
$java = (`which java`);
$java =~ s/\n//g;
if (not -e $java) {
    print header( -charset => 'utf-8');
	print "O aplicativo Java não foi encontrado neste computador."; die;
}

if ($version =~ /(pos_text|fon_text|plainorig|plainmod)/) {
    print header( -charset => 'utf-8');
} else {
    print header();
}

# Executa o comando java para a transformação, a saída já é enviada para o browser
$output = (`java -cp /dados/www/static/cedohs/manut/saxon8.jar net.sf.saxon.Transform $corpusfile $stylesheet cxml="$corpora"`);

if ($version =~ /(pos_text|fon_text|plainorig|plainmod)/) {
    $output =~ s/ +/ /g;
    $output =~ s/\n(\n?)\n* /\n$1/g;
    $output = '<pre style="white-space:pre-wrap;">'.$output.'</pre>';
    print '<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body>';
}

print $output;

print "</body></html>";
