/**
* Element#fillDocument(@element) -> @element
* Sets element's dimensions to completely fill document (not viewport)
* a.k.a modal-page-overlay
*
**/
Element.Methods.fillDocument = function(element) {
  element = $(element);
  var de = document.documentElement, vpDim = document.viewport.getDimensions(), docDim = $(de).getDimensions();
  element.style.width = Math.max(docDim.width, vpDim.width) + 'px';
  if (Prototype.Browser.IE) {
    // maybe additional check for (!d.compatMode || d.compatMode == "CSS1Compat")?
    // tested in IE 6,7,8 for d.compatMode == "CSS1Compat"
    element.style.height = de.scrollHeight + 'px';
  } else {
    // clientHeight in Opera 9.64,10 for short documents
    element.style.height = Math.max(Math.max(docDim.height, vpDim.height), de.clientHeight) + 'px';
  }
  return element;
};


/**
* Element#centerInViewport(@element) -> @element
* Centers element in a vieport. Element should be absolutely positioned.
*
**/
Element.Methods.centerInViewport = function(element) {
  element = $(element);
  var vpDim = document.viewport.getDimensions();
  var offsets = document.viewport.getScrollOffsets();
  var elDim = Element.getDimensions(element);
  element.style.left = (((vpDim.width - elDim.width) / 2) + offsets.left) + 'px';
  element.style.top = (((vpDim.height - elDim.height) / 2) + offsets.top) + 'px';
  return element;
};
/**
*Element#centerInParent(@element) -> @element
*Centers element in parent element. Element should be absoltely positioned
*Parent should have defined dimentions and should be relatively positioned
*
**/
Element.Methods.centerInParent = function(element){
	element=$(element);
	var parEleDim = Element.getDimensions(element.up(0));
	var elDim = Element.getDimensions(element);
	element.style.left = (parEleDim.width - elDim.width)/2 + 'px';
	element.style.top = (parEleDim.height - elDim.height)/2 + 'px';
	return element;
}
Element.addMethods();
