/** Tadas Juozapaitis ( kasp3rito@gmail.com )*/
(function ($) {
	$.fn.vTicker = function (options) {
		var defaults = {
			speed: 700,
			pause: 4000,
			showItems: 3,
			animation: '',
			mousePause: true,
			isPaused: false
		};

		var options = $.extend(defaults, options);

		moveUp = function (obj2, height) {
			if (options.isPaused)
				return;

			var obj = obj2.children('ul');

			first = obj.children('li:first').clone(true);

			obj.animate({ top: '-=' + height + 'px' }, options.speed, function () {
				$(this).children('li:first').remove();
				$(this).css('top', '0px');
			});

			if (options.animation == 'fade') {
				obj.children('li:first').fadeOut(options.speed);
				obj.children('li:last').hide().fadeIn(options.speed);
			}

			first.appendTo(obj);
		};

		return this.each(function () {
			var obj = $(this);
			var maxHeight = 0;

			obj.css({ overflow: 'hidden', position: 'relative' })
            .children('ul').css({ position: 'absolute', margin: 0, padding: 0 })
            .children('li').css({ margin: 0, padding: 0 });

			obj.children('ul').children('li').each(function () {
				if ($(this).height() > maxHeight) {
					maxHeight = $(this).height();
				}
			});

			obj.children('ul').children('li').each(function () {
				$(this).height(maxHeight);
			});

			obj.height(maxHeight * options.showItems);

			var interval = setInterval(function () { moveUp(obj, maxHeight); }, options.pause);

			if (options.mousePause) {
				obj.bind("mouseenter", function () {
					options.isPaused = true;
				}).bind("mouseleave", function () {
					options.isPaused = false;
				});
			}
		});
	};
})(jQuery);
