<?php

require_once __DIR__ .'/bootstrap.php';

use APnutI\Exceptions\NotFoundException;
use APnutI\Exceptions\HttpPnutForbiddenException;
use APnutI\Exceptions\NotSupportedPollException;
use APnutI\Exceptions\NotAuthorizedException;
use APnutI\Exceptions\PollAccessRestrictedException;
use APnutI\Entities\Poll;
use APnutI\Entities\User;

try {
  echo get_page_header('New Poll', true, ['new_poll']);
} catch (\Exception $e) {
  die('Something went wrong :( "'.$e->getMessage().'"' . get_page_footer());
}

if (!$api->isAuthenticated(false, true)) {
  die('You need to be logged in to create a new poll!' . get_page_footer());
}

if (!empty($_POST['submit'])) {
  $prompt = $_POST['prompt'];
  $options = $_POST['option'];
  $is_anonymous = !empty($_POST['anonymous']);
  $is_public = !empty($_POST['public']);
  $max_options = (int)$_POST['max_options'];
  $duration_days = (int)$_POST['duration_days'];
  $duration_hours = (int)$_POST['duration_hours'];
  $duration_minutes = (int)$_POST['duration_minutes'];
  $duration_total_minutes = $duration_days*60*24 + $duration_hours * 60 + $duration_minutes;
  try {
    $poll = Poll::create($api, $prompt, $options, $max_options, $duration_total_minutes, $is_anonymous, $is_public);
    redirect('view_poll.php?poll_created=1&id='.$poll->id); #TODO: Add posting about poll after creation
  } catch (\Exception $e) {
    die('Something went wrong creating the poll: "' . $e->getMessage() . '"' . get_page_footer());
  }
}
?>

<form method="POST" class="create-poll">
  <label for="prompt">Prompt</label>
  <input
    type="text"
    name="prompt"
    placeholder="What would you like to poll about?"
    id="prompt" required
    maxlength="<?= $api->getMaxPostLength() ?>"/>
  <label for="options">Options</label>
  <div id="options">
    <?php
    for ($i = 0; $i < 10; $i++) { ?>
      <input
        type="text"
        name="option[]"
        placeholder="This will be option #<?= $i+1 ?>" <?= $i < 2 ? 'required' : '' ?>
        maxlength="64"/>
    <?php } ?>
  </div>
  <label for="anonymous">Anonymous</label>
  <input type="checkbox" name="anonymous" id="anonymous" />
  <label for="public">Public</label>
  <input type="checkbox" name="public" id="public" />
  <label for="max_options">Max Options</label>
  <input type="number" name="max_options" id="max_options" min="1" max="10" value="1" required/>
  <label for="duration">Duration</label>
  <div id="duration">
    <input type="number" name="duration_days" value="1" min="0" required/><span>day(s)</span>
    <input type="number" name="duration_hours" value="0"  min="0" required/><span>hour(s)</span>
    <input type="number" name="duration_minutes" value="0"  min="0" required/><span>minute(s)</span><br>
    <span id="openUntil"></span>
  </div>
  <span class="error"></span>
  <button type="submit" name="submit" value="submit">Create poll</button>
  </form>
</form>
<?= get_page_footer() ?>