#!/usr/bin/perl -w
# Keywords: create web page from directory of images
# Jul 19 09:49:33 2004 1
# &&
use diagnostics;
my ($imgagedir, @images, $qs_file, $qs);


## See if we have a query string
if($ENV{QUERY_STRING}){
   $qs = "$ENV{QUERY_STRING}";
}

if(!$qs){
# $reg = qr/$qs.*\.([Jj][Pp][Ee]*[Gg]|[Pp][Nn][Gg]|[GgTt][Ii][Ff]+)$/;

  $reg = qr/\.([Jj][Pp][Ee]*[Gg]|[Pp][Nn][Gg]|[GgTt][Iix][Fft])$/;
}
$imagedir = "./images";
print "content-type: text/html\n\n";

print "<html> <head>
<title>View Image[s]</title>
</head>

<body bgcolor=\"beige\">

<ul>\n";

my $line;
if(! $qs){
   opendir(IMAGEDIR,"$imagedir")or die "Can't open $imagedir: $!";

## NOTE Use only image formats supported by browsers (no tiff)
   @images = grep {/$reg/ && -f "$imagedir/$_"} readdir(IMAGEDIR);
   for(sort @images){
      my $fname = $_;
      if (/\.txt$/){
         open my $fh, '<', "$imagedir/$_" or die "Can't open $imagedir/$_: $!";

         print "<pre>\n",
	       "======================================\n",
               "Filename: $fname [below]\n",
	       "======================================\n";	 

         while(<$fh>){
           print;
         } 

         print "\n======================================\n",
               "Filename: $fname [above]\n",
	       "======================================\n",
               "</pre>\n<hr>\n";	 
      }else{
        print "<pre>\n======================================\n",
              "Filename: $fname [below]\n",
              "======================================\n</pre>\n",
              "<li> <img src=\"$imagedir/$_\"> <br>\n",
              "<pre>\n======================================\n",
              "Filename: $fname [above]\n",
              "======================================\n</pre>\n",
              "<hr>\n";
      }
    }
}else{
   $qs_file = $qs;
   if(! -e "$imagedir/$qs_file") {die "No such file <$imagedir/$qs_file>: $!";
   }else{ 
      print "<li> <img src=\"$imagedir/$qs_file\"> <br>
Filename [$qs_file] above
<hr>\n";
   }
}
print "</ul>
</body></html>\n";
