1/* JCSbox.js - Copyright IMUK Ltd 2017 */ 2(function() { 3 var JCSresPage = '/Custom-Search'; 4 var JCSmoreLbl = ''; 5 if (JCSmoreLbl.length > 0) {JCSmoreLbl = ' more:'+JCSmoreLbl;} 6 $('.JCSbox:not(.processed)').addClass('processed').append('<a href="#" class="JCSboxClear" title="Clear">×</a><div class="JCSboxACs"></div>').each(function() { 7 var $JCSboxInput = $(this).find('.JCSboxInput'); 8 var $JCSboxLink = $(this).find('.JCSboxLink'); 9 var $JCSboxClear = $(this).find('.JCSboxClear'); 10 var $JCSboxACs = $(this).find('.JCSboxACs'); 11 $JCSboxInput.attr('placeholder', 'Search...').on('focus', function() { 12 $JCSboxACs.slideDown('fast'); 13 }).on('blur', function() { 14 $JCSboxACs.delay(100).slideUp('fast'); 15 }).on('keydown', function(e) { 16 if (e.which == 13) { 17 e.preventDefault(); 18 } 19 }).on('keyup', function(e) { 20 var v; 21 if (e.which == 13) { 22 e.preventDefault(); 23 v = $.trim($(this).val()); 24 if (v.length > 0) { 25 window.location.assign(JCSresPage+'?q='+v+JCSmoreLbl); 26 return; 27 } else { 28 $JCSboxInput.focus(); 29 } 30 } else { 31 v = $(this).val(); 32 if (v.length > 0) { 33 $JCSboxClear.show(); 34 } else { 35 $JCSboxClear.hide(); 36 } 37 v = $.trim(v); 38 if (v.length > 0) { 39 $JCSboxACs.addClass('is-active'); 40 runJCSAC(v); 41 } else { 42 $JCSboxACs.empty(); 43 } 44 } 45 }); 46 $JCSboxLink.attr('title', 'Search').html('<img src="/images/CS_search_box_icon.png" alt="search" />').on('click', function(e) { 47 e.preventDefault(); 48 $JCSboxACs.hide(); 49 $JCSboxInput.trigger(jQuery.Event('keyup', {which: 13})); 50 }); 51 $JCSboxClear.on('click', function(e) { 52 e.preventDefault(); 53 $JCSboxACs.hide(); 54 $JCSboxInput.val('').trigger('keyup').focus(); 55 }); 56 $JCSboxACs.on('click', '.JCSboxAC', function(e) { 57 e.preventDefault(); 58 $JCSboxACs.hide(); 59 $JCSboxInput.val($(this).text()).trigger(jQuery.Event('keyup', {which: 13})); 60 }); 61 }); 62})(); 63function runJCSAC(q) { 64 var cx = '2e33c0fab99153772'; 65 var gcse = document.createElement('script'); 66 gcse.src = 'https://clients1.google.com/complete/search?client=partner-generic&hl=en&sugexp=gsnos%2Cn%3D13&gs_rn=25&gs_ri=partner-generic&partnerid='+cx+'&types=t&ds=cse&cp=1&gs_id=a&q='+q+'&callback=showJCSAC'; 67 var s = document.getElementsByTagName('script')[0]; 68 s.parentNode.insertBefore(gcse, s); 69} 70function showJCSAC(rsp) { 71 if (typeof rsp[1] === 'undefined') { 72 return; 73 } 74 var nAC = Math.min(10, rsp[1].length); 75 var $JCSboxACs = $('.JCSbox .JCSboxACs.is-active').removeClass('is-active').empty(); 76 for (var i = 0; i < nAC; i++) { 77 $JCSboxACs.append('<div class="JCSboxAC">' + rsp[1][i] + '</div>'); 78 } 79}
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.