var autoSlidenb = (function(){

	/* ----------Config Vars----------- */
	var slideTimer = 6000;
	var transitionTime = 1500;
	var items = $$('.slide');// Get array of elements for sliding
	var prevBtn = $$('.back');
	var nextBtn = $$('.next');
	var itemNum = 0;// initialize a variable to hold the current slide index
	var isPaused = 0;
	/* --------End config vars-------- */
	
	//Setup positions
	items.each(function(element, index){
		//since the viewer obviously has javascript on, we can remove the 'first_item' class
		if(index == 0){element.setStyle('left', "0");
		}else{element.setStyle('left', "1880px");}
	});
	var numItems = items.length;// get number of slider items
	//end setup
	
	//Slider Stuff
	var slideForward = 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.Sine.easeInOut, 
			wait:false
		});
		
		var item_out = new Fx.Morph(curItem, {
			duration: transitionTime, 
			transition: Fx.Transitions.Sine.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': [1880, 0]});
		
		//no beginning values needed, since we always want to push the old item out to the left
		item_out.start({'left': ['-1880']});
		
	};
		
		
	var slideBackward = function(){ 
		
		//get item to slide out
		var curItem = items[itemNum]; 
		
		//change index for reverse movement
		if(itemNum > 0){itemNum--;}else{itemNum = (numItems - 1);}
		
		//now get item to slide in using new index
		var newItem = items[itemNum];
		
		var item_in = new Fx.Morph(newItem, {
			duration: transitionTime, 
			transition: Fx.Transitions.Sine.easeInOut, 
			wait:false
		});
		
		var item_out = new Fx.Morph(curItem, {
			duration: transitionTime, 
			transition: Fx.Transitions.Sine.easeInOut, 
			wait:false
		});
		
		//we will set a beginning value here too, but this time to make it come from left to right
		item_in.start({'left': [-940, 0]});
		
		//no beginning values needed
		item_out.start({'left': '940'});
		
	};
	//end slideBackward
		
		
	//call the slider function periodically
	var theTimer = slideForward.periodical(slideTimer, this); 
	
	nextBtn.addEvent('click', function(){
		if(isPaused == 0){
			$clear(theTimer);
			theTimer = slideForward.periodical(slideTimer);
		}
		slideForward();
	});
	
	prevBtn.addEvent('click', function(){
		if(isPaused == 0){
			$clear(theTimer);
			theTimer = slideForward.periodical(slideTimer);
		}
		slideBackward();
	});

});
