#!/usr/bin/perl

use strict;
use CGI qw(:standard);
if (param('view')){
    my $file=param('file');
    print redirect($file);
    exit;
}

if (param('download')){
    my $file=param('file');    
    print header(-type=>"application/octet-stream",-attachment=>"$file");
    
    open(IN,$file)||die("Can't open $file");
    foreach (<IN>){
 	print;
    }
    close(IN);
    exit;
}


opendir(IN,".");
my @files=grep {!/^\./} readdir(IN);
closedir(IN);
my @show=qw(characterTable conjugacyClasses initData Report tests);

my @reps= grep {/^[QZ]+/} @files;
@reps=sort mysort @reps;

my %repHash;
foreach my $rep (@reps){
    my @stats=stat "$rep";
    my $size=$stats[7];
    if ($size > 1000000){
	$size = $size/1000000;
	$size =~ s/(\...).*/\1/;
	$size= "$size"." Mb";
    }elsif($size > 1000){
	$size = $size/1000;
	$size =~ s/(\...).*/\1/;
	$size= "$size"." Kb";
    }else{
	$size="$size"." bytes";
    }
    $repHash{$rep}="$rep ($size)";
}
print CGI::header, CGI::start_html;
my $type=`pwd`;
my @row=split '/', $type;
$type=$row[-1];
print start_form,
CGI::center(CGI::h2("Models of representations of the Weyl group of  type ".$type)),
"file (size)",br,
CGI::popup_menu(-name=>'file',
		 -values=>\@reps,
		 -labels=>\%repHash),
submit('view'),
submit('download'),
end_form;

foreach my $file (@show){
    if (-e $file){
	print "<P><A HREF=$file>$file</A>\n";
    }
}
print end_html;

sub mysort{
    my $letter1=$a;
    my $letter2=$b;
    my $number1=$a;
    my $number2=$b;

    
    $letter1 =~ s/^(.).*/\1/g;
    $letter2 =~ s/^(.).*/\1/g;
    $number1 =~ s/[A-Za-z]//g;
    $number2 =~ s/[A-Za-z]//g;
    print "$number1:$number2\n";
    ($letter1 cmp $letter2)|| ($number1 <=> $number2)
    }
