<?
ob_start();
include("header.php");
include("util.php");
include("event-helper.php");

$color_array = array(' bgcolor="#555555"','');

if (!$_s_user_id)
{
  header("Location:login.html");
}
else if ($_POST) // Evaluate changes/creation.
{
  $event['id'] = $_GET['id'];
  $event['name'] = stripslashes($_POST['name']);
  $event['page'] = stripslashes($_POST['page']);
  $event['image'] = stripslashes($_POST['image']);
  $event['description'] = stripslashes($_POST['description']);
  $event['location'] = stripslashes($_POST['location']);
  $event['start_time'] = strtotime($year.'-'.$_POST['month_start'].'-'
      .$_POST['date_start'].' '.$_POST['time_start']);
  $event['end_time'] = strtotime($year.'-'.$_POST['month_end'].'-'
      .$_POST['date_end'].' '.$_POST['time_end']);
  $event['month_start'] = $_POST['month_start'];
  $event['date_start'] = $_POST['date_start'];
  $event['time_start'] = $_POST['time_start'];
  $event['month_end'] = $_POST['month_end'];
  $event['date_end'] = $_POST['date_end'];
  $event['time_end'] = $_POST['time_end'];
  $event['owners'] = $_POST['owners'];
  foreach ($_POST['points'] as $key => $val)
    $event['points'][$key] = $val;

  if (!$event['name'])
    $error_msg = "Please enter a name for the event.";
  else if (!$event['description'])
    $error_msg = "Please enter a description.";
  else if (!$event['location'])
    $error_msg = "Please enter a location.";
  else if ($event['start_time'] > $event['end_time'])
    $error_msg = "Start time is after end time.";
  else if (!$event['id'])
  {
    if (get_event_by_name($event['name']) != null)
      $error_msg = "An event with the same name already exists.";
    else if (create_event($event))
      header("Location:events.html");
    else
      $error_msg = "Could not create event!";
  }
  else if (!update_event($event))
    $error_msg = "Could not update event.";
}
else if ($_GET['id'])  // Alter event.
{
  if (!user_owns_event($_s_user_id, $_GET['id']) &&
        !user_is_admin($_s_user_id))
  {
    $error_msg = "I'm sorry, but you don't have permission to change this
      event.<br> Redirecting ...";
    header("Location:home.html");
  }
  else
  {
    $event = get_event_by_id($_GET['id']);
    if (!$event)
      $error_msg = "Internal Error: No event with given ID.";
  }

  $event['month_start'] = date("n", $event['start_time']);
  $event['date_start'] = date("j", $event['start_time']);
  $event['time_start'] = date("H:i", $event['start_time']);
  $event['month_end'] = date("n", $event['end_time']);
  $event['date_end'] = date("j", $event['end_time']);
  $event['time_end'] = date("H:i", $event['end_time']);
}
else // New event
{
  $event['description'] = "<Fun! Fun! Fun!>";
  $event['location'] = "<TBD>";
  $date = null;
}
ob_flush();
?>

<? if ($error_msg) { ?>
<div class="error"><?=$error_msg;?></div>
<? } else if ($_POST) { ?>
<div class="info">Event successfully updated!</div>
<? } ?>

<form name="event_form" action="event<?=$_GET['id']?>.html" method="post">
  <table>
<? if (!$frozen) { ?>
    <tr<?=alternate($color_array)?>>
      <td>What is the name of your event?</td>
      <td><input type="text" name="name" size="50" value="<?=$event['name']?>"></td>
    </tr>

    <tr<?=alternate($color_array)?>>
      <td>Please enter a short description</td>
      <td>
        <textarea onfocus="text_handler.remove(this)"
                  onmouseover="text_handler.remove(this)"
                  onmouseout="text_handler.redo(this)"
                  onblur="text_handler.redo(this)"
                  name="description"
                  cols="50" rows="3"><?=$event['description']?></textarea>
      </td>
    </tr>
<? } ?>

    <tr<?=alternate($color_array)?>>
      <td>Enter a URL for the image that will be shown</td>
      <td><input type="text" name="image" size="50" value="<?=$event['image']?>"></td> 
    </tr>

    <tr<?=alternate($color_array)?>>
      <td>Enter the URL for the event's page</td>
      <td><input type="text" name="page" size="50" value="<?=$event['page']?>"></td>
    </tr>

