/*
<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 || $empty;
		overlay.opt.absolutize 	= opt.absolutize;
		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.hide();
				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.setStyles({visibility:'visible'}).show();
			el.setStyles({visibility:'hidden'}).show();
			opt.center && center(el, opt.center);
			el.setStyles({visibility:'visible'}).show();

		});

		$('overlay').set({styles:{backgroundColor:opt.color?opt.color:'#000',opacity:opt.opacity?opt.opacity:0.5}}).show().zTop();
		
		if(Browser.Engine.name == 'trident'){
			var height = document.getScrollSize().y+'px';
			$('overlay_iframe').setStyles({position:'absolute',opacity:0.001,height:height}).show().zTop();
			$('overlay').setStyles({height:height,position:'absolute'}).zTop();
		}
		overlay.elements.zTop();
	},
	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 = {};
			$('overlay').hide();
			if(Browser.Engine.name == 'trident'){
				$('overlay_iframe').hide();
			}
			overlay.active = false;
		}
	},
	opt:{},
	active:false
};



document.addEvent('domready', function(){
	new Element('div', {id:'overlay',styles:{position:'fixed',top:0,left:0,width:'100%',height:'100%'}}).hide().inject(document.body);
	if(Browser.Engine.name == 'trident'){
		new Element('iframe', {src:'javascript:Date()',id:'overlay_iframe',styles:{position:'fixed',top:0,left:0,width:'100%'}}).hide().inject(document.body);
	}
})


document.addEvent('keypress', function(ev){
	ev.keyCode == 27 && overlay.hide();
});
