function growLine (elem) {

	var process = function() {
		if (parseInt(elem.style.width) < 8 && elem.getAttribute('slide') == 'grow') {
			elem.style.width = parseInt(elem.style.width) + 1 + 'px';
			width = elem.style.width;
			setTimeout(process, 25);
		}
	}
	
	if (elem.style.width == '')
		elem.style.width = '1px';
	if (elem.style.height ==  '')
		elem.style.height = '0px';

	elem.style.height = '1px';
	elem.setAttribute('slide', 'grow');
	process();
}

function shrinkLine (elem) {

	var process = function() {
		if (parseInt(elem.style.width) > 1 && elem.getAttribute('slide') == 'shrink') {
			elem.style.width = parseInt(elem.style.width) - 1 + 'px';
			width = elem.style.width;
			setTimeout(process, 25);
			if (elem.style.width == '1px')
				elem.style.height = '0px';
		}
	}
	
	elem.setAttribute('slide', 'shrink');
	process(elem.style.width);
}

Load = function(IE) {
	//Show the topselected menu items options
	document.getElementById('img' + parseInt(document.getElementById('topSelected').parentNode.id)).style.display = 'block';
	//Calculate the right line length and display
	if (document.getElementById('middleSelected').firstChild.lastChild.nodeName == "IMG")
	{
		var containerWidth =  document.getElementById('middleSelected').parentNode.clientWidth;
		var containedWidth = document.getElementById('middleSelected').firstChild.offsetWidth;
		document.getElementById('middleSelected').firstChild.lastChild.style.width = containerWidth - containedWidth + 16;
		document.getElementById('middleSelected').firstChild.lastChild.style.height = 1;
	}
	//Create onmouseover and onmouseout events
	var elems = document.getElementById('menu').getElementsByTagName('LI');
	for (var i=0; i<elems.length; i++) {
		//onmouseover
		elems[i].onmouseover=function() {
			if (IE) {
				//equivalent to :hover pseudoclass
				this.className+=' sfhover';
			}
			//Hide bottom level if hovering over another menu
			if (this.id != 'topSelected' && this.parentNode.parentNode.id != 'topSelected' && this.parentNode.parentNode.id != 'middleSelected') {
				if (IE)
					var midSelUL = document.getElementById('middleSelected').lastChild;
				else
					var midSelUL = document.getElementById('middleSelected').lastChild.previousSibling;
				if (document.getElementById('middleSelected').getElementsByTagName('ul').length == 1)	{
					midSelUL.style.display = 'none';
					document.getElementById('middleSelected').firstChild.lastChild.style.display = 'none';
				}
			}
			//Display toplevel background image
			if (!isNaN(parseInt(this.parentNode.id)) && this.id != 'topSelected') {
				document.getElementById('img' + parseInt(this.parentNode.id)).style.display = 'block';
			}
			//Grow the left line
			if (this.parentNode.parentNode.id != 'menu' && this.id == '' && this.firstChild.firstChild.nodeName == 'IMG') {
				growLine(this.firstChild.firstChild);
			}
		}
		//onmouseout
		elems[i].onmouseout=function() {
			//equivalent to :hover pseudoclass
			if (IE) {
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			}
			//Show the bottom level menu again
			if (IE)
				var midSelUL = document.getElementById('middleSelected').lastChild;
			else
				var midSelUL = document.getElementById('middleSelected').lastChild.previousSibling;
			if (document.getElementById('middleSelected').getElementsByTagName('ul').length == 1) {
				midSelUL.style.display = 'block';
				document.getElementById('middleSelected').firstChild.lastChild.style.display = 'inline';
			}
			//Shrink the right line
			if (this.parentNode.parentNode.id != 'menu' && this.firstChild.firstChild.nodeName == 'IMG') {
				shrinkLine(this.firstChild.firstChild);
			}
			//Hide toplevel background image
			if (!isNaN(parseInt(this.parentNode.id)) && this.id != 'topSelected') {
				document.getElementById('img' + parseInt(this.parentNode.id)).style.display = 'none';
			}
		}
	}
}

IELoad = function() {
	Load(true);
}

NotIELoad = function() {
	Load(false);
}

//Create onload events
if (window.addEventListener)
	window.addEventListener('load', NotIELoad, false);
else if (window.attachEvent)
	window.attachEvent('onload', IELoad);