var Overlay=new Class({Implements:[Options,Events],options:{id:"overlay",color:"#000",duration:500,opacity:0.5,zIndex:5000},initialize:function(a,b){this.setOptions(b);this.container=document.id(a);if(Browser.Engine.trident&&Browser.Engine.version<=6){this.ie6=true}this.bound={window:{resize:this.resize.bind(this),scroll:this.scroll.bind(this)},overlayClick:this.overlayClick.bind(this),tweenStart:this.tweenStart.bind(this),tweenComplete:this.tweenComplete.bind(this)};this.build().attach()},build:function(){this.overlay=new Element("div",{id:this.options.id,opacity:0,styles:{position:(this.ie6)?"absolute":"fixed",background:this.options.color,left:0,top:0,"z-index":this.options.zIndex}}).inject(this.container);this.tween=new Fx.Tween(this.overlay,{duration:this.options.duration,link:"cancel",property:"opacity"});return this}.protect(),attach:function(){window.addEvents(this.bound.window);this.overlay.addEvent("click",this.bound.overlayClick);this.tween.addEvents({onStart:this.bound.tweenStart,onComplete:this.bound.tweenComplete});return this},detach:function(){var a=Array.prototype.slice.call(arguments);a.each(function(b){if(b=="window"){window.removeEvents(this.bound.window)}if(b=="overlay"){this.overlay.removeEvent("click",this.bound.overlayClick)}},this);return this},overlayClick:function(){this.fireEvent("click");return this},tweenStart:function(){this.overlay.setStyles({width:"100%",height:this.container.getScrollSize().y});return this},tweenComplete:function(){this.fireEvent(this.overlay.get("opacity")==this.options.opacity?"show":"hide");return this},open:function(){this.fireEvent("open");this.tween.start(this.options.opacity);return this},close:function(){this.fireEvent("close");this.tween.start(0);return this},resize:function(){this.fireEvent("resize");this.overlay.setStyle("height",this.container.getScrollSize().y);return this},scroll:function(){this.fireEvent("scroll");if(this.ie6){this.overlay.setStyle("left",window.getScroll().x)}return this}});
