#!/usr/bin/perl -w
use CGI ':standard';
$CGI::POST_MAX=8192;                                    # max 8K posts
$CGI::DISABLE_UPLOADS = 1;  
use Mail::Sendmail;
#use CGI::Carp qw(fatalsToBrowser warningsToBrowser);    #debug
#use Data::Dumper;

my $top = "top.html";
my $bottom = "bottom.html";
my $aidamail = 'aida@aida-austria.at';

my $send = param('send');

my $ok = "";
my $site = new CGI;


print $site->header;
open (TOP, "$top");
while (<TOP>) { print $_ }
close TOP;

$params = $site->Vars;

if ($send) { 
  $aw = CheckData ($params) ;
}

if ($aw == 1) { 
  SendMail ($params);
  PrintBye (); 
}

else {
  print '<br />';
  print "<b><font color\=\"red\">$aw</font></b>";
  PrintForm ();
}

open (BOTTOM, "$bottom");
while (<BOTTOM>) { print $_ }
close BOTTOM;

sub PrintForm {

  print '<h1>Mitgliedschaft</h1>';
  print '<p> Der Mitgliedsbeitrag gilt jeweils f&uuml;r ein Kalenderjahr. Wer in der zweiten Jahresh&auml;lfte beitritt (ab Juli), zahlt im ersten Jahr nur die H&auml;lfte. ';
  print 'Der Standard Mitgliedsbeitrag beträgt EUR 40,- / Jahr. Es gibt Erm&auml;&szlig;igungen f&uuml;r Studierende und Gruppen.* (Tauchclub, etc.)</p>'."\n";

  print '<br /><br />';
  print '<div id="form">';
  print '<table>'."\n";
  print $site->start_form;

  print '<tr><td>';
  print "Name, Titel: ";
  print '</td><td>';
  print $site->textfield(-name=>'Name',
                         -size=>'35',
                         -default=>$firstname,
               	         -value=>$firstname,);
  
  print '</td></tr>';
  print '<tr><td><br /></td></tr>';

  print '<tr><td>';
  print "Adresse: ";
  print '</td><td>';
  print $site->textarea(-name=>'Adresse',
                        -rows=>'4',
                        -columns=>'30'
                        -default=>$street,
                        -value=>$street,);
  print '</td></tr>';

  print '<tr><td><br /></td></tr>';


  print '<tr><td>';
  print "E-Mail Adresse: ";
  print '</td><td>';
  print $site->textfield(-name=>'Mail',
                         -size=>'35',
                         -default=>$mail,
                         -value=>$mail,);
  print '</td></tr>';
  print '<tr><td><br /></td></tr>';

  print '<tr><td>';
  print "Telefonnummer:&nbsp;";
  print '</td><td>';
  print $site->textfield(-name=>'Telefon',
                         -size=>'35',
                         -default=>$tel,
                         -value=>$tel,);
  print '</td></tr>';
  print '<tr><td><br /></td></tr>';


  @days = ();
  @months = ();
  @years = ();
  for(my $i = 1; $i <= 31; $i++) { 
    push (@days, $i);
  }
  for(my $i = 1; $i <= 12; $i++) { push (@months, $i)}
  for(my $i = 1930; $i <= 2000; $i++) { push (@years, $i)}

  print '<tr><td>';
  print "Geburtsdatum: ";
  print '</td><td>';

  print $site->scrolling_list(-name=>'day',
                              -values=>\@days,
                              -size=>1);
  print "&nbsp;";
  print $site->scrolling_list(-name=>'month',
                              -values=>\@months,
                              -size=>1);
  print "&nbsp;";
  print $site->scrolling_list(-name=>'year',
                              -values=>\@years,
                              -size=>1,
                              -default=>1980);
  print '&nbsp;(Tag, Monat, Jahr)';

  print '</td></tr>';

  print '</table></div>'."\n";

  print '<br /><br />'."\n";

  print '<hr />';

  print "<b>Erm&auml;&szlig;igungen* </b><br /><br />";

  print $site->checkbox(-name=>'StudentIn',
                             -checked=>0,
                             -value=>'ON',
                             -label=>'Ich bin StudentIn');
  print '/Sch&uuml;lerIn (und unter 27)';

  print '<br /><br />';

  print $site->checkbox(-name=>'Gruppenmitglied',
                             -checked=>0,
                             -value=>'ON',
                             -label=>'Ich bin Mitglied bei: ');
  print '&nbsp;';
  print $site->textfield(-name=>'Gruppe',
                         -size=>'30',
                         -value=>$group,);

  print '<br /><br />';

  print $site->checkbox(-name=>'Kurs',
                             -checked=>0,
                             -value=>'ON',
                             -label=>'Ich habe heuer einen Kurs gemacht bei: ');
  print '&nbsp;';
  print $site->textfield(-name=>'Instructor',
                         -size=>'30',
                         -value=>$group,);

  print '<br /><br />';



  print '<hr />';
  print $site->checkbox(-name=>'Statuten',
                             -checked=>0,
                             -value=>'ON',
                             -label=>'Ich akzeptiere die ');
  print '<a href="http://www.aida-austria.at/downloads/Statuten_AIDA_AUSTRIA.pdf" target="_blank">Statuten</a>'.
        ' der A.I.D.A.-Austria.';

  print '<br /><br />';

  $a = int(rand(9));
  $b = int(rand(9));
  $c = $a + $b + 1;
  $params->{'c'} = $c;

  print $site->hidden(-name=>'c',
                      -default=>$params->{'c'});
  print "Wieviel ist $a und $b?** &nbsp;";

  print $site->textfield(-name=>'rechnen',
                         -size=>'3');
  print '<br /><br />';
  print $site->submit('send', 'Abschicken');
  print $site->end_form;


  print '<br /><br /><span style="font-size: small;">';
  print "* StudentInnen zahlen die H&auml;lfte. F&uuml;r KursbelegerInnen bei unseren ".
	"Instructors ist die Mitgliedschaft im ersten Jahr (bis Ende des laufenden ".
	"Kalenderjahres) gratis. Kontaktiert uns ".
	"bitte, falls Ihr Euch f&uuml;r Gruppenrabatte interessiert. <br />";
  print "** Die Frage hilft uns gegen Spam. <br />";
  print '</span>'."\n";

}

