var links = new Array();
var categories = new Array();
var searchFilter = "Any";
function init() {
initLinks();
buildCategoryArray();
selectHeight = categories.length + 1;
links.sort();
drawSelect();
buildCategoryList();
}
function initLinks() {
// name, link, category
links[0] = new Array("Fark","http://www.fark.com","News");
links[1] = new Array("Centricle","http://centricle.com","Friends");
links[2] = new Array("Slayeroffice","http://slayeroffice.com","Friends");
links[3] = new Array("BBspot","http://www.bbspot.com","Satire");
links[4] = new Array("GameSpot","http://www.gamespot.com","Gaming");
links[5] = new Array("The Onion","http://www.theonion.com","Satire");
links[6] = new Array("Javascript-games.org","http://www.javascript-games.org","Gaming");
links[7] = new Array("TheWebMachine","http://www.thewebmachine.com","Web Design and Development");
links[8] = new Array("KVIII","http://www.kviii.com","Friends");
links[9] = new Array("A List Apart","http://www.alistapart.com","Web Design and Development");
links[10] = new Array("Red vs. Blue","http://www.redvsblue.com","Entertainment");
links[11] = new Array("Satirewire","http://www.satirewire.com","Satire");
links[12] = new Array("Caster's Realm","http://eq.castersrealm.com","Gaming");
links[13] = new Array("Linux Online","http://www.linux.org/","Computers");
links[14] = new Array("Dev Edge","http://devedge.netscape.com/","Web Design and Development");
links[15] = new Array("Tech TV","http://www.techtv.com","Entertainment");
links[16] = new Array("Brain Jar","http://www.brainjar.com","Web Design and Development");
links[17] = new Array("Webmonkey","http://www.webmonkey.com","Web Design and Development");
links[18] = new Array("W3C.org","http://www.w3c.org","Web Design and Development");
links[19] = new Array("Builder.com","http://builder.cnet.com/","Web Design and Development");
links[20] = new Array("Bioware","http://www.bioware.com","Gaming");
links[21] = new Array("Adobe","http://www.adobe.com","Web Design and Development");
links[22] = new Array("AO Basher","http://www.ao-basher.com","Gaming");
links[23] = new Array("SWG","http://starwarsgalaxies.station.sony.com/","Gaming");
links[24] = new Array("Brutal News","http://www.brutalnews.com","News");
links[25] = new Array("AOLserver","http://www.aolserver.com/","Web Design and Development");
links[26] = new Array("Apache.org","http://www.apache.org","Web Design and Development");
links[27] = new Array("PHP.net","http://www.php.net","Web Design and Development");
links[28] = new Array("MSDN","http://msdn.microsoft.com","Web Design and Development");
links[29] = new Array("Java Boutique","http://javaboutique.internet.com/","Web Design and Development");
links[30] = new Array("EQ Vault","http://eqvault.ign.com/","Gaming");
links[31] = new Array("Google","http://www.google.com","Search Engines");
links[32] = new Array("Alta Vista","http://www.altavista.com","Search Engines");
links[33] = new Array("Hotbot","http://www.hotbot.com","Search Engines");
links[34] = new Array("Ask Jeeves","http://www.ask.com","Search Engines");
links[35] = new Array("CNN","http://www.cnn.com","News");
links[36] = new Array("MSNBC","http://www.msnbc.com","News");
links[37] = new Array("Washington Post","http://www.washingtonpost.com","News");
links[38] = new Array("New York Times","http://www.nytimes.com","News");
links[39] = new Array("AOL","http://www.aol.com","Online Services");
links[40] = new Array("MSN","http://www.msn.com","Online Services");
links[41] = new Array("Earthlink","http://www.earthlink.net","Online Services");
links[42] = new Array("Compuserve","http://www.compuserve.com","Online Services");
links[43] = new Array("MSIE","http://www.microsoft.com/windows/ie/default.asp","Browsers");
links[44] = new Array("Mozilla","http://www.mozilla.org","Browsers");
links[45] = new Array("Opera","http://www.opera.com","Browsers");
links[46] = new Array("Netscape","http://www.netscape.com","Browsers");
links[47] = new Array("Safari","http://www.apple.com/safari/download/","Browsers");
links[48] = new Array("Konquerer","http://www.konqueror.org/","Browsers");
links[49] = new Array("Lynx","http://lynx.browser.org/","Browsers");
}
function drawSelect() {
mHTML = "<select name=\"lists\" class=\"sel\" size=" + selectHeight + ">";
for(i=0;i<links.length;i++) {
if(searchFilter == "Any") {
mHTML+="<option title=\"test\" value=\"" + links[i][1] + "\">" + links[i][0] + "</option>";
} else {
if(links[i][2] == searchFilter)mHTML+="<option value=\"" + links[i][1] + "\">" + links[i][0] + "</option>";
}
}
mHTML+="</select>";
document.getElementById("mContainer").innerHTML = mHTML;
}
function narrowList(searchString) {
resultsFound = 0;
searchString = searchString.toLowerCase();
mHTML = "<select size=" + selectHeight + " class=\"sel\" name=\"lists\">";
found=false;
partialStringMatching = document.forms[0].psm.checked;
for(i=0;i<links.length;i++) {
zLink = links[i][0].toLowerCase();
if((partialStringMatching && zLink.indexOf(searchString)>-1) || (zLink.indexOf(searchString) == 0 && (links[i][2] == searchFilter || searchFilter == "Any"))) {
found=true;
resultsFound++;
mHTML+="<option value=\"" + links[i][1] + "\">" + links[i][0] + "</option>";
}
}
mHTML+="</select>";
if(found)document.getElementById("mContainer").innerHTML = mHTML
showResults(resultsFound,searchString);
}
function showResults(zResultsFound,zSearchString) {
zHTML = "";
zHTML += "<b>" + zResultsFound + "</b> results found";
if(zSearchString != "") zHTML += " for search term <b>" + zSearchString + "</b>";
zHTML += " in category <b>" + searchFilter + "</b>";
if(zResultsFound==0) zHTML+=" so listing what was found.";
document.getElementById("mResults").innerHTML = zHTML;
}
function buildCategoryArray() {
for(i=0;i<links.length;i++)if(!existsInArray(categories,links[i][2])) categories[categories.length] = links[i][2];
categories.sort();
}
function buildCategoryList() {
zHTML = "<select size=" + selectHeight + " name=\"cats\" class=\"sel\" onClick=\"handleCategoryClick(this.value);\">";
zHTML += "<option value=\"Any\">Any</option>";
for(i=0;i<categories.length;i++) zHTML+="<option value=\"" +categories[i] + "\">" + categories[i] + "</option>";
zHTML+= "</select>";
document.getElementById("nContainer").innerHTML = zHTML;
}
function existsInArray(arrayToCheck,valueToCheck) {
for(z=0;z<arrayToCheck.length;z++)if(arrayToCheck[z] == valueToCheck) { return true; break; }
return false;
}
function handleCategoryClick(sValue) {
searchFilter = sValue;
drawSelect();
narrowList(document.forms[0].searchText.value);
}
function handleClear() {
document.forms[0].searchText.value="";
narrowList("");
}
function handleGoClick() {
if(document.forms[0].lists.value)location.href = document.forms[0].lists.value;
}
|
Categorized & Searchable List Boxes v1.1 Last revision: 02.05.2004 steve@slayeroffice.com http://www.slayeroffice.com |