#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);

# Variablen definieren
#
# In der untersten Ebene der Bilddateien liegen folgende Dateien:
# img.css:
#   Hier stehen die Stylesheet-Formatdefinitionen für das Bilder-Frame
# thumbs.css:
#   Hier stehen die Stylesheet-Formatdefinitionen für das Thumbnail-Frame
# basis_pfad:
#   Hier steht das Basisverzeichnis, in das der Pfeil Uebersicht
#   (Mitte) verzweigt.
#
# Es wird  je ein Verzeichnis 
#   "img" mit den durchnummerierten Bildern 
#   "thumbs" mit den Vorschaubildern und
#   "html" für Kommentare über (a) oder unter (b) den Bildern erwartet.

# Hier wird in das cgi-bin Verzeichnis gewechselt, damit auf
# naboo und falcon die gleichen Pfade zu Grunde liegen
my $AKTUELLES_CGI_VERZEICHNIS = $ENV{'SCRIPT_FILENAME'}; # Aktuellen Pfad aus der Position des Scriptes auslesen
$AKTUELLES_CGI_VERZEICHNIS=~ s/thumbs.pl//;		 # und um den Script-Dateinamen kürzen
chdir $AKTUELLES_CGI_VERZEICHNIS;			 # Verzeichnis wechseln

# Übergabestring des Webservers auslesen, Syntax checken und in seine Bestandteile auflösen
my $Daten = $ENV{'QUERY_STRING'};
die "Good Bye\n" unless ($Daten =~ m/^[a-zA-Z0-9\/_-]+&[0-9]+$/);
my ($PFAD, $AKTUELLE_SECTION) = split(/&/, $Daten); # Die beiden Teile werden in die Variablen $PFAD und $AKTUELLE_SECTION geschrieben

# Pfad zu den Dokumenten der Homepage
my $BASE_URL="../fotos/".$PFAD."/";

my $SCRIPT_PFAD=$ENV{'SCRIPT_NAME'};		# HTTP-Pfad dieses Scriptes
$SCRIPT_PFAD =~ s/thumbs/bilder/g;		# Script-Pfad auf die großen Bilder setzen

# Verzeichnis "thumbs" mit den Bildern auslesen
opendir (IMG,$BASE_URL."thumbs");
my @IMG = grep !/^\./, readdir IMG;     # Inhalt in das Array schreiben (ohne .*-Dateien)
@IMG = sort(@IMG);		# Alphabetisch sortieren
closedir (IMG);

# Webseite

print "Content-type: text/html \n\n";
print "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n";
print "<html>\n<head>\n<title>";
print $PFAD;			# Titel = Pfad
print "</title>\n<meta name='author' content='Norbert P&auml;tzold'>\n<meta http-equiv='content-type' content='text/html; charset=ISO-8859-1'>\n";
# stylesheet einlesen
print "<link rel='stylesheet' type='text/css' href='".$BASE_URL."thumbs.css'>\n</head>\n\n";

print "<body>\n<div class='c1'>\n";

# Thumbs in Sektionen zu je 5 Bildern unterteilen
print "<table border='0' align='center'>\n";
print "<tbody align='center'>\n";
print "<tr>\n";
my $SECTION=0;
for (my $BILD_NUMMER = 0; $BILD_NUMMER <= $#IMG; $BILD_NUMMER=$BILD_NUMMER+5) {
  if ($AKTUELLE_SECTION eq $SECTION) {
    print "<td><font size='+2'><a href='".$ENV{'SCRIPT_NAME'}."?".$PFAD."&amp;".$SECTION."' target='LeftFrame'>".++$SECTION."</a></font></td>\n";
  } else {
    print "<td><a href='".$ENV{'SCRIPT_NAME'}."?".$PFAD."&amp;".$SECTION."' target='LeftFrame'>".++$SECTION."</a></td>\n";
  }
  # Zeilenumbruch nach 5 Sections, wenn eine 6. folgt
  if ($SECTION / 5 - int ($SECTION / 5) == 0) {
    print "</tr><tr>\n";
  }
}
print "</tr>\n";
print "</tbody>\n";
print "</table>\n";
print "<hr>\n";
print "<br>\n";
# Bild-Counter
#print my $BILD_NUMMER."/".$#IMG."<br>\n";

# Jeweils 5 Thumbnails einfuegen
for (my $BILD_NUMMER = $AKTUELLE_SECTION * 5; $BILD_NUMMER < ( $AKTUELLE_SECTION + 1 ) * 5; $BILD_NUMMER++) {
  if ($BILD_NUMMER <= $#IMG) {
  print "<a href='";
  print $SCRIPT_PFAD."?".$PFAD."&amp;";
  print $BILD_NUMMER;			# HTTP-Pfad des Bilder-Scriptes (bilder.pl)
  print "' target='RightFrame'>";
  print "<img src='";
  print $BASE_URL."thumbs/";		# Pfad zu den Thumbnails
  print $IMG[$BILD_NUMMER];		# Aktuelles Bild einfügen
  print "' border='0' alt='";
  print $BILD_NUMMER;			# alt-Tag auf die Bildnummer setzen
  print "'>";
  print "</a>";
  # For Debugging
  #print "<font color=red>";
  #print $BILD_NUMMER."/".$#IMG."<br>\n";
  #print "</font>";
  print "<br><br>\n";
  }
}
print "</div>\n</body>\n</html>"
