#!/usr/bin/perl

use gls;

use Data::Dumper;

$index_file="undef";

while ($arg=shift)
{
    if ($arg eq "-h")
    {
	ajuda();
    }
	
    elsif ($arg eq "-d")
    {
	$dir=shift;
	@files=`ls $dir`;
	 push @fich,filtrar(\@files,$dir);
    }
    elsif($arg eq "-i")
	{
	$index=1;
	$index_file=shift;
	}

    elsif($arg eq "-a")
	{
	$output=shift;
	$aio=1;
	}
    elsif ($arg !~/^-/)
 	{
	push @fich,$arg;
	}
    else 
    {
	print "$arg - opção desconhecida\nuse gls2html.pl -h para ajuda\n";
	exit;
    }

}

for (@fich)
{
    push @glossarios, new($_);
}
if ($aio==1)
{
	all_in_one(\@glossarios,$output);
}
else
	{
	tohtml(\@glossarios,$index_file);
	}


sub all_in_one
{
$aux=shift;
$output=shift;
@glossarios=@$aux;
open (OUT,">$output");

# Cabeçalho do html ############################

print OUT "<html>\n";
print OUT '<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">';
print OUT "<body>\n";

print OUT "<br><center><h1>Glossários</h1></center><br><br>";
print OUT "<table width=100\% border=1 bgcolor=008099>";
print OUT "<tr><td><b>Conteúdo:</b></td></tr><tr><td>";
print OUT "<table width=100\% border=0 bgcolor=008099  bordercolor=008099 cellspacing=3>";
print OUT "<tr><td width=25\% bgcolor=fffccc><b>Titulo</b></td>";
print OUT "<td width=25\% bgcolor=fffccc><b>Autor</b></td>";
print OUT "<td width=50\% bgcolor=fffccc><b>Descrição</b></td></tr>";	
for $g(@glossarios)
	{
	$autor=get_autor($g);
	$titulo=get_titulo($g);
	$desc=get_desc($g);
	print OUT "<tr><td bgcolor=ffffff><font color=red><b>$titulo</b></font></td>";
	print OUT "<td bgcolor=ffffff><b>$autor</b></td>";
	print OUT "<td bgcolor=ffffff>$desc</td></tr>";
	}
print OUT "</table></td></tr></table><br>";

###################################################

$n=1;
$ind=1;
print OUT "<table border=0><tr valign=top><td align=left>\n";

print OUT "<table>";
$cnt=0;
for $g(@glossarios)
{
	@ch=get_keys($g);
	for (@ch)
	{
       		push @{$palavras{$_}},$cnt;
	}
	$cnt++;
}
     print OUT "<tr><td><b>Índice</b></td></tr>";
@ch=();
for (keys %palavras)
{
 push @ch,$_;
}

@res=gls::ordenar(\@ch);
    
    for (@res)    
	{
	 print OUT "<tr><td><a name=ind$ind> </a><a href=\"\#pal$n\">$_</a></td></tr>\n";
	 $n++;
	 $ind++;
        }

$n=1;
$ind=1;
print OUT "</table></td><td><table border=1>\n";

    for (@res)
    {
	$pos=shift @{$palavras{$_}};
	$g=$glossarios[$pos];
	$significado=get_sig($g,$_); 
	$titulo=get_titulo($g);
	$autor=get_autor($g);
	print OUT "<tr><td><font size=3><a href=#ind$ind><b><top>$_</top></b></a></font><hr>";
	print OUT "<table border=1 bgcolor=fffccc width=100\% heigth=100\% cellspacing=0>";
	print OUT "<tr><td bgcolor=dddddd><b><font size=2 color=008099>$titulo<br>$autor</font></b></td></tr></table></td>";
	print OUT "<td><a name=pal$n> </a> $significado</td></tr>";
	 $n++;
	$ind++;
     }



print OUT "</table></table>";

print OUT "</body></html>\n";
close (OUT);
}



