<header>
  <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">
      %= include 'partial/auth/login'
      %= content_block 'headerButtonGroup'
    </div>
  </nav>

  <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>
