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.