(function() {
  var TwitterSearchTicker;
  var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
  TwitterSearchTicker = (function() {
    function TwitterSearchTicker(el, opts) {
      this.el = el;
      this.opts = opts;
      this.el = $(this.el);
      this.el.html("<a href='#'></a>");
      this.a = this.el.find('a');
      this.a.click(__bind(function(e) {
        return this.click(e);
      }, this));
      this.delay = this.opts.delay || 8000;
      this.count = this.opts.count || 10;
      this.search();
    }
    TwitterSearchTicker.prototype.search = function() {
      var feed;
      feed = "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=" + this.opts.screen_name + "&count=50&exclude_replies=true&callback=?";
      return $.getJSON(feed, __bind(function(result) {
        this.tweets = result.slice(0, (this.count + 1) || 9e9);
        return this.start();
      }, this));
    };
    TwitterSearchTicker.prototype.start = function() {
      this.running = true;
      this.index = 0;
      this.tweet = this.tweets[this.index];
      this.render();
      this.moveNext = __bind(function() {
        this.index += 1;
        if (this.index >= this.tweets.length) {
          this.index = 0;
        }
        this.tweet = this.tweets[this.index];
        return this.render();
      }, this);
      return this.intervalRef = setInterval(this.moveNext, this.delay);
    };
    TwitterSearchTicker.prototype.render = function() {
      return this.a.fadeOut(__bind(function() {
        var link;
        link = "http://twitter.com/#!/" + this.tweet.user.screen_name + "/status/" + this.tweet.id_str;
        this.a.attr('href', link);
        this.a.text(this.tweet.text);
        this.a.hide();
        return this.a.fadeIn();
      }, this));
    };
    TwitterSearchTicker.prototype.click = function(e) {};
    return TwitterSearchTicker;
  })();
  $.fn.twitterSearchTicker = function(opts) {
    return $(this).each(function() {
      var ticker;
      ticker = new TwitterSearchTicker(this, opts);
      return $(this).data('ticker', ticker);
    });
  };
}).call(this);

