{% 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%;
    }
  </style>
{% endblock %}

{% block three_col_js %}
  <script src="{{ static('libs/featherlight/featherlight.min.js') }}" type="text/javascript"></script>
  <script type="text/javascript">
    function changeTabParameter(newTab) {
      const url = new URL(window.location);
      const searchParams = new URLSearchParams(url.search);
      searchParams.set('tab', newTab);
      url.search = searchParams.toString();
      return url.href;
    }

    function submitFormWithParams($form, method) {
      const currentUrl = new URL(window.location.href);
      const searchParams = new URLSearchParams(currentUrl.search);
      const formData = $form.serialize();

      const params = new URLSearchParams(formData);

      if (searchParams.has('tab')) {
        params.set('tab', searchParams.get('tab'));
      }

      const fullUrl = currentUrl.pathname + '?' + params.toString();

      if (method === "GET") {
        window.location.href = fullUrl;
      }
      else {
        var $formToSubmit = $('<form>')
          .attr('action', fullUrl)
          .attr('method', 'POST')
          .appendTo('body');

        $formToSubmit.append($('<input>').attr({
          type: 'hidden',
          name: 'csrfmiddlewaretoken',
          value: $.cookie('csrftoken')
        }));

        $formToSubmit.submit();
      }
    }

    $(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'));

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

      $('#show_orgs').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') }}...'});

      // 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>
{% 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_join, contest_format_user %}

{% 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" style="flex: 0.5;">
              {{ contest_format_user(contest, request) }}
            </div>
            <div class="participate-button">
              {{ contest_join(contest, request) }}
            </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" style="flex: 0.5;">
            {{ contest_format_user(contest, request) }}
          </div>
          <div class="participate-button">
            {{ contest_join(contest, request) }}
          </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" style="flex: 0.5;">
            {{ contest_format_user(contest, request, show_user=False) }}
          </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" style="flex: 0.5;">
            {{ contest_format_user(contest, request) }}
          </div>
          <div class="participate-button">
            {% if request.in_contest and request.participation.contest == contest %}
              <button class="small" disabled>{{ _('In contest') }}</button>
            {% else %}
              <form action="{{ url('contest_join', contest.key) }}" method="post">
                {% csrf_token %}
                <input type="submit" class="unselectable button full small"
                  value="{{ _('Virtual join') }}">
              </form>
            {% endif %}
          </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 %}