#!/usr/local/bin/perl5

use POSIX qw(strftime);

# this file is more or less just mike wessler's file (index.cgi) from
# last year with the format of the html changed.

@teams= ("Ministry of Truth", "Ministry of Love", 
	 "Ministry of Peace", "Ministry of Plenty");


%color = ( "truth", "#CCCCCC", 
	   "love", "red", 
	   "peace", "white", 
	   "plenty", "#666666" );

# 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", 0, 0, 0, $dy, $mo, $yr, ($dy + $mo*31 + 1)%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);
			$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= "";
			}
			foreach $team (@steams) {
			    $curcolor = $color{$team};
			    $line1.= "<tr><td bgcolor=$curcolor><nobr><font size=-1>$placename: </font></nobr>";
			    $line1.= "<nobr><font size=-1>$team</font></nobr></td></tr>";
			}
		    }
		    if (-e "$event/results.html") {
			$reslink= "<a href=\"$event/results.html\"><B>Report</B></a>";
		    } else {
			$reslink= "<B>Report</B>";
		    }
		    $finish{$dir}= "<TABLE border=0><TR><TD colspan=2 align=center>$reslink</td></tr><tr>$line1</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";
	} elsif (-e "$event/image.gif") {
	    $pic{$dir}= "$event/image.gif";
	} else {
	    $pic{$dir}= "images/nopic.gif";
	}
    }
}

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>
<TITLE>
Schedule the 1984 AI Olympics
</TITLE>

<STYLE type="text/css">
<!--
A{text-decoration:none}
A:hover{color:#990033}
-->
</STYLE>

<META HTTP-EQUIV="Expires" CONTENT="now">

</HEAD>

<BODY bgcolor=yellow vlink=black link=black alink=black>

<CENTER>
<A href=main.html><IMG src=eyes/logoEye.gif border=0></IMG></A>
<H1>Schedule</H1>

<H3>January 18 - January 26, 2002</H3>
</CENTER>

<BR>

EOF
;

print <<EOF

<TABLE cellspacing=5 border=1 align=center width=800
bordercolor=black bordercolordark=black bordercolorlight=black>
<tr>
<td align=center><b>Date/Time</b></td>
<td align=center><b>Theme</b></td>
<td align=center><b>Location</b></td>
<td align=center><b>Contact</b></td>
<td align=center><b>Results</b></td>



EOF
    ;

# run thru events (in order)

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

    if ($longdate{$event} ne $curdate) {
	$curdate= $longdate{$event};
    }

    print("  <tr valign=middle>\n");
    print("<td align=center>$curdate <br>$time{$event}</td>");
    print("    <td align=center>$openurl{$event}<img src=$pic{$event} width=150 border=0>$closeurl{$event}<br>\n");
    print("      <b> $openurl{$event}$name{$event}$closeurl{$event}</b> ");
    print("\n      </td>\n");
    print("      <td align=center>$place{$event}</td>");
    print("<td align=center>$commish{$event}</td>") if (defined($commish{$event}));
    print("      <td align=center>$finish{$event}\n") if (defined($finish{$event}));
    print("      </font>\n    </td>\n  </tr>");

}

print <<EOF
</table>



</center>

<BR><BR>

<CENTER>
[<A href=main.html>Back</A>]
</CENTER>

</body>
</html>
EOF
    ;
