/*
 * CFForms CustomTag Javascript Augmentation
 */


Ext.util.MixedCollection=function(allowFunctions,keyFn){this.items=[];this.map={};this.keys=[];this.length=0;this.addEvents('clear','add','replace','remove','sort');this.allowFunctions=allowFunctions===true;if(keyFn){this.getKey=keyFn;}
Ext.util.MixedCollection.superclass.constructor.call(this);};Ext.extend(Ext.util.MixedCollection,Ext.util.Observable,{allowFunctions:false,add:function(key,o){if(arguments.length==1){o=arguments[0];key=this.getKey(o);}
if(typeof key!='undefined'&&key!==null){var old=this.map[key];if(typeof old!='undefined'){return this.replace(key,o);}
this.map[key]=o;}
this.length++;this.items.push(o);this.keys.push(key);this.fireEvent('add',this.length-1,o,key);return o;},getKey:function(o){return o.id;},replace:function(key,o){if(arguments.length==1){o=arguments[0];key=this.getKey(o);}
var old=this.map[key];if(typeof key=='undefined'||key===null||typeof old=='undefined'){return this.add(key,o);}
var index=this.indexOfKey(key);this.items[index]=o;this.map[key]=o;this.fireEvent('replace',key,old,o);return o;},addAll:function(objs){if(arguments.length>1||Ext.isArray(objs)){var args=arguments.length>1?arguments:objs;for(var i=0,len=args.length;i<len;i++){this.add(args[i]);}}else{for(var key in objs){if(this.allowFunctions||typeof objs[key]!='function'){this.add(key,objs[key]);}}}},each:function(fn,scope){var items=[].concat(this.items);for(var i=0,len=items.length;i<len;i++){if(fn.call(scope||items[i],items[i],i,len)===false){break;}}},eachKey:function(fn,scope){for(var i=0,len=this.keys.length;i<len;i++){fn.call(scope||window,this.keys[i],this.items[i],i,len);}},find:function(fn,scope){for(var i=0,len=this.items.length;i<len;i++){if(fn.call(scope||window,this.items[i],this.keys[i])){return this.items[i];}}
return null;},insert:function(index,key,o){if(arguments.length==2){o=arguments[1];key=this.getKey(o);}
if(this.containsKey(key)){this.suspendEvents();this.removeKey(key);this.resumeEvents();}
if(index>=this.length){return this.add(key,o);}
this.length++;this.items.splice(index,0,o);if(typeof key!='undefined'&&key!==null){this.map[key]=o;}
this.keys.splice(index,0,key);this.fireEvent('add',index,o,key);return o;},remove:function(o){return this.removeAt(this.indexOf(o));},removeAt:function(index){if(index<this.length&&index>=0){this.length--;var o=this.items[index];this.items.splice(index,1);var key=this.keys[index];if(typeof key!='undefined'){delete this.map[key];}
this.keys.splice(index,1);this.fireEvent('remove',o,key);return o;}
return false;},removeKey:function(key){return this.removeAt(this.indexOfKey(key));},getCount:function(){return this.length;},indexOf:function(o){return this.items.indexOf(o);},indexOfKey:function(key){return this.keys.indexOf(key);},item:function(key){var mk=this.map[key],item=mk!==undefined?mk:(typeof key=='number')?this.items[key]:undefined;return typeof item!='function'||this.allowFunctions?item:null;},itemAt:function(index){return this.items[index];},key:function(key){return this.map[key];},contains:function(o){return this.indexOf(o)!=-1;},containsKey:function(key){return typeof this.map[key]!='undefined';},clear:function(){this.length=0;this.items=[];this.keys=[];this.map={};this.fireEvent('clear');},first:function(){return this.items[0];},last:function(){return this.items[this.length-1];},_sort:function(property,dir,fn){var i,len,dsc=String(dir).toUpperCase()=='DESC'?-1:1,c=[],keys=this.keys,items=this.items;fn=fn||function(a,b){return a-b;};for(i=0,len=items.length;i<len;i++){c[c.length]={key:keys[i],value:items[i],index:i};}
c.sort(function(a,b){var v=fn(a[property],b[property])*dsc;if(v===0){v=(a.index<b.index?-1:1);}
return v;});for(i=0,len=c.length;i<len;i++){items[i]=c[i].value;keys[i]=c[i].key;}
this.fireEvent('sort',this);},sort:function(dir,fn){this._sort('value',dir,fn);},reorder:function(mapping){this.suspendEvents();var items=this.items,index=0,length=items.length,order=[],remaining=[];for(oldIndex in mapping){order[mapping[oldIndex]]=items[oldIndex];}
for(index=0;index<length;index++){if(mapping[index]==undefined){remaining.push(items[index]);}}
for(index=0;index<length;index++){if(order[index]==undefined){order[index]=remaining.shift();}}
this.clear();this.addAll(order);this.resumeEvents();this.fireEvent('sort',this);},keySort:function(dir,fn){this._sort('key',dir,fn||function(a,b){var v1=String(a).toUpperCase(),v2=String(b).toUpperCase();return v1>v2?1:(v1<v2?-1:0);});},getRange:function(start,end){var items=this.items;if(items.length<1){return[];}
start=start||0;end=Math.min(typeof end=='undefined'?this.length-1:end,this.length-1);var i,r=[];if(start<=end){for(i=start;i<=end;i++){r[r.length]=items[i];}}else{for(i=start;i>=end;i--){r[r.length]=items[i];}}
return r;},filter:function(property,value,anyMatch,caseSensitive){if(Ext.isEmpty(value,false)){return this.clone();}
value=this.createValueMatcher(value,anyMatch,caseSensitive);return this.filterBy(function(o){return o&&value.test(o[property]);});},filterBy:function(fn,scope){var r=new Ext.util.MixedCollection();r.getKey=this.getKey;var k=this.keys,it=this.items;for(var i=0,len=it.length;i<len;i++){if(fn.call(scope||this,it[i],k[i])){r.add(k[i],it[i]);}}
return r;},findIndex:function(property,value,start,anyMatch,caseSensitive){if(Ext.isEmpty(value,false)){return-1;}
value=this.createValueMatcher(value,anyMatch,caseSensitive);return this.findIndexBy(function(o){return o&&value.test(o[property]);},null,start);},findIndexBy:function(fn,scope,start){var k=this.keys,it=this.items;for(var i=(start||0),len=it.length;i<len;i++){if(fn.call(scope||this,it[i],k[i])){return i;}}
return-1;},createValueMatcher:function(value,anyMatch,caseSensitive,exactMatch){if(!value.exec){var er=Ext.escapeRe;value=String(value);if(anyMatch===true){value=er(value);}else{value='^'+er(value);if(exactMatch===true){value+='$';}}
value=new RegExp(value,caseSensitive?'':'i');}
return value;},clone:function(){var r=new Ext.util.MixedCollection();var k=this.keys,it=this.items;for(var i=0,len=it.length;i<len;i++){r.add(k[i],it[i]);}
r.getKey=this.getKey;return r;}});Ext.util.MixedCollection.prototype.get=Ext.util.MixedCollection.prototype.item;

