#!/local/perl-5.003/bin/perl

$MKHTML		= "/proj/i4/bin/mkhtml";
$LITTOHTML	= "/proj/i4/bin/lit2html";

$dummy		= "";
$mycopyright	= "© 1996 Matthias Roessler";
($myfile=$0) 	=~ s|.*/||;
($myversion	= "V$1 - $mycopyright") if ("$Revision: 1.14 $dummy" =~ /\D*([\d\.]+).*/);


$up		= "+up /TR/";
$left		= "";
$right		= "";
$debug		= "";
$hidden		= "";

%dbs		= ("Inf4 TR"	=>	"/proj/i4ftp/TR/INDEX.ref",		
		   "Inf4 Publ." =>	"/proj/i4/Papers/Publications/publications.rfr",
		   "List"	=>	"/home/inf4/list/literatur/index",	
		   "[Bolch89]"	=>	"/home/inf4/roessler/Archive/Lit.Bolch.rfr", 
		   "Reitzner"	=>	"/home/inf4/reitzner/Literatur/Literatur.bib",
		   "Roessler"	=>	"/home/inf4/roessler/Archive/Lit.rfr",
		   "Thiel"	=>	"/home/inf4/tsthiel/Literatur/Lit.rfr"
		   );

%checkbox	= ("No Keywords"	=>	"-nokeywords",
		   "No Label"		=>	"-nolabel",
		   "No Abstracts"	=>	"-noabstracts",
		   "No HTML Ext."	=>	"-nohtmlextensions"
		   );

$option{'-in'}	= "/proj/i4/Papers/Publications/publications.rfr";
$option{'-in'}	= $ENV{"PATH_INFO"}				if ($ENV{"PATH_INFO"} !~ /^\s*$/);

print "Content-Type: text/html\nStatus: 200\n\n\n";

foreach $o (split(/&/, $ENV{"QUERY_STRING"}))
{
    $o =~ s/%([\da-f]{1,2})/pack(C,hex($1))/eig;
    $o =~ s/\'\`/./g;

    $option{$1}	= $'	if ($o =~ /^(-?[a-z]+)=/);
    $option{$1}	= "1"	if ($o =~ /^(-?[a-z]+)$/);
}


$up	= "+up \'$option{'-up'}\'"		if ($option{'-up'});
$left	= "+left \'$option{'-left'}\'"		if ($option{'-left'});
$right	= "+right \'$option{'-right'}\'"	if ($option{'-right'});

$qv	= $option{'-grep'};
$db	= $option{'-in'};

foreach $o (keys(%option))
{
    if ($o !~ /-(up|left|right|debug|noform)/)
    {
	$option{$o} =~ s/\s/\\ /g;
	$littohtmlopt .= " $o=$option{$o}";
    }
}

delete $option{'-grep'};
delete $option{'-in'};


print `$MKHTML -onlyheader ++arrows -flag -home -person +title "Literature Query Results" $up $left $right`;

$footer		= "Generated by <B>$myfile</B> $myversion";

if ( !defined($option{'-noform'}) )
{
    print "<FORM METHOD=\"GET\" ACTION=\"http://www4.informatik.uni-erlangen.de/TR/lit.cgi\">\n";

    print "Please give query string: <INPUT TYPE=\"text\" NAME=\"-grep\" VALUE=\"$qv\" SIZE=\"20\">";
    print "<INPUT TYPE=\"submit\">";

    print "<H5>Select DB<SELECT NAME=\"-in\">\n";

    foreach $d (sort(keys(%dbs)))
    {
	$dbs .= "$dbs{$d},";
    }
    chop($dbs);
    print "<OPTION VALUE=\"$dbs\">All\n";
    
    foreach $d (sort(keys(%dbs)))
    {
	$S=""; $S="SELECTED" 				if ($dbs{$d} =~ /$db/);
	print "<OPTION $S VALUE=\"$dbs{$d}\">$d\n";
    }

    print "</SELECT>\n<BR>\n";
    
    foreach $c (keys(%checkbox))
    {
	$C=""; $C="CHECKED" if ($option{$checkbox{$c}});
	print "[<INPUT TYPE=\"checkbox\" $C NAME=\"$checkbox{$c}\">$c]\n";
	delete $option{$checkbox{$c}};
    }

    foreach $o (keys(%option))
    {
	print "<INPUT TYPE=\"hidden\" NAME=\"$o\" VALUE=\"$option{$o}\">\n";
    }

    print "</H5>\n";
    print "</FORM>\n";
}

if ($ENV{"QUERY_STRING"} !~ /^\s*$/)
{
    print "<HR>$LITTOHTML -noheader $littohtmlopt"	if ($option{'-debug'});
    
    if ( ! defined($option{'-noform'}) )
    {
	print "<HR>\n";
	print "<H2>Results:</H2>\n";
    }
    else
    {
	print "<H1>$option{'-noform'}</H1>\n";
    }

    print `$LITTOHTML "-footer=$footer" -noheader $littohtmlopt`;
}
else
{
    print `$MKHTML -onlyfooter -footer "$footer"`;
}

