var Stc = {

  showWaiting: function() {
    var msg = arguments[0] || '';
    var div = arguments[1] || '';
    var v = Position.getPageSize();
    this.backdrop = Builder.node('div',
      { style:'position:absolute;' + 
              'left:0px;' +
              'top:0px;' +
              'width:'+v.window.width+'px;' +
              'height:'+v.window.height+'px;' +
              'opacity:0.8;filter:alpha(opacity=80);z-index:1000;background:#000 url(/images/rotate_black.gif) no-repeat center' }, 
      [Builder.node('div', 
        {style:'position:absolute;top:'+
               ((v.window.height/2)+60)+'px;'+
               'width:'+v.window.width+'px;' +
               'text-align:center;font-size:20pt;'+
               'color:#94c77b;text-transform:lowercase'}, msg)]);
    [this.backdrop].each(function(element){ (document.body ? document.body : document.documentElement).appendChild(element) });
    ['click','mouseup','mousedown','mousemove','keyup','keydown','keypress'].each( function(event) {
      Event.observe(this.backdrop, event, this.cancelEvent, true);
    }.bind(this));
  },
  
  hideWaiting: function() {
    if(this.backdrop) {
      Effect.Fade(this.backdrop,{duration:0.3,onFinish:function(effect){ Element.remove(effect.element) }});
      this.backdrop = null;
    }
    if($('main-panel')) Element.removeClassName('main-panel','loading');
  },
  
  cancelEvent: function(event) {
    Event.stop(event);
    return false;
  }  

}

Position.getPageSize = function() {
  var xScroll, yScroll;

  if (window.innerHeight && window.scrollMaxY) {  
    xScroll = document.body.scrollWidth;
    yScroll = window.innerHeight + window.scrollMaxY;
  } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
    xScroll = document.body.scrollWidth;
    yScroll = document.body.scrollHeight;
  } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
    xScroll = document.body.offsetWidth;
    yScroll = document.body.offsetHeight;
  }

  var windowWidth, windowHeight;
  if (self.innerHeight) { // all except Explorer
    windowWidth = self.innerWidth;
    windowHeight = self.innerHeight;
  } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
    windowWidth = document.documentElement.clientWidth;
    windowHeight = document.documentElement.clientHeight;
  } else if (document.body) { // other Explorers
    windowWidth = document.body.clientWidth;
    windowHeight = document.body.clientHeight;
  } 

  // for small pages with total height less then height of the viewport
  pageHeight = Math.max(windowHeight, yScroll);

  // for small pages with total width less then width of the viewport
  pageWidth = Math.max(windowWidth, xScroll);

  return { page: { width: pageWidth, height: pageHeight }, window: { width: windowWidth, height: windowHeight } };
}