forked from kyr0/extjs4spreadsheet-gpl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathux-all.js
8 lines (8 loc) · 97.6 KB
/
ux-all.js
1
2
3
4
5
6
7
8
Ext.define("Ext.ux.BoxReorderer",{mixins:{observable:"Ext.util.Observable"},itemSelector:".x-box-item",animate:100,constructor:function(){this.addEvents("StartDrag","Drag","ChangeIndex","Drop");this.mixins.observable.constructor.apply(this,arguments)},init:function(a){var b=this;b.container=a;b.animatePolicy={};b.animatePolicy[a.getLayout().names.x]=true;b.container.on({scope:b,boxready:b.afterFirstLayout,destroy:b.onContainerDestroy})},onContainerDestroy:function(){if(this.dd){this.dd.unreg()}},afterFirstLayout:function(){var c=this,b=c.container.getLayout(),d=b.names,a;a=c.dd=Ext.create("Ext.dd.DD",b.innerCt,c.container.id+"-reorderer");Ext.apply(a,{animate:c.animate,reorderer:c,container:c.container,getDragCmp:this.getDragCmp,clickValidator:Ext.Function.createInterceptor(a.clickValidator,c.clickValidator,c,false),onMouseDown:c.onMouseDown,startDrag:c.startDrag,onDrag:c.onDrag,endDrag:c.endDrag,getNewIndex:c.getNewIndex,doSwap:c.doSwap,findReorderable:c.findReorderable});a.dim=d.width;a.startAttr=d.left;a.endAttr=d.right},getDragCmp:function(a){return this.container.getChildByElement(a.getTarget(this.itemSelector,10))},clickValidator:function(b){var a=this.getDragCmp(b);return !!(a&&a.reorderable!==false)},onMouseDown:function(g){var f=this,a=f.container,d,b,c;f.dragCmp=f.getDragCmp(g);if(f.dragCmp){b=f.dragCmp.getEl();f.startIndex=f.curIndex=a.items.indexOf(f.dragCmp);c=b.getPageBox();f.lastPos=c[this.startAttr];d=a.el.getPageBox();if(f.dim==="width"){f.minX=d.left;f.maxX=d.right-c.width;f.minY=f.maxY=c.top;f.deltaX=g.getPageX()-c.left}else{f.minY=d.top;f.maxY=d.bottom-c.height;f.minX=f.maxX=c.left;f.deltaY=g.getPageY()-c.top}f.constrainY=f.constrainX=true}},startDrag:function(){var b=this,a=b.dragCmp;if(a){a.setPosition=Ext.emptyFn;a.animate=false;if(b.animate){b.container.getLayout().animatePolicy=b.reorderer.animatePolicy}b.dragElId=a.getEl().id;b.reorderer.fireEvent("StartDrag",b,b.container,a,b.curIndex);a.suspendEvents();a.disabled=true;a.el.setStyle("zIndex",100)}else{b.dragElId=null}},findReorderable:function(c){var d=this,a=d.container.items,b;if(a.getAt(c).reorderable===false){b=a.getAt(c);if(c>d.startIndex){while(b&&b.reorderable===false){c++;b=a.getAt(c)}}else{while(b&&b.reorderable===false){c--;b=a.getAt(c)}}}c=Math.min(Math.max(c,0),a.getCount()-1);if(a.getAt(c).reorderable===false){return -1}return c},doSwap:function(g){var d=this,c=d.container.items,a=d.container,b=d.container._isLayoutRoot,e,f,i,h;g=d.findReorderable(g);if(g===-1){return}d.reorderer.fireEvent("ChangeIndex",d,a,d.dragCmp,d.startIndex,g);e=c.getAt(d.curIndex);f=c.getAt(g);c.remove(e);i=Math.min(Math.max(g,0),c.getCount()-1);c.insert(i,e);c.remove(f);c.insert(d.curIndex,f);a._isLayoutRoot=true;a.updateLayout();a._isLayoutRoot=b;d.curIndex=g},onDrag:function(c){var b=this,a;a=b.getNewIndex(c.getPoint());if((a!==undefined)){b.reorderer.fireEvent("Drag",b,b.container,b.dragCmp,b.startIndex,b.curIndex);b.doSwap(a)}},endDrag:function(d){if(d){d.stopEvent()}var c=this,b=c.container.getLayout(),a;if(c.dragCmp){delete c.dragElId;delete c.dragCmp.setPosition;c.dragCmp.animate=true;c.dragCmp.lastBox[b.names.x]=c.dragCmp.getPosition(true)[b.names.widthIndex];c.container._isLayoutRoot=true;c.container.updateLayout();c.container._isLayoutRoot=undefined;a=Ext.fx.Manager.getFxQueue(c.dragCmp.el.id)[0];if(a){a.on({afteranimate:c.reorderer.afterBoxReflow,scope:c})}else{Ext.Function.defer(c.reorderer.afterBoxReflow,1,c)}if(c.animate){delete b.animatePolicy}c.reorderer.fireEvent("drop",c,c.container,c.dragCmp,c.startIndex,c.curIndex)}},afterBoxReflow:function(){var a=this;a.dragCmp.el.setStyle("zIndex","");a.dragCmp.disabled=false;a.dragCmp.resumeEvents()},getNewIndex:function(h){var g=this,a=g.getDragEl(),b=Ext.fly(a).getPageBox(),l,f,k,d=0,c=g.container.items.items,e=c.length,j=g.lastPos;g.lastPos=b[g.startAttr];for(;d<e;d++){l=c[d].getEl();if(l.is(g.reorderer.itemSelector)){f=l.getPageBox();k=f[g.startAttr]+(f[g.dim]>>1);if(d<g.curIndex){if((b[g.startAttr]<j)&&(b[g.startAttr]<(k-5))){return d}}else{if(d>g.curIndex){if((b[g.startAttr]>j)&&(b[g.endAttr]>(k+5))){return d}}}}}}});Ext.define("Ext.ux.CheckColumn",{extend:"Ext.grid.column.Column",alias:"widget.checkcolumn",stopSelection:true,tdCls:Ext.baseCSSPrefix+"grid-cell-checkcolumn",constructor:function(){this.addEvents("beforecheckchange","checkchange");this.callParent(arguments)},processEvent:function(g,i,m,b,h,d,c,n){var f=this,l=g==="keydown"&&d.getKey(),a=g=="mousedown";if(a||(l==d.ENTER||l==d.SPACE)){var j=f.dataIndex,k=!c.get(j);if(f.fireEvent("beforecheckchange",f,b,k)!==false){c.set(j,k);f.fireEvent("checkchange",f,b,k);if(a){d.stopEvent()}if(!f.stopSelection){i.selModel.selectByPosition({row:b,column:h})}return false}else{return !f.stopSelection}}else{return f.callParent(arguments)}},renderer:function(b){var c=Ext.baseCSSPrefix,a=[c+"grid-checkheader"];if(b){a.push(c+"grid-checkheader-checked")}return'<div class="'+a.join(" ")+'"> </div>'}});Ext.define("Ext.ux.DataView.Animated",{defaults:{duration:750,idProperty:"id"},constructor:function(a){Ext.apply(this,a||{},this.defaults)},init:function(a){this.dataview=a;var c=this.idProperty,b=a.store;a.blockRefresh=true;a.updateIndexes=Ext.Function.createSequence(a.updateIndexes,function(){this.getTargetEl().select(this.itemSelector).each(function(f,g,e){f.id=f.dom.id=Ext.util.Format.format("{0}-{1}",a.id,b.getAt(e).internalId)},this)},a);this.dataviewID=a.id;this.cachedStoreData={};this.cacheStoreData(b.data||b.snapshot);a.on("resize",function(){var e=a.store;if(e.getCount()>0){}},this);a.store.on("datachanged",d,this);function d(n){var l=a.getTargetEl(),h=n.getAt(0),p=this.getAdded(n),x=this.getRemoved(n),i=this.getRemaining(n),u=Ext.apply({},i,p);Ext.each(x,function(C){var D=this.dataviewID+"-"+C.internalId;Ext.fly(D).animate({remove:false,duration:e,opacity:0,useDisplay:true,callback:function(){Ext.fly(D).setDisplayed(false)}})},this);if(h==undefined){this.cacheStoreData(n);return}this.cacheStoreData(n);var g=Ext.get(this.dataviewID+"-"+h.internalId);if(!g){a.refresh();return true}var z=n.getCount(),k=g.getMargin("lr")+g.getWidth(),v=g.getMargin("bt")+g.getHeight(),r=l.getWidth(),f=Math.floor(r/k),q=Math.ceil(z/f),A=Math.ceil(this.getExistingCount()/f);var j={},B={},s={};Ext.iterate(i,function(E,D){var E=D.internalId,C=s[E]=Ext.get(this.dataviewID+"-"+E);j[E]={top:C.getTop()-l.getTop()-C.getMargin("t")-l.getPadding("t"),left:C.getLeft()-l.getLeft()-C.getMargin("l")-l.getPadding("l")}},this);l.applyStyles({display:"block",position:"relative"});Ext.iterate(i,function(F,E){var C=j[F],D=s[F];if(D.getStyle("position")!="absolute"){s[F].applyStyles({position:"absolute",left:C.left+"px",top:C.top+"px"})}});var o=0;Ext.iterate(n.data.items,function(E){var I=E.internalId,D=s[I];var C=o%f,H=Math.floor(o/f),G=H*v,F=C*k;B[I]={top:G,left:F};o++},this);var t=new Date(),e=this.duration,m=this.dataviewID;var y=function(){var L=new Date()-t,N=L/e,C;if(N>=1){for(C in B){Ext.fly(m+"-"+C).applyStyles({top:B[C].top+"px",left:B[C].left+"px"})}Ext.TaskManager.stop(w)}else{for(C in B){if(!i[C]){continue}var F=j[C],I=B[C],G=F.top,J=I.top,E=F.left,K=I.left,H=N*Math.abs(G-J),M=N*Math.abs(E-K),O=G>J?G-H:G+H,D=E>K?E-M:E+M;Ext.fly(m+"-"+C).applyStyles({top:O+"px",left:D+"px"}).setDisplayed(true)}}};var w={run:y,interval:20,scope:this};Ext.TaskManager.start(w);Ext.iterate(p,function(D,C){Ext.fly(this.dataviewID+"-"+C.internalId).applyStyles({top:B[C.internalId].top+"px",left:B[C.internalId].left+"px"}).setDisplayed(true);Ext.fly(this.dataviewID+"-"+C.internalId).animate({remove:false,duration:e,opacity:1})},this);this.cacheStoreData(n)}},cacheStoreData:function(a){this.cachedStoreData={};a.each(function(b){this.cachedStoreData[b.internalId]=b},this)},getExisting:function(){return this.cachedStoreData},getExistingCount:function(){var c=0,b=this.getExisting();for(var a in b){c++}return c},getAdded:function(a){var b={};a.each(function(c){if(this.cachedStoreData[c.internalId]==undefined){b[c.internalId]=c}},this);return b},getRemoved:function(a){var b=[],c;for(c in this.cachedStoreData){if(a.findBy(function(d){return d.internalId==c})==-1){b.push(this.cachedStoreData[c])}}return b},getRemaining:function(a){var b={};a.each(function(c){if(this.cachedStoreData[c.internalId]!=undefined){b[c.internalId]=c}},this);return b}});Ext.define("Ext.ux.DataView.DragSelector",{requires:["Ext.dd.DragTracker","Ext.util.Region"],init:function(a){this.dataview=a;a.mon(a,{beforecontainerclick:this.cancelClick,scope:this,render:{fn:this.onRender,scope:this,single:true}})},onRender:function(){this.tracker=Ext.create("Ext.dd.DragTracker",{dataview:this.dataview,el:this.dataview.el,dragSelector:this,onBeforeStart:this.onBeforeStart,onStart:this.onStart,onDrag:this.onDrag,onEnd:this.onEnd});this.dragRegion=Ext.create("Ext.util.Region")},onBeforeStart:function(a){return a.target==this.dataview.getEl().dom},onStart:function(b){var c=this.dragSelector,a=this.dataview;this.dragging=true;c.fillRegions();c.getProxy().show();a.getSelectionModel().deselectAll()},cancelClick:function(){return !this.tracker.dragging},onDrag:function(l){var b=this.dragSelector,k=b.dataview.getSelectionModel(),q=b.dragRegion,p=b.bodyRegion,n=b.getProxy(),g=b.regions,c=g.length,m=this.startXY,s=this.getXY(),f=Math.min(m[0],s[0]),d=Math.min(m[1],s[1]),a=Math.abs(m[0]-s[0]),r=Math.abs(m[1]-s[1]),o,h,j;Ext.apply(q,{top:d,left:f,right:f+a,bottom:d+r});q.constrainTo(p);n.setRegion(q);for(j=0;j<c;j++){o=g[j];h=q.intersect(o);if(h){k.select(j,true)}else{k.deselect(j)}}},onEnd:Ext.Function.createDelayed(function(c){var a=this.dataview,b=a.getSelectionModel(),d=this.dragSelector;this.dragging=false;d.getProxy().hide()},1),getProxy:function(){if(!this.proxy){this.proxy=this.dataview.getEl().createChild({tag:"div",cls:"x-view-selector"})}return this.proxy},fillRegions:function(){var a=this.dataview,b=this.regions=[];a.all.each(function(c){b.push(c.getRegion())});this.bodyRegion=a.getEl().getRegion()}});Ext.define("Ext.ux.DataView.Draggable",{requires:"Ext.dd.DragZone",ghostCls:"x-dataview-draggable-ghost",ghostTpl:['<tpl for=".">',"{title}","</tpl>"],init:function(a,b){this.dataview=a;a.on("render",this.onRender,this);Ext.apply(this,{itemSelector:a.itemSelector,ghostConfig:{}},b||{});Ext.applyIf(this.ghostConfig,{itemSelector:"img",cls:this.ghostCls,tpl:this.ghostTpl})},onRender:function(){var a=Ext.apply({},this.ddConfig||{},{dvDraggable:this,dataview:this.dataview,getDragData:this.getDragData,getTreeNode:this.getTreeNode,afterRepair:this.afterRepair,getRepairXY:this.getRepairXY});this.dragZone=Ext.create("Ext.dd.DragZone",this.dataview.getEl(),a)},getDragData:function(h){var a=this.dvDraggable,b=this.dataview,c=b.getSelectionModel(),g=h.getTarget(a.itemSelector),d,f;if(g){if(!b.isSelected(g)){c.select(b.getRecord(g))}d=b.getSelectedNodes();f={copy:true,nodes:d,records:c.getSelection(),item:true};if(d.length==1){f.single=true;f.ddel=g}else{f.multi=true;f.ddel=a.prepareGhost(c.getSelection()).dom}return f}return false},getTreeNode:function(){},afterRepair:function(){this.dragging=false;var a=this.dragData.nodes,c=a.length,b;for(b=0;b<c;b++){Ext.get(a[b]).frame("#8db2e3",1)}},getRepairXY:function(c){if(this.dragData.multi){return false}else{var a=Ext.get(this.dragData.ddel),b=a.getXY();b[0]+=a.getPadding("t")+a.getMargin("t");b[1]+=a.getPadding("l")+a.getMargin("l");return b}},prepareGhost:function(b){var c=this.createGhost(b),a=c.store;a.removeAll();a.add(b);return c.getEl()},createGhost:function(b){if(!this.ghost){var a=Ext.apply({},this.ghostConfig,{store:Ext.create("Ext.data.Store",{model:b[0].modelName})});this.ghost=Ext.create("Ext.view.View",a);this.ghost.render(document.createElement("div"))}return this.ghost}});Ext.define("Ext.ux.DataView.LabelEditor",{extend:"Ext.Editor",alignment:"tl-tl",completeOnEnter:true,cancelOnEsc:true,shim:false,autoSize:{width:"boundEl",height:"field"},labelSelector:"x-editable",requires:["Ext.form.field.Text"],constructor:function(a){a.field=a.field||Ext.create("Ext.form.field.Text",{allowBlank:false,selectOnFocus:true});this.callParent([a])},init:function(a){this.view=a;this.mon(a,"render",this.bindEvents,this);this.on("complete",this.onSave,this)},bindEvents:function(){this.mon(this.view.getEl(),{click:{fn:this.onClick,scope:this}})},onClick:function(f,d){var c=this,b,a;if(Ext.fly(d).hasCls(c.labelSelector)&&!c.editing&&!f.ctrlKey&&!f.shiftKey){f.stopEvent();b=c.view.findItemByChild(d);a=c.view.store.getAt(c.view.indexOf(b));c.startEdit(d,a.data[c.dataIndex]);c.activeRecord=a}else{if(c.editing){c.field.blur();f.preventDefault()}}},onSave:function(a,b){this.activeRecord.set(this.dataIndex,b)}});Ext.ux.DataViewTransition=Ext.extend(Object,{defaults:{duration:750,idProperty:"id"},constructor:function(a){Ext.apply(this,a||{},this.defaults)},init:function(a){this.dataview=a;var b=this.idProperty;a.blockRefresh=true;a.updateIndexes=Ext.Function.createSequence(a.updateIndexes,function(){this.getTargetEl().select(this.itemSelector).each(function(d,e,c){d.id=d.dom.id=Ext.util.Format.format("{0}-{1}",a.id,a.store.getAt(c).get(b))},this)},a);this.dataviewID=a.id;this.cachedStoreData={};this.cacheStoreData(a.store.snapshot);a.store.on("datachanged",function(m){var j=a.getTargetEl(),f=m.getAt(0),p=this.getAdded(m),y=this.getRemoved(m),g=this.getRemaining(m),u=Ext.apply({},g,p);Ext.each(y,function(k){Ext.fly(this.dataviewID+"-"+k.get(this.idProperty)).animate({remove:false,duration:c,opacity:0,useDisplay:true})},this);if(f==undefined){this.cacheStoreData(m);return}var e=Ext.get(this.dataviewID+"-"+f.get(this.idProperty));var A=m.getCount(),i=e.getMargin("lr")+e.getWidth(),v=e.getMargin("bt")+e.getHeight(),r=j.getWidth(),d=Math.floor(r/i),q=Math.ceil(A/d),B=Math.ceil(this.getExistingCount()/d);j.applyStyles({display:"block",position:"relative"});var h={},C={},s={};Ext.iterate(g,function(E,D){var E=D.get(this.idProperty),k=s[E]=Ext.get(this.dataviewID+"-"+E);h[E]={top:k.getTop()-j.getTop()-k.getMargin("t")-j.getPadding("t"),left:k.getLeft()-j.getLeft()-k.getMargin("l")-j.getPadding("l")}},this);Ext.iterate(g,function(F,E){var k=h[F],D=s[F];if(D.getStyle("position")!="absolute"){s[F].applyStyles({position:"absolute",left:k.left+"px",top:k.top+"px",width:D.getWidth(!Ext.isIE||Ext.isStrict),height:D.getHeight(!Ext.isIE||Ext.isStrict)})}});var o=0;Ext.iterate(m.data.items,function(E){var I=E.get(b),D=s[I];var k=o%d,H=Math.floor(o/d),G=H*v,F=k*i;C[I]={top:G,left:F};o++},this);var t=new Date(),c=this.duration,l=this.dataviewID;var z=function(){var L=new Date()-t,N=L/c;if(N>=1){for(var k in C){Ext.fly(l+"-"+k).applyStyles({top:C[k].top+"px",left:C[k].left+"px"})}Ext.TaskManager.stop(x)}else{for(var k in C){if(!g[k]){continue}var F=h[k],I=C[k],G=F.top,J=I.top,E=F.left,K=I.left,H=N*Math.abs(G-J),M=N*Math.abs(E-K),O=G>J?G-H:G+H,D=E>K?E-M:E+M;Ext.fly(l+"-"+k).applyStyles({top:O+"px",left:D+"px"})}}};var x={run:z,interval:20,scope:this};Ext.TaskManager.start(x);var n=0;for(var w in p){n++}if(Ext.global.console&&Ext.global.console.log){Ext.global.console.log("added:",n)}Ext.iterate(p,function(D,k){Ext.fly(this.dataviewID+"-"+k.get(this.idProperty)).applyStyles({top:C[k.get(this.idProperty)].top+"px",left:C[k.get(this.idProperty)].left+"px"});Ext.fly(this.dataviewID+"-"+k.get(this.idProperty)).animate({remove:false,duration:c,opacity:1})},this);this.cacheStoreData(m)},this)},cacheStoreData:function(a){this.cachedStoreData={};a.each(function(b){this.cachedStoreData[b.get(this.idProperty)]=b},this)},getExisting:function(){return this.cachedStoreData},getExistingCount:function(){var c=0,b=this.getExisting();for(var a in b){c++}return c},getAdded:function(a){var b={};a.each(function(c){if(this.cachedStoreData[c.get(this.idProperty)]==undefined){b[c.get(this.idProperty)]=c}},this);return b},getRemoved:function(a){var b=[];for(var c in this.cachedStoreData){if(a.findExact(this.idProperty,Number(c))==-1){b.push(this.cachedStoreData[c])}}return b},getRemaining:function(a){var b={};a.each(function(c){if(this.cachedStoreData[c.get(this.idProperty)]!=undefined){b[c.get(this.idProperty)]=c}},this);return b}});Ext.define("Ext.ux.FieldReplicator",{singleton:true,init:function(a){if(!a.replicatorId){a.replicatorId=Ext.id()}a.on("blur",this.onBlur,this)},onBlur:function(e){var b=e.ownerCt,d=e.replicatorId,g=Ext.isEmpty(e.getRawValue()),f=b.query("[replicatorId="+d+"]"),c=f[f.length-1]===e,h,a;if(g&&!c){Ext.Function.defer(e.destroy,10,e)}else{if(!g&&c){if(e.onReplicate){e.onReplicate()}h=e.cloneConfig({replicatorId:d});a=b.items.indexOf(e);b.add(a+1,h)}}}});Ext.define("Ext.ux.GMapPanel",{extend:"Ext.panel.Panel",alias:"widget.gmappanel",requires:["Ext.window.MessageBox"],initComponent:function(){Ext.applyIf(this,{plain:true,gmapType:"map",border:false});this.callParent()},afterFirstLayout:function(){var a=this.center;this.callParent();if(a){if(a.geoCodeAddr){this.lookupCode(a.geoCodeAddr,a.marker)}else{this.createMap(a)}}else{Ext.Error.raise("center is required")}},createMap:function(a,b){options=Ext.apply({},this.mapOptions);options=Ext.applyIf(options,{zoom:14,center:a,mapTypeId:google.maps.MapTypeId.HYBRID});this.gmap=new google.maps.Map(this.body.dom,options);if(b){this.addMarker(Ext.applyIf(b,{position:a}))}Ext.each(this.markers,this.addMarker,this)},addMarker:function(a){a=Ext.apply({map:this.gmap},a);if(!a.position){a.position=new google.maps.LatLng(a.lat,a.lng)}var b=new google.maps.Marker(a);Ext.Object.each(a.listeners,function(c,d){google.maps.event.addListener(b,c,d)});return b},lookupCode:function(b,a){this.geocoder=new google.maps.Geocoder();this.geocoder.geocode({address:b},Ext.Function.bind(this.onLookupComplete,this,[a],true))},onLookupComplete:function(c,b,a){if(b!="OK"){Ext.MessageBox.alert("Error",'An error occured: "'+b+'"');return}this.createMap(c[0].geometry.location,a)},afterComponentLayout:function(a,b){this.callParent(arguments);this.redraw()},redraw:function(){var a=this.gmap;if(a){google.maps.event.trigger(a,"resize")}}});Ext.define("Ext.ux.data.PagingMemoryProxy",{extend:"Ext.data.proxy.Memory",alias:"proxy.pagingmemory",alternateClassName:"Ext.data.PagingMemoryProxy",read:function(c,g,h){var d=this.getReader(),i=d.read(this.data),e,a,f,b;h=h||this;a=c.filters;if(a.length>0){b=[];Ext.each(i.records,function(j){var o=true,p=a.length,k;for(k=0;k<p;k++){var n=a[k],m=n.filterFn,l=n.scope;o=o&&m.call(l,j)}if(o){b.push(j)}},this);i.records=b;i.totalRecords=i.total=b.length}e=c.sorters;if(e.length>0){f=function(l,k){var j=e[0].sort(l,k),n=e.length,m;for(m=1;m<n;m++){j=j||e[m].sort.call(this,l,k)}return j};i.records.sort(f)}if(c.start!==undefined&&c.limit!==undefined){i.records=i.records.slice(c.start,c.start+c.limit);i.count=i.records.length}Ext.apply(c,{resultSet:i});c.setCompleted();c.setSuccessful();Ext.Function.defer(function(){Ext.callback(g,h,[c])},10)}});Ext.define("Ext.ux.GroupTabPanel",{extend:"Ext.Container",alias:"widget.grouptabpanel",requires:["Ext.data.*","Ext.tree.*","Ext.layout.*"],baseCls:Ext.baseCSSPrefix+"grouptabpanel",initComponent:function(a){var b=this;Ext.apply(b,a);b.store=b.createTreeStore();b.layout={type:"hbox",align:"stretch"};b.defaults={border:false};b.items=[{xtype:"treepanel",cls:"x-tree-panel x-grouptabbar",width:150,rootVisible:false,store:b.store,hideHeaders:true,animate:false,processEvent:Ext.emptyFn,viewConfig:{overItemCls:"",getRowClass:b.getRowClass,itemSelector:"div."+Ext.baseCSSPrefix+"grouptab-row",cellSelector:"div."+Ext.baseCSSPrefix+"grouptab",getTableChunker:function(){return Ext.ux.GroupTreeChunker},onHeaderResize:function(g,c,f){var e=this,d=e.el;if(d){d.select("div."+Ext.baseCSSPrefix+"grid-table-resizer").setWidth(e.headerCt.getFullWidth());if(!e.ignoreTemplate){e.setNewTemplate()}if(!f){e.el.focus()}e.forceReflow()}}},columns:[{xtype:"treecolumn",sortable:false,dataIndex:"text",flex:1,renderer:function(j,d,i,h,g,f,c){var e="";if(i.parentNode&&i.parentNode.parentNode===null){e+=" x-grouptab-first";if(i.previousSibling){e+=" x-grouptab-prev"}if(!i.get("expanded")||i.firstChild==null){e+=" x-grouptab-last"}}else{if(i.nextSibling===null){e+=" x-grouptab-last"}else{e+=" x-grouptab-center"}}if(i.data.activeTab){e+=" x-active-tab"}d.tdCls="x-grouptab"+e;return j}}]},{xtype:"container",flex:1,layout:"card",activeItem:b.mainItem,baseCls:Ext.baseCSSPrefix+"grouptabcontainer",items:b.cards}];b.addEvents("beforetabchange","tabchange","beforegroupchange","groupchange");b.callParent(arguments);b.setActiveTab(b.activeTab);b.setActiveGroup(b.activeGroup);b.mon(b.down("treepanel").getSelectionModel(),"select",b.onNodeSelect,b)},getRowClass:function(d,e,c,b){var a="";if(d.data.activeGroup){a+=" x-active-group"}return a},onNodeSelect:function(a,e){var d=this,b=d.store.getRootNode(),c;if(e.parentNode&&e.parentNode.parentNode===null){c=e}else{c=e.parentNode}if(d.setActiveGroup(c.get("id"))===false||d.setActiveTab(e.get("id"))===false){return false}while(b){b.set("activeTab",false);b.set("activeGroup",false);b=b.firstChild||b.nextSibling||b.parentNode.nextSibling}c.set("activeGroup",true);c.eachChild(function(f){f.set("activeGroup",true)});e.set("activeTab",true);a.view.refresh()},setActiveTab:function(b){var a=this,d=b,c;if(Ext.isString(b)){d=Ext.getCmp(d)}if(d===a.activeTab){return false}c=a.activeTab;if(a.fireEvent("beforetabchange",a,d,c)!==false){a.activeTab=d;if(a.rendered){a.down("container[baseCls="+Ext.baseCSSPrefix+"grouptabcontainer]").getLayout().setActiveItem(d)}a.fireEvent("tabchange",a,d,c)}return true},setActiveGroup:function(c){var b=this,d=c,a;if(Ext.isString(c)){d=Ext.getCmp(d)}if(d===b.activeGroup){return true}a=b.activeGroup;if(b.fireEvent("beforegroupchange",b,d,a)!==false){b.activeGroup=d;b.fireEvent("groupchange",b,d,a)}else{return false}return true},createTreeStore:function(){var b=this,a=b.prepareItems(b.items),c={text:".",children:[]},d=b.cards=[];b.activeGroup=b.activeGroup||0;Ext.each(a,function(g,e){var h=g.items.items,f=(h[g.mainItem]||h[0]),i={children:[]};i.id=f.id;i.text=f.title;i.iconCls=f.iconCls;i.expanded=true;i.activeGroup=(b.activeGroup===e);i.activeTab=i.activeGroup?true:false;if(i.activeTab){b.activeTab=i.id}if(i.activeGroup){b.mainItem=g.mainItem||0;b.activeGroup=i.id}Ext.each(h,function(j){if(j.id!==i.id){var k={id:j.id,leaf:true,text:j.title,iconCls:j.iconCls,activeGroup:i.activeGroup,activeTab:false};i.children.push(k)}delete j.title;delete j.iconCls;d.push(j)});c.children.push(i)});return Ext.create("Ext.data.TreeStore",{fields:["id","text","activeGroup","activeTab"],root:{expanded:true},proxy:{type:"memory",data:c}})},getActiveTab:function(){return this.activeTab},getActiveGroup:function(){return this.activeGroup}});Ext.define("Ext.ux.GroupTreeChunker",{singleton:true,requires:["Ext.XTemplate"],metaTableTpl:["{%if (this.openTableWrap)out.push(this.openTableWrap())%}",'<table class="'+Ext.baseCSSPrefix+'grid-table-resizer" border="0" cellspacing="0" cellpadding="0" {[this.embedFullWidth(values)]}><tr><td>',"{[this.openRows()]}","{row}","{[this.closeRows()]}","</td></tr><table>","{%if (this.closeTableWrap)out.push(this.closeTableWrap())%}"],constructor:function(){Ext.XTemplate.prototype.recurse=function(b,a){return this.apply(a?b[a]:b)}},embedFullWidth:function(b){var a='style="width:{fullWidth}px;';if(!b.rowCount){a+="height:1px;"}return a+'"'},openRows:function(){return'<tpl for="rows">'},closeRows:function(){return"</tpl>"},metaRowTpl:['<div class="'+Ext.baseCSSPrefix+'grouptab-row {[this.embedRowCls()]}" {[this.embedRowAttr()]}>','<tpl for="columns">','<div class="{cls} '+Ext.baseCSSPrefix+"grouptab-cell "+Ext.baseCSSPrefix+'grid-cell-{columnId} {{id}-modified} {{id}-tdCls} {[this.firstOrLastCls(xindex, xcount)]}" {{id}-tdAttr}>','<div {unselectableAttr} class="'+Ext.baseCSSPrefix+'grid-cell-inner {unselectableCls}" style="text-align: {align}; {{id}-style};">{{id}}</div>','<div class="x-grouptabs-corner x-grouptabs-corner-top-left" id="ext-gen25"></div>','<div class="x-grouptabs-corner x-grouptabs-corner-bottom-left" id="ext-gen26"></div>',"</div>","</tpl>","</div>"],firstOrLastCls:function(a,b){if(a===1){return Ext.view.Table.prototype.firstCls}else{if(a===b){return Ext.view.Table.prototype.lastCls}}},embedRowCls:function(){return"{rowCls}"},embedRowAttr:function(){return"{rowAttr}"},getTableTpl:function(j,b){var h,g={openRows:this.openRows,closeRows:this.closeRows,embedFullWidth:this.embedFullWidth},f={},c=j.features||[],l=c.length,e=0,k={embedRowCls:this.embedRowCls,embedRowAttr:this.embedRowAttr,firstOrLastCls:this.firstOrLastCls,unselectableAttr:j.enableTextSelection?"":'unselectable="on"',unselectableCls:j.enableTextSelection?"":Ext.baseCSSPrefix+"unselectable"},d=Array.prototype.slice.call(this.metaRowTpl,0),a;for(;e<l;e++){if(!c[e].disabled){c[e].mutateMetaRowTpl(d);Ext.apply(k,c[e].getMetaRowTplFragments());Ext.apply(f,c[e].getFragmentTpl());Ext.apply(g,c[e].getTableFragments())}}d=new Ext.XTemplate(d.join(""),k);j.row=d.applyTemplate(j);a=new Ext.XTemplate(this.metaTableTpl.join(""),g);h=a.applyTemplate(j);if(!b){h=new Ext.XTemplate(h,f)}return h}});
/*!
* Ext JS Library 4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
Ext.define("Ext.ux.IFrame",{extend:"Ext.Component",alias:"widget.uxiframe",loadMask:"Loading...",src:"about:blank",renderTpl:['<iframe src="{src}" name="{frameName}" width="100%" height="100%" frameborder="0"></iframe>'],initComponent:function(){this.callParent();this.frameName=this.frameName||this.id+"-frame";this.addEvents("beforeload","load");Ext.apply(this.renderSelectors,{iframeEl:"iframe"})},initEvents:function(){var c=this,b=c.iframeEl.dom,a=c.getFrame();c.callParent();c.iframeEl.on("load",c.onLoad,c)},initRenderData:function(){return Ext.apply(this.callParent(),{src:this.src,frameName:this.frameName})},getBody:function(){var a=this.getDoc();return a.body||a.documentElement},getDoc:function(){try{return this.getWin().document}catch(a){return null}},getWin:function(){var b=this,a=b.frameName,c=Ext.isIE?b.iframeEl.dom.contentWindow:window.frames[a];return c},getFrame:function(){var a=this;return a.iframeEl.dom},beforeDestroy:function(){var a=this,c,d;if(a.rendered){try{c=a.getDoc();if(c){Ext.EventManager.removeAll(c);for(d in c){if(c.hasOwnProperty&&c.hasOwnProperty(d)){delete c[d]}}}}catch(b){}}a.callParent()},onLoad:function(){var b=this,d=b.getDoc(),a=b.onRelayedEvent;if(d){try{Ext.EventManager.removeAll(d);Ext.EventManager.on(d,{mousedown:a,mousemove:a,mouseup:a,click:a,dblclick:a,scope:b})}catch(c){}Ext.EventManager.on(window,"unload",b.beforeDestroy,b);this.el.unmask();this.fireEvent("load",this)}else{if(b.src&&b.src!=""){this.el.unmask();this.fireEvent("error",this)}}},onRelayedEvent:function(c){var b=this.iframeEl,d=b.getXY(),a=c.getXY();c.xy=[d[0]+a[0],d[1]+a[1]];c.injectEvent(b);c.xy=a},load:function(d){var a=this,c=a.loadMask,b=a.getFrame();if(a.fireEvent("beforeload",a,d)!==false){if(c&&a.el){a.el.mask(c)}b.src=a.src=(d||a.src)}}});Ext.define("Ext.ux.statusbar.StatusBar",{extend:"Ext.toolbar.Toolbar",alternateClassName:"Ext.ux.StatusBar",alias:"widget.statusbar",requires:["Ext.toolbar.TextItem"],cls:"x-statusbar",busyIconCls:"x-status-busy",busyText:"Loading...",autoClear:5000,emptyText:" ",activeThreadId:0,initComponent:function(){var a=this.statusAlign==="right";this.callParent(arguments);this.currIconCls=this.iconCls||this.defaultIconCls;this.statusEl=Ext.create("Ext.toolbar.TextItem",{cls:"x-status-text "+(this.currIconCls||""),text:this.text||this.defaultText||""});if(a){this.cls+=" x-status-right";this.add("->");this.add(this.statusEl)}else{this.insert(0,this.statusEl);this.insert(1,"->")}},setStatus:function(e){var a=this;e=e||{};Ext.suspendLayouts();if(Ext.isString(e)){e={text:e}}if(e.text!==undefined){a.setText(e.text)}if(e.iconCls!==undefined){a.setIcon(e.iconCls)}if(e.clear){var f=e.clear,d=a.autoClear,b={useDefaults:true,anim:true};if(Ext.isObject(f)){f=Ext.applyIf(f,b);if(f.wait){d=f.wait}}else{if(Ext.isNumber(f)){d=f;f=b}else{if(Ext.isBoolean(f)){f=b}}}f.threadId=this.activeThreadId;Ext.defer(a.clearStatus,d,a,[f])}Ext.resumeLayouts(true);return a},clearStatus:function(e){e=e||{};var c=this,b=c.statusEl;if(e.threadId&&e.threadId!==c.activeThreadId){return c}var d=e.useDefaults?c.defaultText:c.emptyText,a=e.useDefaults?(c.defaultIconCls?c.defaultIconCls:""):"";if(e.anim){b.el.puff({remove:false,useDisplay:true,callback:function(){b.el.show();c.setStatus({text:d,iconCls:a})}})}else{c.setStatus({text:d,iconCls:a})}return c},setText:function(b){var a=this;a.activeThreadId++;a.text=b||"";if(a.rendered){a.statusEl.setText(a.text)}return a},getText:function(){return this.text},setIcon:function(a){var b=this;b.activeThreadId++;a=a||"";if(b.rendered){if(b.currIconCls){b.statusEl.removeCls(b.currIconCls);b.currIconCls=null}if(a.length>0){b.statusEl.addCls(a);b.currIconCls=a}}else{b.currIconCls=a}return b},showBusy:function(a){if(Ext.isString(a)){a={text:a}}a=Ext.applyIf(a||{},{text:this.busyText,iconCls:this.busyIconCls});return this.setStatus(a)}});Ext.define("Ext.ux.LiveSearchGridPanel",{extend:"Ext.grid.Panel",requires:["Ext.toolbar.TextItem","Ext.form.field.Checkbox","Ext.form.field.Text","Ext.ux.statusbar.StatusBar"],searchValue:null,indexes:[],currentIndex:null,searchRegExp:null,caseSensitive:false,regExpMode:false,matchCls:"x-livesearch-match",defaultStatusText:"Nothing Found",initComponent:function(){var a=this;a.tbar=["Search",{xtype:"textfield",name:"searchField",hideLabel:true,width:200,listeners:{change:{fn:a.onTextFieldChange,scope:this,buffer:100}}},{xtype:"button",text:"<",tooltip:"Find Previous Row",handler:a.onPreviousClick,scope:a},{xtype:"button",text:">",tooltip:"Find Next Row",handler:a.onNextClick,scope:a},"-",{xtype:"checkbox",hideLabel:true,margin:"0 0 0 4px",handler:a.regExpToggle,scope:a},"Regular expression",{xtype:"checkbox",hideLabel:true,margin:"0 0 0 4px",handler:a.caseSensitiveToggle,scope:a},"Case sensitive"];a.bbar=Ext.create("Ext.ux.StatusBar",{defaultText:a.defaultStatusText,name:"searchStatusBar"});a.callParent(arguments)},afterRender:function(){var a=this;a.callParent(arguments);a.textField=a.down("textfield[name=searchField]");a.statusBar=a.down("statusbar[name=searchStatusBar]")},tagsRe:/<[^>]*>/gm,tagsProtect:"\x0f",regExpProtect:/\\|\/|\+|\\|\.|\[|\]|\{|\}|\?|\$|\*|\^|\|/gm,getSearchValue:function(){var b=this,c=b.textField.getValue();if(c===""){return null}if(!b.regExpMode){c=c.replace(b.regExpProtect,function(d){return"\\"+d})}else{try{new RegExp(c)}catch(a){b.statusBar.setStatus({text:a.message,iconCls:"x-status-error"});return null}if(c==="^"||c==="$"){return null}}return c},onTextFieldChange:function(){var b=this,a=0;b.view.refresh();b.statusBar.setStatus({text:b.defaultStatusText,iconCls:""});b.searchValue=b.getSearchValue();b.indexes=[];b.currentIndex=null;if(b.searchValue!==null){b.searchRegExp=new RegExp(b.searchValue,"g"+(b.caseSensitive?"":"i"));b.store.each(function(e,d){var h=Ext.fly(b.view.getNode(d)).down("td"),c,g,f;while(h){c=h.down(".x-grid-cell-inner");g=c.dom.innerHTML.match(b.tagsRe);f=c.dom.innerHTML.replace(b.tagsRe,b.tagsProtect);f=f.replace(b.searchRegExp,function(i){a+=1;if(Ext.Array.indexOf(b.indexes,d)===-1){b.indexes.push(d)}if(b.currentIndex===null){b.currentIndex=d}return'<span class="'+b.matchCls+'">'+i+"</span>"});Ext.each(g,function(i){f=f.replace(b.tagsProtect,i)});c.dom.innerHTML=f;h=h.next()}},b);if(b.currentIndex!==null){b.getSelectionModel().select(b.currentIndex);b.statusBar.setStatus({text:a+" matche(s) found.",iconCls:"x-status-valid"})}}if(b.currentIndex===null){b.getSelectionModel().deselectAll()}b.textField.focus()},onPreviousClick:function(){var b=this,a;if((a=Ext.Array.indexOf(b.indexes,b.currentIndex))!==-1){b.currentIndex=b.indexes[a-1]||b.indexes[b.indexes.length-1];b.getSelectionModel().select(b.currentIndex)}},onNextClick:function(){var b=this,a;if((a=Ext.Array.indexOf(b.indexes,b.currentIndex))!==-1){b.currentIndex=b.indexes[a+1]||b.indexes[0];b.getSelectionModel().select(b.currentIndex)}},caseSensitiveToggle:function(b,a){this.caseSensitive=a;this.onTextFieldChange()},regExpToggle:function(b,a){this.regExpMode=a;this.onTextFieldChange()}});Ext.define("Ext.ux.PreviewPlugin",{extend:"Ext.AbstractPlugin",alias:"plugin.preview",requires:["Ext.grid.feature.RowBody","Ext.grid.feature.RowWrap"],hideBodyCls:"x-grid-row-body-hidden",bodyField:"",previewExpanded:true,constructor:function(b){this.callParent(arguments);var a=this.bodyField,e=this.hideBodyCls,d=this.getCmp(),c=[{ftype:"rowbody",getAdditionalData:function(i,f,h,k,g){var j=Ext.grid.feature.RowBody.prototype.getAdditionalData.apply(this,arguments);Ext.apply(j,{rowBody:i[a],rowBodyCls:d.previewExpanded?"":e});return j}},{ftype:"rowwrap"}];d.previewExpanded=this.previewExpanded;if(!d.features){d.features=[]}d.features=c.concat(d.features)},toggleExpanded:function(b){var a=this.getCmp();this.previewExpanded=a.previewExpanded=b;a.refresh()}});Ext.define("Ext.ux.ProgressBarPager",{requires:["Ext.ProgressBar"],width:225,defaultText:"Loading...",defaultAnimCfg:{duration:1000,easing:"bounceOut"},constructor:function(a){if(a){Ext.apply(this,a)}},init:function(b){var a;if(b.displayInfo){this.parent=b;a=b.child("#displayItem");if(a){b.remove(a,true)}this.progressBar=Ext.create("Ext.ProgressBar",{text:this.defaultText,width:this.width,animate:this.defaultAnimCfg,style:{cursor:"pointer"},listeners:{el:{scope:this,click:this.handleProgressBarClick}}});b.displayItem=this.progressBar;b.add(b.displayItem);Ext.apply(b,this.parentOverrides)}},handleProgressBarClick:function(i){var f=this.parent,c=f.displayItem,g=this.progressBar.getBox(),h=i.getXY(),b=h[0]-g.x,a=Math.ceil(f.store.getTotalCount()/f.pageSize),d=Math.max(Math.ceil(b/(c.width/a)),1);f.store.loadPage(d)},parentOverrides:{updateInfo:function(){if(this.displayItem){var d=this.store.getCount(),b=this.getPageData(),c=d===0?this.emptyMsg:Ext.String.format(this.displayMsg,b.fromRecord,b.toRecord,this.store.getTotalCount()),a=b.pageCount>0?(b.currentPage/b.pageCount):0;this.displayItem.updateProgress(a,c,this.animate||this.defaultAnimConfig)}}}});Ext.define("Ext.ux.RowExpander",{extend:"Ext.AbstractPlugin",requires:["Ext.grid.feature.RowBody","Ext.grid.feature.RowWrap"],alias:"plugin.rowexpander",rowBodyTpl:null,expandOnEnter:true,expandOnDblClick:true,selectRowOnExpand:false,rowBodyTrSelector:".x-grid-rowbody-tr",rowBodyHiddenCls:"x-grid-row-body-hidden",rowCollapsedCls:"x-grid-row-collapsed",renderer:function(d,b,a,c,e){if(e===0){b.tdCls="x-grid-td-expander"}return'<div class="x-grid-row-expander"> </div>'},constructor:function(){this.callParent(arguments);var b=this.getCmp();this.recordsExpanded={};if(!this.rowBodyTpl){Ext.Error.raise("The 'rowBodyTpl' config is required and is not defined.")}var a=Ext.create("Ext.XTemplate",this.rowBodyTpl),c=[{ftype:"rowbody",columnId:this.getHeaderId(),recordsExpanded:this.recordsExpanded,rowBodyHiddenCls:this.rowBodyHiddenCls,rowCollapsedCls:this.rowCollapsedCls,getAdditionalData:this.getRowBodyFeatureData,getRowBodyContents:function(d){return a.applyTemplate(d)}},{ftype:"rowwrap"}];if(b.features){b.features=c.concat(b.features)}else{b.features=c}},init:function(a){this.callParent(arguments);this.grid=a;this.addExpander();a.on("render",this.bindView,this,{single:true});a.on("reconfigure",this.onReconfigure,this)},onReconfigure:function(){this.addExpander()},addExpander:function(){this.grid.headerCt.insert(0,this.getHeaderConfig())},getHeaderId:function(){if(!this.headerId){this.headerId=Ext.id()}return this.headerId},getRowBodyFeatureData:function(c,a,b,f){var d=Ext.grid.feature.RowBody.prototype.getAdditionalData.apply(this,arguments),e=this.columnId;d.rowBodyColspan=d.rowBodyColspan-1;d.rowBody=this.getRowBodyContents(c);d.rowCls=this.recordsExpanded[b.internalId]?"":this.rowCollapsedCls;d.rowBodyCls=this.recordsExpanded[b.internalId]?"":this.rowBodyHiddenCls;d[e+"-tdAttr"]=' valign="top" rowspan="2" ';if(f[e+"-tdAttr"]){d[e+"-tdAttr"]+=f[e+"-tdAttr"]}return d},bindView:function(){var a=this.getCmp().getView(),b;if(!a.rendered){a.on("render",this.bindView,this,{single:true})}else{b=a.getEl();if(this.expandOnEnter){this.keyNav=Ext.create("Ext.KeyNav",b,{enter:this.onEnter,scope:this})}if(this.expandOnDblClick){a.on("itemdblclick",this.onDblClick,this)}this.view=a}},onEnter:function(h){var b=this.view,g=b.store,j=b.getSelectionModel(),a=j.getSelection(),f=a.length,c=0,d;for(;c<f;c++){d=g.indexOf(a[c]);this.toggleRow(d)}},toggleRow:function(f){var b=this.view,e=b.getNode(f),g=Ext.get(e),c=Ext.get(g).down(this.rowBodyTrSelector),a=b.getRecord(e),d=this.getCmp();if(g.hasCls(this.rowCollapsedCls)){g.removeCls(this.rowCollapsedCls);c.removeCls(this.rowBodyHiddenCls);this.recordsExpanded[a.internalId]=true;b.refreshSize();b.fireEvent("expandbody",e,a,c.dom)}else{g.addCls(this.rowCollapsedCls);c.addCls(this.rowBodyHiddenCls);this.recordsExpanded[a.internalId]=false;b.refreshSize();b.fireEvent("collapsebody",e,a,c.dom)}},onDblClick:function(b,a,d,c,f){this.toggleRow(d)},getHeaderConfig:function(){var c=this,b=Ext.Function.bind(c.toggleRow,c),a=c.selectRowOnExpand;return{id:this.getHeaderId(),width:24,sortable:false,resizable:false,draggable:false,hideable:false,menuDisabled:true,cls:Ext.baseCSSPrefix+"grid-header-special",renderer:function(e,d){d.tdCls=Ext.baseCSSPrefix+"grid-cell-special";return'<div class="'+Ext.baseCSSPrefix+'grid-row-expander"> </div>'},processEvent:function(i,f,d,g,h,j){if(i=="mousedown"&&j.getTarget(".x-grid-row-expander")){var k=j.getTarget(".x-grid-row");b(k);return a}}}}});Ext.define("Ext.ux.SlidingPager",{requires:["Ext.slider.Single","Ext.slider.Tip"],constructor:function(a){if(a){Ext.apply(this,a)}},init:function(b){var a=b.items.indexOf(b.child("#inputItem")),c;Ext.each(b.items.getRange(a-2,a+2),function(d){d.hide()});c=Ext.create("Ext.slider.Single",{width:114,minValue:1,maxValue:1,hideLabel:true,tipText:function(d){return Ext.String.format("Page <b>{0}</b> of <b>{1}</b>",d.value,d.slider.maxValue)},listeners:{changecomplete:function(e,d){b.store.loadPage(d)}}});b.insert(a+1,c);b.on({change:function(d,e){c.setMaxValue(e.pageCount);c.setValue(e.currentPage)}})}});Ext.define("Ext.ux.Spotlight",{baseCls:"x-spotlight",animate:true,duration:250,easing:null,active:false,constructor:function(a){Ext.apply(this,a)},createElements:function(){var c=this,b=c.baseCls,a=Ext.getBody();c.right=a.createChild({cls:b});c.left=a.createChild({cls:b});c.top=a.createChild({cls:b});c.bottom=a.createChild({cls:b});c.all=Ext.create("Ext.CompositeElement",[c.right,c.left,c.top,c.bottom])},show:function(b,d,a){var c=this;c.el=Ext.get(b);if(!c.right){c.createElements()}if(!c.active){c.all.setDisplayed("");c.active=true;Ext.EventManager.onWindowResize(c.syncSize,c);c.applyBounds(c.animate,false)}else{c.applyBounds(false,false)}},hide:function(c,a){var b=this;Ext.EventManager.removeResizeListener(b.syncSize,b);b.applyBounds(b.animate,true)},syncSize:function(){this.applyBounds(false,false)},applyBounds:function(a,g){var j=this,e=j.el.getBox(),f=Ext.Element.getViewWidth(true),c=Ext.Element.getViewHeight(true),d=0,b=false,l,k,h;l={right:{x:e.right,y:c,width:(f-e.right),height:0},left:{x:0,y:0,width:e.x,height:0},top:{x:f,y:0,width:0,height:e.y},bottom:{x:0,y:(e.y+e.height),width:0,height:(c-(e.y+e.height))+"px"}};k={right:{x:e.right,y:e.y,width:(f-e.right)+"px",height:(c-e.y)+"px"},left:{x:0,y:0,width:e.x+"px",height:(e.y+e.height)+"px"},top:{x:e.x,y:0,width:(f-e.x)+"px",height:e.y+"px"},bottom:{x:0,y:(e.y+e.height),width:(e.x+e.width)+"px",height:(c-(e.y+e.height))+"px"}};if(g){h=Ext.clone(l);l=k;k=h}if(a){Ext.Array.forEach(["right","left","top","bottom"],function(i){j[i].setBox(l[i]);j[i].animate({duration:j.duration,easing:j.easing,to:k[i]})},this)}else{Ext.Array.forEach(["right","left","top","bottom"],function(i){j[i].setBox(Ext.apply(l[i],k[i]));j[i].repaint()},this)}},destroy:function(){var a=this;Ext.destroy(a.right,a.left,a.top,a.bottom);delete a.el;delete a.all}});Ext.define("Ext.ux.TabCloseMenu",{alias:"plugin.tabclosemenu",mixins:{observable:"Ext.util.Observable"},closeTabText:"Close Tab",showCloseOthers:true,closeOthersTabsText:"Close Other Tabs",showCloseAll:true,closeAllTabsText:"Close All Tabs",extraItemsHead:null,extraItemsTail:null,constructor:function(a){this.addEvents("aftermenu","beforemenu");this.mixins.observable.constructor.call(this,a)},init:function(a){this.tabPanel=a;this.tabBar=a.down("tabbar");this.mon(this.tabPanel,{scope:this,afterlayout:this.onAfterLayout,single:true})},onAfterLayout:function(){this.mon(this.tabBar.el,{scope:this,contextmenu:this.onContextMenu,delegate:"div.x-tab"})},onBeforeDestroy:function(){Ext.destroy(this.menu);this.callParent(arguments)},onContextMenu:function(d,f){var c=this,g=c.createMenu(),e=true,h=true,b=c.tabBar.getChildByElement(f),a=c.tabBar.items.indexOf(b);c.item=c.tabPanel.getComponent(a);g.child('*[text="'+c.closeTabText+'"]').setDisabled(!c.item.closable);if(c.showCloseAll||c.showCloseOthers){c.tabPanel.items.each(function(i){if(i.closable){e=false;if(i!=c.item){h=false;return false}}return true});if(c.showCloseAll){g.child('*[text="'+c.closeAllTabsText+'"]').setDisabled(e)}if(c.showCloseOthers){g.child('*[text="'+c.closeOthersTabsText+'"]').setDisabled(h)}}d.preventDefault();c.fireEvent("beforemenu",g,c.item,c);g.showAt(d.getXY())},createMenu:function(){var b=this;if(!b.menu){var a=[{text:b.closeTabText,scope:b,handler:b.onClose}];if(b.showCloseAll||b.showCloseOthers){a.push("-")}if(b.showCloseOthers){a.push({text:b.closeOthersTabsText,scope:b,handler:b.onCloseOthers})}if(b.showCloseAll){a.push({text:b.closeAllTabsText,scope:b,handler:b.onCloseAll})}if(b.extraItemsHead){a=b.extraItemsHead.concat(a)}if(b.extraItemsTail){a=a.concat(b.extraItemsTail)}b.menu=Ext.create("Ext.menu.Menu",{items:a,listeners:{hide:b.onHideMenu,scope:b}})}return b.menu},onHideMenu:function(){var a=this;a.item=null;a.fireEvent("aftermenu",a.menu,a)},onClose:function(){this.tabPanel.remove(this.item)},onCloseOthers:function(){this.doClose(true)},onCloseAll:function(){this.doClose(false)},doClose:function(b){var a=[];this.tabPanel.items.each(function(c){if(c.closable){if(!b||c!=this.item){a.push(c)}}},this);Ext.each(a,function(c){this.tabPanel.remove(c)},this)}});Ext.define("Ext.ux.TabReorderer",{extend:"Ext.ux.BoxReorderer",itemSelector:".x-tab",init:function(b){var a=this;a.callParent([b.getTabBar()]);b.onAdd=Ext.Function.createSequence(b.onAdd,a.onAdd)},afterFirstLayout:function(){var c,a,b=0,d;this.callParent(arguments);for(c=this.container.items.items,a=c.length;b<a;b++){d=c[b];if(d.card){d.reorderable=d.card.reorderable}}},onAdd:function(b,a){b.tab.reorderable=b.reorderable},afterBoxReflow:function(){var a=this;Ext.ux.BoxReorderer.prototype.afterBoxReflow.apply(a,arguments);if(a.dragCmp){a.container.tabPanel.setActiveTab(a.dragCmp.card);a.container.tabPanel.move(a.startIndex,a.curIndex)}}});Ext.ns("Ext.ux");Ext.define("Ext.ux.TabScrollerMenu",{alias:"plugin.tabscrollermenu",requires:["Ext.menu.Menu"],pageSize:10,maxText:15,menuPrefixText:"Items",constructor:function(a){Ext.apply(this,a)},init:function(b){var a=this;a.tabPanel=b;b.on({render:function(){a.tabBar=b.tabBar;a.layout=a.tabBar.layout;a.layout.overflowHandler.handleOverflow=Ext.Function.bind(a.showButton,a);a.layout.overflowHandler.clearOverflow=Ext.Function.createSequence(a.layout.overflowHandler.clearOverflow,a.hideButton,a)},single:true})},showButton:function(){var b=this,a=Ext.getClass(b.layout.overflowHandler).prototype.handleOverflow.apply(b.layout.overflowHandler,arguments);if(!b.menuButton){b.menuButton=b.tabBar.body.createChild({cls:Ext.baseCSSPrefix+"tab-tabmenu-right"},b.tabBar.body.child("."+Ext.baseCSSPrefix+"box-scroller-right"));b.menuButton.addClsOnOver(Ext.baseCSSPrefix+"tab-tabmenu-over");b.menuButton.on("click",b.showTabsMenu,b)}b.menuButton.show();a.reservedSpace+=b.menuButton.getWidth();return a},hideButton:function(){var a=this;if(a.menuButton){a.menuButton.hide()}},getPageSize:function(){return this.pageSize},setPageSize:function(a){this.pageSize=a},getMaxText:function(){return this.maxText},setMaxText:function(a){this.maxText=a},getMenuPrefixText:function(){return this.menuPrefixText},setMenuPrefixText:function(a){this.menuPrefixText=a},showTabsMenu:function(d){var a=this;if(a.tabsMenu){a.tabsMenu.removeAll()}else{a.tabsMenu=new Ext.menu.Menu();a.tabPanel.on("destroy",a.tabsMenu.destroy,a.tabsMenu)}a.generateTabMenuItems();var c=Ext.get(d.getTarget()),b=c.getXY();b[1]+=24;a.tabsMenu.showAt(b)},generateTabMenuItems:function(){var l=this,h=l.tabPanel,a=h.getActiveTab(),j=h.items.getRange(),m=l.getPageSize(),e=l.tabsMenu,q,d,o,f,k,b,n,p,c,g;e.suspendLayouts();j=Ext.Array.filter(j,function(i){if(i.id==a.id){return false}return i.hidden?!!i.hiddenByLayout:true});q=j.length;d=Math.floor(q/m);o=q%m;if(q>m){for(f=0;f<d;f++){k=(f+1)*m;b=[];for(n=0;n<m;n++){g=n+k-m;p=j[g];b.push(l.autoGenMenuItem(p))}e.add({text:l.getMenuPrefixText()+" "+(k-m+1)+" - "+k,menu:b})}if(o>0){c=d*m;b=[];for(f=c;f<q;f++){p=j[f];b.push(l.autoGenMenuItem(p))}l.tabsMenu.add({text:l.menuPrefixText+" "+(c+1)+" - "+(c+b.length),menu:b})}}else{for(f=0;f<q;++f){e.add(l.autoGenMenuItem(j[f]))}}e.resumeLayouts(true)},autoGenMenuItem:function(b){var a=this.getMaxText(),c=Ext.util.Format.ellipsis(b.title,a);return{text:c,handler:this.showTabFromMenu,scope:this,disabled:b.disabled,tabToShow:b,iconCls:b.iconCls}},showTabFromMenu:function(a){this.tabPanel.setActiveTab(a.tabToShow)}});Ext.define("Ext.ux.ToolbarDroppable",{constructor:function(a){Ext.apply(this,a)},init:function(a){this.toolbar=a;this.toolbar.on({scope:this,render:this.createDropTarget})},createDropTarget:function(){this.dropTarget=Ext.create("Ext.dd.DropTarget",this.toolbar.getEl(),{notifyOver:Ext.Function.bind(this.notifyOver,this),notifyDrop:Ext.Function.bind(this.notifyDrop,this)})},addDDGroup:function(a){this.dropTarget.addToGroup(a)},calculateEntryIndex:function(h){var j=0,k=this.toolbar,i=k.items.items,f=i.length,b=h.getXY()[0],g=0,c,d,a,l;for(;g<f;g++){c=i[g].getEl();d=c.getXY()[0];a=c.getWidth();l=d+a/2;if(b<l){j=g;break}else{j=g+1}}return j},canDrop:function(a){return true},notifyOver:function(a,b,c){return this.canDrop.apply(this,arguments)?this.dropTarget.dropAllowed:this.dropTarget.dropNotAllowed},notifyDrop:function(a,d,e){var c=this.canDrop(a,d,e),f=this.toolbar;if(c){var b=this.calculateEntryIndex(d);f.insert(b,this.createItem(e));f.doLayout();this.afterLayout()}return c},createItem:function(a){Ext.Error.raise("The createItem method must be implemented in the ToolbarDroppable plugin")},afterLayout:Ext.emptyFn});Ext.define("Ext.ux.TreePicker",{extend:"Ext.form.field.Picker",xtype:"treepicker",triggerCls:Ext.baseCSSPrefix+"form-arrow-trigger",config:{store:null,displayField:null,columns:null,selectOnTab:true,maxPickerHeight:300,minPickerHeight:100},editable:false,initComponent:function(){var a=this;a.callParent(arguments);this.addEvents("select");a.store.on("load",a.onLoad,a)},createPicker:function(){var c=this,b=Ext.create("Ext.tree.Panel",{store:c.store,floating:true,hidden:true,displayField:c.displayField,columns:c.columns,maxHeight:c.maxTreeHeight,shadow:false,manageHeight:false,listeners:{itemclick:Ext.bind(c.onItemClick,c)},viewConfig:{listeners:{render:function(d){d.getEl().on("keypress",c.onPickerKeypress,c)}}}}),a=b.getView();a.on("render",c.setPickerViewStyles,c);if(Ext.isIE9&&Ext.isStrict){a.on("highlightitem",c.repaintPickerView,c);a.on("unhighlightitem",c.repaintPickerView,c);a.on("afteritemexpand",c.repaintPickerView,c);a.on("afteritemcollapse",c.repaintPickerView,c)}return b},setPickerViewStyles:function(a){a.getEl().setStyle({"min-height":this.minPickerHeight+"px","max-height":this.maxPickerHeight+"px"})},repaintPickerView:function(){var a=this.picker.getView().getEl().dom.style;a.display=a.display},alignPicker:function(){var b=this,a;if(b.isExpanded){a=b.getPicker();if(b.matchFieldWidth){a.setWidth(b.bodyEl.getWidth())}if(a.isFloating()){b.doAlign()}}},onItemClick:function(b,a,c,f,d){this.selectItem(a)},onPickerKeypress:function(c,b){var a=c.getKey();if(a===c.ENTER||(a===c.TAB&&this.selectOnTab)){this.selectItem(this.picker.getSelectionModel().getSelection()[0])}},selectItem:function(a){var b=this;b.setValue(a.get("id"));b.picker.hide();b.inputEl.focus();b.fireEvent("select",b,a)},onExpand:function(){var c=this,b=c.picker,a=b.store,d=c.value;if(d){b.selectPath(a.getNodeById(d).getPath())}else{b.getSelectionModel().select(a.getRootNode())}Ext.defer(function(){b.getView().focus()},1)},setValue:function(c){var b=this,a;b.value=c;if(b.store.loading){return b}a=c?b.store.getNodeById(c):b.store.getRootNode();b.setRawValue(a?a.get(this.displayField):"");return b},getValue:function(){return this.value},onLoad:function(){var a=this.value;if(a){this.setValue(a)}}});Ext.define("Ext.ux.ajax.SimXhr",{readyState:0,mgr:null,simlet:null,constructor:function(a){var b=this;Ext.apply(b,a);b.requestHeaders={}},abort:function(){var a=this;if(a.timer){clearTimeout(a.timer);a.timer=null}a.aborted=true},getAllResponseHeaders:function(){var a=[];Ext.Object.each(this.responseHeaders,function(b,c){a.push(b+": "+c)});return a.join("\x0d\x0a")},getResponseHeader:function(b){var a=this.responseHeaders;return(a&&a[b])||null},open:function(f,c,d,a,b){var e=this;e.method=f;e.url=c;e.async=d!==false;e.user=a;e.password=b;e.setReadyState(1)},overrideMimeType:function(a){this.mimeType=a},schedule:function(){var a=this;a.timer=setTimeout(function(){a.onTick()},a.mgr.delay)},send:function(a){var b=this;b.body=a;if(b.async){b.schedule()}else{b.onComplete()}},setReadyState:function(b){var a=this;if(a.readyState!=b){a.readyState=b;a.onreadystatechange()}},setRequestHeader:function(b,a){this.requestHeaders[b]=a},onreadystatechange:Ext.emptyFn,onComplete:function(){var me=this,callback;me.readyState=4;Ext.apply(me,me.simlet.exec(me));callback=me.jsonpCallback;if(callback){var text=callback+"("+me.responseText+")";eval(text)}},onTick:function(){var a=this;a.timer=null;a.onComplete();a.onreadystatechange()}});Ext.define("Ext.ux.ajax.Simlet",function(){var d=/([^?#]*)(#.*)?$/,a=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/,b=/^[+-]?\d+$/,c=/^[+-]?\d+\.\d+$/;function e(g){var f;if(Ext.isDefined(g)){g=decodeURIComponent(g);if(b.test(g)){g=parseInt(g,10)}else{if(c.test(g)){g=parseFloat(g)}else{if(!!(f=a.test(g))){g=new Date(Date.UTC(+f[1],+f[2]-1,+f[3],+f[4],+f[5],+f[6]))}}}}return g}return{alias:"simlet.basic",isSimlet:true,responseProps:["responseText","responseXML","status","statusText"],status:200,statusText:"OK",constructor:function(f){Ext.apply(this,f)},doGet:function(f){var h=this,g={};Ext.each(h.responseProps,function(i){if(i in h){g[i]=h[i]}});return g},doRedirect:function(f){return false},exec:function(i){var h=this,f={},j="do"+Ext.String.capitalize(i.method.toLowerCase()),g=h[j];if(g){f=g.call(h,h.getCtx(i.method,i.url,i))}else{f={status:405,statusText:"Method Not Allowed"}}return f},getCtx:function(h,f,g){return{method:h,params:this.parseQueryString(f),url:f,xhr:g}},openRequest:function(l,h,g,i){var f=this.getCtx(l,h),k=this.doRedirect(f),j;if(k){j=k}else{j=new Ext.ux.ajax.SimXhr({mgr:this.manager,simlet:this,options:g});j.open(l,h,i)}return j},parseQueryString:function(o){var g=d.exec(o),l={},q,p,k,f;if(g&&g[1]){var j,h=g[1].split("&");for(k=0,f=h.length;k<f;++k){if((j=h[k].split("="))[0]){q=decodeURIComponent(j.shift());p=e((j.length>1)?j.join("="):j[0]);if(!(q in l)){l[q]=p}else{if(Ext.isArray(l[q])){l[q].push(p)}else{l[q]=[l[q],p]}}}}}return l},redirect:function(h,f,g){switch(arguments.length){case 2:if(typeof f=="string"){break}g=f;case 1:f=h;h="GET";break}if(g){f=Ext.urlAppend(f,Ext.Object.toQueryString(g))}return this.manager.openRequest(h,f)}}}());Ext.define("Ext.ux.ajax.DataSimlet",function(){function b(f,e){var c=f.direction,d=(c&&c.toUpperCase()=="DESC")?-1:1;return function(h,i){var g=h[f.property],k=i[f.property],j=(g<k)?-1:((k<g)?1:0);if(j||!e){return j*d}return e(h,i)}}function a(c,e){for(var f=e,d=c&&c.length;d;){f=b(c[--d],f)}return f}return{extend:"Ext.ux.ajax.Simlet",getData:function(e){var f=this,h=f.data,i=e.params,d=(i.group||"")+"-"+(i.sort||"")+"-"+(i.dir||""),c,g;if(!d){return h}e.groupSpec=i.group&&Ext.decode(i.group);if(d==f.currentOrder){return f.sortedData}c=i.sort;if(i.dir){c=[{direction:i.dir,property:c}]}else{c=Ext.decode(i.sort)}g=a((e.sortSpec=c));g=a(e.groupSpec,g);h=h.slice(0);if(g){Ext.Array.sort(h,g)}f.sortedData=h;f.currentOrder=d;return h},getPage:function(d,g){var e=g,f=g.length,h=d.params.start||0,c=d.params.limit?Math.min(f,h+d.params.limit):f;if(h||c<f){e=e.slice(h,c)}return e},getGroupSummary:function(d,e,c){return e[0]},getSummary:function(m,g,h){var j=this,c=m.groupSpec[0].property,k,f={},i=[],d,e;Ext.each(h,function(n){d=n[c];f[d]=true});function l(){if(k){i.push(j.getGroupSummary(c,k,m));k=null}}Ext.each(g,function(n){d=n[c];if(e!==d){l();e=d}if(!f[d]){return !i.length}if(k){k.push(n)}else{k=[n]}return true});l();return i}}}());Ext.define("Ext.ux.ajax.JsonSimlet",{extend:"Ext.ux.ajax.DataSimlet",alias:"simlet.json",doGet:function(b){var e=this,g=e.getData(b),f=e.getPage(b,g),a=b.xhr.options.proxy.reader,d=e.callParent(arguments),c={};if(a.root){c[a.root]=f;c[a.totalProperty]=g.length}else{c=f}if(b.groupSpec){c.summaryData=e.getSummary(b,g,f)}d.responseText=Ext.encode(c);return d}});Ext.define("Ext.ux.ajax.SimManager",{singleton:true,requires:["Ext.data.Connection","Ext.ux.ajax.SimXhr","Ext.ux.ajax.Simlet","Ext.ux.ajax.JsonSimlet"],defaultType:"basic",delay:150,ready:false,constructor:function(){this.simlets={}},getSimlet:function(b){var c=this,a=b.indexOf("?");if(a<0){a=b.indexOf("#")}if(a>0){b=b.substring(0,a)}return c.simlets[b]||c.defaultSimlet},getXhr:function(e,b,a,c){var d=this.getSimlet(b);if(d){return d.openRequest(e,b,a,c)}return null},init:function(a){var b=this;Ext.apply(b,a);if(!b.ready){b.ready=true;if(!("defaultSimlet" in b)){b.defaultSimlet=new Ext.ux.ajax.Simlet({status:404,statusText:"Not Found"})}b._openRequest=Ext.data.Connection.prototype.openRequest;Ext.data.Connection.override({openRequest:function(d,c,e){var f=!d.nosim&&b.getXhr(c.method,c.url,d,e);if(!f){f=this.callParent(arguments)}return f}});if(Ext.data.JsonP){Ext.data.JsonP.self.override({createScript:function(f,g,e){var c=Ext.urlAppend(f,Ext.Object.toQueryString(g)),d=!e.nosim&&b.getXhr("GET",c,e,true);if(!d){d=this.callParent(arguments)}return d},loadScript:function(d){var c=d.script;if(c.simlet){c.jsonpCallback=d.params[d.callbackKey];c.send(null)}else{this.callParent(arguments)}}})}}return b},openRequest:function(d,a,c){var b={method:d,url:a};return this._openRequest.call(Ext.data.Connection.prototype,{},b,c)},register:function(c){var b=this;b.init();function a(d){var e=d;if(!e.isSimlet){e=Ext.create("simlet."+(e.stype||b.defaultType),d)}b.simlets[d.url]=e;e.manager=b}if(Ext.isArray(c)){Ext.each(c,a)}else{if(c.isSimlet||c.url){a(c)}else{Ext.Object.each(c,function(d,e){e.url=d;a(e)})}}return b}});Ext.define("Ext.ux.ajax.XmlSimlet",{extend:"Ext.ux.ajax.DataSimlet",alias:"simlet.xml",xmlTpl:["<{root}>\n",'<tpl for="data">'," <{parent.record}>\n",'<tpl for="parent.fields">'," <{name}>{[parent[values.name]]}</{name}>\n","</tpl>"," </{parent.record}>\n","</tpl>","</{root}>"],doGet:function(j){var h=this,b=h.getData(j),g=h.getPage(j,b),d=j.xhr.options.proxy.reader,f=h.callParent(arguments),a={data:g,reader:d,fields:d.model.getFields(),root:d.root,record:d.record};if(j.groupSpec){a.summaryData=h.getSummary(j,b,g)}var e=Ext.XTemplate.getTpl(h,"xmlTpl"),c=e.apply(a),i;if(typeof DOMParser!="undefined"){i=(new DOMParser()).parseFromString(c,"text/xml")}else{i=new ActiveXObject("Microsoft.XMLDOM");i.async=false;i.loadXML(c)}f.responseText=c;f.responseXML=i;return f}});Ext.define("Ext.ux.event.Driver",{active:null,mixins:{observable:"Ext.util.Observable"},constructor:function(a){var b=this;b.mixins.observable.constructor.apply(this,arguments);b.addEvents("start","stop")},getTime:function(){return new Date().getTime()},getTimestamp:function(){var a=this.getTime();return a-this.startTime},onStart:function(){},onStop:function(){},start:function(){var a=this;if(!a.active){a.active=new Date();a.startTime=a.getTime();a.onStart();a.fireEvent("start",a)}},stop:function(){var a=this;if(a.active){a.active=null;a.onStop();a.fireEvent("stop",a)}}});Ext.define("Ext.ux.event.Maker",{eventQueue:[],startAfter:500,timerIncrement:500,currentTiming:0,constructor:function(a){var b=this;b.currentTiming=b.startAfter;if(!Ext.isArray(a)){a=[a]}Ext.Array.each(a,function(c){c.el=c.el||"el";Ext.Array.each(Ext.ComponentQuery.query(c.cmpQuery),function(g){var f={},d,h,e;if(!c.domQuery){e=g[c.el]}else{e=g.el.down(c.domQuery)}f.target="#"+e.dom.id;f.type=c.type;f.button=a.button||0;d=e.getX()+(e.getWidth()/2);h=e.getY()+(e.getHeight()/2);f.xy=[d,h];f.ts=b.currentTiming;b.currentTiming+=b.timerIncrement;b.eventQueue.push(f)});if(c.screenshot){b.eventQueue[b.eventQueue.length-1].screenshot=true}});return b.eventQueue}});Ext.define("Ext.ux.event.Player",{extend:"Ext.ux.event.Driver",keyFrameEvents:{click:true},pauseForAnimations:true,speed:1,stallTime:0,tagPathRegEx:/(\w+)(?:\[(\d+)\])?/,constructor:function(a){var b=this;b.callParent(arguments);b.addEvents("beforeplay","keyframe");b.eventObject=new Ext.EventObjectImpl();b.timerFn=function(){b.onTick()};b.attachTo=b.attachTo||window},getElementFromXPath:function(h){var j=this,e=h.split("/"),k=j.tagPathRegEx,f,c,d,g,l,b,a=j.attachTo.document;a=(e[0]=="~")?a.body:a.getElementById(e[0].substring(1));for(f=1,c=e.length;a&&f<c;++f){d=k.exec(e[f]);g=d[2]?parseInt(d[2],10):1;l=d[1].toUpperCase();for(b=a.firstChild;b;b=b.nextSibling){if(b.tagName==l){if(g==1){break}--g}}a=b}return a},getTimeIndex:function(){var a=this.getTimestamp()-this.stallTime;return a*this.speed},makeToken:function(a,d){var b=this,c;a[d]=true;a.defer=function(){a[d]=false;c=b.getTime()};a.finish=function(){a[d]=true;b.stallTime+=b.getTime()-c;b.schedule()}},nextEvent:function(b){var c=this,a=++c.queueIndex;if(c.keyFrameEvents[b.type]){Ext.Array.insert(c.eventQueue,a,[{keyframe:true,ts:b.ts}])}},peekEvent:function(){var f=this,a=f.eventQueue,b=f.queueIndex,d=a[b],e=d&&d.type,c;if(e=="mduclick"){c=[Ext.applyIf({type:"mousedown"},d),Ext.applyIf({type:"mouseup"},d),Ext.applyIf({type:"click"},d)];f.replaceEvent(b,c)}return a[b]||null},replaceEvent:function(a,d){for(var c,b=0,e=d.length;b<e;++b){if(b){c=d[b-1];delete c.afterplay;delete c.screenshot;delete d[b].beforeplay}}Ext.Array.replace(this.eventQueue,a,1,d)},processEvents:function(){var b=this,c=b.pauseForAnimations&&b.attachTo.Ext.fx.Manager.items,a;while((a=b.peekEvent())!==null){if(c&&c.getCount()){return true}if(a.keyframe){if(!b.processKeyFrame(a)){return false}b.nextEvent(a)}else{if(a.ts<=b.getTimeIndex()&&b.fireEvent("beforeplay",b,a)!==false&&b.playEvent(a)){if(window.__x&&a.screenshot){__x.poll.sendSyncRequest({cmd:"screenshot"})}b.nextEvent(a)}else{return true}}}b.stop();return false},processKeyFrame:function(a){var b=this;if(!a.defer){b.makeToken(a,"done");b.fireEvent("keyframe",b,a)}return a.done},injectEvent:function(b,a){a.injectEvent(b)},playEvent:function(a){var c=this,d=c.getElementFromXPath(a.target),b;if(!d){return false}if(!c.playEventHook(a,"beforeplay")){return false}if(!a.injected){a.injected=true;b=c.translateEvent(a,d);c.injectEvent(d,b)}return c.playEventHook(a,"afterplay")},playEventHook:function(c,b){var d=this,a=b+".done",f=b+".fired",e=c[b];if(e&&!c[a]){if(!c[f]){c[f]=true;d.makeToken(c,a);d.eventScope[e](c)}return false}return true},schedule:function(){var a=this;if(!a.timer){a.timer=setTimeout(a.timerFn,10)}},translateEvent:function(a,e){var c=this,b=c.eventObject,f=a.modKeys||"",d;if("x" in a){b.xy=d=Ext.fly(e).getXY();d[0]+=a.x;d[1]+=a.y}if("wheel" in a){}b.type=a.type;b.button=a.button;b.altKey=f.indexOf("A")>0;b.ctrlKey=f.indexOf("C")>0;b.metaKey=f.indexOf("M")>0;b.shiftKey=f.indexOf("S")>0;return b},onStart:function(){var a=this;a.queueIndex=0;a.schedule()},onStop:function(){var a=this;if(a.timer){clearTimeout(a.timer);a.timer=null}if(window.__x){__x.poll.sendSyncRequest({cmd:"finish"})}},onTick:function(){var a=this;a.timer=null;if(a.processEvents()){a.schedule()}}});Ext.define("Ext.ux.event.Recorder",function(){function a(c,b){return c.x==b.x&&c.y==b.y}return{extend:"Ext.ux.event.Driver",eventsToRecord:function(){var c={kind:"keyboard",modKeys:true,key:true,bubbles:true},b={kind:"mouse",button:true,modKeys:true,xy:true,bubbles:true};return{keydown:c,keypress:c,keyup:c,mousemove:b,mouseover:b,mouseout:b,click:b,mousedown:b,mouseup:b,scroll:{kind:"misc",bubbles:false}}}(),ignoreIdRegEx:/ext-gen(?:\d+)/,constructor:function(b){var d=this,c=b&&b.eventsToRecord;if(c){d.eventsToRecord=Ext.apply(Ext.apply({},d.eventsToRecord),c);delete b.eventsToRecord}d.callParent(arguments);d.addEvents("add","coalesce");d.clear();d.modKeys=[];d.attachTo=d.attachTo||window},clear:function(){this.eventsRecorded=[]},coalesce:function(g){var e=this,c=e.eventsRecorded,d=c.length,b=d&&c[d-1],f;if(!b){return false}if(g.type=="mousemove"){if(b.type=="mousemove"&&g.ts-b.ts<200){g.ts=b.ts;c[d-1]=g;return true}}else{if(g.type=="click"){if(d>=2&&b.type=="mouseup"&&(f=c[d-2]).type=="mousedown"){if(g.button==b.button&&g.button==f.button&&g.target==b.target&&g.target==f.target&&a(g,b)&&a(g,f)){c.pop();f.type="mduclick";return true}}}}return false},getElementXPath:function(f){var i=this,h=false,c=[],g,e,d,b;for(d=f;d;d=d.parentNode){if(d==i.attachTo.document.body){c.unshift("~");h=true;break}if(d.id&&!i.ignoreIdRegEx.test(d.id)){c.unshift("#"+d.id);h=true;break}for(g=1,e=d;!!(e=e.previousSibling);){if(e.tagName==d.tagName){++g}}b=d.tagName.toLowerCase();if(g<2){c.unshift(b)}else{c.unshift(b+"["+g+"]")}}return h?c.join("/"):null},getRecordedEvents:function(){return this.eventsRecorded},onDomInsert:function(b,c){this.watchTree(c)},onDomRemove:function(b,c){this.unwatchTree(c)},onEvent:function(h){var d=this,g=d.eventsToRecord[h.type],c,j,b,i={type:h.type,ts:d.getTimestamp(),target:d.getElementXPath(h.target)},f;if(!i.target){return}c=h.target.ownerDocument;c=c.defaultView||c.parentWindow;if(c!==d.attachTo){return}if(g.xy){f=h.getXY();if(i.target){b=Ext.fly(h.getTarget()).getXY();f[0]-=b[0];f[1]-=b[1]}i.x=f[0];i.y=f[1]}if(g.button){i.button=h.button}if(g.wheel){i.wheel=h.getWheelDelta()}if(g.modKeys){d.modKeys[0]=h.altKey?"A":"";d.modKeys[1]=h.ctrlKey?"C":"";d.modKeys[2]=h.metaKey?"M":"";d.modKeys[3]=h.shiftKey?"S":"";j=d.modKeys.join("");if(j){i.modKeys=j}}if(g.key){i.charCode=h.getCharCode();i.keyCode=h.getKey()}if(d.coalesce(i)){d.fireEvent("coalesce",d,i)}else{d.eventsRecorded.push(i);d.fireEvent("add",d,i)}},onStart:function(){var f=this,d={DOMNodeInserted:f.onDomInsert,DOMNodeRemoved:f.onDomRemove,scope:f},e=(f.nonBubbleEvents={}),g=f.attachTo.Ext.dd.DragDropManager,c=f.attachTo.Ext.EventObjectImpl.prototype;f.watchingNodes={};Ext.Object.each(f.eventsToRecord,function(h,i){if(i){if(i.bubbles){d[h]=f.onEvent}else{e[h]=i}}});f.ddmStopEvent=g.stopEvent;g.stopEvent=Ext.Function.createSequence(g.stopEvent,function(h){f.onEvent(h)});f.evStopEvent=c.stopEvent;c.stopEvent=Ext.Function.createSequence(c.stopEvent,function(){f.onEvent(this)});var b=f.attachTo.Ext.getBody();b.on(d);f.watchTree(b.dom)},onStop:function(){var c=this,b=c.attachTo.Ext.getBody();Ext.Object.each(c.eventsToRecord,function(d,e){if(e){b.un(d,c.onEvent,c)}});c.attachTo.Ext.dd.DragDropManager.stopEvent=c.ddmStopEvent;c.attachTo.Ext.EventObjectImpl.prototype.stopEvent=c.evStopEvent;c.unwatchTree(b.dom)},watchTree:function(c){if(c.nodeType!=1){return}var e=this,f=(c.tagName=="BODY")?"$":c.id,d=e.watchingNodes;if(f&&!d[f]){var b={scope:e};Ext.Object.each(e.nonBubbleEvents,function(g,h){if(h){b[g]=e.onEvent}});e.attachTo.Ext.fly(c).on(b);d[f]=true;console.log("watch "+c.tagName+"#"+f)}Ext.each(c.childNodes,e.watchTree,e)},unwatchTree:function(b){if(b.nodeType!=1){return}var d=this,e=(b.tagName=="BODY")?"$":b.id,c=d.watchingNodes;if(e&&!c[e]){Ext.Object.each(d.nonBubbleEvents,function(f,g){d.attachTo.Ext.fly(b).un(f,d.onEvent,d)});delete c[e];console.log("unwatch "+b.tagName+"#"+e)}Ext.each(b.childNodes,d.unwatchTree,d)}}}());Ext.define("Ext.ux.event.RecorderManager",{extend:"Ext.panel.Panel",alias:"widget.eventrecordermanager",uses:["Ext.ux.event.Recorder","Ext.ux.event.Player"],layout:"fit",buttonAlign:"left",eventsToIgnore:{mousemove:1,mouseover:1,mouseout:1},bodyBorder:false,playSpeed:1,initComponent:function(){var b=this;b.recorder=new Ext.ux.event.Recorder({attachTo:b.attachTo,listeners:{add:b.updateEvents,coalesce:b.updateEvents,buffer:200,scope:b}});b.recorder.eventsToRecord=Ext.apply({},b.recorder.eventsToRecord);function c(e,d){return{text:e,speed:d,group:"speed",checked:d==b.playSpeed,handler:b.onPlaySpeed,scope:b}}b.tbar=[{text:"Record",xtype:"splitbutton",whenIdle:true,handler:b.onRecord,scope:b,menu:b.makeRecordButtonMenu()},{text:"Play",xtype:"splitbutton",whenIdle:true,handler:b.onPlay,scope:b,menu:[c("Recorded Speed (1x)",1),c("Double Speed (2x)",2),c("Quad Speed (4x)",4),"-",c("Full Speed",1000)]},{text:"Clear",whenIdle:true,handler:b.onClear,scope:b},"->",{text:"Stop",whenActive:true,disabled:true,handler:b.onStop,scope:b}];var a=b.attachTo.testEvents;b.items=[{xtype:"textarea",itemId:"eventView",fieldStyle:"font-family: monospace",selectOnFocus:true,emptyText:"Events go here!",value:a?b.stringifyEvents(a):"",scrollToBottom:function(){var d=this.inputEl.dom;d.scrollTop=d.scrollHeight}}];b.fbar=[{xtype:"tbtext",text:"Attached To: "+b.attachTo.location.href}];b.callParent()},makeRecordButtonMenu:function(){var b=[],c={},e=this.recorder.eventsToRecord,d=this.eventsToIgnore;Ext.Object.each(e,function(f,h){var g=c[h.kind];if(!g){c[h.kind]=g=[];b.push({text:h.kind,menu:g})}g.push({text:f,checked:true,handler:function(i){if(i.checked){e[f]=h}else{delete e[f]}}});if(d[f]){g[g.length-1].checked=false;Ext.Function.defer(function(){delete e[f]},1)}});function a(f,g){return(f.text<g.text)?-1:((g.text<f.text)?1:0)}b.sort(a);Ext.Array.each(b,function(f){f.menu.sort(a)});return b},getEventView:function(){return this.down("#eventView")},onClear:function(){var a=this.getEventView();a.setValue("")},onPlay:function(){var c=this,a=c.getEventView(),b=a.getValue();if(b){b=Ext.decode(b);if(b.length){c.player=Ext.create("Ext.ux.event.Player",{attachTo:window.opener,eventQueue:b,listeners:{stop:c.onPlayStop,scope:c}});c.player.start();c.syncBtnUI()}}},onPlayStop:function(){this.player=null;this.syncBtnUI()},onPlaySpeed:function(a){this.playSpeed=a.speed},onRecord:function(){this.recorder.start();this.syncBtnUI()},onStop:function(){var a=this;if(a.player){a.player.stop();a.player=null}else{a.recorder.stop()}a.syncBtnUI();a.updateEvents()},syncBtnUI:function(){var c=this,b=!c.player&&!c.recorder.active;Ext.each(c.query("[whenIdle]"),function(d){d.setDisabled(!b)});Ext.each(c.query("[whenActive]"),function(d){d.setDisabled(b)});var a=c.getEventView();a.setReadOnly(!b)},stringifyEvents:function(c){var b,a=[];Ext.each(c,function(d){b=[];Ext.Object.each(d,function(e,f){if(b.length){b.push(", ")}else{b.push(" { ")}b.push(e,": ");b.push(Ext.encode(f))});b.push(" }");a.push(b.join(""))});return"[\n"+a.join(",\n")+"\n]"},updateEvents:function(){var b=this,c=b.stringifyEvents(b.recorder.getRecordedEvents()),a=b.getEventView();a.setValue(c);a.scrollToBottom()}});Ext.define("Ext.ux.form.MultiSelect",{extend:"Ext.form.FieldContainer",mixins:{bindable:"Ext.util.Bindable",field:"Ext.form.field.Field"},alternateClassName:"Ext.ux.Multiselect",alias:["widget.multiselectfield","widget.multiselect"],requires:["Ext.panel.Panel","Ext.view.BoundList","Ext.layout.container.Fit"],uses:["Ext.view.DragZone","Ext.view.DropZone"],layout:"fit",ddReorder:false,appendOnly:false,displayField:"text",allowBlank:true,minSelections:0,maxSelections:Number.MAX_VALUE,blankText:"This field is required",minSelectionsText:"Minimum {0} item(s) required",maxSelectionsText:"Minimum {0} item(s) required",delimiter:",",ignoreSelectChange:0,initComponent:function(){var a=this;a.bindStore(a.store,true);if(a.store.autoCreated){a.valueField=a.displayField="field1";if(!a.store.expanded){a.displayField="field2"}}if(!Ext.isDefined(a.valueField)){a.valueField=a.displayField}a.items=a.setupItems();a.callParent();a.initField();a.addEvents("drop")},setupItems:function(){var a=this;a.boundList=Ext.create("Ext.view.BoundList",Ext.apply({deferInitialRefresh:false,border:false,multiSelect:true,store:a.store,displayField:a.displayField,disabled:a.disabled},a.listConfig));a.boundList.getSelectionModel().on("selectionchange",a.onSelectChange,a);return{border:true,layout:"fit",title:a.title,tbar:a.tbar,items:a.boundList}},onSelectChange:function(a,b){if(!this.ignoreSelectChange){this.setValue(b)}},getSelected:function(){return this.boundList.getSelectionModel().getSelection()},isEqual:function(e,d){var b=Ext.Array.from,c=0,a;e=b(e);d=b(d);a=e.length;if(a!==d.length){return false}for(;c<a;c++){if(d[c]!==e[c]){return false}}return true},afterRender:function(){var a=this;a.callParent();if(a.selectOnRender){++a.ignoreSelectChange;a.boundList.getSelectionModel().select(a.getRecordsForValue(a.value));--a.ignoreSelectChange;delete a.toSelect}if(a.ddReorder&&!a.dragGroup&&!a.dropGroup){a.dragGroup=a.dropGroup="MultiselectDD-"+Ext.id()}if(a.draggable||a.dragGroup){a.dragZone=Ext.create("Ext.view.DragZone",{view:a.boundList,ddGroup:a.dragGroup,dragText:"{0} Item{1}"})}if(a.droppable||a.dropGroup){a.dropZone=Ext.create("Ext.view.DropZone",{view:a.boundList,ddGroup:a.dropGroup,handleNodeDrop:function(h,g,b){var c=this.view,e=c.getStore(),d=h.records,f;h.view.store.remove(d);f=e.indexOf(g);if(b==="after"){f++}e.insert(f,d);c.getSelectionModel().select(d);a.fireEvent("drop",a,d)}})}},isValid:function(){var b=this,a=b.disabled,c=b.forceValidation||!a;return c?b.validateValue(b.value):a},validateValue:function(b){var a=this,d=a.getErrors(b),c=Ext.isEmpty(d);if(!a.preventMark){if(c){a.clearInvalid()}else{a.markInvalid(d)}}return c},markInvalid:function(c){var b=this,a=b.getActiveError();b.setActiveErrors(Ext.Array.from(c));if(a!==b.getActiveError()){b.updateLayout()}},clearInvalid:function(){var b=this,a=b.hasActiveError();b.unsetActiveError();if(a){b.updateLayout()}},getSubmitData:function(){var a=this,b=null,c;if(!a.disabled&&a.submitValue&&!a.isFileUpload()){c=a.getSubmitValue();if(c!==null){b={};b[a.getName()]=c}}return b},getSubmitValue:function(){var b=this,a=b.delimiter,c=b.getValue();return Ext.isString(a)?c.join(a):c},getValue:function(){return this.value},getRecordsForValue:function(g){var f=this,a=[],h=f.store.getRange(),l=f.valueField,d=0,k=h.length,b,c,e;for(e=g.length;d<e;++d){for(c=0;c<k;++c){b=h[c];if(b.get(l)==g[d]){a.push(b)}}}return a},setupValue:function(g){var b=this.delimiter,d=this.valueField,e=0,c,a,f;if(Ext.isDefined(g)){if(b&&Ext.isString(g)){g=g.split(b)}else{if(!Ext.isArray(g)){g=[g]}}for(a=g.length;e<a;++e){f=g[e];if(f&&f.isModel){g[e]=f.get(d)}}c=Ext.Array.unique(g)}else{c=[]}return c},setValue:function(c){var b=this,a=b.boundList.getSelectionModel();if(!b.store.getCount()){b.store.on({load:Ext.Function.bind(b.setValue,b,[c]),single:true});return}c=b.setupValue(c);b.mixins.field.setValue.call(b,c);if(b.rendered){++b.ignoreSelectChange;a.deselectAll();a.select(b.getRecordsForValue(c));--b.ignoreSelectChange}else{b.selectOnRender=true}},clearValue:function(){this.setValue([])},onEnable:function(){var a=this.boundList;this.callParent();if(a){a.enable()}},onDisable:function(){var a=this.boundList;this.callParent();if(a){a.disable()}},getErrors:function(b){var a=this,c=Ext.String.format,e=[],d;b=Ext.Array.from(b||a.getValue());d=b.length;if(!a.allowBlank&&d<1){e.push(a.blankText)}if(d<a.minSelections){e.push(c(a.minSelectionsText,a.minSelections))}if(d>a.maxSelections){e.push(c(a.maxSelectionsText,a.maxSelections))}return e},onDestroy:function(){var a=this;a.bindStore(null);Ext.destroy(a.dragZone,a.dropZone);a.callParent()},onBindStore:function(a){var b=this.boundList;if(b){b.bindStore(a)}}});Ext.define("Ext.ux.form.ItemSelector",{extend:"Ext.ux.form.MultiSelect",alias:["widget.itemselectorfield","widget.itemselector"],alternateClassName:["Ext.ux.ItemSelector"],requires:["Ext.button.Button","Ext.ux.form.MultiSelect"],hideNavIcons:false,buttons:["top","up","add","remove","down","bottom"],buttonsText:{top:"Move to Top",up:"Move Up",add:"Add to Selected",remove:"Remove from Selected",down:"Move Down",bottom:"Move to Bottom"},initComponent:function(){var a=this;a.ddGroup=a.id+"-dd";a.callParent();a.bindStore(a.store)},createList:function(b){var a=this;return Ext.create("Ext.ux.form.MultiSelect",{submitValue:false,flex:1,dragGroup:a.ddGroup,dropGroup:a.ddGroup,title:b,store:{model:a.store.model,data:[]},displayField:a.displayField,disabled:a.disabled,listeners:{boundList:{scope:a,itemdblclick:a.onItemDblClick,drop:a.syncValue}}})},setupItems:function(){var a=this;a.fromField=a.createList(a.fromTitle);a.toField=a.createList(a.toTitle);return{border:false,layout:{type:"hbox",align:"stretch"},items:[a.fromField,{xtype:"container",margins:"0 4",width:22,layout:{type:"vbox",pack:"center"},items:a.createButtons()},a.toField]}},createButtons:function(){var b=this,a=[];if(!b.hideNavIcons){Ext.Array.forEach(b.buttons,function(c){a.push({xtype:"button",tooltip:b.buttonsText[c],handler:b["on"+Ext.String.capitalize(c)+"BtnClick"],cls:Ext.baseCSSPrefix+"form-itemselector-btn",iconCls:Ext.baseCSSPrefix+"form-itemselector-"+c,navBtn:true,scope:b,margin:"4 0 0 0"})})}return a},getSelections:function(b){var a=b.getStore();return Ext.Array.sort(b.getSelectionModel().getSelection(),function(d,c){d=a.indexOf(d);c=a.indexOf(c);if(d<c){return -1}else{if(d>c){return 1}}return 0})},onTopBtnClick:function(){var c=this.toField.boundList,a=c.getStore(),b=this.getSelections(c);a.suspendEvents();a.remove(b,true);a.insert(0,b);a.resumeEvents();c.refresh();this.syncValue();c.getSelectionModel().select(b)},onBottomBtnClick:function(){var c=this.toField.boundList,a=c.getStore(),b=this.getSelections(c);a.suspendEvents();a.remove(b,true);a.add(b);a.resumeEvents();c.refresh();this.syncValue();c.getSelectionModel().select(b)},onUpBtnClick:function(){var f=this.toField.boundList,b=f.getStore(),e=this.getSelections(f),g,d=0,a=e.length,c=0;b.suspendEvents();for(;d<a;++d,c++){g=e[d];c=Math.max(c,b.indexOf(g)-1);b.remove(g,true);b.insert(c,g)}b.resumeEvents();f.refresh();this.syncValue();f.getSelectionModel().select(e)},onDownBtnClick:function(){var e=this.toField.boundList,a=e.getStore(),d=this.getSelections(e),f,c=d.length-1,b=a.getCount()-1;a.suspendEvents();for(;c>-1;--c,b--){f=d[c];b=Math.min(b,a.indexOf(f)+1);a.remove(f,true);a.insert(b,f)}a.resumeEvents();e.refresh();this.syncValue();e.getSelectionModel().select(d)},onAddBtnClick:function(){var b=this,a=b.getSelections(b.fromField.boundList);b.moveRec(true,a);b.toField.boundList.getSelectionModel().select(a)},onRemoveBtnClick:function(){var b=this,a=b.getSelections(b.toField.boundList);b.moveRec(false,a);b.fromField.boundList.getSelectionModel().select(a)},moveRec:function(f,e){var c=this,g=c.fromField,a=c.toField,b=f?g.store:a.store,d=f?a.store:g.store;b.suspendEvents();d.suspendEvents();b.remove(e);d.add(e);b.resumeEvents();d.resumeEvents();g.boundList.refresh();a.boundList.refresh();c.syncValue()},syncValue:function(){var a=this;a.mixins.field.setValue.call(a,a.setupValue(a.toField.store.getRange()))},onItemDblClick:function(a,b){this.moveRec(a===this.fromField.boundList,b)},setValue:function(f){var d=this,g=d.fromField,a=d.toField,b=g.store,e=a.store,c;if(!d.fromStorePopulated){d.fromField.store.on({load:Ext.Function.bind(d.setValue,d,[f]),single:true});return}f=d.setupValue(f);d.mixins.field.setValue.call(d,f);c=d.getRecordsForValue(f);b.suspendEvents();e.suspendEvents();b.removeAll();e.removeAll();d.populateFromStore(d.store);Ext.Array.forEach(c,function(h){if(b.indexOf(h)>-1){b.remove(h)}e.add(h)});b.resumeEvents();e.resumeEvents();Ext.suspendLayouts();g.boundList.refresh();a.boundList.refresh();Ext.resumeLayouts(true)},onBindStore:function(a,b){var c=this;if(c.fromField){c.fromField.store.removeAll();c.toField.store.removeAll();if(a.getCount()){c.populateFromStore(a)}else{c.store.on("load",c.populateFromStore,c)}}},populateFromStore:function(a){var b=this.fromField.store;this.fromStorePopulated=true;b.add(a.getRange());b.fireEvent("load",b)},onEnable:function(){var a=this;a.callParent();a.fromField.enable();a.toField.enable();Ext.Array.forEach(a.query("[navBtn]"),function(b){b.enable()})},onDisable:function(){var a=this;a.callParent();a.fromField.disable();a.toField.disable();Ext.Array.forEach(a.query("[navBtn]"),function(b){b.disable()})},onDestroy:function(){this.bindStore(null);this.callParent()}});Ext.define("Ext.ux.form.SearchField",{extend:"Ext.form.field.Trigger",alias:"widget.searchfield",trigger1Cls:Ext.baseCSSPrefix+"form-clear-trigger",trigger2Cls:Ext.baseCSSPrefix+"form-search-trigger",hasSearch:false,paramName:"query",initComponent:function(){var a=this;a.callParent(arguments);a.on("specialkey",function(b,c){if(c.getKey()==c.ENTER){a.onTrigger2Click()}});a.store.remoteFilter=true;if(!a.store.proxy.hasOwnProperty("filterParam")){a.store.proxy.filterParam=a.paramName}a.store.proxy.encodeFilters=function(b){return b[0].value}},afterRender:function(){this.callParent();this.triggerCell.item(0).setDisplayed(false)},onTrigger1Click:function(){var a=this;if(a.hasSearch){a.setValue("");a.store.clearFilter();a.hasSearch=false;a.triggerCell.item(0).setDisplayed(false);a.updateLayout()}},onTrigger2Click:function(){var a=this,b=a.getValue();if(b.length>0){a.store.filter({id:a.paramName,property:a.paramName,value:b});a.hasSearch=true;a.triggerCell.item(0).setDisplayed(true);a.updateLayout()}}});Ext.define("Ext.ux.grid.FiltersFeature",{extend:"Ext.grid.feature.Feature",alias:"feature.filters",uses:["Ext.ux.grid.menu.ListMenu","Ext.ux.grid.menu.RangeMenu","Ext.ux.grid.filter.BooleanFilter","Ext.ux.grid.filter.DateFilter","Ext.ux.grid.filter.ListFilter","Ext.ux.grid.filter.NumericFilter","Ext.ux.grid.filter.StringFilter"],autoReload:true,filterCls:"ux-filtered-column",local:false,menuFilterText:"Filters",paramPrefix:"filter",showMenu:true,stateId:undefined,updateBuffer:500,hasFeatureEvent:false,constructor:function(a){var b=this;a=a||{};Ext.apply(b,a);b.deferredUpdate=Ext.create("Ext.util.DelayedTask",b.reload,b);b.filters=b.createFiltersCollection();b.filterConfigs=a.filters},attachEvents:function(){var c=this,a=c.view,d=a.headerCt,b=c.getGridPanel();c.bindStore(a.getStore(),true);d.on("menucreate",c.onMenuCreate,c);a.on("refresh",c.onRefresh,c);b.on({scope:c,beforestaterestore:c.applyState,beforestatesave:c.saveState,beforedestroy:c.destroy});b.filters=c;b.addEvents("filterupdate")},createFiltersCollection:function(){return Ext.create("Ext.util.MixedCollection",false,function(a){return a?a.dataIndex:null})},createFilters:function(){var h=this,g=h.filters.getCount(),a=h.getGridPanel(),d=h.createFiltersCollection(),e=a.store.model,f=e.prototype.fields,i,c,b;if(g){b={};h.saveState(null,b)}function j(l,k,m){if(l&&(m||k)){i=f.get(l);c={dataIndex:l,type:(i&&i.type&&i.type.type)||"auto"};if(Ext.isObject(k)){Ext.apply(c,k)}d.replace(c)}}Ext.Array.each(h.filterConfigs,function(k){j(k.dataIndex,k)});Ext.Array.each(a.columns,function(k){if(k.filterable===false){d.removeAtKey(k.dataIndex)}else{j(k.dataIndex,k.filter,k.filterable)}});h.removeAll();if(d.items){h.initializeFilters(d.items)}if(g){h.applyState(null,b)}},initializeFilters:function(e){var d=this,f=e.length,b,c,a;for(b=0;b<f;b++){c=e[b];if(c){a=d.getFilterClass(c.type);c=c.menu?c:new a(c);d.filters.add(c);Ext.util.Observable.capture(c,this.onStateChange,this)}}},onMenuCreate:function(c,b){var a=this;a.createFilters();b.on("beforeshow",a.onMenuBeforeShow,a)},onMenuBeforeShow:function(d){var c=this,b,a;if(c.showMenu){b=c.menuItem;if(!b||b.isDestroyed){c.createMenuItem(d);b=c.menuItem}a=c.getMenuFilter();if(a){b.setMenu(a.menu,false);b.setChecked(a.active);b.setDisabled(a.disabled===true)}b.setVisible(!!a);this.sep.setVisible(!!a)}},createMenuItem:function(b){var a=this;a.sep=b.add("-");a.menuItem=b.add({checked:false,itemId:"filters",text:a.menuFilterText,listeners:{scope:a,checkchange:a.onCheckChange,beforecheckchange:a.onBeforeCheck}})},getGridPanel:function(){return this.view.up("gridpanel")},applyState:function(b,e){var d=this,a,c;d.applyingState=true;d.clearFilters();if(e.filters){for(a in e.filters){if(e.filters.hasOwnProperty(a)){c=d.filters.get(a);if(c){c.setValue(e.filters[a]);c.setActive(true)}}}}d.deferredUpdate.cancel();if(d.local){d.reload()}delete d.applyingState;delete e.filters},saveState:function(a,c){var b={};this.filters.each(function(d){if(d.active){b[d.dataIndex]=d.getValue()}});return(c.filters=b)},destroy:function(){var a=this;Ext.destroyMembers(a,"menuItem","sep");a.removeAll();a.clearListeners()},removeAll:function(){if(this.filters){Ext.destroy.apply(Ext,this.filters.items);this.filters.clear()}},bindStore:function(a){var b=this;if(b.store&&b.storeListeners){b.store.un(b.storeListeners)}if(a){b.storeListeners={scope:b};if(b.local){b.storeListeners.load=b.onLoad}else{b.storeListeners["before"+(a.buffered?"prefetch":"load")]=b.onBeforeLoad}a.on(b.storeListeners)}else{delete b.storeListeners}b.store=a},getMenuFilter:function(){var a=this.view.headerCt.getMenu().activeHeader;return a?this.filters.get(a.dataIndex):null},onCheckChange:function(a,b){this.getMenuFilter().setActive(b)},onBeforeCheck:function(a,b){return !b||this.getMenuFilter().isActivatable()},onStateChange:function(d,b){if(d!=="serialize"){var c=this,a=c.getGridPanel();if(b==c.getMenuFilter()){c.menuItem.setChecked(b.active,false)}if((c.autoReload||c.local)&&!c.applyingState){c.deferredUpdate.delay(c.updateBuffer)}c.updateColumnHeadings();if(!c.applyingState){a.saveState()}a.fireEvent("filterupdate",c,b)}},onBeforeLoad:function(a,b){b.params=b.params||{};this.cleanParams(b.params);var c=this.buildQuery(this.getFilterData());Ext.apply(b.params,c)},onLoad:function(a){a.filterBy(this.getRecordFilter())},onRefresh:function(){this.updateColumnHeadings()},updateColumnHeadings:function(){var a=this,b=a.view.headerCt;if(b){b.items.each(function(d){var c=a.getFilter(d.dataIndex);d[c&&c.active?"addCls":"removeCls"](a.filterCls)})}},reload:function(){var b=this,a=b.view.getStore();if(b.local){a.clearFilter(true);a.filterBy(b.getRecordFilter());a.sort()}else{b.deferredUpdate.cancel();if(a.buffered){a.pageMap.clear()}a.loadPage(1)}},getRecordFilter:function(){var c=[],a,b;this.filters.each(function(d){if(d.active){c.push(d)}});a=c.length;return function(d){for(b=0;b<a;b++){if(!c[b].validateRecord(d)){return false}}return true}},addFilter:function(a){var f=this,c=f.getGridPanel().columns,b,h,e,g,d;for(b=0,h=c.length;b<h;b++){e=c[b];if(e.dataIndex===a.dataIndex){e.filter=a}}if(f.view.headerCt.menu){f.createFilters()}else{f.view.headerCt.getMenu()}for(b=0,g=f.filters.items.length;b<g;b++){d=f.filters.items[b];if(d.dataIndex===a.dataIndex){return d}}},addFilters:function(c){if(c){var b=this,a,d;for(a=0,d=c.length;a<d;a++){b.addFilter(c[a])}}},getFilter:function(a){return this.filters.get(a)},clearFilters:function(){this.filters.each(function(a){a.setActive(false)})},getFilterData:function(){var c=[],b,a;this.filters.each(function(e){if(e.active){var g=[].concat(e.serialize());for(b=0,a=g.length;b<a;b++){c.push({field:e.dataIndex,data:g[b]})}}});return c},buildQuery:function(b){var a={},c,h,j,e,k,d,g=b.length;if(!this.encode){for(c=0;c<g;c++){h=b[c];j=[this.paramPrefix,"[",c,"]"].join("");a[j+"[field]"]=h.field;e=j+"[data]";for(k in h.data){a[[e,"[",k,"]"].join("")]=h.data[k]}}}else{d=[];for(c=0;c<g;c++){h=b[c];d.push(Ext.apply({},{field:h.field},h.data))}if(d.length>0){a[this.paramPrefix]=Ext.JSON.encode(d)}}return a},cleanParams:function(c){if(this.encode){delete c[this.paramPrefix]}else{var b,a;b=new RegExp("^"+this.paramPrefix+"[[0-9]+]");for(a in c){if(b.test(a)){delete c[a]}}}},getFilterClass:function(a){switch(a){case"auto":a="string";break;case"int":case"float":a="numeric";break;case"bool":a="boolean";break}return Ext.ClassManager.getByAlias("gridfilter."+a)}});Ext.define("Ext.ux.grid.TransformGrid",{extend:"Ext.grid.Panel",constructor:function(q,f){f=Ext.apply({},f);q=this.table=Ext.get(q);var j=f.fields||[],c=f.columns||[],k=[],m=[],e=q.query("thead th"),h=0,l=e.length,g=q.dom,b,p,n,d,o,a;for(;h<l;++h){d=e[h];o=d.innerHTML;a="tcol-"+h;k.push(Ext.applyIf(j[h]||{},{name:a,mapping:"td:nth("+(h+1)+")/@innerHTML"}));m.push(Ext.applyIf(c[h]||{},{text:o,dataIndex:a,width:d.offsetWidth,tooltip:d.title,sortable:true}))}if(f.width){b=f.width}else{b=q.getWidth()+1}if(f.height){p=f.height}Ext.applyIf(f,{store:{data:g,fields:k,proxy:{type:"memory",reader:{record:"tbody tr",type:"xml"}}},columns:m,width:b,height:p});this.callParent([f]);if(f.remove!==false){g.parentNode.removeChild(g)}},onDestroy:function(){this.callParent();this.table.remove();delete this.table}});Ext.define("Ext.ux.grid.filter.Filter",{extend:"Ext.util.Observable",active:false,dataIndex:null,menu:null,updateBuffer:500,constructor:function(a){Ext.apply(this,a);this.addEvents("activate","deactivate","serialize","update");Ext.ux.grid.filter.Filter.superclass.constructor.call(this);this.menu=this.createMenu(a);this.init(a);if(a&&a.value){this.setValue(a.value);this.setActive(a.active!==false,true);delete a.value}},destroy:function(){if(this.menu){this.menu.destroy()}this.clearListeners()},init:Ext.emptyFn,createMenu:function(a){return Ext.create("Ext.menu.Menu",a)},getValue:Ext.emptyFn,setValue:Ext.emptyFn,isActivatable:function(){return true},getSerialArgs:Ext.emptyFn,validateRecord:function(){return true},serialize:function(){var a=this.getSerialArgs();this.fireEvent("serialize",a,this);return a},fireUpdate:function(){if(this.active){this.fireEvent("update",this)}this.setActive(this.isActivatable())},setActive:function(b,a){if(this.active!=b){this.active=b;if(a!==true){this.fireEvent(b?"activate":"deactivate",this)}}}});Ext.define("Ext.ux.grid.filter.BooleanFilter",{extend:"Ext.ux.grid.filter.Filter",alias:"gridfilter.boolean",defaultValue:false,yesText:"Yes",noText:"No",init:function(a){var c=Ext.id();this.options=[Ext.create("Ext.menu.CheckItem",{text:this.yesText,group:c,checked:this.defaultValue===true}),Ext.create("Ext.menu.CheckItem",{text:this.noText,group:c,checked:this.defaultValue===false})];this.menu.add(this.options[0],this.options[1]);for(var b=0;b<this.options.length;b++){this.options[b].on("click",this.fireUpdate,this);this.options[b].on("checkchange",this.fireUpdate,this)}},getValue:function(){return this.options[0].checked},setValue:function(a){this.options[a?0:1].setChecked(true)},getSerialArgs:function(){var a={type:"boolean",value:this.getValue()};return a},validateRecord:function(a){return a.get(this.dataIndex)==this.getValue()}});Ext.define("Ext.ux.grid.filter.DateFilter",{extend:"Ext.ux.grid.filter.Filter",alias:"gridfilter.date",uses:["Ext.picker.Date","Ext.menu.Menu"],afterText:"After",beforeText:"Before",compareMap:{before:"lt",after:"gt",on:"eq"},dateFormat:"m/d/Y",menuItems:["before","after","-","on"],menuItemCfgs:{selectOnFocus:true,width:125},onText:"On",pickerOpts:{},init:function(d){var g=this,c,e,a,f,b;c=Ext.apply(g.pickerOpts,{xtype:"datepicker",minDate:g.minDate,maxDate:g.maxDate,format:g.dateFormat,listeners:{scope:g,select:g.onMenuSelect}});g.fields={};for(e=0,a=g.menuItems.length;e<a;e++){f=g.menuItems[e];if(f!=="-"){b={itemId:"range-"+f,text:g[f+"Text"],menu:Ext.create("Ext.menu.Menu",{items:[Ext.apply(c,{itemId:f,listeners:{select:g.onPickerSelect,scope:g}}),]}),listeners:{scope:g,checkchange:g.onCheckChange}};f=g.fields[f]=Ext.create("Ext.menu.CheckItem",b)}g.menu.add(f)}g.values={}},onCheckChange:function(e,d){var c=this,b=e.menu.items.first(),f=b.itemId,a=c.values;if(d){a[f]=b.getValue()}else{delete a[f]}c.setActive(c.isActivatable());c.fireEvent("update",c)},onInputKeyUp:function(c,b){var a=b.getKey();if(a==b.RETURN&&c.isValid()){b.stopEvent();this.menu.hide()}},onMenuSelect:function(c,b){var a=this.fields,d=this.fields[c.itemId];d.setChecked(true);if(d==a.on){a.before.setChecked(false,true);a.after.setChecked(false,true)}else{a.on.setChecked(false,true);if(d==a.after&&this.getFieldValue("before")<b){a.before.setChecked(false,true)}else{if(d==a.before&&this.getFieldValue("after")>b){a.after.setChecked(false,true)}}}this.fireEvent("update",this);c.up("menu").hide()},getValue:function(){var b,a={};for(b in this.fields){if(this.fields[b].checked){a[b]=this.getFieldValue(b)}}return a},setValue:function(c,b){var a;for(a in this.fields){if(c[a]){this.getPicker(a).setValue(c[a]);this.fields[a].setChecked(true)}else{if(!b){this.fields[a].setChecked(false)}}}this.fireEvent("update",this)},isActivatable:function(){var a;for(a in this.fields){if(this.fields[a].checked){return true}}return false},getSerialArgs:function(){var a=[];for(var b in this.fields){if(this.fields[b].checked){a.push({type:"date",comparison:this.compareMap[b],value:Ext.Date.format(this.getFieldValue(b),this.dateFormat)})}}return a},getFieldValue:function(a){return this.values[a]},getPicker:function(a){return this.fields[a].menu.items.first()},validateRecord:function(b){var c,e,d=b.get(this.dataIndex),a=Ext.Date.clearTime;if(!Ext.isDate(d)){return false}d=a(d,true).getTime();for(c in this.fields){if(this.fields[c].checked){e=a(this.getFieldValue(c),true).getTime();if(c=="before"&&e<=d){return false}if(c=="after"&&e>=d){return false}if(c=="on"&&e!=d){return false}}}return true},onPickerSelect:function(b,a){this.values[b.itemId]=a;this.fireEvent("update",this)}});Ext.define("Ext.ux.grid.filter.ListFilter",{extend:"Ext.ux.grid.filter.Filter",alias:"gridfilter.list",phpMode:false,init:function(a){this.dt=Ext.create("Ext.util.DelayedTask",this.fireUpdate,this)},createMenu:function(a){var b=Ext.create("Ext.ux.grid.menu.ListMenu",a);b.on("checkchange",this.onCheckChange,this);return b},getValue:function(){return this.menu.getSelected()},setValue:function(a){this.menu.setSelected(a);this.fireEvent("update",this)},isActivatable:function(){return this.getValue().length>0},getSerialArgs:function(){return{type:"list",value:this.phpMode?this.getValue().join(","):this.getValue()}},onCheckChange:function(){this.dt.delay(this.updateBuffer)},validateRecord:function(a){var b=this.getValue();return Ext.Array.indexOf(b,a.get(this.dataIndex))>-1}});Ext.define("Ext.ux.grid.filter.NumericFilter",{extend:"Ext.ux.grid.filter.Filter",alias:"gridfilter.numeric",uses:["Ext.form.field.Number"],createMenu:function(a){var b=this,c;c=Ext.create("Ext.ux.grid.menu.RangeMenu",a);c.on("update",b.fireUpdate,b);return c},getValue:function(){return this.menu.getValue()},setValue:function(a){this.menu.setValue(a)},isActivatable:function(){var a=this.getValue(),b;for(b in a){if(a[b]!==undefined){return true}}return false},getSerialArgs:function(){var c,b=[],a=this.menu.getValue();for(c in a){b.push({type:"numeric",comparison:c,value:a[c]})}return b},validateRecord:function(a){var d=a.get(this.dataIndex),b=this.getValue(),c=Ext.isNumber;if(c(b.eq)&&d!=b.eq){return false}if(c(b.lt)&&d>=b.lt){return false}if(c(b.gt)&&d<=b.gt){return false}return true}});Ext.define("Ext.ux.grid.filter.StringFilter",{extend:"Ext.ux.grid.filter.Filter",alias:"gridfilter.string",iconCls:"ux-gridfilter-text-icon",emptyText:"Enter Filter Text...",selectOnFocus:true,width:125,init:function(a){Ext.applyIf(a,{enableKeyEvents:true,iconCls:this.iconCls,hideLabel:true,listeners:{scope:this,keyup:this.onInputKeyUp,el:{click:function(b){b.stopPropagation()}}}});this.inputItem=Ext.create("Ext.form.field.Text",a);this.menu.add(this.inputItem);this.updateTask=Ext.create("Ext.util.DelayedTask",this.fireUpdate,this)},getValue:function(){return this.inputItem.getValue()},setValue:function(a){this.inputItem.setValue(a);this.fireEvent("update",this)},isActivatable:function(){return this.inputItem.getValue().length>0},getSerialArgs:function(){return{type:"string",value:this.getValue()}},validateRecord:function(a){var b=a.get(this.dataIndex);if(typeof b!="string"){return(this.getValue().length===0)}return b.toLowerCase().indexOf(this.getValue().toLowerCase())>-1},onInputKeyUp:function(c,b){var a=b.getKey();if(a==b.RETURN&&c.isValid()){b.stopEvent();this.menu.hide();return}this.updateTask.delay(this.updateBuffer)}});Ext.define("Ext.ux.grid.menu.ListMenu",{extend:"Ext.menu.Menu",labelField:"text",loadingText:"Loading...",loadOnShow:true,single:false,constructor:function(b){var e=this,c,d,a,f;e.selected=[];e.addEvents("checkchange");e.callParent([b=b||{}]);if(!b.store&&b.options){c=[];for(d=0,a=b.options.length;d<a;d++){f=b.options[d];switch(Ext.type(f)){case"array":c.push(f);break;case"object":c.push([f.id,f[e.labelField]]);break;case"string":c.push([f,f]);break}}e.store=Ext.create("Ext.data.ArrayStore",{fields:["id",e.labelField],data:c,listeners:{load:e.onLoad,scope:e}});e.loaded=true;e.autoStore=true}else{e.add({text:e.loadingText,iconCls:"loading-indicator"});e.store.on("load",e.onLoad,e)}},destroy:function(){var b=this,a=b.store;if(a){if(b.autoStore){a.destroyStore()}else{a.un("unload",b.onLoad,b)}}b.callParent()},show:function(){if(this.loadOnShow&&!this.loaded&&!this.store.loading){this.store.load()}this.callParent()},onLoad:function(c,b){var g=this,f,h,d,a,e={checkchange:g.checkChange,scope:g};Ext.suspendLayouts();g.removeAll(true);f=g.single?Ext.id():null;for(d=0,a=b.length;d<a;d++){h=b[d].get("id");g.add(Ext.create("Ext.menu.CheckItem",{text:b[d].get(g.labelField),group:f,checked:Ext.Array.contains(g.selected,h),hideOnClick:false,value:h,listeners:e}))}g.loaded=true;Ext.resumeLayouts(true);g.fireEvent("load",g,b)},getSelected:function(){return this.selected},setSelected:function(a){a=this.selected=[].concat(a);if(this.loaded){this.items.each(function(d){d.setChecked(false,true);for(var c=0,b=a.length;c<b;c++){if(d.value==a[c]){d.setChecked(true,true)}}},this)}},checkChange:function(b,a){var c=[];this.items.each(function(d){if(d.checked){c.push(d.value)}},this);this.selected=c;this.fireEvent("checkchange",b,a)}});Ext.define("Ext.ux.grid.menu.RangeMenu",{extend:"Ext.menu.Menu",fieldCls:"Ext.form.field.Number",itemIconCls:{gt:"ux-rangemenu-gt",lt:"ux-rangemenu-lt",eq:"ux-rangemenu-eq"},fieldLabels:{gt:"Greater Than",lt:"Less Than",eq:"Equal To"},menuItemCfgs:{emptyText:"Enter Number...",selectOnFocus:false,width:155},menuItems:["lt","gt","-","eq"],constructor:function(a){var f=this,c,g,b,e,h,d,j;f.callParent(arguments);c=f.fields=f.fields||{};g=f.fieldCfg=f.fieldCfg||{};f.addEvents("update");f.updateTask=Ext.create("Ext.util.DelayedTask",f.fireUpdate,f);for(b=0,e=f.menuItems.length;b<e;b++){h=f.menuItems[b];if(h!=="-"){d={itemId:"range-"+h,enableKeyEvents:true,hideLabel:false,fieldLabel:f.iconTpl.apply({cls:f.itemIconCls[h]||"no-icon",text:f.fieldLabels[h]||"",src:Ext.BLANK_IMAGE_URL}),labelSeparator:"",labelWidth:29,labelStyle:"position: relative;",listeners:{scope:f,change:f.onInputChange,keyup:f.onInputKeyUp,el:{click:function(i){i.stopPropagation()}}},activate:Ext.emptyFn,deactivate:Ext.emptyFn};Ext.apply(d,Ext.applyIf(c[h]||{},g[h]),f.menuItemCfgs);j=d.fieldCls||f.fieldCls;h=c[h]=Ext.create(j,d)}f.add(h)}},fireUpdate:function(){this.fireEvent("update",this)},getValue:function(){var a={},b,c;for(b in this.fields){c=this.fields[b];if(c.isValid()&&c.getValue()!==null){a[b]=c.getValue()}}return a},setValue:function(c){var b=this,a,d;for(a in b.fields){d=b.fields[a];d.suspendEvents();d.setValue(a in c?c[a]:"");d.resumeEvents()}b.fireEvent("update",b)},onInputKeyUp:function(b,a){if(a.getKey()===a.RETURN&&b.isValid()){a.stopEvent();this.hide()}},onInputChange:function(f){var e=this,c=e.fields,b=c.eq,d=c.gt,a=c.lt;if(f==b){if(d){d.setValue(null)}if(a){a.setValue(null)}}else{b.setValue(null)}this.updateTask.delay(this.updateBuffer)}},function(){this.prototype.iconTpl=Ext.create("Ext.XTemplate",'<img src="{src}" alt="{text}" class="'+Ext.baseCSSPrefix+'menu-item-icon ux-rangemenu-icon {cls}" />')});Ext.define("Ext.ux.layout.Center",{extend:"Ext.layout.container.Fit",alias:"layout.ux.center",percentRe:/^\d+(?:\.\d+)?\%$/,itemCls:"ux-layout-center-item",initLayout:function(){this.callParent(arguments);this.owner.addCls("ux-layout-center")},getItemSizePolicy:function(a){var b=this.callParent(arguments);if(typeof a.width=="number"){b=this.sizePolicies[b.setsHeight?2:0]}return b},getPos:function(b,d,c){var a=b.props[c]+d.margins[c],e=Math.round((d.targetSize[c]-a)/2);return Math.max(e,0)},getSize:function(b,d,c){var a=b[c];if(typeof a=="string"&&this.percentRe.test(a)){a=parseFloat(a)/100}else{a=b[c+"Ratio"]}return d.targetSize[c]*(a||1)-d.margins[c]},positionItemX:function(a,c){var b=this.getPos(a,c,"width");a.setProp("x",b)},positionItemY:function(a,c){var b=this.getPos(a,c,"height");a.setProp("y",b)},setItemHeight:function(b,c){var a=this.getSize(b.target,c,"height");b.setHeight(a)},setItemWidth:function(b,c){var a=this.getSize(b.target,c,"width");b.setWidth(a)}});Ext.define("Ext.ux.statusbar.ValidationStatus",{extend:"Ext.Component",requires:["Ext.util.MixedCollection"],errorIconCls:"x-status-error",errorListCls:"x-status-error-list",validIconCls:"x-status-valid",showText:"The form has errors (click for details...)",hideText:"Click again to hide the error list",submitText:"Saving...",init:function(a){a.on("render",function(){this.statusBar=a;this.monitor=true;this.errors=Ext.create("Ext.util.MixedCollection");this.listAlign=(a.statusAlign==="right"?"br-tr?":"bl-tl?");if(this.form){this.formPanel=Ext.getCmp(this.form);this.basicForm=this.formPanel.getForm();this.startMonitoring();this.basicForm.on("beforeaction",function(d,c){if(c.type==="submit"){this.monitor=false}},this);var b=function(){this.monitor=true};this.basicForm.on("actioncomplete",b,this);this.basicForm.on("actionfailed",b,this)}},this,{single:true});a.on({scope:this,afterlayout:{single:true,fn:function(){a.statusEl.getEl().on("click",this.onStatusClick,this,{buffer:200})}},beforedestroy:{single:true,fn:this.onDestroy}})},startMonitoring:function(){this.basicForm.getFields().each(function(a){a.on("validitychange",this.onFieldValidation,this)},this)},stopMonitoring:function(){this.basicForm.getFields().each(function(a){a.un("validitychange",this.onFieldValidation,this)},this)},onDestroy:function(){this.stopMonitoring();this.statusBar.statusEl.un("click",this.onStatusClick,this);this.callParent(arguments)},onFieldValidation:function(a,b){if(!this.monitor){return false}var c=a.getErrors()[0];if(c){this.errors.add(a.id,{field:a,msg:c})}else{this.errors.removeAtKey(a.id)}this.updateErrorList();if(this.errors.getCount()>0){if(this.statusBar.getText()!==this.showText){this.statusBar.setStatus({text:this.showText,iconCls:this.errorIconCls})}}else{this.statusBar.clearStatus().setIcon(this.validIconCls)}},updateErrorList:function(){if(this.errors.getCount()>0){var a="<ul>";this.errors.each(function(b){a+=('<li id="x-err-'+b.field.id+'"><a href="#">'+b.msg+"</a></li>")},this);this.getMsgEl().update(a+"</ul>")}else{this.getMsgEl().update("")}this.getMsgEl().setSize("auto","auto")},getMsgEl:function(){if(!this.msgEl){this.msgEl=Ext.DomHelper.append(Ext.getBody(),{cls:this.errorListCls},true);this.msgEl.hide();this.msgEl.on("click",function(b){var a=b.getTarget("li",10,true);if(a){Ext.getCmp(a.id.split("x-err-")[1]).focus();this.hideErrors()}},this,{stopEvent:true})}return this.msgEl},showErrors:function(){this.updateErrorList();this.getMsgEl().alignTo(this.statusBar.getEl(),this.listAlign).slideIn("b",{duration:300,easing:"easeOut"});this.statusBar.setText(this.hideText);this.formPanel.el.on("click",this.hideErrors,this,{single:true})},hideErrors:function(){var a=this.getMsgEl();if(a.isVisible()){a.slideOut("b",{duration:300,easing:"easeIn"});this.statusBar.setText(this.showText)}this.formPanel.el.un("click",this.hideErrors,this)},onStatusClick:function(){if(this.getMsgEl().isVisible()){this.hideErrors()}else{if(this.errors.getCount()>0){this.showErrors()}}}});