#!/usr/local/bin/perl5

use POSIX qw(strftime);

@teams= ("Cannons", "Donalds", "Bodies", "Sounds");

$color{Cannons}= "#d0f0ff";
$color{Donalds}= "#ffffc0";
$color{Bodies}= "#f0f0f0";
$color{Sounds}= "#c0ffe0";

# find events

@events= <events/*>;

foreach $event (@events) {
    ($dir= $event)=~ s!^.*/([^/]*)!$1!;
    $dir{$dir}= $event;
    $place{$dir}= "Place tbd";
    $time{$dir}= "Time tbd";
    if (open(IN, "$event/info")) {
	while (<IN>) {
	    if (/^([^:]*):(.*)/) {
		($type, $value)= ($1, $2);
		if ($type eq "NAME") {
		    $name{$dir}= $value;
		} elsif ($type eq "DATE") {
		    $date{$dir}= $value;
		    $value=~ m!(\d+)/(\d+)/(\d+)!;
		    ($dy, $mo, $yr)= ($2, $1, $3);
		    $mo--;
		    $yr-=1900;
		    $dnum= $yr*10000+$mo*100+$dy;
		    $dnum+= $offset;
		    $offset+= 0.00001;
		    $longdate{$dir}= strftime("%A, %B %d, %Y", 0, 0, 0, $dy, $mo, $yr, ($dy-16)%7);
		    $sdate{$dir}= $dnum;
		} elsif ($type eq "TIME") {
		    $time{$dir}= $value;
		    if ($value=~ /(\d+)(:(\d+))?\s*([aApPmM]+)/) {
			$ampm= $4;
			$amt= $1/100+$3/10000;
			if ($ampm=~ /pm/i) {
			    $amt+= 0.12;
			}
			$dtime{$dir}= $amt;
		    }
		} elsif ($type eq "PLACE") {
		    $place{$dir}= $value;
		} elsif ($type eq "COMMISH") {
		    if ($value=~ s/<?([^ ]+\@[^ >]+)>?//) {
			$em= $1;
			$value=~ s/^\s+//;
			$value=~ s/\s+$//;
			$commish{$dir}= "<a href=\"mailto:$em\">$value</a>";
		    } else {
			$value=~ s/^\s+//;
			$value=~ s/\s+$//;
			$commish{$dir}= $value;
		    }
		} elsif ($type eq "PHOTO") {
		    $photo{$dir}.= "<a href=\"$value\"><img src=images/photo.jpg width=26 height=17 border=0 align=middle></a>";
		} elsif ($type eq "SCORE") {
		    $value=~ s/^\s+//;
		    $value=~ s/\s+$//;
		    @places= split(/\s*\/\s*/, $value);
		    @points= (5, 3, 2, 1);
		    @names= ("First", "Second", "Third", "Fourth");
		    $line1= "";
		    $line2= "";
		    foreach $place (@places) {
			@steams= split(/\s+/, $place);
			$score= 0;
			$placename= shift(@names);
			for ($i=0; $i<=$#steams; $i++) {
			    $score+= (shift @points)/($#steams+1);
			    shift @names if ($i>0);
			}
			if ($i!= 1) {
			    $colspan= " colspan=$i";
			} else {
			    $colspan= "";
			}
			$line1.= "<td align=center$colspan><nobr><font size=-1>$placename: $score ".
			         ($score==1 ? "point":"points").
				 "</font></nobr></td>";
			foreach $team (@steams) {
			    $line2.= "<td align=center bgcolor=$color{$team}><nobr><font size=-1>$team</font></nobr></td>";
			    $score{$team}+= $score;
			    $scorechart{$team}.="<img src=\"images/arrow.gif\" width=8 height=4><br>";
			    if ($score>1) {
				$scorechart{$team}.="<img src=\"images/blank.gif\" width=8 height=".($score*4-4)."><br>";
			    }
			}
		    }
		    if (-e "$event/results.html") {
			$reslink= "<a href=\"$event/results.html\">Results</a>";
		    } else {
			$reslink= "Results";
		    }
		    $finish{$dir}= "<table border=1><tr><td rowspan=2>$reslink</td>$line1</tr><tr>$line2</tr></table>";
		}
	    }
	}
	close(IN);
	if (-e "$event/index.html") {
	    $openurl{$dir}= "<a href=$event/index.html>";
	    $closeurl{$dir}= "</a>";
	}
	if (-e "$event/image.jpg") {
	    $pic{$dir}= "$event/image.jpg";
	} else {
	    $pic{$dir}= "images/nopic.jpg";
	}
    }
}

foreach $dir (keys %sdate) {
    $dnum= $sdate{$dir};
    $dnum+= $dtime{$dir} if (defined($dtime{$dir}));
    $sortdate{$dnum}= $dir;
}

