$.fn.running_text = function(){
  var $o = {
    class_name : "running-text",
    speed: 50000
  };
  var $this = this;

  var $obj = {
    init: function(){
      var div = $(document.createElement("div")).addClass($o.class_name).css({"float": "left"});
      $this.wrapInner("<span></span>").wrapInner(div);
      $obj.wrapper = $("." + $o.class_name, $this);
      $obj.wrapper.parent().css({overflow: "hidden"});
      $obj.prepare();
      $obj.move();
    },
    prepare: function(){
      if (!$.browser.msie && parseInt($.browser.version) <= 7) {
        $obj.width = $obj.wrapper.width();
        do {
          $obj.do_append();
        }
        while($obj.wrapper.width() < $this.width());
      }
      $obj.do_append();
      $obj.do_append();
      $obj.wrapper.width($obj.wrapper.width() * 3);
      $obj.width = $("SPAN:first", $obj.wrapper).width();
    },
    do_append: function(){
      $("SPAN:first", $obj.wrapper).clone().appendTo($obj.wrapper);
    },
    move: function(){
      $obj.wrapper.animate({marginLeft: -$obj.width}, {duration:$o.speed, easing: "linear", complete: $obj.next_step});
    },
    next_step: function(){
      $obj.wrapper.css({marginLeft: 0});
      $("SPAN:first", $obj.wrapper).appendTo($obj.wrapper);
      $obj.move();
    }

  };

  $obj.init();
  return this;
};

$(function(){$("#topnav_container").running_text()});
