1/* Copyright Pablo Software solutions 2020 - http://www.wysiwygwebbuilder.com */ 2var searchDatabase=new SearchDatabase,searchCurrentPage=0;function searchParseURL(a){var h=decodeURIComponent(window.location.href);if(0<h.indexOf("?")){var f="";h=h.split("?")[1].split("&");for(var c=0;c<h.length;c++){var d=h[c].split("=");if("q"==d[0]){f=unescape(d[1]);break}}""!=f&&(document.getElementById(a).value=f,searchPage(""))}} 3function get_context(a,h,f){var c=f/2-2,d="",g=j=0,l=-1,t=a.length;for(i=h=a.toLowerCase().indexOf(h);i<t;i++)if(i==h&&(l<i-c-1?d+="... "+a.substr(i-c,c):(c+=(l-i+c+1)/2,d+=a.substr(l+1,i-l-1)),l=i-1,g++,j=1),0<j&&(d+=a.substr(i,1),l++,j++," "==a.substr(i,1))){if(i+4<t){if(j>c&&1<=g||d.length>f){d+=" ...";break}}else j-=4;j>c&&(j=0)}return d} 4function searchPaginate(a,h,f){var c=$("#search-pagination");c.find("li").eq(searchCurrentPage+1).addClass("active").siblings().removeClass("active");var d=c.find("li:first-child");c=c.find("li:last-child");0==searchCurrentPage?d.addClass("disabled"):d.removeClass("disabled");searchCurrentPage==h-1?c.addClass("disabled"):c.removeClass("disabled");$("#"+a).find(".search-item").hide().slice(searchCurrentPage*f,(searchCurrentPage+1)*f).show()} 5function searchResults(a,h,f,c,d,g,l,t,v,B,z,e){searchCurrentPage=0;var b="",n=(new Date).getTime(),k=document.getElementById(a);if(0!=k.value.length||" "!=k.value){var m={},q=0;k=unescape(k.value);var p=k.split(" ");if(k.match('^"')&&k.match('"$')||k.match("^'")&&k.match("'$"))k=k.substring(1,k.length-1),p=[k];for(var w=q=0;w<database_length;w++){for(var x=0,A=searchDatabase[w].title+" "+searchDatabase[w].description+" "+searchDatabase[w].keywords,y=0;y<p.length;y++){var u=new RegExp(p[y],"i");u= 6A.search(u);0<=u?x++:p[y].match("^-")?(u=new RegExp(p[y].substring(1),"i"),u=A.search(u),0<=u?x=0:x++):x=0}x==p.length&&(m[q++]=searchDatabase[w])}if("mobile"==h){""!=z&&(b=b+'<li data-role="list-divider">'+q+z+k,b+="</li>");for(e=0;e<q;e++)b=b+'<li><a href="'+m[e].url+'" target="'+v+'"><h3>'+m[e].title+"</h3>",d&&(b=b+"<p>"+m[e].description+"</p>"),g&&(b=b+"<p>"+m[e].keywords+"</p>"),b+="</a></li>";0==q&&(b="<li>"+noResults+"</li>");$("#"+a+"_results").html(b);$("#"+a+"_results").listview("refresh")}else if(0== 7q)b+='<div class="search-text">',b+=B,b+="</div>";else for(""!=z&&(b+='<div class="search-text">',b=b+q+z+k,l&&(a=(new Date).getTime(),b+=" (",b+=((a-n)/1E3).toFixed(2),b+=" ",b+=e,b+=")"),b+="</div>"),e=0;e<q;e++){b+='<div class="search-item">';b=b+'<a class="search-title" href="'+m[e].url+'" target="'+v+'">'+m[e].title+"</a>";t&&(b+="<br>",b=b+'<a class="search-url" href="'+m[e].url+'" target="'+v+'">'+m[e].url+"</a>");d&&""!=m[e].description&&(b+="<br>",b+=m[e].description);if(g&&""!=m[e].keywords){a= 8m[e].keywords;a=k.toLowerCase().split(" ");a=get_context(m[e].keywords,a[0],f);for(n=0;n<p.length;n++)p[n]=p[n].replace("*",""),a=a.replace(new RegExp("("+p[n]+")","gi"),'<span class="search-highlight">$1</span>');b+="<br>";b+=a}b+="</div>"}var r=1;0<c&&(r=Math.ceil(q/c),1<r&&(b+='<ul id="search-pagination"><li><a href="#">«</a></li><li><a href="#">»</a></li></ul>'));$("#"+h).html(b);if(1<r){f=$("#search-pagination");for(d=0;d<r;d++)g="<a>"+(d+1)+"</a>",$("<li></li>").html(g).bind("click", 9{newPage:d},function(b){searchCurrentPage=b.data.newPage;searchPaginate(h,r,c)}).appendTo(f).addClass("clickable");f.find("li").eq(1).appendTo(f);f.find("li:first-child").click(function(){0<searchCurrentPage&&searchCurrentPage--;searchPaginate(h,r,c)});f.find("li:last-child").click(function(){searchCurrentPage<r-1&&searchCurrentPage++;searchPaginate(h,r,c)});searchPaginate(h,r,c)}}} 10function searchAutoComplete(a,h,f){var c=$("#"+a),d=$('<ul class="search-autocomplete"></ul>').hide().insertAfter(c),g=null,l=function(a){g=a;null===g?d.hide():(0>g&&(g=0),g>=d.find("li").length&&(g=d.find("li").length-1),d.find("li").removeClass("selected").eq(g).addClass("selected"),d.css("left",c.position().left),d.css("top",c.position().top+c.outerHeight()),d.css('width', c.outerWidth()),d.show())},t=function(){c.val(d.find("li").eq(g).text());l(null)},v=function(){for(var c=d.find("li").eq(g).text(),a=0;a<database_length;a++)if(0<= 11(searchDatabase[a].title+" "+searchDatabase[a].description+" "+searchDatabase[a].keywords).search(new RegExp(c,"i"))){f&&0!==f.length?window.open(searchDatabase[a].url,f):location.href=searchDatabase[a].url;break}};
11c.attr("autocomplete","off").keyup(function(a){if(40<a.keyCode||8==a.keyCode){a=[];var f=c.val();f=f.toLowerCase();for(b=0;b<database_length;b++){var e=(searchDatabase[b].title+" "+searchDatabase[b].description+" "+searchDatabase[b].keywords).toLowerCase().split(" ");a=$.merge(a,e)}e=[]; 12var b=0;a:for(;b<a.length;b++){for(var n=0;n<e.length;n++)if(e[n]==a[b])continue a;e[e.length]=a[b]}e.sort();if(f.length&&e.length){d.empty();var k=0;$.each(e,function(b,a){a=a.toLowerCase();0==a.indexOf(f)&&($("<li></li>").text(a).data("item",k).appendTo(d).mouseover(function(){var a=$(this).data("item");l(a)}).click(function(){1==h?v():t()}),k++)});l(0)}else l(null)}else 38==a.keyCode&&null!==g?(l(g-1),a.preventDefault()):40==a.keyCode&&null!==g?(l(g+1),a.preventDefault()):27==a.keyCode&&null!== 13g&&l(null)}).keypress(function(a){13==a.keyCode&&null!==g&&(1==h?v():t(),a.preventDefault())}).blur(function(a){setTimeout(function(){l(null)},250)})};
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.