// JavaScript Document

todo.onload(function(){
	var ul=todo.get('menu_leftouter'),
		li=todo.getFirstChild(ul);
	while(li){
		var cn=li.getElementsByTagName('ul')[0];
		if(cn){
			cn._step=4;
			cn._height=cn.offsetHeight;
			cn.style.height=cn._height+'px';
			cn._stopRolling=function(direction){
				if(direction && this._timerUp){window.clearInterval(this._timerUp);this._timerUp=null;};
				if(!direction && this._timerDown){window.clearInterval(this._timerDown);this._timerDown=null;}
			};
			cn._startRolling=function(direction){
				var f=function(e,direction){return function(){e._roll(direction);}};
				if(direction && !this._timerUp)this._timerUp=window.setInterval(f(this,direction),30);
				if(!direction && !this._timerDown)this._timerDown=window.setInterval(f(this,direction),30);
			};
			cn._roll=function(direction){
				this._stopRolling(!direction);
				this._startRolling(direction);
				
				var h=parseInt(this.style.height);
				h=h+Math.ceil((this._height+this._step-h)/this._step)*(direction ? -1 : 1);
				if(h<=0 || h>=this._height){
					this._stopRolling(direction);
					if(h<0)h=0;
					else if(h>this._height)h=this._height
				}
				this.style.height=h+'px';
			};
			li._submenu=cn;
			li._submenu._roll(true);
			li.onmouseover=function(e){
				this._submenu._roll(false);
				if(!document.onmouseover){
					document.onmouseover=function(){
						var ul=todo.get('menu_leftouter'),
							li=todo.getFirstChild(ul);
						while(li){
							var cn=li.getElementsByTagName('ul')[0];
							if(cn)li._submenu._roll(true);
							li=todo.getNextNode(li);
						};
						document.onmouseover=null;
					}
				};
				var e=e || window.event;
				if(e.stopPropagation)e.stopPropagation();
				else e.cancelBubble=true;
				if(e.preventDefault)e.preventDefault();
				else e.returnValue=false;
			};
			
		};
		li=todo.getNextNode(li);
	}
	
});
