with({$:overlayWindow.prototype}){
///////////////////////////////////////////////////////////////////////////////
	$._getScrollPos = function(){
		if ( document.documentElement && document.documentElement.scrollTop ) return [document.documentElement.scrollLeft, document.documentElement.scrollTop];
		if ( document.body && document.body.scrollTop ) return [document.body.scrollLeft, document.body.scrollTop];
		if ( window.pageYOffset ) return [window.pageXOffset, window.pageYOffset];
		if ( window.scrollY ) return [window.scrollX, window.scrollY];
		return [0,0];
		}
	$._getClientSize = function(){
		return [document.documentElement.clientWidth, document.documentElement.clientHeight];
		}
	$._defOptions = function(){
		if(!this.options.opacity) this.options.opacity = 80;
		}

	$.create = function(){
		this._defOptions();
		this.element.overlayWindow = this;

		this.overlay = document.createElement('div');
		this.overlay.className = 'overlayWindow';
		this.overlay.style.opacity = this.options.opacity/100;
		this.overlay.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity="+this.options.opacity+")";

		this.element.parentNode.insertBefore(this.overlay, this.element);
		this.element.style.position = 'absolute';
		this.element.style.zIndex   = 90;
		this.overlay.style.display = 'block';
		this.element.style.display = 'block';
		this.elementToCenter();
		}

	$.elementToCenter = function(){
		var scrollPos = this._getScrollPos();
		var clientSize = this._getClientSize();
		var setX = (clientSize[0]-this.element.offsetWidth)/2 +scrollPos[0];
		var setY = (clientSize[1]-this.element.offsetHeight)/2 +scrollPos[1];
		this.overlay.style.left = scrollPos[0]+'px';
		this.overlay.style.top = scrollPos[1]+'px';
		this.element.style.left = ((setX<0) ?0 :setX)+'px';
		this.element.style.top = ((setY<0) ?0 :setY)+'px';
		}

	$.hide = function(){
		this.element.style.display = 'none';
		this.element.parentNode.removeChild(this.overlay);
		delete this.overlay;
		}
	}

function overlayWindow(element, options){
	if(typeof(element)=='string') element = document.getElementById(element);
	if(!element) return;
	this.element = element;
	this.options = (options) ?options :{};
	this.create();
	}
function overlayWindowClose(element){
	if(typeof(element)=='string') element = document.getElementById(element);
	if(!element || !element.overlayWindow) return;
	element.overlayWindow.hide();
	}

