tinyendian/doc/search.js

60 lines
1.6 KiB
JavaScript
Raw Normal View History

2015-02-16 12:53:00 +00:00
"use strict";
var items = [
{"tinyendian" : "tinyendian.html"},
{"tinyendian.UTFEncoding" : "tinyendian/UTFEncoding.html"},
{"tinyendian.swapByteOrder" : "tinyendian.html#swapByteOrder"},
{"tinyendian.fixUTFByteOrder" : "tinyendian.html#fixUTFByteOrder"},
];
function search(str) {
var re = new RegExp(str.toLowerCase());
var ret = {};
for (var i = 0; i < items.length; i++) {
var k = Object.keys(items[i])[0];
if (re.test(k.toLowerCase()))
ret[k] = items[i][k];
}
return ret;
}
function searchSubmit(value, event) {
console.log("searchSubmit");
var resultTable = document.getElementById("results");
while (resultTable.firstChild)
resultTable.removeChild(resultTable.firstChild);
if (value === "" || event.keyCode == 27) {
resultTable.style.display = "none";
return;
}
resultTable.style.display = "block";
var results = search(value);
var keys = Object.keys(results);
if (keys.length === 0) {
var row = resultTable.insertRow();
var td = document.createElement("td");
var node = document.createTextNode("No results");
td.appendChild(node);
row.appendChild(td);
return;
}
for (var i = 0; i < keys.length; i++) {
var k = keys[i];
var v = results[keys[i]];
var link = document.createElement("a");
link.href = v;
link.textContent = k;
link.attributes.id = "link" + i;
var row = resultTable.insertRow();
row.appendChild(link);
}
}
function hideSearchResults(event) {
if (event.keyCode != 27)
return;
var resultTable = document.getElementById("results");
while (resultTable.firstChild)
resultTable.removeChild(resultTable.firstChild);
resultTable.style.display = "none";
}