<header>
  <%= link_to 'index', class => 'logo', begin %><h1><span><%= title() // loc('korap_desc') %></span></h1><% end %>
  <div class="button top">

% if (stash('user')) {
   %# TODO: CSRF protection
   <a href="<%= url_for 'logout' %>"
      class="logout"
      title="<%= loc 'logout' %>: <%= stash('user') %>"><span><%= loc 'logout' %></span></a>
% };

  </div>
  <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 => 'corpus-query', autocorrect => 'off', autocapitalize => 'off'
      <button type="submit" title="<%= loc 'go' %>"><span><%= loc 'go' %></span></button>
    </div>

    <!-- Search in the following virtual collection -->
    <div id="vc-view"></div>
    <%= loc 'in' %>
    %# TODO: Create 'align' parameter
    %= hidden_field 'collection-name' => param('collection-name'), id => 'collection-name' 
    %= text_field 'collection', id => 'collection'

    <%= loc 'with' %>
    <span class="select">
      %= select_field 'ql', [[loc('QL_poliqarp') => 'poliqarp'], [loc('QL_cosmas2') => 'cosmas2'], [loc('QL_annis') => 'annis'], [loc('QL_cql') => 'cql']], 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></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>
  </form>
</header>
