var sidebarhover = null;
var dropmenu = null;
var overdrop = false;
var displayed = false;

function bootup()
{
	// Add event handler to make the png visible and place the item ontop of the item
	ex(":!event! [type='mouseover'] [obj='#sidebar_links ul li a'] [code=';!style! [obj=`#objsidepng`] ;!effect! [adjusttop=`-100`] [position=`on`] [adjustleft=`-100`] [obj=`#objsidepng`] [type=`adjacent`] [nextto=`=`]'] :!event! [type='mouseout'] [obj='#objsidepng'] [code=';!style! [obj=`=`] [value=`none`]']");
	eventHandler.add(document.getElementById("objsidepng"), "click",
    function ()
	{
		window.location = thisObj.getAttribute("href");
	});
	
	// And finally our menu (if one is present, of course)
	var navmenu = document.getElementById("navmenu");
	
	if (navmenu)
	{
		// Start setup of drop down menu (insert into BODY dom)
		dropmenu = document.createElement("ul");
		 dropmenu.setAttribute("id", "dropmenu");
		 dropmenu.style.display = "none";
		document.body.appendChild(dropmenu);
		
		var navitems = getElements("#navmenu li");
		var strbuffer = "";
		
		// Drop over menu checker
		eventHandler.add(dropmenu, "mouseout", function(e){
			var mouse = findMouse(e); // [X, Y] //
			var pos = findPos(dropmenu);
			if (displayed && (mouse[1] < pos[1] || mouse[0] < pos[0] || mouse[0] >= (pos[0] + dropmenu.offsetWidth) || mouse[1] >= (pos[1] + dropmenu.offsetHeight)))
			{
				ex(":!style! [obj='#dropmenu'] [value='none']");
				displayed = false;
			}
		});
		
		// On mouse over
		for (var q = 0; q < navitems.length; q++)
		{
			eventHandler.add(navitems[q], "mouseout", function(e)
			{
				// Mouseout, hide it?
				if (displayed)
				{
					// Check to see if Y coordinate of the mouse is valid
					
					var mouse = findMouse(e); // [X, Y] //
					var pos = findPos(dropmenu);
					
					// Check menu positioning
					if (mouse[1] < pos[1] || mouse[0] < pos[0] || mouse[0] > pos[0] + dropmenu.offsetWidth)
					{
						ex(":!style! [obj='#dropmenu'] [value='none'] [delay='1']");
						displayed = false;
					}
				}
				
			});
			
			eventHandler.add(navitems[q], "mouseover", function()
			{
				// Set the event object
				thisObj = this;
				
				// Make sure this element has a child node to pull out of
				if (this.childNodes[0])
				{
					temp = this.childNodes[0].innerHTML;
				}
				
				// Get the drop menu current display, if its the same we don't want to reshow it.
				/* if (dropmenu.getAttribute("value") == temp)
				{
					displayed = true;
				} */
				
				// Get the links to display
				if (this.childNodes[1] && !displayed)
				{
					// Just double check so no JScript failures
					
					
					var myString = this.childNodes[1].value;
					var myParse = myString.split(";;");
					strbuffer = "";
					for (var n = 0; n < myParse.length - 1; n++)
					{
						var myLink = myParse[n].split(";");
						 var text = myLink[0];
						 var url = myLink[1];
						 var title = myLink[2];
						 
						 if (url.indexOf("redirect") != -1)
						 {
							 var target = "target = \"_blank\"";
						 }
						 else
						 {
							var target = ""; 
						 }
						 
						 // Now add to a un-ordered list buffer-ish
						 strbuffer = strbuffer + "<li id=\"navfx" + n + "\"><a " + target + " href=\"" + url + "\" title=\"" + title + "\">" + text + "</a></li>";
					}
					
					if ((strbuffer.ltrim()))
					{
						dropmenu.setAttribute("value", this.childNodes[0].innerHTML);
						dropmenu.innerHTML = strbuffer;
						
						// It's all nice and prepped, ready the special effects commander
						ex(":!style! [style='reset'] [obj='#dropmenu']");
						ex(":!effect! [type='adjacent'] [position='below'] [obj='#dropmenu'] [nextto='=']");
						ex(":!stretch! [obj='#dropmenu'] [stretchto='='] [min='atleastobj'] [delay='1'] [ieadjust='5']");
						ex(":!effect! [type='scale'] [obj='#dropmenu'] [time='300']");
						displayed = true;
					}
					
				}
			});
		}
	}
}

