#!/usr/bin/perl
#
# imgindex.pl
# 
# builds thumbnails and a "contact page" html file for all images
# in a directory
#

#use Data::Dumper;

$CONVERT="/usr/local/bin/convert";

$some_dir=`pwd`;
chomp($some_dir);

if ( -f "./index.html" )  {
	unlink("./index.html");
}

if ( ! -d "./thumbnails" ) {
	mkdir("thumbnails") || die "Can't make thumbnails dir.\n";
}

# how many times have I cut and pasted this code?
opendir(DIR, $some_dir) || die "can't opendir $some_dir: $!";
@dircontents = readdir(DIR);
closedir DIR;

@images = grep { ( /.jpg$/i || /.jpeg$/i || /.gif$/i || /.png$/i ) && -f "$some_dir/$_" } @dircontents;
@movies = grep { ( /.mpg$/i || /.mpeg$/i || /.avi$/i || /.rm$/i || /.wmv$/i || /.asf$/i ) && -f "$some_dir/$_" } @dircontents;
@subdirs = grep { /^[A-Za-z0-9]/ && -d "$some_dir/$_" && !/^thumbnails/ } @dircontents;

@images = sort @images;
@movies = sort @movies;
@subdirs = sort @subdirs;

#print STDOUT "subdirs: " . Dumper(@subdirs);

$fileindex=1;
$numfiles=scalar(@images);
#print STDOUT "numfiles = $numfiles\n";

$tableindex=1;

open(INDEXPAGE,">index.html");
print INDEXPAGE <<EOF;
<html><head><title>images</title></head>
<body bgcolor="\#FFFFFF"><div align="center">
<h3>Subdirs</h3>
EOF

for my $dir (@subdirs) {
	print INDEXPAGE "<a href=\"$dir\">$dir</a> ";
}

print INDEXPAGE <<EOF;
<h3>Movies</h3>
EOF

for my $vid (@movies) {
	print INDEXPAGE "<a href=\"$vid\">$vid</a> ";
}


print INDEXPAGE <<EOF;
<h3>Images</h3>
<table border="1"><tr>
EOF

for my $filename (@images) {
	
	if ( -d "thumbnails/thm_$filename" ) {
		next;
	} else {
		system("$CONVERT -size 100x100 \"$filename\" \"thumbnails/thm_$filename\"");
	}

	$pagename="page.$filename.html";

	print "filename = $filename\n";
	print "pagename = $pagename\n";
	print "fileindex = $fileindex\n";

	if ( $fileindex == $numfiles ) {
		$nextfile="index.html";
		print STDOUT "nextfile = index.html\n";
	} else {
		$nextindex=$fileindex;
		$nextfile="page.$images[$nextindex].html";
		print STDOUT "nextfile = $nextfile\n";
	}

	if ( $fileindex == 1 ) { 
		$prevfile="index.html";
		print STDOUT "prevfile = index.html\n";
	} else {
		$previndex=$fileindex - 2;
		$prevfile="page.$images[$previndex].html";
		print STDOUT "prevfile = $prevfile\n";
	}
	

	open(IMGPAGE,">$pagename");

	print IMGPAGE <<EOF;
<html><head><title>$filename</title></head>
<body bgcolor="\#FFFFFF">
<a href="$prevfile">PREV</a>	<a href="index.html">INDEX</a>	<a href="$nextfile">NEXT</a>
<br/>
<br/>
<div align="center">
<table border="1"><tr><td><a href="$nextfile" border="0"><img
src="$filename"></a></td></tr></table>
</div>

</body></html>
EOF

	close(IMGPAGE);

	print INDEXPAGE<<EOF;
<td><a href="page.$filename.html"><img height='100px' width='100px' src="thumbnails/thm_$filename"></a></td>
EOF

	if ( $tableindex > 3 ) { 
		print INDEXPAGE<<EOF;
</tr><tr>
EOF
	$tableindex=0;
	}

$tableindex++;
$fileindex++;

print STDOUT "\n";
}

print INDEXPAGE <<EOF;

</tr></table></div></body></html>
EOF

exit 0;
