YUI().use("anim", function(Y) 
{
	var slider = Y.one('#slider_body');
	var timer = 5000
	var time = 0;
	var rotateSlider = function(position)
	{
		if (time) clearTimeout(time);
		rotateSliderImage(position);
		rotateSliderText(position);
		time = setTimeout(rotateSlider,timer);
	}
	
	var rotateSliderImage = function(position)
	{
		var elements = Y.all('#slider ul li');
		var count = elements.size()-1;
		var currentNum = 0;
		var counter = 0;
		elements.each(function(v)
		{
			if (v.hasClass('activeSlide'))
			{
			currentNum = counter;
			}
			counter++;					
		});
		var nextSlide = 0;
		if (position) 
		{
			if ((position<1) || (position>count+1))
			{
				position = false;
				if (currentNum < count) nextSlide = currentNum + 1;
			}
			else nextSlide = position-1;
		}						
		else if (currentNum < count) nextSlide = currentNum + 1;
		var slide = elements.item(currentNum);
		hiding = new Y.Anim(
		{
			node: slide,
			to: { opacity: 0 },
			duration: 0.5
		});
		hiding.on('end', function()
		{
			slide.addClass('unactiveSlide');
			slide.removeClass('activeSlide');					
			elements.item(nextSlide).setStyle('opacity', 0);
			elements.item(nextSlide).removeClass('unactiveSlide');
			elements.item(nextSlide).addClass('activeSlide');
			var buttons = Y.all('#slider_move a');
			buttons.item(currentNum).removeClass('activeSlideButton');
			buttons.item(nextSlide).addClass('activeSlideButton');
			showing = new Y.Anim(
			{
				node: elements.item(nextSlide),
				to: { opacity: 1 },
				duration: 0.5
			});  
			showing.run();
		});
		hiding.run();
	}

	var rotateSliderText = function()
	{
		var textBox = Y.one('#slider_info');
		hiding = new Y.Anim(
		{
			node: textBox,
			to: { opacity: 0 },
			duration: 0.5
		});
		hiding.on('end', function()
		{
			textBox.set('innerHTML',Y.one('.activeSlide .slideInfo').get('innerHTML'));
			showing = new Y.Anim(
			{
				node: textBox,
				to: { opacity: 1 },
				duration: 0.5
			});    
			showing.run();
		});
		hiding.run();
	}

	var buildSliderButtons = function()
	{
		var buttons = Y.one('#slider_move');
		if (buttons)
		{
			var elements = Y.all('#slider ul li');
			elements.each(function(v,k)
			{
				if(v.hasClass('activeSlide')) button = Y.Node.create('<a href="javascript:void(0)" class="activeSlideButton"></a>');
				else button = Y.Node.create('<a href="javascript:void(0)"></a>');
				button.on('click',function()
				{
					rotateSlider(k+1);
				});
				buttons.appendChild(button);
			});
		}
	}

	var runSlider = function()
	{
		buildSliderButtons();
		rotateSlider(1);
	}
	Y.on("available", runSlider, "#slider_body", Y);
});


