|
Packit Service |
50c9f2 |
/*
|
|
Packit Service |
50c9f2 |
@licstart The following is the entire license notice for the
|
|
Packit Service |
50c9f2 |
JavaScript code in this file.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
Copyright (C) 1997-2017 by Dimitri van Heesch
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
This program is free software; you can redistribute it and/or modify
|
|
Packit Service |
50c9f2 |
it under the terms of the GNU General Public License as published by
|
|
Packit Service |
50c9f2 |
the Free Software Foundation; either version 2 of the License, or
|
|
Packit Service |
50c9f2 |
(at your option) any later version.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
This program is distributed in the hope that it will be useful,
|
|
Packit Service |
50c9f2 |
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit Service |
50c9f2 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
Packit Service |
50c9f2 |
GNU General Public License for more details.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
You should have received a copy of the GNU General Public License along
|
|
Packit Service |
50c9f2 |
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
Packit Service |
50c9f2 |
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
@licend The above is the entire license notice
|
|
Packit Service |
50c9f2 |
for the JavaScript code in this file
|
|
Packit Service |
50c9f2 |
*/
|
|
Packit Service |
50c9f2 |
function SearchBox(name, resultsPath, inFrame, label)
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
this.searchLabel = label;
|
|
Packit Service |
50c9f2 |
this.DOMSearchField = function()
|
|
Packit Service |
50c9f2 |
{ return document.getElementById("MSearchField"); }
|
|
Packit Service |
50c9f2 |
this.DOMSearchBox = function()
|
|
Packit Service |
50c9f2 |
{ return document.getElementById("MSearchBox"); }
|
|
Packit Service |
50c9f2 |
this.OnSearchFieldFocus = function(isActive)
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
if (isActive)
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
this.DOMSearchBox().className = 'MSearchBoxActive';
|
|
Packit Service |
50c9f2 |
var searchField = this.DOMSearchField();
|
|
Packit Service |
50c9f2 |
if (searchField.value == this.searchLabel)
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
searchField.value = '';
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
else
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
this.DOMSearchBox().className = 'MSearchBoxInactive';
|
|
Packit Service |
50c9f2 |
this.DOMSearchField().value = this.searchLabel;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
function trim(s) {
|
|
Packit Service |
50c9f2 |
return s?s.replace(/^\s\s*/, '').replace(/\s\s*$/, ''):'';
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
function getURLParameter(name) {
|
|
Packit Service |
50c9f2 |
return decodeURIComponent((new RegExp('[?|&]'+name+
|
|
Packit Service |
50c9f2 |
'='+'([^&;]+?)(&|#|;|$)').exec(location.search)
|
|
Packit Service |
50c9f2 |
||[,""])[1].replace(/\+/g, '%20'))||null;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
var entityMap = {
|
|
Packit Service |
50c9f2 |
"&": "&",
|
|
Packit Service |
50c9f2 |
"<": "<",
|
|
Packit Service |
50c9f2 |
">": ">",
|
|
Packit Service |
50c9f2 |
'"': '"',
|
|
Packit Service |
50c9f2 |
"'": ''',
|
|
Packit Service |
50c9f2 |
"/": '/'
|
|
Packit Service |
50c9f2 |
};
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
function escapeHtml(s) {
|
|
Packit Service |
50c9f2 |
return String(s).replace(/[&<>"'\/]/g, function (s) {
|
|
Packit Service |
50c9f2 |
return entityMap[s];
|
|
Packit Service |
50c9f2 |
});
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
function searchFor(query,page,count) {
|
|
Packit Service |
50c9f2 |
$.getJSON(serverUrl+"?cb=?",
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
n:count,
|
|
Packit Service |
50c9f2 |
p:page,
|
|
Packit Service |
50c9f2 |
q:query
|
|
Packit Service |
50c9f2 |
},
|
|
Packit Service |
50c9f2 |
function(data) {
|
|
Packit Service |
50c9f2 |
var results = $('#searchresults');
|
|
Packit Service |
50c9f2 |
$('#MSearchField').val(query);
|
|
Packit Service |
50c9f2 |
if (data.hits>0) {
|
|
Packit Service |
50c9f2 |
if (data.hits==1) {
|
|
Packit Service |
50c9f2 |
results.html(''+searchResultsText[1]+' ');
|
|
Packit Service |
50c9f2 |
} else {
|
|
Packit Service |
50c9f2 |
results.html(''+searchResultsText[2].replace(/\$num/,data.hits)+' ');
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
var r='';
|
|
Packit Service |
50c9f2 |
$.each(data.items, function(i,item){
|
|
Packit Service |
50c9f2 |
var prefix = tagMap[item.tag];
|
|
Packit Service |
50c9f2 |
if (prefix) prefix+='/'; else prefix='';
|
|
Packit Service |
50c9f2 |
r+=''+
|
|
Packit Service |
50c9f2 |
''+(data.first+i+1)+'.'+
|
|
Packit Service |
50c9f2 |
''+escapeHtml(item.type)+' '+
|
|
Packit Service |
50c9f2 |
'
|
|
Packit Service |
50c9f2 |
'">'+escapeHtml(item.name)+'';
|
|
Packit Service |
50c9f2 |
if (item.type=="source") {
|
|
Packit Service |
50c9f2 |
var l=item.url.match(/[1-9][0-9]*$/);
|
|
Packit Service |
50c9f2 |
if (l) r+=' at line '+parseInt(l[0]);
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
r+='';
|
|
Packit Service |
50c9f2 |
for (var i=0;i
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
r+=''+item.fragments[i]+'';
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
r+='';
|
|
Packit Service |
50c9f2 |
});
|
|
Packit Service |
50c9f2 |
r+='';
|
|
Packit Service |
50c9f2 |
if (data.pages>1) // write multi page navigation bar
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
r+='';
|
|
Packit Service |
50c9f2 |
if (data.page>0)
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
r+='« ';
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
var firstPage = data.page-5;
|
|
Packit Service |
50c9f2 |
var lastPage = data.page+5;
|
|
Packit Service |
50c9f2 |
if (firstPage<0)
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
lastPage-=firstPage;
|
|
Packit Service |
50c9f2 |
firstPage=0;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
if (lastPage>data.pages)
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
lastPage=data.pages;
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
for(var i=firstPage;i
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
if (i==data.page)
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
r+=''+(i+1).toString()+' ';
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
else
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
r+=''+(i+1).toString()+' ';
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
if (data.page+1
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
r+='»';
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
r+='';
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
results.append(r);
|
|
Packit Service |
50c9f2 |
} else {
|
|
Packit Service |
50c9f2 |
results.html(''+searchResultsText[0]+' ');
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
});
|
|
Packit Service |
50c9f2 |
}
|
|
Packit Service |
50c9f2 |
/* @license-end */
|