// Create namespace
if (at == undefined) var at = {};
if (at.bartelme == undefined) at.bartelme = {};

// Adrotator Class
at.bartelme.adrotator = Class.create();
at.bartelme.adrotator.prototype = {
 initialize: function()
 {
 // Get elements
 this.interval = 10000;
 this.container = $("adrotator");
 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 = "toggleadrotator";
 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();
 // 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);
 },
 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.adrotator()}, false);

// Create namespace image rotator
if (at == undefined) var at = {};
if (at.bartelme == undefined) at.bartelme = {};

// Image_Rotator Class
at.bartelme.image_rotator = Class.create();
at.bartelme.image_rotator.prototype = {
 initialize: function()
 {
 // Get elements
 this.interval = 6000;
 this.container = $("image_rotator");
 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 = "toggleimage_rotator";
 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();
 // 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);
 },
 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.image_rotator()}, false);