if (open(EX, "extras")) {
    while (<EX>) {
	if (m!(\d+)/(\d+)/(\d+):([^<]*)(<([^>]*)>)?!) {
	    ($mo, $dy, $yr, $nm, $url)= ($1, $2, $3, $4, $6);
	    $mo--;
	    $yr-=1900;
	    $dnum= $yr*10000+$mo*100+$dy;
	    $dnum+= 0.9+$offset;
	    $offset+= 0.00001;
	    $sortdate{$dnum}= "-$nm";
	    $url{$nm}= $url;
	} else {
	    split(/,/, $_);
	    foreach $part (@_) {
		if ($part=~/([A-Za-z]+)[^0-9\.]*([0-9\.]+)/) {
		    $score{$1}+= $2;
		    $scorechart{$1}.="<img src=\"images/arrow.gif\" width=8 height=4><br>";
		    if ($2>1) {
			$scorechart{$1}.="<img src=\"images/blank.gif\" width=8 height=".($2*4-4)."><br>";
		    }
		    $finish{"-$nm"}.= "<td bgcolor=$color{$1}>$1: $2</td>";
		}
	    }
	}
    }
    close EX;
}

print <<EOF
Content-type: text/html
Expires: now

<html>
<head>
<META HTTP-EQUIV="Expires" CONTENT="now">
<title>Olympics2000</title>
</head>
<body bgcolor=#ffffff>
<table border=0>
  <tr>
    <td colspan=4 align=center>
      <font face="Comic Sans MS" size=+1>
      The AI Lab Proudly Presents:<br>
      <img src=images/titlecolor.jpg width=372 height=208>
      </font>
    </td>
  </tr>
  <tr valign=bottom>
EOF
;
foreach $team (@teams) {
    $height= $score{$team}*4;
    print <<EOF;
    <td align=center>
      <font face="Comic Sans MS" size=+1>$score{$team}</font><br>
      <a href=team.cgi?name=$team><img src=images/$team.gif width=122 height=171 border=0></a><br>
      <img src=images/podcolt.gif width=122 height=$height><br>
      <img src=images/podbot.gif width=122 height=5><br>
    </td>
EOF
    ;
}
# ADD THIS (AND CHANGE COLSPAN FOR TITLE TO 8) TO DISPLAY ARROWS:
# <td>$scorechart{$team}<img src="images/arrow.gif" width=8 height=4><br><img src="images/blank.gif" width=16 height=8></td>

print <<EOF
  </tr>
</table>
<hr color=#000000>
<font face="Comic Sans MS" size=+1>
<p>
<a href=assign.cgi>Volunteer for the Campaign!</a>
<hr color=#000000 width=400 size=1 align=left>
<p>
Event Schedule
</font>
<table border=0 cellspacing=10>
EOF
    ;

# run thru events (in order)

$curdate= "";
foreach $date (sort keys %sortdate) {
    $event= $sortdate{$date};

    if ($event=~ /^-(.*)/) {
	$title= $1;
	print("  <tr><td></td>\n");
	print("    <td bgcolor=#ffd0d0 align=center>\n");
	print("      <font face=\"Comic Sans MS\"><b>Campaign Contribution:</b><br>\n      ");
	print("<a href=\"$url{$title}\">") if (defined($url{$title}));
	print("$title");
	print("</a>") if (defined($url{$title}));
	print("</font></td>");
	print("    <td>");
	print("<table cellpadding=3 border=1><tr><td>Donations:</td>$finish{$event}</tr></table>\n") if (defined($finish{$event}));
	print("</td>");
	print("  </tr>\n");
	next;
    }

    if ($longdate{$event} ne $curdate) {
	$curdate= $longdate{$event};
	print("  <tr>\n");
	print("    <td colspan=2 bgcolor=#c0c0ff>\n");
	print("      <font face=\"Comic Sans MS\">\n");
	print("      $longdate{$event}</font></td>\n");
	print("    <td></td>");
	print("  </tr>");
    }
	

    print("  <tr valign=middle>\n");
    print("    <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n");
    print("    <td>$openurl{$event}<img src=$pic{$event} width=160 height=100 border=0>$closeurl{$event}</td>\n");
    print("    <td>\n");
    print("      <font face=\"Comic Sans MS\">\n");
    print("      <b>$openurl{$event}$name{$event}$closeurl{$event}</b> ");
    print("<font size=-1>( $commish{$event} )</font>") if (defined($commish{$event}));
    print($photo{$event}) if defined($photo{$event});
    print("\n      <br>\n");
    print("      $place{$event}, $time{$event}\n");
    print("      $finish{$event}\n") if (defined($finish{$event}));
    print("      </font>\n    </td>\n  </tr>");

}


print <<EOF;
</table>
<hr color=#000000>
<table border=0 cellspacing=20>
<tr><td><img src=images/AEC.jpg></td>
<td>Your AI Olympics Election Commision Chairman: <a href="mailto:emiller\@ai.mit.edu">Erik Miller</a><br><br>
Event commisioners: info on how to build your web pages is <a href=eventhowto.html>here</a>.
</td>
</tr></table>
<p>
<blockquote>
<a href=huh.html>Confused?</a>
</blockquote>
</body>
</html>
EOF
    ;
