MWF.xApplication.cms.FormDesigner.Module=MWF.xApplication.cms.FormDesigner.Module||{};MWF.xDesktop.requireApp("cms.FormDesigner","Module.$Component",null,false);MWF.xDesktop.requireApp("cms.FormDesigner","Module.Tab$Page",null,false);MWF.xDesktop.requireApp("cms.FormDesigner","Module.Tab$Content",null,false);MWF.require("MWF.widget.Tab",null,false);MWF.xApplication.cms.FormDesigner.Module.Tab=MWF.CMSFCTab=new Class({Extends:MWF.CMSFC$Component,Implements:[Options,Events],options:{style:"default",propertyPath:"/x_component_cms_FormDesigner/Module/Tab/tab.html",actions:[{name:"move",icon:"move1.png",event:"mousedown",action:"move",title:MWF.CMSFD.LP.formAction.move},{name:"copy",icon:"copy1.png",event:"mousedown",action:"copy",title:MWF.CMSFD.LP.formAction.copy},{name:"add",icon:"add.png",event:"click",action:"addPage",title:MWF.CMSFD.LP.formAction.add},{name:"delete",icon:"delete1.png",event:"click",action:"delete",title:MWF.CMSFD.LP.formAction["delete"]}]},initialize:function(t,e){this.setOptions(e);this.path="/x_component_cms_FormDesigner/Module/Tab/";this.cssPath="/x_component_cms_FormDesigner/Module/Tab/"+this.options.style+"/css.wcss";this._loadCss();this.moduleType="component";this.moduleName="tab";this.form=t;this.container=null;this.containerNode=null;this.containers=[];this.elements=[]},_createMoveNode:function(){this.moveNode=new Element("div",{styles:this.css.moduleNodeMove}).inject(this.form.container);var t=new Element("div",{styles:this.css.moduleNodeMove_tab_current});var e=new Element("div",{styles:this.css.moduleNodeMove_tab});var s=new Element("div",{styles:this.css.moduleNodeMove_content});t.inject(this.moveNode);e.inject(this.moveNode);s.inject(this.moveNode)},_createNode:function(t){this.node=new Element("div",{id:this.json.id,MWFType:"tab",styles:this.css.moduleNode,events:{selectstart:function(t){t.preventDefault()}}}).inject(this.form.node);var e="form";if(this.form.options.mode=="Mobile")e="formMobile";this.tabWidget=new MWF.widget.Tab(this.node,{style:e});this._loadPageStyle();this.tabWidget.load();var s=new Element("div");this.tabWidget.addTab(s,"page1",false);s=new Element("div");this.tabWidget.addTab(s,"page2",false);s=new Element("div");this.tabWidget.addTab(s,"page3",false);s=new Element("div");this.tabWidget.addTab(s,"page4",false)},_createTabWidget:function(){var t="form";if(this.form.options.mode=="Mobile")t="formMobile";this.tabWidget=new MWF.widget.Tab(this.node,{style:t});this._setTabWidgetStyles();this.tabWidget.tabNodeContainer=this.node.getFirst();this.tabWidget.contentNodeContainer=this.node.getLast();this.tabWidget.load();var e=this.tabWidget.contentNodeContainer.getChildren();var s=this.tabWidget.tabNodeContainer.getChildren();e.each(function(t,e){var i=s[e];var n=new MWF.widget.TabPage(t.getFirst(),"",this.tabWidget,{isClose:false});n.contentNodeArea=t;if(i){n.tabNode=i;n.textNode=i.getFirst();n.closeNode=n.textNode.getFirst()}n.load();this.tabWidget.pages.push(n)}.bind(this))},_loadPageStyle:function(){this.json.tabStyles=Object.clone(this.tabWidget.css.tabNode);this.json.tabTextStyles=Object.clone(this.tabWidget.css.tabTextNode);this.json.tabCurrentStyles=Object.clone(this.tabWidget.css.tabNodeCurrent);this.json.tabTextCurrentStyles=Object.clone(this.tabWidget.css.tabTextNodeCurrent);this._setTabWidgetStyles()},_setTabWidgetStyles:function(){this.tabWidget.css.tabNode=this.json.tabStyles;this.tabWidget.css.tabTextNode=this.json.tabTextStyles;this.tabWidget.css.tabNodeCurrent=this.json.tabCurrentStyles;this.tabWidget.css.tabTextNodeCurrent=this.json.tabTextCurrentStyles},_getElements:function(){if(!this.tabWidget)this._createTabWidget();this.form.getTemplateData("Tab$Page",function(t){this.tabWidget.pages.each(function(e){var s=null;var i=this.form.getDomjson(e.tabNode);if(!i){var n=Object.clone(t);n.name=e.tabNode.get("text");s=new MWF.CMSFCTab$Page(this,e);s.page=e;s.load(n,e.tabNode,this)}else{s=new MWF.CMSFCTab$Page(this,e);s.page=e;s.load(i,e.tabNode,this)}if(s)this.elements.push(s)}.bind(this))}.bind(this));if(!this.tabWidget.showPage)this.tabWidget.pages[0].showTabIm()},_getContainers:function(){if(!this.tabWidget)this._createTabWidget();this.form.getTemplateData("Tab$Content",function(t){this.tabWidget.pages.each(function(e){var s=null;var i=this.form.getDomjson(e.contentNode);if(!i){var n=Object.clone(t);s=new MWF.CMSFCTab$Content(this,e);s.page=e;s.load(n,e.contentNode,this)}else{s=new MWF.CMSFCTab$Content(this,e);s.page=e;s.load(i,e.contentNode,this)}if(s)this.containers.push(s)}.bind(this))}.bind(this))},_setEditStyle_custom:function(t){if(t=="tabStyles"){this.tabWidget.pages.each(function(t){if(!t.isShow){t.tabNode.clearStyles();t.tabNode.setStyles(this.json.tabStyles)}}.bind(this));this._setTabWidgetStyles()}if(t=="tabTextStyles"){this.tabWidget.pages.each(function(t){if(!t.isShow){t.textNode.clearStyles();t.textNode.setStyles(this.json.tabTextStyles)}}.bind(this));this._setTabWidgetStyles()}if(t=="tabCurrentStyles"){this.tabWidget.pages.each(function(t){if(t.isShow){t.tabNode.clearStyles();t.tabNode.setStyles(this.json.tabCurrentStyles)}}.bind(this));this._setTabWidgetStyles()}if(t=="tabTextCurrentStyles"){this.tabWidget.pages.each(function(t){if(t.isShow){t.textNode.clearStyles();t.textNode.setStyles(this.json.tabTextCurrentStyles)}}.bind(this));this._setTabWidgetStyles()}},addPage:function(){tabNode=new Element("div");var t=this.tabWidget.addTab(tabNode,"page",false);this.form.getTemplateData("Tab$Page",function(e){var s=Object.clone(e);s.name=t.tabNode.get("text");var i=new MWF.CMSFCTab$Page(this,t);i.load(s,t.tabNode,this);this.elements.push(i)}.bind(this));this.form.getTemplateData("Tab$Content",function(e){var s=Object.clone(e);var i=new MWF.CMSFCTab$Content(this,t);i.load(s,t.contentNode,this);this.containers.push(i)}.bind(this));t.showTabIm();return t},copyComponentJsonData:function(t,e){var s=t.getFirst();var i=t.getLast();var n=i.getChildren();var o=s.getChildren();n.each(function(t,s){var i=Object.clone(this.containers[s].json);var n=Object.clone(this.elements[s].json);var a=o[s];i.id=this.containers[s]._getNewId(e);this.form.json.moduleList[i.id]=i;t.getFirst().set("id",i.id);n.id=this.elements[s]._getNewId(e);this.form.json.moduleList[n.id]=n;a.set("id",n.id)}.bind(this))}});