NBN.DialogBox=new Class({Identifier:"NBN.DialogBox",Implements:[Events,Options,Chain,NBN.ActionManager],options:{trigger:null,dialogPosContainer:null,posRelative:null,posCenter:true,posDialog:$empty,onAfterSetPosition:$empty,onClose:$empty,onOpen:$empty,onAfterOpen:$empty,onTriggerClick:$empty,useVisibility:false},initialize:function(B,A){this.element=$(B);this.setOptions(A);if(this.options.dialogPosContainer){this.options.dialogPosContainer=$(this.options.dialogPosContainer)}var C=this.element.getElement(".closeLink");if(C){C.addEvent("click",this.close.bindWithEvent(this))}if(this.options.trigger){this.trigger=$(this.options.trigger);this.trigger.addEvent("click",function(D){if(D&&$defined(D.stop)){D.stop()}this.show();this.fireEvent("onTriggerClick")}.bindWithEvent(this))}if(this.options.posDialog!==$empty){this.posDialog=this.options.posDialog.bind(this)}},posDialog:function(){var A=this.trigger.getCoordinates(this.options.posRelative);this.element.setStyles({top:A.top,left:A.left});this.fireEvent("onAfterSetPosition")},setDialogPosition:function(){if(!this.options.posCenter){this.posDialog()}else{this.element.setToCenter()}},close:function(A){A.stop();this.hide();this.fireEvent("onClose")},show:function(){this.fireEvent("onBeforeShow");this.setDialogPosition();this.element.setStyle("z-index",5000);if(this.options.useVisibility){this.element.setStyle("visibility","visible")}else{this.element.setStyle("display","block")}this.fireEvent("onAfterShow")},hide:function(){this.fireEvent("onBeforeHide");if(this.options.useVisibility){this.element.setStyle("visibility","hidden")}else{this.element.setStyle("display","none")}this.fireEvent("onAfterHide")},render:function(){this.element.style.display="none"}});NBN.ModalDialog=new Class({Identifier:"NBN.ModalDialog",Extends:NBN.DialogBox,Implements:[Modalizer],initialize:function(B,A){this.parent(B,A);this.setModalOptions($merge(A.modalOptions||{},{onModalHide:function(){this.hide()}.bind(this)}))},close:function(A){A.stop();this.modalHide();this.fireEvent("onClose")},show:function(){this.fireEvent("onOpen");this.modalShow();this.setDialogPosition();this.element.setStyles({display:"block","z-index":this.modalStyle["z-index"]+1});this.fireEvent("onAfterOpen")}});NBN.ModalFormDialog=new Class({Identifier:"NBN.ModalFormDialog",Extends:NBN.ModalDialog,Implements:[NBN.FormUtils],options:{focusOnInput:null,onOpen:function(){this.hideFormError()},onAfterOpen:function(){this.focusInput()},onCancel:$empty,onSubmit:$empty,onFormError:$empty},initialize:function(B,A){this.parent(B,A);this.formEle=this.element.getElement("form");this.focusOnInputEle=this.element.getElement("#"+this.options.focusOnInput);this.build();this.initFormElements();this.addCancelButton();this.addSubmitButton()},validateRequired:function(A){return A.value==""?false:true},build:function(){this.errorElement=this.element.getElement("div.dialogBoxErrorMsg");if(!this.errorElement){this.errorElement=new Element("div",{"class":"dialogBoxErrorMsg",styles:{display:"none",height:0}});this.errorElement.inject(this.formEle,"before")}this.successElement=this.element.getElement("div.dialogBoxSuccessMsg");if(!this.successElement){this.successElement=new Element("div",{"class":"dialogBoxSuccessMsg",styles:{display:"none"}});this.successElement.inject(this.formEle,"before")}},focusInput:function(){if(this.focusOnInputEle){this.focusOnInputEle.focus()}},addCancelButton:function(){this.cancelButton=this.element.getElement("input.cancelButton");if(this.cancelButton){this.cancelButton.addEvent("click",function(A){A.stop();this.fireEvent("onCancel")}.bindWithEvent(this))}},addSubmitButton:function(){this.submitButton=this.element.getElement("input.submitButton");if(this.submitButton){this.submitButton.addEvent("click",function(A){A.stop();this.fireEvent("onSubmit")}.bindWithEvent(this))}this.formEle.addEvent("submit",function(A){A.stop();this.fireEvent("onSubmit")}.bindWithEvent(this))},show:function(){this.submitButton.disabled=false;this.parent()},hideFormError:function(){if(this.errorElement){this.errorElement.setStyles({height:"0px",display:"none"})}},showFormError:function(A){this.fireEvent("onFormError");if(!this.errorElement){return }this.errorElement.set("html",A);if(this.errorElement.getStyle("height")=="0px"){this.errorElement.style.display="block";this.errorElement.tween("height",[0,this.errorElement.scrollHeight],{duration:250})}},destroy:function(){if(this.errorElement){this.errorElement.destroy()}if(this.successElement){this.successElement.destroy()}}});NBN.IframeModalDialog=new Class({Identifier:"NBN.IframeModalDialog",Extends:NBN.ModalDialog,options:{iframeSrc:null,productid:null,iframeStyle:{border:"0px solid #FFF",overflow:"hidden"},minHeight:300,minWidth:300,validate:function(){return true},onBeforeBuild:$empty,onFrameResize:$empty},initialize:function(B,A){this.parent(B,A);this.dialogContent=this.element.getElement(".dialogBoxContent");this.registerAction("windowResize",this.setDialogPosition.bind(this));this.registerAction("windowScroll",this.setDialogPosition.bind(this))},build:function(){if(!this.dialogContent){return }if(!this.options.iframeSrc){if(!this.options.productid){return }this.options.iframeSrc="/storeinventory/checkproduct?productid="+this.options.productid}this.fireEvent("onBeforeBuild");this.iframe=this.createIframe();this.dialogContent.adopt(this.iframe);this.iframe.contentWindow.document.location.replace(this.options.iframeSrc)},createIframe:function(){var A=document.createElement("iframe");A.id=(this.element.id+"_iframe_dialogbox");A.name=A.id;A.scrolling="no";A.frameBorder="0";A.marginWidth="0";A.marginHeight="0";A.width=this.options.minWidth;A.height=this.options.minHeight;var B=A.style;B.border=this.options.iframeStyle.border;B.overflow=this.options.iframeStyle.overflow;return $(A)},resizeIframe:function(B,A){if(!$defined(B)){B=this.options.minWidth}if(!$defined(A)){A=this.options.minHeight}this.iframe.setStyles({height:A,width:B});this.resize();this.fireEvent("onFrameResize")},show:function(){if(!this.isOpened){this.build();this.parent();this.isOpened=true}},hide:function(){this.isOpened=false;this.iframe.destroy();this.parent()}});