function dspMenuContent(e) {
	if (!e) parentLink = event.srcElement;
	if (e.target) parentLink = e.target;
	else if (e.srcElement) parentLink = e.srcElement;
	var subMenuUL = getNextNode(parentLink, "UL");
	if(subMenuUL) setMenuContent("<UL>"+removeULs(subMenuUL.innerHTML)+"</UL>");
	else clearMenuContent();
}
function removeULs(innerHTML) {
	var ULOccurrenceIni = innerHTML.toLowerCase().indexOf("<ul>");
	var ULOccurrenceEnd = innerHTML.toLowerCase().indexOf("</ul>", ULOccurrenceIni);
	var lastULOccurrenceIni = 0;
	var positions = [];
	var results = innerHTML;
	while ((ULOccurrenceIni!=-1)&&(ULOccurrenceEnd!=-1)) {
		positions[positions.length] = [ULOccurrenceIni,ULOccurrenceEnd];
		ULOccurrenceIni = innerHTML.toLowerCase().indexOf("<ul>", ULOccurrenceEnd);
		ULOccurrenceEnd = innerHTML.toLowerCase().indexOf("</ul>", ULOccurrenceIni);
	}
	var ix;
	for(i=0;i<positions.length;i++) {
		ix = positions.length-1-i;
		results = results.substring(0, positions[ix][0]) + results.substring(positions[ix][1]+5,results.length);
	}
	return results;
}
function getNextNode(baseObject, nextNodeName) {
	var objResult = baseObject;
	try {
		while(objResult.nodeName.toLowerCase()!=nextNodeName.toLowerCase()) objResult = objResult.nextSibling;
		return objResult;
	}
	catch(e) {
		return null;
	}
}
function getParent(baseObject, parentName) {
	var objResult = baseObject.parentNode;
	try {
		while(objResult.nodeName.toLowerCase()!=parentName.toLowerCase()) objResult = objResult.parentNode;
		return objResult;
	}
	catch(e) {
		return null;
	}
}
function getFirstChild(baseObject, childName) {
	try {
		var firstChild = baseObject.firstChild;
		while(firstChild.nodeName.toLowerCase()!=childName.toLowerCase()) firstChild = firstChild.nextSibling;
		return firstChild;
	}
	catch(e) {
		return null;
	}
}
function getFirstLevelObjects(baseObject, childName) {
	var results = new Array();
	var child = baseObject.firstChild;
	while(child) {
		if(child.nodeName.toLowerCase()==childName.toLowerCase()) results[results.length] = child;
		child = child.nextSibling;
	}
	return results;
}
function clearMenuContent() {
	setMenuContent("&nbsp;");
}
function setMenuContent(strContent) {
	document.getElementById("menu_content").innerHTML = strContent;
}
function attachEvent(elm, evType, handler) {
	if (elm.addEventListener) elm.addEventListener(evType, handler, false);
	else if (elm.attachEvent) elm.attachEvent("on" + evType, handler);
	else elm["on" + evType] = handler;
}
function getMenuItems() {
	var firstUL = getFirstChild(document.getElementById("menu"), "UL");
	var result = getFirstLevelObjects(firstUL, "LI");
	return result;
}
function attachMenuEvents() {
	var LIs = getMenuItems();
	var link;
	for(var i=0; i<LIs.length; i++) {
//		alert(LIs[i].innerHTML);
		if(LIs[i].getElementsByTagName("ul")[0]) {
			link = getFirstChild(LIs[i], "A");
			link.href = "javascript:;";
			attachEvent(link, "click", dspMenuContent);
			if(hasClass(LIs[i], "active")) dispatchEvent(link, "click");
		}
	}
}
function dispatchEvent(element, event) {
	var IE = (window.ActiveXObject)?true:false;
	if(IE) eval("element." + event + "()");
	else {
		var evObj = document.createEvent("MouseEvents");
		evObj.initEvent(event, true, true);
		element.dispatchEvent(evObj);
	}
}
function hasClass(element, className) { 
	if(element&&className&&element.className) { 
		return new RegExp('\\b'+className.trim()+'\\b').test(element.className);
	}
	return false;
}
function addMenuContentDiv() {
	var menuDiv = document.getElementById("menu_content");
	if(!menuDiv) {
		var menuContentDiv = document.getElementById("right");
		var firstElement = menuContentDiv.firstChild;
		menuDiv = document.createElement("div");
		menuDiv.setAttribute("id","menu_content");
		menuDiv.innerHTML = "&nbsp;";
		if(firstElement) menuContentDiv.insertBefore(menuDiv,firstElement);
		else menuContentDiv.appendChild(menuDiv);
	}
}
function getSelectedLink() {
	var pathName = window.location.search.replace("?","");
	var pattPathName = new RegExp(pathName+"$");
	var menuLinks = document.getElementById("menu").getElementsByTagName("A");
	var results;
	for(var i=0; i<menuLinks.length; i++) {
		results = pattPathName.exec(menuLinks[i].href);  
		if((results!=null)&&(menuLinks[i].href.indexOf(window.location.pathname)!=-1)) return menuLinks[i];
	}
	return;
}
function getSubMenu(objLink) {
	return getNextNode(objLink, "UL");
}
function main() {
	addMenuContentDiv();
	attachMenuEvents();
}
String.prototype.trim = 	function() {
		if(this==window) { return null; }
		return this.replace(/^\s*|\s*$/g,"");
}
main();
