#!/usr/bin/perl

BEGIN { push @INC,"/home/olev/perl"; }

use MyDB;
use CGI;
use DBI;
use DateTime;
use strict;

## Session management
my $q = new CGI;
print $q->header(-type=>'text/html');
print <<EOD;
<head>
<title>Meteorologen bordtennis</title>
<META http-equiv="Content-Script-Type" content="text/javascript">
<SCRIPT type="text/javascript">
function check_rem() {
   var rem = document.getElementsByName("rem");
   var trom = rem[0].value;
   if (!trom) {
      alert("Du har ikke angitt noe tidsrom!!");
//      event.preventDefault();
      return false;
   }
}
</SCRIPT>
</head>
<body>
EOD

my(@people,@nam,@com);
my($msg,$i);
my @mdtext = ('søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag');

## Extract form and query variables
my $reg = $q->param('reg');
my $rem = $q->param('rem');
###$rem = '&nbsp;' unless($rem);
my $del = $q->param('del');
my $name = $q->param('name');
my $date = $q->param('date');
my $time = $q->param('time');

## Connect to database
my $dbh = MyDB::Connect();

## Get current (or given) time
my $now = time();
my $dto = DateTime->now;
my $hour = $dto->hour;
if ($time =~ /^(\d\d)/) {
   $hour = $1;
}
if ($date =~ /^(\d{4})-(\d\d)-(\d\d)$/) {
   $dto = DateTime->new(year => $1, month => $2, day => $3, hour => $hour);
   $now = $dto->epoch;
}
my $wday = $dto->day_of_week;
my($wyear,$week) = $dto->week;
my $wbegints = $now + (1 - $wday)*86400 + (1 - $hour)*3600;
my $wendts = $now + (7 - $wday)*86400 + (23 - $hour)*3600;
my $wbdto = DateTime->from_epoch(epoch => $wbegints);
my $wedto = DateTime->from_epoch(epoch => $wendts);
my $wbtext = $wbdto->day .'/'. $wbdto->month;
my $wetext = $wedto->day .'/'. $wedto->month;
my $ymd = $wbdto->ymd;

## find already registered players
my $query = "SELECT * FROM bt_registered WHERE date='$ymd'";
my $sth = $dbh->prepare($query);
my $res = $sth->execute;
if ( not $res ) { MyDB::ShowDBerror($dbh,$query); }
##$res = $dbh->commit;
my $nrows = $sth->rows;

## check if the register or delete button was pressed
$query = $msg = "";
if ($reg ne '' and $name ne '' and $rem ne '') {
   if ($nrows > 0) {
      for ($i=0; $i<$nrows; $i++) {
	 my @row = $sth->fetchrow_array;
         $nam[$i] = $row[1];
         $com[$i] = $row[2];
      }
   }
   my $change = 0;
   for ($i=0; $i<$nrows; $i++) {
      if ($name eq $nam[$i]) {
         if ($rem eq $com[$i]) {
            $msg = "<font size=+1 color=\"red\">$name er allerede registrert!</font>";
         } else {
            $change = 1;
         }
         last;
      }
   }
   if ($change) {
      $query = "UPDATE bt_registered SET comment='$rem' WHERE date='$ymd' AND name='$name'";
   } elsif ($msg eq "") {
      $query = "INSERT INTO bt_registered VALUES('$ymd','$name','$rem')";
   }
   if ($query) {
      $sth = $dbh->prepare($query);
      $res = $sth->execute;
      if ( not $res ) { MyDB::ShowDBerror($dbh,$query); }
##      $res = $dbh->commit;
   }
} elsif ($del ne "" and $name ne "") {
   $query = "DELETE FROM bt_registered WHERE date='$ymd' AND name='$name'";
   $sth = $dbh->prepare($query);
   $res = $sth->execute;
   if ( not $res ) { MyDB::ShowDBerror($dbh,$query); }
##   $res = $dbh->commit;
}

## find registered players again (might be updated)
$query = "SELECT * FROM bt_registered WHERE date='$ymd'";
$sth = $dbh->prepare($query);
$res = $sth->execute;
if ( not $res ) { MyDB::ShowDBerror($dbh,$query); }
##$res = $dbh->commit;
$nrows = $sth->rows;

print <<EOD;
<body bgcolor="#FFFFFF">
<h2> BORDTENNIS uke $week, $wyear ($wbtext - $wetext) </h2>

<table border="3" cellspacing="2" cellpadding="2">
<tr bgcolor="#CCFFCC"><th> Navn <th> Tidsrom

EOD
if ($nrows > 0) {
   for ($i=0; $i<$nrows; $i++) {
      my @row = $sth->fetchrow_array;
      my $navn = $row[1];
      my $komm = $row[2];
      print "<tr bgcolor=\"#FFFFCC\"><td> $navn <td> $komm\n";
   }
} else {
   print "<tr bgcolor=\"#FFCCCC\"><td> ---- <td> Ingen registrerte foreløpig";
}
print "</table><p>\n";

print <<EOD;
<p><br>
<b>Dette er ingen reservering av bordet, men ment som en dialog med andre spillere.</b>
<br><br>
<form name="form" action="reg_bordtennis.pl" accept-charset="utf-8" method=POST>
Navn: <input name="name" value="$name" size=40>

<p>Tidsrom: <input name="rem" size=60>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
F.eks.: "Tirsdag og torsdag 15:45 til 17:00" <br><br>
<p><input type="submit" name="reg" value="Registrer ..." onclick="check_rem()">
&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" name="del" value="Slett registrering ...">
</form><p>
</body>
EOD

END {
   $dbh->disconnect if $dbh;
}
