#! /usr/local/bin/perl

#############################################################################
# 
#############################################################################
#  
#   GLOBAL VARIABLES {
#
#############################################################################

$width="20%";
$height="20%";
$background="strawberrybg.gif";
$bgcolor="#ccffcc";
$target="";
$colon=2;
$out="imagelist.html";
$sort="DESC";
while ($ARGV[$i] ne "") {
    $next=$ARGV[$i++];
    if ( $next eq"size") {$width=$height=$ARGV[$i++]."%";}
    elsif ( $next eq"w") {$width=$ARGV[$i++]."%";}
    elsif ( $next eq"h") {$height=$ARGV[$i++]."%";}
    elsif ( $next eq"bg") {$background=$ARGV[$i++];}  
    elsif ( $next eq"bgcolor") {$bgcolor=$ARGV[$i++];}  
    elsif ( $next eq"colon") {$colon=$ARGV[$i++];}  
    elsif ( $next eq"sort") {$sort=$ARGV[$i++];}  
    elsif ( $next eq"out") {$out=$ARGV[$i++];}  
    elsif ( $next eq"target") {$target="target=".$ARGV[$i++];}  
    else {
	if ($colon < 1) {$colon=1;}

	print "USAGE: imgscan.pl [size xx] [w xx] [h xx] [colon x][out filename] [target target_name][bg background_image] [bgcolor background_color]\n\tWhere  w is width, h is height in percantages; size means width=height=value.\n\tExample:  'imgscan.pl size 20 bgcolor=white

 target=emre'\n  "; exit; }  
}
print "\t\tbackground=$background\n\t\twidth=$width \n\t\theight=$height\n\t\tsort=$sort\n\t\tout=$out \n\t\tbackground=$background\n\t\tcolon=$colon\n\t\tbgcolor=$bgcolor\n\t\t$target\n";

$author="msen7\@npac.syr.edu";
$signature="<font size=-1><i>Erdogan Sevilgen</i></font>";
$base=$ENV{"PWD"};
$dirname=$base ;

#############################################################################
#  
#   MAIN FUNCTION
#
#############################################################################
# Set up the debuging flag.
#&PrintHeader;
open(OUT, ">$out");
&openHtml;
&EXECUTE;
&closeHtml;
close(OUT);
#############################################################################
#  
#   SUBROUTINES
#
#############################################################################
sub EXECUTE {
 
	&scanDir($dirname);
    }

sub DESC {
    if ($a gt$b ) { return -1}
    elsif ($a eq $b){ return 0;}
    elsif ($a lt $b) { return 1;}
}
sub ASC {
    if ($a lt$b ) { return -1}
    elsif ($a eq $b){ return 0;}
    elsif ($a gt $b) { return 1;}
}
##############################################################################
#  scanFile: process each file in the directory
#
##############################################################################
sub scanDir {
    local($dn)=@_;
    opendir(DIR, $dn) || die "no dir $dn";
    print OUT  "<table><tr>";
    $t=0;

    foreach $fn (sort  $sort readdir(DIR) ) {
	if ($fn =~ /jpg\b|gif\b|GIF\b|JPG\b/) {
	    if (!($fn=~ /^thumb_/)) {
		print "$fn\t";
		&processFile($fn);
		$t++;
		if ($t==$colon) {print "\n"; $t=0;print OUT  "</tr>\n<tr>  ";}
	    }
	}
	
    }
    print OUT  "</tr></table>";
    closedir(DIR);
    system("chmod 755 *.jpg");
    system("chmod 755 $out");

}

sub processFile {
    local($fn)=@_;
    $tfn="thumb_".$fn;
    $csize=$width."x".$height ;
    system("convert -size $csize   $fn $tfn");
    print OUT  "<td><a href=\"$fn\" $target ><IMG src=$tfn ><br> $fn </td> "; 

}

#
##############################################################################
#
# Results
#
##############################################################################

# Returns the magic line which tells WWW that this is an HTML document
sub PrintHeader {
  print "Content-type: text/html\n\n";

}
sub printFooter {
  print OUT "<br>$signature </body></html>\n";
}

sub closeTable {
print OUT "</table>";
}

sub openHtml {
print OUT <<EOF;
<HTML>
<HEAD>
<title>Image List</title>
</HEAD>
<body bgcolor=$bgcolor background=$background>
<h1> Munib Emre Sevilgen</h1>
<font face=helvetica>
EOF
}
sub closeHtml {
&printFooter;
print OUT <<EOF;
</body>
</HTML>
EOF
}


