|  | 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];
 | 
						
						
						
							|  |     }
 | 
						
						
						
							|  | } |