{% extends "three-column-content.html" %}
{% block meta %}
  <meta name="description" content="The {{ SITE_NAME }}'s contest list - past, present, and future.">
{% endblock %}

{% block three_col_media %}
  <style>
    .non-padding-top {
      padding-top: 0;
    }

    .btn-contest {
      display: inline-block;
      padding: 1px 6px;
    }

    #search-contest {
      width: 100%;
      height: 2.3em;
    }
    #search-org {
      width: 100%;
    }
    .contest-format-user {
      flex: 0.5 !important;
    }
    .participate-button {
      float: right;
    }
  </style>
  {% block contest_list_media %}{% endblock %}
{% endblock %}

{% block js_media %}
  <script type="text/javascript">
    $(document).ready(function () {
      $('#active-url').attr('href', changeTabParameter('active'));
      $('#current-url').attr('href', changeTabParameter('current'));
      $('#future-url').attr('href', changeTabParameter('future'));
      $('#past-url').attr('href', changeTabParameter('past'));
      registerNavigation();

      var $form = $('form#filter-form');

      $('#hide_organization_contests').click(function () {
        submitFormWithParams($form, "POST");
      });
      $('#go').click(function() {
        submitFormWithParams($form, "GET");
      });
      $('.time-remaining').each(function () {
        count_down($(this));
      });

      $('.contest-tag').find('a[data-featherlight]').featherlight();

      $('.join-warning').click(function () {
        let q = '{{ _('Are you sure you want to join?') }}\n' +
        '{{ _('Joining a contest for the first time starts your timer, after which it becomes unstoppable.') }}';
        {% if request.in_contest %}
          q += " {{ _('By joining in this contest, you will automatically leave contest') }} \"{{ request.participation.contest.name }}\". ";
        {% endif %}
        return confirm(q);
      });

      $form.on('keypress', function(e) {
        if (e.key === 'Enter') {
          e.preventDefault();
        }
      });

      $('#search-contest').keypress(function (e) {
        if (e.keyCode === 13) {
          $('#go').click();
        }
      });

      $('#search-org').select2({multiple: 1, placeholder: '{{ _('Groups') }}...'});

      $('#order').select2();

      // var tooltip_classes = 'tooltipped tooltipped-e';
      //
      // $('.contest-tag').each(function () {
      //     var link = $(this);//
      //     link.mouseenter(function (e) {
      //         link.addClass(tooltip_classes).attr('aria-label', link.attr('data-description'));
      //     }).mouseleave(function (e) {
      //         link.removeClass(tooltip_classes).removeAttr('aria-label');
      //     });
      // });
    });
  </script>
  {% block contest_list_js %}{% endblock %}
{% endblock %}

{% block left_sidebar %}
  {% include "contest/contest-list-tabs.html" %}
{% endblock %}

{% block right_sidebar %}
  <div class="right-sidebar">
    {% include "contest/search-form.html" %}
  </div>
{% endblock %}

{% from "contest/macros.html" import contest_head, time_left, user_count, contest_format_user %}

{% macro contest_join(contest, request, is_past=False) %}
  {% if request.in_contest and request.participation.contest == contest %}
    <button class="small" disabled>{{ _('In contest') }}</button>
  {% elif is_past %}
    <form action="{{ url('contest_join', contest.key) }}" method="post">
      {% csrf_token %}
      <input type="submit" class="unselectable button full small"
        value="{{ _('Virtual join') }}">
    </form>
  {% elif request.profile.id in contest.editor_ids or request.profile.id in contest.tester_ids %}
    <form action="{{ url('contest_join', contest.key) }}" method="post">
      {% csrf_token %}
      <input type="submit" class="unselectable button full small"
        value="{{ _('Spectate') }}">
    </form>
  {% else %}
    <form action="{{ url('contest_join', contest.key) }}" method="post">
      {% csrf_token %}
      <input type="submit" class="unselectable button full small join-warning"
        value="{{ _('Join') }}">
    </form>
  {% endif %}
{% endmacro %}

