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

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

    .content-description ul {
      padding: 0 !important;
    }

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

    .contest-group-header {
      padding-bottom: 1em;
    }

    {% if page_obj and page_obj.number > 1%}
      #ongoing-table {
        display: none;
      }
    {% endif %}

    @media (max-width: 500px) {
      #search-contest, #search-org, #search-btn {
        width: 100%;
        margin-bottom: 0.5em;
      }
      #search-contest {
        height: 2.5em;
      }
      #search-btn {
        margin-top: 0.5em;
      }
      #filter-form input {
        padding-left: 8px;
      }
    }

    @media (min-width: 500px) {
      #filter-form input {
        margin: 0 0.5em 0 0!important;
        padding-left: 8px;
        padding-top: 8px;
      }
      #search-contest {
        width: 30%;
        height: 2.3em;
        margin-right: 1em;
        margin-bottom: 0;
        padding-top: 4px !important;
      }

      #search-org {
        width: 40%;
      }

      #search-btn {
        display: inline-block;
        height: 2.3em;
        margin-left: 0.5em;
      }
    }
  </style>
{% endblock %}

{% block two_col_js %}
  <script src="{{ static('libs/featherlight/featherlight.min.js') }}" type="text/javascript"></script>
  <script type="text/javascript">
    $(document).ready(function () {
      var $form = $('form#filter-form');
      $('input#show_orgs').click(function () {
        $form.submit();
      });
      $('.time-remaining').each(function () {
        count_down($(this));
      });

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

      $('.join-warning').click(function () {
        return confirm('{{ _('Are you sure you want to join?') }}\n' +
          '{{ _('Joining a contest for the first time starts your timer, after which it becomes unstoppable.') }}');
      });

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

      // 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 %}

{% macro contest_head(contest) %}
  <a href="{{ url('contest_view', contest.key) }}" class="contest-list-title" style="margin-right: 5px;">
    {{contest.name}}
  </a>
  <br>
  <div class="contest-tags" style="margin-top: 5px;">
    {% if not contest.is_visible %}
      <span class="contest-tag contest-tag-hidden">
        <i class="fa fa-eye-slash"></i> {{ _('hidden') }}
      </span>
    {% endif %}
    {% if contest.is_editable %}
      <span class="contest-tag contest-tag-edit">
        <a href="{{ url('organization_contest_edit', organization.id, organization.slug, contest.key) }}" class="white">
          <i class="fa fa-edit"></i> {{ _('Edit') }}
        </a>
      </span>
    {% endif %}
    {% if contest.is_private %}
      <span class="contest-tag contest-tag-private">
        <i class="fa fa-lock"></i> {{ _('private') }}
      </span>
    {% endif %}
    {% if not hide_contest_orgs %}
      {% if contest.is_organization_private %}
        {% for org in contest.organizations.all() %}
          <span class="contest-tag contest-tag-org">
            <a href="{{ org.get_absolute_url() }}">
              <i class="fa fa-lock"></i> {{ org.name }}
            </a>
          </span>
        {% endfor %}
      {% endif %}
    {% endif %}
    {% if contest.is_rated %}
      <span class="contest-tag contest-tag-rated">
        <i class="fa fa-bar-chart"></i> {{ _('rated') }}
      </span>
    {% endif %}
    {% for tag in contest.tags.all() %}
      <span style="background-color: {{ tag.color }}" class="contest-tag">
        <a href="{{ url('contest_tag', tag.name) }}"
          style="color: {{ tag.text_color }}"
          data-featherlight="{{ url('contest_tag_ajax', tag.name) }}">
          {{- tag.name -}}
        </a>
      </span>
    {% endfor %}
  </div>
{% endmacro %}

{% macro time_left(contest, padding_top = true) %}
  <div class="time time-left {{ 'non-padding-top' if padding_top == false }}">
    {% if contest.time_limit %}
      {{ contest.start_time|date(_("M j, Y, G:i")) }} -
      {{ contest.end_time|date(_("M j, Y, G:i")) }}
    {% else %}
      {{ contest.start_time|date(_("M j, Y, G:i")) }}
    {% endif %}
    <br>
    {% if contest.time_limit %}
      {% trans time_limit=contest.time_limit|timedelta('localized-no-seconds') %}{{ time_limit }} window{% endtrans %}
    {% else %}
      {% trans duration=contest.contest_window_length|timedelta('localized-no-seconds') %}{{ duration }} long{% endtrans %}
    {% endif %}
  </div>
{% endmacro %}

{% macro user_count(contest, user) %}
  {% if contest.can_see_own_scoreboard(user) %}
    <a href="{{ url('contest_ranking', contest.key) }}">{{ contest.user_count }}</a>
  {% else %}
    {{ contest.user_count }}
  {% endif %}
{% endmacro %}

{% macro contest_join(contest, request) %}
  {% if not request.in_contest %}
    {% if request.profile in contest.authors.all() or request.profile in contest.curators.all() or request.profile in contest.testers.all() %}
      <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 %}
  {% endif %}
{% endmacro %}

{% block middle_content %}
  <div class="content-description">
    <form id="filter-form">
      <input id="search-contest" type="text" name="contest" value="{{ contest_query or '' }}"
        placeholder="{{ _('Search contests...') }}">
      {% if organizations %}
        <select id="search-org" name="orgs" multiple>
          {% for org in organizations %}
            <option value="{{ org.id }}"{% if org.id in org_query %} selected{% endif %}>
              {{ org.name }}
            </option>
          {% endfor %}
        </select>
      {% endif %}
      <button id="search-btn" class="btn-green small"> {{ _('Search')}} </button>
      {% if organizations %}
        <div>
          <input id="show_orgs" type="checkbox" name="show_orgs" value="1" {% if show_orgs %}checked{% endif %}>
          <label for="show_orgs">{{ _('Hide organization contests') }}</label>
        </div>
      {% endif %}
      {% if create_url %}
        <a href="{{create_url}}" class="button small" style="float: right"><i class="fa fa-plus"></i> {{ _('Create')}}</a>
      {% endif %}
    </form>
    {% if active_participations %}
      <h3 class="toggle open contest-group-header">
        <i class="fa fa-chevron-right fa-fw"></i>
        {{ _('Active Contests') }}
      </h3>
      <div class="toggled">

        {% for participation in active_participations %}
          {% with contest=participation.contest %}
            <div class="list-contest">
              <div class="info-contest" style="flex: 1.5">
                <div class="contest-title"> {{ _('Contests') }} </div>
                {{ contest_head(contest) }}
              </div>
              <div class="info-contest" style="flex: 1.5">
                <div class="contest-title"> {{ _('Time') }} </div>
                <div class="contest-block">
                  {% if contest.start_time %}
                    {% 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 %}
                    {{ time_left(contest) }}
                  {% endif %}
                </div>
              </div>
              <div class="info-contest">
                <div class="contest-title"> {{ _('Format') }} </div>
                {{ contest.format.name }}
              </div>
              <div class="info-contest">
                <div class="contest-title"> {{ _('Users') }} </div>
                {{ user_count(contest, request.user) }}
              </div>
              <div class="participate-button">
                {{ contest_join(contest, request) }}
              </div>
            </div>
          {% endwith %}
        {% endfor %}
      </div>
      <br>
    {% endif %}

    <h3 class="toggle open contest-group-header">
      <i class="fa fa-chevron-right fa-fw"></i>
      {{ _('Ongoing Contests') }}
    </h3>
    {% if current_contests %}
      <div id="ongoing-table" class="toggled">
        {% for contest in current_contests %}
          <div class="list-contest">
            <div class="info-contest" style="flex: 1.5">
              <div class="contest-title"> {{ _('Contests') }} </div>
              {{ contest_head(contest) }}
            </div>
            <div class="info-contest" style="flex: 1.5">
              <div class="contest-title"> {{ _('Time') }} </div>
              <div class="contest-block">
                {% if contest.start_time %}
                  {% if contest.time_before_end %}
                    <span class="time">{% trans countdown=contest.end_time|as_countdown %}Ends in {{countdown}}{% endtrans %}</span>
                  {% endif %}
                  {{ time_left(contest) }}
                {% endif %}
              </div>
            </div>
            <div class="info-contest">
              <div class="contest-title"> {{ _('Format') }} </div>
              {{ contest.format.name }}
            </div>
            <div class="info-contest">
              <div class="contest-title"> {{ _('Users') }} </div>
              {{ user_count(contest, request.user) }}
            </div>
            <div class="participate-button">
              {{ contest_join(contest, request) }}
            </div>
          </div>
        {% endfor %}
        <br>
      </div>
    {% else %}
      <div class="toggled">
        <i> {{ _('There is no ongoing contest at this time.') }} </i>
        <br>
      </div>
    {% endif %}

    <h3 class="toggle open contest-group-header">
      <i class="fa fa-chevron-right fa-fw"></i>
      {{ _('Upcoming Contests') }}
    </h3>
    {% if future_contests %}
      <div class="toggled">
        {% for contest in future_contests %}
          <div class="list-contest">
            <div class="info-contest" style="flex: 1.5">
              <div class="contest-title"> {{ _('Contests') }} </div>
              {{ contest_head(contest) }}
            </div>
            <div class="info-contest" style="flex: 1.5">
              <div class="contest-title"> {{ _('Time') }} </div>
              <div class="contest-block">
                {% if contest.start_time %}
                  {% if contest.time_before_start %}
                    <span class="time">{{ _('Starting in %(countdown)s.', countdown=contest.start_time|as_countdown) }}</span>
                  {% endif %}
                  {{ time_left(contest) }}
                {% endif %}
              </div>
            </div>
            <div class="info-contest">
              <div class="contest-title"> {{ _('Format') }} </div>
              {{ contest.format.name }}
            </div>
          </div>
        {% endfor %}
      </div>
    {% else %}
      <div class="toggled">
        <i>{{ _('There is no scheduled contest at this time.') }}</i>
        <br>
      </div>
    {% endif %}
    <br>

    <h3 class="toggle open contest-group-header">
      {{ _('Past Contests') }}
    </h3>
    {% if past_contests %}
      {% if page_obj and page_obj.num_pages > 1 %}
        <div style="margin-bottom: 10px;">
          {% include "list-pages.html" %}
        </div>
      {% endif %}

      {% for contest in past_contests %}
        <div class="list-contest">
          <div class="info-contest" style="flex: 1.5">
            <div class="contest-title"> {{ _('Contests') }} </div>
            {{ contest_head(contest) }}
          </div>
          <div class="info-contest" style="flex: 1.5">
            <div class="contest-title"> {{ _('Time') }} </div>
            <div class="contest-block">
              {{ time_left(contest, false) }}
            </div>
          </div>
          <div class="info-contest">
            <div class="contest-title"> {{ _('Format') }} </div>
            {{ contest.format.name }}
          </div>
          <div class="info-contest">
            <div class="contest-title"> {{ _('Users') }} </div>
            {{ user_count(contest, request.user) }}
          </div>
          {% if not request.in_contest %}
            <div class="participate-button">
              <form action="{{ url('contest_join', contest.key) }}" method="post">
                {% csrf_token %}
                <input type="submit" class="unselectable button full small"
                  value="{{ _('Virtual join') }}">
              </form>
            </div>
          {% endif %}
        </div>
      {% endfor %}
      {% if page_obj and page_obj.num_pages > 1 %}
        <div style="margin-top: 10px;">
          {% include "list-pages.html" %}
        </div>
      {% endif %}
    {% else %}
      <div class="toggled">
        <i> {{ _('There is no past contest.') }} </i>
        <br>
      </div>
    {% endif %}
  </div>
{% endblock %}