#!/usr/bin/perl

use CGI;
$in=new CGI;


print "Content-type:text/html\n\n";
$class = $in->param('class');
$name = $in->param('name') if $in->param('name');
$email = $in->param('email') if $in->param('email');
$notes = $in->param('notes') if $in->param('notes');
$major = $in->param('major') if $in->param('major');
$year = $in->param('year') if $in->param('year');
$status = $in->param('status') if $in->param('status');

if ($in->param('init')) {
    buildform($class,"","");
    exit();
}

if (!$name) {
    buildform($class,"Need Name",
	      "Please enter your name.",
	      $name,$email,$notes);
    exit();
}



if (!($email =~ /[@]/)) {
    buildform($class,"Need Email",
	      "I cannot process the form without an email address.",
	      $name,$email,$notes);
    exit();
}


if (!$major) {
    buildform($class,"Need Major","Please specify your major.",
	      	      $name,$email,$notes);
    exit();
}

if (!$year) {
    buildform($class,"Need Year",
	      "Please specify your student status.",
	      $name,$email,$notes);

    exit();
}

if (!$status) {
    buildform($class,"Need status",
	      "Please specify your probable registration status.",
	      $name,$email,$notes);
    exit();
}
    

if ($major=~/O/) {
    $major .= "/" . $in->param('othermajor');
}

if ($in->param('6041')) {	       
    $prereq = "1";
}
else {
    $prereq = "0";
}
if ($in->param('6046')) {	       
    $prereq .= "1";
}
else {
    $prereq .= "0";
}
if ($in->param('6854')) {
    $prereq .= "1";
}
else {
    $prereq .= "0";
}

$date = `date`;
open(DATAFILE, ">>/afs/csail.mit.edu/proj/courses/$class/current/Classlist/classlist");
flock(DATAFILE, 2);
print DATAFILE <<RECORD_ITEM;
---------
Name:   $name
Email:  $email
Major:  $major 
Year:   $year
Status: $status 
Prereq: $prereq
Notes:  $notes
RECORD_ITEM
flock(DATAFILE, 8);
close DATAFILE;

print <<WEB_PAGE;
    <html><head><title>Registered</title></head><body>
    <h1>Done</h1>

    You are now registered.  

    </body> </html>
WEB_PAGE





sub buildform {

local ($class,$head,$message,$name,$email,$note) = @_;
$classname=$class;
$classname=~s/^6/6\./;

$name= "VALUE=" . '"' . $name . '"' if $name;
$email="VALUE=" . '"' . $email . '"' if $email;

    print <<WHINE;
    <html><head><title>$head</title></head><body>
$message


<H1>$classname Registration Form</H1>
<FORM METHOD=POST
        ACTION=
"classreg.cgi">

<INPUT NAME="class" TYPE=hidden value="$class">

<P><B><FONT SIZE=+1>Name:
&nbsp;<INPUT NAME="name" TYPE=text SIZE="20" $name></FONT></B>

<P><B><FONT SIZE=+1>E-mail address:
&nbsp;<INPUT NAME="email" TYPE=text SIZE="30" $email></FONT></B>

<P><B><FONT SIZE=+1>Major/Department:</FONT></B>
<UL>
<LI> <INPUT name=major type=radio value=CS>      Computer Science (6)
<LI> <INPUT name=major type=radio value=Math>    Math (18)
<LI> <INPUT name=major type=radio value=MathCS>  Both (6+18)
<LI> <INPUT name=major type=radio value=O>       Other 
     (specify):<INPUT NAME="othermajor" TYPE=text SIZE="20">
</UL>

<P><B><FONT SIZE=+1>Year:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT name=year type=radio value=U></FONT></B>&nbsp;&nbsp;
Undergrad&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT name=year type=radio value=M>&nbsp;&nbsp;&nbsp;
MEng/terminal MS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT name=year type=radio value=G>&nbsp;&nbsp;
PhD

<P><B><FONT SIZE=+1>Probable registration status:&nbsp;&nbsp;&nbsp;&nbsp;</FONT></B>&nbsp;&nbsp;<INPUT name=status type=radio value=Credit>&nbsp;&nbsp;
Credit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT name=status type=radio value=PF>&nbsp;&nbsp;
P/F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT name=status type=radio value=Listener>&nbsp;&nbsp;
Listener

<P><B><FONT SIZE=+1>Prerequisites taken (or equivalents):&nbsp;&nbsp;&nbsp;&nbsp;</FONT></B>&nbsp;&nbsp;<INPUT name=6041 type=checkbox value=yes>6.041/2=18.062/18.310/18.313&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT name=6046 type=checkbox value=yes>6.046=18.410&nbsp;&nbsp;
WHINE

if (!($class=~/6.854/)) {
   print "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT
   name=6.854 type=checkbox value=yes>6.854" ;
}

print <<WHINE;
<P>Any notes?&nbsp;<TEXTAREA NAME="notes" ROWS=2
COLS=40>$note</TEXTAREA><INPUT TYPE=submit
    value="Submit"><INPUT TYPE=reset></FORM> 


    </body></html>
WHINE

}