Ext.ns('Ext.ux');Ext.ux.KeyNav=function(el,config){this.el=Ext.get(el);Ext.apply(this,config);if(!this.disabled){this.disabled=true;this.enable();}};Ext.ux.KeyNav.prototype={disabled:false,defaultEventAction:"stopEvent",forceKeyDown:false,relay:function(e){var k=e.getKey();var h=this.keyToHandler[k];if(h&&this[h]){if(this.doRelay(e,this[h],h)!==true){e[this.defaultEventAction]();}}},doRelay:function(e,h,hname){return h.call(this.scope||this,e);},enter:false,left:false,right:false,up:false,down:false,tab:false,esc:false,pageUp:false,pageDown:false,del:false,home:false,end:false,keyToHandler:{37:"left",39:"right",38:"up",40:"down",33:"pageUp",34:"pageDown",46:"del",36:"home",35:"end",13:"enter",27:"esc",9:"tab"},stopKeyUp:function(e){var k=e.getKey();if(k>=37&&k<=40){e.stopEvent();}},destroy:function(){this.disable();},enable:function(){if(this.disabled){if(Ext.isSafari2){this.el.on('keyup',this.stopKeyUp,this);}
this.el.on(this.isKeydown()?'keydown':'keypress',this.relay,this);this.disabled=false;}},disable:function(){if(!this.disabled){if(Ext.isSafari2){this.el.un('keyup',this.stopKeyUp,this);}
this.el.un(this.isKeydown()?'keydown':'keypress',this.relay,this);this.disabled=true;}},setDisabled:function(disabled){this[disabled?"disable":"enable"]();},isKeydown:function(){return this.forceKeyDown||Ext.EventManager.useKeydown;}};

Ext.ns('Ext.ux');Ext.ux.ComponentMgr=function(){var all=new Ext.util.MixedCollection();return{register:function(c){if(!all.contains(c))
all.add(c);},unregister:function(c){all.remove(c);},get:function(id){return all.get(id);},all:all}}();

Ext.ux.EventManager=function(){var resizeEvent,resizeTask,D=Ext.lib.Dom,propRe=/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/,curWidth=0,curHeight=0;return{doResizeEvent:function(){var h=D.getViewHeight(),w=D.getViewWidth();if(curHeight!=h||curWidth!=w){resizeEvent.fire(curWidth=w,curHeight=h);}},onWindowResize:function(fn,scope,options){if(!resizeEvent){resizeEvent=new Ext.util.Event();resizeTask=new Ext.util.DelayedTask(this.doResizeEvent);Ext.EventManager.on(window,"resize",this.fireWindowResize,this);}
resizeEvent.addListener(fn,scope,options);},fireWindowResize:function(){if(resizeEvent){resizeTask.delay(100);}}}}();

Ext.ns('Ext.ux');Ext.ux.Component=function(config){config=config||{};if(config.tagName||config.dom||Ext.isString(config)){config={applyTo:config,id:config.id||config};}
this.initialConfig=config;Ext.apply(this,config);this.addEvents('disable','enable','show','hide');this.getId();Ext.ux.ComponentMgr.register(this);Ext.ux.Component.superclass.constructor.call(this);this.initComponent();if(this.applyTo){this.el=Ext.get(this.applyTo);delete this.applyTo;this.afterRender(this.el);}};Ext.ux.Component.AUTO_ID=1000;Ext.extend(Ext.ux.Component,Ext.util.Observable,{disabled:false,hidden:false,disabledClass:'x-item-disabled',hideMode:'display',actionMode:'el',getActionEl:function(){return this[this.actionMode];},initComponent:function(){if(this.listeners){this.on(this.listeners);delete this.listeners;}},getEl:function(){return this.el;},getId:function(){return this.id||(this.id='x-comp-'+(++Ext.ux.Component.AUTO_ID));},addClass:function(cls){if(this.el){this.el.addClass(cls);}else{this.cls=this.cls?this.cls+' '+cls:cls;}
return this;},removeClass:function(cls){if(this.el){this.el.removeClass(cls);}else if(this.cls){this.cls=this.cls.split(' ').remove(cls).join(' ');}
return this;},focus:function(selectText,delay){if(delay){this.focusTask=new Ext.util.DelayedTask(this.focus,this,[selectText,false]);this.focusTask.delay(Ext.isNumber(delay)?delay:10);return;}
this.el.focus();if(selectText===true){this.el.dom.select();}
return this;},blur:function(){this.el.blur();return this;},disable:function(silent){this.onDisable();this.disabled=true;if(silent!==true){this.fireEvent('disable',this);}
return this;},onDisable:function(){this.getActionEl().addClass(this.disabledClass);this.el.dom.disabled=true;},enable:function(){this.onEnable();this.disabled=false;this.fireEvent('enable',this);return this;},onEnable:function(){this.getActionEl().removeClass(this.disabledClass);this.el.dom.disabled=false;},setDisabled:function(disabled){return this[disabled?'disable':'enable']();},show:function(){this.hidden=false;this.onShow();this.fireEvent('show',this);return this;},onShow:function(){this.getVisibilityEl().removeClass('x-hide-'+this.hideMode);this.getVisibilityEl().removeClass('x-hidden');},hide:function(){this.doHide();this.fireEvent('hide',this);return this;},doHide:function(){this.hidden=true;this.onHide();},onHide:function(){this.getVisibilityEl().addClass('x-hide-'+this.hideMode);this.getVisibilityEl().addClass('x-hidden');},getVisibilityEl:function(){return this.getActionEl();},setVisible:function(visible){return this[visible?'show':'hide']();},isVisible:function(){return this.getVisibilityEl().isVisible();},afterRender:function(){}});

