NBN.DialogBox=new Class({getOptions:function(){return{trigger:null,onClose:Class.empty,onOpen:Class.empty,onAfterOpen:Class.empty}},initialize:function(B,A){this.element=$(B);this.setOptions(this.getOptions,A);this.setModalOptions($merge(A.modalOptions||{},{onModalHide:function(){this.hide()}.bind(this)}));var C=this.element.getElement(".closeLink");if(C){C.addEvent("click",function(D){D.stop();this.modalHide()}.bindWithEvent(this))}if(this.options.trigger){this.trigger=$(this.options.trigger);this.trigger.addEvent("click",function(D){D.stop();this.show()}.bindWithEvent(this))}},show:function(){this.fireEvent("onOpen");this.element.setToCenter();this.element.setStyles({display:"block","z-index":5000});this.fireEvent("onAfterOpen")},hide:function(){this.fireEvent("onClose");this.element.style.display="none"},render:function(){this.element.style.display="none"}});NBN.DialogBox.implement(new Events);NBN.DialogBox.implement(new Options);NBN.DialogBox.implement(new Chain);NBN.ModalDialog=NBN.DialogBox.extend({show:function(){this.fireEvent("onOpen");this.modalShow();this.element.setToCenter();this.element.setStyles({display:"block","z-index":this.modalStyle["z-index"]+1});this.fireEvent("onAfterOpen")}});NBN.ModalDialog.implement(new Modalizer);NBN.ModalFormDialog=NBN.ModalDialog.extend({getFormOptions:function(){return{focusOnInput:null,onOpen:function(){this.hideFormError()},onAfterOpen:function(){if(this.options.focusOnInput){$E("#"+this.options.focusOnInput,this.element).focus()}},onCancel:Class.empty,onSubmit:Class.empty,onFormError:Class.empty}},initialize:function(B,A){this.parent(B,$merge(this.getFormOptions(),A));this.errorElement=this.element.getElement("div.dialogBoxFormErrors");this.successElement=this.element.getElement("div.successMsg");this.addCancelButton();this.addSubmitButton();this.formEle=$E("form",this.element);this.initFormElements()},addCancelButton:function(){var A=this.element.getElement("input.cancelButton");if(A){A.addEvent("click",function(B){B.stop();this.fireEvent("onCancel")}.bindWithEvent(this))}},addSubmitButton:function(){var A=this.element.getElement("input.submitButton");if(A){A.addEvent("click",function(B){B.stop();this.fireEvent("onSubmit")}.bindWithEvent(this))}},hideFormError:function(){this.errorElement.setStyles({height:"0px",display:"none"})},showFormError:function(B){this.fireEvent("onFormError");this.errorElement.setHTML(B);if(this.errorElement.getStyle("height")=="0px"){this.errorElement.style.display="block";var A=new Fx.Style(this.errorElement,"height",{duration:250}).start(0,this.errorElement.scrollHeight)}}});NBN.ModalDialog.implement(new NBN.FormUtils);