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