/* 
Slider for MooTool
Author: Degt.cl
Version: 1.1

Log
*1.1 - Added Clean Interval
*1.0 - Slider release

*/
window.addEvent('domready', function() {
	
	/* ----------Config----------- */
		
	var slideTimer = 6000;  //time between slides (1 second = 1000), a.k.a. the interval duration
	var transitionTime = 1000; //transition time (1 second = 1000)
	var items = $$('.slide');  //Get array of elements for sliding
	var mainContainer = $$('#main_banner');//Get Main container
	var itemNum = 0;  //initialize a variable to hold the current slide index
	
	/* --------end config-------- */
	
	//This is for clean interval
	var slideIt; 
	var slideFunction;
	
	//Setup positions
	items.each(function(element, index) {
		if(index == 0){
			element.setStyle('left', "0");
		}
		else{
			element.setStyle('left', "1000");
			element.setStyle('opacity', "0");
		}
	});
	//end setup
	
	//Slider Stuff
	slideFunction = function() {
		
		var numItems = items.length;  //get number of slider items
		
		slideIt = function(){ 
		
			//get item to slide out
			var curItem = items[itemNum];  
			
			//change index
			if(itemNum < (numItems - 1)){
				itemNum++; 
			}
			else{
				itemNum = 0;
			}
						
			//now get item to slide in using new index
			var newItem = items[itemNum];
			
			//set up our animation stylings for out and in motions (note:  Fx.Styles does NOT exist in moo 1.2, so we must use Fx.Morph or Fx.Tween)
			var item_in = new Fx.Morph(newItem, {
				     duration: transitionTime, 
				     transition: Fx.Transitions.Quad.easeInOut, 
				     wait:false
			});
			
			var item_out = new Fx.Morph(curItem, {
				     duration: transitionTime, 
				     transition: Fx.Transitions.Quad.easeInOut, 
				     wait:false
			});
			
			//we will set a beginning value here
			//this is so that it gives the illusion of continuous motion from one direction, even after the first cycle of items
			item_in.start({
				'left': [500, 0],
				'opacity':[0,1]
			});
			
			//no beginning values needed, since we always want to push the old item out to the left
			item_out.start({
			'left': '-500',
			'opacity':[0]
			});
			
			
		}.periodical(slideTimer); //call the function, periodically  (note: the interval period is defined at the top of this file)

	}
	
	slideFunction(); //Start the slide
	
	mainContainer.addEvents({
		mouseenter: function(){
			$clear(slideIt); //Stop the slide
		},
		mouseleave: slideFunction //Restart the slide
	});
});
