function dspMenuContent(e) {

	if (!e) parentLink = event.srcElement;

	if (e.target) parentLink = e.target;

	else if (e.srcElement) parentLink = e.srcElement;

	genMenuContent(parentLink);

}

function genMenuContent(parentLink) {

	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++) {

		link = getFirstChild(LIs[i], "A");

		attachEvent(link, "mouseover", dspMenuContent);

		adjustClass(link);

		sanitizeLinkText(link);

	}

}

function adjustClass(link) {

	var text = link.innerHTML;

	if(text.indexOf("\s")!=-1)

		link.className += "two_rows";

	else

		link.className += "single_row";

}

function sanitizeLinkText(link) {

	var text = link.innerHTML;

	text = text.replace(/\s\//g, "/");

	text = text.replace(/\s/g, "<br />");

	link.innerHTML = text;

}

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 getParam(paramName) {  

	paramName = paramName.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");  

	var regexS = "[\\?&]"+paramName+"=([^&#]*)";  

	var regex = new RegExp(regexS);  

	var results = regex.exec(window.location.href);  

	if(results==null) return ""; 

	else return results[1];

}

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 dspDefaultMenu() {

	var root = document.getElementById("menu");

	var active = getElementsByClassName(root, "LI", "active");

	if(active[0]) {

		var link = getFirstChild(active[0], "A");

		genMenuContent(link);

	}

}

function getElementsByClassName(baseObject, strTagName, strClassName) {

	var arrReturnElements = new Array();

	try {

		var arrElements = (strTagName == "*" && baseObject.all)? baseObject.all : baseObject.getElementsByTagName(strTagName);

		strClassName = strClassName.replace(/-/g, "\-");

		var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");

		var oElement;

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

			oElement = arrElements[i];

			if(oRegExp.test(oElement.className)){

				arrReturnElements.push(oElement);

			}

		}

		return (arrReturnElements)

	}

	catch(e) {

		return (arrReturnElements)

	}

}

function main() {

	try {

		addMenuContentDiv();

		attachMenuEvents();

		dspDefaultMenu();

	}

	catch(e) { }

}

main();
