#!/usr/bin/perl

require "../pagelib.pl";
header();
head();

$setlist = "/home/dave/lego/bynumber_with_mod_themes.txt";
#$setlist = "/home/dave/lego/bynumber.txt";
$ratings = "/home/dave/lego/perl/setratings.txt";

$ratetheme = '';
$ratedonly = 0;
$implied = 0;
$slide = 0;

if($params{theme}) { $ratetheme = $params{theme}; }
if($params{ratedonly}) { $ratedonly = 1; }
if($params{implied}) { $implied = 1; }
if($params{slide}) { $slide = 1; }

print "<form>\n";
print "<table width=100\%><tr><td>\n";
if($params{help}) { $help = " (Which theme or subtheme should be included in ratings? Sorry, no multiples or excludes available just yet)"; }
print "Theme$help: <input type=text name=theme value=\"$params{theme}\"><br><br>\n";
if($params{help}) { $help = " (Rate years according to ONLY sets that have been rated)"; }
print "Count rated sets only$help: <input type=checkbox name=ratedonly value=1".(($ratedonly) ? " checked" : '')."><br><br>\n";
if($params{help}) { $help = " (Some sets' years are marked as '1965+' or '-1988' or '1974?' Check here to include these sets in the year rankings.)"; }
print "Count sets with implied years$help: <input type=checkbox name=implied value=1".(($implied) ? " checked" : '')."><br><br>\n";
if($params{help}) { $help = " (By default, this tool only rates years according to what <b>new</b> sets came out that year, even though older sets were still available. Check here to count each set for a 3-year span [also helps smooth graph lines])"; }
print "Slide approximated set availability$help: <input type=checkbox name=slide value=1".(($slide) ? " checked" : '')."><br><br>\n";
print "</td><td align=left nowrap><a href=\"$ENV{SCRIPT_NAME}?theme=$params{theme}&ratedonly=$params{ratedonly}&implied=$params{implied}&slide=$params{slide}&help=";
if($params{help}) { print "0\">Oh, I get it. Cute.</a>\n"; }
else { print "1\">Huh? What do these options mean?</a>\n"; }
print "</td></tr><tr><td align=center>";
print "<input type=submit value=\"Get Year Rankings\">\n";
print "</td></tr>\n";
print "</table>\n";
print "</form>\n";


if(!open(SETS,$setlist)) { print "Couldn't open $setlist!"; exit(1); }
while(<SETS>) {
    chomp;
    ($number,$name,$theme,$year,$pcs,$figs,$pic,$msrp,$id,$otheme) = split /\t/;
    $id =~ s/\W+/\_/g;
    if($implied) { $year =~ s/\D//g; }
    elsif($year =~ /\D/) { $year = ''; }
    $sets{$id}{number} = $number;
    $sets{$id}{name} = $name;
    $sets{$id}{theme} = $theme;
    $sets{$id}{year} = $year;
    $sets{$id}{pieces} = $pcs;
    $sets{$id}{figs} = $figs;
    $sets{$id}{pic} = $pic;
    $sets{$id}{msrp} = $msrp;
}
close SETS;
if(!open(RATINGS,$ratings)) { print "Cant open ratings $ratings!"; exit(1); }
while(<RATINGS>) {
    s/,\s*$//;
    my($id,$ratstring) = split /:/;
    if(!defined $sets{$id}) {
	$id .= "_1";
    }
    next if($ratetheme && $sets{$id}{theme} !~ /\Q$ratetheme\E/i);
    @ratings = split /,/,$ratstring;
    $rating = 50;
    $rcount = 1;
    for($i=0;$i<=100;$i+=10) {
	$rcount += $ratings[($i/10)];
	$rating += $ratings[($i/10)]*$i;
    }
    $rating /= $rcount;
    $sets{$id}{rating} = $rating;
    if(!$ratedonly || $rcount > 1) {
	$years{$sets{$id}{year}}{count}++;
	$years{$sets{$id}{year}}{rating}+=$rating;
	if($params{year} eq $sets{$id}{year}) { push @countids,$id; }
	if($slide && $sets{$id}{year} =~ /^(\d+)$/) {
	    my($y) = $1 + 1;
	    $years{$y}{count}++;
	    $years{$y}{rating}+=$rating;
	    if($params{year} eq $y) { push @countids,$id; }
	    $y++;
	    $years{$y}{count}++;
	    $years{$y}{rating}+=$rating;
	    if($params{year} eq $y) { push @countids,$id; }
	}
    }
}
close RATINGS;
print "<table width=100\% border=1>\n";

$thisyear = (localtime)[5] + 1900;
$cellcolor = "#C0C0FF";
foreach $year (sort (keys %years)) {
    #add a 50 to make sure we're not biased?
    $years{$year}{rating}+=50;
    $years{$year}{count}++;
    #print "$year,".($years{$year}{rating}/$years{$year}{count}).",$years{$year}{count},$years{$year}{rating}\n";
    if($year =~ /\d/ && $year <= $thisyear) {
	print "<tr>\n";
	print "<td>$year</td>\n";
	print "<td colspan=2>".($years{$year}{rating}/$years{$year}{count})."</td>\n";
	print "<td><a href=\"$ENV{SCRIPT_NAME}?theme=$params{theme}&ratedonly=$params{ratedonly}&implied=$params{implied}&slide=$params{slide}&year=$year\">".($years{$year}{count}-1)."</a></td>\n";
	print "</tr>\n";
	
	if($params{year} eq $year) {
	    foreach $id (@countids) {
		print "<tr>\n";
		print "<td bgcolor=$cellcolor><a href=\"http://guide.lugnet.com/set/$id\">$id - $sets{$id}{name}</a></td>\n";
		print "<td bgcolor=$cellcolor>$sets{$id}{rating}</td>\n";
		print "<td bgcolor=$cellcolor>$sets{$id}{theme}</td>\n";
		print "<td bgcolor=$cellcolor>$sets{$id}{year}</td>\n";
		print "</tr>\n";
	    }
	}
    }
}
print "</table>\n";
foot();
