$(document).observe('dom:loaded', function() {
	
	var numSlides = $$('.meSliderBanner').length;
	
	if(numSlides >= 2) {
		displayControlls();
		initCarousel();
	}
	initButtons();
	
});

function initCarousel() {
	var viewDur 		= $('meSliderViewDur').value;
	var transDur 		= $('meSliderTransDur').value;
	window.slideTimer 	= setTimeout("slide('left', 'carousel')", (parseInt(viewDur) * 1000));
}
function stopCarousel() {
	clearTimeout(window.slideTimer);
}



function slide(direction, type) {
	var width 		= $('meSliderContainer').getStyle('width').replace('px', '');
	var transDur 	= $('meSliderTransDur').value;
	var current		= $('meSliderCurrent').value;
	var numSlides 	= $$('#meSliderInner > div').length;
	var noRun		= false;

	if($('meSliderWait').value == 'true' && type == 'carousel') noRun = true;
	
	if(!noRun) {
		switch(direction) {
			case 'left':
				if(current != 1) {
					rePosition('left', width);
				}
				new Effect.MoveBy('meSliderInner', 0, '-' + width, {duration: transDur, queue: 'end'});
				$('meSliderCurrent').value = parseInt(current) + 1;
			break;
			case 'right':
				rePosition('right', width);
				new Effect.MoveBy('meSliderInner', 0, width, {duration: transDur, queue: 'end'});
			break;
		}
	}
	if(type == 'carousel') {
		initCarousel();
	}
}

function rePosition(direction, width) {
	var leftId;
	var rightId;
	$$('#meSliderInner div:first-child').each(function(el) {
		leftId = $(el).id;
	});
	$$('#meSliderInner div:last-child').each(function(el) {
		rightId = $(el).id;
	});

	switch(direction) {
		case 'left':
			//alert(leftId); 
			var newBanner = new Element( 'div', { 'class':'meSliderBanner', 'id': leftId, 'style':$(leftId).readAttribute('style')} );
			newBanner.update($(leftId).innerHTML);
			$(leftId).remove(); 
			$('meSliderInner').insert ({
			         'bottom'  : newBanner
			});
			new Effect.MoveBy('meSliderInner', 0, width, {duration: 0});
		break;
		
		case 'right':
			//alert(rightId); 
			var newBanner = new Element( 'div', { 'class':'meSliderBanner', 'id': rightId, 'style':$(leftId).readAttribute('style')} );
			newBanner.update($(rightId).innerHTML);
			$(rightId).remove();
			$('meSliderInner').insert ({
			         'top'  : newBanner
			});
			new Effect.MoveBy('meSliderInner', 0, '-' + width, {duration: 0});
		break;
		
	}
	
}

function initButtons() {
	$('meSliderBtnLeft').observe('click', function() {
		var transDur = $('meSliderTransDur').value;
		if($('meSliderNoPress').value == 'false') {
			setWaitTimer();
			disableButtons();
			slide('right', 'manual');
		}
	});
	$('meSliderBtnRight').observe('click', function() {
		var transDur = $('meSliderTransDur').value;
		if($('meSliderNoPress').value == 'false') {
			setWaitTimer();
			disableButtons();
			slide('left', 'manual');
		}
	});
	$('meSliderBtnCarousel').observe('click', function() {
		if($(this).hasClassName('meSliderPause')) {
			$(this).removeClassName('meSliderPause').addClassName('meSliderPlay');
			$(this).down('img').setAttribute('src', '/skin/frontend/base/default/images/cw-slider-play.png');
			$(this).setAttribute('title', 'Play Slideshow');
			stopCarousel();
		}
		else {
			$(this).removeClassName('meSliderPlay').addClassName('meSliderPause');
			$(this).down('img').setAttribute('src', '/skin/frontend/base/default/images/cw-slider-pause.png');
			$(this).setAttribute('title', 'Pause Slideshow');
			initCarousel();
		}
	});
}
function enableButtons() {
	$('meSliderNoPress').value = 'false';
}

function disableButtons() {
	var transDur = $('meSliderTransDur').value;
	$('meSliderNoPress').value = 'true';
	
	setTimeout('$(\'meSliderNoPress\').value = "false"',transDur * 1000);
}



function resetWaitTimer() {
	$('meSliderWait').value = false;	
}

function setWaitTimer() {
	clearTimeout(window.waitTimer);
	$('meSliderWait').value = 'true';
	window.waitTimer = setTimeout('resetWaitTimer()', 20000);
}



function displayControlls() {
	$('meSliderControlls').setStyle({
			'display' : 'block'
	});
}

