//
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
//
function getPageScroll(){

  var yScroll;

  if (self.pageYOffset) {
    yScroll = self.pageYOffset;
  } else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
  yScroll = document.documentElement.scrollTop;
  } else if (document.body) {// all other Explorers
  yScroll = document.body.scrollTop;
  }

  arrayPageScroll = new Array('',yScroll)
  return arrayPageScroll;
}



//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
function getPageSize(){

  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
  if(yScroll < windowHeight){
  pageHeight = windowHeight;
  } else {
  pageHeight = yScroll;
  }

  // for small pages with total width less then width of the viewport
  if(xScroll < windowWidth){
  pageWidth = windowWidth;
  } else {
  pageWidth = xScroll;
  }


  arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
  return arrayPageSize;
}


function showPopup(id, divWidth, divHeight)
{
  var objPopup = document.getElementById(id);
  if (!objPopup)
  {
    return false;
  }

 	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

  var y = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - divHeight) / 2);
  var x = (arrayPageSize[0] - 20 - divWidth) / 2;

  objPopup.style.top = (y < 0) ? '0px' : y + 'px';
  objPopup.style.left = (x < 0) ? '0px' : x + 'px';
  objPopup.style.width = divWidth + 'px';
  objPopup.style.height = divHeight + 'px';

  objPopup.style.display = 'block';
  return id;
}

function hidePopup(id)
{
  var objPopup = document.getElementById(id);
  if (!objPopup)
  {
    return false;
  }
  objPopup.style.display = 'none';
  return id;
}
