
	function fade(eid, time) {
		var element = document.getElementById(eid);
		if (element == null) return;
		
		element.timeToFade = time;
		
		if (element.FadeState == null) {
			if (element.style.opacity == null || element.style.opacity == '' || element.style.opacity == '1') element.FadeState = 2;
			else element.FadeState = -2;
		}

		if (element.FadeState == 1 || element.FadeState == -1) {
			element.FadeState = (element.FadeState == 1) ? -1 : 1;
			element.FadeTimeLeft = element.timeToFade - element.FadeTimeLeft;
		} else {
			element.FadeState = (element.FadeState == 2) ? -1 : 1;
			element.FadeTimeLeft = element.timeToFade;
			setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
		}  
	}
	
	function animateFade(lastTick, eid) {  
		var curTick = new Date().getTime();
		var elapsedTicks = curTick - lastTick;

		var element = document.getElementById(eid);

		if (element.FadeTimeLeft <= elapsedTicks) {
			element.style.opacity = element.FadeState == 1 ? '1' : '0';
			element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100' : '0') + ')';
			element.FadeState = (element.FadeState == 1) ? 2 : -2;
			return;
		}

		element.FadeTimeLeft -= elapsedTicks;
		var newOpVal = element.FadeTimeLeft/element.timeToFade;
		if (element.FadeState == 1) newOpVal = 1 - newOpVal;

		element.style.opacity = newOpVal;
		element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';

		setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
	}
	
	var TimeToMenuFade = 200;
		var onMenu = 0;
		var onPlus = 0;
		var MenuOn = 0;
		var TimeOutLastID = 0;
		
		function checkMenu(eid) {
			clearTimeout(TimeOutLastID);
			TimeOutLastID = setTimeout("menuFade('"+eid+"')", 50);
		}

		function menuFade(eid) {
			var element = document.getElementById(eid);
			if (element == null) return;
			
			if (MenuOn && ((onPlus)||(onMenu))) return;
			
			MenuOn = (MenuOn) ? 0:1;

			if (element.menuFadeState == null) {
				if (element.style.opacity == null || element.style.opacity == '' || element.style.opacity == '1') element.menuFadeState = 2;
				else element.menuFadeState = -2;
			}

			if (element.menuFadeState == 1 || element.menuFadeState == -1) {
				element.menuFadeState = (element.menuFadeState == 1) ? -1 : 1;
				element.menuFadeTimeLeft = TimeToMenuFade - element.menuFadeTimeLeft;
			} else {
				element.menuFadeState = (element.menuFadeState == 2) ? -1 : 1;
				element.menuFadeTimeLeft = TimeToMenuFade;
				setTimeout("animateMenuFade(" + new Date().getTime() + ",'" + eid + "')", 33);
			}  
		}
		
		function animateMenuFade(lastTick, eid) {  
			var curTick = new Date().getTime();
			var elapsedTicks = curTick - lastTick;

			var element = document.getElementById(eid);

			if (element.menuFadeTimeLeft <= elapsedTicks) {
				element.style.opacity = (element.menuFadeState == 1) ? '1' : '0';
				element.style.filter = 'alpha(opacity = ' + (element.menuFadeState == 1 ? '100' : '0') + ')';
				if (element.menuFadeState == -1) {
					element.style.width = "0px";
					element.style.visibility = "hidden";
				}
				element.menuFadeState = (element.menuFadeState == 1) ? 2 : -2;
				return;
			} else {
				element.style.visibility = "visible";
				element.style.width = "auto";
			}

			element.menuFadeTimeLeft -= elapsedTicks;
			var newOpVal = element.menuFadeTimeLeft/TimeToMenuFade;
			if (element.menuFadeState == 1) newOpVal = 1 - newOpVal;

			element.style.opacity = newOpVal;
			element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';

			setTimeout("animateMenuFade(" + curTick + ",'" + eid + "')", 33);
		}
		
		var menuClicked = 0;
