// JavaScript Document
function getObjectX(obj) {
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function getObjectY(obj) {
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

var MenuElements = new Array();

function Menu(Name) {
	this.Name = Name;
	this.Nodes = new Array();
}

Menu.prototype.NewMenu = function(Title,URL,JSFunction) {
	var Node = new Object();
	Node.Title = Title;
	Node.URL = URL;
	Node.JSFunction = JSFunction;
	Node.hasChildren = false;
	Node.Level = 0;
	Node.Nodes = new Array();
	Node.AddMenu = function(Title,URL,JSFunction,Type,Icon) {
		this.hasChildren = true;
		var Node = new Object();
		Node.Title = Title;
		Node.URL = URL;
		Node.JSFunction = JSFunction;
		Node.Type = Type;
		Node.Icon = Icon;
		Node.hasChildren = false;
		Node.Level = this.Level+1;
		Node.Nodes = new Array();
		Node.AddMenu = this.AddMenu;
		this.Nodes[Title] = Node;
		return this.Nodes[Title];
	}
	this.Nodes[Title] = Node;
	return this.Nodes[Title];
}

function showItems(e,id,parent) {
	var e = getEvent();
	var nodesList = document.getElementById(id);
	var x,y;
	if (isIE) {
		x = parent.style.pixelLeft+parent.clientWidth-5;
		y = parent.offsetTop;
	} else if (isOpera) {
		x = parent.offsetParent.offsetLeft+parent.offsetParent.offsetWidth;
		y = parent.offsetParent.offsetTop+parent.offsetTop;
	} else {
		x = parent.offsetParent.offsetLeft+parent.offsetParent.offsetWidth;
		y = parent.offsetParent.offsetTop+parent.offsetTop;
	}
	nodesList.parentNode.style.backgroundColor = '#1C1102';
	nodesList.style.position = 'absolute';
	nodesList.style.visibility = 'visible';
	nodesList.style.left = x+"px";
	nodesList.style.top = y+"px";
}

function hideItems(id) {
	var nodesList = document.getElementById(id);
	nodesList.style.position = 'absolute';
	nodesList.style.visibility = 'hidden';
	nodesList.parentNode.style.backgroundColor = '#1C1102';
}

function show(e,id,parent) {
	var e = getEvent();
	var nodesList = document.getElementById(id);
	var x, y;
	if (isIE) {
		x = parent.style.pixelLeft;
		y = parent.style.pixelTop+parent.offsetHeight;
	} else if (isOpera) {
		x = getObjectX(parent);
		y = getObjectY(parent)+parent.offsetHeight; //parent.style.pixelTop+parent.offsetHeight;
	} else {
		x = parent.offsetLeft;
		y = parent.offsetTop+parent.offsetHeight;
	}
	nodesList.style.position = 'absolute';
	nodesList.style.visibility = 'visible';
	nodesList.style.left = x+"px";
	nodesList.style.top = y+"px";
}

function hide(id) {
	var nodesList = document.getElementById(id);
	nodesList.style.position = 'absolute';
	nodesList.style.visibility = 'hidden';
}

function fnClickItem(e,url) {
	var e = getEvent();
	e.stopPropagation();
	window.location = url;
}

Menu.prototype.CreateItems = function(Nodes) {
	var items;
	var keyName = Nodes.Title.replace(/[\s-]/ig, "");
	items = "<table id='"+keyName+"Items' border='0' cellpading='0' cellSpacing='0' style='position:absolute;visibility:hidden;'>";
	var indx = 1;
	for (var i in Nodes.Nodes) {
		var keyName = Nodes.Nodes[i].Title.replace(/[\s-]/ig, "");
		items += "<tr>";
			items += "<td nowrap=\"nowrap\" class=\"single\" onmouseover=\"showItems(event, '"+keyName+"Items',this);this.className='singleOn'\" onmouseout=\"hideItems('"+keyName+"Items');this.className='single'\" onclick=\"fnClickItem(event,'"+Nodes.Nodes[i].URL+"');\">"+Nodes.Nodes[i].Title;
				items += this.CreateItems(Nodes.Nodes[i]);
			items += "</td>";
		items += "</tr>";
		indx++;
	}
	items += "</table>";
	return items;
}

Menu.prototype.countNodes = function(Nodes) {
	var c = 0;
	for (var i in Nodes) {
		if (Nodes[i].Title != this.Root)
			c++;
	}
	return c;
}

Menu.prototype.CreateMenu = function() {
	var bar;
	bar = "<table id='"+this.Name+"Menu' border='0' cellpadding='0' cellspacing='0'>"
		bar += "<tr>";
			var Nodes = null;
			var NodeItems = this.countNodes(this.Nodes);
			var indx = 0;
			for (var i in this.Nodes) {
				var keyName = this.Nodes[i].Title.replace(/[\s-]/ig, "");
				bar += "<td id='"+keyName+"' class=\"multiple\" style=\""+((indx>0)?'border-left: 2px solid #FFE092;':'')+"\" onmouseover=\"show(event,'"+keyName+"Items',this)\" onmouseout=\"hide('"+keyName+"Items')\" onclick=\"fnClickItem(event,'"+this.Nodes[i].URL+"')\">"+this.Nodes[i].Title;
				bar += this.CreateItems(this.Nodes[i]);
				bar += "</td>";
				indx++;
			}
		bar += "</tr>";
	bar += "</table>";
	
	document.write(bar);
}

Menu.prototype.Debug = function(Nodes) {
	for (var z in Nodes) {
		alert(z+" - "+Nodes[z].Level);
		var childs = Nodes[z].Nodes;
		this.Debug(childs);
	}
}

Menu.prototype.Apply = function(ElementID) {
	var obj = document.getElementById(ElementID);
}

