// Newsticker class
newsticker = Class.create();
newsticker.prototype = {
  initialize: function()
  {
    this.interval           = 8000;
    this.container          = $("newsticker");
    this.messages           = $A(this.container.getElementsByTagName("li"));
    this.number_of_messages = this.messages.length;
    this.current_message    = 0;
    this.previous_message   = null;

    // Display first message
    this.hideMessages();
    this.container.style.display = 'inline';
    this.showMessage();

    // Install timer
    this.timer = setInterval(this.showMessage.bind(this), this.interval);
  },
  showMessage: function()
  {
    Effect.Appear(this.messages[this.current_message]);
    setTimeout(this.fadeMessage.bind(this), this.interval-2000);
    if (this.current_message < this.number_of_messages-1)
    {
      this.previous_message = this.current_message;
      this.current_message  = this.current_message + 1;
    } else {
      this.current_message  = 0;
      this.previous_message = this.number_of_messages - 1;
    }
  },
  fadeMessage: function() { Effect.Fade(this.messages[this.previous_message]); },
  hideMessages: function() { this.messages.each(function(message) { Element.hide(message); }) }
}

Event.observe(window, "load", function(){new newsticker()}, false);
