#! /usr/local/bin/perl

#############################################################################
# 
#############################################################################
#  
#   GLOBAL VARIABLES {
#
#############################################################################

$mailprogram="/usr/lib/sendmail -t -n";
$author="msen7\@npac.syr.edu";
$signature="<font size=-1><i>Mehmet Sen</i></font>";
$filename="images.html";
$dirname=($ARGV[0]) ? $ARGV[0]: ".";
#############################################################################
#  
#   MAIN FUNCTION
#
#############################################################################
# Set up the debuging flag.
#&PrintHeader;
open(OUT, ">imagelist.html");
&openHtml;
&EXECUTE;
&closeHtml;
close(OUT);
system("cp imagelist.html  /home/B10E/msen7/oserver/temp/listedimages.html");
#############################################################################
#  
#   SUBROUTINES
#
#############################################################################
sub EXECUTE {
	&scanDir($dirname);
    }

##############################################################################
#  scanFile: process each file in the directory
#
##############################################################################
sub scanDir {
    local($dn)=@_;
    opendir(DIR, $dn) || die "no dir $dn";
        while ($fn=readdir(DIR)) {
            if ($fn =~ /jpg\b|gif\b|GIF\b|JPG\b/) {&processFile($fn);}
        }
        closedir(DIR);

}

sub processFile {
    local($fn)=@_;
    print OUT  "<IMG src=$fn> $fn "; 
    system("ln -s $dn/$fn   /home/B10E/msen7/oserver/temp/$fn");
}

#
##############################################################################
#
# Results
#
##############################################################################

# Returns the magic line which tells WWW that this is an HTML document
sub PrintHeader {
  print "Content-type: text/html\n\n";

}
sub printFooter {
  print OUT "$signature </body></html>\n";
}

sub closeTable {
print OUT "</table>";
}

sub openHtml {
print OUT <<EOF;
<HTML>
<HEAD>
<title>Image List</title>
</HEAD>
<body
EOF
}
sub closeHtml {
&printFooter;
print OUT <<EOF;
</body>
</HTML>
EOF
}


##############################################################################
#
#  Get information from fill-out form.
#
##############################################################################


# reads the arguments passed from the form
sub ReadParse {
    local ($i, $loc, $key, $val);

    if ($ENV{'REQUEST_METHOD'} eq "GET") {                      # Read in text
       $in = $ENV{'QUERY_STRING'};
    } elsif ($ENV{'REQUEST_METHOD'} eq "POST") {
      for ($i = 0; $i < $ENV{'CONTENT_LENGTH'}; $i++) {
        $in .=getc;
      }
  } else 
  {  # can be used for debugging on command line
      $in = <STDIN>;
      print OUT "$in\n";
  }

    @in = split(/&/,$in);

    foreach $i (0 .. $#in) {
      $in[$i] =~ s/\+/ /g;                          # Convert plus's to spaces
      $in[$i] =~ s/%(..)/pack("c",hex($1))/ge;
                                # Convert %XX from hex numbers to alphanumeric
      $loc = index($in[$i], "=");                  # Split onto key and value.
      $key = substr($in[$i],0,$loc);
      $val = substr($in[$i],$loc+1);
      $in{$key} .= '\0' if (defined($in{$key})); # \0 is the multiple separator
      $in{$key} .= $val;
   }
   return 1; 
}
