#!/usr/bin/perl
use Image::Size;

print "Content-type: text/html\n\n";

&parse;
if ($input eq '') {
&main
} elsif ($in{win} eq 'a') {
&main3
} elsif ($in{win} eq 'b') {
&main2
}

sub main {
$topdirectory = "/home/carver2/public_html/pictures";      
&printheader;
opendir(DIR, $topdirectory); # or die "can't opendir $topdirectory: $!";
foreach $dir (reverse sort readdir(DIR)) {
next if $dir =~ /^\.\.?$/;
$dirfull = "$topdirectory/$dir";
open (F, "< $dirfull") or die "opening $dirfull: $!\n";
next unless (-d F);
close(F);
open (INDEXFILE, "< /home/carver2/public_html/pictures/$dir/title.txt");    
next unless (-e INDEXFILE);
while (<INDEXFILE>) {
chomp;
$line = $_;
}
close (INDEXFILE);
open (SUMMARYFILE, "< /home/carver2/public_html/pictures/$dir/summary.txt");
while (<SUMMARYFILE>) {
chomp;
$summary = $_;
}
close (SUMMARYFILE);

print "<tr><td rowspan=2><a href=\"http://www.carverfire.org/old_site/scripts/pictures4.cgi?&win=a&view=$dir&page=0\">";
print "<img src=\"http://www.carverfire.org/old_site/pictures/$dir/thumbnail.jpg\"></a>\n";
print "</td><td width=\"10\" rowspan=\"2\">&nbsp;</td><td align=\"left\" height=\"25\"><a href=\"http://www.carverfire.org/old_site/scripts/pictures4.cgi?win=a&view=$dir&page=0\">";                          
print "$line</a></td></tr><tr><td align=\"left\" height=\"75\" valign=\"top\">$summary</td></tr>\n";

$line = "";
}
closedir (DIR);
&printfooter;
}

sub main2 {
$topdirectory = "/home/carver2/public_html/pictures";
$directory = "$topdirectory/$in{view}";
$page = $in{page};
&printheader2;
opendir(DIR2, $directory);
while (defined($dir2 = readdir(DIR2))){
next unless $dir2 =~ /.jpg/i;
next if ($dir2 eq "thumbnail.jpg");
push (@filelist_unsorted, $dir2);
}
@filelist = sort (@filelist_unsorted);
closedir (DIR2);
$nextpage = $in{page}+1;
$prevpage = $in{page}-1;
print "<table border=0 width=750 height=510><tr><td width=85> ";

unless ($in{page} == 0) {
print "<a href=\"http://www.carverfire.org/old_site/scripts/pictures4.cgi?win=b&view=$in{view}&page=$prevpage\">";
print "<img src=\"http://www.carverfire.org/old_site/images/l.jpg\" alt=\"\" border=\"0\"></a></td>";
}

print "<td align=center valign=top><table><tr>";
($x, $y) = imgsize("/home/carver2/public_html/pictures/$in{view}/$filelist[$page]");
if ($x >= 483 && $y >= 361){
print "<td width=503 height=383 ";
print "background=\"http://www.carverfire.org/old_site/images/droph242.jpg\" ";
print "align=left valign=top>\n<a href=\"javascript:void(0);\" onClick=window.close();><img src=\"http://www.carverfire.org/old_site/pictures/$in{view}/$filelist[$page]\" height=363 width=483 border=0>";
} elsif ($x >= 361 && $y >= 483) {
print "<td width=383 height=503 ";
print "background=\"http://www.carverfire.org/old_site/images/dropv242.jpg\" ";
print "align=left valign=top>\n<a href=\"javascript:void(0);\" onClick=window.close();><img src=\"http://www.carverfire.org/old_site/pictures/$in{view}/$filelist[$page]\" height=483 width=363 border=0>";
} elsif ($x >= 483 && $y <= 325){
print "<td width=503 height=342 ";
print "background=\"http://www.carverfire.org/old_site/images/droph215.jpg\" ";
print "align=left valign=top>\n<a href=\"javascript:void(0);\" onClick=window.close();><img src=\"http://www.carverfire.org/old_site/pictures/$in{view}/$filelist[$page]\" height=322 width=483 border=0>";
} elsif ($x <= 325 && $y >= 483) {
print "<td width=342 height=503 ";
print "background=\"http://www.carverfire.org/old_site/images/dropv215.jpg\" ";
print "align=left valign=top>\n<a href=\"javascript:void(0);\" onClick=window.close();><img src=\"http://www.carverfire.org/old_site/pictures/$in{view}/$filelist[$page]\" height=483 width=322 border=0>";
}
print "</a></td></tr></table></td>";
print "<td width=85>";
unless ($in{page} == scalar(@filelist)-1){
print "<a href=\"http://www.carverfire.org/old_site/scripts/pictures4.cgi?win=b&view=$in{view}&page=$nextpage\">";
print "<img src=\"http://www.carverfire.org/old_site/images/r.jpg\" alt=\"\" border=\"0\"></a></td>";
}


print "</tr></table></td></tr>\n";

print "<table border=0 width=750>\n";
$textfile = $filelist[$page];
(substr($textfile, -4) =~ s/jpg/txt/ig);
open (G, "< $directory/$textfile");
if(-e G){
print "<tr><td height=60 align=center><font face=Arial,helvitica><b>";
while (<G>){
print  $_;
}
print "</td></tr>\n";
} else {
open (H, "< $directory/default.txt");
print "<tr><td height=60 align=center><font face=Arial,helvitica><b>";
while (<H>){
print  $_;
}
print "</td></tr>\n"; 
}

print "</table>\n";
#&printmiddle;
&printfooter2;
}