Ext.ns('Ext.ux.form');Ext.ux.form.Form=Ext.extend(Ext.util.Observable,{constructor:function(el,config){Ext.apply(this,config);if(el){this.initEl(el);}
this.items=new Ext.util.MixedCollection();this.items.addAll(Ext.ux.form.Form.parse(this.el,this));Ext.ux.ComponentMgr.register(this);if(this.state){this.markInvalid(this.state);}
Ext.ux.form.Form.superclass.constructor.call(this,config);},standardSubmit:true,isForm:true,initEl:function(el){this.el=Ext.get(el);this.id=this.el.dom.id||Ext.id();this.el.on('submit',this.onSubmit,this);},getEl:function(){return this.el;},onSubmit:function(e){this.clearEmptyText(this.items);},submit:function(options){var v=options.clientValidation===false||this.isValid();if(v){this.onSubmit();var el=this.el.dom;if(this.url&&Ext.isEmpty(el.action)){el.action=this.url;}
el.submit();}
return v;},clearEmptyText:function(fields){fields.each(function(f){if(f.getRawValue()!=f.getValue())
f.el.dom.value=f.getRawValue();if(f.items){this.clearEmptyText(f.items);}},this);},isValid:function(){var valid=true;this.items.each(function(f){if(!f.validate()){valid=false;}});return valid;},isDirty:function(){var dirty=false;this.items.each(function(f){if(f.isDirty()){dirty=true;return false;}});return dirty;},findField:function(id){var field=this.items.get(id);if(!Ext.isObject(field)){var findMatchingField=function(f){if(f.isFormField){if(f.id==id||f.getName()==id){field=f;return false;}else if(f.isComposite){return f.items.each(findMatchingField);}}};this.items.each(findMatchingField);}
return field||null;},markInvalid:function(errors){if(Ext.isArray(errors)){for(var i=0,len=errors.length;i<len;i++){var fieldError=errors[i];var f=this.findField(fieldError.id);if(f){f.markInvalid(fieldError.msg);}}}else{var field,id;for(id in errors){if(!Ext.isFunction(errors[id])&&(field=this.findField(id))){field.markInvalid(Ext.isArray(errors[id])?errors[id][0]:errors[id]);}}}
return this;},eachItem:function(fn,scope){if(this.items&&this.items.each){this.items.each(fn,scope||this);}},setReadOnly:function(readOnly){readOnly=readOnly||true;this.eachItem(function(item){item.setReadOnly(readOnly);});this.readOnly=readOnly;},onDisable:function(){this.eachItem(function(item){item.disable();});},onEnable:function(){this.eachItem(function(item){item.enable();});},updateLayout:function(){this.eachItem(function(field,index,len){if(field.tip){field.tip.show();}},this);}});Ext.ux.form.Form.parse=function(el,ctx){var fields=[],el=Ext.get(el);var recurse=function walk(node,func){node=node.firstChild;while(node){var skip=func(node);if(skip===false){walk(node,func);}
node=node.nextSibling;}};recurse(el.dom,function(node){if(node.nodeType==1&&node.tagName){if(node.tagName.toLowerCase()=='form'){fields.push(new Ext.ux.form.Form(node));return true;}
else{var config={applyTo:node,id:node.id,form:ctx};if(node.className.indexOf('x-form-check-group')!=-1){fields.push(new Ext.ux.form.CheckboxGroup(config));return true;}
else if(node.className.indexOf('x-form-radio-group')!=-1){fields.push(new Ext.ux.form.RadioGroup(config));return true;}
else if(node.className.indexOf('x-form-composite')!=-1){fields.push(new Ext.ux.form.CompositeField(config));return true;}
else if(node.className.indexOf('x-form-display-field')!=-1){fields.push(new Ext.ux.form.DisplayField(config));}
else if(node.className.indexOf('x-form-num-field')!=-1){fields.push(new Ext.ux.form.NumberField(config));}
else if(node.tagName.toLowerCase()=='select'&&node.className.indexOf('x-form-combo')!=-1){fields.push(new Ext.ux.form.ComboBox(config));}
else if(node.className.indexOf('x-form-state')!=-1){ctx.state=Ext.util.JSON.decode(node.value);}
else if(node.tagName.toLowerCase()=='input'){if(node.type){switch(node.type){case'hidden':{break;}
case'radio':{if(node.className.indexOf('x-form-radio')!=-1){fields.push(new Ext.ux.form.Radio(config));}
break;}
case'checkbox':{if(node.className.indexOf('x-form-checkbox')!=-1){fields.push(new Ext.ux.form.Checkbox(config));}
break;}
case'text':{}
case'password':{}
case'file':{fields.push(new Ext.ux.form.TextField(config));break;}}}}
else if(node.tagName.toLowerCase()=='textarea'){if(node.className.indexOf('x-form-textarea')!=-1){fields.push(new Ext.ux.form.TextArea(config));}}
return false;}}});return fields;};