{% block middle_content %}
  <div class="tabs tabs-no-flex" style="width: 100%;margin-left: auto;margin-right: auto;">
    <ul>
      {% if request.user.is_authenticated %}
        <li class="{{'active' if current_tab=='active'}}">
          <a id='active-url'>{{ _('Active') }}
            {% if active_count %}
              ({{active_count}})
            {% endif %}
          </a>
        </li>
      {% endif %}
      <li class="{{'active' if current_tab=='current'}}">
        <a id='current-url'>{{ _('Ongoing') }}
          {% if current_count %}
            ({{current_count}})
          {% endif %}
        </a>
      </li>
      <li class="{{'active' if current_tab=='future'}}">
        <a id='future-url'>{{ _('Upcoming') }}
          {% if future_count %}
            ({{future_count}})
          {% endif %}
        </a>
      </li>
      <li class="{{'active' if current_tab=='past'}}">
        <a id='past-url'>{{ _('Past') }}</a>
      </li>
    </ul>
  </div>

  {% if request.user.is_authenticated and current_tab == 'active' %}
    {% if contests %}
      {% for participation in contests %}
        {% with contest=participation.contest %}
          <div class="list-contest">
            <div class="info-contest">
              <div class="contest-title"> {{ _('Contests') }} </div>
              {{ contest_head(contest, organization) }}
            </div>
            <div class="info-contest">
              <div class="contest-title"> {{ _('Time') }} </div>
              <div class="contest-block">
                {% if contest.start_time %}
                  {{ time_left(contest) }}
                  {% if contest.time_limit %}
                    <span class="time">
                      {% trans countdown=participation.end_time|as_countdown %}Window ends in {{countdown}}{% endtrans %}
                    </span>
                  {% elif contest.time_before_end %}
                    <span class="time">{% trans countdown=contest.end_time|as_countdown %}Ends in {{countdown}}{% endtrans %}</span>
                  {% endif %}
                {% endif %}
              </div>
            </div>
            <div class="info-contest contest-format-user">
              {{ contest_format_user(contest, request, is_official=is_official) }}
              <div class="participate-button">
                {{ contest_join(contest, request) }}
              </div>
            </div>
          </div>
        {% endwith %}
      {% endfor %}
      {% if page_obj and page_obj.num_pages > 1 %}
        <div style="margin-top: 10px;">
          {% include "list-pages.html" %}
        </div>
      {% endif %}
    {% else %}
      <i> {{ _('There is no active contest at this time.') }} </i>
    {% endif %}
  {% endif %}

  {% if current_tab == 'current' %}
    {% if contests %}
      {% for contest in contests %}
        <div class="list-contest">
          <div class="info-contest">
            <div class="contest-title"> {{ _('Contests') }} </div>
            {{ contest_head(contest, organization) }}
          </div>
          <div class="info-contest">
            <div class="contest-title"> {{ _('Time') }} </div>
            <div class="contest-block">
              {% if contest.start_time %}
                {{ time_left(contest) }}
                {% if contest.time_before_end %}
                  <span class="time">{% trans countdown=contest.end_time|as_countdown %}Ends in {{countdown}}{% endtrans %}</span>
                {% endif %}
              {% endif %}
            </div>
          </div>
          <div class="info-contest contest-format-user">
            {{ contest_format_user(contest, request, is_official=is_official) }}
            <div class="participate-button">
              {{ contest_join(contest, request) }}
            </div>
          </div>
        </div>
      {% endfor %}
      {% if page_obj and page_obj.num_pages > 1 %}
        <div style="margin-top: 10px;">
          {% include "list-pages.html" %}
        </div>
      {% endif %}
    {% else %}
      <i> {{ _('There is no ongoing contest at this time.') }} </i>
    {% endif %}
  {% endif %}

  {% if current_tab == 'future' %}
    {% if contests %}
      {% for contest in contests %}
        <div class="list-contest">
          <div class="info-contest">
            <div class="contest-title"> {{ _('Contests') }} </div>
            {{ contest_head(contest, organization) }}
          </div>
          <div class="info-contest">
            <div class="contest-title"> {{ _('Time') }} </div>
            <div class="contest-block">
              {% if contest.start_time %}
                {{ time_left(contest) }}
                {% if contest.time_before_start %}
                  <span class="time">{{ _('Starting in %(countdown)s.', countdown=contest.start_time|as_countdown) }}</span>
                {% endif %}
              {% endif %}
            </div>
          </div>
          <div class="info-contest contest-format-user">
            {{ contest_format_user(contest, request, show_user=False, is_official=is_official) }}
          </div>
        </div>
      {% endfor %}
      {% if page_obj and page_obj.num_pages > 1 %}
        <div style="margin-top: 10px;">
          {% include "list-pages.html" %}
        </div>
      {% endif %}
    {% else %}
      <i>{{ _('There is no scheduled contest at this time.') }}</i>
    {% endif %}
  {% endif %}

  {% if current_tab == 'past' %}
    {% if contests %}
      {% for contest in contests %}
        <div class="list-contest">
          <div class="info-contest">
            <div class="contest-title"> {{ _('Contests') }} </div>
            {{ contest_head(contest, organization) }}
          </div>
          <div class="info-contest">
            <div class="contest-title"> {{ _('Time') }} </div>
            <div class="contest-block">
              {{ time_left(contest) }}
            </div>
          </div>
          <div class="info-contest contest-format-user">
            {{ contest_format_user(contest, request, is_official=is_official) }}
            <div class="participate-button">
              {{ contest_join(contest, request, is_past=True) }}
            </div>
          </div>
        </div>
      {% endfor %}
      {% if page_obj and page_obj.num_pages > 1 %}
        <div style="margin-top: 10px;">
          {% include "list-pages.html" %}
        </div>
      {% endif %}
    {% else %}
      <i> {{ _('There is no past contest.') }} </i>
    {% endif %}
  {% endif %}
{% endblock %}