function createOverlay()
{ 
  var overlay = document.createElement("div");;
  overlay.className = (!requireTransparencyFix() ? "MOverlay" : "MOverlayIE6");
  var pageSize = getPageSize();
  overlay.style.height = pageSize[1] + "px";
    
  addToPage(overlay);
  
  return overlay;
}

function addToPage(element)
{
  var body = document.getElementsByTagName("body").item(0);
  body.appendChild(element);
}

function requireTransparencyFix()
{
  return ( (navigator.platform == 'Win32') && /MSIE (5\.5|6\.)/.test(navigator.userAgent));
}

function getPageScroll()
{
  var xScroll, yScroll;

  if (self.pageYOffset) {
          yScroll = self.pageYOffset;
          xScroll = self.pageXOffset;
  } else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
          yScroll = document.documentElement.scrollTop;
          xScroll = document.documentElement.scrollLeft;
  } else if (document.body) {// all other Explorers
          yScroll = document.body.scrollTop;
          xScroll = document.body.scrollLeft;	
  }

  arrayPageScroll = new Array(xScroll,yScroll) 
  return arrayPageScroll;
}

function getPageSize()
{
  var xScroll, yScroll;
  
  if (window.innerHeight && window.scrollMaxY) {	
          xScroll = window.innerWidth + window.scrollMaxX;
          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;
  
//	console.log(self.innerWidth);
//	console.log(document.documentElement.clientWidth);

  if (self.innerHeight) {	// all except Explorer
          if(document.documentElement.clientWidth){
                  windowWidth = document.documentElement.clientWidth; 
          } else {
                  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
  if(yScroll < windowHeight){
          pageHeight = windowHeight;
  } else { 
          pageHeight = yScroll;
  }

//	console.log("xScroll " + xScroll)
//	console.log("windowWidth " + windowWidth)

  // for small pages with total width less then width of the viewport
  if(xScroll < windowWidth){	
          pageWidth = xScroll;		
  } else {
          pageWidth = windowWidth;
  }
//	console.log("pageWidth " + pageWidth)

  arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
  return arrayPageSize;
}