// Ported and edited for mootools by Huug Helmink, Ace Group bv - http://www.acegroup.nl
// version 0.1
// date 2007-05-08
 
var Ticker = new Class({
  initialize: function() {
    this.interval = 12000;
    this.container = $('newsticker');
	this.messages = $A($ES('li',this.container));
    this.number_of_messages = this.messages.length;
    if (this.number_of_messages == 0) {
      this.showError();
      return false;
    }
	if (this.number_of_messages == 1){
	 this.interval = 10000000;
	}
    this.current_message = 0;
    this.previous_message = null;
 
    // Create toggle button
    this.toggle_button = new Element('a');
	this.toggle_button.setProperties({
      'href': '#',
	  'id': 'newsticker'
	});
    this.toggle_button.setHTML('Toggle');
 
	this.toggle_button.onclick = this.toggle.bindAsEventListener(this);
    this.container.adopt(this.toggle_button);
 
    // Display first message
    this.hideMessages();
    this.showMessage();
    // Install timer
	
	this.timer = this.showMessage.periodical(this.interval,this);
  },
  
 
  showMessage: function() {
	  
	var Appear = new Fx.Style(this.messages[this.current_message],'opacity',{onStart:function(item) {
      item.setStyle('display','block');
	}}).start(0,1);
	
	
	this.fadeMessage.delay(this.interval-2000,this);
	
		
    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() {
	var myFade = new Fx.Style(this.messages[this.previous_message],'opacity',{onComplete:function(item) {
      item.setStyle('display','none');
	}}).start(1,0);
  },
 
  hideMessages: function() { 
    this.messages.each(function(message) { 
	  message.setStyle('display','none');
    })
  },
 
  toggle: function() { 
	var myBlinder = new Fx.Slide(this.container,{duration:1000}).toggle();
  },
 
  // Display error message when there is no list, or the list is empty
  showError: function() {
    if ($ES('ul',this.container).length == 0) {
      this.list = new Element('ul');
      this.container.adopt(this.list);
    } else {
      this.list = $ES('ul',this.container)[0];
    }
    this.errorMessage = new Element('li');
    this.errorMessage.addClass('error');
    this.errorMessage.setHTML('Could not retrieve data');
    this.list.adopt(this.errorMessage);
  }
});

//// 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 = 12000;
//		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;
//		// Create toggle button
//		this.toggle_button = document.createElement("a");
//		this.toggle_button.href = "#";
//		this.toggle_button.id = "togglenewsticker";
//		this.toggle_button.innerHTML = "Toggle";
//		Event.observe(this.toggle_button, "click", this.toggle.bindAsEventListener(this), false);
//		this.container.appendChild(this.toggle_button);
//		this.hideMessages();
//		this.showMessage(this.number_of_messages);
//		// Install timer
//		this.timer = setInterval(this.showMessage.bind(this), this.interval)
//		
//	  	this.container.style.visibility = 'visible'; //to show it
//
//  	},
//	showMessage: function(no_of_messages)
//	{
//		Effect.Appear(this.messages[this.current_message]);
//
//		if (no_of_messages !== 1)
//		{
//			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);
//	},
//	showError: function()
//	{
//		if (this.container.getElementsByTagName("ul").length == 0)
//		{
//			this.list = document.createElement("ul");
//			this.container.appendChild(this.list);
//		} else {
//			this.list = this.container.getElementsByTagName("ul")[0];
//		}
//		this.errorMessage = document.createElement("li");
//		this.errorMessage.className = "error";
//		this.errorMessage.innerHTML = "Could not retrieve data";
//		this.list.appendChild(this.errorMessage);
//	}
//}
//
//Event.observe(window, "load", function(){new at.bartelme.newsticker()}, false);
