 <!DOCTYPE html>
<html>
  <head>
    <title>Complete Demo</title>
    <meta charset="utf-8" />
    <link type="text/css" rel="stylesheet" href="../css/kalamar.css" />
    <script data-main="alldemo.js" src="../js/lib/require.js" async="async"></script>
  </head>
  <body>
    <div id="kalamar-bg"></div>
    <header>
      <a href="/" class="logo"><h1><span>KorAP - Corpus Analysis Platform</span></h1></a>

      <div class="button top">
	<a href="#" class="login"><span>Login</span></a>
      </div>

      <form autocomplete="off" action="/kalamar" id="searchform">
	<div id="searchbar">
	  <input type="search"
		 placeholder="Find ..."
		 name="q"
		 id="q-field"
		 autofocus="autofocus" />
	  <button type="submit"><span>Go</span></button>
	  <!-- <i class="fa fa-arrow-circle-down show-hint" onclick="hint.popUp()"></i> -->
	</div>

        <!-- Search in the following virtual collection -->
        <div id="vc-view"></div>
        in
        <input id="vc-name" name="vc-name" type="hidden" value>
        <input id="collection" name="collection" type="text" value="">
	with <span class="select">
	  <!-- Change this to js-menu -->
	  <select name="ql" id="ql-field">
	    <option value="poliqarp">Poliqarp</option>
	    <option value="cosmas2">Cosmas II</option>
	    <option value="annis">Annis</option>
	    <option value="cql">CQL v1.2</option>
	  </select>
	</span>
	<div class="button right">
	  <input type="checkbox"
		 value="1"
		 name="cutoff"
		 class="checkbox"
		 id="q-cutoff-field" />
	  <label for="q-cutoff-field"><span></span>Glimpse</label>

	  <!-- Todo: open tutorial - like openTutorial() -->
	  <a href="doc/faq" class="question"><span>Question</span></a>
	  <a href="tutorial.html" title="Tutorial" class="tutorial" id="view-tutorial"><span>Tutorial</span></a>
	</div>
      </form>
    </header>

    <aside tabindex="0">
      <h2>Einstellungen</h2>
      <p>Anzahl Treffer pro Seite</p>
      <p>Kontext:</p>
      <p>200 Zeichen/Token - 200 Zeichen/Token</p>
      <p>1 Satz 1 Paragraph</p>
      <a>Deutsch|Englisch</a>
    </aside>

    <main>
      <div class="resultinfo">
	<div id="pagination">
	  <a rel="prev"><span><span>&lt;</span></span></a>
	  <a rel="self"><span>1</span></a>
	  <a href="#2"><span>2</span></a>
	  <a href="#3"><span>3</span></a>
	  <a class="ellipsis"><span><span>...</span></span></a>
	  <a href="#52230"><span>52230</span></a>
	  <a rel="next" href="#2"><span><span>&gt;</span></span></a>
	</div>
	<p class="found">Found <span id="total-results">unknown amount of matches</span> in 59.93ms</p>
      </div>

      <div id="search">
	<ol class="align-left">
	  <li data-corpus-id="WPD"
	      data-doc-id="WWW"
	      data-text-id="03313"
	      data-match-id="p102-103"
	      data-available-info="base/s=spans corenlp/c=spans corenlp/ne=tokens corenlp/p=tokens corenlp/s=spans glemm/l=tokens mate/l=tokens mate/m=tokens mate/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens tt/s=spans xip/c=spans"
	      id="WPD-WWW.03313-p102-103"
	      class="marked">
	    <div>
	      <div class="flag"></div>
	      <div class="snippet startMore endMore"><span class="context-left">In diesem Beispiel ist zu sehen, dass die beiden Variablen a und b lediglich ihre Werte an die Funktion </span><mark><mark class="class-2 level-1">Dies </mark><mark class="class-1 level-0"><mark class="class-2 level-1"><mark class="class-3 level-2">ist</mark> ein</mark> Test</mark></mark><span class="context-right"> übergeben, aber im Gegensatz zu einem Referenzparamter dabei unverändert bleiben.</span></div>
	      <!-- only inject via javascript! -->
	    </div>
	    <p class="ref"><strong>Wertparameter</strong> by Hubi,Zwobot,4; published on 2005-03-28 as WWW.03313 (WPD)</p>
	    <!-- only inject via javascript! -->
	  </li>
	  <li data-corpus-id="WPD"
	      data-doc-id="FFF"
	      data-text-id="01460"
	      data-match-id="p119-120"
	      data-available-info="base/s=spans corenlp/c=spans corenlp/ne=tokens corenlp/p=tokens corenlp/s=spans glemm/l=tokens mate/l=tokens mate/m=tokens mate/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens tt/s=spans xip/c=spans"
	      id="WPD-FFF.01460-p119-120">
	    <div>
	      <div class="snippet startMore endMore"><span class="context-left">Der Fehler unterläuft häufig bei der direkten Übersetzung aus dem Englischen, wenn im originalen Ausdruck die beiden Wortteile verschiedene Wörter sind und sich das Adjektiv wahlweise auf das erste oder zweite Wort bezieht. Ein Beispiel ist multiples Testproblem für multiple </span><span class="match">test</span><span class="context-right"> problem.</span></div>
	      <div class="tokenInfo"></div>
	    </div>
	    <p class="ref"><strong>Fehlbezogenes Adjektiv</strong> by Joni2,Peterlustig,BWBot; published on 2005-03-28 as FFF.01460 (WPD)</p>
	  </li>

	  <li data-corpus-id="WPD"
	      data-doc-id="HHH"
	      data-text-id="06056"
	      data-match-id="p2564-2565"
	      data-available-info="base/s=spans corenlp/c=spans corenlp/ne=tokens corenlp/p=tokens corenlp/s=spans glemm/l=tokens mate/l=tokens mate/m=tokens mate/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens tt/s=spans xip/c=spans"
	      id="WPD-HHH.06056-p2564-2565"
	      class="marked">
	    <div>
	      <div class="flag"></div>
	      <div class="snippet startMore endMore"><span class="context-left">HDTV Samples from European (and other) broadcasters and </span><span class="match">test</span><span class="context-right"> transmissions in Europe</span></div>
	      <div class="tokenInfo"></div>
	    </div>
	    <p class="ref"><strong>High Definition Television</strong> by ArtMechanic,TheK,Andreas -horn- Hornig; published on 2005-03-28 as HHH.06056 (WPD)</p>
	  </li>
      </div>
      <div id="menu"></div>

      <div class="intro">
	<p><strong>KorAP</strong> is a new Corpus Analysis Platform, suited for large, multiple annotated corpora and complex search queries independent of particular research questions.</p>
	<p>This is the new frontend for KorAP, with currently no access to restricted corpora. For full access, please visit the <a href="http://korap.ids-mannheim.de/app">first frontend</a>.</p>

	<p><strong>New to KorAP?</strong> Please check out our <a href="#">tutorial</a>!</p>

	<p>KorAP is developed at the <a href="http://www.ids-mannheim.de">Institute for the German Language</a> and funded by the <a href="http://www.leibniz-gemeinschaft.de/en/about-us/leibniz-competition/projekte-2011/2011-funding-line-2/">Leibniz Association</a>. The separated modules are being published as open source at <a href="http://github.com/KorAP">GitHub</a>.</p>
      </div>
      <div id="logos">
	<div>
	  <a href="http://www.ids-mannheim.de/" class="logo"><p id="ids-logo"><span>Developed at the Institute for the German Language (IDS)</span></p></a>
	  <a href="http://www.leibniz-gemeinschaft.de/" class="logo"><p id="leibniz-logo"><span>Member of the Leibniz Association</span></p></a>
	</div>
      </div>
    </main>

    <footer>
      <a href="/doc/KorAP">About</a>
      <a href="http://korap.ids-mannheim.de/">About</a>
      <a href="#">V 0.14</a>
    </footer>

    <script>
      var KorAP = KorAP || {};
      KorAP.URL = 'http://localhost:3000';
    </script>
    <script>//<![CDATA[
KorAP.Notifications = [];
KorAP.Notifications.push(["warn","767: Case insensitivity is currently not supported for this layer"]);
KorAP.Notifications.push(["error","404: Not Found (remote)"]);
//]]>
    </script>
  </body>
</html>
