﻿
__trGroup('CMS Form');Ext.namespace('NPSL','NPSL.Cms','NPSL.Cms.Form','Ext.ux');(function(){var Cms=NPSL.Cms,Form=Cms.Form,ColType=Cms.ColType,MimeTypes=Cms.MimeTypes;Form.ValueTrigger={};Form.ValueTrigger.run=function(trig,fld,newValue,oldValue){var fields={};for(var aField in fld.ownerRecord.fields){fields[aField]=fld.ownerRecord.fields[aField].getValue();}
function getField(n){var tgtFldName=n.getAttribute("field");if(!tgtFldName){return null;}
var tgtFld=fld.ownerRecord.fields[tgtFldName];if(tgtFld==null){throw"unable to find the field named "+tgtFldName;}
return tgtFld;}
function getFormItem(n){n=n.getEl();var wrap=n.up('.x-form-item');return wrap||n;}
function clearValue(fld){fld.setValue(null);fld.ownerRecord.record.set(fld.col.name,null);}
function hasAttribute(n,name){return n.dom.hasAttribute?n.dom.hasAttribute(name):n.dom.attributes.getNamedItem(name);}
function runShowHide(n,show){var el;if(hasAttribute(n,'field')){var fld=getField(n);if(!show){}
el=getFormItem(fld);}else if(hasAttribute(n,'el-id')){el=Ext.get(n.getAttribute('el-id'));}
el.setVisibilityMode(Ext.Element.DISPLAY);el.setVisible(show);}
function runShow(n){runShowHide(n,true);}
function runHide(n){runShowHide(n,false);}
function runEnable(n){getField(n).enable();}
function runDisable(n){var fld=getField(n);fld.disable();clearValue(fld);}
function runValueTrigger(n){var name=n.getAttribute("name");var trig=null;if(fld.ownerRecord.triggers){trig=fld.ownerRecord.triggers[name];}
if(!trig){throw"Unknown trigger named "+name;}
runChildren(trig);}
function runChoose(n){for(var n=n.getFirstChild();n;n=n.getNextSibling()){switch(n.getName()){case"when":var test=n.getAttribute("test");if(!test){throw"choose/when node without test attribute";}
var result=function(value,oldValue,fields){return eval(test);}.call({},newValue,oldValue,fields);if(result){runChildren(n);return;}
break;case"otherwise":runChildren(n);return;}}}
function runNode(n){switch(n.getName()){case"choose":runChoose(n);break;case"show":runShow(n);break;case"hide":runHide(n);break;case"enable":runEnable(n);break;case"disable":runDisable(n);break;case"run-value-trigger":runValueTrigger(n);break;default:throw"unknown node named "+n.getName();}}
function runChildren(n){for(var n=n.getFirstChild();n;n=n.getNextSibling()){runNode(n);}}
runChildren(trig,{value:newValue,oldValue:oldValue});};Form.CmsValueTrigger=function(){};Form.CmsValueTrigger.fromXML=function(n,ownerForm,ownerRecord){if(!ownerRecord){throw"value-trigger without an owning cms-record";}
if(!ownerRecord.triggers){ownerRecord.triggers={};}
ownerRecord.triggers[n.getAttribute("name")]=n;};Form.reg(Form.CmsValueTrigger,'value-trigger');}());