assets.templates.assets.search_autocomplete.js Maven / Gradle / Ivy
var gSelectedIndex = -1;
var gSelectedID = -1;
var gMatches = new Array();
var gLastText = "";
var ROW_COUNT = 20;
var gInitialized = false;
var DEFAULT_TEXT = "search developer docs";
var HAS_SEARCH_PAGE = false;
function set_row_selected(row, selected)
{
var c1 = row.cells[0];
// var c2 = row.cells[1];
if (selected) {
c1.className = "jd-autocomplete jd-selected";
// c2.className = "jd-autocomplete jd-selected jd-linktype";
} else {
c1.className = "jd-autocomplete";
// c2.className = "jd-autocomplete jd-linktype";
}
}
function set_row_values(toroot, row, match)
{
var link = row.cells[0].childNodes[0];
link.innerHTML = match.__hilabel || match.label;
link.href = toroot + match.link
// row.cells[1].innerHTML = match.type;
}
function sync_selection_table(toroot)
{
var filtered = document.getElementById("search_filtered");
var r; //TR DOM object
var i; //TR iterator
gSelectedID = -1;
filtered.onmouseover = function() {
if(gSelectedIndex >= 0) {
set_row_selected(this.rows[gSelectedIndex], false);
gSelectedIndex = -1;
}
}
//initialize the table; draw it for the first time (but not visible).
if (!gInitialized) {
for (i=0; i 0) {
document.getElementById("search_filtered_div").className = "showing";
var N = gMatches.length < ROW_COUNT ? gMatches.length : ROW_COUNT;
for (i=0; i ROW_COUNT) {
r = filtered.rows[ROW_COUNT];
r.className = "show-row";
c1 = r.cells[0];
c1.innerHTML = "plus " + (gMatches.length-ROW_COUNT) + " more";
} else {
filtered.rows[ROW_COUNT].className = "hide-row";
}*/
//if we have no results, hide the table
} else {
document.getElementById("search_filtered_div").className = "no-display";
}
}
function search_changed(e, kd, toroot)
{
var search = document.getElementById("search_autocomplete");
var text = search.value.replace(/(^ +)|( +$)/g, '');
// 13 = enter
if (e.keyCode == 13) {
document.getElementById("search_filtered_div").className = "no-display";
if (kd && gSelectedIndex >= 0) {
window.location = toroot + gMatches[gSelectedIndex].link;
return false;
} else if (gSelectedIndex < 0) {
if (HAS_SEARCH_PAGE) {
return true;
} else {
sync_selection_table(toroot);
return false;
}
}
}
// 38 -- arrow up
else if (kd && (e.keyCode == 38)) {
if (gSelectedIndex >= 0) {
gSelectedIndex--;
}
sync_selection_table(toroot);
return false;
}
// 40 -- arrow down
else if (kd && (e.keyCode == 40)) {
if (gSelectedIndex < gMatches.length-1
&& gSelectedIndex < ROW_COUNT-1) {
gSelectedIndex++;
}
sync_selection_table(toroot);
return false;
}
else if (!kd) {
gMatches = new Array();
matchedCount = 0;
gSelectedIndex = -1;
for (var i=0; i= 0) {
if (l < 0) l = 0;
l += tmp;
s = s.substr(tmp + 1);
}
return l;
};
// helper function that counts the occurrences of a given character in
// a given string
var _countChar = function(s, c) {
var n = 0;
for (var i=0; i= 0) {
// exact part match
var partsAfter = _countChar(labelLower.substr(t + 1), '.');
score *= 200 / (partsAfter + 1);
} else {
t = _lastSearch(labelLower, partPrefixAlnumRE);
if (t >= 0) {
// part prefix match
var partsAfter = _countChar(labelLower.substr(t + 1), '.');
score *= 20 / (partsAfter + 1);
}
}
return score;
};
for (var i=0; i$1');
}
}
function search_focus_changed(obj, focused)
{
if (focused) {
if(obj.value == DEFAULT_TEXT){
obj.value = "";
obj.style.color="#000000";
}
} else {
if(obj.value == ""){
obj.value = DEFAULT_TEXT;
obj.style.color="#aaaaaa";
}
document.getElementById("search_filtered_div").className = "no-display";
}
}
function submit_search() {
if (HAS_SEARCH_PAGE) {
var query = document.getElementById('search_autocomplete').value;
document.location = toRoot + 'search.html#q=' + query + '&t=0';
}
return false;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy