var Popup=new Class({Implements:[Events,Options],options:{duration:200,transition:"quad:in",className:"popup",title:""},initialize:function(b,a){this.setOptions(a);this.element=$(b);this.opened=false;this.overlay=new Element("div").setStyles({display:"none",position:"absolute",opacity:0,top:0,left:0,width:"100%",height:"100%","z-index":1001,"background-color":"#000000"}).addEvent("click",function(c){new Event(c).stop();this.close()}.bind(this)).inject(document.body);this.popup=new Element("div").addClass(this.options.className).setStyles({display:"none",position:"absolute",top:0,left:0,width:"100%",opacity:0,"z-index":1002}).inject(document.body);this.container=new Element("div").addClass("container").inject(this.popup);this.title=new Element("div").addClass("title").set("text",this.options.title).inject(this.container);this.close_button=new Element("div").addClass("close").setStyles({cursor:"pointer"}).addEvent("click",function(c){new Event(c).stop();this.close()}.bind(this)).inject(this.container);this.element.inject(this.container);window.addEvent("scroll",function(){if(this.opened){this.move()}}.bind(this)).addEvent("resize",function(){if(this.opened){this.move()}}.bind(this))},move:function(){this.overlay.setStyles({top:window.getScroll().y,left:window.getScroll().x})},open:function(){this.overlay.setStyle("display","block");this.popup.setStyles({display:"block",top:window.getScroll().y});this.move();this.opened=true;new Fx.Tween(this.overlay,{wait:false,duration:this.options.duration,transition:this.options.transition,onComplete:function(){new Fx.Tween(this.popup,{wait:false,duration:this.options.duration,transition:this.options.transition}).start("opacity",1)}.bind(this)}).start("opacity",0.8)},close:function(){new Fx.Tween(this.popup,{wait:false,duration:this.options.duration,transition:this.options.transition,onComplete:function(){this.popup.setStyle("display","none");new Fx.Tween(this.overlay,{wait:false,duration:this.options.duration,transition:this.options.transition,onComplete:function(){this.overlay.setStyle("display","none");this.opened=false}.bind(this)}).start("opacity",0)}.bind(this)}).start("opacity",0)}});
