function UL2Menu_ShowHead(){
	var li=this;
	if (li.sub.timer){
		clearTimeout(li.sub.timer);
		li.sub.timer=null;
	}
	AddClass(li,'active');
	li.sub.style.visibility='visible';
}
function UL2Menu_HideHead(){
	var li=this;
	li.sub.timer=setTimeout(function(){UL2Menu_HideHead2(li)},100);
}

function UL2Menu_HideHead2(li){
	li.sub.style.visibility='hidden';
	KillClass(li,'active');
}

function UL2Menu_ConvertMenu(){
	var menu=document.getElementById('menu');
	if (!menu) return;
	var lis = menu.getElementsByTagName('li');
	for (var i=0,len=lis.length;i<len;i++){
		var li=lis[i];
		var uls = li.getElementsByTagName('ul');
		if (!uls || uls.length==0) continue;
		var ul=uls[0];
		li.sub=ul;
		li.onmouseover=UL2Menu_ShowHead;
		li.onmouseout=UL2Menu_HideHead;
		li.isTop = li.parentNode==menu;

		if (li.addedArrow || li.isTop) continue;
		var arrow=document.createElement('span');
		arrow.innerHTML='&nbsp;>';
		var a = li.getElementsByTagName('a');
		if (a && a.length>0 && a[0].parentNode==li) a[0].innerHTML+='&nbsp;>';
		else li.insertBefore(arrow,li.childNodes[1]);
		li.addedArrow=true;
	}
}

AttachEvent(window,'load',UL2Menu_ConvertMenu,true);


//***Generic Library Functions Follow
	function AttachEvent(obj,evt,fnc,useCapture){
		if (obj.addEventListener){
			obj.addEventListener(evt,fnc,useCapture);
			return true;
		} else if (obj.attachEvent) return obj.attachEvent("on"+evt,fnc);
		else obj['on'+evt]=fnc;
		return true;
	}

	function HasClass(obj,cName){ return (!obj || !obj.className)?false:(new RegExp("\\b"+cName+"\\b")).test(obj.className) }
	function AddClass(obj,cName){ if (!obj) return; if (obj.className==null) obj.className=''; return obj.className+=(obj.className.length>0?' ':'')+cName; }
	function KillClass(obj,cName){ if (!obj) return; return obj.className=obj.className.replace(RegExp("^"+cName+"\\b\\s*|\\s*\\b"+cName+"\\b",'g'),''); }
	
	function GetRef(obj){ return obj.sub }