PageSourceSearch

https://www.taratur.com/wp-content/themes/woohoo/js/search.js

js taratur.com collected 2026-10-02 12:16:00 UTC 13,200 bytes, 235 lines download raw bytes

1! function($) {
2    $.fn.extend({
3        ajaxyLiveSearch: function(e, s) {
4            return e = e && "object" == typeof e ? $.extend({}, $.ajaxyLiveSearch.defaults, e) : $.ajaxyLiveSearch.defaults, this.is("input") ? void this.each(function() {
5                new $.ajaxyLiveSearch.load(this, e, s)
6            }) : void 0
7        }
8    }), $.ajaxyLiveSearch = {
9        element: null,
10        timeout: null,
11        options: null,
12        load: function(e, s) {
13            this.element = e, this.timeout = null, this.options = s, "" == $(e).val() && $(e).val(s.text), $(e).attr("autocomplete", "off"), 0 == $("#sf_sb").length && $(".bdaia-ns-inner").append('<div id="sf_sb" class="sf_sb" style="position:absolute;display:none;width:' + s.width + 'px;z-index:9999"><div class="sf_sb_cont"><div class="sf_sb_top"></div><div id="sf_results" style="width:100%"><div id="sf_val" ></div><div id="sf_more"></div></div><div class="sf_sb_bottom"></div></div></div>'), $.ajaxyLiveSearch.loadEvents(this)
14        },
15        loadResults: function(object) {
16            if (options = object.options, elem = object.element, window.sf_lastElement = elem, "" != jQuery(elem).val()) {
17                jQuery("body").data("sf_results", null);
18                var loading = '<li class="sf_lnk sf_more sf_selected"><a id="sf_loading" href="' + options.searchUrl.replace("%s", encodeURI(jQuery(elem).val())) + '"><i class=\"bdaia-io bdaia-io-spinner10 bdaia-io-spin\"></i></a></li>';
19                jQuery("#sf_val").html("<ul>" + loading + "</ul>");
20
21                var pos = this.bounds(elem, options);
22                var containerPos = this.bounds('.bd-container' , options);
23                if(!pos) {
24                    jQuery("#sf_sb").hide();
25                    return false;
26                }
27                if(Math.ceil(containerPos.left) + parseInt(options.width, 10) > jQuery(window).width()) {
28                    jQuery("#sf_sb").css('width', jQuery(window).width() - containerPos.left - 20);
29                }
30                if( jQuery( 'body' ).hasClass( "rtl" ) ) {
31                    jQuery("#sf_sb").css({top:pos.bottom, right:containerPos.right});
32                }else{
33                    jQuery("#sf_sb").css({top:pos.bottom, right:containerPos.left});
34                }
35                jQuery("#sf_sb").show();
36
37
38                var data = {
39                    action: "ajaxy_sf",
40                    sf_value: jQuery(elem).val(),
41                    search: options.search
42                };
43                if (options.ajaxData && (data = window[options.ajaxData](data)), options.search) {
44                    var mresults = options.search.split(","),
45                        results = [],
46                        m = "",
47                        s = 0,
48                        c = [];
49                    for (var kindex in mresults) {
50                        var dm = mresults[kindex].split(":");
51                        2 == dm.length ? 0 == dm[1].indexOf(jQuery(elem).val()) && (results[results.length] = mresults[kindex]) : 1 == dm.length && 0 == mresults[kindex].indexOf(jQuery(elem).val()) && (results[results.length] = mresults[kindex])
52                    }
53                    c = $.ajaxyLiveSearch.htmlArrayResults(results), m += c[0], s += c[1];
54                    var sf_selected = "";
55                    0 == s && (sf_selected = " sf_selected"), m += '<li class="sf_lnk sf_more' + sf_selected + '">{total} Results Found</li>', m = m.replace(/{search_value_escaped}/g, jQuery(elem).val()), m = m.replace(/{search_url_escaped}/g, options.searchUrl.replace("%s", encodeURI(jQuery(elem).val()))), m = m.replace(/{search_value}/g, jQuery(elem).val()), m = m.replace(/{total}/g, s), jQuery("body").data("sf_results", results), jQuery("#sf_val").html(s > 0 ? "<ul>" + m + "</ul>" : "<ul>" + m + "</ul>"), $.ajaxyLiveSearch.loadLiveEvents(object), jQuery("#sf_sb").show()
56                } else jQuery.post(options.ajaxUrl, data, function(resp) {
57                    var results = eval("(" + resp + ")"),
58                        m = "",
59                        s = 0;
60                    for (var mindex in results) {
61                        var c = [];
62                        for (var kindex in results[mindex]) c = $.ajaxyLiveSearch.htmlResults(results[mindex][kindex], mindex, kindex), m += c[0], s += c[1]
63                    }
64                    var sf_selected = "";
65                    0 == s && (sf_selected = " sf_selected"), options.callback || (m += '<li class="sf_lnk sf_more' + sf_selected + '">' + sf_templates + "</li>"), m = m.replace(/{search_value_escaped}/g, jQuery(elem).val()), m = m.replace(/{search_url_escaped}/g, options.searchUrl.replace("%s", encodeURI(jQuery(elem).val()))), m = m.replace(/{search_value}/g, jQuery(elem).val()), m = m.replace(/{total}/g, s), jQuery("body").data("sf_results", results), jQuery("#sf_val").html(s > 0 ? '<ul class="sf_main">' + m + "</ul>" : '<ul class="sf_main">' + m + "</ul>"), $.ajaxyLiveSearch.loadLiveEvents(object), jQuery("#sf_sb").show()
66                })
67            } else jQuery("#sf_sb").hide()
68        },
69        bounds: function(e, s) {
70            var t = jQuery(e).offset();
71            return t ? {
72                top: t.top,
73                left: t.left + s.leftOffset,
74                bottom: t.top + jQuery(e).innerHeight() + s.topOffset,
75                right: t.left - jQuery("#sf_sb").innerWidth() + jQuery(e).innerWidth()
76            } : void 0
77        },
78        htmlResults: function(e, s, t) {
79            var l = "",
80                a = 0;
81            if ("undefined" != typeof e && e.all.length > 0) {
82                l += '<li class="sf_header">' + e.title + '</li><li><div class="sf_result_container"><ul>';
83                for (var r = 0; r < e.all.length; r++) a++, l += "<li result-type='object' index-type='" + s + "' index-array='" + t + "' index='" + r + "' class=\"sf_lnk " + e.class_name + '">' + $.ajaxyLiveSearch.replaceResults(e.all[r], e.template) + "</li>";
84                l += "</ul></div></li>"
85            }
86            return new Array(l, a)
87        },
88        htmlArrayResults: function(e) {
89            var s = "",
90                t = 0;
91            if ("undefined" != typeof e && e.length > 0) {
92                s += '<li><div class="sf_result_container"><ul>';
93                for (var l = 0; l < e.length; l++) {
94                    var a = e[l].split(":"),
95                        r = "";
96                    r = 2 == a.length ? a[1] : e[l], t++, s += "<li result-type='array' index='" + l + "' class=\"sf_lnk sf_category\"><a href='javascript:;'>" + r + "</a></li>"
97                }
98                s += "</ul></div></li>"
99            }
100            return new Array(s, t)
101        },
102        replaceResults: function(e, s) {
103            for (var t in e) s = s.replace(new RegExp("{" + t + "}", "g"), e[t]);
104            return s
105        },
106        loadLiveEvents: function(e) {
107            var s = {
108                object: e
109            };
110            jQuery("#sf_val li.sf_lnk").mouseover(function() {
111                jQuery(".sf_lnk").each(function() {
112                    jQuery(this).attr("class", jQuery(this).attr("class").replace(" sf_selected", ""))
113                }), jQuery(this).attr("class", jQuery(this).attr("class") + " sf_selected")
114            }), s.object.options.callback && jQuery("#sf_val li.sf_lnk").click(function() {
115                try {
116                    window[s.object.options.callback](s.object, this)
117                } catch (e) {
118                    alert(e)
119                }
120                return !1
121            })
122        },
123        loadEvents: function(e) {
124            var s = {
125                object: e
126            };
127            jQuery(document).click(function() {
128                jQuery("#sf_sb").hide()
129            }), jQuery(window).resize(function() {
130                var e = $.ajaxyLiveSearch.bounds(window.sf_lastElement, s.object.options);
131                e && jQuery("#sf_sb").css({
132                    top: e.bottom,
133                    left: e.left
134                })
135            }), jQuery(e.element).keyup(function(e) {
136                if ("38" != e.keyCode && "40" != e.keyCode && "13" != e.keyCode && "27" != e.keyCode && "39" != e.keyCode && "37" != e.keyCode) {
137                    var t = s.object;
138                    null != t.timeout && clearTimeout(t.timeout), jQuery(t.element).attr("class", jQuery(t.element).attr("class").replace(" sf_focused", "") + " sf_focused");
139                    var l = {
140                        object: s.object
141                    };
142                    t.timeout = setTimeout(function() {
143                        jQuery.ajaxyLiveSearch.loadResults(l.object)
144                    }, s.object.options.delay)
145                }
146            }), jQuery(window).keydown(function(e) {
147                if ("none" != jQuery("#sf_sb").css("display") && "undefined" != jQuery("#sf_sb").css("display") && jQuery("#sf_sb").length > 0)
148                    if ("38" == e.keyCode || "40" == e.keyCode) {
149                        jQuery.browser.webkit && jQuery("#sf_sb").focus();
150                        var t = !1,
151                            l = jQuery("#sf_val li.sf_lnk"),
152                            a = !1;
153                        e.stopPropagation(), e.preventDefault();
154                        for (var r = 0; r < l.length; r++) jQuery(l[r]).attr("class").indexOf("sf_selected") >= 0 && 0 == a ? (t = !0, r < l.length - 1 && "40" == e.keyCode ? (jQuery(l[r]).attr("class", jQuery(l[r]).attr("class").replace(" sf_selected", "")), jQuery(l[r + 1]).attr("class", jQuery(l[r + 1]).attr("class") + " sf_selected"), r += 1, a = !0) : r > 0 && "38" == e.keyCode && (jQuery(l[r]).attr("class", jQuery(l[r]).attr("class").replace(" sf_selected", "")), jQuery(l[r - 1]).attr("class", jQuery(l[r - 1]).attr("class") + " sf_selected"), r += 1, a = !0)) : jQuery(l[r]).attr("class", jQuery(l[r]).attr("class").replace(" sf_selected", ""));
155                        0 == t && l.length > 0 && jQuery(l[0]).attr("class", jQuery(l[0]).attr("class") + " sf_selected")
156                    } else if (27 == e.keyCode) jQuery("#sf_sb").hide();
157                    else if (13 == e.keyCode) {
158                        var o = jQuery("#sf_val li.sf_selected a").attr("href");
159                        return "undefined" != typeof o && "" != o ? (s.object.options.callback ? s.object.options.callback(this) : window.location.href = o, !1) : (s.object.options.callback ? s.object.options.callback(this) : null != s.object.element && (window.location.href = sf_url.replace("%s", encodeURI(jQuery(s.object).val()))), !1)
160                    }
161            }), jQuery(e.element).focus(function() {
162                jQuery(this).val() == s.object.options.text && (jQuery(this).val(""), jQuery(this).attr("class", jQuery(this).attr("class") + " sf_focused")), s.object.options.expand > 0 && jQuery(s.object.element).animate({
163                    width: s.object.options.iwidth
164                })
165            }), jQuery(e.element).blur(function() {
166                "" == jQuery(this).val() && (jQuery(this).val(s.object.options.text), jQuery(this).attr("class", jQuery(this).attr("class").replace(/ sf_focused/g, ""))), s.object.options.expand > 0 && jQuery(s.object.element).animate({
167                    width: s.object.options.expand
168                })
169            })
170        }
171    }, $.ajaxyLiveSearch.defaults = {
172        delay: 500,
173        leftOffset: 0,
174        topOffset: 5,
175        text: "Search For",
176        iwidth: 180,
177        width: 315,
178        ajaxUrl: "",
179        ajaxData: !1,
180        searchUrl: "",
181        expand: !1,
182        callback: !1,
183        rtl: !0,
184        search: !1
185    }
186}(jQuery);
187
188function sf_addItem(search, title, name, name_type, value) {
189    var items = jQuery(search).find('.sf_ajaxy-selective-item');
190    var exists = false;
191
192    var key = "";
193    var md = value.split(':');
194    if(md.length == 2) {
195        key = md[0];
196    }else{
197        key = value;
198    }
199    if(items.length > 0) {
200        for(var i = 0; i < items.length; i ++) {
201            if(jQuery(items[i]).find('input.sf_ajaxy-selective-close-hidden').val() == key){
202                exists = true;
203                break;
204            }
205        }
206    }
207    if(exists) {
208        jQuery(search).find(".sf_ajaxy-selective-input").val("");
209        jQuery('#sf_sb').hide();
210        return;
211    }
212    var mds = title.split(':');
213    if(mds.length == 2) {
214        title = md[1];
215    }
216    var added_item = jQuery('<span class="sf_ajaxy-selective-item">' + title + '<a class="sf_ajaxy-selective-close">X</a><input class="sf_ajaxy-selective-close-hidden" type="hidden" name="' + name + '" value="' + key + '" /></span>');
217    if(items.length <= 0){
218        jQuery(search).prepend(added_item);
219    }else{
220        added_item.insertAfter(items[items.length - 1]);
221    }
222    added_item.click(function() {
223        jQuery(this).remove();
224    });
225    var input = jQuery(search).find(".sf_ajaxy-selective-input");
226    if(input) {
227        input.val("");
228        if(name_type != 'array') {
229            input.css('visibility', 'hidden');
230        }else{
231            input.focus();
232        }
233    }
234    jQuery('#sf_sb').hide();
235}

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.