/*
* 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 item = obj.children('li:first');
		var next = item.next();
		
		if(options.height > 0)
		{
			height = item.height();
		}
		
		obj.stop(true, true).animate({top: '-=' + height + 'px'}, options.speed, function() {
			item.detach().appendTo(obj);
        	$(this).css('top', '0px');
        });

		if(options.animation == 'fade')
		{
			item.stop().fadeOut(options.speed);
			if(options.height == 0)
			{
				next.hide().stop().fadeIn(options.speed).show();
			}
		}
		
/*		var obj = obj2.children('ul');
		
		var origObj = obj.children('li:first');
		
    	var clone = origObj.clone(true);

		var next = obj.children('li:eq(1)');
		
		if(options.height > 0)
		{
			height = obj.children('li:first').height();
		}		
		
    	obj.animate({top: '-=' + height + 'px'}, options.speed, function() {
        	origObj.remove();
        	$(this).css('top', '0px');
        });
		
		if(options.animation == 'fade')
		{
			origObj.fadeOut(options.speed);
			if(options.height == 0)
			{
				next.hide().fadeIn(options.speed).show();
			}
		}

    	clone.appendTo(obj);*/
	};
	
	moveDown = function(obj2, height, options){
		if(options.isPaused)
			return;
		
		var obj = obj2.children('ul');
		
		var origObj = obj.children('li:last');
		
    	var clone = origObj.clone(true);
		
		var prev = origObj.prev();
		
		if(options.height > 0)
		{
			height = obj.children('li:first').height();
		}
		
		obj.css('top', '-' + height + 'px')
			.prepend(clone);
			
    	obj.animate({top: 0}, options.speed, function() {
        	origObj.remove();
        });
		
		if(options.animation == 'fade')
		{
			if(options.height == 0)
			{
				prev.fadeOut(options.speed);
			}
			clone.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);

