// Create namespace
if (at == undefined) var at = {};
if (at.bartelme == undefined) at.bartelme = {};

// Newsticker Class
at.bartelme.newsticker = Class.create();
at.bartelme.newsticker.prototype = {
   initialize: function()
   {
      // Get elements
      this.interval = 5000;
      this.container = $("newsticker");
      this.messages  = $A(this.container.getElementsByTagName("li"));
      this.number_of_messages = this.messages.length;
      if (this.number_of_messages == 0)
      {
        //this.showError();
         return false;
      }
      this.current_message = 0;
      this.previous_message = null;

      this.hideMessages();
      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);
      })
   },
   toggle: function()
   {
      Effect.BlindUp(this.container, 1000);
   }
}

Event.observe(window, "load", function(){new at.bartelme.newsticker()}, false);