Ext.ns('Ext.ux.form');Ext.ux.form.Field=Ext.extend(Ext.ux.Component,{focusClass:'x-form-focus',invalidText:'The value in this field is invalid',invalidClass:'x-form-invalid',validationEvent:'keyup',validateOnBlur:true,validationDelay:250,readOnly:false,msgTarget:'side',isFormField:true,useKeydown:Ext.isWebKit?(navigator.userAgent.match(/AppleWebKit\/(\d+)/)[1])>=525:!((Ext.isGecko&&!Ext.isWindows)||Ext.isOpera),initComponent:function(){Ext.ux.form.Field.superclass.initComponent.call(this);this.addEvents('focus','blur','specialkey','change','invalid','valid');},afterRender:function(){Ext.ux.form.Field.superclass.afterRender.call(this);this.initField();this.initEvents();this.initValue();},initField:function(){this.wrap=this.el.parent('.x-form-element');var target;if(this.el){if(Ext.isDefined(this.el.getAttribute('value'))){this.setRawValue(this.el.getAttribute('value'));}
if((target=this.el.getAttribute('msgTarget','ti'))){Ext.apply(this,{msgTarget:target});}
if(this.el.parent('.x-form-item').hasClass('x-hidden')){this.hidden=true;}}},initEvents:function(){this.el.on(this.useKeydown?'keydown':'keypress',this.fireKey,this);this.el.on('focus',this.onFocus,this);this.el.on('blur',this.onBlur,this,{buffer:10});},initValue:function(){if(this.value!==undefined){this.setValue(this.value);}else if(!Ext.isEmpty(this.el.dom.value)&&this.el.dom.value!=this.emptyText){this.setValue(this.el.dom.value);}
this.originalValue=this.getValue();},getName:function(){return this.el.dom.name?this.el.dom.name:this.name||this.id||'';},fireKey:function(e){if(this.isSpecialKey(e)){this.fireEvent('specialkey',this,e);}},reset:function(){this.setValue(this.originalValue);this.clearInvalid();},isSpecialKey:function(e){var k=e.normalizeKey(e.keyCode);return(e.type=='keypress'&&e.ctrlKey)||this.isNavKeyPress(e)||(k==8)||(k>=16&&k<=20)||(k>=44&&k<=46);},isNavKeyPress:function(e){var k=e.normalizeKey(e.keyCode);return(k>=33&&k<=40)||k==13||k==9||k==27;},preFocus:function(){},onFocus:function(){this.preFocus();if(this.focusClass){this.el.addClass(this.focusClass);}
if(!this.hasFocus){this.hasFocus=true;this.startValue=this.getValue();this.fireEvent('focus',this);}},beforeBlur:function(){},onBlur:function(){this.beforeBlur();if(this.focusClass){this.el.removeClass(this.focusClass);}
this.hasFocus=false;if(this.validationEvent!==false&&(this.validateOnBlur||this.validationEvent=='blur')){this.validate();}
var v=this.getValue();if(String(v)!==String(this.startValue)){this.fireEvent('change',this,v,this.startValue);}
this.fireEvent('blur',this);this.postBlur();},postBlur:function(){},isDirty:function(){if(this.disabled){return false;}
return String(this.getValue())!==String(this.originalValue);},getName:function(){return this.el.dom.name?this.el.dom.name:this.name||this.id||'';},getValue:function(){return this.el.dom.value;},setValue:function(val){this.el.dom.value=val;},markInvalid:function(msg){if(!this.preventMark){msg=msg||this.invalidText;var mt=this.getMessageHandler();if(mt){mt.mark(this,msg);}}
this.setActiveError(msg);},clearInvalid:function(){if(!this.preventMark){this.el.removeClass(this.invalidClass);var mt=this.getMessageHandler();if(mt){mt.clear(this);}}
this.unsetActiveError();},setActiveError:function(msg,suppressEvent){this.activeError=msg;if(suppressEvent!==true)this.fireEvent('invalid',this,msg);},unsetActiveError:function(suppressEvent){delete this.activeError;if(suppressEvent!==true)this.fireEvent('valid',this);},getErrorCt:function(){return null;},getMessageHandler:function(){return Ext.ux.form.MessageTargets[this.msgTarget];},isValid:function(preventMark){if(this.disabled){return true;}
var restore=this.preventMark;this.preventMark=preventMark===true;var v=this.validateValue(this.processValue(this.getRawValue()));this.preventMark=restore;return v;},validate:function(){if(this.disabled||this.validateValue(this.getRawValue())){this.clearInvalid();return true;}
return false;},processValue:function(value){return value;},getRawValue:function(){var v=this.el.getValue();if(v===this.emptyText){v='';}
return v;},setRawValue:function(v){return this.el.dom.value=(Ext.isEmpty(v)?'':v);},validateValue:function(value){var error=this.getErrors(value)[0];if(error==undefined){return true;}else{this.markInvalid(error);return false;}},getErrors:function(){return[];},getVisibilityEl:function(){return this.el.parent('.x-form-item');},setReadOnly:function(readOnly){this.el.dom.readOnly=readOnly;this.readOnly=readOnly;}});Ext.ux.form.MessageTargets={'qtip':{mark:function(field,msg){field.el.addClass(field.invalidClass);field.el.dom.qtip=msg;field.el.dom.qcls='x-form-invalid-tip';if(Ext.ux.QuickTips){Ext.ux.QuickTips.enable();}},clear:function(field){field.el.removeClass(field.invalidClass);field.el.dom.qtip='';field.el.dom.qcls='';}},'title':{mark:function(field,msg){field.el.addClass(field.invalidClass);var elp=field.getErrorCt();if(!elp){field.el.dom.title=msg;return;}
elp.dom.title=msg;elp.setVisible(true);},clear:function(field){var elp=field.getErrorCt();if(!elp){field.el.dom.title="";return;}
elp.setVisible(false);}},'over':{mark:function(field,msg){var elp=field.getErrorCt();field.el.addClass(field.invalidClass);if(!field.tip){field.tip=new Ext.ux.ToolTip({target:field.el,anchor:'bottom',trackMouse:false,html:msg,cls:'x-form-invalid-tip',autoHide:false,listeners:{'beforeshow':function(){return!field.hidden&&field.el.hasClass(field.invalidClass);},'show':function(){var ttw=this.getWidth();var fw=field.el.getWidth();var w=(field.el.getWidth()/2)-(ttw/2);this.mouseOffset=[w,0];this.anchorOffset=(ttw/2)-20;this.maxWidth=fw;this.setPagePosition(this.getTargetXY());if(this.anchor&&this.anchorEl.isVisible()){this.syncAnchor();}}}});}
if(field.tip.rendered){field.tip.update(msg);}
field.on('hide',field.tip.hide,field.tip);Ext.ux.EventManager.onWindowResize(field.tip.show,field.tip);field.tip.show();},clear:function(field){field.el.removeClass(field.invalidClass);if(field.tip){field.tip.hide();}}},'under':{mark:function(field,msg){var elp=field.getErrorCt();field.el.addClass(field.invalidClass);if(!field.tip){field.tip=new Ext.ux.ToolTip({target:field.el,anchor:'top',trackMouse:false,html:msg,cls:'x-form-invalid-tip',autoHide:false,listeners:{'beforeshow':function(){return!field.hidden&&field.el.hasClass(field.invalidClass);},'show':function(){var ttw=this.getWidth();var fw=field.el.getWidth();var w=(field.el.getWidth()/2)-(ttw/2);this.mouseOffset=[w,0];this.anchorOffset=(ttw/2)-20;this.maxWidth=fw;this.setPagePosition(this.getTargetXY());if(this.anchor&&this.anchorEl.isVisible()){this.syncAnchor();}}}});}
if(field.tip.rendered){field.tip.update(msg);}
field.on('hide',field.tip.hide,field.tip);Ext.ux.EventManager.onWindowResize(field.tip.show,field.tip);field.tip.show();},clear:function(field){field.el.removeClass(field.invalidClass);if(field.tip){field.tip.hide();}}},'right':{mark:function(field,msg){var elp=field.getErrorCt();field.el.addClass(field.invalidClass);if(!field.tip){field.tip=new Ext.ux.ToolTip({target:field.el,anchor:'left',trackMouse:false,html:msg,cls:'x-form-invalid-tip',autoHide:false,maxWidth:300,listeners:{'beforeshow':function(){return!field.hidden&&field.el.hasClass(field.invalidClass);}}});}
if(field.tip.rendered){field.tip.update(msg);}
field.on('hide',field.tip.hide,field.tip);Ext.ux.EventManager.onWindowResize(field.tip.show,field.tip);field.tip.show();},clear:function(field){field.el.removeClass(field.invalidClass);if(field.tip){field.tip.hide();}}},'side':{mark:function(field,msg){field.el.addClass(field.invalidClass);var elp=field.getErrorCt();if(!elp){field.el.dom.title=msg;return;}
elp.dom.qtip=msg;elp.dom.qcls='x-form-invalid-tip';elp.setVisible(true);},clear:function(field){field.el.removeClass(field.invalidClass);var elp=field.getErrorCt();if(!elp){field.el.dom.title="";return;}
elp.setVisible(false);}}};

