
var Slide = new Class({

	Implements: Options,

	options: {
		offset: 90,
		duration: 'short',
		durationHide: 'short'
	},

	initialize: function(list, options) {
		if (!list) {
			return
		}
		this.setOptions(options);
		if (options && !options.durationHide) {
			this.options.durationHide = this.options.duration;
		}
		if (Browser.ie && Browser.version < 8 && list.id === 'cards') {
			list.setStyle('overflow', 'hidden');
			return;
			var position = list.getPosition();
			var size = list.getSize();
			list.dispose();
			list.setPosition(position);
			list.setStyle('overflow', 'hidden');
			list.setStyle('height', size.y);
			$('main').grab(list);
		}
		list.getChildren().each(function(item) {
			item.setStyles({
				position: 'relative',
				top: this.options.offset,
				left: 0
			});
			item.store('originalPaddingBottom', item.getStyle('padding-bottom').toInt());
		}, this);
		list.addEvents({
			'mouseenter:relay(li)': this.showSlide.bind(this),
			'mouseleave:relay(li)': this.hideSlide.bind(this)
		});
	},

	showSlide: function(event, slide) {
		var paddingBottom = slide.retrieve('originalPaddingBottom');
		if (slide.getParent('ul').getStyle('position') !== 'absolute') {
			paddingBottom += this.options.offset;
		}
		slide.set('morph', {
			duration: this.options.duration
		});
		slide.morph({
			'top': 0,
			'padding-bottom': paddingBottom
		});
	},

	hideSlide: function(event, slide) {
		slide.set('morph', {
			duration: this.options.durationHide
		});
		slide.morph({
			'top': this.options.offset,
			'padding-bottom': slide.retrieve('originalPaddingBottom')
		});
	}

});

