var autoSlidenb = (function(){

	/* ----------Config Vars----------- */
	var slideTimer = 5000;
	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', "1200px");}
	});
	var numItems = items.length;// get number of slider items
	//end setup
	
	if (numItems != 1){
	
		//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': [1200, 0]});
			
			//no beginning values needed, since we always want to push the old item out to the left
			item_out.start({'left': ['-1200']});
			
		};
			
			
		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': [-1200, 0]});
			
			//no beginning values needed
			item_out.start({'left': '1200'});
			
		};
		//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();
		});
		
	} else {
		//noslide
	}
});