<? if (!$frozen) { ?>
    <tr<?=alternate($color_array)?>>
      <td>Enter the date and time</td>
      <td>
        <table width="100%" border=0>
          <tr>
            <td width=50>
              Start:
            </td>
            <td>
              <select name="month_start">
<?   generate_month_options($olympics_start,
                            $olympics_end,
                            $event['month_start']) ?>
              </select>

              <select name="date_start">
<?   generate_date_options($olympics_start,
                           $olympics_end,
                           $event['date_start']) ?>
              </select>

              <select name="time_start">
<?   generate_time_options($olympics_start,
                           $olympics_end,
                           $event['time_start']) ?>
              </select>
            </td>
          </tr>
        </table>

        <table width="100%" border=0>
          <tr>
            <td width=50>
              End:
            </td>
            <td>
              <select name="month_end">
<?   generate_month_options($olympics_start,
                            $olympics_end,
                            $event['month_end']) ?>
              </select>

              <select name="date_end">
<?   generate_date_options($olympics_start,
                           $olympics_end,
                           $event['date_end']) ?>
              </select>

              <select name="time_end">
<?   generate_time_options($olympics_start,
                           $olympics_end,
                           $event['time_end']) ?>
              </select>
            </td>
          </tr>
        </table>
      </td>
    </tr>

    <tr<?=alternate($color_array)?>>
      <td>Where is the event located?</td>
      <td>
        <input onfocus="text_handler.remove(this)"
               onmouseover="text_handler.remove(this)"
               onmouseout="text_handler.redo(this)"
               onblur="text_handler.redo(this)"
               type="text" name="location" size="30"
               value="<?=$event['location']?>">
      </td>
    </tr>
<? } ?>

    <tr<?=alternate($color_array)?>>
      <td>Event Owner(s)</td>
      <td>
<? generate_owners_boxes($_s_user_id, $event['owners[]']) ?>
      </td>
    </tr>

<? if (array_key_exists('id', $_GET)) { ?>
    <tr<?=alternate($color_array)?>>
      <td>Points:</td>
      <td>
<?   $teams = get_teams() ?>
<?   $points = get_points_by_event_id($_GET['id']) ?>
        <table>
<?   for ($i = 0; $i < count($teams); $i++) { ?>
<?     $team = $teams[$i] ?>
<?     $team_id = $team['id'] ?>
<?     $stat = $points[$team_id] ?>
<?     if ($i % 2 == 0) { ?>
          </tr>
<?     } ?>
            <td class="team-name" bgcolor="#<?=$team['bgcolor']?>">
              <span style="color:#<?=$team['fgcolor']?>">
                <?=$team['name']?>:
              </span>
            </td>
            <td style="padding-right:1em">
              <input id="<?=$team['name']?>-points" type="text" size="5"
                     name="points[<?=$team['id']?>]"
<?     if (array_key_exists('points', $stat)) { ?>
                     value="<?=$stat['points']?>"
<?     } else { ?>
                     value="0"
<?     } ?>
                     onkeyup="ensure_text_only(this)">
            </td>
<?     if ($i % 2 == 1) { ?>
          </tr>
<?     } ?>
<?   } ?>

<?   if ($points['sum'] % 100) { ?>
          <tr><td colspan="2">
            <span class="warning">
              Your sums are funny&mdash;check your math.
            </span>
          </td></tr>
<?   } ?>
        </table>

        <div class="button">
          <input type="button" value="normalize"
                 onclick="points_handler.normalize(this)">
        </div>
      </td>
    </tr>
<? } ?>

    <tr<?=alternate($color_array)?>>
      <td></td>
      <td>
        <input type="submit" value="Submit"
               onfocus="before_submit(this)"
               onmouseover="before_submit(this)">
      </td>
    </tr>
  </table>
</form>

<div id="jsdebug">
</div>

<? include("footer.php") ?>
