function vMenu(orgx,orgy,T,mode,up){
	var i,busy,stat,w=0,h=0,cw,ch,max,c=0,cont=Al.N(Al.U(),0,vlay.root);
	function step(){
		c+=busy?T:stat;
		if(mode=='v'){max=ch;c=(c<0)?0:(c>ch)?ch:c;cont.style.top=orgy-ch+c;cont.vclip(ch-c,cw,ch,0)}
			else{max=cw;c=(c<0)?0:(c>cw)?cw:c;cont.style.left=orgx-cw+c;cont.vclip(0,cw,ch,cw-c)}
		if(up)up.setbusy(c>0);if(!(c%max)){clearInterval(i);i=0}
	}
	function init(){if(!i)i=setInterval(step,1)}
	function roll(v){stat=T;init();}
	function hide(){stat=-T;init()}
	function setbusy(b){if(!(busy=b))init()}
	function add(dx,dy,c0,c1,action,sub,deltaX,deltaY){
		var n=Al.U(),von,voff,opt;
		function over(){von.style.visibility='visible';voff.style.visibility='hidden';if(up)roll();if(opt)opt.go()}
		function out(){voff.style.visibility='visible';von.style.visibility='hidden';if(up)hide();if(opt)opt.hide()}
		function klik(){eval(action)}
		with(voff=Al.N(n+'off',dx,cont)){vHTML(c0);vpos(w,h);vclip(0,dx,dy,0);vopacity(90)}
		with(von=Al.N(n+'on',dx,cont)){vHTML(c1);vpos(w,h);vclip(0,dx,dy,0);vopacity(95);style.visibility='hidden'}
		with(Al.N(n+'mask',dx,cont)){
			vHTML('<img name='+n+' width='+dx+' height='+dy+' src=blank.gif>');
			vpos(w,h);
			document.images[n].onmouseover=over;
			document.images[n].onmouseout=out;
			document.images[n].onmousedown=klik;
		}
		w+=(mode=='h')?dx:0;
		h+=(mode=='v')?dy:0;
		cw=(w)?w:dx;ch=(h)?h:dy;
		var ddx = 0;
		if (deltaX) ddx=deltaX;
		var ddy = 0;
		if (deltaY) ddy=deltaY;
		if(sub) opt=vMenu(orgx+ddx+cw-(mode=='h'?dx:0),orgy+ddy+ch-(mode=='v'?dy:0),T,sub,this)
		cont.vclip(0,0,0,0);
		return opt;

	}
	cont.vpos(orgx,orgy);
	return {go:roll,setbusy:setbusy,addItem:add,hide:hide}
		
}
