var Popup=new Class({Implements:[Events,Options],options:{duration:200,transition:"quad:in",className:"popup",title:"",onOpen:$empty,onOpened:$empty,onClose:$empty,onClosed:$empty},initialize:function(_1,_2){this.setOptions(_2);this.element=$(_1);this.opened=false;this.mover=null;this.overlay=new Element("div").setStyles({"display":"none","position":"absolute","z-index":2147483646,"top":0,"left":0,"width":"100%","height":"100%","opacity":0,"background-color":"#000000"}).addEvent('click',function(e){new Event(e).stop();this.close();}.bind(this)).inject(document.body);this.popup=new Element("div").addClass(this.options.className).setStyles({"display":"none","position":"absolute","z-index":2147483647,"top":0,"left":0,"opacity":0}).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(e){new Event(e).stop();this.close();}.bind(this)).inject(this.container);this.content=new Element("div").addClass("content").inject(this.container);this.element.inject(this.content);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,"width": window.getSize().x,"height": window.getSize().y});this.popup.setStyles({"left":((window.getSize().x-this.popup.getSize().x)/2)});},open:function(){this.opened=true;this.fireEvent("open");this.overlay.setStyle("display","block");this.popup.setStyles({"display":"block","top":window.getScroll().y});this.mover=this.move.periodical(100,this);new Fx.Tween(this.overlay,{chain:"cancel",duration:this.options.duration,transition:this.options.transition,onComplete:function(){new Fx.Tween(this.popup,{chain:"cancel",duration:this.options.duration,transition:this.options.transition,onComplete:function(){this.fireEvent("opened");}.bind(this)}).start("opacity",1);}.bind(this)}).start("opacity",0.8);},close:function(){this.fireEvent("close");$clear(this.mover);new Fx.Tween(this.popup,{chain:"cancel",duration:this.options.duration,transition:this.options.transition,onComplete:function(){this.popup.setStyle("display","none");new Fx.Tween(this.overlay,{chain:"cancel",duration:this.options.duration,transition:this.options.transition,onComplete:function(){this.overlay.setStyle("display","none");this.opened=false;this.fireEvent("closed");}.bind(this)}).start("opacity",0);}.bind(this)}).start("opacity",0);}});
