/*
* 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
		}).fadeIn(options.speed).children('li').css({
			margin: 0,
			padding: 0
		}).fadeIn(options.speed);
		
		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);
