var links_search = {
	links:new Array(),
	last_value:"",
	shownItems:function (ele) {
		var lis = ele.getElementsByTagName("li");
		for(var i=lis.length-1; i>=0; i--) {
			if(lis[i].style.display == 'list-item') return true;
		}
		return false;
	},
	showAll:function() {
		var all_lis = document.getElementById("sitemap").getElementsByTagName("li");
		var lnks = this.links;
		for(var i=lnks.length-1; lnk=lnks[i],i>=0; i--) {
			all_lis[i].style.display = 'list-item';
		}
	},
	filter:function(e) {
		if(!e) var e = window.event;
		var txt = document.getElementById("search").value.toLowerCase();
		
		if(txt == '') {
			links_search.showAll();
			return;
		}
		if(txt == links_search.last_value) return;
		var lnks = links_search.links;
		for(var i=lnks.length-1; lnk=lnks[i],i>=0; i--) {
			if(!(lnk.text.indexOf(txt)+1)) {
				if(!links_search.shownItems(lnk.ele.parentNode))
					lnk.ele.parentNode.style.display='none';
			} else {
				lnk.ele.parentNode.style.display='list-item';
			}
		}
	},
	init:function () {
		var all_links = document.getElementById("sitemap").getElementsByTagName("a");
		for(var i=0;i<all_links.length;i++) {
			var lnk = {
				'url'	: all_links[i].href,
				'text'	: all_links[i].innerHTML.toLowerCase(),
				'ele'	: all_links[i]
			}
			this.links.push(lnk);
		}
		document.getElementById('search').onkeyup=this.filter;
	}
}

window.onload = function() {
	document.getElementById("search").focus();
	links_search.init();
}
