var menu = new Object();
menu = {
	menuContainerId : "menu", // id of root element of all menu items
	menuContainer : null,
	menus : [],
	submenus : [],
	openSubmenu : null,
	effects : false,
	useEffect : "fade",
	initialize : function(){
				//for (var k=0;k<document.getElementsByTagName("A").length;k++){
					//if (document.getElementsByTagName("A")[k].href && /subpages/.test(document.getElementsByTagName("A")[k].href)){
						//document.getElementById('footer').innerHTML+="<br />"+document.getElementsByTagName("A")[k].href.substring(22, document.getElementsByTagName("A")[k].href.length);
					//}
				//}

		menu.menuContainer=document.getElementById(menu.menuContainerId);
		var allLinks = menu.menuContainer.getElementsByTagName("a");
		var j=0;
		for (var i=0; i<allLinks.length; i++){
			if (allLinks[i].parentNode.className=="menuItem"){
				menu.menus[j++]=allLinks[i];
			}
		}
		j=0;
		for (i=0;i<menu.menus.length;i++){
			if (document.getElementById(menu.menus[i].id+"_submenu")){
				menu.submenus[j]=document.getElementById(menu.menus[i].id+"_submenu");
				if (menu.menus[i].attachEvent){
					menu.menus[i].attachEvent("onmouseover", menu.showSubMenu);
					menu.menus[i].attachEvent("onmouseout", menu.hideSubMenu);
					menu.submenus[j].attachEvent("onmouseover", menu.holdSubMenu);
					menu.submenus[j].attachEvent("onmouseout", menu.hideSubMenu);
				} else {
					menu.menus[i].addEventListener("mouseover", menu.showSubMenu, false);
					menu.menus[i].addEventListener("mouseout", menu.hideSubMenu, false);
					menu.submenus[j].addEventListener("mouseover", menu.holdSubMenu, false);
					menu.submenus[j].addEventListener("mouseout", menu.hideSubMenu, false);
				}
				j++;
			}
		}
	},
	showSubMenu : function(e){
		evt = e || window.event ;
		var evtTarget = evt.target || evt.srcElement;
		if (evtTarget.nodeType == 3) evtTarget = evtTarget.parentNode;
		if (menu.openSubmenu){ 
			menu.hideMenu;
		}
		submenu=document.getElementById(evtTarget.id+"_submenu");
		pos=menu.getObjPosition(evtTarget);
		menuWidth=evtTarget.clientWidth;
		relativePos=pos[1]; // relative top position from parent menu object
		relativeTop=document.documentElement.scrollTop || document.body.scrollTop; //relatve top from top of body
		viewportHeight=document.documentElement.clientHeight || document.body.clientHeight
		submenu.style.left=pos[0]+menuWidth-5+"px";

		if (submenu.style.display!='block'){
			menu.changeOpac(0, submenu.id);
			submenu.style.display='block';
			if (pos[1]+submenu.offsetHeight>relativeTop+viewportHeight){
			relativePos=pos[1]-(submenu.offsetHeight-25);
			if (relativePos<relativeTop) relativePos=relativeTop;
			}
		}
		//relativePos=0;
		submenu.style.top=relativePos+"px";
		menu.changeOpac(100, submenu.id);
		menu.openSubmenu=submenu;
	},
	hideSubMenu : function(){
		menu.openSubmenu.style.display='none';
		//menu.openSubmenu=null;
	},
	holdSubMenu : function(){
		menu.openSubmenu.style.display='block';
	},
	getObjPosition : function(obj){
	   var objLeft = objTop = 0;
	   if (obj.offsetParent) {
          while (obj.offsetParent) {
             objLeft += obj.offsetLeft;
             objTop += obj.offsetTop;
             obj  = obj.offsetParent;
          }
  		}	
		return [objLeft,objTop];
	},
	changeOpac : function(opacity, obj) { // changeOpac(int opacity, [string, object] obj) - changes opacity for the given object
		obj=menu.returnObj(obj);
		obj.style.opacity = (opacity / 100);
		obj.style.MozOpacity = (opacity / 100);
		obj.style.KhtmlOpacity = (opacity / 100);
		obj.style.filter = "alpha(opacity=" + opacity + ")";
	},
	returnObj : function (obj){ // returns object if passed var is object or id
		if (typeof(obj)=='string'){
			if (document.getElementById(obj)){
				obj=document.getElementById(obj);
			} 
		}
		return obj;
	}
}
