/*
* 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: 1000,
    pause: 3500,
    showItems: 2,
    animation: 'fade',
    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+1) * 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);
