PageSourceSearch

http://moslk.r1a.su/ds-comf/ds-search/js/dssearch.js

js r1a.su collected 2026-10-05 00:03:12 UTC 4,085 bytes, 132 lines download raw bytes

1/*--------------------
2* Live Search
3* @version 1.0
4* @author Sergey Aleksandrov <[email protected]>
5-------------------------*/
6
7if(!window.dsC) {
8	if(window.jQuery && !compareVersionjQuery('1.7') || !window.jQuery) {
9		console.error('Version jQuery < 1.7 or jQuery not found!');
10	} else {
11		dsC = window.jQuery;
12		rundsSearch();
13	}
14} else rundsSearch();
15function compareVersionjQuery(needjQuery) {
16	needjQuery = needjQuery.split('.',2);
17	nowjQuery = jQuery.fn.jquery.split('.',2);
18	if((parseInt(needjQuery[0]) != parseInt(nowjQuery[0])) || (parseInt(needjQuery[1]) > parseInt(nowjQuery[1]))) {
19		return false;
20	}
21	return true;
22}
23
24function rundsSearch() {
25	dsC(document).ready(function() {
26		var lielement;
27		var inputletters = dsC('.ds-search').attr('data-dssearch-letters');
28		var searchrows = dsC('.ds-search').attr('data-dssearch-rows');
29		var stylesearch = document.createElement('link');
30		stylesearch.rel = "stylesheet";
31		stylesearch.href = "/ds-comf/ds-search/css/dssearch.css";
32		document.body.appendChild(stylesearch);
33		if(!inputletters) {
34			inputletters = 3;
35		}
36		if(!searchrows) {
37			searchrows = 5;
38		}
39		dsC('.ds-search').attr('autocomplete','off');
40		dsC('.ds-search').keyup(function(keycode) {
41		var input = dsC(this);
42			if(dsC('#dsresultsearch ul li').hasClass('sliactive')) {
43				lielement = dsC('#dsresultsearch ul li.sliactive').index();
44			} else {
45				lielement = -1;
46			}
47			if(input.val().length >= inputletters) {
48				function keyArrowSearch() {
49		        		dsC('#dsresultsearch ul li').removeClass('sliactive');
50		        		dsC('#dsresultsearch ul li').eq(lielement).addClass('sliactive');
51		        		input.val(dsC('#dsresultsearch ul li.sliactive').html());
52				}
53		        switch(keycode.keyCode) {
54		            case 13: // enter
55		            	hiddendsSearch();
56		            break;
57		            case 27: // escape
58		            	hiddendsSearch();
59		            break;
60		            case 38: // arrowUP
61		            	keycode.preventDefault();
62		            	if(dsC('#dsresultsearch').is(":visible")){
63				            if(lielement == -1 || lielement == 0) {
64								lielement = dsC('#dsresultsearch ul li').length;
65							}
66							lielement--;
67			                keyArrowSearch();
68		            	}
69		            break;
70		            case 40: // arrowDown
71		                keycode.preventDefault();
72			            if(dsC('#dsresultsearch').is(":visible")){
73			                lielement++;
74			                if(dsC('#dsresultsearch ul li').length == lielement) {
75								lielement = 0;
76							}
77		                	keyArrowSearch();
78		            	}
79		            break;
80		            default:
81						dsC.ajax({
82							type: "POST",
83							url: "/ds-comf/ds-search/search.php",
84							dataType:  "json",  
85							cache: false,
86							data: {"value":input.val(), "searchrows":searchrows},
87							success: function(data){
88								switch (data['result']) {
89								  case 1:
90									   	delete(data['result']);
91										var htmlresult = '<ul>' + "\n";
92										dsC.each(data, function(index, result) {
93											htmlresult += '<li>' + result + '</li>' + "\n";
94										})
95										htmlresult += '</ul>' + "\n";
96										dsC('#dsresultsearch').html(htmlresult);
97										dsC('#dsresultsearch').show();
98								    break
99								  case 2:
100										hiddendsSearch();
101								    break
102								  default:
103								    console.warn(data);
104								}
105							}
106						});
107		        }
108
109		    } else if(dsC('#dsresultsearch').is(":visible")){
110				hiddendsSearch();
111			}
112		});
113		dsC('body').on('mouseover', '#dsresultsearch ul li', function(){
114			dsC('#dsresultsearch ul li').removeClass('sliactive');
115			dsC(this).addClass('sliactive');
116		});
117		dsC('body').on('click', '#dsresultsearch ul li', function(){
118			dsC('.ds-search').val(dsC(this).html());
119			hiddendsSearch();
120			dsC('.ds-search').parents('form').submit();
121		});
122		dsC('body').on('click', function() {
123			if(dsC('#dsresultsearch').is(":visible")){
124				hiddendsSearch();
125			}
126		});
127		function hiddendsSearch() {
128			dsC('#dsresultsearch').empty();
129		    dsC('#dsresultsearch').hide();
130		}
131	});
132}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.