sub CheckData {
  if ( ($params->{'rechnen'} + 1) != $params->{'c'} ) {
    $aw = "Bitte noch einmal Rechnen. <br />\n";
          $params->{'rechnen'} = ();
  }
  if ((!$params->{'Name'})) {
    $aw = $aw . "Gib bitte Deinen Namen ein. <br />\n";
  }
  if (!($params->{'Adresse'})) {
    $aw = $aw . "Gib bitte eine Adresse ein.<br />\n";
  }
  if ((!$params->{'Mail'}) or (!($params->{'Mail'} =~ m/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/ ))) {
    $aw = $aw . "Gib bitte Deine E-Mail Adresse ein.<br />\n";
    $params->{'Mail'} = "";
  }
  if (!($params->{'Telefon'}) or ($params->{'Telefon'} =~ /[^-|\d|\s|\/]/ )) {
    $aw = $aw . "Gib bitte eine Telefonnummer ein. <br /> \n";
    $params->{'Telefon'} = "";
  }
  if (!($params->{'Statuten'})) {
    $aw = $aw . 'Bitte akzeptiere die Statuten. <br />'."\n";
  }
  if (!($aw)) { $aw = 1 }
  return ($aw);
}

sub SendMail {
  my $params = shift @_;

  $text = "Hallo ".$params->{'Name'}."!\n\n".
          "Bitte überprüfe Deine Daten und antworte auf dieses Mail, um \n".
          "Deine Anmeldung zu bestätigen.\n\n";
  $text = $text . "Name: $params->{'Name'}\n".
		"Adresse: \n$params->{'Adresse'}\n\n".
		"Mail: $params->{'Mail'}\n".
		"Telefon: $params->{'Telefon'}\n".
		"Geburtsdatum: $params->{'day'}.$params->{'month'}.$params->{'year'}\n";
  if ($params->{'StudentIn'}) { 
    $text = $text . "Du bist StudentIn.\n"; 
  }
  if (($params->{'Gruppenmitglied'}) and ($params->{'Gruppe'})) {
    $text = $text . "Du bist Mitglied bei $params->{'Gruppe'}.\n";
  }
  if (($params->{'Kurs'}) and ($params->{'Instructor'})) {
    $text = $text . "Du hast heuer einen Kurs belegt bei $params->{'Instructor'}.\n";
  }

  $text = $text . "\nWir kontaktieren dich, wenn wir Deine Anmeldung geprüft haben. ".
                  "Herzlich Willkommen!\n\nDas A.I.D.A.-Austria Team\n";
		
  my %mail = ( To      => $params->{'Mail'},
               From    => $aidamail,
               Message => $text,
               Subject => 'Deine Anmeldung',
               Bcc => $aidamail,
  );
  sendmail(%mail) or die $Mail::Sendmail::error;
}

sub PrintBye {
  print '<br /><br />';
  print "Danke f&uuml;r Deine Anmeldung! Du erh&auml;lst in K&uuml;rze ein Mail von uns, ".
        "bitte antworte zur Best&auml;tigung darauf.<br /><br />\n";
  print "<b>Herzlich Willkommen! :)<b>";
}
