var messages;
var loadingMessage;
var whiteboardElement;
var messageElement;
var counter;

//window.onload = function() {
//	locateWhiteboard();
	//ticker();
//	startMessageBoard();
//}

function locateWhiteboard() {
      new Ajax.PeriodicalUpdater("whiteboard","/whiteboard/display",
        {
            frequency: 300,
              method: "POST",
              onFailure: function() {error = true;},
              onSuccess: function() {error = false;}
        }
      );
}

function displayWhiteboardError() {
	whiteboard = $("whiteboard");
	whiteboard.innerHTML = "An application problem has prevented the whiteboard from being displayed.";
}

function startMessageBoard() {
	counter = 0;
	loadingMessage = "Loading...";
	whiteboardElement = $('whiteboard');
	messageElement = $("message");
	getMessageArray();
}

function getMessageArray() {
	messages = whiteboardElement.innerHTML.split("|");
	if(messages == null || messages[0].length == 0) {
		messages[0] = loadingMessage;
	}
  displayMessages();
}

function displayMessages() {
	if(counter < messages.length && loadingMessage != messages[0]) {
	  fadeInOut(messageElement, 0.5, 3, 1, 1);
	  message_id = window.setTimeout("displayMessages()", 6000);
	}
	else if(loadingMessage == messages[0]) {
		fadeInOut(messageElement, 0.5, 1, 1, 1);
		counter = 0;
	  load_id = window.setTimeout("getMessageArray()", 3500);
	}
	else {
		counter = 0;
		array_id = window.setTimeout("getMessageArray()", 200);
	}
}


// With credit and thanks to http://yura.thinkweb2.com/scripting/fading/
function fadeInOut(element, delayHidden, delayVisible, durationIn, durationOut) {
	new Effect.Opacity(element, {from: 1, to: 0, duration: durationIn, afterFinish: function(){
		new Effect.Opacity(element, {from: 0, to: 0, duration: delayHidden, afterFinish: function(){
			messageElement.innerHTML = messages[counter++];
			new Effect.Opacity(element, {from: 0, to: 1, duration: durationOut, afterFinish: function(){
				new Effect.Opacity(element, {from: 1, to: 0.99999, duration: delayVisible})
			}});
		}});
  }});
}

