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.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},events:{click:function(){this.fireEvent("click")}.bind(this)}}).inject(this.container);this.tween=new Fx.Tween(this.overlay,{duration:this.options.duration,link:"cancel",property:"opacity",onStart:function(){this.overlay.setStyles({width:"100%",height:this.container.getScrollSize().y})}.bind(this),onComplete:function(){this.fireEvent(this.overlay.get("opacity")==this.options.opacity?"show":"hide")}.bind(this)});window.addEvents({resize:function(){this.resize()}.bind(this),scroll:function(){this.scroll()}.bind(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}});var MooDialog=new Class({Implements:[Options,Events],options:{size:{width:300,height:100},offset:{x:0,y:-100},title:null,scroll:true,useEscKey:true,disposeOnClose:true,closeButton:true,fx:{type:"tween",open:1,close:0,options:{property:"opacity",duration:400}}},initialize:function(b){this.setOptions(b);this.ie6=Browser.Engine.trident&&Browser.Engine.version<=4;var a=this.options.size.width,d=this.options.size.height;this.wrapper=new Element("div",{"class":"MooDialog",styles:{width:a,height:d,position:this.options.scroll&&!this.ie6?"fixed":"absolute","z-index":6000,opacity:0}}).inject(document.body);this.content=new Element("div",{styles:{width:a,height:d,overflow:"auto"}}).inject(this.wrapper);if(this.options.title){this.title=new Element("div",{"class":"title",text:this.options.title}).inject(this.wrapper);this.wrapper.addClass("MooDialogTitle")}if(this.options.closeButton){this.closeButton=new Element("a",{"class":"close",events:{click:function(){this.close()}.bind(this)}}).inject(this.wrapper)}var c=document.id(document.body).getSize();this.setPosition((c.x-a)/2,(c.y-d)/2);if(this.options.scroll&&this.ie6){window.addEvent("scroll",function(f){this.setPosition((c.x-a)/2,(c.y-d)/2)}.bind(this))}if(!this.fx){this.fx=this.options.fx.type=="morph"?new Fx.Morph(this.wrapper,this.options.fx.options):new Fx.Tween(this.wrapper,this.options.fx.options)}this.fx.addEvent("complete",function(){this.fireEvent(this.open?"show":"hide");if(this.options.disposeOnClose&&!this.open){this.dispose()}}.bind(this));this.overlay=new Overlay(document.body,{onClick:function(){this.close()}.bind(this),duration:this.options.fx.options.duration})},setContent:function(a){this.content.empty();switch($type(a)){case"element":this.content.adopt(a);break;case"string":case"number":this.content.set("text",a);break}return this},setPosition:function(b,c){b+=this.options.offset.x;c+=this.options.offset.y;b=b<10?10:b;c=c<10?10:c;if(this.wrapper.getStyle("position")!="fixed"){var a=document.id(document.body).getScroll();b+=a.x;c+=a.y}this.wrapper.setStyles({left:b,top:c});return this},open:function(){this.open=true;this.fireEvent("open");this.fx.start(this.options.fx.open);this.overlay.open();if(this.options.useEscKey){document.id(document.body).addEvent("keydown",function(a){if(a.key=="esc"){this.close()}}.bind(this))}return this},close:function(){this.open=false;this.fireEvent("close");this.fx.start(this.options.fx.close);this.overlay.close();return this},dispose:function(){this.wrapper.destroy();this.overlay.overlay.destroy()},toElement:function(){return this.wrapper}});Element.implement({MooDialog:function(a){var b=new MooDialog(a).setContent(this).open();this.store("MooDialog",b);return this}});MooDialog.Alert=new Class({Extends:MooDialog,options:{okText:"Ok",focus:true},initialize:function(b,a){this.parent(a);var c=new Element("input",{type:"button",events:{click:function(){this.close()}.bind(this)},value:this.options.okText});this.setContent(new Element("div").adopt(new Element("p",{"class":"MooDialogAlert",text:b})).adopt(new Element("div",{"class":"buttons"}).adopt(c))).open();if(this.options.focus){this.addEvent("show",function(){c.focus()})}}});MooDialog.Confirm=new Class({Extends:MooDialog,options:{okText:"Ok",cancelText:"Cancel",focus:true},initialize:function(e,c,b,a){this.parent(a);c=c?c:$empty;b=b?b:$empty;var d=new Element("input",{type:"button",events:{click:function(){b();this.close()}.bind(this)},value:this.options.cancelText});this.setContent(new Element("div").adopt(new Element("p",{"class":"MooDialogConfirm",text:e})).adopt(new Element("div",{"class":"buttons"}).adopt(d).adopt(new Element("input",{type:"button",events:{click:function(){c();this.close()}.bind(this)},value:this.options.okText})))).open();if(this.options.focus){this.addEvent("show",function(){d.focus()})}}});Element.implement({confirmLinkClick:function(b,a){this.addEvent("click",function(c){c.stop();new MooDialog.Confirm(b,function(){location.href=this.get("href")}.bind(this),null,a)});return this},confirmFormSubmit:function(b,a){this.addEvent("submit",function(c){c.stop();new MooDialog.Confirm(b,function(){this.getElements("input").each(function(d){if(d.get("type")=="submit"){d.set("type","hidden")}});this.submit()}.bind(this),null,a)}.bind(this));return this}});MooDialog.Error=new Class({Extends:MooDialog,options:{okText:"Ok",focus:true},initialize:function(b,a){this.parent(a);var c=new Element("input",{type:"button",events:{click:function(){this.close()}.bind(this)},value:this.options.okText});this.setContent(new Element("div").adopt(new Element("p",{"class":"MooDialogError",text:b})).adopt(new Element("div",{"class":"buttons"}).adopt(c))).open();if(this.options.focus){this.addEvent("show",function(){c.focus()})}}});MooDialog.Iframe=new Class({Extends:MooDialog,initialize:function(b,a){this.parent(a);this.setContent(new Element("iframe",{src:b,frameborder:0,width:this.options.size.width,height:this.options.size.height})).open()}});MooDialog.Prompt=new Class({Extends:MooDialog,options:{okText:"Ok",focus:true},initialize:function(d,b,a){this.parent(a);b=b?b:$empty;var c=new Element("input",{type:"text",styles:{width:(this.options.size.width-70)}});this.setContent(new Element("div").adopt(new Element("p",{"class":"MooDialogPromt",text:d})).adopt(new Element("form",{"class":"buttons",events:{submit:function(f){f.stop();b(c.get("value"));this.close()}.bind(this)}}).adopt(c).adopt(new Element("input",{type:"submit",value:this.options.okText,styles:{width:40}})))).open();if(this.options.focus){this.addEvent("show",function(){c.focus()})}}});MooDialog.Request=new Class({Extends:MooDialog,initialize:function(b,c,a){this.parent(a);this.setContent(new Element("div").load(b,c)).open()}});
