    function getScrollHeight(){
      /* Returns the y scroll height in all browsers. */
      var y;
      // all except Explorer
      if (self.pageYOffset)
        y = self.pageYOffset;
      else if (document.documentElement && document.documentElement.scrollTop)
        y = document.documentElement.scrollTop;
      else if (document.body) // all other Explorers
        y = document.body.scrollTop;
      return parseInt(y);
    }

    function showMessage(msgText) {
      msgBox = document.createElement('div');
      msgBox.setAttribute('id', 'alertmsg');
      msgBox.innerHTML = msgText + '<br />';
      /* Drop in the loading indicator image */
      waitInd = document.createElement('img');
      waitInd.setAttribute('src', '../images/waitbar.gif');
      msgBox.appendChild(waitInd);
      /* Drop in the close window "img" box */
      closeMsgBtn = document.createElement('img');
      closeMsgBtn.setAttribute('src', '../images/close.gif');
      closeMsgBtn.style.backgroundColor = '#FFF';
      closeMsgBtn.style.width = '15px';
      closeMsgBtn.style.height = '15px';
      closeMsgBtn.style.position = 'absolute';
      closeMsgBtn.style.right = '5px';
      closeMsgBtn.style.top = '5px';
      msgBox.appendChild(closeMsgBtn);
      /* if someone clicks on this popup, we make it go away */
      /* we could also use the scriptaculous fade effect for more eye candy */
      // msgBox.onclick = function() {this.parentNode.removeChild(this);}
      closeMsgBtn.onclick = function() {this.parentNode.parentNode.removeChild(this.parentNode);}
      /* IE doesn't support fixed positioning (it reverts to static), so we detect and use the next best thing */
      if (navigator.appName == "Microsoft Internet Explorer") {
        msgBox.style.position = 'absolute';
      } else {
        msgBox.style.position = 'fixed';
      }
      /* we use a bit of Javascript to get it in the current view */
      msgBox.style.top = getScrollHeight() + 250 + 'px';
      /* We could also use a class at this point to set most of the following styles */
      msgBox.className = '';
      msgBox.style.textAlign = 'center';
      msgBox.style.fontSize = '18px';
      msgBox.style.width = '500px';
      msgBox.style.marginLeft = '-282px';
      msgBox.style.left = '50%';
      msgBox.style.padding = '5px 30px 5px 30px';
      msgBox.style.fontFamily = 'Verdana, sans-serif';
      msgBox.style.backgroundColor = '#F00';
      msgBox.style.color = '#FFF';
      msgBox.style.border = '2px solid #000000';
      msgBox.style.display = 'none';
      /* The next three lines sets the opacity for IE, old versions of Mozilla, and modern versions of Mozilla respectively */
      /*
      msgBox.style.filter = 'alpha(opacity=80)';
      msgBox.style.MozOpacity = '.80';
      msgBox.style.opacity = '.80';
      */
      /* show the msg "popup" */
      document.body.appendChild(msgBox);
      new Draggable('alertmsg', {revert:false});
      new Effect.Parallel([new Effect.BlindDown(msgBox, {duration:3.0, sync:true}), new Effect.Appear(msgBox, {duration:3.0, from:0.0, to:0.8, sync:true})], {duration:3.0});
    }