sub main3 {
$topdirectory = "/home/carver2/public_html/pictures";
$directory = "$topdirectory/$in{view}";
$page = $in{page};
&printheader3;
opendir(DIR2, $directory);
#foreach $dir (sort readdir(DIR)) {
while (defined($dir2 = readdir(DIR2))){
next unless $dir2 =~ /.jpg/i;
next if ($dir2 eq "thumbnail.jpg");
push (@filelist_unsorted, $dir2);
}
@filelist = sort (@filelist_unsorted);
closedir (DIR2);
open (SUMMARYFILE, "< /home/carver2/public_html/pictures/$in{view}/summary.txt");
while (<SUMMARYFILE>) {
chomp;
$summary = $_;
}
close (SUMMARYFILE);  
$size = 0.4;
print "<tr height=100>";

($x, $y) = imgsize("/home/carver2/public_html/pictures/$in{view}/$filelist[0]");
$height = $y * $size;
$width = $x * $size;
print "<td align=center valign=middle>
<a href=\"javascript:void(0);\" onClick=window.open(\"http://www.carverfire.org/old_site/scripts/pictures4.cgi?";
print "&win=b&view=$in{view}&page=0\",\"viewwindow\",\"width=775,height=600\")>";
print "<img src=\"http://www.carverfire.org/old_site/pictures/$in{view}/$filelist[0]\" height=$height width=$width</a></td>";

($x, $y) = imgsize("/home/carver2/public_html/pictures/$in{view}/$filelist[1]");
$height = $y * $size;
$width = $x * $size; 
print "<td align=center valign=middle>
<a href=\"javascript:void(0);\" onClick=window.open(\"http://www.carverfire.org/old_site/scripts/pictures4.cgi?";
print "&win=b&view=$in{view}&page=1\",\"viewwindow\",\"width=775,height=600\")>";
print "<img src=\"http://www.carverfire.org/old_site/pictures/$in{view}/$filelist[1]\" height=$height width=$width</td>";

($x, $y) = imgsize("/home/carver2/public_html/pictures/$in{view}/$filelist[2]");
$height = $y * $size;
$width = $x * $size; 
print "<td align=center valign=middle>
<a href=\"javascript:void(0);\" onClick=window.open(\"http://www.carverfire.org/old_site/scripts/pictures4.cgi?";
print "&win=b&view=$in{view}&page=2\",\"viewwindow\",\"width=775,height=600\")>";
print "<img src=\"http://www.carverfire.org/old_site/pictures/$in{view}/$filelist[2]\" height=$height width=$width</td>";

($x, $y) = imgsize("/home/carver2/public_html/pictures/$in{view}/$filelist[3]");
$height = $y * $size;
$width = $x * $size; 
print "<td align=center valign=middle>
<a href=\"javascript:void(0);\" onClick=window.open(\"http://www.carverfire.org/old_site/scripts/pictures4.cgi?";
print "&win=b&view=$in{view}&page=3\",\"viewwindow\",\"width=775,height=600\")>";
print "<img src=\"http://www.carverfire.org/old_site/pictures/$in{view}/$filelist[3]\" height=$height width=$width</td></tr>";

print "<tr><td colspan=4 align=center>&nbsp;<p><strong>$summary</strong><p></td></tr>"; 
print "<tr><td colspan=4 align=center><p><strong>(click on any picture to enlarge it)</strong><p></td></tr>";
$i = 4;
$h = 0;
print "<tr>";
while ($i <= $#filelist) {
($x, $y) = imgsize("/home/carver2/public_html/pictures/$in{view}/$filelist[$i]");
$height = $y * $size;
$width = $x * $size;
print "<td align=center valign=middle>
<a href=\"javascript:void(0);\" onClick=window.open(\"http://www.carverfire.org/old_site/scripts/pictures4.cgi?";
print "&win=b&view=$in{view}&page=$i\",\"viewwindow\",\"width=775,height=600\")>";
print "<img src=\"http://www.carverfire.org/old_site/pictures/$in{view}/$filelist[$i]\" height=$height width=$width</td>";
$i++;
if ($h < 3) {
$h++;
} else {
$h = 0;
print "</tr><tr>";
}
}
&printfooter3
}


