var sfInfoSlider = new Class({
	Implements: Options,
	wrapper: Class.empty,
	slider: Class.empty,
	items: Class.empty,
	titles: new Array(),
	nextlink: Class.empty,
	prevlink: Class.empty,
	on: -1,
	options: {
		slideSpeed: 300,
		slideTransition: Fx.Transitions.linear
	},
	initialize: function(wrapper, items, options) {
		this.setOptions(options);
		this.wrapper = wrapper;
		this.items = items;
		
		this.wrapper.setStyle('overflow','hidden');
		
		var n = new Element('div');
		n.addClass('linkwrapper');
		this.wrapper.adopt(n);
		
		// Setup Next Link
		this.nextlink = new Element('a');
		this.nextlink.set('href', '#next');
		this.nextlink.set('html', '&nbsp;');
		this.nextlink.setStyle('float','right');
		this.nextlink.addEvent('click', this.next.bind(this));
		n.adopt(this.nextlink);
		
		// Setup Previous Link
		this.prevlink = new Element('a');
		this.prevlink.set('href', '#prev');
		this.prevlink.set('html', '&nbsp;');
		this.prevlink.addEvent('click', this.prev.bind(this));
		n.adopt(this.prevlink);

		this.slider = new Element('div');
		this.slider.addClass('innerwrap');
		this.slider.setStyles({
			position: 'absolute',
			width: '3000px'
		});
		this.slider.set('tween', {
			duration: this.options.slideSpeed,
			transition: this.options.slideTransition
		});
		this.wrapper.grab(this.slider, 'top');
		var maxh = 0;
		this.items.each(function(d, i) {
			this.slider.adopt(d);
			d.setStyle('float','left');
			this.titles.include(d.getElement('h4').get('html'));
			//maxh = Math.max(maxh, d.getSize().y.toInt());
			maxh = Math.max(maxh, d.getStyle('height').toInt());
		}, this);
		this.items.each(function(d) { d.setStyle('height', maxh); });
		n.setStyle('marginTop', maxh+40);
		this.activate(0);
	},
	activate: function(n) {
		var offset=slideto=0;
		if (n==this.on) return false;
		this.items.each(function(d, i) {
			if (i==n) {
				this.on = n;
				d.removeClass('session-inactive');
				if (n+1 < this.titles.length) {
					this.nextlink.set('html', 'Next: ' + this.titles[n+1] + ' &raquo;');
					this.nextlink.removeClass('inactive');
				} else {
					this.nextlink.set('html', '&nbsp;');
					this.nextlink.addClass('inactive');
				}
				if (n-1 >= 0) {
					this.prevlink.set('html', '&laquo; Previous');
					this.prevlink.removeClass('inactive');
				} else {
					this.prevlink.set('html', '&nbsp;');
					this.prevlink.addClass('inactive');
				}
				slideto = (offset==0) ? 0 : 40-offset;
				//this.slider.setStyle('left', slideto);
				this.slider.tween('left', slideto);
			} else {
				d.addClass('session-inactive');
				//new Fx.Morph(d).set('.session-inactive');
			}
			offset += d.getSize().x.toInt();
		}, this);
	},
	next: function(e) {
		// add test
		e.stop();
		this.activate(this.on+1);
	},
	prev: function(e) {
		// add test
		e.stop();
		this.activate(this.on-1);
	}
});

window.addEvent('domready', function() {
	if ($chk($('sessionswrap'))) {
		var sessioninfo = new sfInfoSlider($('sessionswrap'), $$('#sessionswrap .session'), {
			slideSpeed: 900,
			slideTransition: Fx.Transitions.Quint.easeOut
		});
	}
	$$('.session small span','#signmeup .splitter').each(function(x) {
		x.setOpacity('0.25');
	});
});