#!/usr/bin/perl

$domain = $ENV{'SERVER_NAME'};
$root_dir = $ENV{'SERVER_NAME'};
$root_dir =~ s/\.com|\.net|\.org//i;
$root_dir =~ s/www.//i;
$docroot = $root_dir;
$path="/PHOTOS/family/gallery";
$root_dir = "/home/chuck/".$root_dir."$path";

$header = "<HTML><HEAD><TITLE>Planetmind Gallery Manager</TITLE>
</HEAD>
<BODY background=http://planetmind.net/images/hunabku_bkg3.gif>
<IMG SRC=http://planetmind.net/images/planetwomanlogo.gif WIDTH=212 HEIGHT=54><p>";

# Parse Form Contents

if ($ENV{'REQUEST_METHOD'} eq 'GET') {
      # Split the name-value pairs
      @pairs = split(/&/, $ENV{'QUERY_STRING'});
   }
   elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {
      # Get the input
      read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

      # Split the name-value pairs
      @pairs = split(/&/, $buffer);
   }
   else {
      &error('request_method');
   }


foreach $pair (@pairs) {
   ($name, $value) = split(/=/, $pair);

   # Un-Webify plus signs and %-encoding
   $value =~ tr/+/ /;
   $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $value =~ s/<!--(.|\n)*-->//g;

   $FORM{$name} = $value;
}

if ($FORM{'currdir'}) {
   $currdir = "$FORM{'currdir'}";
} else {
  $currdir = "";
}

# branch...

if ($FORM{'submit'}) {
 $captionfile = $root_dir."/$currdir/".$FORM{'imagename'}.".txt";
   
   open(FILE, ">$captionfile") || print "no $captionfile\n";
   print FILE $FORM{'caption'};
   close(FILE);
   $result = "<FONT SIZE=+1 COLOR=\"#9F0000\">Caption added to $FORM{'imagename'}</FONT>";
}

if ($FORM{'delete'}) {
 $imagefile = $root_dir."/$currdir/".$FORM{'imagename'};
  $captionfile = $root_dir."/$currdir/".$FORM{'imagename'}.".txt";
  $thumbfile = $root_dir."/gallery/thumb/tn_".$FORM{'imagename'};
   
      $ex = `rm -f $imagefile`;

	if (-e $captionfile) { 
 	 $ex = `rm -f $captionfile`;
	}
	if (-e $thumbfile) { 
 	 $ex = `rm -f $thumbfile`;
	}

   $result = "<FONT SIZE=+1 COLOR=\"#9F0000\">$FORM{'imagename'}, associated captions, and thumbnails have been deleted.</FONT>";
}

print "Content-type: text/html\n\n";
print $header;
print "<h2>Gallery Image Manager</h2>\n";

if ($result) {
  print "<P><HR><BR>$result<br><hr><P>\n";
}

print "<div align=right>[<A HREF=\"http://$domain/$root_dir/$currdir\">View Gallery</A>] 
[<A HREF=\"#add\">Add Image</A>]</div>\n";

print "<FONT SIZE=+2>Current Folder: $currdir</FONT><br>\n";
$dirname="$root_dir/$currdir";
opendir(DIR, $dirname) or die "can't open $dirname: $!";
while (defined($file = readdir(DIR))) {
        next if($file =~ m/^\./);
        next if($file eq "");
	 if(-d "$dirname/$file") { 
            push (@filenames, $file);
	}

}

closedir(DIR);
print "[<a href=?currdir=>TOP</a>] ";

foreach $dir(@filenames) {

print "[<a href=?currdir=$currdir/$dir>$currdir/$dir</a>] ";


}

print "<table border=1 cellpadding =10>\n<th>Image\n<th>Caption\n";

@dirlist = `ls -1 $root_dir/$currdir|grep -i jpg`;


foreach $pic(@dirlist) {

  $cap = '';
  chop $pic;
  $pic =~ s/$root_dir//g;
  $pic =~ s/gallery//g;
  $pic =~ s/\///g;

  $capfile = "$root_dir/$currdir/$pic.txt";
if (-e $capfile) {
  $cap = `cat '$capfile'`;
}
	print qq!
      <tr><td><img src="http://$domain/$path/thumb/tn_$pic"><br><FONT SIZE=-1>$pic<BR>
      <form action="gallery_manager.cgi" method="POST"><INPUT NAME="delete" TYPE="submit" VALUE="DELETE">
	<INPUT NAME="imagename" TYPE="hidden" VALUE="$pic"></form></FONT></td>
	<td><form action="gallery_manager.cgi" method="POST"> <INPUT NAME="caption" VALUE="$cap" TYPE="text" size=48,1>
	<INPUT NAME="imagename" TYPE="hidden" VALUE="$pic"><INPUT NAME="currdir" TYPE="hidden" VALUE="$currdir"><INPUT NAME="submit" TYPE="submit" VALUE="Submit"></form></td></tr>
	!;
}
print "</table>\n";
print "<P>[<A HREF=\"http://$domain/gallery\">View Gallery</A>]<P><HR><P>\n";

# form for adding
print qq!
<a name="add">    


<H2>Add an Image</H2>
<B>NOTE: After uploading, you will be shown your gallery. Use your BACK button to return here,
 then hit "Reload" to see the new image(s). </B>

    <FORM ENCTYPE="multipart/form-data" ACTION="upload.cgi" METHOD="POST">
        <TABLE BORDER=0 WIDTH="460">
        <TR><TD ALIGN=RIGHT>
                File 1:
            </TD>
            <TD>
                <INPUT TYPE="FILE" NAME="FILE1" SIZE="35">
            </TD>
        </TR>
        <TR>
            <TD ALIGN=RIGHT>
                File 2:
            </TD>
            <TD>
                <INPUT TYPE="FILE" NAME="FILE2" SIZE="35">
            </TD>
        </TR>
        <TR>
            <TD ALIGN=RIGHT>
                File 3:
            </TD>
            <TD>
                <INPUT TYPE="FILE" NAME="FILE3" SIZE="35">
            </TD>
        </TR>
        <TR>
            <TD ALIGN=RIGHT>
                File 4:
            </TD>
            <TD>
                <INPUT TYPE="FILE" NAME="FILE4" SIZE="35">
            </TD>
        </TR>
		<TR>
			<TD COLSPAN=2>&nbsp;<BR></TD>
		</TR>
        <TR>
            <TD>
                <INPUT TYPE="SUBMIT" VALUE="Upload File(s)\!">
            </TD>
            <TD ALIGN=RIGHT>
                <INPUT TYPE="RESET" VALUE="Reset Form">
            </TD>
        </TR>
        </TABLE>
           <INPUT NAME="currdir" TYPE="hidden" VALUE="$docroot/$currdir">
        </FORM><P>
!;

print "</body></html>";

exit;
