/*
 * Scroller Functions
 */

Event.observe(window, 'load', loadScrollers, false);

var previewScroller, designScroller, designStepScroller;
var previewScrollerInterval = 5;
function loadScrollers() {
	previewScroller = new listScroller('slide', {childrenVisible : 1, duration : 0.8, animationHandler : previewScrollerAnimationHandler, outputOrder : ['scroller']});
	
  setTimeout("previewScrollerPlayer(true)", previewScrollerInterval*1000);
  if (document.body.id == 'setup') {
   designStepScroller = new listScroller('design-form', {duration : 0.15, animationHandler : null, disableClone : true, childrenVisible : 1, child : {isElement : false, selector : '.design-step'}, outputOrder : ['scroller']});
   designScroller = new listScroller('design-scroller', {duration : 0.8, childrenVisible : 4, animationHandler : designScrollerAnimationHandler});
   $('design-form').style.visibility = $('design-scroller').style.visibility = 'visible';
  }
}	

function previewScrollerAnimationHandler(scroller, status) {
	if (status) {
		Effect.Pulsate(scroller, {from: 0.05, pulses: 1, duration: 0.85});
		if ($(scroller+'-clone')) {
			Effect.Pulsate(scroller+'-clone', {from: 0.15, pulses: 1, duration: 0.8});	
		}
	}
}

function designScrollerAnimationHandler(scroller, status) {
	if (status) {     
		var to = 0.3;
	} else {
		var to = 1.0;
	} 
	Effect.Fade(scroller, {to: to, duration: 0.2});
	if ($(scroller+'-clone')) {
		Effect.Fade(scroller+'-clone', {to: to, duration: 0.2});
	}
}

var previewScrollerControl;
function previewScrollerPlayer(status) {
	if(status && previewScrollerControl == null) {
		var element = Math.abs(previewScroller.currentIndex)+2;
		previewScroller.gotoElement(element);
		previewScrollerControl = new PeriodicalExecuter(function() {
						// Now we add 2 because the elements for ease sake are numbered starting from 0, 
						// so we subtract 1 when gotoElement is called, so to move it we need to add 1 more
						var element = Math.abs(previewScroller.currentIndex)+2;
						previewScroller.gotoElement(element);
					}, previewScrollerInterval);
	} else {
		if (previewScrollerControl) {
			previewScrollerControl.stop();
		}
	}
}