/*
* vertical news ticker
* Tadas Juozapaitis ( kasp3rito@gmail.com )
* http://www.jugbit.com/jquery-vticker-vertical-news-ticker/
*/
(function ($) {
	$.fn.vTicker = function (options) {
		var defaults = {
			speed: 700,
			pause: 4000,
			showItems: 3,
			animation: '',
			mousePause: true,
			isPaused: false,
			direction: 'up',
			height: 0
		};

		var options = $.extend(defaults, options);

		moveUp = function (obj2, height, options) {
			if (options.isPaused)
				return;

			var obj = obj2.children('ul');

			var clone = obj.children('li:first').clone(true);

			if (options.height > 0) {
				height = obj.children('li:first').height();
			}

			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);
				if (options.height == 0) {
					obj.children('li:eq(' + options.showItems + ')').hide().fadeIn(options.speed).show();
				}
			}

			clone.appendTo(obj);
		};

		moveDown = function (obj2, height, options) {
			if (options.isPaused)
				return;

			var obj = obj2.children('ul');

			var clone = obj.children('li:last').clone(true);

			if (options.height > 0) {
				height = obj.children('li:first').height();
			}

			obj.css('top', '-' + height + 'px')
			.prepend(clone);

			obj.animate({ top: 0 }, options.speed, function () {
				$(this).children('li:last').remove();
			});

			if (options.animation == 'fade') {
				if (options.height == 0) {
					obj.children('li:eq(' + options.showItems + ')').fadeOut(options.speed);
				}
				obj.children('li:first').hide().fadeIn(options.speed).show();
			}
		};

		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 0 10px 0', padding: 0 });

			if (options.height == 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 + 10) * options.showItems);
			}
			else {
				obj.height(options.height);
			}

			var interval = setInterval(function () {
				if (options.direction == 'up') {
					moveUp(obj, maxHeight + 10, options);
				}
				else {
					moveDown(obj, maxHeight, options);
				}
			}, options.pause);

			if (options.mousePause) {
				obj.bind("mouseenter", function () {
					options.isPaused = true;
				}).bind("mouseleave", function () {
					options.isPaused = false;
				});
			}
		});
	};
})(jQuery);
