function getNormalChildNode(elem)
{
	for (var i = 0; i < elem.childNodes.length; i++)
	{
		if (elem.childNodes[i].nodeName != '#text')
		{
			return elem.childNodes[i];
		}
	}
	return null;
}

// Overlay version 0.9
Overlay = function()
{
	this.show = function(elemContainer, callback)
	{
		document.getElementById('overlay_shadow').onclick = this.close;
		
		document.getElementById('overlay_block').onclick = this.close;
		document.getElementById('overlay_content').onclick = function(event){
			event = event || window.event // кросс-браузерно
			if (event.stopPropagation) {
				// Вариант стандарта W3C:
				event.stopPropagation()
			} else {
				// Вариант Internet Explorer:
				event.cancelBubble = true
			}
		}

		document.body.style.overflow = 'hidden';
		document.documentElement.style.overflow = 'hidden';

		var firstChild = getNormalChildNode(document.body);
		document.getElementById('overlay_shadow').style.width = Math.max(document.body.clientWidth, document.documentElement.scrollWidth)+'px';
		document.getElementById('overlay_shadow').style.height = Math.max(document.body.clientHeight, document.documentElement.scrollHeight, firstChild.offsetHeight)+'px';

		document.getElementById('overlay_container').style.display = 'block';
		
		this.setTop(40);

		if (elemContainer)
		{
			if (typeof elemContainer == 'string')
			{
				document.getElementById('overlay_content').innerHTML = elemContainer;
			}
			else if (typeof elemContainer.innerHTML != 'undefined')
			{
				if (elemContainer.innerHTML == '')
				{
					document.getElementById('overlay_content').appendChild(elemContainer);
				}
				else
				{
					document.getElementById('overlay_content').innerHTML = elemContainer.innerHTML;
				}
			}
		}

		if (typeof callback == 'function')
		{
			callback();
		}
		this.refresh();
	}
	this.setTop = function(top)
	{
		var scrollHeight = Math.max(document.body.scrollTop, document.documentElement.scrollTop);
		document.getElementById('overlay_block').style.top = scrollHeight+top+'px';
	}
	this.refresh = function()
	{
	}
	this.close = function()
	{
		document.body.style.overflow = '';
		document.documentElement.style.overflow = '';
		document.getElementById('overlay_container').style.display = 'none';
		document.getElementById('overlay_content').innerHTML = '';
	}
	return this;
}