Ext.ux.form.TextField=Ext.extend(Ext.ux.form.Field,{emptyText:null,emptyClass:'x-form-empty-field',blankText:'This field is required',allowBlank:true,maskRe:null,minLength:0,maxLength:Number.MAX_VALUE,minLengthText:'The minimum length for this field is {0}',maxLengthText:'The maximum length for this field is {0}',initComponent:function(){Ext.ux.form.TextField.superclass.initComponent.call(this);this.addEvents('keydown','keyup','keypress');},initField:function(){Ext.ux.form.TextField.superclass.initField.call(this);if((target=this.el.getAttribute('emptyText','ti'))){Ext.apply(this,{emptyText:target});}
if((target=this.el.getAttribute('allowBlank','ti'))){Ext.apply(this,{allowBlank:eval(target)});}
if((target=this.el.getAttribute('blankText','ti'))){Ext.apply(this,{blankText:target});}
if((target=this.el.getAttribute('maskRe','ti'))){Ext.apply(this,{maskRe:new RegExp(target)});}
if((target=this.el.getAttribute('minLength','ti'))){Ext.apply(this,{minLength:parseInt(target)});}
if((target=this.el.getAttribute('minLengthText','ti'))){Ext.apply(this,{minLengthText:target});}
if((target=this.el.getAttribute('maxLength','ti'))){Ext.apply(this,{maxLength:parseInt(target)});}
if((target=this.el.getAttribute('maxLengthText','ti'))){Ext.apply(this,{maxLengthText:target});}
if((target=this.el.getAttribute('regex','ti'))){Ext.apply(this,{regex:new RegExp(target)});}
if((target=this.el.getAttribute('regexText','ti'))){Ext.apply(this,{regexText:target});}},initEvents:function(){Ext.ux.form.TextField.superclass.initEvents.call(this);this.validationTask=new Ext.util.DelayedTask(this.validate,this);this.el.on('keyup',this.filterValidation,this);if(this.emptyText){this.el.on('mousedown',this.onMouseDown,this);if(this.emptyText){this.applyEmptyText();}}
if(this.maskRe){this.el.on('keypress',this.filterKeys,this);}
this.el.on({keyup:this.onKeyUp,keydown:this.onKeyDown,keypress:this.onKeyPress,scope:this});},reset:function(){Ext.ux.form.TextField.superclass.reset.call(this);this.applyEmptyText();},getErrors:function(value){var errors=Ext.ux.form.TextField.superclass.getErrors.apply(this,arguments);value=value||this.getRawValue();if(value.length<1||value===this.emptyText){if(this.allowBlank){return errors;}else{errors.push(this.blankText);}}
if(!this.allowBlank&&(value.length<1||value===this.emptyText)){errors.push(this.blankText);}
if(value.length<this.minLength){errors.push(String.format(this.minLengthText,this.minLength));}
if(value.length>this.maxLength){errors.push(String.format(this.maxLengthText,this.maxLength));}
if(this.regex&&!this.regex.test(value)){errors.push(this.regexText);}
return errors;},applyEmptyText:function(){if(this.emptyText&&this.getRawValue().length<1&&!this.hasFocus){this.setRawValue(this.emptyText);this.el.addClass(this.emptyClass);}},preFocus:function(){var el=this.el;if(this.emptyText){if(el.dom.value==this.emptyText){this.setRawValue('');}
el.removeClass(this.emptyClass);}
if(this.selectOnFocus){el.dom.select();}},postBlur:function(){this.applyEmptyText();},setValue:function(v){if(this.emptyText&&this.el&&!Ext.isEmpty(v)){this.el.removeClass(this.emptyClass);}
Ext.ux.form.TextField.superclass.setValue.apply(this,arguments);this.applyEmptyText();return this;},getErrorCt:function(){if(!this.errIcon){this.errIcon=this.el.up('div').next('div.x-form-invalid-icon');}
return this.errIcon;},filterValidation:function(e){if(!this.isNavKeyPress(e)){this.validationTask.delay(this.validationDelay);}},filterKeys:function(e){if(e.ctrlKey){return;}
var k=e.getKey();if(Ext.isGecko&&(this.isNavKeyPress(e)||k==8||(k==46&&e.button==-1))){return;}
var cc=String.fromCharCode(e.getCharCode());if(!Ext.isGecko&&this.isSpecialKey(e)&&!cc){return;}
if(!this.maskRe.test(cc)){e.stopEvent();}},onMouseDown:function(e){if(!this.hasFocus){this.el.on('mouseup',function(){},this,{single:true,preventDefault:true});}},onKeyUp:function(e){this.fireEvent('keyup',this,e);},onKeyDown:function(e){this.fireEvent('keydown',this,e);},onKeyPress:function(e){this.fireEvent('keypress',this,e);}});