sub tohtml
{
	$aux=shift;
	$index=shift;
	$i=0;

	if ($index ne "undef")
		{
		$i=1;
		



# Criação do índice ###################
	
		open (IND,">$index");

		print IND "<html>";
		print IND '<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">';
		print IND "<body>";
			
		print IND "<center><h1>Índice de Glossários</h1></center><br>";
		print IND "<table border=0 cellspacing=0 width=100\% >";
		print IND "<tr heigth=1 bgcolor=0080aa><td></td><td></td><td></td></tr>";
		print IND "<tr bgcolor=fffccc>";
		print IND "<td width=25\%><u><b>Título</b></u></td>";
		print IND "<td width=25\%><u><b>Autor</u></b></td>";
		print IND "<td width=50\%><u><b>Descrição</b></u></td></tr>";
		print IND "<tr heigth=10 bgcolor=ffffff><td></td></tr>";
########################################
		
		}

	@glossarios=@$aux;

	for $g (@glossarios)
		{
		$output = get_file_name($g);

		$output=$output.".html";
	
	$titulo=get_titulo($g);
    	$autor=get_autor($g);
	$desc=get_desc($g);
	if ($i==1)
	{
		print IND "<tr><td bgcolor=ffffff width=25\%><br><a href=\"$output\">$titulo</a><br><br></td>";
		print IND "<td bgcolor=ffffff width=25\%>$autor</td><td bgcolor=ffffff width=50\%>$desc</td></tr>";
		print IND "<tr heigth=2><td bgcolor=000000> </td><td></td><td></td></tr>";
	}	
	
open (OUT,">$output");	

print OUT "<html>\n";
print OUT '<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">';
print OUT "<body>\n";

$n=1;

print OUT "<table border=1><tr valign=top><td align=left>\n";

print OUT "<table>";

    
    print OUT "<tr><td bgcolor=ffffff>\n";
    print OUT "<font color=red><b>$titulo</b></font></td></tr><tr><td bgcolor=ffffff>$autor</td></tr>\n";
    
    print OUT "<tr><td bgcolor=fffccc>$desc</td></tr>";
    @ch=get_keys($g);    
    for (@ch)    
	{
	 print OUT "<tr><td><a href=\"\#pal$n\">$_</a></td></tr>\n";
	 $n++;
     }

$n=1;
print OUT "</table></td><td><table border=1>\n";


    @ch=get_keys($g);
    for (@ch)
    {
	$significado=get_sig($g,$_); 
	print OUT "<tr><td><font size=3><b>$_</b></font></td><td><a name=pal$n> </a>$significado</p></td></tr>";
	 $n++;
     }
    print OUT "</td></tr>";


print OUT "</table></table>";

print OUT "</body></html>\n";
close (OUT);
}
if ($i==1)
	{
	print IND "</table></body></html>";
	}
}
	
sub filtrar 
{
    my $f=shift;
    my $dir=shift;
    my @files=@$f;
    my @array=();

    if ($dir!~/\/$/g)
    {
	$dir=$dir."/";
    }
    for (@files)
    {
	chomp($_);
	if ($_=~/\.gls$/gi)
	{
	    $f=$dir.$_;
	    push @array,$f;
	}
    }
    return @array;
}

sub ajuda
{
    print "\n";
    print "gls2html.pl - Converte ficheiros .gls para html\n\n";

    print "gls2html.pl [OPCOES] [FICHEIROS]\n\n";

    print "OPCOES\n";
    print "\t -d <directoria> - converte todos os ficheiros .gls da directoria referida\n\n";
    print "\t -a <ficheiro_output>   - converte os ficheiros para um unico ficheiro\n\n";
    print "\t -i <ficheiro>          - cria um indice dos ficheiros criados no ficheiro referido, esta opção não funciona em conjunto com -a\n\n";
    exit;
}

