#!/usr/bin/perl
use strict;

my $wsh=16;
my $wsv=9;
my $wsd=sqrt($wsh*$wsh+$wsv*$wsv);
my $fsh=4;
my $fsv=3;
my $fsd=sqrt($fsh*$fsh+$fsv*$fsv);
my (@ws,@fs);

for (my $i=12;$i<=66;$i++) {
  my $h = $i*$fsh/$fsd;
  my $v = $i*$fsv/$fsd;
  $fs[$i-12]=([$i,$h,$v,$h*$v]);
}
for (my $i=15;$i<=80;$i++) {
  my $h = $i*$wsh/$wsd;
  my $v = $i*$wsv/$wsd;
  $ws[$i-15]=([$i,$h,$v,$h*$v]);
}

print("<html>");
print("<style>
  table { border: 1px solid black; }
  td { font-family: arial,helvetica,sans serif; text-align:center; color: black; padding: 2px 5px;}
  td.ha { background-color: black; color: white; }
  td.hb { background-color: #AAA; }
  td.even { background-color: #CCF; }
  td.odd { background-color: #AAD; }
  td.leven { background-color: #CCF; text-align: left;}
  td.lodd { background-color: #AAD; text-align: left;}
  td.reven { background-color: #CCF; text-align: right;}
  td.rodd { background-color: #AAD; text-align: right;}
</style>\n");
printf("<table cols=\"4\">\n");
printf("<tr><td class=\"ha\" colspan=\"4\">Vertical Size TV Comparison Guide</td></tr>\n");
printf("<tr><td class=\"ha\" colspan=\"2\">4:3 Aspect Ratio</td><td class=\"ha\" colspan=\"2\">16:9 Aspect Ratio</td></tr>\n");
printf("<tr><td class=\"hb\">Diagonal Size</td><td class=\"hb\">Vertical Size</td><td class=\"hb\">Vertical Size</td><td class=\"hb\">Diagonal Size</td></tr>\n");
my $c = "odd";
for (my $i=1;$i<$#fs; $i++) {
  my $rows=0;
  my @foo=();
  my $min=($fs[$i][2]+$fs[$i - 1][2])/2;
  my $max=($fs[$i][2]+$fs[$i + 1][2])/2;
  for (my $k=0;$k<=$#ws;$k++) {
    if (($ws[$k][2] >= $min) && ($ws[$k][2] < $max)) {
      push(@foo,$k);
      $rows++;
    }
  }
  printf("<tr><td class=\"l${c}\" %s> %2d in. </td><td class=\"$c\" %s> %2.1f in. </td>",($rows ? "rowspan=$rows" : ""),$fs[$i][0],($rows ? "rowspan=$rows" : ""),$fs[$i][2]);
  if ($rows) {
    for (my $k=0; $k<=$#foo; $k++) {
      if ($k) { printf("<tr>"); }
      printf("<td class=\"$c\"> %2.2f in. </td><td class=\"r${c}\"> %2d in. </td></tr>\n",$ws[$foo[$k]][2],$ws[$foo[$k]][0]);
    }
  } else {
    printf("<td class=\"$c\">&nbsp;</td><td> class=\"$c\"&nbsp;</td></tr>\n");
  }
  if ($c eq "odd") { $c = "even"; } else { $c = "odd"; }
}
printf("</table>\n");
printf("</html>\n");