 <!DOCTYPE html>
<html>
  <head>
    <title>Complete Demo</title>
    <meta charset="utf-8" />
    <link type="text/css" rel="stylesheet" href="../css/kalamar.css" />
    <link type="text/css" rel="stylesheet" href="../css/kwic.css" />
    <script>//<![CDATA[

  window.KorAP = window.KorAP || {};
  KorAP.URL = '';

    //]]></script>
    <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" tabindex="-1"><h1><span>KorAP - Corpus Analysis Platform</span></h1></a>

      <div class="button top">
<!--
	<a href="#" class="login" tabindex="-1"><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"
		 value="abcdefghijklmnopqrstuvwxyz"
		 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="show" name="show" type="hidden" />
        <input id="collection-name" name="collection-name" type="hidden">
        <input id="collection" name="collection" type="text" value="">
	with <span class="menu select">
	  <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" tabindex="-1" 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">
      <div>
	<fieldset>
	  <form>
	    <legend><span>Anmelden</span></legend>
 	    <input type="text" name="handle_or_email" placeholder="Benutzername" />
	    <div>
	      <input type="password" name="pwd" placeholder="Passwort" />
	      <button type="submit"><span>Go</span></button>
	    </div>
	  </form>
	  <ul style="font-size: 80%">
	    <li><a href="#">Registrieren</a></li>
	    <li><a href="#">Passwort vergessen?</a></li>
	  </ul>
	</fieldset>
      </div>

<!--
      <h2>Einstellungen</h2>
      <a>Deutsch|Englisch</a>
-->
    </aside>

    <main>
      <div id="resultinfo" class="found">
	<div id="pagination">
	  <a rel="prev"><span><span>&lt;</span></span></a>
	  <a rel="self"><span>1</span></a>
	  <a href="#2" tabindex="4"><span>2</span></a>
	  <a href="#3" tabindex="4"><span>3</span></a>
	  <a class="ellipsis"><span><span>...</span></span></a>
	  <a href="#52230" tabindex="4"><span>52230</span></a>
	  <a rel="next" href="#2" tabindex="4"><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>

      <script>
        /*
	      KorAP.koralQuery = {"matches":["..."],"errors":[[302,"Parantheses\/brackets unbalanced.","20"]],"query":{"wrap":{"layer":"orth","match":"match:eq","foundry":"opennlp","key":"Goethe","@type":"koral:term"},"@type":"koral:token"},"meta":{"serialQuery":"tokens:s:Goethe","startIndex":0,"version":"unknown","itemsPerPage":25,"context":"p","benchmark":"0.103553092 s","totalResults":-1}};
        */
        KorAP.koralQuery = {"matches":["..."],"query":{"wrap":{"layer":"orth","match":"match:eq","foundry":"opennlp","key":"Goethe","@type":"koral:term"},"@type":"koral:token"},"meta":{"serialQuery":"tokens:s:Goethe","startIndex":0,"version":"unknown","itemsPerPage":25,"context":"p","benchmark":"0.103553092 s","totalResults":-1}};
      </script>

      <div id="search">
	<ol class="align-left" tabindex="-8">
	  <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"
	      tabindex="6">
	    <div class="meta">WPD/WWW/03313</div>
      <div class="match-main">
        <div class="match-wrap">
	        <div class="snippet startMore endMore">
	          <div class="flag"></div>
            <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>
        </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"
	      tabindex="6">
	    <div class="meta">WPD/III/78432</div>
      <div class="match-main">
        <div class="match-wrap">
	        <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>
      </div>
	  </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"
	      tabindex="6">
	    <div class="meta">WPD/HHH/06056</div>
      <div class="match-main">
        <div class="match-wrap">
	        <div class="snippet startMore endMore">
	          <div class="flag"></div>
            <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>
      </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>
