﻿function AddMenu(MenuName) {
	SubMenusN=1
	SubMenuI=0
	MenuAdded=0
	with (GetObj(MenuName)) {
		if (className=="") {
			className="Menu"
		} else {
			Classes=className.split(" ")
			Classes.push("Menu")
			className=Classes.join(" ")
		}
	}
	with (XMLDoc) {
		async="false"
		load("XMLs/"+MenuName+".xml")
	}

	Level0=XMLDoc.documentElement
	GetSubMenusN(Level0)
	SubItemsNow=new SubItems()
	SubItemsNow.ParentNode=Level0
	SubItemsNow.ParentMenu=GetObj(MenuName)
	if (SubItemsNow.Add()) {
		CheckMenu()
	}
}

function SubItems() {
	this.Add=function () {
		ParentNode=this.ParentNode
		ParentMenu=this.ParentMenu

		Nodes=ParentNode.childNodes
		for (I=0;I<Nodes.length;I++) {
			Item=document.createElement("li")
			ParentMenu.appendChild(Item)
			with (Item) {
				id=ParentMenu.id+"_"+I
				if (I==0) {
					with (style) {		
						borderTopStyle=Item.style.borderTopStyle
						borderTopColor="transparent"
				
						borderLeftStyle=Item.style.borderLeftStyle
						borderLeftColor="transparent"
					}
				}
			}

			Link=document.createElement("a")
			Item.appendChild(Link)
			Link.innerText=Nodes[I].getAttribute("Title")

			/*SubItemsFromDb=Nodes[I].getAttribute("SubItemsFromDb")
			if (SubItemsFromDb=="True") {
				SubItemsCmd=Nodes[I].getAttribute("SubItemsCmd")
				Data=AJAXGet("BehindWork/GetData.asp?Cmd="+SubItemsCmd)
				Rows=Data.split("\n")
				for (J=0;J<Rows.length;J++) {
					Row=Rows[J].split(";")
					MenuItem=XMLDoc.createElement("MenuItem")
					Nodes[I].appendChild(MenuItem)
					MenuItem.setAttribute("Title",Row[1])
					Path=Nodes[I].getAttribute("SubItemPath")
					Path=Path.replace("%ID%",Row[0])
					MenuItem.setAttribute("Path",Path)
				}
			}*/
			if (Nodes[I].childNodes.length>0) {
				Item.Alpha=0
				Item.AlphaDir=0
				Item.onmouseover=ItemMouseOver
				Item.onmouseout=ItemMouseOut
				Link.href="JavaScript:"
				Link.style.cursor="default"
	
				Menu=document.createElement("ul")
				Item.appendChild(Menu)
				Menu.id=Item.id
				SubMenus.push(Menu)

				SubItemsNow=new SubItems()
				SubItemsNow.ParentNode=Nodes[I]
				SubItemsNow.ParentMenu=Menu
				setTimeout("if (SubItemsNow.Add()) {CheckMenu()}",1)
			} else {
				Link.href=Nodes[I].getAttribute("Path")
			}
		}

		return true
	}
}

function CheckMenu() {
	SubMenuI++
	if (SubMenuI==SubMenusN) {
		MenuAdded=1
	}
}

function GetSubMenusN(Node) {
	Nodes=Node.childNodes
	for (I=0;I<Nodes.length;I++) {
		if (Nodes[I].childNodes.length>0) {
			SubMenusN++
		}
	}
}

function ItemMouseOver() {
	this.childNodes[1].style.display="block"
	this.AlphaDir=1
}

function ItemMouseOut() {
	this.AlphaDir=-1
}

function Fade() {
	for (I=0;I<SubMenus.length;I++) {
		SubMenu=SubMenus[I]
		Item=SubMenu.parentNode
		if ((Item.AlphaDir==1 && Item.Alpha>=AlphaMax) || (Item.AlphaDir==-1 && Item.Alpha<=0)) {
			if (Item.AlphaDir==-1) {
				SubMenu.style.display="none"
			}
			Item.AlphaDir=0
		} else {
			switch (Item.AlphaDir) {
				case 1:
					Item.Alpha+=AlphaStep
					break
				case -1:
					Item.Alpha-=AlphaStep
					break
			}
		}
		SubMenu.style.filter="alpha(opacity="+Item.Alpha+");"
	}
}

var Level0
AlphaMax=80
AlphaStep=2
SubMenus=[]
var SubMenusN
var SubMenuI
var MenuAdded

try {
	XMLDoc=new ActiveXObject("Microsoft.XMLDOM")
} catch (E) {
	XMLDoc=document.implementation.createDocument("","",null)
}

setInterval(Fade,1)
