/*
* 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,
				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 * options.showItems);
			}
			else
			{
				obj.height(options.height);
			}

			var interval = setInterval(function(){
				if(options.direction == 'up')
				{
					moveUp(obj, maxHeight, 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);
