#!/usr/bin/perl
# Title    : index.pl
# Function : automaticly create webpage's showing pics in selected DIR
# Author   : P.Schiks (C)2002 GNU / GPL
# Platform : PERL 5
#
use strict;
#
# Customise default variables
#
# picture files path
my $DIRPATH = ".";
# page title
my $TITLE = "Picture index";
# name of index file
my $INDEXNAME = "index.html";
my $INDEXTITLE = "Picture main index";
# name of preview file
my $PAGENAME = "page_";
# max pictures / page , preview picture size and nr pic's / line
my $MAXPICS = 30;
my $HEIGHT = 120;
my $WIDTH = 160;
my $COUNT = 4;
#
# Program variables
#
my $FILENAME;
my $page;
my $pagenr = 0;
my $prevpagenr;
my $nextpagenr;
my $pagename;
my $count;
my $piccount;
my $totalpics;
#
# Program start
#
print "Picweb v1.0 by Pascal\n\n";
print "Page Title     = $TITLE\n";
print "Index filename = $INDEXNAME\n";
print "Previewname    = $PAGENAME\n\n";
#
if(opendir DIRECTORY, $DIRPATH)
{
  $totalpics=0;
  $piccount=0;
  $count=0;
#
  if(open INDEX,">$INDEXNAME")
  {
    print INDEX "<HTML>\n<HEAD>\n<TITLE>$INDEXTITLE</TITLE>\n</HEAD>\n<BODY>\n";    print INDEX "<H2>$INDEXTITLE</H2>";
#
    while($FILENAME=readdir(DIRECTORY))
    {
# Filter for .jpg .JPG .gif .GIF
      $_ = $FILENAME;
      if((m/.jpg$/)||(m/.JPG$/)||(m/.gif$/)||(m/.GIF$/))
      {
        if($piccount==0)
        {
          $prevpagenr=$pagenr;
          $pagenr++;
          $nextpagenr=$pagenr+1;
          $pagename = "$PAGENAME$pagenr.html";
          print "\nNew file $pagename\n";
          print INDEX "<LI><A href=\"$pagename\">$pagename</A>";
          $page = open(PAGE,">$pagename");
          if($page)
          {
            print "Creating file $pagename\n";
            print PAGE "<HTML>\n<HEAD>\n<TITLE>$TITLE</TITLE>\n</HEAD>\n";
            print PAGE "<BODY bgcolor=\"#FFFFFF\">\n";
            print PAGE "<CENTER><H2>$TITLE</H2></CENTER>\n";
            print PAGE "<A href=\"$INDEXNAME\">Index</A> ";
            if($pagenr>1)
            { 
              print PAGE "<A href=\"$PAGENAME$prevpagenr.html\">Previous</A> ";
            }
            if($nextpagenr)
            {
              print PAGE " <A href=\"$PAGENAME$nextpagenr.html\">Next</A>";
            }
            print PAGE "\n<BR>\n";
          }
          else
          {
            print "File $pagename could not be created\n";
          }
        }
#
        print $FILENAME," ";

        if($page)
        {
          printf(PAGE "<A href=\"%s\">",$FILENAME);
          printf(PAGE "<IMG HEIGHT=$HEIGHT WIDTH=$WIDTH SRC=\"%s\" ALT=\"%s\">\n",$FILENAME,$FILENAME);
          $count++;
          if($count>=$COUNT)
          {
            printf(PAGE "<BR>\n");
            $count = 0;
          }
        } # end preview
        $piccount++;
        $totalpics++;
      } # end Filter
#
      if($piccount>=$MAXPICS)
      {
        if($page)
        {
          print PAGE "<BR>\n";
          print PAGE "<A href=\"$INDEXNAME\">Index</A> ";
          if($pagenr>1)
          {
            print PAGE "<A href=\"$PAGENAME$prevpagenr.html\">Previous</A> ";
          }
          print PAGE " <A href=\"$PAGENAME$nextpagenr.html\">Next</A>";
          print PAGE "\n<BR>\n";
          print PAGE "</BODY>\n</HTML>\n";
          close(PAGE);
        }
        $piccount = 0;
        $count = 0;
      }
    } # end while $FILENAME
#
    if($totalpics==0)
    {
      print INDEX "<H2>No pictures indexed</H2>\n";
    }
#
    if($page)
    {
      print PAGE "<BR>\n";
      if($pagenr>1)
      {
        print PAGE "<BR>\n<A href=\"$PAGENAME$prevpagenr.html\">Previous</A>";
      }
      print PAGE "</BODY>\n</HTML>\n";
      close(PREVIEW);
    }
    print "\n\n$totalpic's Pictures indexed\n";
    print INDEX "<BR>\n";
    close(INDEX);
    closedir(DIRECTORY);
  } # end if open INDEX
  else
  {
    print "Error, could not create $INDEXNAME\n";
  }
} # end if opendir
else
{
  print "Fout, kan de directory $DIRPATH niet openen\n";
}

