| 1 |
- MWF.widget=MWF.widget||{};MWF.widget.Dialog=MWF.DL=new Class({Implements:[Options,Events],Extends:MWF.widget.Common,options:{style:"default",title:"dialog",width:"300",height:"150",top:"0",left:"0",fromTop:"0",fromLeft:"0",mark:true,html:"",text:"",url:"",content:null,isMax:false,isClose:true,isResize:true,isMove:true,buttons:null,buttonList:null,maskNode:null,container:null},initialize:function(t){this.setOptions(t);this.path=MWF.defaultPath+"/widget/$Dialog/";this.cssPath=MWF.defaultPath+"/widget/$Dialog/"+this.options.style+"/css.wcss";this._loadCss();this.reStyle();this.fireEvent("queryLoad");this.getContentUrl();var e=new Request.HTML({url:this.contentUrl,method:"GET",async:false,onSuccess:function(t,e,i,s){this.node=t[0];this.getDialogNode();this.fireEvent("postLoad")}.bind(this),onFailure:function(t){alert(t)}});e.send()},getContentUrl:function(){this.contentUrl=MWF.defaultPath+"/widget/$Dialog/"+this.options.style+"/dialog.html"},reStyle:function(t){if(t)this.setOptions(t);this.css.to.height=this.options.height+"px";this.css.to.width=this.options.width+"px";this.css.to.top=this.options.top+"px";this.css.to.left=this.options.left+"px";this.css.from.top=this.options.fromTop+"px";this.css.from.left=this.options.fromLeft+"px";if(this.node)this.node.set("styles",this.css.from)},getParentSelect:function(t){var e="";var i=t.getParent();while(!e&&i){e=i.getStyle("-webkit-user-select");var i=i.getParent()}return e},getDialogNode:function(){this.node.set("styles",this.css.from);this.node.inject(this.options.container||$(document.body));this.node.addEvent("selectstart",function(t){var e=t.target.getStyle("-webkit-user-select");if(!e)e=this.getParentSelect(t.target);if(!e){e="none"}else{e=e.toString().toLowerCase()}var i=t.target.tagName.toString().toLowerCase();if(e!="text"&&e!="auto"&&["input","textarea"].indexOf(i)==-1)t.preventDefault()}.bind(this));this.title=this.node.getElement(".MWF_dialod_title");this.titleCenter=this.node.getElement(".MWF_dialod_title_center");this.titleRefresh=this.node.getElement(".MWF_dialod_title_refresh");this.titleText=this.node.getElement(".MWF_dialod_title_text");this.titleAction=this.node.getElement(".MWF_dialod_title_action");this.under=this.node.getElement(".MWF_dialod_under");this.content=this.node.getElement(".MWF_dialod_content");this.bottom=this.node.getElement(".MWF_dialod_bottom");this.resizeNode=this.node.getElement(".MWF_dialod_bottom_resize");this.button=this.node.getElement(".MWF_dialod_button");if(this.title)this.title.setStyles(this.css.MWF_dialod_title);if(this.titleCenter)this.titleCenter.setStyles(this.css.MWF_dialod_title_center);if(this.titleRefresh)this.titleRefresh.setStyles(this.css.MWF_dialod_title_refresh);if(this.titleText)this.titleText.setStyles(this.css.MWF_dialod_title_text);if(this.titleAction)this.titleAction.setStyles(this.css.MWF_dialod_title_action);if(this.under)this.under.setStyles(this.css.MWF_dialod_under);if(this.content)this.content.setStyles(this.css.MWF_dialod_content);if(this.bottom)this.bottom.setStyles(this.css.MWF_dialod_bottom);if(this.resizeNode)this.resizeNode.setStyles(this.css.MWF_dialod_bottom_resize);if(this.button)this.button.setStyles(this.css.MWF_dialod_button);if(this.title)this.setTitleEvent();if(this.titleRefresh)this.setTitleRefreshNode();if(this.content)this.getContent();if(this.titleAction)this.getAction();if(this.resizeNode)this.setResizeNode();if(this.content)this.setContentSize()},setTitleRefreshNode:function(){this.titleRefresh.setStyles(this.css.titleRefresh);this.titleRefresh.set("title",MWF.LP.widget.refresh)},setTitleEvent:function(){this.title.addEvent("mousedown",function(){this.containerDrag=new Drag.Move(this.node)}.bind(this));this.title.addEvent("mouseup",function(){this.node.removeEvents("mousedown");this.title.addEvent("mousedown",function(){this.containerDrag=new Drag.Move(this.node)}.bind(this))}.bind(this))},setResizeNode:function(){},getAction:function(){},getButton:function(){for(i in this.options.buttons){var t=new Element("input",{type:"button",value:i,styles:this.css.button,events:{click:this.options.buttons[i].bind(this)}}).inject(this.button)}if(this.options.buttonList){this.options.buttonList.each(function(t){var e=new Element("input",{type:"button",value:t.text,styles:this.css.button,events:{click:t.action.bind(this,this)}}).inject(this.button)}.bind(this))}},getContentSize:function(t,e){if(!t)t=this.options.height;if(!e)e=this.options.width;if(this.title){var i=this.title.getSize().y;var s=this.title.getStyle("padding-top").toFloat();var o=this.title.getStyle("padding-bottom").toFloat();var n=this.title.getStyle("margin-top").toFloat();var h=this.title.getStyle("margin-bottom").toFloat();t=t-i-s-o-n-h}if(this.bottom){var l=this.bottom.getSize().y;var a=this.bottom.getStyle("padding-top").toFloat();var d=this.bottom.getStyle("padding-bottom").toFloat();var r=this.bottom.getStyle("margin-top").toFloat();var c=this.bottom.getStyle("margin-bottom").toFloat();t=t-l-a-d-r-c}if(this.button){var f=this.button.getSize().y;var g=this.button.getStyle("padding-top").toFloat();var u=this.button.getStyle("padding-bottom").toFloat();var m=this.button.getStyle("margin-top").toFloat();var p=this.button.getStyle("margin-bottom").toFloat();t=t-f-g-u-m-p}var y=this.content.getStyle("padding-top").toFloat();var b=this.content.getStyle("padding-bottom").toFloat();var S=this.content.getStyle("margin-top").toFloat();var v=this.content.getStyle("margin-bottom").toFloat();t=t-y-b-S-v;var _=this.content.getStyle("padding-left").toFloat();var F=this.content.getStyle("padding-right").toFloat();var w=this.content.getStyle("margin-left").toFloat();var M=this.content.getStyle("margin-right").toFloat();e=e-_-F-w-M;if(!t||t<0){this.content.setStyles({overflow:"hidden",height:"auto",width:""+e+"px"});t=this.content.getSize().y;var x=t+i+s+o+n+h;x=x+l+a+d+r+c;x=x+f+g+u+m+p;x=x+y+b+S+v;this.css.to.height=x}return{height:t+"px",width:e+"px"}},setContentSize:function(t,e){this.content.setStyles(this.getContentSize(t,e));this.content.setStyle("width","auto")},getTitle:function(){this.titleText.set("text",this.options.title)},getContent:function(){this.content.setStyles(this.css.content);if(this.options.content){this.options.content.inject(this.content)}else if(this.options.url){this.content.set("load",{method:"get",async:false});$(this.content).load(this.options.url)}else if(this.options.html){this.content.set("html",this.options.html)}else if(this.options.text){this.content.set("text",this.options.text)}},show:function(){if(this.options.mark)this._markShow();if(!this.morph){this.morph=new Fx.Morph(this.node,{duration:200})}if(this.fireEvent("queryShow")){this.node.setStyle("display","block");this.morph.start(this.css.to).chain(function(){if(this.titleText)this.getTitle();if(this.button)this.getButton();this.fireEvent("postShow")}.bind(this))}},hide:function(){if(!this.morph){this.morph=new Fx.Morph(this.node,{duration:200})}if(this.fireEvent("queryHide")){if(this.titleText)this.titleText.set("text","");if(this.button)this.button.set("html","");this.morph.start(this.css.from).chain(function(){this._markHide();this.node.setStyle("display","none");this.fireEvent("postHide")}.bind(this))}},close:function(){if(!this.morph){this.morph=new Fx.Morph(this.node,{duration:200})}if(this.fireEvent("queryClose")){this.morph.start(this.css.from).chain(function(){this._markHide();this.node.destroy();this.node=null;this.fireEvent("postClose")}.bind(this))}},_markShow:function(){if(this.options.mark){if(!this.markNode){var t=MWF.getMarkSize(this.options.maskNode);this.markNode=new Element("div",{styles:this.css.mark}).inject(this.options.container||$(document.body));this.markNode.set("styles",{height:t.y,width:t.x})}this.markNode.setStyle("display","block")}},_markHide:function(){if(this.markNode){this.markNode.setStyle("display","none")}}});
|