DropMenu = {};

//=============================================================================

DropMenu.Menu = function(ParentElement, List) {
	var self					= this;

	//-------------------------------------------------------------------------
	self.ParentElement				= ParentElement;

	self.ListElement				= null;

	self.IsOnMenu					= false;

	self.Height						= 0;

	self.OffsetX					= 3;
	self.OffsetY					= 30;

	//-------------------------------------------------------------------------
	self.OnMouseOver = function() {
		self.IsOnMenu = true;

		if(self.ListElement.style.display == "block") return;

		self.ListElement.style.display = "block";

		var X = XElement.GetPosX(self.ParentElement);
		var Y = XElement.GetPosY(self.ParentElement);

		self.ListElement.style.left = (X + self.OffsetX) + "px";
		self.ListElement.style.top  = (Y + self.OffsetY) + "px";

		XEffect.Grow(self.ListElement, 10, 0, 0, 0, self.Height, false, null);
	}

	//-------------------------------------------------------------------------
	self.OnMouseOut = function(Event) {
		self.IsOnMenu = false;

		function HideMe() {
			if(self.IsOnMenu) return;

			function Hide() {
				self.ListElement.style.display = "none";
			}

			XEffect.Grow(self.ListElement, 10, 0, self.Height, 0, self.Height, true, Hide);
		}

		setTimeout(HideMe, 100);
	}

	//-------------------------------------------------------------------------
	self.OnMouseOver_List = function(Event) {
		self.IsOnMenu = true;
	}

	//-------------------------------------------------------------------------
	self.OnMouseOut_List = function(Event) {
		self.OnMouseOut(Event);
	}

	//-------------------------------------------------------------------------
	self.PopulateList = function(List) {
		self.ListElement = document.createElement('div');

		self.ListElement.className = "Menu-Button-List";
		self.ListElement.innerHTML = "";

		document.body.appendChild(self.ListElement);

		for(var i = 0;i < List.length;i++) {
			var OnClickPre  = "";
			var OnClickPost = "";

			if(List[i][2]) {
				OnClickPre  = "";
				OnClickPost = ""
			}else{
				OnClickPre  = "document.location.href = '";
				OnClickPost = "'";
			}

			self.ListElement.innerHTML = self.ListElement.innerHTML + "<div class='Menu-Button-List-Item' onMouseOver='this.className = \"Menu-Button-List-Item-Over\"' onMouseOut='this.className = \"Menu-Button-List-Item\"' onClick=\"" + OnClickPre + List[i][1] + OnClickPost + "\">" + List[i][0] + "</div>";
		}

		//self.ListElement.innerHTML = self.ListElement.innerHTML + "<img src='./gfx/dropmenu-bottom.png'/>";

		self.Height = XElement.GetHeight(self.ListElement);

		self.ListElement.style.display = "none";

		XEvent.AddEvent(self.ListElement, "mouseover", self.OnMouseOver_List);
		XEvent.AddEvent(self.ListElement, "mouseout", self.OnMouseOut_List);
	}

	//=========================================================================
	// Constructor
	//=========================================================================
	XEvent.AddEvent(self.ParentElement, "mouseover", self.OnMouseOver);
	XEvent.AddEvent(self.ParentElement, "mouseout", self.OnMouseOut);

	self.PopulateList(List);
}

