#!/usr/bin/perl -w

use Net::SMTP;
use Getopt::Long;

my $imageDir = ".";
my $targetDir = "";
my $pname = 'index';
my $verbose = 0;

my $ret;
$ret = GetOptions(
	'imageDir=s' => \$imageDir,
	'targetDir=s' => \$targetDir,
	'name=s' => \$pname,
	'help' => sub { usage() });
if(!$ret)
{
	usage();
}

if( length($targetDir) <= 0)
{
	print "please set --targetDir\n";
	exit 1;
}

if( ! -d $targetDir)
{
	mkdir $targetDir;
}

open(FD, "> $targetDir/$pname.html") || die "can't open file $targetDir/$pname.html: $!";

print FD "<html>\n";
print FD "<META http-equiv=3DContent-Type content=3D\"text/html; = charset=3Diso-8859-1\">\n";
print FD "<body>\n";

opendir(DIR, $imageDir) || die "can't opendir $imageDir: $!";
my $i = 0;
print FD "<table>\n";
print FD "<tr>\n";
while( $ARG = readdir(DIR))
{
	if( $ARG ne "." && $ARG ne ".." )
	{
		print "$ARG\n";
		if($i > 3)
		{
			print FD "</tr>\n";
			print FD "<tr>\n";
			$i = 0;
		}
		print FD "<td>\n";
		print FD "<table>\n";
		mklink(\*FD, $ARG, $imageDir, $targetDir);
		print FD "</table>\n";
		print FD "</td>\n";
		$i++;
	}
}
closedir(DIR);
		

print FD "</tr>\n";
print FD "</table>\n";
print FD "</body>\n";
print FD "</html>\n\n";
close(FD);

print "\nfinished!\n";

sub mklink
{
	my $fd = $_[0];
	my $arg = $_[1];
	my $s = $_[2];
	my $t = $_[3];
	my $fname = "$arg.html";
	print $fd "<tr>\n";
	print $fd "<td>\n";
	print $fd "<a href=\"$arg\"><img src=\"T$arg\" align=middle border=1></a>\n";
	`/bin/cp $s/$arg $t`;
	`/usr/bin/convert -size 180x180 $s/$arg -resize 180x180 +profile "*" $t/T$arg`;

	open(FD1, "> $t/$fname") || die "can't open file $fname: $!";

	print FD1 "<html>\n";
	print FD1 "<body>\n";
	print FD1 "<IMG SRC=\"$arg\" align=middle border=1>\n";
	print FD1 "</body>\n";
	print FD1 "</html>\n";
	close(FD1);

	print $fd "</td>\n";
	print $fd "</tr>\n";
	print $fd "<tr>\n";
	print $fd "<td align=\"center\">\n";
	print $fd "<a href=\"$fname\">Full size</a>\n";
	print $fd "</td>\n";
	print $fd "</tr>\n";
}
		
sub usage
{
	print "Usage: mkImagePage.pl OPTIONS\n";
	print "\t--imageDir=DIR (directory with all the images)\n";
	print "\t--targetDir=DIR (where to put images, thumbs and html)\n";
	print "\t--name=NAME (name of the html file)\n";
	exit 1;
}