sub printheader {
print "\n";
print "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN'>\n";
print "\n";
print "<Script Language=\"JavaScript1.1\" src=\"http://www.carverfire.org/old_site/scripts/isimgact.js\" ></Script>\n";
print "<Script language=\"JavaScript1.1\" src=\"http://www.carverfire.org/old_site/scripts/writebottom.js\" TYPE=\"text/javascript\"></script>\n";
print "<Script language=\"JavaScript1.1\" src=\"http://www.carverfire.org/old_site/scripts/write_nav_bar.js\" TYPE=\"text/javascript\"></script>\n";
print "<html>\n";
print "<head>\n";
print "<title>Carver Fire Department Pictures</title>\n";
print "</head>\n<body>\n<div align=\"center\">\n";
print " <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"754\">\n";
print "<tr><td>";
print "<a href=\"http://www.carverfire.org/old_site\">\n";
print "<img border=\"0\" src=\"http://www.carverfire.org/old_site/carver_fire.jpg\" align=\"left\" alt=\"CARVER FIRE.org\" width=\"754\" height=\"104\"></a>\n";
print "</td></tr>\n";
print "  <tr><td><table><tr><td valign=\"top\">\n";
print "</td>\n";
print "<td>\n";
print "<table border=\"0\"cellpadding=\"0\" cellspacing=\"0\">\n";
}


sub printheader2 { 
print "\n";
print "<html>\n"; 
print "\n"; 
print "<Script Language=\"JavaScript1.1\" src=\"http://www.carverfire.org/old_site/scripts/isimgact.js\" ></Script>\n";
print "<script language=\"JavaScript1.1\" src=\"http://www.carverfire.org/old_site/scripts/writebottom.js\" TYPE=\"text/javascript\"></script>\n"; 
print "<head>\n"; 
print "<title>CFD Pictures</title>\n"; 
print "</head>\n"; 
print "<body>\n"; 
#print "<div align=\"center\">\n"; 
#print "  <center>\n"; 
#print "  <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"600\"><tr><td width=600 height=350 align=center valign=\"middle\">\n"; 
}


sub printheader3 { 
print "\n";
print "<html>\n";
print "\n";
print "<Script Language=\"JavaScript1.1\" src=\"http://www.carverfire.org/old_site/scripts/isimgact.js\" ></Script>\n";
print "<script language=\"JavaScript1.1\" src=\"http://www.carverfire.org/old_site/scripts/writebottom.js\" TYPE=\"text/javascript\"></script>\n";
print "<script language=\"JavaScript1.1\" src=\"http://www.carverfire.org/old_site/scripts/write_nav_bar.js\" TYPE=\"text/javascript\"></script>\n";
print "<head>\n";
print "<title>Carver Fire Department Pictures</title>\n";
print "</head>\n<body>\n<div align=\"center\">\n";
print " <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"754\">\n";
print "<tr><td align=center>";
print "<a href=\"http://www.carverfire.org/old_site\">\n";
print "<img border=\"0\" src=\"http://www.carverfire.org/old_site/carver_fire.jpg\" align=\"center\" alt=\"CARVER FIRE.org\" width=\"754\" height=\"104\"></a>\n";
print "</td></tr>\n";
print "  <tr><td><table><tr><td valign=\"top\">\n";
print "</td>\n";
print "<td align=center>\n";
print "<table border=\"0\" cellpadding=\"10\" cellspacing=\"0\">\n";
}


sub printmiddle {
print "</table></center></div>\n";
}


sub printfooter {
print "</table>\n<script language=\"JavaScript1.1\"><!--\n";
print "write_bottom();\n";
print "//--></script>\n";
print "</td></tr></table></td></tr></table></div>\n</body></html>\n";
}


sub printfooter2 {
print "</body></html>\n";
}


sub printfooter3 {
print "</table>\n";
print "</td></tr></table>\n<tr><td align=center>\n";
print "<script language=JavaScript1.1><!--\n";
print "write_bottom();\n";
print "//--></script>\n";
print "</td></tr></table>\n</body></html>\n";
}


sub parse
{
	if ($ENV{'CONTENT_LENGTH'})
	{
		read(STDIN, $input, $ENV{'CONTENT_LENGTH'});
	}
	$input = $ENV{'QUERY_STRING'} if $ENV{'QUERY_STRING'};
	if (($ENV{'QUERY_STRING_UNESCAPED'}) && ($input eq ''))
	{
		$input = $ENV{'QUERY_STRING_UNESCAPED'};
		$input =~ s/\\&/\&/g;
		$Unesc = 1;
	}
	if ($input =~ /=/g)
	{
	    @pairs = split(/&/, $input);
		foreach $pair (@pairs) 
		{
			($name, $value) = split(/=/, $pair);
			$value =~ tr/+/ /;
			$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
			$in{$name} = $value;
			$NVPairsExist = 1;
		}
	}
	else
	{
		$count = 0;
		(@InputString) = split(/&/, $input);
		foreach $InputString (@InputString)
		{
			$InputString =~ tr/+/ /;
			$InputString =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
			$in{$count} = $InputString;
			$count++;
		}
		$NVPairsExist = 0;
	}
}
