/*
<script type="text/javascript">
	overlay.show('#divfürvideo', {center:true; color:, opacity:});
</script>
*/
var overlay = {
	show: function (selector, opt ){
		overlay.hide();
		overlay.active = true;
		opt = opt?opt:{};
		overlay.opt.onclose 	= opt.onclose?opt.onclose:function(){};
		overlay.opt.absolutize 	= opt.absolutize?true:false;
		overlay.elements = $$(selector);

		$('overlay').onclick = function(){ overlay.hide(); };

		overlay.elements.each(function(el){
			el.oldCssText = el.style.cssText;
			if(overlay.opt.absolutize && el.offsetWidth){
				el.platzHalter = el.clone(true);
				el.platzHalter.style.display = 'none';
				el.platzHalter.id = '';

				el.platzHalter.style.clear	= el.getStyle('clear');

				if( el.getStyle('float') ){
					el.platzHalter.setStyle('float', el.getStyle('float'));
				} else {
					el.platzHalter.style.styleFloat = el.getStyle('styleFloat');
				}

				el.platzHalter.style.margin = el.getStyle('margin');
				el.platzHalter.style.borderWidth = '0px';
				el.platzHalter.style.padding = '0px';
				el.platzHalter.style.height = el.offsetHeight+'px';
				el.platzHalter.style.width = el.offsetWidth+'px';
				el.platzHalter.inject(el, 'before');
				
				el.style.top 		= el.getPosition().y
										-el.getStyle('margin-top').toInt()
										+'px';
				el.style.left 		= el.getPosition().x
										-el.getStyle('margin-left').toInt()
										+'px';
				el.style.height 	= el.offsetHeight
										-el.getStyle('border-top-width').toInt()
										-el.getStyle('border-bottom-width').toInt()
										-el.getStyle('padding-top').toInt()
										-el.getStyle('padding-bottom').toInt()
										+'px';
				el.style.width 		= el.offsetWidth
										-el.getStyle('border-left-width').toInt()
										-el.getStyle('border-right-width').toInt()
										-el.getStyle('padding-left').toInt()
										-el.getStyle('padding-right').toInt()
										+'px';
	
				if( !el.getStyle('background-color') || el.getStyle('background-color')=='transparent' ){
					el.style.backgroundColor = '#fff';
				}
				el.style.position		= 'absolute';
				el.inject(document.body, 'inside');
				el.platzHalter.style.display = '';
			}
			el.style.visibility 	= 'visible';
			el.style.display 		= 'block';
			el.style.zIndex			= 2005;

			if(opt.center){
				center(el, opt.center);
			}

		});
		
		$('overlay').style.display = 'block';
		$('overlay').style.backgroundColor = opt.color?opt.color:'#000';
		$('overlay').setStyle('opacity', opt.opacity?opt.opacity:0.5);
		overlay._positionizeDiv();
//		window.addEvent('resize', overlay._positionizeDiv);
		
		if(Browser.Engine.name == 'trident'){
			var height = document.getScrollSize().y+'px';
			$('overlay').style.position = 'absolute';
			$('overlay_iframe').setStyle('position','absolute');
			$('overlay_iframe').setStyle('opacity',0.001);
			$('overlay_iframe').style.display = 'block';
			$('overlay_iframe').style.height = height;
			$('overlay').style.height = height;
		}
	},
	_positionizeDiv: function(){
//		overlay.active && ($('overlay').style.height = window.getSize().y+'px');
	},
	hide: function(){
		if( overlay.active ){
			overlay.elements.each(function(el){
				el.style.cssText = el.oldCssText;

				if(overlay.opt.absolutize && el.offsetWidth){
					el.replaces(el.platzHalter);
				}
			});
			overlay.opt.onclose();
			center.element = false;
			overlay.elements = [];
			overlay.opt = {};
			window.removeEvent('resize', overlay._positionizeDiv);
			$('overlay').style.display = 'none';
			if(Browser.Engine.name == 'trident'){
				$('overlay_iframe').style.display = 'none';
			}
			overlay.active = false;
		}
	},
	opt:{},
	active:false
};



document.addEvent('domready', function(){
	new Element('div', {id:'overlay',styles:{zIndex:2001,display:'none',position:'fixed',top:0,left:0,width:'100%',height:'100%'}}).inject(document.body);
	if(Browser.Engine.name == 'trident'){
		new Element('iframe', {src:'javascript:Date()',id:'overlay_iframe',styles:{zIndex:2000,display:'none',position:'fixed',top:0,left:0,width:'100%'}}).inject(document.body);
	}
})


document.addEvent('keypress', function(ev){
	if( ev.keyCode == 27 ){ overlay.hide(); }
});

