
//////////////////////////////////////////////////////////
//CAPTURE CLICK EVENT AND PASS IT TO MENU HANDLER ////////
//////////////////////////////////////////////////////////
function captureClick(e)
{
	var mItem;
	if( !e )
	{
    	if( window.event )
    	{
    		e = window.event;
    	}
    	else
    	{
    		//total failure, we have no way of referencing the event
    		return;
    	}
	}
	// WE HAVE EVENT SO WORK WITH IT
	//alert(e.relatedTarget);
	//alert(e.srcElement);
	if (!e.target)
	{
		mItem = e.srcElement;
	}
	else
	{
		mItem = e.target;
	}
	flyMenu(mItem);
}

function flyMenu(mItem)
{
	doReset();
	// Go up to LI or UL, whichever comes first
	while (mItem.tagName != 'UL' && mItem.tagName != 'LI')
		{
			mItem = mItem.parentNode;
		}
		
	// Go up to UL if not already there
	var pItem = mItem;
	while (pItem.tagName != 'UL')
		{
			pItem = pItem.parentNode;
		}
	pItem.style.display = 'block';
	createCookie('menuspot',pItem.id,1);
	
	
	// Step up parent ULs to make them visible
	while (pItem.id != 'menu0')
		{
			pItem = pItem.parentNode;
			if (pItem.tagName == 'UL')
				{
					pItem.style.display = 'block';
				}
		}
	
	// Make children of clicked item visible
	for (uc=0;uc<mItem.childNodes.length;++uc)
	{
		if (mItem.childNodes[uc].style && mItem.childNodes[uc].tagName == 'UL')
		{
			var tempID = mItem.childNodes[uc].id;
			mItem = document.getElementById(tempID);
			mItem.style.display = 'block';
			createCookie('menuspot',tempID,1);
		}
	}
}

function doReset()
	{
		var allmen = document.getElementById('menu0');
		var allul = allmen.getElementsByTagName('UL');
		for (ac=0;ac<allul.length;++ac)
			{
				allul[ac].style.display = 'none';
			}
		//gotomenu();
	}
	
function gotomenu()
	{
	var mID = readCookie('menuspot');
		if (mID != null)
			{
				var tempNode = document.getElementById(mID);
				tempNode.style.display = 'block';
				while (tempNode.id != 'menu0')
					{
						tempNode = tempNode.parentNode;
						if (tempNode.tagName == 'UL')
							{
								tempNode.style.display = 'block';
							}
					}
			}
	}
function StartMenu()
{
	doReset();
	var men = document.getElementById('menu0');
	men.onmousedown=captureClick;
	gotomenu();
}

function createCookie(name,value,days)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

