<nav class="navbar">
  <%= link_to 'index', class => 'logo', begin %><h1><span><%= title() // loc('korap_desc') %></span><% if (loc('title_addon')) { %><div class="logoaddon"><%= loc('title_addon') %></div><% } %></h1><% end %>

  <div class="navbar-group">
    %= content_block 'headerButtonGroup'
    %= include 'partial/auth/login'
  </div>

  <div class="burger-icon"></div>
</nav>

<header>
  <form autocomplete="off" action="<%= url_for 'index' %>" id="searchform">
    <div id="searchbar">
      %= search_field 'q', id => 'q-field', autofocus => 'autofocus', placeholder => loc('searchplaceholder'), spellcheck => 'false', autocomplete => 'off', autocorrect => 'off', autocapitalize => 'off'
      <button type="submit" id="qsubmit" title="<%= loc 'go' %>"><span><%= loc 'go' %></span></button>
    </div>

    <!-- Search in the following virtual corpus -->
    <div id="vc-view"></div>
    <%= loc 'in' %>
    %# TODO: Create 'align' parameter
    %= text_field 'cq', id => 'cq'

    <%= loc 'with' %>
    <span class="select">
      %= select_field 'ql', [[loc('QL_poliqarp') => 'poliqarp'], [loc('QL_cosmas2') => 'cosmas2'], [loc('QL_annis') => 'annis'], [loc('QL_cqp') => 'cqp'], [loc('QL_cql') => 'cql'], [loc('QL_fcsql') => 'fcsql']], id => 'ql-field'
    </span>
    <div class="button right">
      % param(cutoff => 1) unless param 'q';
      %= check_box cutoff => 1, id => 'q-cutoff-field', class => 'checkbox'
      <label for="q-cutoff-field" title="<%= loc('glimpse_desc') %>"><span id="glimpse"></span><%= loc('glimpse') %></label>
      <%= link_to 'doc_start', title => loc('tutorial'), class => "tutorial", id => "view-tutorial", tabindex => '-1', begin %><span><%= loc 'tutorial' %></span><% end %>
    </div>
    <div class="clear"></div>
  </form>
</header>
