<!DOCTYPE html>
<html>
  <head>
    <title><%= title() // loc('korap_desc') %></title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=false, user-scalable=no" />
    <link href="<%= stash 'prefix' %>/favicon.ico" rel="shortcut icon" type="image/x-icon" /> 
    <link href="<%= stash 'prefix' %>/css/kalamar-<%= $Kalamar::VERSION %>.css" type="text/css" rel="stylesheet" />
    %= javascript begin  
  window.KorAP = window.KorAP || {};
  % my $api = url_for('index');
  % $api =~ s!/$!!;
  KorAP.URL = '<%== $api %>';
% end
    <script src="<%= (stash('prefix') // '') . '/js/' . loc('jsFile', 'kalamar-' . $Kalamar::VERSION . '-en.js') %>" async="async"></script>
  </head>
% my $embedded = 0;
% $embedded = 1 if stash('embedded');
  <body<% if ($embedded) { %> class="embedded"<% } %>>
    <div id="kalamar-bg"></div>

    % unless ($embedded) {
      %= include 'partial/header'
    % }

% if (1) { # user not logged in
% content_for 'sidebar', begin
<fieldset>
  <form>
    <legend><span><%= loc 'login' %></span></legend>
    <input type="text" name="handle_or_email" placeholder="<%= loc 'email' %>" />
    <div>
      <input type="password" name="pwd" placeholder="<%= loc 'pwd' %>" />
      <button type="submit"><span><%= loc 'go' %></span></button>
    </div>
  </form>
</fieldset>
% end
% }

    % my $aside = content_for('sidebar');
    <aside tabindex="0" class="<% unless (length($aside) > 0) { %>off<% } elsif (stash('sidebar_active')) { %>active<% } %>">
      <div>
      %= $aside
      </div>
    </aside>

    <main<% if (stash 'main_class') { %> class="<%= stash 'main_class' %>"<% } %>>
    %= content
    </main>

    % unless ($embedded) {
    <footer>
      <a href="http://korap.ids-mannheim.de/"><%= loc 'about' %></a>
      <%= doc_link_to 'V '. $Kalamar::VERSION, 'korap', 'kalamar' %>
    </footer>
    % };
    %= notifications 'Kalamar::Plugin::Notifications'
  </body>
</html>
