#!/usr/local/bin/perl

# Slide Show Viewer
# Version 1.0
# manual_slide_show.pl
# By Mike Calabrese
# http://www.mikecalabrese.com
# 11-01-2003

# This program is available for free on an AS-IS basis.  I am not
# responsible for consequential damages, loss of income or whatever
# else that may happen as a result of the use of this program.

# Receive & Parse out the data
$theinput = <>; # Read the data into an array
chomp $theinput; # Chomp the return character
my @value_pairs = split (/&/,$theinput);
my %formdata = ();
foreach $pair (@value_pairs) {
($field, $value) = split (/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%([\dA-Fa-f][\dA-Fa-f])/pack ("C", hex ($1))/eg;
$formdata{$field} = $value;
}

# Assign variable names to the input
$reference_number = $formdata{reference_number};
chomp $reference_number;
$max_reference_number = $formdata{max_reference_number};
$increase = $formdata{increase};
$decrease = $formdata{decrease};

# Error Checking
if ($reference_number eq "") {
$reference_number = 1;
}

if ($reference_number <= 0 && $decrease eq "Y") {
$reference_number = $max_reference_number + 1;
}

if ($reference_number eq "1" && $decrease eq "Y" && $increase eq "") {
$reference_number = $max_reference_number + 1;
}

if ($increase eq "Y") {
$reference_number = $reference_number + 1;
}

if ($decrease eq "Y") {
$reference_number = $reference_number - 1;
}


# HTML Output
print "Content-type: text/html\n\n";
print <<"HTMLDOC";
<HTML><HEAD><TITLE>Manual Slide Show Viewer
</TITLE></HEAD>
<BODY BGCOLOR="#ffffff" LINK="#008000" ALINK="#000080" VLINK="#400000">
<CENTER>
<P>
<H3>Manual Slide Show Viewer</H3>
<P>
HTMLDOC

# Connect to the Database
use DBI;
my ($dsn) = "DBI:mysql:yourdatabasename:localhost";
my ($user_name) = "yourusername";
my ($password) = "yourpassword";
my ($dbh, $sth);
my (@ary);
$dbh = DBI->connect ($dsn, $user_name, $password, {RaiseError => 1});

# Issue the select statement that retrieves the max number of records
$sth = $dbh->prepare ("SELECT count(*) from slide_show");
$sth->execute ();
$max_reference_number = $sth->fetchrow_array ();

# Issue the select statement that gets the image information
$sth = $dbh->prepare ("select image_url, "
   . "description from slide_show where reference_number = '$reference_number'");
$sth->execute ();

# Build the image info from the array @ary
while (@ary = $sth->fetchrow_array ())
{
# $therows = join ("<BR>", @ary), "\n";
$image_url = $ary[0];
$description = $ary[1];
}

print "$image_url<BR>\n";
print "<I><SMALL>$reference_number of $max_reference_number\n";
print "<BR>$description</SMALL></I><P>\n";

# print "<I><SMALL>$therows</SMALL></I>\n";
# print "<P>\n";
# undef $therows;

# Disconnect from the database
$sth->finish ();
$dbh->disconnect ();

print <<"HTMLDOC";
<TABLE BORDER="0"><TR><TD VALIGN="Top" ALIGN="Right">
<FORM METHOD="POST" ACTION="manual_slide_show.pl">
<INPUT TYPE="Hidden" NAME="increase" VALUE="">
<INPUT TYPE="Hidden" NAME="decrease" VALUE="Y">
<INPUT TYPE="Hidden" NAME="reference_number" VALUE="$reference_number">
<INPUT TYPE="Hidden" NAME="max_reference_number"
VALUE="$max_reference_number">
INPUT TYPE="Submit" VALUE="<<Previous">
 
</FORM>
</TD><TD VALIGN="Top" ALIGN="Left">
HTMLDOC
if ($reference_number eq "$max_reference_number") {
$reference_number = 0;
}
print <<"HTMLDOC";
<FORM METHOD="POST" ACTION="manual_slide_show.pl">
<INPUT TYPE="Hidden" NAME="increase" VALUE="Y">
<INPUT TYPE="Hidden" NAME="decrease" VALUE="">
<INPUT TYPE="Hidden" NAME="reference_number" VALUE="$reference_number">
<INPUT TYPE="Submit" VALUE="Next>>">
</FORM>
</TD></TR>
<TR><TD VALIGN="Top" COLSPAN="2">
<FORM METHOD="POST" ACTION="auto_slide_show.pl">
<INPUT TYPE="Submit" VALUE="Auto Slide Show Viewer">
</FORM>
</TD></TR></TABLE>
</CENTER>
</BODY></HTML>
HTMLDOC