var AfroSlider = Class.create();
var slideParent;
var slides;
var slideOutEffect;
var slideInEffect;
var globalCurrentSlide;
var slideTimeout;
AfroSlider.prototype = {
	initialize: function () {
		slideParent = $$(".slider-home")[0];
		if(slideParent)
		{
			slides = slideParent.select('li');
			this.setHandlers();
			slideTimeout = setTimeout('AfroSlider.prototype.nextSlide()', 4000);
		}
	},
	setHandlers: function () {
		var nav_container = $$(".slide-nav")[0];
		nav_links = nav_container.select("a[href=#]");
		nav_links[0].observe('click', function(event) {
			event.stop();
			AfroSlider.prototype.previousSlide();
		});
		nav_links[1].observe('click', function(event) {
			event.stop();
			AfroSlider.prototype.nextSlide();
		});		
	},
	previousSlide: function () {
		var currentSlide = this.currentSlide();
		var previousSlide = null;
		if(typeof currentSlide.previous() != "undefined")
		{
			previousSlide = currentSlide.previous();
		}
		else
		{
			previousSlide = slides[slides.length - 1];
		}
		this.slideTo(previousSlide);
	},
	nextSlide: function () {
		var currentSlide = this.currentSlide();
		var nextSlide = null;
		if(typeof currentSlide.next() != "undefined")
		{
			nextSlide = currentSlide.next();
		}
		else
		{
			nextSlide = slides[0];
		}
		this.slideTo(nextSlide);		
	},
	slideTo: function (nextSlide) {
		var index 		   = 0;
		var currentSlide   = this.currentSlide();	
		globalCurrentSlide = currentSlide;
		var slideInfos	   = null;
		slides.each(function (slide) {
			if(slide == nextSlide)
			{
				nextIndex = index;
			}
			if(slide == currentSlide)
			{
				currentIndex = index;
			}
			index++;
		});
		slideInfos = $$('.slide_info');
		
		nextSlide.setStyle({
			top: '251px'
		});	
		slideInEffect = new Effect.Morph(nextSlide, {
			style: 'top:0px',
			duration: 1,
			afterFinish: function() {
				var currentSlide = globalCurrentSlide;
				slideOutEffect = new Effect.Morph(currentSlide, {
					style: 'top: ' + currentSlide.getStyle("height"),
					duration: 1
				});
			}
		});
		slideInfos[currentIndex].hide();
		slideInfos[nextIndex].show();		
		clearTimeout(slideTimeout);
		slideTimeout = setTimeout('AfroSlider.prototype.nextSlide()', 4000);
	},
	currentSlide: function () {
		var currentSlide;
		slides.each(function (item) {
			if(item.getStyle('top') == '0px')
			{
				currentSlide = item;
			}
		});
		return currentSlide;
	}
}
document.observe('dom:loaded', function () { new AfroSlider(); });
