|
@@ -0,0 +1,141 @@
|
|
|
+if(searx.autocompleter) {
|
|
|
+ window.addEvent('domready', function() {
|
|
|
+ new Autocompleter.Request.JSON('q', '/autocompleter', {
|
|
|
+ postVar:'q',
|
|
|
+ postData:{
|
|
|
+ 'format': 'json'
|
|
|
+ },
|
|
|
+ ajaxOptions:{
|
|
|
+ timeout: 5 // Correct option?
|
|
|
+ },
|
|
|
+ 'minLength': 4,
|
|
|
+ 'selectMode': false,
|
|
|
+ cache: true,
|
|
|
+ delay: 300
|
|
|
+ });
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+(function (w, d) {
|
|
|
+ 'use strict';
|
|
|
+ function addListener(el, type, fn) {
|
|
|
+ if (el.addEventListener) {
|
|
|
+ el.addEventListener(type, fn, false);
|
|
|
+ } else {
|
|
|
+ el.attachEvent('on' + type, fn);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function placeCursorAtEnd() {
|
|
|
+ if (this.setSelectionRange) {
|
|
|
+ var len = this.value.length * 2;
|
|
|
+ this.setSelectionRange(len, len);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ addListener(w, 'load', function () {
|
|
|
+ var qinput = d.getElementById('q');
|
|
|
+ if (qinput !== null && qinput.value === "") {
|
|
|
+ addListener(qinput, 'focus', placeCursorAtEnd);
|
|
|
+ qinput.focus();
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ if (!!('ontouchstart' in window)) {
|
|
|
+ document.getElementsByTagName("html")[0].className += " touch";
|
|
|
+ }
|
|
|
+
|
|
|
+})(window, document);
|
|
|
+
|
|
|
+var xmlHttp
|
|
|
+
|
|
|
+function GetXmlHttpObject(){
|
|
|
+
|
|
|
+ var xmlHttp = null;
|
|
|
+
|
|
|
+ try {
|
|
|
+ // Firefox, Opera 8.0+, Safari
|
|
|
+ xmlHttp = new XMLHttpRequest();
|
|
|
+ }
|
|
|
+ catch (e) {
|
|
|
+ // Internet Explorer
|
|
|
+ try {
|
|
|
+ xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
|
|
|
+ }
|
|
|
+ catch (e){
|
|
|
+ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return xmlHttp;
|
|
|
+}
|
|
|
+
|
|
|
+var timer;
|
|
|
+
|
|
|
+// Load more results
|
|
|
+function load_more(query,page){
|
|
|
+
|
|
|
+ xmlHttp = GetXmlHttpObject();
|
|
|
+ clearTimeout(timer);
|
|
|
+
|
|
|
+ if(xmlHttp == null){
|
|
|
+ alert ("Your browser does not support AJAX!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ favicons[page] = [];
|
|
|
+
|
|
|
+ xmlHttp.onreadystatechange = function(){
|
|
|
+
|
|
|
+ var loader = document.getElementById('load_more');
|
|
|
+
|
|
|
+ // If 4, response OK
|
|
|
+ if (xmlHttp.readyState == 4){
|
|
|
+
|
|
|
+ var res = xmlHttp.responseText;
|
|
|
+
|
|
|
+ clearTimeout(timer);
|
|
|
+ timer = setTimeout(function(){},6000);
|
|
|
+
|
|
|
+ var results = document.getElementById('results_list');
|
|
|
+
|
|
|
+ var newNode = document.createElement('span');
|
|
|
+ newNode.innerHTML = res;
|
|
|
+ results_list.appendChild(newNode);
|
|
|
+
|
|
|
+ var scripts = newNode.getElementsByTagName('script');
|
|
|
+ for (var ix = 0; ix < scripts.length; ix++) {
|
|
|
+ eval(scripts[ix].text);
|
|
|
+ }
|
|
|
+
|
|
|
+ load_images(page);
|
|
|
+ document.getElementById("load_more").onclick = function() { load_more(query, (page+1)); }
|
|
|
+ loader.removeAttribute("disabled");
|
|
|
+
|
|
|
+ } else {
|
|
|
+ loader.disabled = 'disabled';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var url = "/";
|
|
|
+ var params = "q="+query+"&pageno="+page+"&category_general=1&category_files=1&category_images=1&category_it=1&category_map=1&category_music=1&category_news=1&category_social+media=1&category_videos=1";
|
|
|
+ xmlHttp.open("POST",url,true);
|
|
|
+ xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
|
|
+ xmlHttp.setRequestHeader("Content-length", params.length);
|
|
|
+ xmlHttp.setRequestHeader("Connection", "close");
|
|
|
+ xmlHttp.send(params);
|
|
|
+}
|
|
|
+
|
|
|
+// Load the images on the canvas in the page
|
|
|
+function load_images(page){
|
|
|
+ var arrayLength = favicons[page].length;
|
|
|
+ for (var i = 1; i < arrayLength+1; i++) {
|
|
|
+ var img = new Image();
|
|
|
+ img.setAttribute("i",i)
|
|
|
+ img.onload = function () {
|
|
|
+ var id = 'canvas-'+page+'-'+this.getAttribute("i");
|
|
|
+ var can = document.getElementById(id);
|
|
|
+ var ctx = can.getContext("2d");
|
|
|
+ ctx.drawImage(this, 0, 0, 16, 16);
|
|
|
+ };
|
|
|
+ img.src = favicons[page][i];
|
|
|
+ }
|
|
|
+}
|