Ext.ux.form.NumberField=Ext.extend(Ext.ux.form.TextField,{fieldClass:"x-form-field x-form-num-field",allowDecimals:true,decimalSeparator:".",decimalPrecision:2,allowNegative:true,minValue:Number.NEGATIVE_INFINITY,maxValue:Number.MAX_VALUE,minText:"The minimum value for this field is {0}",maxText:"The maximum value for this field is {0}",nanText:"{0} is not a valid number",baseChars:"0123456789",initEvents:function(){var allowed=this.baseChars+'';if(this.allowDecimals){allowed+=this.decimalSeparator;}
if(this.allowNegative){allowed+='-';}
this.maskRe=new RegExp('['+allowed.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")+']');Ext.ux.form.NumberField.superclass.initEvents.call(this);},getErrors:function(value){var errors=Ext.ux.form.NumberField.superclass.getErrors.apply(this,arguments);value=value||this.getRawValue();if(value.length<1){return errors;}
value=String(value).replace(this.decimalSeparator,".");if(isNaN(value)){errors.push(String.format(this.nanText,value));}
var num=this.parseValue(value);if(num<this.minValue){errors.push(String.format(this.minText,this.minValue));}
if(num>this.maxValue){errors.push(String.format(this.maxText,this.maxValue));}
return errors;},getValue:function(){return this.fixPrecision(this.parseValue(Ext.ux.form.NumberField.superclass.getValue.call(this)));},setValue:function(v){v=Ext.isNumber(v)?v:parseFloat(String(v).replace(this.decimalSeparator,"."));v=isNaN(v)?'':String(v).replace(".",this.decimalSeparator);return Ext.ux.form.NumberField.superclass.setValue.call(this,v);},setMinValue:function(value){this.minValue=Ext.num(value,Number.NEGATIVE_INFINITY);},setMaxValue:function(value){this.maxValue=Ext.num(value,Number.MAX_VALUE);},parseValue:function(value){value=parseFloat(String(value).replace(this.decimalSeparator,"."));return isNaN(value)?'':value;},fixPrecision:function(value){var nan=isNaN(value);if(!this.allowDecimals||this.decimalPrecision==-1||nan||!value){return nan?'':value;}
return parseFloat(parseFloat(value).toFixed(this.decimalPrecision));},beforeBlur:function(){var v=this.parseValue(this.getRawValue());if(!Ext.isEmpty(v)){this.setValue(this.fixPrecision(v));}}});

Ext.ux.form.Checkbox=Ext.extend(Ext.ux.form.Field,{focusClass:undefined,checked:false,markInvalid:function(){},clearInvalid:function(){},initComponent:function(){Ext.ux.form.Checkbox.superclass.initComponent.call(this);this.addEvents('check');},initEvents:function(){Ext.ux.form.Checkbox.superclass.initEvents.call(this);this.el.on('click',this.onClick,this);this.el.on('change',this.onClick,this);},initValue:function(){this.checked=this.el.dom.checked;this.originalValue=this.getValue();},getValue:function(){return this.el.dom.checked;},onClick:function(e){if(this.el.dom.checked!=this.checked){this.setValue(this.el.dom.checked);}},setValue:function(v){var checked=this.checked;this.checked=(v===true||v==='true'||v=='1'||String(v).toLowerCase()=='on');this.el.dom.checked=this.checked;this.el.dom.defaultChecked=this.checked;if(checked!=this.checked){this.fireEvent('check',this,this.checked);}
return this;}});

Ext.ux.form.CheckboxGroup=Ext.extend(Ext.ux.form.Field,{allowBlank:true,blankText:"You must select at least one item in this group",defaultType:'checkbox',groupCls:'x-form-check-group',initComponent:function(){this.addEvents('change');this.on('change',this.validate,this);Ext.ux.form.CheckboxGroup.superclass.initComponent.call(this);},afterRender:function(){if(!this.items){this.initItems();}
Ext.ux.form.CheckboxGroup.superclass.afterRender.call(this);},initValue:function(){if(this.value){this.setValue.apply(this,this.value);delete this.value;}},initField:function(){Ext.ux.form.CheckboxGroup.superclass.initField.call(this);this.eachItem(function(item){item.on('check',this.fireChecked,this);item.inGroup=true;});},initItems:function(){this.items=new Ext.util.MixedCollection();var els=this.el.query('div.x-form-item input');Ext.each(els,function(item,index,len){this.items.add(new Ext.ux.form.Checkbox(item));},this);},fireChecked:function(){var arr=[];this.eachItem(function(item){if(item.checked){arr.push(item);}});this.fireEvent('change',this,arr);},getErrors:function(){var errors=Ext.ux.form.CheckboxGroup.superclass.getErrors.apply(this,arguments);if(!this.allowBlank){var blank=true;this.eachItem(function(f){if(f.checked){return(blank=false);}});if(blank)errors.push(this.blankText);}
return errors;},isDirty:function(){if(this.disabled){return false;}
var dirty=false;this.eachItem(function(item){if(item.isDirty()){dirty=true;return false;}});return dirty;},setReadOnly:function(readOnly){this.eachItem(function(item){item.setReadOnly(readOnly);});this.readOnly=readOnly;},onDisable:function(){this.eachItem(function(item){item.disable();});},onEnable:function(){this.eachItem(function(item){item.enable();});},getValue:function(){var out=[];this.eachItem(function(item){if(item.checked){out.push(item);}});return out;},setValue:function(){this.onSetValue.apply(this,arguments);return this;},onSetValue:function(id,value){if(arguments.length==1){if(Ext.isArray(id)){Ext.each(id,function(val,idx){if(Ext.isObject(val)&&val.setValue){val.setValue(true);if(this.resetOriginal===true){val.originalValue=val.getValue();}}else{var item=this.items.itemAt(idx);if(item){item.setValue(val);}}},this);}else if(Ext.isObject(id)){for(var i in id){var f=this.getBox(i);if(f){f.setValue(id[i]);}}}else{this.setValueForItem(id);}}else{var f=this.getBox(id);if(f){f.setValue(value);}}},setValueForItem:function(val){val=String(val).split(',');this.eachItem(function(item){if(val.indexOf(item.inputValue)>-1){item.setValue(true);}});},getBox:function(id){var box=null;this.eachItem(function(f){if(id==f||f.id==id||f.getName()==id){box=f;return false;}});return box;},reset:function(){if(this.originalValue){this.eachItem(function(c){if(c.setValue){c.setValue(false);c.originalValue=c.getValue();}});this.resetOriginal=true;this.setValue(this.originalValue);delete this.resetOriginal;}else{this.eachItem(function(c){if(c.reset){c.reset();}});}
(function(){this.clearInvalid();}).defer(50,this);},eachItem:function(fn,scope){if(this.items&&this.items.each){this.items.each(fn,scope||this);}},getRawValue:function(){},setRawValue:function(){}});

Ext.ux.form.Radio=Ext.extend(Ext.ux.form.Checkbox,{markInvalid:function(){},clearInvalid:function(){},onClick:function(evt,field,opts){if(this.el.dom.checked!=this.checked){var els=this.getCheckEl().select('input[name='+this.el.dom.name+']');els.each(function(el){if(el.dom.id==this.id){this.setValue(true);}else{var c=Ext.ux.ComponentMgr.get(el.dom.id);c.setValue(false);}},this);}},getGroupValue:function(){var p=this.el.up('form')||Ext.getBody();var c=p.child('input[name='+this.el.dom.name+']:checked',true);return c?c.value:null;},setValue:function(v){if(typeof v=='boolean'){Ext.ux.form.Radio.superclass.setValue.call(this,v);}else{var r=this.getCheckEl().child('input[name='+this.el.dom.name+'][value='+v+']',true);if(r){Ext.ux.ComponentMgr.get(r.id).setValue(true);}}
return this;},getCheckEl:function(){if(this.inGroup){return this.el.up('.x-form-radio-group');}
return this.el.up('form')||Ext.getBody();}});

Ext.ux.form.RadioGroup=Ext.extend(Ext.ux.form.CheckboxGroup,{allowBlank:true,blankText:'You must select one item in this group',defaultType:'radio',groupCls:'x-form-radio-group',initItems:function(){this.items=new Ext.util.MixedCollection();var els=this.el.query('div.x-form-item input');Ext.each(els,function(item,index,len){this.items.add(new Ext.ux.form.Radio(item));},this);},getValue:function(){var out=null;this.eachItem(function(item){if(item.checked){out=item;return false;}});return out;},onSetValue:function(id,value){if(arguments.length>1){var f=this.getBox(id);if(f){f.setValue(value);if(f.checked){this.eachItem(function(item){if(item!==f){item.setValue(false);}});}}}else{this.setValueForItem(id);}},setValueForItem:function(val){val=String(val).split(',')[0];this.eachItem(function(item){item.setValue(val==item.el.dom.value);});},fireChecked:function(){if(!this.checkTask){this.checkTask=new Ext.util.DelayedTask(this.bufferChecked,this);}
this.checkTask.delay(10);},bufferChecked:function(){var out=null;this.eachItem(function(item){if(item.checked){out=item;return false;}});this.fireEvent('change',this,out);}});

Ext.ux.form.TextArea=Ext.extend(Ext.ux.form.TextField,{enterIsSpecial:false,fireKey:function(e){if(this.isSpecialKey(e)&&(this.enterIsSpecial||(e.getKey()!=e.ENTER||e.hasModifier()))){this.fireEvent("specialkey",this,e);}}});

Ext.ux.form.DisplayField=Ext.extend(Ext.ux.form.Field,{validationEvent:false,validateOnBlur:false,fieldClass:"x-form-display-field",htmlEncode:false,initField:function(){this.htmlEncode=this.el.getAttribute('htmlEncode','ti')=='true';},initEvents:function(){},isValid:function(){return true;},validate:function(){return true;},getRawValue:function(){var v=this.el.dom.innerHTML;if(v===this.emptyText){v='';}
if(this.htmlEncode){v=Ext.util.Format.htmlDecode(v);}
return v;},getValue:function(){return this.getRawValue();},getName:function(){return this.name;},setRawValue:function(v){if(this.htmlEncode){v=Ext.util.Format.htmlEncode(v);}
return this.rendered?(this.el.dom.innerHTML=(Ext.isEmpty(v)?'':v)):(this.value=v);},setValue:function(v){this.setRawValue(v);return this;},onRender:function(el){if(this.el){this.htmlEncode=this.el.getAttribute('htmlEncode','ti');}
Ext.ux.form.TextField.superclass.onRender.call(this,el);}});

Ext.ux.form.CompositeField=Ext.extend(Ext.ux.form.Field,{combineErrors:true,isComposite:true,afterRender:function(){if(!this.items){this.initItems();}
Ext.ux.form.CheckboxGroup.superclass.afterRender.call(this);},initComponent:function(){this.fieldErrors=new Ext.util.MixedCollection(true,function(item){return item.field;});this.fieldErrors.on({scope:this,add:this.updateInvalidMark,remove:this.updateInvalidMark,replace:this.updateInvalidMark});},initItems:function(){this.items=new Ext.util.MixedCollection();this.items.addAll(Ext.ux.form.Form.parse(this.el));if(this.combineErrors){this.eachItem(function(field){Ext.apply(field,{markInvalid:this.onFieldMarkInvalid.createDelegate(this,[field],0),clearInvalid:this.onFieldClearInvalid.createDelegate(this,[field],0)});});}},onFieldMarkInvalid:function(field,message){var name=field.getName(),error={field:name,error:message};this.fieldErrors.replace(name,error);field.el.addClass(field.invalidClass);},onFieldClearInvalid:function(field){this.fieldErrors.removeKey(field.getName());this.updateInvalidMark();field.el.removeClass(field.invalidClass);},updateInvalidMark:function(){var ieStrict=Ext.isIE6&&Ext.isStrict;if(this.fieldErrors.length==0){this.clearInvalid();if(ieStrict){this.clearInvalid.defer(50,this);}}else{var message=this.buildCombinedErrorMessage(this.fieldErrors.items);this.markInvalid(message);if(ieStrict){this.markInvalid(message);}}},validateValue:function(){var valid=true;this.eachItem(function(field){if(!field.isValid())valid=false;});return valid;},buildCombinedErrorMessage:function(errors){var combined=[],error
title=this.msgTarget.toLowerCase()=='title';for(var i=0,j=errors.length;i<j;i++){error=errors[i];if(title){combined.push(error.error);break;}
else{combined.push(String.format("{1}",error.field,error.error));}}
return combined.join(!title?"<br />":"");},reset:function(){this.eachItem(function(item){item.reset();});(function(){this.clearInvalid();}).defer(50,this);},clearInvalidChildren:function(){this.eachItem(function(item){item.clearInvalid();});},isDirty:function(){if(this.disabled){return false;}
var dirty=false;this.eachItem(function(item){if(item.isDirty()){dirty=true;return false;}});return dirty;},getErrorCt:function(){if(!this.errIcon){this.errIcon=this.el.up('div').next('div.x-form-invalid-icon');}
return this.errIcon;},eachItem:function(fn,scope){if(this.items&&this.items.each){this.items.each(fn,scope||this);}},setReadOnly:function(readOnly){readOnly=readOnly||true;if(this.rendered){this.eachItem(function(item){item.setReadOnly(readOnly);});}
this.readOnly=readOnly;},onDisable:function(){this.eachItem(function(item){item.disable();});},onEnable:function(){this.eachItem(function(item){item.enable();});}});

Ext.ux.form.ComboBox=Ext.extend(Ext.ux.form.Field,{defaultValue:null,defaultText:'This field is required',defaultClass:'x-form-combo-default',expanded:false,selectedIndex:-1,initComponent:function(){this.addEvents('expand','collapse','select');Ext.ux.form.ComboBox.superclass.initComponent.call(this);},initEvents:function(){Ext.ux.form.ComboBox.superclass.initEvents.call(this);this.el.on('change',this.onSelect,this);this.keyNav=new Ext.ux.KeyNav(this.el,{"up":function(e){if((this.el.dom.selectedIndex-1)>=0){this.selectedIndex=this.el.dom.selectedIndex-1;this.fireEvent('select',this,this.el.dom.options[this.selectedIndex].value,this.selectedIndex);}},"down":function(e){if((this.el.dom.selectedIndex+1)<this.el.dom.options.length){this.selectedIndex=this.el.dom.selectedIndex+1;this.fireEvent('select',this,this.el.dom.options[this.selectedIndex].value,this.selectedIndex);}},scope:this,doRelay:function(e,h,hname){if(hname=='down'||this.scope.isExpanded()){var relay=Ext.ux.KeyNav.prototype.doRelay.apply(this,arguments);if(!Ext.isIE&&this.useKeydown){this.scope.fireKey(e);}
return relay;}
return true;},forceKeyDown:true,defaultEventAction:'stopEvent'});},initField:function(){Ext.ux.form.ComboBox.superclass.initField.call(this);var target;if((target=this.el.getAttribute('defaultvalue','ti'))){Ext.apply(this,{defaultValue:target});this.applyDefaultValue();}
if((target=this.el.getAttribute('defaultText','ti'))){Ext.apply(this,{defaultText:target});}},onSelect:function(evt){var idx=this.el.dom.selectedIndex;this.selectedIndex=idx;this.validate();this.fireEvent('select',this,this.el.dom.options[idx].value,idx);},preFocus:function(){var el=this.el;if(this.defaultValue!==null){el.removeClass(this.defaultClass);}
if(this.selectOnFocus){el.dom.select();}},isExpanded:function(){return this.expanded;},beforeBlur:function(){this.expanded=false;},postBlur:function(){this.applyDefaultValue();},applyDefaultValue:function(){if(this.defaultValue!==null&&(this.getValue()==this.defaultValue)&&!this.hasFocus){this.setRawValue(this.defaultValue);this.el.addClass(this.defaultClass);}},getValue:function(){return this.el.dom.options[this.el.dom.selectedIndex].value;},setValue:function(val){this.setValueForItem(val);},setValueForItem:function(val){val=String(val).split(',')[0];this.eachItem(function(item,index){if(item.dom.value==val){this.el.dom.selectedIndex=index;}});},eachItem:function(fn,scope){if(this.items&&this.items.each){this.items.each(fn,scope||this);}},getErrorCt:function(){if(!this.errIcon){this.errIcon=this.el.up('div').next('div.x-form-invalid-icon');}
return this.errIcon;},reset:function(){Ext.ux.form.ComboBox.superclass.reset.call(this);this.applyDefaultValue();},getErrors:function(value){var errors=Ext.ux.form.ComboBox.superclass.getErrors.apply(this,arguments);if(this.defaultValue!==null){if(this.getValue()==this.defaultValue){errors.push(this.defaultText);}}
return errors;}});

Ext.ux.Button=Ext.extend(Ext.util.Observable,{hidden:false,disabled:false,constructor:function(config){Ext.apply(this,config);this.addEvents('click','mouseover','mouseout');if(this.applyTo){this.wrap=Ext.get(config.applyTo);this.el=Ext.get(this.wrap.query('button')[0]||this.wrap.query('input')[0]);delete this.applyTo;}
this.getId();Ext.ux.ComponentMgr.register(this);Ext.ux.Button.superclass.constructor.call(this);this.initButton();},initButton:function(el){var INTERNAL="tbuttonint";this.wrap.hover(function(){Ext.fly(this,INTERNAL).addClass('x-btn-over');},function(){Ext.fly(this,INTERNAL).removeClass('x-btn-over');});var dom=this.wrap.dom;this.wrap.on("mousedown",function(){Ext.fly(dom,INTERNAL).addClass('x-btn-click');var d=Ext.get(document),fn=function(){Ext.fly(dom,INTERNAL).removeClass('x-btn-click');d.removeListener("mouseup",fn);};d.on("mouseup",fn);});this.el.on('click',this.onClick,this);this.el.on('mouseover',this.onMouseOver,this);this.el.on('mouseout',this.onMouseOut,this);},onClick:function(e){this.fireEvent('click',this,e);},onMouseOver:function(e){this.fireEvent('mouseover',this,e);},onMouseOut:function(e){this.fireEvent('mouseout',this,e);},disable:function(){this.disabled=true;this.wrap.addClass('x-btn-disabled');this.el.dom.disabled=true;},enable:function(){this.disabled=true;this.wrap.removeClass('x-btn-disabled');this.el.dom.disabled=false;},setDisabled:function(flag){this[flag?'disable':'enable']();},getId:function(){if(!this.id){this.id=this.el.dom.id;}
return this.id||(this.id='x-btn-'+(++Ext.ux.Button.AUTO_ID));},show:function(){this.hidden=false;this.onShow();return this;},onShow:function(){this.wrap.removeClass('x-hide-display');},hide:function(){this.doHide();return this;},doHide:function(){this.hidden=true;this.onHide();},onHide:function(){this.wrap.addClass('x-hide-display');}});Ext.ux.Button.AUTO_ID=1000;

Ext.ns('Ext.ux.form');Ext.ux.form.FormMgr=function(){return{init:function(autoLoad){if(!Ext.isReady){Ext.onReady(function(){Ext.ux.form.FormMgr.init(autoLoad);});return;}
if(autoLoad!==false){Ext.ux.form.Form.parse(Ext.get(document.body));}}};}();

