#!/usr/local/bin/perl

$dir  = "../mypaps/fanpap/";
$page = "papers.htm";

print "Content-Type: text/html\n\n";
unless(chdir($dir)) {
    print "<br><h3 style='color:red;text-align:center' >";
    print "Error: cannot find folder $dir</h2>";
    exit 0;
}
%FORM = get_input();
open(PAGE,$page);
$/ = undef;
$_ = <PAGE>;  # read in whole file into current string
$/ = "\n";
close(PAGE);
sub RequireWord {
    local($word,$item) = @_;
    $item = '' unless($item =~ /$word/is);
    return $item;
}
@kwds = (split  /\s+/, $FORM{'kwd'});  # split on whitespace
foreach $word (@kwds) {
    s|<li>.*?</li>|RequireWord($word,$&)|gise;
}
$kwds = join(" ", @kwds);
s/name=kwd/$& value="$kwds"/s;
print;
1;

sub get_input {
    local ($buffer, @pairs, $pair, $name, $value, %FORM);
    # Read in text
    $ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
    if ($ENV{'REQUEST_METHOD'} eq "POST")
    {
        read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
    } else
    {
        $buffer = $ENV{'QUERY_STRING'};
    }
    # Split information into name/value pairs
    @pairs = split(/&/, $buffer);
    foreach $pair (@pairs)
    {
        ($name, $value) = split(/=/, $pair);
        $value =~ tr/+/ /;
        $value =~ s/%(..)/pack("C", hex($1))/eg;
        $name =~ tr/+/ /;
        $name =~ s/%(..)/pack("C", hex($1))/eg;
        if ($FORM{$name} eq "") {
          $FORM{$name} = $value;
        } else { 
          $FORM{$name} = $FORM{$name} . ", " . $value;
        } 
    }
    %FORM;
}
1;


