var PBBAcpBox=new Class({getOptions:function(){return{name:"PBBAcp",zIndex:65555,onReturn:false,onReturnFunction:Class.empty,BoxStyles:{width:500},OverlayStyles:{"background-color":"#000",opacity:0.7},showDuration:200,showEffect:Fx.Transitions.linear,closeDuration:100,closeEffect:Fx.Transitions.linear,moveDuration:500,moveEffect:Fx.Transitions.backOut,onShowStart:Class.empty,onShowComplete:Class.empty,onCloseStart:Class.empty,onCloseComplete:function(a){this.options.onReturnFunction(this.options.onReturn)}.bind(this)}},initialize:function(a){this.setOptions(this.getOptions(),a);this.Overlay=new Element("div",{id:"BoxOverlay",styles:{display:"none","z-index":this.options.zIndex,position:"absolute",top:"0",left:"0","background-color":this.options.OverlayStyles["background-color"],opacity:0,height:window.getScrollHeight()+"px",width:window.getScrollWidth()+"px"}});this.Content=new Element("div",{id:this.options.name+"-BoxContent"});this.InBox=new Element("div",{id:this.options.name+"-InBox"}).adopt(this.Content);this.Box=new Element("div",{id:this.options.name+"-Box",styles:{display:"none","z-index":this.options.zIndex+2,position:"absolute",top:"0",left:"0",width:this.options.BoxStyles.width+"px"}}).adopt(this.InBox);this.Overlay.injectInside(document.body);this.Box.injectInside(document.body);window.addEvent("resize",function(){if(this.options.display==1){this.Overlay.setStyles({height:window.getScrollHeight()+"px",width:window.getScrollWidth()+"px"});this.replaceBox()}}.bind(this));window.addEvent("scroll",this.replaceBox.bind(this))},display:function(a){if(this.Transition){this.Transition.stop()}if(this.options.display==0&&a!=0||a==1){this.Overlay.setStyle("display","block");this.options.display=1;this.fireEvent("onShowStart",[this.Overlay]);this.Transition=this.Overlay.effect("opacity",{duration:this.options.showDuration,transition:this.options.showEffect,onComplete:function(){sizes=window.getSize();this.Box.setStyles({display:"block",left:(sizes.scroll.x+(sizes.size.x-this.options.BoxStyles.width)/2).toInt()});this.replaceBox();this.fireEvent("onShowComplete",[this.Overlay])}.bind(this)}).start(this.options.OverlayStyles.opacity)}else{this.Box.setStyles({display:"none",top:0});this.Content.empty();this.options.display=0;this.fireEvent("onCloseStart",[this.Overlay]);this.Transition=this.Overlay.effect("opacity",{duration:this.options.closeDuration,transition:this.options.closeEffect,onComplete:function(){this.fireEvent("onCloseComplete",[this.Overlay])}.bind(this)}).start(0)}},replaceBox:function(){if(this.options.display==1){sizes=window.getSize();if(this.MoveBox){this.MoveBox.stop()}this.MoveBox=this.Box.effects({duration:this.options.moveDuration,transition:this.options.moveEffect}).start({left:(sizes.scroll.x+(sizes.size.x-this.options.BoxStyles.width)/2).toInt(),top:(sizes.scroll.y+(sizes.size.y-this.Box.offsetHeight)/2).toInt()})}},messageBox:function(c,d,b,a){b=Object.extend({textBoxBtnOk:"OK",textBoxBtnCancel:"Cancel",textBoxInputPrompt:null,onComplete:Class.empty},b||{});this.options.onReturnFunction=b.onComplete;if(c=="alert"){this.AlertBtnOk=new Element("input",{id:"BoxAlertBtnOk",type:"submit",value:b.textBoxBtnOk,styles:{width:"70px"}});this.AlertBtnOk.addEvent("click",function(){this.options.onReturn=true;this.display(0)}.bind(this));this.Content.setProperty("class","BoxAlert").setHTML(d+"<br />");this.AlertBtnOk.injectInside(this.Content);this.display(1)}else{if(c=="confirm"){this.ConfirmBtnOk=new Element("input",{id:"BoxConfirmBtnOk",type:"submit",value:b.textBoxBtnOk,styles:{width:"70px"}});this.ConfirmBtnCancel=new Element("input",{id:"BoxConfirmBtnCancel",type:"submit",value:b.textBoxBtnCancel,styles:{width:"70px"}});this.ConfirmBtnOk.addEvent("click",function(){this.options.onReturn=true;this.display(0)}.bind(this));this.ConfirmBtnCancel.addEvent("click",function(){this.options.onReturn=false;this.display(0)}.bind(this));this.Content.setProperty("class","BoxConfirm").setHTML(d+"<br />");this.ConfirmBtnOk.injectInside(this.Content);this.ConfirmBtnCancel.injectInside(this.Content);this.display(1)}else{if(c=="prompt"){this.PromptBtnOk=new Element("input",{id:"BoxPromptBtnOk",type:"submit",value:b.textBoxBtnOk,styles:{width:"70px"}});this.PromptBtnCancel=new Element("input",{id:"BoxPromptBtnCancel",type:"submit",value:b.textBoxBtnCancel,styles:{width:"70px"}});this.PromptInput=new Element("input",{id:"BoxPromptInput",type:"text",value:a,styles:{width:"250px"}});this.PromptBtnOk.addEvent("click",function(){this.options.onReturn=this.PromptInput.value;this.display(0)}.bind(this));this.PromptBtnCancel.addEvent("click",function(){this.options.onReturn=false;this.display(0)}.bind(this));this.Content.setProperty("class","BoxPrompt").setHTML(d+"<br />");this.PromptInput.injectInside(this.Content);new Element("br").injectInside(this.Content);this.PromptBtnOk.injectInside(this.Content);this.PromptBtnCancel.injectInside(this.Content);this.display(1)}else{if(c=="custom"){this.CustomBtnOk=new Element("input",{id:"BoxCustomBtnOk",type:"submit",value:b.textBoxBtnOk,styles:{width:"70px"}});this.CustomBtnCancel=new Element("input",{id:"BoxCustomBtnCancel",type:"submit",value:b.textBoxBtnCancel,styles:{width:"70px"}});this.CustomBtnOk.addEvent("click",function(){this.options.onReturn=$E("form",this.options.name+"-BoxContent");this.display(0)}.bind(this));this.CustomBtnCancel.addEvent("click",function(){this.options.onReturn=false;this.display(0)}.bind(this));d.injectInside(this.Content);new Element("br").injectInside(this.Content);this.CustomBtnOk.injectInside(this.Content);this.CustomBtnCancel.injectInside(this.Content);this.display(1)}else{this.options.onReturn=false;this.display(0)}}}}},alert:function(b,a){this.messageBox("alert",b,a)},confirm:function(b,a){this.messageBox("confirm",b,a)},prompt:function(c,a,b){this.messageBox("prompt",c,b,a)},custom:function(b,a){this.messageBox("custom",b,a)}});PBBAcpBox.implement(new Events,new Options);