MWF.xDesktop.requireApp("process.Xform","$Input",null,false);MWF.xApplication.process.Xform.Select=MWF.APPSelect=new Class({Implements:[Events],Extends:MWF.APP$Input,iconStyle:"selectIcon",initialize:function(node,json,form,options){this.node=$(node);this.node.store("module",this);this.json=json;this.form=form;this.field=true},_loadNode:function(){if(this.readonly){this._loadNodeRead()}else{this._loadNodeEdit()}},_loadNodeRead:function(){this.node.empty();var optionItems=this.getOptions();var value=this.getValue();if(value){if(typeOf(value)!=="array")value=[value];var texts=[];optionItems.each(function(item){var tmps=item.split("|");var t=tmps[0];var v=tmps[1]||t;if(v){if(value.indexOf(v)!=-1){texts.push(t)}}});this.node.set("text",texts.join(", "))}},_loadEvents:function(){Object.each(this.json.events,function(e,key){if(e.code){if(this.options.moduleEvents.indexOf(key)!=-1){this.addEvent(key,function(event){return this.form.Macro.fire(e.code,this,event)}.bind(this))}else{this.node.addEvent(key,function(event){return this.form.Macro.fire(e.code,this,event)}.bind(this))}}}.bind(this))},_loadStyles:function(){if(this.areaNode){if(this.json.styles)if(this.areaNode)this.areaNode.setStyles(this.json.styles);if(this.json.inputStyles)this.node.setStyles(this.json.inputStyles)}else{if(this.json.styles)this.node.setStyles(this.json.styles)}},_loadNodeEdit:function(){this.node.empty();var select=new Element("select");select.set(this.json.properties);select.inject(this.node);this.areaNode=this.node;this.node=select;this.node.set({id:this.json.id,MWFType:this.json.type,styles:{"margin-right":"12px"}});this.setOptions();this.node.addEvent("change",function(){this.validationMode();if(this.validation())this._setBusinessData(this.getInputData("change"))}.bind(this))},resetOption:function(){this.node.empty();this.setOptions()},getOptions:function(){if(this.json.itemType=="values"){return this.json.itemValues}else{return this.form.Macro.exec(this.json.itemScript.code,this)}return[]},setOptions:function(){var optionItems=this.getOptions();if(!optionItems)optionItems=[];optionItems.each(function(item){var tmps=item.split("|");var text=tmps[0];var value=tmps[1]||text;var option=new Element("option",{value:value,text:text}).inject(this.node)}.bind(this))},addOption:function(text,value){var option=new Element("option",{value:value||text,text:text}).inject(this.node)},_setValue:function(value){if(!this.readonly){this._setBusinessData(value);for(var i=0;i