<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>YaCy Interactive Search</title> #%env/templates/metas.template%# <script language="Javascript"> //<![CDATA[ function xmlhttpPost() { var searchform = document.forms['searchform']; search(searchform.query.value); } function search(query) { var xmlHttpReq = false; var self = this; if (window.XMLHttpRequest) { // Mozilla/Safari self.xmlHttpReq = new XMLHttpRequest(); } else if (window.ActiveXObject) { // IE self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); } self.xmlHttpReq.open('GET', "yacysearch.json?verify=false&resource=local&maximumRecords=100&query=" + query, true); self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); self.xmlHttpReq.onreadystatechange = function() { if (self.xmlHttpReq.readyState == 4) { updatepage(self.xmlHttpReq.responseText); } } self.xmlHttpReq.send(null); } function updatepage(str) { var raw = document.getElementById("raw"); if (raw != null) raw.innerHTML = str; var rsp = eval("("+str+")"); var firstChannel = rsp.channels[0]; var totalResults = firstChannel.totalResults; var startIndex = firstChannel.startIndex; var itemsPerPage = firstChannel.itemsPerPage; var html = "<span id=\"resCounter\" style=\"display: inline;\">total results = " + totalResults; if (firstChannel.topwords.length > 0) { var topwords = ""; for (var i = 0; i < firstChannel.topwords.length; i++) { topwords += "<a href=\"yacyinteractive.html?query=" + firstChannel.searchTerms + "+" + firstChannel.topwords[i].word + "\">" + firstChannel.topwords[i].word + "</a> "; if (i > 10) break; } html += " topwords: " + topwords; } html += "</span><br>"; if (totalResults > 0) { var item; html += "<table class=\"networkTable\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\" width=\"99%\">"; html += "<tr class=\"TableHeader\" valign=\"bottom\">"; html += "<td>Name</td>"; html += "<td width=\"60\">Size</td>"; //html += "<td>Description</td>"; html += "<td width=\"180\">Date</td></tr>"; for (var i = 0; i < firstChannel.items.length; i++) { item = firstChannel.items[i]; html += "<tr class=\"TableCellLight\"><td align=\"left\"><a href=\"" + item.link + "\">" + item.title + "</a></td>"; html += "<td align=\"right\">" + item.sizename + "</td>"; //html += "<td>" + item.description + "</td>"; html += "<td align=\"right\">" + item.pubDate + "</td></tr>"; } html += "</table>"; } document.getElementById("searchresults").innerHTML = html; } //]]> </script> </head> <body> <script type="text/javascript"> //<![CDATA[ var q = "#[query]#"; if (q != "") search(q); //]]> </script> #(display)# #%env/templates/simpleheader.template%# :: <div id="api"><a href="yacysearch.json?query=yacy"><img src="env/grafics/api.png" alt="API"/></a> <span>This page uses the JSON search API to display search results as you type. Click the API icon to see an example call to the native API. To see a list of all APIs, please visit the <a href="http://www.yacy-websuche.de/wiki/index.php/Dev:API">API wiki page</a>.</span> </div> #%env/templates/header.template%# :: #%env/templates/embeddedheader.template%# #(/display)# <form class="search small" name="searchform" action="yacyinteractive.html" method="get" onkeyup="xmlhttpPost(); return false;"> <h2>#[promoteSearchPageGreeting]#</h2> <div class="yacylogo"> <a href="#[promoteSearchPageGreeting.homepage]#" class="yacylogo"><img src="#[promoteSearchPageGreeting.smallImage]#" alt="yacysearch"/></a> </div> <fieldset class="yacys"><input name="query" type="text" value="#[query]#" size="50" maxlength="80" /></fieldset> <!--<pre>Raw JSON String: <div id="raw"></div></pre>--> </form> <div id="searchresults"></div> #%env/templates/footer.template%# </body> </html>