/**
 * @requires jquery.jcarousel-0.2.7
 */

$(window).load(function() {
	$('.pageable-jcarousel').each(function() {
		var stage = $(this);
		stage.css({overflow: 'hidden'});
		var carousel = stage.find('.pageable-jcarousel-items');
		var panel = carousel.after('<div class="pageable-jcarousel-panel"></div>').next();
		var index = panel.append('<ul class="pageable-jcarousel-pager"></ul>').children(':last');
		var pauseButton = panel.append('<div class="pageable-jcarousel-pager-item pageable-jcarousel-pager-controlbutton"><a class="pause-button pause-button-paused pageable-jcarousel-pager-item-link" tabindex="0"></a></div>').find('.pause-button');

		carousel.find('li').each(function(offset) {
			var link = index.append('<li class="pageable-jcarousel-pager-item"><a class="pageable-jcarousel-pager-item-link" href="#">' + (offset + 1) + '</a></li>').children(':last').find('a');
			link.click(function() {
				carousel.jcarousel('scroll', offset + 1);
				return false;
			});
		});
		
		carousel.jcarousel({
			visible: 1,
			scroll: 1,
			buttonNextHTML: null,
			buttonPrevHTML: null,
			wrap: 'circular',
			itemVisibleInCallback: function(carousel, li, offset) {
				var position = (offset - 1) % index.find('li').size();
				pauseButton.click().click();
				index.find('li')
					.removeClass('pageable-jcarousel-pager-item-active')
					.addClass('pageable-jcarousel-pager-item-inactive')
					.eq(position)
						.addClass('pageable-jcarousel-pager-item-active')
						.removeClass('pageable-jcarousel-pager-item-inactive');
			}
		});

		pauseButton.click(function() {
			var button = $(this);
			if (button.is('.pause-button-paused')) {
				button.addClass('pause-button-playing');
				button.removeClass('pause-button-paused');
				button.html('<span class="pause-button-text">Pause</span>');
				carousel.jcarousel('startAuto', 12);
			} else {
				button.removeClass('pause-button-playing');
				button.addClass('pause-button-paused');
				button.html('<span class="pause-button-text">Play</span>');
				carousel.jcarousel('stopAuto', 0);
			}
		});

		pauseButton.click();
	});
});
