#!/usr/local/bin/perl

$len= $ENV{CONTENT_LENGTH};
read(STDIN, $query, $len);

$vals{image}= "http://...";
$vals{haiku}= "Haikus have 3 lines:\nFive syllables, then seven,\nthen five once again.";

@parts= split(/&/, $query);

foreach $part (@parts) {
    ($name, $val)= split(/=/, $part);
    $val=~ tr/+/ /;
    $val=~ s/%(..)/pack("H2", $1)/eg;
    $vals{$name}= $val;
}

$fail= "";

$name= $vals{name};
$email= $vals{email};
$commit= $vals{commitment};
$pic= $vals{image};
$haiku= $vals{haiku};
$haiku=~ tr/\r/\n/;
$haiku=~ s!\n+!///!g;
$submitted= $vals{signup};

$fail= "You haven't noted how many events you'll attend\n" if ($commit eq "");
$fail.= "You haven't entered your email address\n" if ($email eq "");
$fail.= "You haven't entered your name\n" if ($name eq "");

$pic="" if ($pic=~/\.\.\./);

open(IN, "people");
while(<IN>) {
    ($rname, $remail, $reffort, $rteam, $rimg, $rhaiku)= split(/\#\#\#/);
    $fullness{$rteam}+= ($reffort+1);
    $fail.= "You have already been signed up to the $rteam team\n" if ($remail eq $email);
}

close IN;

if ($fail ne "") {
    if ($submitted ne "") {
	$fail=~ s/\n/<br>/g;
	$oops= "<font color=#800000><dl><dt><b>Oops!</b><dd>$fail</dl></font>";
    }
    print <<EOF;
Content-type: text/html

<html>
<head>
<title>Olympics 2000 signup</title>
</head>
<body bgcolor=#ffffff>
<img src=images/titlecolor.jpg>
<font face="Comic Sans MS">

<h1>Sign up for a campaign!</h1>

$oops

<form method=POST action=assign.cgi>
<table border=0 cellpadding=4>
  <tr>
    <td align=right>Your name:</td>
    <td><input type=text name="name" value="$vals{name}"></td>
  </tr>
  <tr>
    <td align=right>Full e-mail address:</td>
    <td><input type=text name="email" value="$vals{email}"></td>
  </tr>
  <tr>
    <td align=right>How many events<br>do you think you will attend?<br>(Be
    honest)</td>
    <td>
      <input type=radio name=commitment value="0">Very few<br>
      <input type=radio name=commitment value="1">About 1/4<br>
      <input type=radio name=commitment value="2">About half<br>
      <input type=radio name=commitment value="3">About 3/4<br>
      <input type=radio name=commitment value="4">All of them!
    </td>
  </tr>
  <tr>
    <td align=right>URL of a picture of you<br>(optional)</td>
    <td><input type=text name="image" size=60 value="$vals{image}"></td>
  </tr>
  <tr>
    <td align=right>Enter a Haiku<br>
        about this year's election<br>
	(This is optional)</td>
    <td><textarea rows=3 cols=40 wrap=on name=haiku>$vals{haiku}</textarea>
    </td>
  </tr>
  <tr>
    <td colspan=2 align=center><input type=submit name=signup
    value="Sign me up!"></td>
  </tr>
</table>
</form>

</font>
</body>
</html>
EOF
    ;
    exit(0);
}

# find the team with the lowest commitment

$mincommit= 999999999;
foreach $cteam (keys %fullness) {
  if ($fullness{$cteam} < $mincommit) {
    $mincommit= $fullness{$cteam};
    $minteam= $cteam;
  }
}

$myline= join("###", ($name, $email, $commit, $minteam, $pic, $haiku));

($mailalias= $minteam)=~ tr/A-Z/a-z/;

#if (open (MAIL, ">>/com/mailer/olympics2000/$mailalias")) {
#    print MAIL "$email\n";
#    close MAIL;
#}

#open (OUT2, ">>/com/web/docs/people/wessler/olympics/people");
#print OUT2 "$myline\n";
#close OUT2;

#open (OUT, ">>people");
#print OUT "$myline\n";
#close OUT;

#print "Location: team.cgi?name=$minteam&newjoin=1\n\n";

print "Location: index.cgi\n\n";
