var message_barTimer;

function showMessage(message, type) {
  if (message && message.length > 0) {
    Element.classNames('message_bar').set(type);
    Element.update('message_bar', message);
    new Effect.Appear('message_bar');
    if (type != 'error') startHideMessageBarTimeout();
  }
}

function hideMessageBar() {
  new Effect.Fade('message_bar', {duration: 0.5});
  stopHideMessageBarTimeout();
}

function startHideMessageBarTimeout() {
  if (message_barTimer) clearTimeout(message_barTimer);
  message_barTimer = setTimeout('hideMessageBar()', 10000);
}

function stopHideMessageBarTimeout() {
  if (message_barTimer) clearTimeout(message_barTimer);
  message_barTimer = null;
}

function showInformation(message) {
  showMessage(message, 'information');
}

function showWarning(message) {
  showMessage(message, 'warning');
}

function showError(message) {
  showMessage(message, 'error');
}
