Fx.implement({
	step: function(){
		var time = $time();
		if (time < this.time + this.options.duration){
			var delta = this.transition((time - this.time) / this.options.duration);
			this.set(this.compute(this.from, this.to, delta));
			this.fireEvent('step', this.subject);
		} else {
			this.set(this.compute(this.from, this.to, 1));
			this.complete();
		}
	}
});



window.addEvent('domready', function() {
	$$('#menu ul').removeClass('nojs');
	var links = $$('#menu li a');
	var selected = $$('#menu li b, #menu li a.selected')[0];
	
	var timerId = false;
	
	var tick = function() {
		var h = selected.getParent('ul').parentNode.offsetHeight;
		links.each(function(link) {
			if (link.hasClass('selected')) return;
			h -= link.offsetHeight;
		});
		var oldH = selected.offsetHeight;
		selected.setStyle('height', h + 'px');
	};
	
	links.each(function(link) {
		if (link.hasClass('selected')) {
			return;
		}
		var down = false;
		
		var fx = new Fx.Tween(link, {
			link: 'cancel',
			transition: Fx.Transitions.Sine.easeInOut,
			onStep: tick
		});
		
		//link.addEvent('mousedown', function(e) { var bgpos = link.getStyle('backgroundPosition').split(' '); console.log(bgpos,bgpos[0] + ' ' + (parseInt(bgpos[1])-55)); link.setStyle('backgroundPosition', bgpos[0] + ' ' + (parseInt(bgpos[1])-55) +'px'); });
		//link.addEvent('mouseup', function(e) { var bgpos = link.getStyle('backgroundPosition').split(' '); console.log(bgpos,bgpos[0] + ' ' + (parseInt(bgpos[1])+55)); link.setStyle('backgroundPosition', bgpos[0] + ' ' + (parseInt(bgpos[1])+55) +'px'); });
		link.addEvent('mouseenter', function(e) {
			fx.start('height', 101);
		});
		link.addEvent('mouseleave', function(e) {
			fx.start('height', 26);
		});

	});
});