var SlideMenu = new Class({
	Implements: [Options],
	options: {
		delay: 100,
		blocks: '#sidebar li',
		blockWidth: 220,
		blockMargin: 10,
		transition: Fx.Transitions.Elastic.easeOut,
		offset : 500,
		direction : 'top',
		initPosition : -99
	},
	slidefxs: [],
    initialize: function(options){
        this.setOptions(options);
		if($$(this.options.blocks).length>0){
			$$(this.options.blocks).each(function(el, i){
				switch(this.options.direction){
					case 'left' : el.setStyle('left',this.options.initPosition); break;
					case 'top' : el.setStyle('top',this.options.initPosition); break;
					case 'bottom' : el.setStyle('bottom',this.options.initPosition); break;
					case 'right' : el.setStyle('right',this.options.initPosition); break;
				}
				this.slidefxs[i]  = new Fx.Morph(el, {duration: 'long', transition: this.options.transition });
			}, this);
			this.run();
		}
    },
	
	run: function(){
		timer = 0;
		for(i=0;i<$$(this.options.blocks).length;i++){
			switch(this.options.direction){
				case 'left' : this.slidefxs[i].start.delay(timer, this.slidefxs[i], { 'left' : [this.options.initPosition,0] }); break;
				case 'top' : this.slidefxs[i].start.delay(timer, this.slidefxs[i], { 'top' : [this.options.initPosition,0]}); break;
				case 'bottom' : this.slidefxs[i].start.delay(timer, this.slidefxs[i], { 'bottom' : [this.options.initPosition,0]}); break;
				case 'right' : this.slidefxs[i].start.delay(timer, this.slidefxs[i], { 'right' : [this.options.initPosition,0]}); break;
			}
			timer += this.options.delay;
		}
	}
});
