/**
 * @author Ondrej Frinta / ondrej.frint[at]e-invent.eu / e-invent.eu
 * @date 2011-04-19
 * @version 1.1 - Special modifications for LITE.cz
 *
 * @example
 * $('#rotator').rotator({
 * 	'timerDuration' : 45000, // 0 - disable timer
 * 	'fadeDuration' : 350,
 * 	'itemClass' : 'myRotatorItem'
 * });
 *
 */
(function($) {

		var itemHolder = null;
		var itemList = Array();
		var actualItem = 0;
		var totalItems = 0;
		var canFade = true;
		var timer = null;

		var settings = {
			'timerDuration' : 4500,
			'fadeDuration' : 350,
			'itemClass': 'rotatorItem'
		}

    $.fn.rotator = function(options) {

      if (options) $.extend(settings, options);

			var itemSel = '.'+settings.itemClass;
			var itemHolderSel = itemSel+'Holder';
			$(this).wrapInner('<div class="'+settings.itemClass+'Holder" />');

			itemHolder = $(this).children(itemHolderSel);
			itemList = itemHolder.children(itemSel).get();
			totalItems = itemList.length;

			if (totalItems <= 1) return;

			$(itemList).hide();
			$(itemList[0]).show();

			// Button holder
			var rotatorBtnList = Array();
			var rotatorBtnHolder = $('#guidepost .btnHolder');

			rotatorBtnList = $(rotatorBtnHolder.children('a').get());
			$(rotatorBtnList[0]).addClass('active');
			$(rotatorBtnList[0]).append('<span class="arr" />');			

			// Click handler
			$(rotatorBtnList).click(function() {
				clearTimeout(timer);
				timer = null;
				$.rotator.changeImage($(rotatorBtnList).index(this));
				return false;
			});

			// init timer
			if(settings.timerDuration>0) {
				timer=setTimeout("$.rotator.timer()", settings.timerDuration);
			}
    };

    $.rotator = function() {};

		$.rotator.changeImage = function(indexNew) {
			if(!canFade || indexNew < 0 || indexNew >= totalItems || indexNew==actualItem) return false;
			canFade = false;

			$(itemHolder).append(itemList[actualItem]);
			$(itemList[actualItem]).fadeOut(settings.fadeDuration, function() {canFade = true;});
			$(itemList[indexNew]).show();

			var rotatorBtns = $('#guidepost .btnHolder a');
			$(rotatorBtns[actualItem]).removeClass('active');
			$(rotatorBtns[actualItem]).children('.arr').remove();
			$(rotatorBtns[indexNew]).addClass('active');
			$(rotatorBtns[indexNew]).append('<span class="arr" />');

			actualItem = indexNew;

			if(timer==null && settings.timerDuration>0) {
				timer=setTimeout("$.rotator.timer()", settings.timerDuration);
			}

		};
		$.rotator.timer = function() {
				timer=setTimeout("$.rotator.timer()", settings.timerDuration);
				$.rotator.next();
		}
    $.rotator.next = function() {
				indexNew = (actualItem+1 < totalItems) ? actualItem+1 : 0;
				$.rotator.changeImage(indexNew);
    };

})(jQuery);

$(document).ready(function() {
	$('#gpContent').rotator({
		'timerDuration' : 7000,
		'fadeDuration' : 350,
		'itemClass': 'gpItem'});
});


