var highlight;
(function(){
	var cHighlightUriParser = /^(.*)#(.*)$/;
	var cHighlightedClass = "highlighted";
	var gHighlightThisPage = null;
	var gHighlighted = null;
	var gHighliteOriginalClass = null;
	
	function highlight_item(id){
		if(gHighlighted != null){
			gHighlighted.className = gHighliteOriginalClass;
			gHighlighted = null;
		}
		if(id.match(/I(\d*)_\d\d\./)){
			id = "D" + RegExp.$1;
		}
		gHighlighted = document.getElementById(id);
		if(gHighlighted != null){
			gHighliteOriginalClass = gHighlighted.className;
			gHighlighted.className = cHighlightedClass;
		}
	}
	function highlight_anchored_item(){
		var src = window.event.srcElement;
		if(src.nodeName == "A"){
			if(src.href.match(cHighlightUriParser) && gHighlightThisPage == RegExp.$1){
				highlight_item(RegExp.$2);
			}
		}
	}
	
	var gAItems = document.getElementsByTagName("a");
	var gAItemIndex = 0;
	
	var cHighlitCount = 100;
	
	highlight = function(){
		if(window.location.href.match(cHighlightUriParser)){
			gHighlightThisPage = RegExp.$1;
		}
		var id = window.location.hash.replace(/.*#/,"");
		if(id != ""){
			highlight_item(id);
		}
		AItems = document.getElementsByTagName("a");
		highlight_step();
	}
	function highlight_step(){
		for(var i = 0; i < cHighlitCount; i ++){
			if(gAItemIndex < gAItems.length){
				gAItems[gAItemIndex].onclick = highlight_anchored_item;
				gAItemIndex ++;
			}else{
				return;
			}
		}
		if(gAItemIndex < gAItems.length){
			setTimeout(highlight_step,0);
		}
	}
})();
