/*
   Very slow filtering function for unordered lists
   Dobrica Pavlinusic, dpavlin@rot13.org 2004-09-06
*/

function filter(document, id, regex) {

	var min_len = 1;
	var debug = 0;

	// get UL element by ID
	var ul = document.getElementById(id);
	if (! ul) { return; }

	// get all LI elements
	var li = ul.getElementsByTagName("li");

	// get out if too few characters in search
	if (regex && (regex.length < min_len || regex == '') || !regex) {
		regex = '.';
//		return;
	}

	var status = "";

	if (debug) { status += "filter: '"+regex+"'<br>"; }

	var total = 0;
	var visible = 0;

	if (debug) { status += "elements = "+li.length+"<br>"; }

	if (regex) { var reg = new RegExp(regex, 'i'); }

	for (var i = 0; i < li.length; i++) {

		var text = li[i].innerHTML.replace(/<[^>]+>/g,"");
		if (debug) { status += i+": "+text; }

		total++;

		if (reg && reg.test(text)) {
			li[i].style.display = '';
			visible++;
			if (debug) { status += " <b>visible</b> " };
		} else {
			li[i].style.display = 'none';
			if (debug) { status += " hidden " };
		}
		if (debug) { status += "<br>"; }

	}

	status += "shown "+visible+" of "+total+" entries for <em>"+regex+"</em><br>";

	var status_div = document.getElementById("status");
	if (status_div) {
		status_div.innerHTML = status;
	}
}
